mirror of
https://github.com/n64decomp/mk64
synced 2026-08-17 12:59:29 -04:00
Match some functions in code_80281FA0 (#219)
Renamed a couple functions as well Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
+238
-338
@@ -3,18 +3,19 @@
|
||||
#include <types.h>
|
||||
#include <common_structs.h>
|
||||
#include "variables.h"
|
||||
#include "math_util.h"
|
||||
#include "code_80281FA0.h"
|
||||
|
||||
void func_80281FA0(Vec3f arg0, f32 arg1, f32 arg2, f32 arg3) {
|
||||
arg0[0] = arg1;
|
||||
arg0[1] = arg2;
|
||||
arg0[2] = arg3;
|
||||
void vec3f_set_dupe(Vec3f dest, f32 arg1, f32 arg2, f32 arg3) {
|
||||
dest[0] = arg1;
|
||||
dest[1] = arg2;
|
||||
dest[2] = arg3;
|
||||
}
|
||||
|
||||
void func_80281FC0(Vec3s arg0, s16 arg1, s16 arg2, s16 arg3) {
|
||||
arg0[0] = arg1;
|
||||
arg0[1] = arg2;
|
||||
arg0[2] = arg3;
|
||||
void vec3s_set_dupe(Vec3s dest, s16 arg1, s16 arg2, s16 arg3) {
|
||||
dest[0] = arg1;
|
||||
dest[1] = arg2;
|
||||
dest[2] = arg3;
|
||||
}
|
||||
|
||||
void func_80281FDC(Vec3f arg0) {
|
||||
@@ -29,16 +30,16 @@ void func_80281FF4(Vec3s arg0) {
|
||||
arg0[0] = arg0[2];
|
||||
}
|
||||
|
||||
void func_80282008(Vec3f arg0, Vec3f arg1) {
|
||||
arg0[0] = arg1[0];
|
||||
arg0[1] = arg1[1];
|
||||
arg0[2] = arg1[2];
|
||||
void vec3f_copy_dupe(Vec3f dest, Vec3f src) {
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
}
|
||||
|
||||
void func_80282024(Vec3s arg0, Vec3s arg1) {
|
||||
arg0[0] = arg1[0];
|
||||
arg0[1] = arg1[1];
|
||||
arg0[2] = arg1[2];
|
||||
void vec3s_copy_dupe(Vec3s dest, Vec3s src) {
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
}
|
||||
|
||||
void func_80282040(void) {
|
||||
@@ -49,47 +50,23 @@ void func_80282048(void) {
|
||||
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
// ? func_80282008(f32 *); // extern
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
UNUSED void func_80282050(Vec3f dest, Vec3f src, s16 angle) {
|
||||
Vec3f sp2C;
|
||||
|
||||
UNUSED void func_80282050(Vec3f arg0, UNUSED f32 arg1, u16 arg2) {
|
||||
Vec3f sp20;
|
||||
Vec3f sp30;
|
||||
// f32 sp28 = sins(arg2);
|
||||
|
||||
func_80282008(arg0, sp30);
|
||||
arg0[0] = (coss(arg2 & 0xFFFF) * sp20[2]) + (sp30[1] * sins(arg2));
|
||||
arg0[1] = sp30[0];
|
||||
// sp28 = coss(arg2 & 0xFFFF);
|
||||
arg0[2] = (sp30[1] * coss(arg2 & 0xFFFF)) - (sins(arg2 & 0xFFFF) * sp20[2]);
|
||||
vec3f_copy_dupe(sp2C, src);
|
||||
dest[0] = (sp2C[2] * sins(angle)) + (sp2C[0] * coss(angle));
|
||||
dest[1] = sp2C[1];
|
||||
dest[2] = (sp2C[2] * coss(angle)) - (sp2C[0] * sins(angle));
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282050.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80282008(f32 *); // extern
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
UNUSED void func_802820F8(f32 *dest, f32 *src, s16 angle) {
|
||||
Vec3f sp2C;
|
||||
|
||||
UNUSED void func_802820F8(void *arg0, u16 arg2) {
|
||||
f32 sp2C;
|
||||
f32 sp28;
|
||||
|
||||
func_80282008(&sp2C);
|
||||
sp28 = coss(arg2);
|
||||
arg0->unk8 = (sp34 * sp28) - (sins(arg2 & 0xFFFF) * sp30);
|
||||
sp28 = sins(arg2 & 0xFFFF);
|
||||
arg0->unk4 = (coss(arg2 & 0xFFFF) * sp30) + (sp34 * sp28);
|
||||
arg0->unk0 = sp2C;
|
||||
vec3f_copy_dupe(sp2C, src);
|
||||
dest[2] = (sp2C[2] * coss(angle)) - (sp2C[1] * sins(angle));
|
||||
dest[1] = (sp2C[2] * sins(angle)) + (sp2C[1] * coss(angle));
|
||||
dest[0] = sp2C[0];
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802820F8.s")
|
||||
#endif
|
||||
|
||||
// Called just before fish shoots trophy at awards cutscene.
|
||||
s32 func_802821A0(f32 *arg0, f32 arg1, f32 arg2) {
|
||||
@@ -191,95 +168,38 @@ void func_80282434(s32 arg0) {
|
||||
func_8028240C();
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s16 atan2s(f32, f32); // extern
|
||||
void func_80282454(Vec3f arg0, Vec3f arg1, f32 *distance, s16 *arg3, s16 *arg4) {
|
||||
f32 xdist;
|
||||
f32 ydist;
|
||||
f32 zdist;
|
||||
|
||||
void func_80282454(void *arg0, void *arg1, f32 *arg2, s16 *arg3, s16 *arg4) {
|
||||
f32 sp2C;
|
||||
f32 sp28;
|
||||
f32 sp24;
|
||||
f32 sp1C;
|
||||
f32 sp18;
|
||||
f32 temp_f0;
|
||||
f32 temp_f14;
|
||||
f32 temp_f16;
|
||||
f32 temp_f18;
|
||||
f32 temp_f2;
|
||||
|
||||
temp_f0 = arg1->unk0 - arg0->unk0;
|
||||
temp_f2 = arg1->unk4 - arg0->unk4;
|
||||
temp_f16 = temp_f0 * temp_f0;
|
||||
sp2C = temp_f0;
|
||||
temp_f14 = arg1->unk8 - arg0->unk8;
|
||||
sp28 = temp_f2;
|
||||
temp_f18 = temp_f14 * temp_f14;
|
||||
sp24 = temp_f14;
|
||||
sp1C = temp_f16;
|
||||
sp18 = temp_f18;
|
||||
*arg2 = sqrtf(temp_f16 + (temp_f2 * temp_f2) + temp_f18);
|
||||
*arg3 = atan2s(sp28, sqrtf(temp_f16 + temp_f18));
|
||||
*arg4 = atan2s(sp2C, temp_f14);
|
||||
xdist = arg1[0] - arg0[0];
|
||||
ydist = arg1[1] - arg0[1];
|
||||
zdist = arg1[2] - arg0[2];
|
||||
*distance = sqrtf((xdist * xdist) + (ydist * ydist) + (zdist * zdist));
|
||||
*arg3 = atan2s(ydist, sqrtf((xdist * xdist) + (zdist * zdist)));
|
||||
*arg4 = atan2s(xdist, zdist);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282454.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
|
||||
void func_80282504(void *arg0, void *arg1, f32 arg2, s32 arg3, u16 arg4) {
|
||||
f32 sp24;
|
||||
s32 sp20;
|
||||
s32 sp1C;
|
||||
s32 temp_a0;
|
||||
|
||||
temp_a0 = arg3 & 0xFFFF;
|
||||
sp20 = temp_a0;
|
||||
sp24 = coss(temp_a0);
|
||||
sp1C = arg4;
|
||||
arg1->unk0 = (sins(arg4) * (arg2 * sp24)) + arg0->unk0;
|
||||
arg1->unk4 = (sins(sp22) * arg2) + arg0->unk4;
|
||||
sp24 = coss(sp22);
|
||||
arg1->unk8 = (coss(sp1E) * (arg2 * sp24)) + arg0->unk8;
|
||||
void func_80282504(Vec3f arg0, Vec3f arg1, f32 arg2, s16 arg3, s16 arg4) {
|
||||
arg1[0] = arg0[0] + (arg2 * coss(arg3) * sins(arg4));
|
||||
arg1[1] = arg0[1] + (arg2 * sins(arg3));
|
||||
arg1[2] = arg0[2] + (arg2 * coss(arg3) * coss(arg4));
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282504.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80282008(? *); // extern
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
UNUSED void func_802825C8(Vec3f arg0, Vec3f arg1, Vec3f arg2, Vec3s arg3) {
|
||||
Vec3f sp3C;
|
||||
Vec3f sp30;
|
||||
|
||||
void func_802825C8(void *arg0, void *arg1, void *arg2, void *arg3) {
|
||||
? sp3C;
|
||||
f32 sp38;
|
||||
f32 sp34;
|
||||
f32 sp30;
|
||||
f32 temp_f20;
|
||||
f32 temp_f20_2;
|
||||
f32 temp_f20_3;
|
||||
f32 temp_f20_4;
|
||||
|
||||
func_80282008(&sp3C);
|
||||
temp_f20 = coss(arg3->unk0);
|
||||
sp38 = -((arg2->unk8 * temp_f20) - (sins(arg3->unk0) * arg2->unk4));
|
||||
temp_f20_2 = sins(arg3->unk0);
|
||||
sp34 = (coss(arg3->unk0) * arg2->unk4) + (arg2->unk8 * temp_f20_2);
|
||||
sp30 = arg2->unk0;
|
||||
temp_f20_3 = sins(arg3->unk2);
|
||||
arg0->unk0 = (coss(arg3->unk2) * sp30) + (arg1->unk0 + (sp38 * temp_f20_3));
|
||||
arg0->unk4 = sp34 + arg1->unk4;
|
||||
temp_f20_4 = coss(arg3->unk2);
|
||||
arg0->unk8 = (arg1->unk8 + (sp38 * temp_f20_4)) - (sins(arg3->unk2) * sp30);
|
||||
// What's up with this? Why do we copy arg1 to an unused local variable?
|
||||
vec3f_copy_dupe(sp3C, arg1);
|
||||
sp30[2] = -((arg2[2] * coss(arg3[0])) - (arg2[1] * sins(arg3[0])));
|
||||
sp30[1] = (arg2[2] * sins(arg3[0])) + (arg2[1] * coss(arg3[0]));
|
||||
sp30[0] = arg2[0];
|
||||
arg0[0] = arg1[0] + (sp30[2] * sins(arg3[1])) + (sp30[0] * coss(arg3[1]));
|
||||
arg0[1] = arg1[1] + sp30[1];
|
||||
arg0[2] = arg1[2] + (sp30[2] * coss(arg3[1])) - (sp30[0] * sins(arg3[1]));
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802825C8.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
@@ -536,7 +456,7 @@ void func_80282F00(s16 *arg0, s16 arg1) {
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80281FA0(?32 *, ?32, ?32, ?32); // extern
|
||||
? vec3f_set_dupe(?32 *, ?32, ?32, ?32); // extern
|
||||
s32 func_80282364(void *, ?, s16); // extern
|
||||
? func_80282454(?32 *, ?32 *, s32 *, s16 *, s16 *); // extern
|
||||
? func_80282504(?32 *, ?32 *, s32, s16, s32); // extern
|
||||
@@ -554,8 +474,8 @@ void func_80282F44(s32 arg0, void *arg1, void *arg2) {
|
||||
s32 temp_t9;
|
||||
void *temp_s0;
|
||||
|
||||
func_80281FA0(&sp44, arg2->unk0, arg2->unk4, arg2->unk8);
|
||||
func_80281FA0(&sp38, arg2->unkC, arg2->unk10, arg2->unk14);
|
||||
vec3f_set_dupe(&sp44, arg2->unk0, arg2->unk4, arg2->unk8);
|
||||
vec3f_set_dupe(&sp38, arg2->unkC, arg2->unk10, arg2->unk14);
|
||||
if ((arg0 == 0) || (arg0 == 1)) {
|
||||
if ((arg1->unk48 != 0) || (arg1->unk4A != 0)) {
|
||||
func_80282454(&sp44, &sp38, &sp5C, &sp50, &sp52);
|
||||
@@ -650,35 +570,31 @@ s32 func_80283330(s32 arg0) {
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80283330(?, s32 *); // extern
|
||||
extern ? D_802856D4;
|
||||
extern s8 D_802874F5;
|
||||
extern s32 D_802876D8;
|
||||
//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
|
||||
static ? D_802856D4; /* unable to generate initializer */
|
||||
|
||||
s32 func_8028336C(s32 arg0, ? arg1) {
|
||||
s32 func_8028336C(s32 arg0, Camera *camera) {
|
||||
? sp20;
|
||||
s32 temp_v1;
|
||||
s32 temp_v1_2;
|
||||
|
||||
temp_v1 = D_802876D8;
|
||||
sp20.unk0 = D_802856D4.unk0;
|
||||
sp20.unk4 = D_802856D4.unk4;
|
||||
sp20.unk0 = (s32) D_802856D4.unk0;
|
||||
sp20.unk4 = (s32) D_802856D4.unk4;
|
||||
if (temp_v1 != 0) {
|
||||
return temp_v1;
|
||||
}
|
||||
temp_v1_2 = D_800DC50C;
|
||||
if (temp_v1_2 != 5) {
|
||||
if (temp_v1_2 != 9) {
|
||||
|
||||
} else {
|
||||
D_802876D8 = 6;
|
||||
}
|
||||
} else {
|
||||
D_802876D8 = *(&sp20 + D_802874F5);
|
||||
switch (temp_v1_2) { /* irregular */
|
||||
case 5:
|
||||
D_802876D8 = (s32) *(&sp20 + D_802874F5);
|
||||
break;
|
||||
case 9:
|
||||
D_802876D8 = 6;
|
||||
break;
|
||||
}
|
||||
if (temp_v1_2 == 9) {
|
||||
func_80283330(6, &D_802876D8);
|
||||
func_80283330(6);
|
||||
}
|
||||
return D_802876D8;
|
||||
}
|
||||
@@ -691,58 +607,42 @@ s32 func_80283428(void) {
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80281FA0(? *, f32, f32, f32); // extern
|
||||
? func_80281FDC(? *); // extern
|
||||
? func_80281FF4(? *); // extern
|
||||
? func_8028240C(); // extern
|
||||
extern u16 D_800DC5E4;
|
||||
extern f32 D_802856B0;
|
||||
extern f32 D_802856B4;
|
||||
extern f32 D_802856B8;
|
||||
extern f32 D_802856C0;
|
||||
extern s32 D_802856C4;
|
||||
extern s16 D_802876D0;
|
||||
extern s16 D_802876D2;
|
||||
extern s32 D_802876D4;
|
||||
extern s32 D_802876D8;
|
||||
extern ? D_802876E0;
|
||||
extern ? D_802876EC;
|
||||
//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
|
||||
extern f32 D_802876EC;
|
||||
extern f32 D_802876F8;
|
||||
extern f32 D_80287700;
|
||||
extern ? D_80287704;
|
||||
extern ? D_80287710;
|
||||
extern ? D_8028771C;
|
||||
extern ? D_80287728;
|
||||
extern ? D_8028772E;
|
||||
extern ? D_80287734;
|
||||
extern ? D_8028773A;
|
||||
extern f32 D_80287704;
|
||||
extern f32 D_80287710;
|
||||
extern f32 D_8028771C;
|
||||
extern s16 D_80287728;
|
||||
extern s16 D_8028772E;
|
||||
extern s16 D_80287734;
|
||||
extern s16 D_8028773A;
|
||||
extern s16 D_80287740;
|
||||
extern f32 D_8028774E;
|
||||
extern ? D_80287750;
|
||||
extern ? D_8028775C;
|
||||
extern ? D_80287818;
|
||||
extern f32 D_80287750;
|
||||
extern s16 D_8028775C;
|
||||
extern ? D_80287824;
|
||||
extern ? D_80287998;
|
||||
extern ? D_80287B18;
|
||||
static s32 D_802856C4 = 0;
|
||||
f32 D_802856B0 = 98.0f;
|
||||
f32 D_802856B4 = 12.0f;
|
||||
f32 D_802856B8 = 52.0f;
|
||||
f32 D_802856C0 = 0.0f;
|
||||
|
||||
void func_80283430(void) {
|
||||
? *temp_a0;
|
||||
? *temp_s0;
|
||||
u32 temp_v0;
|
||||
? *phi_a0;
|
||||
? *phi_v0;
|
||||
? *phi_s1;
|
||||
? *phi_s0;
|
||||
f32 *var_s1;
|
||||
s16 *var_s0;
|
||||
s32 *var_a0;
|
||||
s32 *var_v0;
|
||||
|
||||
D_802876D8 = 0;
|
||||
D_802876E0.unk1C = 0;
|
||||
D_802856C4 = D_800DC5E4;
|
||||
D_802856C4 = (s32) D_800DC5E4;
|
||||
func_80281FDC(&D_802876EC);
|
||||
func_80281FA0(&D_802876E0, 0.0f, 0.0f, 500.0f);
|
||||
vec3f_set_dupe((f32 *) &D_802876E0, 0.0f, 0.0f, 500.0f);
|
||||
func_80281FDC(&D_80287710);
|
||||
func_80281FA0(&D_80287704, 0.0f, 0.0f, 500.0f);
|
||||
func_80281FA0(&D_8028771C, 0.0f, 1.0f, 0.0f);
|
||||
vec3f_set_dupe(&D_80287704, 0.0f, 0.0f, 500.0f);
|
||||
vec3f_set_dupe(&D_8028771C, 0.0f, 1.0f, 0.0f);
|
||||
D_802876F8 = 0.0f;
|
||||
func_80281FF4(&D_80287728);
|
||||
func_80281FF4(&D_8028772E);
|
||||
@@ -753,32 +653,29 @@ void func_80283430(void) {
|
||||
D_8028774E = 0.0f;
|
||||
D_8028774E = 0;
|
||||
D_8028774E = 0;
|
||||
D_80287700 = D_80150130;
|
||||
D_80287700 = *D_80150130;
|
||||
D_802876D0 = 0;
|
||||
D_802876D2 = 0;
|
||||
D_802876D4 = 0;
|
||||
func_8028240C();
|
||||
phi_a0 = &D_80287818;
|
||||
phi_v0 = &D_80287998;
|
||||
var_v0 = &D_80287998;
|
||||
var_a0 = &D_80287818;
|
||||
do {
|
||||
temp_v0 = phi_v0 + 0xC;
|
||||
temp_a0 = phi_a0 + 0xC;
|
||||
temp_a0->unk-C = -1;
|
||||
temp_v0->unk-C = -1;
|
||||
phi_a0 = temp_a0;
|
||||
phi_v0 = temp_v0;
|
||||
} while (temp_v0 < &D_80287B18);
|
||||
phi_s1 = &D_80287750;
|
||||
phi_s0 = &D_8028775C;
|
||||
var_v0 += 0xC;
|
||||
var_a0 += 0xC;
|
||||
var_a0->unk-C = -1;
|
||||
var_v0->unk-C = -1;
|
||||
} while ((u32) var_v0 < (u32) &D_80287B18);
|
||||
var_s0 = &D_8028775C;
|
||||
var_s1 = &D_80287750;
|
||||
do {
|
||||
func_80281FDC(phi_s1);
|
||||
func_80281FF4(phi_s0);
|
||||
temp_s0 = phi_s0 + 0x14;
|
||||
phi_s1 += 0x14;
|
||||
phi_s0 = temp_s0;
|
||||
} while (temp_s0 != &D_80287824);
|
||||
func_80281FDC(var_s1);
|
||||
func_80281FF4(var_s0);
|
||||
var_s0 += 0x14;
|
||||
var_s1 += 0x14;
|
||||
} while (var_s0 != &D_80287824);
|
||||
D_802856C0 = 0.0f;
|
||||
if (D_800DC50C == ENDING_SEQUENCE) {
|
||||
if (D_800DC50C == 5) {
|
||||
D_802856B0 = 120.0f;
|
||||
D_802856B4 = 12.0f;
|
||||
D_802856B8 = 120.0f;
|
||||
@@ -793,109 +690,95 @@ GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80283430.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80282008(? *, ? *); // extern
|
||||
? func_80282454(? *, ? *, s32 *, s16 *, s16 *); // extern
|
||||
? func_80282504(? *, ? *, s32, s16, s32); // extern
|
||||
? func_80282F44(?, ? *, ? *); // extern
|
||||
? func_80283100(? *, f32 *); // extern
|
||||
s32 func_8028336C(? *, ? *); // extern
|
||||
? func_80283428(); // extern
|
||||
? func_80284AE8(? *); // extern
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
extern s32 D_802876D8;
|
||||
extern ? D_802876E0;
|
||||
extern ? D_802876EC;
|
||||
//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
|
||||
? func_80282F44(?, s32 *, Camera *); /* extern */
|
||||
? func_80283100(s32 *, f32 *); /* extern */
|
||||
s32 func_8028336C(s32 *, Camera *); /* extern */
|
||||
? func_80284AE8(s32 *); /* extern */
|
||||
extern f32 D_802876EC;
|
||||
extern f32 D_802876F8;
|
||||
extern s8 D_802876FC;
|
||||
extern ? D_80287704;
|
||||
extern ? D_80287710;
|
||||
extern ? D_8028771C;
|
||||
extern f32 D_80287704;
|
||||
extern f32 D_80287710;
|
||||
extern f32 D_8028771C;
|
||||
|
||||
s32 func_80283648(? *arg0) {
|
||||
s32 func_80283648(Camera *camera) {
|
||||
s16 sp6E;
|
||||
s16 sp6C;
|
||||
s32 sp64;
|
||||
? sp58;
|
||||
? sp4C;
|
||||
? sp40;
|
||||
f32 sp64;
|
||||
f32 sp58;
|
||||
f32 sp4C;
|
||||
f32 sp40;
|
||||
f32 sp38;
|
||||
? *sp34;
|
||||
? *sp30;
|
||||
f32 *sp34;
|
||||
f32 *sp30;
|
||||
s32 sp2C;
|
||||
? *temp_a1;
|
||||
? *temp_a1_2;
|
||||
f32 temp_f2;
|
||||
f32 *temp_a1;
|
||||
f32 *temp_a1_2;
|
||||
f32 var_f0;
|
||||
f32 var_f2;
|
||||
s16 var_a3;
|
||||
s32 temp_t9;
|
||||
s8 temp_v1;
|
||||
s32 phi_a3;
|
||||
s16 phi_a3_2;
|
||||
f32 phi_f2;
|
||||
f32 phi_f2_2;
|
||||
f32 phi_f0;
|
||||
|
||||
func_80283428();
|
||||
func_80282008(&sp58, arg0);
|
||||
temp_a1 = arg0 + 0xC;
|
||||
vec3f_copy_dupe(&sp58, camera->pos);
|
||||
temp_a1 = &camera->unk;
|
||||
sp34 = temp_a1;
|
||||
func_80282008(&sp4C, temp_a1);
|
||||
temp_a1_2 = arg0 + 0x18;
|
||||
vec3f_copy_dupe(&sp4C, temp_a1);
|
||||
temp_a1_2 = &camera->angleX;
|
||||
sp30 = temp_a1_2;
|
||||
func_80282008(&sp40, temp_a1_2);
|
||||
temp_v1 = func_8028336C(&D_802876E0, arg0) & 0xFF;
|
||||
vec3f_copy_dupe(&sp40, temp_a1_2);
|
||||
temp_v1 = func_8028336C(&D_802876E0, camera) & 0xFF;
|
||||
D_802876FC = temp_v1;
|
||||
if (temp_v1 != 0) {
|
||||
func_80282008(&D_802876EC, arg0);
|
||||
func_80282008(&D_802876E0, sp34);
|
||||
vec3f_copy_dupe(&D_802876EC, camera->pos);
|
||||
vec3f_copy_dupe((f32 *) &D_802876E0, sp34);
|
||||
func_80284AE8(&D_802876E0);
|
||||
func_80282454(&D_802876EC, &D_802876E0, &sp64, &sp6E, &sp6C);
|
||||
phi_a3 = sp6E;
|
||||
if (sp6E >= 0x3800) {
|
||||
phi_a3 = 0x3800;
|
||||
func_80282454(&D_802876EC, (f32 *) &D_802876E0, &sp64, &sp6E, &sp6C);
|
||||
var_a3 = sp6E;
|
||||
if (var_a3 >= 0x3800) {
|
||||
var_a3 = 0x3800;
|
||||
}
|
||||
phi_a3_2 = phi_a3;
|
||||
if (phi_a3 < -0x37FF) {
|
||||
phi_a3_2 = -0x3800;
|
||||
if (var_a3 < -0x37FF) {
|
||||
var_a3 = -0x3800;
|
||||
}
|
||||
if ((phi_a3_2 == 0x3800) || (sp6E = phi_a3_2, (phi_a3_2 == -0x3800))) {
|
||||
sp6E = phi_a3_2;
|
||||
func_80282504(&D_802876EC, &D_802876E0, sp64, phi_a3_2, sp6C);
|
||||
if ((var_a3 == 0x3800) || (sp6E = var_a3, (var_a3 == -0x3800))) {
|
||||
sp6E = var_a3;
|
||||
func_80282504(&D_802876EC, (f32 *) &D_802876E0, sp64, var_a3, (s16) (s32) sp6C);
|
||||
}
|
||||
temp_f2 = D_802876F8;
|
||||
phi_f2 = temp_f2;
|
||||
if (temp_f2 > 65536.0f) {
|
||||
phi_f2 = temp_f2 - 65536.0f;
|
||||
var_f2 = D_802876F8;
|
||||
if (var_f2 > 65536.0f) {
|
||||
var_f2 -= 65536.0f;
|
||||
}
|
||||
phi_f2_2 = phi_f2;
|
||||
if (phi_f2 < -65536.0f) {
|
||||
phi_f2_2 = phi_f2 + 65536.0f;
|
||||
if (var_f2 < -65536.0f) {
|
||||
var_f2 += 65536.0f;
|
||||
}
|
||||
D_802876F8 = phi_f2_2;
|
||||
phi_f0 = phi_f2_2;
|
||||
if (phi_f2_2 < 0.0f) {
|
||||
phi_f0 = 65536.0f + phi_f2_2;
|
||||
D_802876F8 = var_f2;
|
||||
var_f0 = var_f2;
|
||||
if (var_f2 < 0.0f) {
|
||||
var_f0 = 65536.0f + var_f2;
|
||||
}
|
||||
temp_t9 = phi_f0 & 0xFFFF;
|
||||
temp_t9 = (u32) var_f0 & 0xFFFF;
|
||||
sp2C = temp_t9;
|
||||
sp38 = sins(65536.0f, temp_t9);
|
||||
arg0->unk18 = coss(sp6C) * sp38;
|
||||
arg0->unk1C = coss(sp2E);
|
||||
sp38 = sins((bitwise f32) sp2E);
|
||||
arg0->unk20 = sins((bitwise f32) sp6C) * -sp38;
|
||||
func_80282008(arg0, &D_802876EC);
|
||||
func_80282008(sp34, &D_802876E0);
|
||||
if ((D_800DC50C == CREDITS_SEQUENCE) && (gIsMirrorMode != 0)) {
|
||||
arg0->unk0 = -arg0->unk0;
|
||||
arg0->unkC = -arg0->unkC;
|
||||
sp38 = sins((u16) temp_t9);
|
||||
camera->angleX = coss((u16) sp6C) * sp38;
|
||||
camera->angleY = coss(unksp2E);
|
||||
sp38 = sins(unksp2E);
|
||||
camera->angleZ = sins((u16) sp6C) * -sp38;
|
||||
vec3f_copy_dupe(camera->pos, &D_802876EC);
|
||||
vec3f_copy_dupe(sp34, (f32 *) &D_802876E0);
|
||||
if ((D_800DC50C == 9) && (gIsMirrorMode != 0)) {
|
||||
camera->pos[0] = -camera->pos[0];
|
||||
camera->unk = -camera->unk;
|
||||
}
|
||||
}
|
||||
func_80282F44(0, &D_802876E0, arg0);
|
||||
func_80282F44(1, &D_802876E0, arg0);
|
||||
func_80283100(&D_802876E0, &D_80150130);
|
||||
func_80282008(&D_80287710, arg0);
|
||||
func_80282008(&D_80287704, sp34);
|
||||
func_80282008(&D_8028771C, sp30);
|
||||
func_80282F44(0, &D_802876E0, camera);
|
||||
func_80282F44(1, &D_802876E0, camera);
|
||||
func_80283100(&D_802876E0, D_80150130);
|
||||
vec3f_copy_dupe(&D_80287710, camera->pos);
|
||||
vec3f_copy_dupe(&D_80287704, sp34);
|
||||
vec3f_copy_dupe(&D_8028771C, sp30);
|
||||
return D_802876D8;
|
||||
}
|
||||
#else
|
||||
@@ -1030,7 +913,7 @@ void func_80283EA0(s32 arg0) {
|
||||
}
|
||||
|
||||
void func_80283ED0(Vec3f arg0) {
|
||||
func_80282008(arg0, &gPlayerTwo->pos[0]);
|
||||
vec3f_copy_dupe(arg0, &gPlayerTwo->pos[0]);
|
||||
}
|
||||
|
||||
void func_80283EF8(Vec3f arg0) {
|
||||
@@ -1046,7 +929,7 @@ void func_80283F6C(s32 arg0) {
|
||||
}
|
||||
|
||||
void func_80283FCC(Vec3f arg0) {
|
||||
func_80282008(arg0, &gPlayerThree->pos[0]);
|
||||
vec3f_copy_dupe(arg0, &gPlayerThree->pos[0]);
|
||||
}
|
||||
|
||||
void func_80283FF4(Vec3f arg0) {
|
||||
@@ -1100,7 +983,7 @@ GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80284184.s")
|
||||
|
||||
void func_802841E8(Vec3f arg0) {
|
||||
func_80282E58(arg0, &D_80285940, 0);
|
||||
func_80281FA0(arg0, -3202.0f, 90.0f, -478.0f);
|
||||
vec3f_set_dupe(arg0, -3202.0f, 90.0f, -478.0f);
|
||||
}
|
||||
|
||||
void func_8028422C(s32 arg0) {
|
||||
@@ -1230,16 +1113,33 @@ GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802846E4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80280268(u8); // extern
|
||||
? func_80282D90(s32, s32, s32, ?); // extern
|
||||
? func_802832C4(? *, s32, s16, s16); // extern
|
||||
extern u16 D_800DC5E4;
|
||||
extern f32 D_802856B4;
|
||||
extern ? D_80286A04;
|
||||
extern ? D_80286A10;
|
||||
extern ? D_80286B34;
|
||||
extern s16 D_802876D2;
|
||||
//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
|
||||
? func_80280268(u8); /* extern */
|
||||
static ? D_80286A04; /* unable to generate initializer */
|
||||
static ? D_80286A10; /* unable to generate initializer */
|
||||
static u16 D_80286B34[0x14] = {
|
||||
0x0096,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F3,
|
||||
0x00F2,
|
||||
0x00F2,
|
||||
0x00F2,
|
||||
0x00F9,
|
||||
0x00F0,
|
||||
0,
|
||||
};
|
||||
f32 D_802856B4 = 12.0f;
|
||||
|
||||
void func_802847CC(s32 arg0) {
|
||||
u16 sp2E;
|
||||
@@ -1248,59 +1148,59 @@ void func_802847CC(s32 arg0) {
|
||||
f32 temp_f4;
|
||||
s16 temp_a2;
|
||||
s16 temp_a2_2;
|
||||
s32 temp_f6;
|
||||
s32 var_t9;
|
||||
u16 temp_v0;
|
||||
u16 temp_v0_5;
|
||||
u8 temp_v0_2;
|
||||
void *temp_v0_3;
|
||||
void *temp_v0_4;
|
||||
s32 phi_t9;
|
||||
|
||||
temp_f4 = D_802856B4;
|
||||
temp_f6 = temp_f4;
|
||||
temp_v0 = *(&D_80286A10 + (D_800DC5E4 * 0x10));
|
||||
if ((MIPS2C_ERROR(cfc1) & 0x78) != 0) {
|
||||
if ((MIPS2C_ERROR(cfc1) & 0x78) == 0) {
|
||||
phi_t9 = (temp_f4 - 2.1474836e9f) | 0x80000000;
|
||||
if ((M2C_ERROR(cfc1) & 0x78) != 0) {
|
||||
if ((M2C_ERROR(cfc1) & 0x78) == 0) {
|
||||
var_t9 = (s32) (temp_f4 - 2.1474836e9f) | 0x80000000;
|
||||
} else {
|
||||
goto block_3;
|
||||
}
|
||||
} else {
|
||||
phi_t9 = temp_f6;
|
||||
if (temp_f6 < 0) {
|
||||
var_t9 = (s32) temp_f4;
|
||||
if (var_t9 < 0) {
|
||||
block_3:
|
||||
phi_t9 = -1;
|
||||
var_t9 = -1;
|
||||
}
|
||||
}
|
||||
sp2E = (temp_v0 - phi_t9) - 0xA;
|
||||
sp2E = (temp_v0 - var_t9) - 0xA;
|
||||
sp2C = temp_v0;
|
||||
func_802832C4(&func_80283CD0, arg0, 0, 0);
|
||||
func_802832C4(&func_80283A00, arg0, 8, 8);
|
||||
func_802832C4(&func_80283C78, arg0, 0x95, 0x95);
|
||||
func_802832C4(&func_80282434, arg0, 0, 0);
|
||||
func_802832C4(func_80283CD0, arg0, 0, 0);
|
||||
func_802832C4(func_80283A00, arg0, 8, 8);
|
||||
func_802832C4(func_80283C78, arg0, 0x0095, 0x0095);
|
||||
func_802832C4(func_80282434, arg0, 0, 0);
|
||||
temp_v0_2 = *(&D_80286A04 + (D_800DC5E4 * 0x10));
|
||||
if (temp_v0_2 != 1) {
|
||||
if (temp_v0_2 != 2) {
|
||||
func_802832C4(&func_802839E0, arg0, 0, 0);
|
||||
sp24 = sp2E;
|
||||
func_802832C4(&func_802839CC, arg0, sp2E, sp2E);
|
||||
temp_a2 = sp2E - 0x14;
|
||||
func_802832C4(&func_802839E0, arg0, temp_a2, temp_a2);
|
||||
temp_v0_3 = (D_800DC5E4 * 0x10) + &D_80286A04;
|
||||
func_80282D90(arg0, temp_v0_3->unk4, temp_v0_3->unk8, 0);
|
||||
} else {
|
||||
func_802832C4(&func_802839E0, arg0, 0, 0);
|
||||
func_802832C4(&func_80283D04, arg0, 0xF7, 0xF7);
|
||||
temp_v0_4 = (D_800DC5E4 * 0x10) + &D_80286A04;
|
||||
func_80282D90(arg0, temp_v0_4->unk4, temp_v0_4->unk8, 0);
|
||||
}
|
||||
} else {
|
||||
func_802832C4(&func_802839CC, arg0, 0, -1);
|
||||
switch (temp_v0_2) { /* irregular */
|
||||
case 1:
|
||||
func_802832C4(func_802839CC, arg0, 0, -1);
|
||||
temp_a2 = sp2E - 0x14;
|
||||
func_802832C4(func_802839E0, arg0, temp_a2, temp_a2);
|
||||
break;
|
||||
case 2:
|
||||
func_802832C4(func_802839B4, arg0, 0, 0);
|
||||
func_802832C4(func_80283D04, arg0, 0x00F7, 0x00F7);
|
||||
temp_v0_3 = (D_800DC5E4 * 0x10) + &D_80286A04;
|
||||
func_80282D90(arg0, temp_v0_3->unk4, temp_v0_3->unk8, 0);
|
||||
break;
|
||||
default:
|
||||
func_802832C4(func_802839B4, arg0, 0, 0);
|
||||
sp24 = (s32) sp2E;
|
||||
func_802832C4(func_802839CC, arg0, (s16) sp2E, (s16) sp2E);
|
||||
temp_a2_2 = sp2E - 0x14;
|
||||
func_802832C4(&func_802839E0, arg0, temp_a2_2, temp_a2_2);
|
||||
func_802832C4(func_802839E0, arg0, temp_a2_2, temp_a2_2);
|
||||
temp_v0_4 = (D_800DC5E4 * 0x10) + &D_80286A04;
|
||||
func_80282D90(arg0, temp_v0_4->unk4, temp_v0_4->unk8, 0);
|
||||
break;
|
||||
}
|
||||
if (gCCSelection == CC_EXTRA) {
|
||||
sp2C = *(&D_80286B34 + (D_800DC5E4 * 2));
|
||||
if (gCCSelection == 3) {
|
||||
sp2C = D_80286B34[D_800DC5E4];
|
||||
}
|
||||
if (sp2C == D_802876D2) {
|
||||
temp_v0_5 = D_800DC5E4;
|
||||
|
||||
+9
-4
@@ -5,20 +5,25 @@
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_80281FA0(Vec3f, f32, f32, f32);
|
||||
void func_80281FC0(Vec3s, s16, s16, s16);
|
||||
void vec3f_set_dupe(Vec3f, f32, f32, f32);
|
||||
void vec3s_set_dupe(Vec3s, s16, s16, s16);
|
||||
void func_80281FDC(Vec3f);
|
||||
void func_80281FF4(Vec3s);
|
||||
void func_80282008(Vec3f, Vec3f);
|
||||
void func_80282024(Vec3s, Vec3s);
|
||||
void vec3f_copy_dupe(Vec3f, Vec3f);
|
||||
void vec3s_copy_dupe(Vec3s, Vec3s);
|
||||
void func_80282040();
|
||||
void func_80282048();
|
||||
void func_80282050(Vec3f, Vec3f, s16);
|
||||
void func_802820F8(Vec3f, Vec3f, s16);
|
||||
s32 func_802821A0(f32*, f32, f32);
|
||||
s32 func_80282200(s16*, s16, s16);
|
||||
s32 func_802822AC(f32*, f32, f32);
|
||||
s32 func_80282364(s16*, s16, s16);
|
||||
void func_8028240C();
|
||||
void func_80282434(s32);
|
||||
void func_80282454(Vec3f, Vec3f, f32*, s16*, s16*);
|
||||
void func_80282504(Vec3f, Vec3f, f32, s16, s16);
|
||||
void func_802825C8(Vec3f, Vec3f, Vec3f, Vec3s);
|
||||
s32 func_80282D90(s32, s32, s32, s32);
|
||||
void func_80282E58(s32, s32, s32);
|
||||
void func_80282F00(s16*, s16);
|
||||
|
||||
Reference in New Issue
Block a user