git subrepo clone https://github.com/HarbourMasters/soh.git
subrepo: subdir: "soh" merged: "ba904bbd0" upstream: origin: "https://github.com/HarbourMasters/soh.git" branch: "master" commit: "ba904bbd0" git-subrepo: version: "0.4.1" origin: "???" commit: "???"
This commit is contained in:
40
soh/src/code/code_8006C510.c
Normal file
40
soh/src/code/code_8006C510.c
Normal file
@@ -0,0 +1,40 @@
|
||||
#include "global.h"
|
||||
|
||||
f32 func_8006C510(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
|
||||
char pad[0x1C];
|
||||
f32 sq = SQ(arg0);
|
||||
f32 cube = sq * arg0;
|
||||
|
||||
return (((cube + cube) - sq * 3.0f) + 1.0f) * arg2 + (sq * 3.0f - (cube + cube)) * arg3 +
|
||||
((cube - (sq + sq)) + arg0) * arg4 * arg1 + (cube - sq) * arg5 * arg1;
|
||||
}
|
||||
|
||||
f32 func_8006C5A8(f32 target, TransformData* transData, s32 refIdx) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
if (target <= transData->unk_02) {
|
||||
return transData->unk_08;
|
||||
}
|
||||
if (target >= transData[refIdx - 1].unk_02) {
|
||||
return transData[refIdx - 1].unk_08;
|
||||
}
|
||||
|
||||
for (i = 0;; i++) {
|
||||
j = i + 1;
|
||||
if (transData[j].unk_02 > target) {
|
||||
if (transData[i].unk_00 & 1) {
|
||||
return transData[i].unk_08;
|
||||
} else if (transData[i].unk_00 & 2) {
|
||||
return transData[i].unk_08 +
|
||||
((target - (f32)transData[i].unk_02) / ((f32)transData[j].unk_02 - (f32)transData[i].unk_02)) *
|
||||
(transData[j].unk_08 - transData[i].unk_08);
|
||||
} else {
|
||||
f32 diff = (f32)transData[j].unk_02 - (f32)transData[i].unk_02;
|
||||
return func_8006C510((target - transData[i].unk_02) / ((f32)transData[j].unk_02 - transData[i].unk_02),
|
||||
diff * (1.0f / 30.0f), transData[i].unk_08, transData[j].unk_08,
|
||||
transData[i].unk_06, transData[j].unk_04);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user