Files
banjo-kazooie/src/core2/code_3AE10.c
2022-07-15 17:09:41 -05:00

140 lines
3.2 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
extern f32 func_802BD51C(void);
extern void func_802BDCE0(f32, f32*, f32*, f32, f32);
extern void func_802BDE88(f32*, f32*, f32, f32, f32);
extern void func_802589E4(f32[3], f32, f32);
extern void func_802BD0D8(s32);
/* .data */
extern f32 D_80365DA0;
extern f32 D_80365DA4;
extern f32 D_80365DA8;
extern f32 D_80365DAC;
extern u8 D_80365DB0;
extern f32 D_80365DB4;
/* .code */
void func_802C1DA0(void){}
void func_802C1DA8(void){}
bool func_802C1DB0(f32 arg0) {
f32 pad4C;
f32 sp40[3];
f32 sp34[3];
f32 sp28[3];
f32 sp1C[3];
func_802BD384(sp40);
func_802C02D4(sp28);
ml_vec3f_diff_copy(sp34, sp40, sp28);
D_80365DAC = gu_sqrtf(sp34[0]*sp34[0] + sp34[2]*sp34[2]);
func_8025801C(sp34, &D_80365DA4);
D_80365DA8 = 0.0f;
D_80365DA0 = mlNormalizeAngle(D_80365DA4 + arg0);
D_80365DB0 = 0;
pad4C = (arg0 / 5.0);
func_802589E4(sp1C, mlNormalizeAngle(D_80365DA4 + pad4C), D_80365DAC);
sp1C[0] += sp28[0];
sp1C[2] += sp28[2];
pad4C = sp40[1];
sp1C[1] = pad4C;
if (func_802BCE0C(sp40, sp1C)) {
func_802BD0D8(0xA);
return TRUE;
}
return FALSE;
}
bool func_802C1EE0(void){
return D_80365DB0;
}
f32 func_802C1EEC(void){
f32 sp1C[3];
if(func_802C0190() == 3){
func_802BD384(sp1C);
return sp1C[1];
}
else{
return func_802BD51C();
}
}
void func_802C1F30(void) {
f32 spB4[3];
f32 spA8[3];
f32 sp9C[3];
f32 sp90[3];
f32 sp84[3];
f32 sp80;
s32 sp7C;
s32 sp78;
f32 sp6C[3];
f32 sp60[3];
f32 temp_f0;
f32 sp50[3];
f32 sp44[3];
f32 sp38[3];
f32 sp2C[3];
s32 phi_a0;
func_802BD384(sp6C);
func_802BD384(sp9C);
func_802C02D4(spB4);
sp80 = time_getDelta();
if(D_80365DB0){
return;
}
func_802BDCE0(D_80365DA0, &D_80365DA4, &D_80365DA8, 50.0f, 3.0f);
D_80365DB0 = (mlAbsF(D_80365DA0 - D_80365DA4) < 0.5);
ml_vec3f_diff_copy(sp60, sp9C, spB4);
D_80365DAC = gu_sqrtf(sp60[0]*sp60[0] + sp60[2]*sp60[2]);
func_802BDE88(&D_80365DB4, &D_80365DAC, func_802BD8D4(), 0.01f, 0.008f);
func_80256E24(sp90, 0.0f, D_80365DA4, 0.0f, 0.0f, D_80365DAC);
ml_vec3f_add(spA8, spB4, sp90);
spA8[1] = sp9C[1] + ((func_802C1EEC() - sp9C[1]) * sp80 * 2);
func_802BD334(spA8);
sp78 = 0;
sp7C = 0;
if (func_802BE60C() != 0) {
D_80365DB0 = 1;
D_80365DB4 = 0.0f;
sp7C = 1;
}
phi_a0 = (mlDiffDegF(D_80365DA0, D_80365DA4) > 0.0f) ? 2 : 3;
if (func_802BC84C(phi_a0)) {
D_80365DB4 = 0.0f;
sp78 = 1;
sp7C += 1;
}
func_802BE6FC(sp84, spB4);
if (sp7C != 0) {
func_802BD384(sp44);
ml_vec3f_diff_copy(sp50, sp44, spB4);
D_80365DAC = gu_sqrtf((sp50[0] * sp50[0]) + (sp50[2] * sp50[2]));
}
if (sp78 != 0) {
D_80365DB0 = 1;
func_802BD35C(sp84);
return;
}
func_802BD3A8(sp38);
sp2C[0] = mlDiffDegF(sp84[0], sp38[0]);
sp2C[1] = mlDiffDegF(sp84[1], sp38[1]);
sp2C[2] = 0.0f;
sp84[0] = sp38[0] + (sp2C[0] * sp80 * 4.0f);
sp84[1] = sp38[1] + sp2C[1];
func_802BD35C(sp84);
if (D_80365DB0 != 0) {
D_80365DB4 = 0.0f;
}
}