mk64/src/code_80091440.c

92 lines
2.7 KiB
C

#include "variables.h"
#include "code_80091440.h"
void func_80091440(s8 arg0) {
if ((gPlayers[arg0].unk_044 & 0x800) == 0) {
gPlayers[arg0].unk_044 |= 0x2400;
gPlayers[arg0].unk_000 &= ~0x2000;
}
}
void func_800914A0(void) {
D_80152308 = gPlayerOneCopy->unk_006 + 7;
if ((s32) D_8015F6F8 < D_80152308) {
D_80152308 -= D_8015F6F8;
}
}
#ifdef MIPS_TO_C
//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-15-2022
extern u32 D_8015F718;
static ? D_800E7080; /* unable to generate initializer */
static ? D_800E708C; /* unable to generate initializer */
void func_800914E0(void) {
? sp64;
? sp58;
s32 sp48;
f32 sp38;
f32 sp34;
f32 sp30;
Player **var_t1;
f32 temp_f12;
f32 temp_f14;
f32 temp_f16;
f32 temp_f4;
f32 temp_f8;
s16 temp_a0;
s16 temp_a0_2;
s16 temp_v0;
u16 temp_t0;
void *temp_v0_2;
sp64.unk0 = (s32) D_800E7080.unk0;
sp64.unk4 = (s32) D_800E7080.unk4;
sp64.unk8 = (s32) D_800E7080.unk8;
sp58.unk0 = (s32) D_800E708C.unk0;
sp58.unk4 = (s32) D_800E708C.unk4;
sp58.unk8 = (s32) D_800E708C.unk8;
temp_a0 = D_8015F718 & 0xFFFFFF;
var_t1 = &gPlayerOneCopy;
sp48 = gSegmentTable[(u32) D_8015F718 >> 0x18] + temp_a0 + 0x80000000;
temp_t0 = D_80152308;
temp_v0 = (s16) gPlayerOneCopy->unk_006 - temp_t0;
cameras->up[0] = 0.0f;
cameras->up[2] = 0.0f;
cameras->up[1] = 1.0f;
if (temp_v0 == 7) {
func_800914A0(temp_a0, 7);
goto block_5;
}
if (temp_v0 < 0xE) {
temp_a0_2 = temp_v0 + (s16) D_8015F6F8;
if (temp_a0_2 == 7) {
func_800914A0(temp_a0_2, 7);
block_5:
var_t1 = &gPlayerOneCopy;
}
}
temp_v0_2 = (temp_t0 * 8) + sp48;
temp_f8 = (f32) (temp_v0_2->unk0 + 0xA);
cameras->pos[0] = temp_f8;
temp_f16 = (f32) (temp_v0_2->unk2 + 7);
cameras->pos[1] = temp_f16;
temp_f4 = (f32) (temp_v0_2->unk4 - 0x14);
cameras->pos[2] = temp_f4;
cameras->lookAt[0] = (*var_t1)->pos[0];
cameras->lookAt[1] = (*var_t1)->pos[1];
cameras->lookAt[2] = (*var_t1)->pos[2];
func_802ADDC8(&cameras->unk_54, 20.0f, temp_f8, temp_f16, temp_f4);
temp_f12 = cameras->lookAt[0] - cameras->pos[0];
sp38 = temp_f12;
temp_f14 = cameras->lookAt[2] - cameras->pos[2];
sp34 = cameras->lookAt[1] - cameras->pos[1];
sp30 = temp_f14;
cameras->rot[1] = atan2s(temp_f12, temp_f14);
cameras->rot[0] = atan2s(sqrtf((sp38 * sp38) + (temp_f14 * temp_f14)), sp34);
cameras->rot[2] = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091440/func_800914E0.s")
#endif