diff options
| author | Ethan Roseman <ethteck@gmail.com> | 2020-03-19 20:07:08 -0400 |
|---|---|---|
| committer | Ethan Roseman <ethteck@gmail.com> | 2020-03-19 20:07:08 -0400 |
| commit | 2d00e319fe12e1a89b1037f506139afc516ada44 (patch) | |
| tree | 170c369ebacb50aa33e93d48fef6e152438bba07 /src/code/code_8007BF90.c | |
| parent | db822f7d0f00083d036c61535a5bc667fe98641c (diff) | |
| parent | 9f434ad7334dccd41f3c3a174d04611296bc354a (diff) | |
Merge branch 'master' into ovl_Demo_Geff
Diffstat (limited to 'src/code/code_8007BF90.c')
| -rw-r--r-- | src/code/code_8007BF90.c | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/src/code/code_8007BF90.c b/src/code/code_8007BF90.c index 8c5347971..a7e1cca5b 100644 --- a/src/code/code_8007BF90.c +++ b/src/code/code_8007BF90.c @@ -1,7 +1,7 @@ #include <ultra64.h> #include <global.h> -void func_8007C1AC(Vec3f* dest, struct_80045714* arg1); +Vec3f* func_8007C1AC(Vec3f* dest, struct_80045714* arg1); f32 func_8007BF90(Vec3f* a, Vec3f* b) { @@ -33,49 +33,48 @@ f32 func_8007C058(f32 arg0, f32 arg1) #pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF90/func_8007C0A8.s") -#ifdef NON_MATCHING -void func_8007C0F8(Vec3f* dest, Vec3f* a, Vec3f* b) +Vec3f* func_8007C0F8(Vec3f* dest, Vec3f* a, Vec3f* b) { - f32 fVar1; - Vec3f v; + Vec3f v1; + Vec3f v2; + f32 temp; + + v1.x = b->x - a->x; + v1.y = b->y - a->y; + v1.z = b->z - a->z; + + temp = func_8007C058(sqrtf(SQ(v1.x) + SQ(v1.y) + SQ(v1.z)), 0.01f); - v.x = b->x - a->x; - v.y = b->y - a->y; - v.z = b->z - a->z; + v2.x = v1.x / temp; + v2.y = v1.y / temp; + v2.z = v1.z / temp; - fVar1 = func_8007C058(sqrtf(v.x * v.x + v.y * v.y + v.z * v.z), D_8013CB80); + *dest = v2; - dest->x = v.x / fVar1; - dest->y = v.y / fVar1; - dest->z = v.z / fVar1; + return dest; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF90/func_8007C0F8.s") -#endif -#ifdef NON_MATCHING -void func_8007C1AC(Vec3f* dest, struct_80045714* arg1) +Vec3f* func_8007C1AC(Vec3f* dest, struct_80045714* arg1) { - f32 fVar1; - f32 fVar2; - f32 fVar3; - f32 fVar4; - f32 fVar5; - f32 fVar6; - - fVar1 = Math_Coss(arg1->unk_04); - fVar2 = Math_Coss(arg1->unk_06); - fVar3 = Math_Coss(arg1->unk_04); - fVar4 = Math_Coss(arg1->unk_06); - fVar6 = arg1->unk_00; - fVar5 = arg1->unk_00; - dest->x = arg1->unk_00 * fVar3 * fVar4; - dest->y = fVar6 * fVar1; - dest->z = fVar5 * fVar3 * fVar2; + Vec3f v; + f32 sin4; + f32 cos4; + f32 sin6; + f32 cos6; + + cos4 = Math_Coss(arg1->unk_04); + cos6 = Math_Coss(arg1->unk_06); + sin4 = Math_Sins(arg1->unk_04); + sin6 = Math_Sins(arg1->unk_06); + + v.x = arg1->unk_00 * sin4 * sin6; + v.y = arg1->unk_00 * cos4; + v.z = arg1->unk_00 * sin4 * cos6; + + *dest = v; + + return dest; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF90/func_8007C1AC.s") -#endif void func_8007C3F4(struct_80045714* arg0, Vec3f* arg1); |
