624 lines
21 KiB
C
624 lines
21 KiB
C
#include <ultra64.h>
|
|
#include "functions.h"
|
|
#include "variables.h"
|
|
|
|
#include "core2/modelRender.h"
|
|
|
|
#include "../gc/zoombox.h"
|
|
#include "../code_C9E70.h"
|
|
|
|
#ifndef ABS
|
|
#define ABS(d) ((d) >= 0) ? (d) : -(d)
|
|
#endif
|
|
|
|
void func_8031FBF8(void);
|
|
void func_8031FBA0(void);
|
|
|
|
Actor *func_802C4360(ActorMarker *, Gfx **, Mtx **, Vtx **);
|
|
Actor *func_802C4464(ActorMarker *, Gfx **, Mtx **, Vtx **);
|
|
void func_802C4C14(Actor *this);
|
|
void func_802C5740(Actor *this);
|
|
|
|
extern void func_802C71F0(Actor *);
|
|
extern void func_802C74F4(Actor *, s32, f32 );
|
|
extern void warp_lairEnterLairFromSMLevel(s32, s32);
|
|
extern void warp_smExitBanjosHouse(s32, s32);
|
|
extern void func_80335110(s32);
|
|
|
|
extern void func_8024E60C(s32, s32[3]);
|
|
extern void func_8024E71C(s32, f32*);
|
|
|
|
extern char *gcpausemenu_TimeToA(int);
|
|
extern struct5Bs *func_803097A0(void);
|
|
|
|
/* .data */
|
|
f32 D_80365DD0[3][3] = {
|
|
{-320.0f, 340.0f, 350.0f},
|
|
{110.0f, 340.0f, 110.0f},
|
|
{-413.333313f, 353.333313f, -234.305511f}
|
|
};
|
|
u8 *D_80365DF4 = "USE THE CONTROL STICK TO SELECT A GAME.";
|
|
u8 *D_80365DF8 = "PRESS A TO PLAY THE GAME OR Z TO ERASE IT!";
|
|
u8 *D_80365DFC = "ARE YOU SURE? PRESS A TO CONFIRM, OR B TO CANCEL";
|
|
s32 D_80365E00 = -1;
|
|
f32 D_80365E04[3][3] = {
|
|
{-435.0f, 278.0f, -159.0f},
|
|
{ 444.635437f, 216.0f, -356.591675f},
|
|
{ 55.0f, 191.822906f, -905.96875f}
|
|
};
|
|
|
|
ActorAnimationInfo D_80365E28[] = {
|
|
{0x000, 0.0f},
|
|
{0x24D, 9e+09f},
|
|
{0x24D, 2.0f},
|
|
{0x24E, 1.0f},
|
|
{0x24F, 0.6f},
|
|
{0x24D, 2.0f}
|
|
};
|
|
ActorInfo D_80365E58 = { 0xE4, 0x195, 0x532, 0x1, D_80365E28, func_802C5740, func_80326224, func_802C4464, 0, 0, 0.0f, 0};
|
|
|
|
ActorAnimationInfo D_80365E7C[] = {
|
|
{0x000, 0.0f},
|
|
{0x250, 9e+09f},
|
|
{0x250, 4.5f},
|
|
{0x251, 1.0f},
|
|
{0x252, 0.67f},
|
|
{0x250, 4.5f},
|
|
};
|
|
ActorInfo D_80365EAC = { 0xE5, 0x196, 0x532, 0x1, D_80365E7C, func_802C4C14, func_80326224, func_802C4360, 0, 0, 0.0f, 0};
|
|
|
|
ActorAnimationInfo D_80365ED0[] = {
|
|
{0x000, 0.0f},
|
|
{0x24A, 9e+09f},
|
|
{0x24A, 1.0f},
|
|
{0x24B, 1.0f},
|
|
{0x24C, 1.0f},
|
|
{0x24A, 1.0f}
|
|
};
|
|
ActorInfo D_80365F00 = { 0xE6, 0x197, 0x532, 0x1, D_80365ED0, func_802C4C14, func_80326224, func_802C4360, 0, 0, 0.0f, 0};
|
|
|
|
|
|
/* .bss */
|
|
s32 D_8037DCB0;
|
|
u32 D_8037DCB4;
|
|
struct FF_StorageStruct* D_8037DCB8;
|
|
s32 D_8037DCBC;
|
|
u8 D_8037DCC0[7];
|
|
u8 D_8037DCC7;
|
|
u8 D_8037DCC8;
|
|
u8 D_8037DCC9;
|
|
u8 D_8037DCCA;
|
|
u8 D_8037DCCB;
|
|
u8 D_8037DCCC;
|
|
u8 D_8037DCCD;
|
|
u8 D_8037DCCE[3];
|
|
s32 pad_8037DCD4;
|
|
s32 pad_8037DCD8;
|
|
|
|
struct {
|
|
u8 *unk0;
|
|
u8 *unk4;
|
|
} D_8037DCE0;
|
|
s32 D_8037DCE8;
|
|
s32 D_8037DCEC;
|
|
GcZoombox *chGameSelectTopZoombox;
|
|
GcZoombox *chGameSelectBottomZoombox;
|
|
f32 D_8037DCF8[2][3];
|
|
f32 D_8037DD10[2][3];
|
|
s32 D_8037DD28;
|
|
s32 D_8037DD2C;
|
|
f32 D_8037DD30;
|
|
f32 D_8037DD34;
|
|
|
|
|
|
|
|
/* .code */
|
|
Actor *func_802C4360(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
|
s32 sp1C = marker->unk14_20 - 0xe4;
|
|
func_8033A45C(3, sp1C);
|
|
func_8033A45C(1, 1);
|
|
func_8033A45C(4, 1);
|
|
func_8033A45C(9, 1);
|
|
func_8033A45C(5, 0);
|
|
func_8033A45C(8, 0);
|
|
func_8033A45C(6, 0);
|
|
func_8033A45C(7, 0);
|
|
func_8033A45C(0xC, 1);
|
|
func_8033A45C(0xF, 1);
|
|
if(sp1C == D_80365E00){
|
|
modelRender_setEnvColor(0xFF, 0xFF, 0xFF, 0xFF);
|
|
}
|
|
else{
|
|
modelRender_setEnvColor(0x64, 0x64, 0x64, 0xFF);
|
|
}
|
|
return actor_draw(marker, gfx, mtx, vtx);
|
|
}
|
|
|
|
Actor *func_802C4464(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
|
Actor *ret_val = func_802C4360(marker, gfx, mtx, vtx);
|
|
if(chGameSelectBottomZoombox)
|
|
gczoombox_draw(chGameSelectBottomZoombox, gfx, mtx, vtx);
|
|
if(chGameSelectTopZoombox)
|
|
gczoombox_draw(chGameSelectTopZoombox, gfx, mtx, vtx);
|
|
return ret_val;
|
|
|
|
}
|
|
|
|
void func_802C44D0(s32 arg0, s32 arg1){
|
|
if(arg1 == 3)
|
|
D_8037DD2C = 0;
|
|
}
|
|
|
|
void *func_802C44EC(f32 arg0[3], f32 arg1[3], f32 arg2) {
|
|
f32 phi_f12;
|
|
f32 sp40[3];
|
|
s32 i;
|
|
static bool D_8037DD38;
|
|
static f32 D_8037DD3C;
|
|
static f32 D_8037DD40;
|
|
|
|
arg2 = (arg2 > 0.75) ? 0.75 : arg2;
|
|
sp40[0] = arg1[0] - arg0[0];
|
|
sp40[1] = arg1[1] - arg0[1];
|
|
sp40[2] = arg1[2] - arg0[2];
|
|
D_8037DD38 = D_8037DD38^1;
|
|
phi_f12 = gu_sqrtf(sp40[0]*sp40[0] + sp40[1]*sp40[1] + sp40[2]*sp40[2]);
|
|
if (phi_f12 < 10.0f) {
|
|
phi_f12 = 500.0f;
|
|
}
|
|
D_8037DD3C = 1.0 + (9.0f / gu_sqrtf(phi_f12));
|
|
D_8037DD40 = sinf(D_8037DD3C*1.5707963267948966);
|
|
for(i = 0; i < 3; i++){
|
|
D_8037DD10[D_8037DD38][i] = arg0[i] + ((arg1[i] - arg0[i])*sinf((((arg2 / 0.75) * 3.1415926535897931) / 2) * D_8037DD3C)) / D_8037DD40;
|
|
D_8037DCF8[D_8037DD38][i] += (D_8037DD10[D_8037DD38][i] - D_8037DCF8[D_8037DD38][i]) / 5.0;
|
|
|
|
}
|
|
return &D_8037DCF8[D_8037DD38];
|
|
}
|
|
|
|
void func_802C4768(s32 gamenum){
|
|
u8 * sp20[2];
|
|
static u8 D_8037DD48[0x20];
|
|
static u8 D_8037DD68[0x20];
|
|
|
|
func_8031FBF8();
|
|
D_80365E00 = gamenum;
|
|
func_8031FBA0();
|
|
if(gameFile_isNotEmpty(gamenum)){
|
|
gameFile_load(gamenum);
|
|
D_8037DCCE[gamenum] = (itemscore_timeScores_get(LEVEL_6_LAIR)) ? 1 : 0;
|
|
|
|
strcpy(D_8037DD48, "");
|
|
strcat(D_8037DD48, "GAME ");
|
|
switch(gamenum){
|
|
case 0: //L802C4820
|
|
strIToA(D_8037DD48, 1);
|
|
break;
|
|
case 1: //L802C4838
|
|
strIToA(D_8037DD48, 3);
|
|
break;
|
|
case 2: //L802C484C
|
|
strIToA(D_8037DD48, 2);
|
|
break;
|
|
}//L802C4858
|
|
strcat(D_8037DD48, ": TIME ");
|
|
strcat(D_8037DD48, gcpausemenu_TimeToA(itemscore_timeScores_getTotal()));
|
|
strcat(D_8037DD48, ",");
|
|
strcat(D_8037DD48, "");
|
|
|
|
strcpy(D_8037DD68, "");
|
|
strIToA(D_8037DD68, jiggyscore_total());
|
|
strcat(D_8037DD68, " JIGSAW");
|
|
if(jiggyscore_total() != 1){
|
|
strcat(D_8037DD68, "S");
|
|
}
|
|
strcat(D_8037DD68, ", ");
|
|
strIToA(D_8037DD68, itemscore_noteScores_getTotal());
|
|
strcat(D_8037DD68, " NOTE");
|
|
if(itemscore_noteScores_getTotal() != 1){
|
|
strcat(D_8037DD68, "S");
|
|
}
|
|
strcat(D_8037DD68, ".");
|
|
strcat(D_8037DD68, "");
|
|
}//L802C49AC
|
|
else{
|
|
D_8037DCCE[gamenum] = 0;
|
|
strcpy(D_8037DD48, "");
|
|
strcat(D_8037DD48, "GAME ");
|
|
switch (gamenum){
|
|
case 0:
|
|
strIToA(D_8037DD48, 1);
|
|
break;
|
|
case 1:
|
|
strIToA(D_8037DD48, 3);
|
|
break;
|
|
case 2:
|
|
strIToA(D_8037DD48, 2);
|
|
break;
|
|
}//L802C4A40
|
|
strcat(D_8037DD48, ": EMPTY");
|
|
strcpy(D_8037DD68, "");
|
|
}//L802C4A68
|
|
sp20[0] = D_8037DD48;\
|
|
sp20[1] = D_8037DD68;
|
|
func_8031877C(chGameSelectBottomZoombox);
|
|
gczoombox_setStrings(chGameSelectBottomZoombox, 2, sp20);
|
|
gczoombox_maximize(chGameSelectBottomZoombox);
|
|
gczoombox_resolve_minimize(chGameSelectBottomZoombox);
|
|
}
|
|
|
|
void func_802C4AC8(s32 arg0){
|
|
gameFile_clear(arg0);
|
|
func_802C4768(arg0);
|
|
}
|
|
|
|
void func_802C4AF0(Actor * this){
|
|
int i;
|
|
|
|
if(chGameSelectTopZoombox){
|
|
gczoombox_free(chGameSelectTopZoombox);
|
|
chGameSelectTopZoombox = NULL;
|
|
}
|
|
|
|
if(chGameSelectBottomZoombox){
|
|
gczoombox_free(chGameSelectBottomZoombox);
|
|
chGameSelectBottomZoombox = NULL;
|
|
}
|
|
|
|
for(i = 0; i < 3; i++){
|
|
gameFile_8033CFD4(i);
|
|
}
|
|
|
|
if(D_8037DD28){
|
|
func_802F9D38(D_8037DD28);
|
|
D_8037DD28 = NULL;
|
|
}
|
|
|
|
comusic_8025AB44(COMUSIC_73_GAMEBOY, 0, 4000);
|
|
func_8025AABC(COMUSIC_73_GAMEBOY);
|
|
func_8025AB00();
|
|
}
|
|
|
|
void func_802C4BB4(ActorMarker *marker){
|
|
Actor *this;
|
|
s32 sp20;
|
|
Actor *other;
|
|
f32 sp18;
|
|
sp20 = marker->unk14_20 - 0xe4;
|
|
this = marker_getActor(marker);
|
|
sp18 = this->scale;
|
|
other = func_8032813C(sp20 + 0x198, this->position, (s32)this->yaw);
|
|
other->scale = sp18;
|
|
}
|
|
|
|
void func_802C4C14(Actor *this){
|
|
int sp84;
|
|
int sp80;
|
|
s32 sp74[3];
|
|
s32 *tmp_a2; //pad70
|
|
s32 pad_6C;
|
|
s32 pad_68;
|
|
s32 sp5C[3];
|
|
s32 pad_58;
|
|
f32 sp54;
|
|
f32 sp50;
|
|
int i; //sp4C
|
|
struct5Bs *sp48;
|
|
f32 sp44;
|
|
s32 tmp_a2_2;
|
|
f32 sp34[3];
|
|
|
|
sp84 = this->marker->unk14_20 - 0xe4;
|
|
sp80 = (sp84 == D_80365E00);
|
|
sp50 = time_getDelta();
|
|
if(chGameSelectBottomZoombox == NULL)
|
|
return;
|
|
|
|
if(!this->initialized){
|
|
__spawnQueue_add_1((GenFunction_1)func_802C4BB4, reinterpret_cast(s32, this->marker));
|
|
func_802C7318(this);
|
|
this->unk130 = func_802C71F0;
|
|
if(sp84 == 0){
|
|
func_802C75A0(this, 1);
|
|
func_802C74F4(this, 0, 1.0f);
|
|
func_802C74F4(this, 1, 1.0f);
|
|
}//L802C4CD8
|
|
this->initialized = TRUE;
|
|
}//L802C4CE4
|
|
func_802C7478(this);
|
|
if(!sp80){
|
|
if(this->state != 1){
|
|
subaddie_set_state(this, 1);
|
|
}
|
|
}
|
|
else{//L802C4D24
|
|
func_8024E60C(0, sp74);
|
|
func_8024E55C(0, sp5C);
|
|
func_8024E71C(0, &sp54);
|
|
switch(this->state){
|
|
case 2:
|
|
case 5:
|
|
switch(sp84){
|
|
case 0://L802C4D8C
|
|
if(actor_animationIsAt(this, 0.1f))
|
|
func_8030E510(SFX_5D_BANJO_RAAOWW, 8000);
|
|
|
|
if(actor_animationIsAt(this, 0.7f))
|
|
func_8030E510(SFX_5E_BANJO_PHEWWW, 8000);
|
|
break;
|
|
case 1://L802C4DD0
|
|
if(randf() < 0.1){
|
|
// if(randf() < D_80376118){
|
|
func_8030E6A4(MIN(2.0f, randf() *3.0f) + 311.0f, 1.0f, 12000);
|
|
}
|
|
break;
|
|
case 2://L802C4E74
|
|
if(randf() < 0.03){
|
|
func_8030E6A4(0x3ed, randf()*0.3 + 0.7, 15000);
|
|
}
|
|
break;
|
|
}//L802C4ED4
|
|
break;
|
|
}//L802C4ED4
|
|
if(!func_8038AAB0()){
|
|
switch(this->state){
|
|
case 1://L802C4F10
|
|
if(sp84 == 1){
|
|
func_8030E510(SFX_136_GAMEBOY_STARTUP, 15000);
|
|
timedFunc_set_3(0.25f, (GenFunction_3)comusic_8025AB44, COMUSIC_73_GAMEBOY, -1, 2000);
|
|
func_8025A58C(0, 2000);
|
|
}
|
|
else{
|
|
comusic_8025AB44(COMUSIC_73_GAMEBOY, 0, 4000);
|
|
func_8025A58C(-1, 2000);
|
|
}
|
|
|
|
if(sp84 == 2){
|
|
D_8037DD28 = func_802F9AA8(SFX_12B_BOILING_AND_BUBBLING);
|
|
func_802F9F80(D_8037DD28, 0.5f, 9000000000.0f, 0.5f);
|
|
func_802F9DB8(D_8037DD28, 0.9f, 0.9f, 0.0f);
|
|
func_802FA060(D_8037DD28, 15000, 15000, 0.0f);
|
|
}
|
|
else{
|
|
if(D_8037DD28){
|
|
func_802F9D38(D_8037DD28);
|
|
D_8037DD28 = NULL;
|
|
}
|
|
}
|
|
func_802C4768(sp84);
|
|
subaddie_set_state(this, 2);
|
|
break;
|
|
case 5://L802C5040
|
|
if(D_8037DD2C == 0 &&
|
|
(sp5C[FACE_BUTTON(BUTTON_A)] == 1 || sp5C[FACE_BUTTON(BUTTON_B)] == 1)
|
|
){
|
|
if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){
|
|
func_802C4AC8(sp84);
|
|
func_8025A6EC(COMUSIC_2B_DING_B, 22000);
|
|
}
|
|
subaddie_set_state(this, 2);
|
|
func_8031877C(chGameSelectTopZoombox);
|
|
gczoombox_setStrings(chGameSelectTopZoombox, 2, &D_8037DCE0);
|
|
D_8037DD34 = 0.0f;
|
|
}
|
|
break;
|
|
case 3://L802C50C8
|
|
case 4://L802C50C8
|
|
if(animctrl_isStopped(this->animctrl)){
|
|
chBottlesBonus_func_802DEB80();
|
|
if(!gameFile_isNotEmpty(sp84)){
|
|
timedFunc_set_3(0.0f, (GenFunction_3)func_802E4078, MAP_85_CS_SPIRAL_MOUNTAIN_3, 0, 1);
|
|
}
|
|
else{//L802C511C
|
|
sp44 = 0.0f;
|
|
if(this->state == 4 && (sp84 == 0 || sp84 == 1))
|
|
sp44 = 0.25f;
|
|
if(chmole_learnedAllSpiralMountainAbilities() && fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE)){
|
|
timedFunc_set_2(sp44, (GenFunction_2)warp_lairEnterLairFromSMLevel, 0, 0);
|
|
}
|
|
else{//L802C5188
|
|
timedFunc_set_2(sp44, (GenFunction_2)warp_smExitBanjosHouse, 0, 0);
|
|
}//L802C51A0
|
|
timedFunc_set_1(sp44, (GenFunction_1)func_80335110, 1);
|
|
}//L802C51B8
|
|
this->state = 6;
|
|
}
|
|
break;
|
|
case 2://L802C51CC
|
|
if(sp74[0] == 1){
|
|
if(gameFile_isNotEmpty(sp84)){
|
|
func_8031877C(chGameSelectTopZoombox);
|
|
func_803183A4(chGameSelectTopZoombox, (&D_80365DFC)[func_8031B5B0()]);
|
|
D_8037DD2C = 1;
|
|
subaddie_set_state(this, 5);
|
|
}
|
|
else{//L802C5240
|
|
func_8025A6EC(COMUSIC_2C_BUZZER, 22000);
|
|
}
|
|
}
|
|
else if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){//L802C5250
|
|
if(gameFile_isNotEmpty(sp84)){
|
|
if(randf() < 0.1){
|
|
switch(sp84){
|
|
case 0://L802C52B8
|
|
func_8030E510(SFX_31_BANJO_OHHWAAOOO, 28000);
|
|
func_8030E540(SFX_135_CARTOONY_SPRING);
|
|
timedFunc_set_2(0.4f, (GenFunction_2)func_8030E510, SFX_13A_GLASS_BREAKING_7, 0x7fff);
|
|
timedFunc_set_2(0.9f, (GenFunction_2)func_8030E510, SFX_150_PORCELAIN_CRASH, 0x7fff);
|
|
timedFunc_set_2(1.0f, (GenFunction_2)func_8030E510, SFX_151_CAT_MEOW, 0x7fff);
|
|
break;
|
|
case 1://L802C5320
|
|
timedFunc_set_2(0.4f, (GenFunction_2)func_8030E510, SFX_31_BANJO_OHHWAAOOO, 28000);
|
|
timedFunc_set_2(0.2f, (GenFunction_2)func_8030E510, SFX_E_SHOCKSPRING_BOING, 28000);
|
|
func_8030E540(SFX_2D_KABOING);
|
|
break;
|
|
case 2://L802C5364
|
|
timedFunc_set_2(0.15f, (GenFunction_2)func_8030E510, SFX_32_BANJO_EGHEE, 28000);
|
|
func_8030E510(SFX_3F6_UNKNOWN, 28000);
|
|
func_8030E540(SFX_8F_SNOWBALL_FLYING);
|
|
break;
|
|
}//L802C5394
|
|
subaddie_set_state(this, 4);
|
|
levelSpecificFlags_set(sp84 + 0x35, 1);
|
|
}
|
|
else{//L802C53B4
|
|
func_8030E484(SFX_3EA_UNKNOWN);
|
|
subaddie_set_state(this, 3);
|
|
}
|
|
}else{//L802C53D0
|
|
func_8030E510(SFX_4F_BANJO_WAHOO, 28000);
|
|
subaddie_set_state(this, 3);
|
|
}//L802C53E8
|
|
if(sp84 == 0)
|
|
func_802C75A0(this, 2);
|
|
|
|
if(sp84 == 1)
|
|
comusic_8025AB44(COMUSIC_73_GAMEBOY, 0, 4000);
|
|
|
|
func_8025A58C(0, 0x1f4);
|
|
actor_playAnimationOnce(this);
|
|
}
|
|
else{//L802C5434
|
|
if((0.7 < ((0.0f <= sp54) ? sp54 : -sp54)) && D_8037DCEC == 0
|
|
){
|
|
tmp_a2_2 = D_80365E00;
|
|
if(sp54 < 0.0f){
|
|
D_8037DCEC = 1;
|
|
switch(D_80365E00){
|
|
case 0:
|
|
D_8037DCEC = 0;
|
|
break;
|
|
case 1:
|
|
D_80365E00 = 2;
|
|
break;
|
|
case 2:
|
|
D_80365E00 = 0;
|
|
break;
|
|
}
|
|
}
|
|
else{//L802C54D4
|
|
D_8037DCEC = 1;
|
|
switch(D_80365E00){
|
|
case 0:
|
|
D_80365E00 = 2;
|
|
break;
|
|
case 1:
|
|
D_8037DCEC = 0;
|
|
break;
|
|
case 2:
|
|
D_80365E00 = 1;
|
|
break;
|
|
}
|
|
}//L802C550C
|
|
if(D_8037DCEC){
|
|
D_8037DCE8 = tmp_a2_2;
|
|
D_8037DD30 = 0.0f;
|
|
}
|
|
}else{//L802C5530
|
|
if(((0.0f <= sp54) ? sp54 : -sp54) < 0.3){
|
|
D_8037DCEC = 0;
|
|
}
|
|
}
|
|
}//L802C556C
|
|
if(D_8037DD2C == 0){
|
|
D_8037DD34 += sp50;
|
|
if(20.0 < D_8037DD34){
|
|
func_8031877C(chGameSelectTopZoombox);
|
|
gczoombox_setStrings(chGameSelectTopZoombox, 2, &D_8037DCE0);
|
|
D_8037DD34 = 0.0f;
|
|
}
|
|
}
|
|
break;
|
|
case 6://L802C55E8
|
|
break;
|
|
}
|
|
}//L802C55E8
|
|
D_8037DD30 += sp50;
|
|
sp48 = func_803097A0();
|
|
if(this->marker->unk14_21){
|
|
for(i = 0; i < 3; i++){
|
|
func_8034A174(sp48, i+5, sp34);
|
|
ml_vec3f_copy(D_80365DD0[i], sp34);
|
|
}
|
|
}
|
|
ncStaticCamera_setPositionAndTarget(
|
|
func_802C44EC(D_80365DD0[D_8037DCE8], D_80365DD0[D_80365E00], D_8037DD30),
|
|
func_802C44EC(D_80365E04[D_8037DCE8], D_80365E04[D_80365E00], D_8037DD30)
|
|
);
|
|
if(this->marker->unk14_21)
|
|
osViBlack(0);
|
|
}//L802C5734
|
|
}
|
|
|
|
void func_802C5740(Actor * this){
|
|
int i = func_8031B5B0();
|
|
D_8037DCE0.unk0 = (&D_80365DF4)[i];
|
|
D_8037DCE0.unk4 = (&D_80365DF8)[i];
|
|
|
|
if(!this->initialized){
|
|
gameFile_8033CE40();
|
|
if(chGameSelectBottomZoombox == NULL){
|
|
chGameSelectBottomZoombox = gczoombox_new(0xA0, ZOOMBOX_SPRITE_C_BANJO_2, 2, 0, NULL);
|
|
gczoombox_open(chGameSelectBottomZoombox);
|
|
func_803184C8(chGameSelectBottomZoombox, 30.0f, 5, 2, 0.4f, 0, 0);
|
|
}//L802C57FC
|
|
|
|
if(chGameSelectTopZoombox == NULL){
|
|
chGameSelectTopZoombox = gczoombox_new(0xA, ZOOMBOX_SPRITE_D_KAZOOIE_1, 2, 1, func_802C44D0);
|
|
gczoombox_setStrings(chGameSelectTopZoombox, 2, &D_8037DCE0);
|
|
gczoombox_open(chGameSelectTopZoombox);
|
|
gczoombox_maximize(chGameSelectTopZoombox);
|
|
}//L802C5860
|
|
|
|
marker_setFreeMethod(this->marker, func_802C4AF0);
|
|
D_8037DCEC = 0;
|
|
func_8031FBF8();
|
|
func_8031FBA0();
|
|
D_8037DCE8 = 0;
|
|
D_80365E00 = 0;
|
|
D_8037DCF8[1][0] = D_80365DD0[0][0];
|
|
D_8037DCF8[1][1] = D_80365DD0[0][1];
|
|
D_8037DCF8[1][2] = D_80365DD0[0][2];
|
|
|
|
D_8037DCF8[0][0] = D_80365E04[0][0];
|
|
D_8037DCF8[0][1] = D_80365E04[0][1];
|
|
D_8037DCF8[0][2] = D_80365E04[0][2];
|
|
D_8037DD30 = 0.75f;
|
|
D_8037DD34 = func_8038AAB0(&D_80365E04[0], &D_8037DCE8) ? 20.0 : 0.0;
|
|
actor_collisionOff(this);
|
|
func_8025A6EC(COMUSIC_73_GAMEBOY, 0);
|
|
}//L802C5940
|
|
if(!func_8038AAB0()){
|
|
if(chGameSelectBottomZoombox)
|
|
gczoombox_update(chGameSelectBottomZoombox);
|
|
if(chGameSelectTopZoombox)
|
|
gczoombox_update(chGameSelectTopZoombox);
|
|
}
|
|
func_802C4C14(this);
|
|
}
|
|
|
|
void func_802C5994(void){
|
|
s32 sp1C = level_get();
|
|
s32 t6 = map_get() == MAP_83_CS_GAME_OVER_MACHINE_ROOM;
|
|
s32 a1 = (0 < sp1C && sp1C < 0xd);
|
|
if( a1 || t6)
|
|
{
|
|
if(D_80365E00 != -1 && !func_802E4A08() && map_get() != MAP_91_FILE_SELECT){
|
|
gameFile_save(D_80365E00);
|
|
gameFile_8033CFD4(D_80365E00);
|
|
}
|
|
}
|
|
}
|
|
|
|
s32 func_802C5A30(void){
|
|
return D_80365E00;
|
|
}
|
|
|
|
void func_802C5A3C(s32 arg0){
|
|
D_80365E00 = arg0;
|
|
}
|
|
|
|
void func_802C5A48(void){
|
|
D_80365E00 = -1;
|
|
}
|