Files
banjo-kazooie/src/core2/code_33F90.c
2023-01-30 00:02:44 -06:00

495 lines
18 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
extern void rumbleManager_80250E6C(f32, f32);
extern void func_80258E60(f32[3], f32[3], f32);
extern void func_80258EF4(f32[3], f32[3], f32);
extern void func_80258F88(f32[3], f32[3], f32);
extern void func_802BE720(void);
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
f32 unk10;
f32 unk14;
f32 unk18;
u8 unk1C;
// u8 pad1D[3];
}Struct_core2_33F90_0;
void func_802BB200(void);
void func_802BB22C(void);
void func_802BB318(s32 arg0);
void func_802BB360(s32 arg0, f32 arg1);
void func_802BB3AC(s32 arg0, f32 arg1);
/* .data */
extern s32 D_80364E00 = 0;
extern s32 D_80364E04 = -1;
s16 D_80364E08[] = { 0, -1, 0, 1, 0x13, 0, -1, 0x32};
s16 D_80364E18[] = { 0xF, -1, 0xF, 2, 0x1B, 3, -1, 0x2A};
s16 D_80364E28[] = { 0x3, -1, 0xF, 4, 0x20, 5, -1, 0x37};
s16 D_80364E38[] = { 0x9, 6, 0x9, -1, 0x14, 7, -1, 0x2E};
s16 D_80364E48[] = { 0, 9, 0, -1, -1, 0x32};
s16 D_80364E54[] = { 4, 0xE, 4, -1, -1, 0x1E};
s16 D_80364E60[] = { 4, 0xF, 4, -1, -1, 0x1E};
s16 D_80364E6C[] = { 4, 0x10, 4, -1, -1, 0x1E};
s16 D_80364E78[] = { 4, 0x11, 4, -1, -1, 0x1E};
s16 D_80364E84[] = { 0xC, 0xF, 0xC, -1, 0x28, 0x12, -1, 0x3C};
s16 D_80364E94[] = { 0, 0x10, 0, -1, 0x1C, 0x11, -1, 0x32};
s16 D_80364EA4[] = { 0, 4, 0, -1, -1, 0x5A};
s16 D_80364EB0[] = { 8, 0, 0, -1, -1, 0x32};
s16 D_80364EBC[] = { 0, 1, 0, -1, -1, 0x28};
s16 D_80364EC8[] = { 0, 0x13, 0, -1, -1, 0x1E};
s16 D_80364ED4[] = { 0, 0x14, 0, -1, -1, 0x1E};
s16 D_80364EE0[] = { 0, 0x15, 0, -1, -1, 0x1E};
s16 D_80364EEC[] = { 0, -1, 0, 2, -1, 0x2D};
s16 D_80364EF8[] = { 0, -1, 0, 0, -1, 0x2D};
s16 D_80364F04[] = { 0, -1, 0, 0x18, -1, 0x19};
s16 D_80364F10[] = { 0xB, 0x13, 0xB, -1, -1, 0x22};
s16 D_80364F1C[] = { 8, 9, 8, -1, -1, 0x22};
s16 D_80364F28[] = { 8, 0xA, 8, -1, -1, 0x22};
s16 D_80364F34[] = { 8, 0xB, 8, -1, -1, 0x22};
s16 D_80364F40[] = { 8, 0xC, 8, -1, -1, 0x22};
s16 D_80364F4C[] = { 0, 0xC, 0, -1, -1, 0x28};
s16 D_80364F58[] = { 0, -1, 0, 8, -1, 0x23};
s16 D_80364F64[] = { -1, 1};
s16 D_80364F68[] = { 0, -1, 0, 0xA, -1, 0x1A};
s16 D_80364F74[] = { 8, 0xE, 0, -1, -1, 0x32};
s16 D_80364F80[] = { 0, 0xF, 0, -1, -1, 0x28};
s16 D_80364F8C[] = { 0, 0xD, 0, -1, -1, 0x28};
s16 D_80364F98[] = {0x50, 4, 0, -1, -1, 0x78};
s16 D_80364FA4[] = { 8, 0xF, 0, -1, -1, 0x32};
s16 D_80364FB0[] = { 0, 0x10, 0, -1, -1, 0x28};
s16 D_80364FBC[] = { 0, 0x11, 0, -1, -1, 0x1E};
s16 D_80364FC8[] = { -1, 1};
s16 D_80364FCC[] = { 0, -1, 0, 1, -1, 0x28};
s16 D_80364FD8[] = { 0, -1, 0, 0, -4, 0x28};
s16 D_80364FE4[] = { 0, -1, 0, 0, -4, 0x28};
s16 D_80364FF0[] = { 0, -1, 0, 0, 8, 1, -4, 0x19};
s16 D_80365000[] = { 0, -1, 0, 0, -4, 0x28};
s16 D_8036500C[] = { 0, -1, 0, 0, 0xB, 1, -1, 0x2D};
s16 D_8036501C[] = { 0, -1, 0, 3, 0x14, 2, -1, 0x2D};
s16 D_8036502C[] = { 0, -1, 0, 4, 0x12, 5, -1, 0x29};
s16 D_8036503C[] = { 0, -1, 0, 0, -4, 0x1E};
s16 D_80365048[] = { 0, -1, 0, 2, 0x23, 1, 0x46, -6, -1, 0x46};
s16 D_8036505C[] = { 0, -1, 0, 1, 0x1A, -6, -1, 0x1A};
s16 D_8036506C[] = { 0, -1, 0, 0xC, 0xD, 0xD, 0x20, 0x3, 0x34, -6, -1, 0x39};
s16 D_80365084[] = { 0, -1, 0, 0, 0x13, 1, 0x30, 0xD, -4, 0x53};
s16 D_80365098[] = { 0, -1, 0, 6, 0xD, 7, 0x20, 0x14, -4, 0x39};
s16 D_803650AC[] = { 0, -1, 0, 2, 0xD, 3, 0x20, 0xB, -4, 0x39};
s16 D_803650C0[] = { 0, -1, 0, 0, 0xD, 1, 0x20, 0xC, -4, 0x39};
s16 D_803650D4[] = { 0, -1, 0, 3, 0xD, 4, 0x20, 0x13, -4, 0x39};
s16 D_803650E8[] = { 0, -1, 0, 0, 0xD, 1, 0x20, 0x4, -4, 0x39};
s16 D_803650FC[] = { 0, -1, 0, 0, 0xD, 1, 0x20, 0xD, -4, 0x41};
s16 D_80365110[] = { 0, -1, 0, 3, 0xD, 4, 0x20, 0x20, -4, 0x39};
s16 D_80365124[] = { 0, -1, 0, 2, 0xF, 3, -4, 0x28};
s16 D_80365134[] = { 0, -1, 0, 5, 0xC, 6, -4, 0x21};
s16 D_80365144[] = { 0, -1, 0, 0, 0xC, 1, -4, 0x21};
s16 D_80365154[] = { 0, -1, 0, 0, 0x2D, -6, -1, 0x2D};
s16 D_80365164[] = { 0, -1, 0, 1, -4, 0x2D};
s16 D_80365170[] = { 0, -1, 0, 2, -4, 0x2D};
s16 D_8036517C[] = { 0, -1, 0, 3, -4, 0x2D};
s16 D_80365188[] = { 0, -1, 0, 6, 0xD, 0x10, 0x32, -6, -1, 0x32};
s16 D_8036519C[] = {-1, 1};
s16 D_803651A0[] = {-1, 1};
s16 D_803651A4[] = {-1, 1};
s16 D_803651A8[] = {-1, 1};
s16 D_803651AC[] = {-1, 1};
s16 D_803651B0[] = {-1, 1};
s16 D_803651B4[] = {-1, 1};
s16 D_803651B8[] = {-1, 1};
s16 D_803651BC[] = {-1, 1};
s16 D_803651C0[] = {-1, 1};
s16 D_803651C4[] = {-1, 1};
s16 D_803651C8[] = {-1, 1};
s16 D_803651CC[] = {-1, 1};
s16 D_803651D0[] = {-1, 1};
s16 D_803651D4[] = {-1, 1};
s16 D_803651D8[] = {-1, 1};
s16 D_803651DC[] = {-1, 1};
s16 D_803651E0[] = {-1, 1};
s16 D_803651E4[] = {-1, 1};
s16 D_803651E8[] = {-1, 1};
s16 D_803651EC[] = {-1, 1};
s16 D_803651F0[] = {-1, 1};
s16 D_803651F4[] = {-1, 1};
s16 D_803651F8[] = {-1, 1};
s16 D_803651FC[] = {-1, 1};
s16 D_80365200[] = {-1, 0};
s16 D_80365204[] = {-1, 0};
s16 D_80365208[] = {-1, 0};
s16 D_8036520C[] = {-1, 0};
s16 D_80365210[] = {-1, 0};
s16 D_80365214[] = {-1, 0};
s16 D_80365218[] = {-1, 0};
s16 D_8036521C[] = {-1, 0};
s16 D_80365220[] = { 0, -1, 0, 4, -4, 0x17};
s16 D_8036522C[] = { 0, -1, 0, 0x1E, -4, 0x17};
s16 D_80365238[] = { 0, -1, 0, 0x1F, -4, 0x17};
s16 D_80365244[] = { 0, -1, 0, 0xF, -4, 0x17};
s16 D_80365250[] = { 0, -1, 0, 6, -4, 0x17};
s16 D_8036525C[] = { 0, -1, 0, 0xA, -4, 0x17};
s16 D_80365268[] = { 0, -1, 0, 0xD, -4, 0x17};
s16 D_80365274[] = { 0, -1, -4, 0x17};
s16 D_8036527C[] = { 0, -1, -1, 0x23};
s16 D_80365284[] = { 0, -1, -1, 0x23};
s16 D_8036528C[] = { 0, -1, -1, 0x23};
s16 D_80365294[] = { 0, -1, -1, 0x23};
s16 D_8036529C[] = { 0, -1, -1, 0x23};
s16 D_803652A4[] = { 0, -1, -1, 0x23};
s16 D_803652AC[] = { 0, -1, -1, 0x23};
s16 D_803652B4[] = { 0, -1, -1, 0x23};
s16 D_803652BC[] = { 0, -1, 0, 0xB, -1, 0x1E};
s16 D_803652C8[] = { 0, -1, 0, 1, -1, 0x1E};
s16 D_803652D4[] = { 0, -1, 0, 2, -1, 0x1E};
s16 D_803652E0[] = { 0, -1, 0, 5, -1, 0x1E};
s16 D_803652EC[] = { 0, -1, 0, 4, -1, 0x1E};
s16 D_803652F8[] = { 0, -1, 0, 4, -1, 0x1E};
s16 D_80365304[] = { 0, -1, -1, 0x1E};
s16 D_8036530C[] = { 0, -1, -1, 0x1E};
s16 D_80365314[] = { 0, -1, 0, 0xD, -4, 0xD};
s16 D_80365320[] = { 0, -1, 0, 0xE, -1, 0x19};
s16 D_8036532C[] = { 0, -1, 0, 0xB, 0x8, 0xC, -4, 0x20};
s16 D_8036533C[] = { 0, -1, 0, 2, 0x8, 0x3, -4, 0x1E};
s16 D_8036534C[] = { 0xB, 0x1, 0xB, -1, -1, 0x22};
s16 D_80365358[] = { 0, -1, 0, 0, 0xF, 1, 0x1E, -6, -1, 0x1E};
s16 D_8036536C[] = { 0, -1, 8, 0x1A, -1, 0x1E};
s16 D_80365378[] = { 0, -1, 0, 4, 0x1E, -6, -1, 0x1E};
s16 D_80365388[] = { 0, 3, 5, 4, -1, 0x32};
s16 D_80365394[] = { 0, -1, 0, 1, -4, 0x1E};
s16 D_803653A0[] = { 0, -1, 0, 1, -4, 0x1E};
s16 D_803653AC[] = { 0, -1, 0, 2, -4, 0x1E};
s16 D_803653B8[] = { 0, -1, 0, 0x2E, -4, 0x1E};
s16 D_803653C4[] = { 0, -1, 0, 0x1B, -4, 0x1E};
s16 D_803653D0[] = { 0, -1, 0, 9, -4, 0x1E};
s16 D_803653DC[] = { 0, -1, 0, 5, -4, 0x1E};
s16 D_803653E8[] = {-1, 0};
s16 D_803653EC[] = {-1, 0};
s16 D_803653F0[] = { 0, -1, 0, 8, -4, 0x17};
s16 D_803653FC[] = { 0, -1, 0, 8, -4, 0x17};
s16 D_80365408[] = { 0, -1, -1, 0x23};
s16 D_80365410[] = { 0, -1, -1, 0x23};
s16 D_80365418[] = { 0, -1, 0, 6, -1, 0x1E};
s16 D_80365424[] = { 0, -1, 0, 0xC, -1, 0x1E};
s16 D_80365430[] = {-1, 1};
s16 D_80365434[] = {-1, 1};
s16 D_80365438[] = {-1, 1};
s16 D_8036543C[] = {-1, 1};
s16 D_80365440[] = {-1, 1};
s16 D_80365444[] = {-1, 1};
s16 D_80365448[] = {-1, 1};
s16 D_8036544C[] = {-1, 1};
s16 D_80365450[] = {-1, 1};
s16 D_80365454[] = {-1, 1};
s16 D_80365458[] = {-1, 1};
s16 D_8036545C[] = {-1, 1};
s16 D_80365460[] = {-1, 1};
s16 D_80365464[] = {-1, 1};
s16 D_80365468[] = {-1, 1};
s16 D_8036546C[] = {-1, 1};
s16 D_80365470[] = {-1, 1};
s16 D_80365474[] = {-1, 1};
s16 D_80365478[] = {-1, 1};
s16 D_8036547C[] = {-1, 1};
s16 D_80365480[] = {-1, 1};
s16 D_80365484[] = {-1, 1};
s16 D_80365488[] = {-1, 1};
s16 D_8036548C[] = {-1, 1};
s16 D_80365490[] = {-1, 1};
s16 D_80365494[] = {-1, 1};
s16 D_80365498[] = {-1, 1};
s16 D_8036549C[] = {-1, 1};
s16 D_803654A0[] = {-1, 1};
s16 D_803654A4[] = {-1, 1};
s16 D_803654A8[] = {-1, 1};
s16 D_803654AC[] = {-1, 1};
s16 D_803654B0[] = {-1, 1};
s16 D_803654B4[] = {-1, 1};
s16 *D_803654B8[] = {
D_80364E08,
D_80364E18,
D_80364E28,
D_80364E38,
D_80364E48,
D_80364E54,
D_80364E60,
D_80364E6C,
D_80364E78,
D_80364E84,
D_80364E94,
D_80364EA4,
D_80364EB0,
D_80364EBC,
D_80364EC8,
D_80364ED4,
D_80364EE0,
D_80364EEC,
D_80364EF8,
D_80364F04,
D_80364F10,
D_80364F1C,
D_80364F28,
D_80364F34,
D_80364F40,
D_80364F4C,
D_80364F58,
D_80364F64,
D_80364F68,
D_80364F74,
D_80364F80,
D_80364F8C,
D_80364F98,
D_80364FA4,
D_80364FB0,
D_80364FBC,
D_80364FC8,
D_80364FCC,
D_80364FD8,
D_80364FE4,
D_80364FF0,
D_80365000,
D_8036500C,
D_8036501C,
D_8036502C,
D_8036503C,
D_80365048,
D_8036505C,
D_8036506C,
D_80365084,
D_80365098,
D_803650AC,
D_803650C0,
D_803650D4,
D_803650E8,
D_803650FC,
D_80365110,
D_80365124,
D_80365134,
D_80365144,
D_80365154,
D_80365164,
D_80365170,
D_8036517C,
D_80365188,
D_8036519C,
D_803651A0,
D_803651A4,
D_803651A8,
D_803651AC,
D_803651B0,
D_803651B4,
D_803651B8,
D_803651BC,
D_803651C0,
D_803651C4,
D_803651C8,
D_803651CC,
D_803651D0,
D_803651D4,
D_803651D8,
D_803651DC,
D_803651E0,
D_803651E4,
D_803651E8,
D_803651EC,
D_803651F0,
D_803651F4,
D_803651F8,
D_803651FC,
D_80365200,
D_80365204,
D_80365208,
D_8036520C,
D_80365210,
D_80365214,
D_80365218,
D_8036521C,
D_80365220,
D_8036522C,
D_80365238,
D_80365244,
D_80365250,
D_8036525C,
D_80365268,
D_80365274,
D_8036527C,
D_80365284,
D_8036528C,
D_80365294,
D_8036529C,
D_803652A4,
D_803652AC,
D_803652B4,
D_803652BC,
D_803652C8,
D_803652D4,
D_803652E0,
D_803652EC,
D_803652F8,
D_80365304,
D_8036530C,
D_80365314,
D_80365320,
D_8036532C,
D_8036533C,
D_8036534C,
D_80365358,
D_8036536C,
D_80365378,
D_80365388,
D_80365394,
D_803653A0,
D_803653AC,
D_803653B8,
D_803653C4,
D_803653D0,
D_803653DC,
D_803653E8,
D_803653EC,
D_803653F0,
D_803653FC,
D_80365408,
D_80365410,
D_80365418,
D_80365424,
D_80365430,
D_80365434,
D_80365438,
D_8036543C,
D_80365440,
D_80365444,
D_80365448,
D_8036544C,
D_80365450,
D_80365454,
D_80365458,
D_8036545C,
D_80365460,
D_80365464,
D_80365468,
D_8036546C,
D_80365470,
D_80365474,
D_80365478,
D_8036547C,
D_80365480,
D_80365484,
D_80365488,
D_8036548C,
D_80365490,
D_80365494,
D_80365498,
D_8036549C,
D_803654A0,
D_803654A4,
D_803654A8,
D_803654AC,
D_803654B0,
D_803654B4
};
/* .code */
void func_802BAF20(void){
func_802BB200();
}
void func_802BAF40(void){
if(D_80364E00 && timedFuncQueue_is_empty()){
func_802BB200();
}
}
void func_802BAF80(s32 arg0){
func_802BE720();
}
f32 func_802BAFA0(s32 arg0, s32 arg1){
return (f32)D_803654B8[arg0][arg1]/10.0;
}
void func_802BAFE4(s32 arg0) {
f32 temp_f0;
s32 phi_s1;
s32 phi_s0;
phi_s0 = 0;
if (arg0 != D_80364E04) {
D_80364E04 = arg0;
func_802BB22C();
D_80364E00 = 1;
for(phi_s1 = 0; D_803654B8[arg0][phi_s1] != -1 && D_803654B8[arg0][phi_s1] != -4; phi_s1+=2){
temp_f0 = func_802BAFA0(arg0, phi_s1);
switch(D_803654B8[arg0][phi_s1 + 1]){
case -5:
timedFunc_set_6(temp_f0, (GenMethod_6) func_802BAF80, NULL);
phi_s0++;
break;
case -3:
func_80324E38(temp_f0, 1);
phi_s0++;
break;
case -2:
func_80324E38(temp_f0, 2);
phi_s0++;
break;
case -1:
func_80324E38(temp_f0, 3);
phi_s0++;
break;
case -4:
func_80324E38(temp_f0, 4);
break;
case -6:
func_80324E38(temp_f0, 4);
break;
default:
timed_setCameraToNode(temp_f0, D_803654B8[arg0][phi_s1 + 1]);
break;
}
}
temp_f0 = func_802BAFA0(arg0, phi_s1 + 1);
if (D_803654B8[arg0][phi_s1] == -4) {
func_80324E38(temp_f0, 4);
} else {
func_80324E88(temp_f0);
}
for(phi_s1 = 0; phi_s1 < phi_s0; phi_s1++){
func_80324E38(temp_f0, 0);
}
}
}
void func_802BB200(void){
if(D_80364E00){
D_80364E00 = FALSE;
D_80364E04 = -1;
}
}
void func_802BB22C(void){
if(D_80364E00){
timedFuncQueue_flush();
D_80364E00 = FALSE;
D_80364E04 = -1;
}
}
bool func_802BB270(void){
return (!D_80364E00) ? TRUE : FALSE;
}
s32 func_802BB294(void){
return D_80364E04;
}