banjo-kazooie/src/core2/code_AD5B0.c

403 lines
9.2 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
/* .data */
extern u8 D_80370250 = 0;
/* .bss */
struct {
s32 unk0;
s32 map_4;
s32 unk8;
}D_803835D0;
s32 D_803835DC;
u32 D_803835E0;
/* public */
void func_80335110(s32);
void func_80335128(s32);
void func_8024CE60(f32, f32);
void func_80335140(enum map_e);
void func_8033520C(s32);
/* .code */
void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) {
f32 sp44;
f32 sp40;
if (D_803835E0 == 0) {
func_80254084(gdl, 0, 0, framebuffer_width, framebuffer_height, 0, 0, 0);
func_802BBD2C(&sp44, &sp40);
func_8024CE60(sp44, sp40);
func_8024C904(gdl, mptr);
return;
}
if (func_80320708() == 0) {
write_file_blocks(0, 0, 0x80BC7230, EEPROM_MAXBLOCKS);
}
func_802C3BDC();
sky_draw(gdl, mptr, vptr);
func_802BBD2C(&sp44, &sp40);
func_8024CE60(sp44, sp40);
func_8024C904(gdl, mptr);
if (func_80309F78() != 0) {
mapModel_opa_draw(gdl, mptr, vptr);
if (func_802E49F0() == 0) {
func_80322E64(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_8028E6A4(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_80302C94(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_80332F4C(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_803500D8(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_802F2ED0(func_8032994C(), gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_802F0A34(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
mapModel_xlu_draw(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_8032D3D8(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_802F0AE8(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_8034F6F0(gdl, mptr, vptr);
}
func_802D520C(gdl, mptr, vptr);
} else {
mapModel_opa_draw(gdl, mptr, vptr);
func_80322E64(gdl, mptr, vptr);
func_8034F6F0(gdl, mptr, vptr);
func_8028E6A4(gdl, mptr, vptr);
func_80302C94(gdl, mptr, vptr);
func_8032D3D8(gdl, mptr, vptr);
func_80332F4C(gdl, mptr, vptr);
func_803500D8(gdl, mptr, vptr);
func_802F2ED0(func_8032994C(), gdl, mptr, vptr);
func_802D520C(gdl, mptr, vptr);
func_802F0B98(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_80350818(gdl, mptr, vptr);
}
if (func_802E49F0() == 0) {
func_802BBD0C(gdl, mptr, vptr);
}
func_802C3BE8();
}
void func_803348B0(s32 arg0, s32 arg1, s32 arg2){
}
enum map_e map_get(void){
return D_803835D0.map_4;
}
s32 exit_get(){
return D_803835D0.unk8;
}
void func_803348D8(s32 arg0) {
func_802E4078(D_803835D0.map_4, arg0, 1);
}
s32 func_80334904(){
return D_803835D0.unk0;
}
void func_80334E1C(s32);
void func_80334910(void) {
func_80255A14();
func_80334E1C(3);
func_8034F734();
func_803500E8();
func_80350BC8();
func_8030F1D0();
gcparade_free();//null
func_80322F7C();
func_803518E8();
func_802D48F0();
func_803224FC();
func_8028E644();
func_80322F5C();
func_80341A54();
func_802C398C();
func_802F53D0();
func_802FAC3C();
func_802C8F68();
func_8033E184();
func_8033FA24();
func_80344C80();
func_80287D70();
animcache_free();
func_802BC10C();
func_802B9D80();
func_802F1388();
func_802F10A4();
func_802F0804();
func_802F7CE0();
func_8031F9E0();
func_80323100();
cubeList_free();
func_8031B710();
mapModel_free();
func_8030A6B0();
func_80333918();
sky_free();
func_8034C8D8();
func_80323238();
func_803343AC();
func_803308A0();
func_8032AEB4();
func_8033297C();
func_803231E8();
func_80320B7C();
func_802BAF20();
func_80305BD4();
func_80332A38();
if (func_802E4A08() == 0) {
func_802FAF0C();
}
func_8031B664();
func_802986D0();
if (func_80322914() == 0) {
func_8024F7C4(func_803226E8(D_803835D0.map_4));
}
func_80244B3C();
func_80349C8C();
func_80322FDC();
func_8033BD6C();
func_80255198();//heap_flush_free_queue
func_802881AC();
}
void func_80334B20(enum map_e arg0, s32 arg1, s32 arg2) {
D_803835D0.unk0 = 3;
D_803835D0.map_4 = arg0;
D_803835D0.unk8 = arg1;
func_80322FE4();
func_80335110(1);
func_80335128(1);
func_802D2CB8();
func_80244AB0();
if (map_get() == MAP_8E_GL_FURNACE_FUN) {
func_8038E7C4();
}
if (func_80322914() == 0) {
func_8024F764(func_803226E8(D_803835D0.map_4));
}
func_80320B84();
func_80349CB0();
func_8034C97C();
func_8030A078();
func_8031B718();
func_80298700();
if (func_802E4A08() == 0) {
func_802FAE4C();
}
func_8031B644();
func_802C2B10();
func_803329AC();
func_80350BFC();
func_80323190();
func_80332894();
func_803305AC();
func_8031F9E8();
func_80323230();
commonParticleType_init();
animcache_init();
func_80287C58();
func_80344C50();
func_8033F9C0();
func_802B9D40();
func_802BC044();
func_802F07D8();
func_802F1104();
func_802F13E0();
func_802F7D30();
func_8030A78C();
func_8033393C();
sky_reset();
func_803343D0();
cubeList_init();
func_802FA69C();
func_8033DEA0();
if (arg2 == 0) {
func_80335140(arg0);
}
func_80305990(0);
func_8030C740();
gcdialog_init();
mapSpecificFlags_clearAll();
func_803411B0();
func_802C2B5C();
func_80322FBC();
func_8028E4B0();
func_80322F9C();
func_80323120();
func_803223AC();
func_802C8F40();
func_8034F774();
func_80350174();
gcparade_init();
func_80351998();
func_802BC2CC(D_803835D0.unk8);
func_802D63D4();
func_80255A04();
func_802D6948();
if (func_802E4A08() == 0) {
func_802F5188();
}
if (arg0 != 0x1F) {
func_8024F150();
}
}
void func_80334DC0(void) {
func_80334910();
func_80334B20(D_803835D0.map_4, D_803835D0.unk8, 1);
}
void func_80334DF8(void) {
func_8033520C(D_803835D0.map_4);
}
void func_80334E1C(s32 arg0) {
func_80254008();
func_802BC21C(D_803835D0.unk0, arg0);
func_8028F7F4(D_803835D0.unk0, arg0);
func_8030D8A8(D_803835D0.unk0, arg0);
func_803045CC(D_803835D0.unk0, arg0);
func_80323140(D_803835D0.unk0, arg0);
func_80351A1C(D_803835D0.unk0, arg0);
func_803225B0(D_803835D0.unk0, arg0);
func_80323098(D_803835D0.unk0, arg0);
func_802F0E80(D_803835D0.unk0, arg0);
func_8033EA78(D_803835D0.unk0, arg0);
D_803835D0.unk0 = arg0;
}
s32 func_80334ECC(void) {
s32 phi_v1;
s32 phi_v0;
func_80356734();
func_802D5628();
func_802FA724();
if (getGameMode() != 4) {
func_802F7E54();
}
if (D_803835DC == 0) {
return 1;
} else {
func_802BAF40();
func_8032AA9C();
func_80323170();
func_80351C48();
func_80330FF4();
func_8028E71C();
phi_v0 = func_8023DB5C();
if (D_80370250) {
phi_v1 = 0xF;
} else {
phi_v1 = 0x1F;
}
if (((phi_v1 & phi_v0) == 3) && (get_loaded_overlay_id() == OVERLAY_5_BEACH)) {
if ((ttc_func_8038BF8C() == 0) || (D_80370250 != 0)) {
D_80370250 = (u8)1;
for (phi_v0 = 0; phi_v0 != 0x8F0D180; phi_v0++){
}
}
}
func_8033E1E0();
func_802F11E8();
func_80288210();
func_80288834();
func_802BC14C();
func_803045D8();
func_80332E08();
func_803465E4();
func_8031B790();
func_8034C9D4();
func_8030A850(1);
sky_update();
func_802F08A0();
func_8034F918();
func_80350250();
if (mapSpecificFlags_validateCRC1() == 0) {
func_8028FCBC();
}
func_80349D60();
func_80350CA4();
func_8031B65C();
func_80310D2C();
gcparade_update();
overlay_update();
func_80321924();
func_80334428();
func_8031C880();
func_802D2CDC();
func_803306C8(1);
func_8032AD7C(1);
func_80322490();
if (map_getLevel(D_803835D0.map_4) == LEVEL_D_CUTSCENE) {
func_802C79C4();
}
func_8032AABC();
sns_stub();
return 1;
}
}
void func_80335110(s32 arg0){
D_803835DC = arg0;
}
s32 func_8033511C(){
return D_803835DC;
}
void func_80335128(s32 arg0){
D_803835E0 = arg0;
}
s32 func_80335134(){
return D_803835E0;
}
void func_80335140(enum map_e map_id) {
Struct61s *fp;
func_80254008();
fp = func_8034AB6C(map_id); //LevelSetupFile_Open
while (func_8034AF98(fp, 0) == 0) {
if (func_8034AF98(fp, 2)) {
} else if (func_8034AF98(fp, 1)) {
cubeList_fromFile(fp);
} else if (func_8034AF98(fp, 3)) {
func_802BA0AC(fp);
} else if (func_8034AF98(fp, 4)) {
func_80333B78(fp);
}
}
func_8034AAB0(fp); //file close
}
void func_8033520C(s32 arg0){
}