file_progress_e documentation

This commit is contained in:
Banjo Kazooie
2023-02-18 21:00:18 -06:00
parent 1aff1a433a
commit d0112a6d4a
86 changed files with 1162 additions and 1155 deletions

View File

@@ -178,7 +178,7 @@ void __baMarker_resolveMusicNoteCollision(Prop *arg0) {
}
if (item_getCount(ITEM_C_NOTE) < 100) {
func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000);
timedFunc_set_1(0.75f, func_8035644C, 3);
timedFunc_set_1(0.75f, func_8035644C, FILEPROG_3_MUSIC_NOTE_TEXT);
}
fxSparkle_musicNote(arg0->unk4);
}
@@ -212,8 +212,8 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a
}
}
else{//L8028BBB8
if(!func_8031FF1C(arg1)){
func_80320004(arg1, 1);
if(!fileProgressFlag_get(arg1)){
fileProgressFlag_set(arg1, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
func_803204E4(0xBF, 1);
func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6);
@@ -389,7 +389,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(func_802458E0(spAC, actor, 0x87) == 0)
return;
func_803204E4(0x1E, 1);
if(func_8031FF1C(((actor->unkF4_8 - 1) ^ 1) + 0x49)){
if(fileProgressFlag_get(((actor->unkF4_8 - 1) ^ 1) + 0x49)){
actor->unk10_12 = 2;
}
else{
@@ -559,7 +559,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
{
honeycombscore_set(sp98, 1);
func_8025A6EC(COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(2.0f, func_8035644C, 0xB);
timedFunc_set_1(2.0f, func_8035644C, FILEPROG_B_EMPTY_HONEYCOMB_TEXT);
item_inc(ITEM_13_EMPTY_HONEYCOMB);
if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){
gcpausemenu_80314AC8(0);
@@ -583,14 +583,14 @@ void __baMarker_resolveCollision(Prop *other_prop){
if( map_get() == MAP_8E_GL_FURNACE_FUN
&& func_803203FC(0)
&& !func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){
func_80356540(BKPROG_A6_FURNACE_FUN_COMPLETE);
func_80356540(FILEPROG_A6_FURNACE_FUN_COMPLETE);
func_8030E6D4(SFX_126_AUDIENCE_BOOING);
}
func_8025A6EC(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(0.75f, func_8035644C, 0xA);
timedFunc_set_1(0.75f, func_8035644C, FILEPROG_A_HONEYCOMB_TEXT);
item_inc(ITEM_14_HEALTH);
fxSparkle_honeycomb(&other_prop->actorProp.x);
marker_despawn(marker);
@@ -695,13 +695,13 @@ void __baMarker_resolveCollision(Prop *other_prop){
return;
if( map_get() == MAP_8E_GL_FURNACE_FUN
&& func_803203FC(0)
&& !func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){
func_80356540(BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
func_80356540(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
func_8030E6D4(SFX_127_AUDIENCE_MIXED);
}
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
timedFunc_set_1(1.5f, func_8035646C, 0xC);
timedFunc_set_1(1.5f, func_8035646C, FILEPROG_C_EXTRA_LIFE_TEXT);
fxSparkle_extraLife(&other_prop->actorProp.x);
item_inc(ITEM_16_LIFE);
marker_despawn(marker);

View File

@@ -68,7 +68,7 @@ bool func_802A73BC(void) {
void func_802A744C(void) {
if (player_isInRBB() && bs_getState() != BS_4C_LANDING_IN_WATER) {
func_8035644C(0xAC);
func_8035644C(FILEPROG_AC_DIVE_OILY_WATER);
}
roll_setAngularVelocity(30.0f, 0.9f);
gravity_set(0.0f);

View File

@@ -108,7 +108,7 @@ void bsjig_jiggy_end(void){
}
baMarker_collisionOn();
if( jiggyscore_total() == 100
&& func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)
&& fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
&& bs_getNextState() != BS_34_JIG_NOTEDOOR
){
func_8028F918(2);
@@ -151,7 +151,7 @@ void bsjig_notedoor_end(void){
func_80291548();
if( D_8037D4B2
&& jiggyscore_total() == 100
&& func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)
&& fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
){
func_8028F918(2);
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);

View File

@@ -74,9 +74,9 @@ void func_802B55DC(void) {
void func_802B563C(void) {
if (level_get() == LEVEL_9_RUSTY_BUCKET_BAY) {
func_8035644C(0xAB);
func_8035644C(FILEPROG_AB_SWIM_OILY_WATER);
} else if (map_get() == MAP_46_CCW_WINTER) {
func_8035644C(0xDD);
func_8035644C(FILEPROG_DD_HAS_TOUCHED_ICY_WATER);
}
gravity_set(100.0f);
func_80297BF8(133.33f);

View File

@@ -118,27 +118,27 @@ void func_802B6FA8(void){
}
void bswalk_creep_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr();
f32 sp20;
AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 start_position;
if(bs_getPrevState() == BS_2_WALK_SLOW){
sp20 = anim_getTimer(animctrl_getAnimPtr(s0));
start_position = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
}else{
sp20 = 0.0f;
start_position = 0.0f;
}
animctrl_reset(s0);
animctrl_setIndex(s0, ASSET_2_ANIM_BSWALK_CREEP);
animctrl_setDuration(s0, 0.43f);
animctrl_setStart(s0, sp20);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0xe4);
animctrl_reset(anim_ctrl);
animctrl_setIndex(anim_ctrl, ASSET_2_ANIM_BSWALK_CREEP);
animctrl_setDuration(anim_ctrl, 0.43f);
animctrl_setStart(anim_ctrl, start_position);
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(anim_ctrl, "bswalk.c", 0xe4);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkMinCreepVelocity, bsWalkCreepSlowWalkVelocityThreshold, bsWalkSlowestCreepDuration, bsWalkFastestCreepDuration);
}
void bswalk_creep_update(void){
s32 s0 = 0;
s32 next_state = 0;
func_802B6E44();
if(func_8029B2E8() == 0.0f){
yaw_setIdeal(yaw_get());
@@ -150,68 +150,68 @@ void bswalk_creep_update(void){
switch(func_8029B300()){
case 0://L802B7160
if(func_80297C04(1.0f))
s0 = BS_1_IDLE;
next_state = BS_1_IDLE;
break;
case 2://L802B7180
s0 = BS_2_WALK_SLOW;
next_state = BS_2_WALK_SLOW;
break;
case 3://L802B7188
s0 = BS_WALK;
next_state = BS_WALK;
break;
case 4:
s0 = BS_4_WALK_FAST;
next_state = BS_4_WALK_FAST;
break;
}//L802B7194
if(func_8028B128())
s0 = BS_WALK_MUD;
next_state = BS_WALK_MUD;
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
if(func_8028B094())
s0 = BS_2F_FALL;
next_state = BS_2F_FALL;
if(button_held(BUTTON_Z))
s0 = BS_CROUCH;
next_state = BS_CROUCH;
s0 = func_802B6F20(s0);
next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A))
s0 = func_8029C780();
next_state = func_8029C780();
if(player_isSliding())
s0 = BS_SLIDE;
next_state = BS_SLIDE;
s0 = func_8029CA94(s0);
next_state = func_8029CA94(next_state);
if(player_inWater())
s0 = BS_2D_SWIM_IDLE;
next_state = BS_2D_SWIM_IDLE;
bs_setState(s0);
bs_setState(next_state);
}
void bswalk_slow_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr();
f32 sp20;
AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 start_position;
if(bs_getPrevState() == 3){
sp20 = anim_getTimer(animctrl_getAnimPtr(s0));
start_position = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
}else{
sp20 = 0.0f;
start_position = 0.0f;
}
animctrl_reset(s0);
animctrl_setIndex(s0, ASSET_3_ANIM_BSWALK);
animctrl_setDuration(s0, 0.43f);
animctrl_setStart(s0, sp20);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0x168);
animctrl_reset(anim_ctrl);
animctrl_setIndex(anim_ctrl, ASSET_3_ANIM_BSWALK);
animctrl_setDuration(anim_ctrl, 0.43f);
animctrl_setStart(anim_ctrl, start_position);
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(anim_ctrl, "bswalk.c", 0x168);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkCreepSlowWalkVelocityThreshold, bsWalkSlowWalkWalkVelocityThreshold, bsWalkSlowestSlowWalkDuration, bsWalkFastestSlowWalkDuration);
}
void bswalk_slow_upate(void){
s32 s0 = 0;
s32 next_state = 0;
func_802B6E44();
if(func_8029B2E8() == 0.0f){
yaw_setIdeal(yaw_get());
@@ -223,66 +223,66 @@ void bswalk_slow_upate(void){
switch(func_8029B300()){
case 0://L802B7160
if(func_80297C04(3.0f))
s0 = BS_1_IDLE;
next_state = BS_1_IDLE;
break;
case 1://L802B7180
s0 = BS_WALK_CREEP;
next_state = BS_WALK_CREEP;
break;
case 3://L802B7188
s0 = BS_WALK;
next_state = BS_WALK;
break;
case 4:
s0 = BS_4_WALK_FAST;
next_state = BS_4_WALK_FAST;
break;
}//L802B7194
if(func_8028B128())
s0 = BS_WALK_MUD;
next_state = BS_WALK_MUD;
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
if(func_8028B094())
s0 = BS_2F_FALL;
next_state = BS_2F_FALL;
if(button_held(BUTTON_Z))
s0 = BS_CROUCH;
next_state = BS_CROUCH;
s0 = func_802B6F20(s0);
next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A))
s0 = func_8029C780();
next_state = func_8029C780();
if(player_isSliding())
s0 = BS_SLIDE;
next_state = BS_SLIDE;
s0 = func_8029CA94(s0);
next_state = func_8029CA94(next_state);
if(player_inWater())
s0 = BS_2D_SWIM_IDLE;
next_state = BS_2D_SWIM_IDLE;
bs_setState(s0);
bs_setState(next_state);
}
void bswalk_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr();
f32 sp20 = 0.0f;
AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 start_position = 0.0f;
switch(bs_getPrevState()){
default:
sp20 = 0.0f;
start_position = 0.0f;
break;
case 2:
case 4:
sp20 = anim_getTimer(animctrl_getAnimPtr(s0));
case 2://slowwalk
case 4://fastwalk
start_position = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
break;
}
animctrl_reset(s0);
animctrl_setIndex(s0, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(s0, 0.66f);
animctrl_setTransitionDuration(s0, 0.14f);
animctrl_setStart(s0, sp20);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0x1ed);
animctrl_reset(anim_ctrl);
animctrl_setIndex(anim_ctrl, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(anim_ctrl, 0.66f);
animctrl_setTransitionDuration(anim_ctrl, 0.14f);
animctrl_setStart(anim_ctrl, start_position);
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(anim_ctrl, "bswalk.c", 0x1ed);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkSlowWalkWalkVelocityThreshold, bsWalkWalkFastWalkVelocityThreshold, bsWalkSlowestWalkDuration, bsWalkFastestWalkDuration);
@@ -290,7 +290,7 @@ void bswalk_init(void){
}
void bswalk_update(void){
s32 s0 = 0;
s32 next_state = 0;
func_802B6E44();
func_8029AD28(0.4f, 4);
func_8029AD28(0.9f, 3);
@@ -301,46 +301,46 @@ void bswalk_update(void){
case 1:
case 2:
if(func_80297C04(bsWalkSlowWalkWalkVelocityThreshold) && func_802B6EF4())
s0 = BS_2_WALK_SLOW;
next_state = BS_2_WALK_SLOW;
break;
case 4:
s0 = BS_4_WALK_FAST;
next_state = BS_4_WALK_FAST;
break;
}//L802B76B8
if(func_8028B128())
s0 = BS_WALK_MUD;
next_state = BS_WALK_MUD;
if(func_8028B4C4() && bsWalkSkidVelocity < _get_horzVelocity()){
s0 = BS_SKID;
next_state = BS_SKID;
}
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
if(func_8028B094())
s0 = BS_2F_FALL;
next_state = BS_2F_FALL;
if(button_held(BUTTON_Z))
s0 = BS_CROUCH;
next_state = BS_CROUCH;
s0 = func_802B6F20(s0);
next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A))
s0 = func_8029C780();
next_state = func_8029C780();
if(player_isSliding())
s0 = BS_SLIDE;
next_state = BS_SLIDE;
s0 = func_8029CA94(s0);
next_state = func_8029CA94(next_state);
if(player_inWater())
s0 = BS_2D_SWIM_IDLE;
next_state = BS_2D_SWIM_IDLE;
bs_setState(s0);
bs_setState(next_state);
}
void bswalk_fast_init(void){
AnimCtrl * s0 = baanim_getAnimCtrlPtr();
AnimCtrl * anim_ctrl = baanim_getAnimCtrlPtr();
f32 sp28 = 0.0f;
int sp24 = 1;
@@ -355,18 +355,18 @@ void bswalk_fast_init(void){
sp24 = 0;
break;
case 3:
sp28 = anim_getTimer(animctrl_getAnimPtr(s0));
sp28 = anim_getTimer(animctrl_getAnimPtr(anim_ctrl));
break;
}
animctrl_reset(s0);
animctrl_setSmoothTransition(s0, sp24);
animctrl_setIndex(s0, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(s0, 0.66f);
animctrl_setTransitionDuration(s0, 0.1f);
animctrl_setStart(s0, sp28);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP);
animctrl_start(s0, "bswalk.c", 0x27d);
animctrl_reset(anim_ctrl);
animctrl_setSmoothTransition(anim_ctrl, sp24);
animctrl_setIndex(anim_ctrl, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(anim_ctrl, 0.66f);
animctrl_setTransitionDuration(anim_ctrl, 0.1f);
animctrl_setStart(anim_ctrl, sp28);
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);
animctrl_start(anim_ctrl, "bswalk.c", 0x27d);
func_8029C7F4(BAANIM_UPDATE_2_SCALE_HORZ,1,1,2);
baanim_setDurationRange(0.3f, 1.5f);
baanim_setVelocityMapRanges(bsWalkWalkFastWalkVelocityThreshold, bsWalkMaxFastWalkVelocity, bsWalkSlowestFastWalkDuration, bsWalkFastestFastWalkDuration);
@@ -377,7 +377,7 @@ void bswalk_fast_init(void){
}
void bswalk_fast_update(void){
s32 s0 = 0;
s32 next_state = 0;
func_802B6E44();
func_80299594(0, 0.5f);
func_8029AD28(0.4f, 4);
@@ -387,56 +387,56 @@ void bswalk_fast_update(void){
switch(func_8029B300()){
case 0://L802B79EC
if(func_80297C04(18.0f))
s0 = BS_1_IDLE;
next_state = BS_1_IDLE;
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
break;
case 1:
case 2://L802B7A28
if(func_80297C04(bsWalkSlowWalkWalkVelocityThreshold))
s0 = BS_2_WALK_SLOW;
next_state = BS_2_WALK_SLOW;
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
break;
case 3://L802B7A60
if(func_80297C04(bsWalkWalkFastWalkVelocityThreshold) && func_802B6EF4())
s0 = BS_WALK;
next_state = BS_WALK;
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
break;
}//L802B7AA4
if(func_8028B128())
s0 = BS_WALK_MUD;
next_state = BS_WALK_MUD;
if(func_8028B4C4() && bsWalkSkidVelocity < _get_horzVelocity()){
s0 = BS_SKID;
next_state = BS_SKID;
}
if(func_8028B094())
s0 = BS_2F_FALL;
next_state = BS_2F_FALL;
if(button_held(BUTTON_Z))
s0 = BS_CROUCH;
next_state = BS_CROUCH;
s0 = func_802B6F20(s0);
next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A))
s0 = func_8029C780();
next_state = func_8029C780();
if(player_isSliding())
s0 = BS_SLIDE;
next_state = BS_SLIDE;
s0 = func_8029CA94(s0);
next_state = func_8029CA94(next_state);
if(player_inWater())
s0 = BS_2D_SWIM_IDLE;
next_state = BS_2D_SWIM_IDLE;
bs_setState(s0);
bs_setState(next_state);
}
void bswalk_fast_end(void){
@@ -452,40 +452,40 @@ void bswalk_mud_init(void){
}
void bswalk_mud_update(void){
s32 s0 = 0;
s32 next_state = 0;
func_802B6E44();
func_8029AD28(0.4f, 4);
func_8029AD28(0.9f, 3);
func_802B6D00();
if(!func_8028B128())
s0 = BS_2_WALK_SLOW;
next_state = BS_2_WALK_SLOW;
if(!func_8029B300())
s0 = BS_1_IDLE;
next_state = BS_1_IDLE;
if(func_80294F78())
s0 = func_802926C0();
next_state = func_802926C0();
if(func_8028B094())
s0 = BS_2F_FALL;
next_state = BS_2F_FALL;
if(button_held(BUTTON_Z))
s0 = BS_CROUCH;
next_state = BS_CROUCH;
s0 = func_802B6F20(s0);
next_state = func_802B6F20(next_state);
if(button_pressed(BUTTON_A))
s0 = func_8029C780();
next_state = func_8029C780();
if(player_isSliding())
s0 = BS_SLIDE;
next_state = BS_SLIDE;
s0 = func_8029CA94(s0);
next_state = func_8029CA94(next_state);
if(player_inWater())
s0 = BS_2D_SWIM_IDLE;
next_state = BS_2D_SWIM_IDLE;
bs_setState(s0);
bs_setState(next_state);
}
void bswalk_drone_init(void){

View File

@@ -52,14 +52,14 @@ void func_802CE8D4(Actor *this){
switch(this->state)
{
case 1://L802CE9C4
if( !func_8031FF1C(BKPROG_D_BEEHIVE_TEXT)
if( !fileProgressFlag_get(FILEPROG_D_BEEHIVE_TEXT)
&& subaddie_playerIsWithinCylinder(this, 250, 300)
){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if( player_getTransformation() == TRANSFORM_1_BANJO
&& func_80311480(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
){
func_80320004(BKPROG_D_BEEHIVE_TEXT, 1);
fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, 1);
}
}
}//L802CEA48

View File

@@ -194,7 +194,7 @@ void chBottlesBonusCursor_freeMethod(Actor *this) {
func_8031FBA0();
if (func_8034BAFC() != -1) {
func_802C5A3C(func_8034BAFC());
func_8033D13C(func_8034BAFC());
gameFile_load(func_8034BAFC());
func_80347AA8();
}
chBottlesBonusSursorMarker = 0;

View File

@@ -45,18 +45,18 @@ void func_802CD8C0(Actor *this){
return;
}
if(map_get() == MAP_26_MMM_NAPPERS_ROOM){
if(func_8031FF1C(BKPROG_1D_MMM_DINNING_ROOM_CUTSCENE)){
if(fileProgressFlag_get(FILEPROG_1D_MMM_DINNING_ROOM_CUTSCENE)){
marker_despawn(this->marker);
return;
}
else{
func_802CD870(this);
func_80320004(BKPROG_1D_MMM_DINNING_ROOM_CUTSCENE, TRUE);
fileProgressFlag_set(FILEPROG_1D_MMM_DINNING_ROOM_CUTSCENE, TRUE);
}
}
//L802CD9C4
if(map_get() == MAP_8E_GL_FURNACE_FUN){
if(func_8031FF1C(BKPROG_F4_ENTER_FF_CUTSCENE)){
if(fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE)){
marker_despawn(this->marker);
return;
}

View File

@@ -6,7 +6,7 @@
extern void actor_setOpacity(Actor*,s32);
extern void func_8035644C(u32);
bool chCollectible_collectItem(Actor*, u32, enum asset_e, enum comusic_e, enum item_e, f32);
bool chCollectible_collectItem(Actor*, enum file_progress_e, enum asset_e, enum comusic_e, enum item_e, f32);
Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chCollectible_update(Actor *this);
@@ -76,7 +76,7 @@ void func_802D8C98(Actor *this, s32 arg1) {
chCollectible_setState(this, (phi_v0 ) ? 2 : 3);
}
bool chCollectible_collectItem(Actor* actor, u32 arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){
bool chCollectible_collectItem(Actor* actor, enum file_progress_e arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){
func_8025A6EC(sfxId,32000);
timedFunc_set_1(0.75f, (GenMethod_1)func_8035644C, arg1);
if(!func_802FADD4(0x1b)){
@@ -100,7 +100,7 @@ s32 chCollectible_collectEgg(ActorProp *arg0){
if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker);
}
chCollectible_collectItem(actPtr, 5, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f);
chCollectible_collectItem(actPtr, FILEPROG_5_BLUE_EGG_TEXT, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f);
}
void chCollectible_collectRedFeather(ActorProp *arg0){
@@ -108,7 +108,7 @@ void chCollectible_collectRedFeather(ActorProp *arg0){
fxSparkle_redFeather(&arg0->x);
if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker);
chCollectible_collectItem(actPtr, 6, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
chCollectible_collectItem(actPtr, FILEPROG_6_RED_FEATHER_TEXT, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
}
void chCollectible_collectGoldFeather(ActorProp *arg0){
@@ -116,7 +116,7 @@ void chCollectible_collectGoldFeather(ActorProp *arg0){
fxSparkle_goldFeather(&arg0->x);
if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker);
chCollectible_collectItem(actPtr, 7, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
chCollectible_collectItem(actPtr, FILEPROG_7_GOLD_FEATHER_TEXT, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
}
Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){

View File

@@ -171,8 +171,8 @@ void func_802C4768(s32 gamenum){
func_8031FBF8();
D_80365E00 = gamenum;
func_8031FBA0();
if(func_8033D1BC(gamenum)){
func_8033D13C(gamenum);
if(gameFile_isNotEmpty(gamenum)){
gameFile_load(gamenum);
D_8037DCCE[gamenum] = (itemscore_timeScores_get(LEVEL_6_LAIR)) ? 1 : 0;
strcpy(D_8037DD48, "");
@@ -235,7 +235,7 @@ void func_802C4768(s32 gamenum){
}
void func_802C4AC8(s32 arg0){
func_8033D0FC(arg0);
gameFile_clear(arg0);
func_802C4768(arg0);
}
@@ -253,7 +253,7 @@ void func_802C4AF0(Actor * this){
}
for(i = 0; i < 3; i++){
func_8033CFD4(i);
gameFile_8033CFD4(i);
}
if(D_8037DD28){
@@ -393,14 +393,14 @@ void func_802C4C14(Actor *this){
case 4://L802C50C8
if(animctrl_isStopped(this->animctrl)){
chBottlesBonus_func_802DEB80();
if(!func_8033D1BC(sp84)){
if(!gameFile_isNotEmpty(sp84)){
timedFunc_set_3(0.0f, (GenMethod_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(func_802DA498() && func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE)){
if(func_802DA498() && fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE)){
timedFunc_set_2(sp44, (GenMethod_2)func_8031FB14, 0, 0);
}
else{//L802C5188
@@ -413,7 +413,7 @@ void func_802C4C14(Actor *this){
break;
case 2://L802C51CC
if(sp74[0] == 1){
if(func_8033D1BC(sp84)){
if(gameFile_isNotEmpty(sp84)){
func_8031877C(chGameSelectTopZoombox);
func_803183A4(chGameSelectTopZoombox, (&D_80365DFC)[func_8031B5B0()]);
D_8037DD2C = 1;
@@ -424,7 +424,7 @@ void func_802C4C14(Actor *this){
}
}
else if(sp5C[FACE_BUTTON(BUTTON_A)] == 1){//L802C5250
if(func_8033D1BC(sp84)){
if(gameFile_isNotEmpty(sp84)){
if(randf() < 0.1){
switch(sp84){
case 0://L802C52B8
@@ -543,7 +543,7 @@ void func_802C5740(Actor * this){
D_8037DCE0.unk4 = (&D_80365DF8)[i];
if(!this->initialized){
func_8033CE40();
gameFile_8033CE40();
if(chGameSelectBottomZoombox == NULL){
chGameSelectBottomZoombox = gczoombox_new(0xA0, TALK_PIC_C_BANJO_2, 2, 0, NULL);
gczoombox_open(chGameSelectBottomZoombox);
@@ -591,8 +591,8 @@ void func_802C5994(void){
if( a1 || t6)
{
if(D_80365E00 != -1 && !func_802E4A08() && map_get() != MAP_91_FILE_SELECT){
func_8033D17C(D_80365E00);
func_8033CFD4(D_80365E00);
gameFile_save(D_80365E00);
gameFile_8033CFD4(D_80365E00);
}
}
}

View File

@@ -46,9 +46,9 @@ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){
ActorLocal_Jinjo *localPtr = &actorPtr->jinjo;
if(actorPtr->state < 5){
if(!func_8031FF1C(BKPROG_E_JINJO_TEXT)){
if(!fileProgressFlag_get(FILEPROG_E_JINJO_TEXT)){
func_80311480(__chJinjo_getMeetDialogId(actorPtr->marker->unk14_20), 4, 0, 0, 0, 0);
func_80320004(BKPROG_E_JINJO_TEXT, 1);
fileProgressFlag_set(FILEPROG_E_JINJO_TEXT, 1);
}
func_80328B8C(actorPtr, 6, 0.0f , -1);
if(func_803463D4(ITEM_12_JINJOS, 1 << (this->unk14_20 + 6) ) == 0x1f)

View File

@@ -257,7 +257,7 @@ void chSnowman_update(Actor *this){
else if(
map_get() != MAP_27_FP_FREEZEEZY_PEAK
|| func_8038DD34(local->unk0) == 0
|| func_8031FF1C(0x13)
|| fileProgressFlag_get(0x13)
){//L802E2318
if(0.0 < local->unk4){
if( (func_8023DB5C() & 1)

View File

@@ -276,7 +276,7 @@ void func_8029B5EC(void){
void func_8029B62C(void){
if(item_empty(ITEM_16_LIFE)){
if(!func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) || func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){
if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
func_8025A430(-1, 0x7D0, 3);
func_8025A2B0();
func_802DC528(0, 0);
@@ -335,14 +335,14 @@ void func_8029B85C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
}
void func_8029B890(void){
if(!func_8031FF1C(BKPROG_A8_HAS_DIED) && !func_803203FC(2)){
if(!fileProgressFlag_get(FILEPROG_A8_HAS_DIED) && !func_803203FC(2)){
func_803114D0();
if(bs_getState() == 0x54){
func_8029B62C();
return;
}
func_80311480(0xf81, 7, NULL, NULL, func_8029B85C, NULL);
func_80320004(BKPROG_A8_HAS_DIED, TRUE);
fileProgressFlag_set(FILEPROG_A8_HAS_DIED, TRUE);
}
else{
func_8029B62C();
@@ -888,7 +888,7 @@ void func_8029CBC4(void){
void func_8029CBF4(void){
if(item_getCount(ITEM_E_JIGGY) == 10){
if( jiggyscore_total() == 100 && func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)){
if( jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
timedFunc_set_3(4.1f, (GenMethod_3)func_802E4078, MAP_95_CS_END_ALL_100, 0, 1);
}//L8029CC58
@@ -896,7 +896,7 @@ void func_8029CBF4(void){
func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
}//L8029CC7C
else{
if( jiggyscore_total() == 100 && func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)){
if( jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);
}
func_8029CBC4();
@@ -915,7 +915,7 @@ void func_8029CCC4(void){
miscflag_clear(7);
func_802B0CD8();
item_inc(ITEM_E_JIGGY);
if(jiggyscore_total() == 100 && func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)){
if(jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
func_8028F918(2);
}
func_8024BD08(0);

View File

@@ -288,32 +288,32 @@ void func_8029D968(void){
case MAP_44_CCW_SUMMER://8029DB58
case MAP_45_CCW_AUTUMN://8029DB58
case MAP_46_CCW_WINTER://8029DB58
func_8035644C(BKPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD);
func_8035644C(FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD);
break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP://8029DB68
case MAP_72_GL_BGS_LOBBY:
func_8035644C(BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER);
func_8035644C(FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER);
break;
case MAP_3C_RBB_KITCHEN://8029DB78
func_8035644C(BKPROG_A9_HAS_TOUCHED_RBB_OVEN);
func_8035644C(FILEPROG_A9_HAS_TOUCHED_RBB_OVEN);
break;
case MAP_12_GV_GOBIS_VALLEY://8029DB88
case MAP_6E_GL_GV_LOBBY:
case MAP_8E_GL_FURNACE_FUN://8029DB88
func_8035644C(BKPROG_10_HAS_TOUCHED_SAND_EEL_SAND);
func_8035644C(FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND);
break;
case MAP_27_FP_FREEZEEZY_PEAK://8029DB98
case MAP_7F_FP_WOZZAS_CAVE://8029DB98
func_8035644C(BKPROG_14_HAS_TOUCHED_FP_ICY_WATER);
func_8035644C(FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER);
break;
case MAP_1B_MMM_MAD_MONSTER_MANSION://8029DBA8
if(!func_8029CFA0())
func_8035644C(BKPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE);
func_8035644C(FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE);
break;
}
}

View File

@@ -5,7 +5,7 @@
extern void func_8030DBFC(u32, f32, f32, f32);
extern bool func_80309DBC(f32[3], f32[3], f32, f32 sp54[3], s32, s32);
extern void func_80320004(s32, bool);
extern void fileProgressFlag_set(s32, bool);
extern void func_8030DEB4(u8, f32, f32);
extern void func_8030DF68(u8, f32[3]);
extern void func_8030E2C4(u8);
@@ -373,7 +373,7 @@ void chBeeSwarm_update(Actor *this) {
local->unk24 = (this->unk100 != NULL) ? this->unk100->unk5C : 0;
local->unk5 = 1;
if (this->unk100 != NULL) {
func_80320004(BKPROG_D_BEEHIVE_TEXT, TRUE);
fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, TRUE);
}
func_80328A84(this, (this->unk100 != NULL) ? 1 : 2);
this->unk60 = 0.0f;
@@ -445,12 +445,12 @@ void chBeeSwarm_update(Actor *this) {
func_8028E9C4(5, spB4);
switch (this->state) {
case 1:
if (!func_8031FF1C(0x8F) && subaddie_playerIsWithinCylinder(this, 250, 300)
if (!fileProgressFlag_get(FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE) && subaddie_playerIsWithinCylinder(this, 250, 300)
&& ((func_8028ECAC() == 0) || (func_8028ECAC() == BSGROUP_8_TROT))
&& (player_getTransformation() == TRANSFORM_1_BANJO)
&& (func_80311480(0xDA6, 0, NULL, NULL, NULL, NULL) != 0)
) {
func_80320004(0x8F, TRUE);
fileProgressFlag_set(FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE, TRUE);
}
if (chBeeSwarm_802CF5E4(this)) {
func_80328A84(this, 2U);

View File

@@ -91,8 +91,8 @@ static s32 __transformation_getCost(enum transformation_e trans_id){
}
static enum bkprog_e __bkProgId_from_transformationId(enum transformation_e trans_id){
return (trans_id - TRANSFORM_2_TERMITE) + BKPROG_90_PAID_TERMITE_COST;
static enum file_progress_e __bkProgId_from_transformationId(enum transformation_e trans_id){
return (trans_id - TRANSFORM_2_TERMITE) + FILEPROG_90_PAID_TERMITE_COST;
}
bool chMumbo_withinHorzDistToPlayer(s32 x, s32 z, s32 dist) {
@@ -125,8 +125,8 @@ void chMumbo_func_802D18B4(Actor *this) {
}
if(player_is_within_range || func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
func_80328AC8(this, 2);
if( !func_8031FF1C(BKPROG_11_HAS_MET_MUMBO)
|| (!func_8031FF1C(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) && this->unk38_0)
if( !fileProgressFlag_get(FILEPROG_11_HAS_MET_MUMBO)
|| (!fileProgressFlag_get(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) && this->unk38_0)
) {
func_8028F918(2);
}
@@ -148,13 +148,13 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
return;
case ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR: //L802D1A40
func_80320004(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
fileProgressFlag_set(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET + D_8037DDF0, 4, NULL, NULL, NULL, NULL);
gcpausemenu_80314AC8(1);
break;
case ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS: //L802D1A7C /* fall-through */
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
fileProgressFlag_set(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
case ASSET_DAB_DIALOG_MUMBO_NOT_ENOUGH_TOKENS: //L802D1A88
func_8028F918(0);
break;
@@ -192,17 +192,17 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) {
if (this->unk10_12 != 0) {
func_80311480(func_8031FF44(BK_PROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80311480(fileProgressFlag_getN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
return;
}
if (func_8031FF1C(BKPROG_12_HAS_TRANSFORMED_BEFORE)) {
if (fileProgressFlag_get(FILEPROG_12_HAS_TRANSFORMED_BEFORE)) {
if (this->velocity[0] == 0.0f) {
func_80311480(transform_id + ASSET_D8F_DIALOG_MUMBO_MEET, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
return;
}
if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !func_8031FF1C(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) {
if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !fileProgressFlag_get(FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) {
func_80311480(ASSET_DAD_DIALOG_MUMBO_XFORM_IN_CRYPT, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE);
fileProgressFlag_set(FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE);
return;
}
gcpausemenu_80314AC8(1);
@@ -242,7 +242,7 @@ void chMumbo_update(Actor *this) {
if(!this->unk16C_4){
this->unk38_31 = 0;
if( player_getTransformation() == TRANSFORM_1_BANJO
&& !func_8031FF1C(__bkProgId_from_transformationId(D_8037DDF0))
&& !fileProgressFlag_get(__bkProgId_from_transformationId(D_8037DDF0))
&& (map_get() != MAP_7A_GL_CRYPT)
){
this->unk38_31 = __transformation_getCost(D_8037DDF0);
@@ -277,24 +277,24 @@ void chMumbo_update(Actor *this) {
}
actor_playAnimationOnce(this);
if (actor_animationIsAt(this, 0.999f)) {
if( !func_8031FF1C(BKPROG_11_HAS_MET_MUMBO)
if( !fileProgressFlag_get(FILEPROG_11_HAS_MET_MUMBO)
&& !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) {
func_80328A84(this, 3);
func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_11_HAS_MET_MUMBO, TRUE);
fileProgressFlag_set(FILEPROG_11_HAS_MET_MUMBO, TRUE);
break;
}
if( !func_8031FF1C(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE)
if( !fileProgressFlag_get(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE)
&& !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
&& this->unk38_0
){
func_80328A84(this, 3);
func_80311480(ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
fileProgressFlag_set(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
break;
}
@@ -318,7 +318,7 @@ void chMumbo_update(Actor *this) {
if(face_buttons[FACE_BUTTON(BUTTON_B)] == 1){
if (D_8037DDF0 == TRANSFORM_7_WISHWASHY) {
this->unk38_31 = 0;
} else if (player_getTransformation() == TRANSFORM_1_BANJO && !func_8031FF1C(__bkProgId_from_transformationId(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){
} else if (player_getTransformation() == TRANSFORM_1_BANJO && !fileProgressFlag_get(__bkProgId_from_transformationId(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){
this->unk38_31 = __transformation_getCost(D_8037DDF0);
}
this->unk38_0 = (D_8037DDF0 == TRANSFORM_7_WISHWASHY) || (item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->unk38_31);
@@ -327,26 +327,26 @@ void chMumbo_update(Actor *this) {
sp44 = player_getTransformation() == TRANSFORM_1_BANJO;
func_8028F94C(2, this->position);
if ( sp44 && map_get() != MAP_7A_GL_CRYPT
&& !func_8031FF1C(0xBA)
&& !fileProgressFlag_get(FILEPROG_BA_HAS_SEEN_TREX_TEXT)
&& randf() < 0.01
&& sp48
) {
func_80311480(ASSET_DAE_DIALOG_MUMBO_TREX_START, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
func_80320004(0xBA, 1);
fileProgressFlag_set(FILEPROG_BA_HAS_SEEN_TREX_TEXT, 1);
this->unk138_24 = TRUE;
func_80328A84(this, 3);
} else if (
sp44
&& map_get() != MAP_7A_GL_CRYPT
&& !this->unk138_23
&& (sp40 = func_8031FF44(0xBB, 2), sp40 < 3)
&& (sp40 = fileProgressFlag_getN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, 2), sp40 < 3)
&& randf() < 0.05
&& sp48
){
this->unk138_23 = TRUE;
this->unk10_12 = D_8037DDF0;
D_8037DDF0 = 7;
func_80320044(0xBB, ++sp40, 2);
fileProgressFlag_setN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, ++sp40, 2);
func_80328A84(this, 5);
} else {
if (this->unk38_31) {
@@ -393,7 +393,7 @@ void chMumbo_update(Actor *this) {
func_8028FB88(TRANSFORM_1_BANJO);
} else if (func_8028FB88(D_8037DDF0)) {
if (D_8037DDF0 != TRANSFORM_7_WISHWASHY) {
if (func_8031FF74(__bkProgId_from_transformationId(D_8037DDF0), TRUE)) {
if (fileProgressFlag_getAndSet(__bkProgId_from_transformationId(D_8037DDF0), TRUE)) {
this->velocity[0] = 1.0f;
}
this->unk38_31 = 0;
@@ -428,7 +428,7 @@ void chMumbo_update(Actor *this) {
case 7: //L802D2704
chMumbo_func_802D186C(this);
if (func_803203FC(BKPROG_11_HAS_MET_MUMBO) == 0) {
if (func_803203FC(FILEPROG_11_HAS_MET_MUMBO) == 0) {
if (map_get() == MAP_7A_GL_CRYPT) {
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
} else {
@@ -436,7 +436,7 @@ void chMumbo_update(Actor *this) {
}
if (sp48 != 0) {
func_80311480(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL);
func_803204E4(BKPROG_11_HAS_MET_MUMBO, TRUE);
func_803204E4(FILEPROG_11_HAS_MET_MUMBO, TRUE);
}
}
actor_loopAnimation(this);
@@ -444,7 +444,7 @@ void chMumbo_update(Actor *this) {
case 8: //L802D2790
chMumbo_func_802D186C(this);
if (func_803203FC(BKPROG_12_HAS_TRANSFORMED_BEFORE) == 0) {
if (func_803203FC(FILEPROG_12_HAS_TRANSFORMED_BEFORE) == 0) {
if (map_get() == MAP_7A_GL_CRYPT) {
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
} else {
@@ -452,7 +452,7 @@ void chMumbo_update(Actor *this) {
}
if (sp48 != 0) {
func_80311480(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL);
func_803204E4(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
func_803204E4(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
}
}
actor_loopAnimation(this);
@@ -512,7 +512,7 @@ void chMumbo_detransformWarn(s32 this, s32 arg1){
if(D_8037DDF3)
return;
func_80311480(func_8031FF74(BKPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? ASSET_F5C_DIALOG_MUMBO_MAGIC_GET_WEAK_ABREV : ASSET_F5B_DIALOG_MUMBO_MAGIC_GET_WEAK_FULL, 0xe, NULL, NULL, NULL, NULL);
func_80311480(fileProgressFlag_getAndSet(FILEPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? ASSET_F5C_DIALOG_MUMBO_MAGIC_GET_WEAK_ABREV : ASSET_F5B_DIALOG_MUMBO_MAGIC_GET_WEAK_FULL, 0xe, NULL, NULL, NULL, NULL);
}
void chMumbo_detransformTrigger(s32 this, s32 arg1){
@@ -520,7 +520,7 @@ void chMumbo_detransformTrigger(s32 this, s32 arg1){
xform = player_getTransformation();
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1)
return;
func_80311480(func_8031FF74(BKPROG_84_MAGIC_ALL_GONE_TEXT, TRUE) ? ASSET_F5E_DIALOG_MUMBO_MAGIC_RUN_OUT_ABREV: ASSET_F5D_DIALOG_MUMBO_MAGIC_RUN_OUT_FULL, 0xe, NULL, NULL, NULL, NULL);
func_80311480(fileProgressFlag_getAndSet(FILEPROG_84_MAGIC_ALL_GONE_TEXT, TRUE) ? ASSET_F5E_DIALOG_MUMBO_MAGIC_RUN_OUT_ABREV: ASSET_F5D_DIALOG_MUMBO_MAGIC_RUN_OUT_FULL, 0xe, NULL, NULL, NULL, NULL);
D_8037DDF1++;
func_8028FB88(TRANSFORM_1_BANJO);
}

View File

@@ -13,14 +13,14 @@ ActorInfo D_803675C0 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36C_25_MUMBO_TOKEN_SI
void chMumboSign_update(Actor *this) {
if (!this->unk16C_4) {
if( func_8031FF1C(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + BKPROG_90_PAID_TERMITE_COST)
if( fileProgressFlag_get(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + FILEPROG_90_PAID_TERMITE_COST)
|| func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) {
marker_despawn(this->marker);
}
this->unk16C_4 = TRUE;
}
if (func_8031FF1C(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + BKPROG_90_PAID_TERMITE_COST)) {
if (fileProgressFlag_get(this->modelCacheIndex - ACTOR_368_5_MUMBO_TOKEN_SIGN + FILEPROG_90_PAID_TERMITE_COST)) {
func_80326310(this);
}
}

View File

@@ -13,7 +13,7 @@ extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
extern void ml_vec3f_assign(f32[3], f32, f32, f32);
extern void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6);
extern void func_80319EA4(void);
extern void func_80320004(s32, bool);
extern void fileProgressFlag_set(s32, bool);
extern void func_803204E4(s32, bool);
void func_802D3D54(Actor *this);
@@ -51,7 +51,7 @@ s32 D_8036768C = 0;
s32 D_80367690 = 0;
s32 D_80367694 = 0; //enum map_e
s32 D_80367698 = 0;
s32 D_8036769C = 0; //enum bkprog_e
s32 D_8036769C = 0; //enum file_progress_e
s32 D_803676A0 = 0; //enum actor_e
f32 D_803676A4 = 0.0f;
s32 D_803676A8 = 0;
@@ -115,7 +115,7 @@ f32 D_8037DE08;
/* .public */
void func_802D6114(void);
void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum bkprog_e arg5);
void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum file_progress_e arg5);
void func_802D6344(void);
void func_802D63D4(void);
void func_802D6750(void);
@@ -143,8 +143,8 @@ void func_802D3138(ActorMarker *marker, ActorMarker *other_marker){
}
}
void func_802D317C(ActorMarker *marker, enum bkprog_e prog_flag_id){
func_80320004(prog_flag_id, TRUE);
void func_802D317C(ActorMarker *marker, enum file_progress_e prog_flag_id){
fileProgressFlag_set(prog_flag_id, TRUE);
marker_despawn(marker);
}
@@ -166,14 +166,14 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
FUNC_8030E624(SFX_82_METAL_BREAK, 0.6f, 32736);
func_802D2FB0(sp2C, 0x14, -0x1E, 0x190, 3.0f, 0x15E, 0x50, 0x96);
sp2C->unk60 = 1.0f;
func_80320004(0xA5, 1);
fileProgressFlag_set(0xA5, 1);
break;
case 0x109:
case MARKER_109_BREAKABLE_BRICK_WALL:
func_8030E6D4(SFX_114_BRICKWALL_BREAKING);
func_8030E510(SFX_11_WOOD_BREAKING_1, 28000);
func_80328AEC(sp2C, 9);
func_80320004((sp2C->unkF4_8 == 1) ? 0xC8 : 0xC9, 1);
fileProgressFlag_set((sp2C->unkF4_8 == 1) ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN, TRUE);
break;
case 0x107:
@@ -182,20 +182,20 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
marker_despawn(arg0);
break;
case 0x224:
case MARKER_224_BREAKABLE_FLOOR_COBWEB:
func_8025A70C(COMUSIC_2B_DING_B);
func_8030E6A4(SFX_129_SWOOSH, (sp2C->scale < 0.45) ? 1.0 : 0.8, 0x7FF8);
func_80328AEC(sp2C, 0xC);
func_802D2FB0(sp2C, 8, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64);
func_80320004((sp2C->unkF4_8== 1) ? 0xCB : 0xCC, 1);
fileProgressFlag_set((sp2C->unkF4_8== 1) ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN, 1);
break;
case 0x225:
case MARKER_225_BREAKABLE_WALL_COBWEB:
func_8025A70C(COMUSIC_2B_DING_B);
func_8030E540(SFX_129_SWOOSH);
func_80328AEC(sp2C, 0xF);
func_802D2FB0(sp2C, 0xE, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64);
func_80320004(0xCA, 1);
fileProgressFlag_set(FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN, 1);
break;
case 0x163:
@@ -323,7 +323,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
func_802EE2E8(sp2C, 1, 0x32, 0x14, 1.2f, 1.4f, 2.2f);
func_802EE2E8(sp2C, 1, 0x3C, 0x64, 1.6f, 1.8f, 2.2f);
func_802EE2E8(sp2C, 1, 0x32, 0xB4, 1.2f, 1.4f, 2.2f);
func_802D317C(arg0, BKPROG_C4_STATUE_EYE_BROKEN);
func_802D317C(arg0, FILEPROG_C4_STATUE_EYE_BROKEN);
break;
case 0x164:
@@ -496,7 +496,7 @@ bool func_802D42F8(Actor *this) {
return FALSE;
}
else{
return func_8031FF1C(D_803679B0[i + 1]);
return fileProgressFlag_get(D_803679B0[i + 1]);
}
}
@@ -623,7 +623,7 @@ void func_802D48F0(void){
void func_802D4928(Actor *this, s32 arg1, s32 arg2, s32 arg3) {
this->marker->propPtr->unk8_3 = TRUE;
if( ( (((arg1 & 0xC00000) == 0) && mapSpecificFlags_get(arg1 - 0))
|| (((arg1 & 0xC00000) == 0x800000) && func_8031FF1C(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x800000) && fileProgressFlag_get(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x400000) && func_803203FC(arg1 - 0x400000))
)
&& (arg2 != this->state)
@@ -632,7 +632,7 @@ void func_802D4928(Actor *this, s32 arg1, s32 arg2, s32 arg3) {
actor_playAnimationOnce(this);
}
if( ( (((arg1 & 0xC00000) == 0) && !mapSpecificFlags_get(arg1 - 0))
|| (((arg1 & 0xC00000) == 0x800000) && !func_8031FF1C(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x800000) && !fileProgressFlag_get(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x400000) && !func_803203FC(arg1 - 0x400000))
)
&& (arg2 == this->state)
@@ -647,16 +647,16 @@ void func_802D4A9C(Actor *this, s32 arg1){
}
void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) {
if (func_8031FF1C(arg2)) {
if (fileProgressFlag_get(arg2)) {
if (arg1 & 0x800000) {
func_80320004(arg1 + 0xFF800000, 1);
fileProgressFlag_set(arg1 + 0xFF800000, 1);
}
if (arg1 & 0x400000) {
func_803204E4(arg1 + 0xFFC00000, 1);
}
}
if( (((arg1 & 0x800000) && (func_8031FF1C(arg1 + 0xFF800000))) || ((arg1 & 0x400000) && (func_803203FC(arg1 + 0xFFC00000))))
&& (func_8031FF1C(arg2)) && (this->animctrl == NULL)
if( (((arg1 & 0x800000) && (fileProgressFlag_get(arg1 + 0xFF800000))) || ((arg1 & 0x400000) && (func_803203FC(arg1 + 0xFFC00000))))
&& (fileProgressFlag_get(arg2)) && (this->animctrl == NULL)
) {
func_80328B8C(this, 8, 0.0f, 1);
}
@@ -665,35 +665,35 @@ void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) {
void func_802D4B94(Actor *this){
func_802D4AC0(this, 0x4000b6, BKPROG_18_MM_WITCH_SWITCH_JIGGY_SPAWNED);
func_802D4AC0(this, 0x4000b6, FILEPROG_18_MM_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4BBC(Actor *this){
func_802D4AC0(this, 0x4000bc, 0x9A);
func_802D4AC0(this, 0x4000bc, FILEPROG_9A_CC_WITCH_SWITCH_PRESSED);
}
void func_802D4BE4(Actor *this){
func_802D4AC0(this, 0x4000bd, 0x9F);
func_802D4AC0(this, 0x4000bd, FILEPROG_9F_BGS_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4C0C(Actor *this){
func_802D4AC0(this, 0x4000be, 0xA0);
func_802D4AC0(this, 0x4000be, FILEPROG_A0_GV_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4C34(Actor *this){
func_802D4AC0(this, 0x4000b7, BKPROG_19_MMM_WITCH_SWITCH_JIGGY_SPAWNED);
func_802D4AC0(this, 0x4000b7, FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4C5C(Actor *this){
func_802D4AC0(this, 0x4000b8, BKPROG_1A_TTC_WITCH_SWITCH_JIGGY_SPAWNED);
func_802D4AC0(this, 0x4000b8, FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4C84(Actor *this){
func_802D4AC0(this, 0x4000b9, BKPROG_1C_RBB_WITCH_SWITCH_JIGGY_SPAWNED);
func_802D4AC0(this, 0x4000b9, FILEPROG_1C_RBB_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4CAC(Actor *this){
func_802D4AC0(this, 0x4000ba, BKPROG_46_CCW_WITCH_SWITCH_JIGGY_SPAWNED);
func_802D4AC0(this, 0x4000ba, FILEPROG_46_CCW_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4CD4(Actor *this){
@@ -704,7 +704,7 @@ void func_802D4CD4(Actor *this){
}//L802D4D10
this->unk58_0 = TRUE;
}//L802D4D1C
func_802D4AC0(this, 0x4000bb, 0x47);
func_802D4AC0(this, 0x4000bb, FILEPROG_47_FP_WITCH_SWITCH_JIGGY_PRESSED);
}
void func_802D4D3C(enum actor_e arg0, enum actor_e arg1) {
@@ -787,10 +787,10 @@ void func_802D5140(ActorMarker *caller, enum asset_e text_id, s32 arg2){
itemscore_noteScores_get(func_80320424(0x19, 4));
}
void func_802D5178(s32 arg0, enum bkprog_e arg1, s32 arg2, enum map_e arg3, s32 arg4, s32 arg5, enum actor_e arg6, s32 arg7){
if(levelSpecificFlags_get(arg0) && !func_8031FF1C(arg1)){
void func_802D5178(s32 arg0, enum file_progress_e arg1, s32 arg2, enum map_e arg3, s32 arg4, s32 arg5, enum actor_e arg6, s32 arg7){
if(levelSpecificFlags_get(arg0) && !fileProgressFlag_get(arg1)){
levelSpecificFlags_set(arg0, FALSE);
func_80320004(arg1, TRUE);
fileProgressFlag_set(arg1, TRUE);
func_802D6264(0.95f, arg3, arg2, arg4, arg5, 0);
D_803676A0 = arg6;
D_80367690 = arg7;
@@ -816,13 +816,13 @@ void func_802D5260(void) {
if (sp3C == -1) {
levelSpecificFlags_set(0x3C, FALSE);
func_80320004(BKPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
func_80320004(BKPROG_27_LAIR_WATER_LEVEL_3, FALSE);
fileProgressFlag_set(FILEPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
levelSpecificFlags_set(0x3D, FALSE);
return;
}
sp38 = func_8034C528(sp3C + 0x190);
if( func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3)
if( fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3)
&& !levelSpecificFlags_get(0x3D)
&& !levelSpecificFlags_get(0x3C)
) {
@@ -847,8 +847,8 @@ void func_802D5260(void) {
}
if (D_803679C8[sp3C].unk6 + D_803676A4 <= D_803679C8[sp3C].unk4) {
levelSpecificFlags_set(0x3C, FALSE);
func_80320004(BKPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
func_80320004(BKPROG_27_LAIR_WATER_LEVEL_3, FALSE);
fileProgressFlag_set(FILEPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
func_802F9D38(D_803676A8);
D_803676A8 = 0;
}
@@ -857,9 +857,9 @@ void func_802D5260(void) {
if (levelSpecificFlags_get(0x3C) != 0) {
sp34 = D_803679C8[sp3C].unk6 + D_803676A4;
} else {
sp34 = ((s16 *)&D_803679C8[sp3C])[(func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3)) ? 3
: (func_8031FF1C(BKPROG_25_LAIR_WATER_LEVEL_2)) ? 2
: (func_8031FF1C(BKPROG_23_LAIR_WATER_LEVEL_1)) ? 1
sp34 = ((s16 *)&D_803679C8[sp3C])[(fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3)) ? 3
: (fileProgressFlag_get(FILEPROG_25_LAIR_WATER_LEVEL_2)) ? 2
: (fileProgressFlag_get(FILEPROG_23_LAIR_WATER_LEVEL_1)) ? 1
: 0];
}
func_8034DEB4(sp38, sp34);
@@ -1010,20 +1010,20 @@ void func_802D5628(void){
}
else{//L802D5B64
func_802D5260();
func_802D5178(0x1C, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(0x21, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(0x1E, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_IRON_BARS, 0xA);
func_802D5178(0x1D, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_CHEST_LID, 0xA);
func_802D5178(0x1C, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(0x21, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(0x1E, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(0x1D, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(0x1F, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(0x23, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(0x22, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_INVISIBLE_WALL, 0xA);
func_802D5178(0x22, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
func_802D5178(0x24, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA);
func_802D5178(0x20, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA);
func_802D5178(0x3F, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_WOODEN_DOOR, 0x28);
func_802D5178(0x3F, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_DOOR_OF_GRUNTY, 0x28);
if(func_803203FC(0x18)){
if(!func_8031FF1C(BKPROG_99_PAST_50_NOTE_DOOR_TEXT)){
if(!fileProgressFlag_get(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT)){
func_80311174(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140);
func_80320004(BKPROG_99_PAST_50_NOTE_DOOR_TEXT, TRUE);
fileProgressFlag_set(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT, TRUE);
func_803204E4(0x18, 0);
}
else{//L802D5DD8
@@ -1039,11 +1039,11 @@ void func_802D5628(void){
){
if( map_get() != MAP_8E_GL_FURNACE_FUN
&& map_get() != MAP_90_GL_BATTLEMENTS
&& !func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY)
&& !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
){
D_8037DE04 += time_getDelta();
if(D_80367680 < D_8037DE04 && !func_803203FC(0x16)){
if(func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){
if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
sp4C = 0xF9D;
}
else{
@@ -1056,7 +1056,7 @@ void func_802D5628(void){
if(func_803203FC(0x22)){
if(func_80311480(0xF82, 4, NULL, NULL, NULL, NULL)){
func_80320004(0xc1, 1);
fileProgressFlag_set(FILEPROG_C1_BADDIES_ESCAPE_TEXT, TRUE);
func_803204E4(0x22, 0);
D_8037DE04 = 0.0f;
D_80367680 += 60.0;
@@ -1085,15 +1085,15 @@ void func_802D5628(void){
//water_level_atleast_2;
int func_802D6088(void){
return func_8031FF1C(BKPROG_25_LAIR_WATER_LEVEL_2)
|| func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3);
return fileProgressFlag_get(FILEPROG_25_LAIR_WATER_LEVEL_2)
|| fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3);
}
//water_level_atleast_1;
int func_802D60C4(void){
return func_8031FF1C(BKPROG_23_LAIR_WATER_LEVEL_1)
|| func_8031FF1C(BKPROG_25_LAIR_WATER_LEVEL_2)
|| func_8031FF1C(BKPROG_27_LAIR_WATER_LEVEL_3);
return fileProgressFlag_get(FILEPROG_23_LAIR_WATER_LEVEL_1)
|| fileProgressFlag_get(FILEPROG_25_LAIR_WATER_LEVEL_2)
|| fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3);
}
void func_802D6114(void){
@@ -1103,7 +1103,7 @@ void func_802D6114(void){
sp24 = D_80367694;\
sp20 = D_80367698;
if(D_8036769C)
func_80320004(D_8036769C, TRUE);
fileProgressFlag_set(D_8036769C, TRUE);
func_802D6344();
if(map_get() != sp24){
if(map_getLevel(sp24) != map_getLevel(map_get())){
@@ -1129,8 +1129,8 @@ void func_802D61FC(enum map_e arg0){
func_802D6750();
}
void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum bkprog_e arg5){
D_80367684 = arg1;
void func_802D6264(f32 delay, enum map_e map_id, s32 arg2, s32 arg3, s32 arg4, enum file_progress_e arg5){
D_80367684 = map_id;
D_80367688 = arg2;
D_8036768C = arg3;
D_80367690 = 0;
@@ -1140,17 +1140,17 @@ void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum
D_8036769C = arg5;
D_803676A0 = 0;
if(arg1 != D_80367694){
timedFunc_set_1(arg0, (GenMethod_1) func_802D61FC, arg1);
if(map_id != D_80367694){
timedFunc_set_1(delay, (GenMethod_1) func_802D61FC, map_id);
}
else{
timedFunc_set_0(arg0, func_802D63D4);
timedFunc_set_0(delay, func_802D63D4);
}
gcpausemenu_80314AC8(0);
}
void func_802D6310(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, enum bkprog_e arg4){
func_802D6264(arg0, arg1, arg2, arg3, 0x63, arg4);
void func_802D6310(f32 delay, enum map_e map_id, s32 arg2, s32 arg3, enum file_progress_e arg4){
func_802D6264(delay, map_id, arg2, arg3, 0x63, arg4);
func_8028FCE8();
}
@@ -1205,19 +1205,19 @@ void func_802D6494(void){
if( (!D_80367684 || (D_80367684 && (map_get() == D_80367684)))
){
switch(D_803676A0){
case ACTOR_2E5_WOODEN_DOOR:
case ACTOR_2E5_DOOR_OF_GRUNTY:
break;
case ACTOR_20E_MM_ENTRANCE_DOOR:// L802D6510
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
case ACTOR_211_CHEST_LID:// L802D6530
case ACTOR_211_TCC_ENTRANCE_CHEST_LID:// L802D6530
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
case ACTOR_212_IRON_BARS:// L802D6550
case ACTOR_212_CC_ENTRANCE_BARS:// L802D6550
if(map_get() == MAP_70_GL_CC_LOBBY && !func_803203FC(UNKFLAGS1_7F_SANDCASTLE_OPEN_CC)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_212_IRON_BARS), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_802D4830(actorArray_findActorFromActorId(ACTOR_212_CC_ENTRANCE_BARS), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
@@ -1245,7 +1245,7 @@ void func_802D6494(void){
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_228_INVISIBLE_WALL:// L802D66CC
case ACTOR_228_MMM_ENTRANCE_DOOR:// L802D66CC
if(!func_803203FC(UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM)){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
@@ -1337,31 +1337,31 @@ void func_802D6924(void){
void func_802D6948(void){
switch(map_get()){
case MAP_2_MM_MUMBOS_MOUNTAIN:
func_80320004(BKPROG_B0_HAS_ENTERED_MM, TRUE);
fileProgressFlag_set(FILEPROG_B0_HAS_ENTERED_MM, TRUE);
break;
case MAP_7_TTC_TREASURE_TROVE_COVE:
func_80320004(BKPROG_B2_HAS_ENTERED_TTC, TRUE);
fileProgressFlag_set(FILEPROG_B2_HAS_ENTERED_TTC, TRUE);
break;
case MAP_B_CC_CLANKERS_CAVERN:
func_80320004(BKPROG_B8_HAS_ENTERED_CC, TRUE);
fileProgressFlag_set(FILEPROG_B8_HAS_ENTERED_CC, TRUE);
break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
func_80320004(BKPROG_B1_HAS_ENTERED_BGS, TRUE);
fileProgressFlag_set(FILEPROG_B1_HAS_ENTERED_BGS, TRUE);
break;
case MAP_12_GV_GOBIS_VALLEY:
func_80320004(BKPROG_B3_HAS_ENTERED_GV, TRUE);
fileProgressFlag_set(FILEPROG_B3_HAS_ENTERED_GV, TRUE);
break;
case MAP_1B_MMM_MAD_MONSTER_MANSION:
func_80320004(BKPROG_B7_HAS_ENTERED_MMM, TRUE);
fileProgressFlag_set(FILEPROG_B7_HAS_ENTERED_MMM, TRUE);
break;
case MAP_27_FP_FREEZEEZY_PEAK:
func_80320004(BKPROG_B6_HAS_ENTERED_FP, TRUE);
fileProgressFlag_set(FILEPROG_B6_HAS_ENTERED_FP, TRUE);
break;
case MAP_31_RBB_RUSTY_BUCKET_BAY:
func_80320004(BKPROG_B4_HAS_ENTERED_RBB, TRUE);
fileProgressFlag_set(FILEPROG_B4_HAS_ENTERED_RBB, TRUE);
break;
case MAP_40_CCW_HUB:
func_80320004(BKPROG_B5_HAS_ENTERED_CCW, TRUE);
fileProgressFlag_set(FILEPROG_B5_HAS_ENTERED_CCW, TRUE);
break;
}
}
@@ -1370,23 +1370,23 @@ void func_802D6948(void){
int func_802D6A38(enum map_e map_id){
switch(map_id){
case MAP_2_MM_MUMBOS_MOUNTAIN:
return func_8031FF1C(BKPROG_B0_HAS_ENTERED_MM);
return fileProgressFlag_get(FILEPROG_B0_HAS_ENTERED_MM);
case MAP_7_TTC_TREASURE_TROVE_COVE:
return func_8031FF1C(BKPROG_B2_HAS_ENTERED_TTC);
return fileProgressFlag_get(FILEPROG_B2_HAS_ENTERED_TTC);
case MAP_B_CC_CLANKERS_CAVERN:
return func_8031FF1C(BKPROG_B8_HAS_ENTERED_CC);
return fileProgressFlag_get(FILEPROG_B8_HAS_ENTERED_CC);
case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
return func_8031FF1C(BKPROG_B1_HAS_ENTERED_BGS);
return fileProgressFlag_get(FILEPROG_B1_HAS_ENTERED_BGS);
case MAP_12_GV_GOBIS_VALLEY:
return func_8031FF1C(BKPROG_B3_HAS_ENTERED_GV);
return fileProgressFlag_get(FILEPROG_B3_HAS_ENTERED_GV);
case MAP_1B_MMM_MAD_MONSTER_MANSION:
return func_8031FF1C(BKPROG_B7_HAS_ENTERED_MMM);
return fileProgressFlag_get(FILEPROG_B7_HAS_ENTERED_MMM);
case MAP_27_FP_FREEZEEZY_PEAK:
return func_8031FF1C(BKPROG_B6_HAS_ENTERED_FP);
return fileProgressFlag_get(FILEPROG_B6_HAS_ENTERED_FP);
case MAP_31_RBB_RUSTY_BUCKET_BAY:
return func_8031FF1C(BKPROG_B4_HAS_ENTERED_RBB);
return fileProgressFlag_get(FILEPROG_B4_HAS_ENTERED_RBB);
case MAP_40_CCW_HUB:
return func_8031FF1C(BKPROG_B5_HAS_ENTERED_CCW);
return fileProgressFlag_get(FILEPROG_B5_HAS_ENTERED_CCW);
}
return FALSE;
}

View File

@@ -109,14 +109,14 @@ void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker
case MARKER_36_ORANGE_COLLECTIBLE:
if (mapSpecificFlags_get(1))
return;
func_8035646C(8);
func_8035646C(FILEPROG_8_ORANGE_TEXT);
func_8030E6D4(SFX_B3_ORANGE_TALKING);
dialog_id = 0;
break;
case MARKER_37_GOLD_BULLION:
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
timedFunc_set_1(0.5f, func_8035646C, 9);
timedFunc_set_1(0.5f, func_8035646C, FILEPROG_9_GOLD_BULLION_TEXT);
dialog_id = 0;
break;

View File

@@ -18,16 +18,16 @@ void func_802DA9A0(ActorMarker *caller, enum asset_e text_id, s32 arg2){
s32 flag;
s32 tmp;
if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){
flag = BKPROG_15_ENTER_MMM_TEXT;
flag = FILEPROG_15_ENTER_MMM_TEXT;
}
else{
if(map_get() == MAP_69_GL_MM_LOBBY)
tmp = BKPROG_97_ENTERED_LAIR_TEXT;
tmp = FILEPROG_97_ENTERED_LAIR_TEXT;
else
tmp = BKPROG_98_EXITED_LEVEL_TEXT;
tmp = FILEPROG_98_EXITED_LEVEL_TEXT;
flag = tmp;
}
func_80320004(flag, 1);
fileProgressFlag_set(flag, 1);
FUNC_8030E624(SFX_EA_GRUNTY_LAUGH_1, 1.0f, 30000);
}
@@ -42,17 +42,17 @@ void func_802DAA14(Actor *this){
}
if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){
flag = BKPROG_15_ENTER_MMM_TEXT;
flag = FILEPROG_15_ENTER_MMM_TEXT;
}
else{
if(map_get() == MAP_69_GL_MM_LOBBY)
tmp = BKPROG_97_ENTERED_LAIR_TEXT;
tmp = FILEPROG_97_ENTERED_LAIR_TEXT;
else
tmp = BKPROG_98_EXITED_LEVEL_TEXT;
tmp = FILEPROG_98_EXITED_LEVEL_TEXT;
flag = tmp;
}
if(func_8031FF1C(flag)){
if(fileProgressFlag_get(flag)){
marker_despawn(this->marker);
return;
}

View File

@@ -29,7 +29,7 @@ void chMumboToken_collect(ActorMarker *marker, ActorMarker *other_marker){
this = marker_getActor(marker);
mumboscore_set(func_802E0CB0(this), TRUE);
func_8030E760(0x401, 1.0f, 0x7fff);
timedFunc_set_1(0.75f, func_8035644C, 4);
timedFunc_set_1(0.75f, func_8035644C, FILEPROG_4_MUMBO_TOKEN_TEXT);
fxSparkle_mumboToken(&marker->propPtr->x);
item_inc(ITEM_1C_MUMBO_TOKEN);
marker_despawn(marker);

View File

@@ -381,7 +381,7 @@ void func_802E4214(enum map_e map_id){
D_8037E8E0.unk1B = D_8037E8E0.unk1A = 0;
D_8037E8E0.unkC = 0;
D_8037E8E0.unk1C = 0;
func_8033C070();
savedata_init();
sns_save_and_update_global_data();
func_8030D86C();
func_80259A24();

View File

@@ -4,7 +4,7 @@
extern void func_8028F918(s32);
void func_8031A9E4(Actor *this);
void chMinigame_update(Actor *this);
enum minigame_e {
MINIGAME_0_BOSS_BOOM_BOX,
@@ -16,16 +16,22 @@ enum minigame_e {
MINIGAME_F_INVALID = 0xF
};
enum chminigame_state_e {
MINIGAME_STATE_1_INTRODUCE_GAME = 1,
MINIGAME_STATE_2_IN_PROGESS,
MINIGAME_STATE_3_RETURN_TO_FF,
};
/* .data */
ActorInfo D_8036D970 = {
0x1E1, 0x376, 0x0,
0x1, NULL,
func_8031A9E4, func_80326224, func_80325340,
ActorInfo chMinigame = {
MARKER_1E1_FF_MINIGAME, ACTOR_376_FF_MINIGAME, 0x0,
MINIGAME_STATE_1_INTRODUCE_GAME, NULL,
chMinigame_update, func_80326224, func_80325340,
0, 0, 0.0f, 0
};
/* .code */
enum minigame_e func_8031A580(void){
enum minigame_e __chminigame_getCurrentMapId(void){
switch(map_get()){
case MAP_3A_RBB_BOSS_BOOM_BOX:
return MINIGAME_0_BOSS_BOOM_BOX;
@@ -45,7 +51,7 @@ enum minigame_e func_8031A580(void){
return MINIGAME_F_INVALID;
}
void func_8031A618(Actor *this) {
void __chMinigame_hideSandcastleJiggy(Actor *this) {
Actor *jiggy;
if (this->unk10_12 == MINIGAME_5_SANDCASTLE) {
@@ -80,7 +86,7 @@ void func_8031A678(Actor *this){
break;
case MINIGAME_5_SANDCASTLE:
sp2C = func_8034C528(0x191);
sp2C = func_8034C528(0x191); //lower water
func_8034DEB4(sp2C, -1000.0f);
break;
@@ -96,37 +102,37 @@ void func_8031A678(Actor *this){
}
}
void func_8031A794(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void __chMinigame_textCallback1(ActorMarker *marker, enum asset_e text_id, s32 arg2){
Actor *this = marker_getActor(marker);
this->unk138_24 = TRUE;
}
void func_8031A7C4(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void __chMinigame_transformToCroc(ActorMarker *marker, enum asset_e text_id, s32 arg2){
if(arg2 == 1){
func_8028FB88(TRANSFORM_5_CROC);
}
}
void func_8031A7F4(Actor *this, u32 arg1) {
void __chMinigame_setState(Actor *this, u32 arg1) {
switch (arg1) {
case 1:
case MINIGAME_STATE_1_INTRODUCE_GAME:
func_8028F918(2);
if (this->unk10_12 == MINIGAME_1_VILE) {
func_80347A14(0);
}
if (func_803203FC(this->unk10_12 + 6) == 0) {
func_80324DBC(2.0f, this->unk10_12 + 0x1026, 0xA2, NULL, this->marker, func_8031A794, func_8031A7C4);
func_80324DBC(2.0f, this->unk10_12 + 0x1026, 0xA2, NULL, this->marker, __chMinigame_textCallback1, __chMinigame_transformToCroc);
func_803204E4(this->unk10_12 + 6, 1);
this->unk138_23 = TRUE;
} else {
func_80324DBC(2.0f, 0xD38, 0x20, NULL, this->marker, func_8031A794, NULL);
func_80324DBC(2.0f, 0xD38, 0x20, NULL, this->marker, __chMinigame_textCallback1, NULL);
}
break;
case 2:
case MINIGAME_STATE_2_IN_PROGESS:
func_8028F918(0);
func_803204E4(3, 1);
break;
case 3:
case MINIGAME_STATE_3_RETURN_TO_FF:
func_803204E4(4, 1);
func_8028F918(2);
func_8025AB00();
@@ -139,22 +145,22 @@ void func_8031A7F4(Actor *this, u32 arg1) {
func_80328A84(this, arg1);
}
void func_8031A9BC(Actor *this){
void __chMinigame_free(Actor *this){
func_803204E4(3, 0);
}
void func_8031A9E4(Actor *this){
void chMinigame_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 1;
this->unk10_12 = func_8031A580();
this->unk10_12 = __chminigame_getCurrentMapId();
actor_collisionOff(this);
if(!func_803203FC(2)){
func_8031A678(this);
return;
}
func_8031A618(this);
marker_setFreeMethod(this->marker, func_8031A9BC);
__chMinigame_hideSandcastleJiggy(this);
marker_setFreeMethod(this->marker, __chMinigame_free);
func_8028FAB0(this->position);
this->unk1C[0] = 0.0f; this->unk1C[1] = this->yaw; this->unk1C[2] = 0.0f;
func_8028FAEC(this->unk1C);
@@ -165,24 +171,24 @@ void func_8031A9E4(Actor *this){
}
func_803204E4(5, 0);
func_803204E4(3, 0);
func_8031A7F4(this, 1);
__chMinigame_setState(this, MINIGAME_STATE_1_INTRODUCE_GAME);
gcpausemenu_80314AC8(0);
}
if(func_803203FC(2)){
switch(this->state){
case 1://L8031AB2C
case MINIGAME_STATE_1_INTRODUCE_GAME://L8031AB2C
if(this->unk138_24)
func_8031A7F4(this, 2);
__chMinigame_setState(this, MINIGAME_STATE_2_IN_PROGESS);
break;
case 2://L8031AB50
case MINIGAME_STATE_2_IN_PROGESS://L8031AB50
func_8028FA14(MAP_8E_GL_FURNACE_FUN, 2);
if(item_getCount(ITEM_14_HEALTH) == 0)
item_set(ITEM_6_HOURGLASS, 0);
if(!func_803203FC(3)){
func_8031A7F4(this, 3);
__chMinigame_setState(this, MINIGAME_STATE_3_RETURN_TO_FF);
}
break;
case 3:
case MINIGAME_STATE_3_RETURN_TO_FF:
break;
}
}//L8031AB8C

View File

@@ -5,10 +5,10 @@
extern void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *);
extern void func_8028F760(s32, f32, f32);
extern void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
extern s32 func_8031FF1C(s32);
extern s32 func_8031FF44(s32 offset, s32 numBits);
extern s32 fileProgressFlag_get(s32);
extern s32 fileProgressFlag_getN(s32 offset, s32 numBits);
extern void func_8031FFAC(void);
extern void func_80320004(s32 index, s32 set);
extern void fileProgressFlag_set(s32 index, s32 set);
extern void func_8032048C(void);
extern void func_803204E4(s32 arg0, s32 arg1);
extern void ml_vec3h_to_vec3f(f32 *, s32);
@@ -34,7 +34,7 @@ u8 D_80383190;
/* .code */
bool func_8031C640(void) {
if ((func_8024E698(0) == 1) && (func_8033D1EC() != 0)) {
if ((func_8024E698(0) == 1) && (gameFile_anyNonEmpty() != 0)) {
return TRUE;
}
return FALSE;
@@ -57,9 +57,9 @@ bool func_8031C6E4(void) {
sp24 = func_8024E698(0);
if (mapSpecificFlags_get(0) != 0) {
func_80320004(0xE1, 1);
fileProgressFlag_set(0xE1, 1);
}
if ((sp24 == 1) && func_8031FF1C(0xE1) && !gctransition_8030BDC0()) {
if ((sp24 == 1) && fileProgressFlag_get(0xE1) && !gctransition_8030BDC0()) {
if (!mapSpecificFlags_get(0xC)) {
mapSpecificFlags_set(0xC, TRUE);
func_802DC528(0, 0);
@@ -302,7 +302,7 @@ void func_8031D2B4(s32 arg0, s32 arg1) {
}
void func_8031D2F4(s32 arg0, s32 arg1) {
if (func_8031FF44(0xF8, 2) == 3) {
if (fileProgressFlag_getN(0xF8, 2) == 3) {
func_8031CC8C(arg0, 0x1401);
}
}
@@ -1427,7 +1427,7 @@ void func_8031FA90(s32 arg0, s32 arg1) {
}
void func_8031FAB4(s32 arg0, s32 arg1) {
if ((func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) != 0) && (jiggyscore_total() == 100)) {
if ((fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY) != 0) && (jiggyscore_total() == 100)) {
func_8031CC8C(arg0, 0x9501);
} else {
func_8031CC8C(arg0, 0x9001);
@@ -1435,10 +1435,10 @@ void func_8031FAB4(s32 arg0, s32 arg1) {
}
void func_8031FB14(s32 arg0, s32 arg1) {
if (func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) != 0) {
if (fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) != 0) {
func_8031CC8C(arg0, 0x6912);
} else {
func_80320004(BKPROG_BD_ENTER_LAIR_CUTSCENE, 1);
fileProgressFlag_set(FILEPROG_BD_ENTER_LAIR_CUTSCENE, 1);
func_8031CC8C(arg0, 0x8204);
}
}

View File

@@ -2,16 +2,15 @@
#include "functions.h"
#include "variables.h"
s32 func_8031FF1C(s32);
void func_8031FFAC(void);
void func_80320004(s32 index, s32 set);
void fileProgressFlag_set(s32 index, s32 set);
s32 func_803200A4(u8 *array, s32 index);
s32 func_803200E4(u8 *array, s32 offset, s32 numBits);
void func_8032015C(u8 *array, s32 index, s32 set);
void func_803201C8(u8 *array, s32 startIndex, s32 set, s32 length);
void func_8032048C(void);
void func_803204E4(s32 arg0, s32 arg1);
s32 func_8031FF44(s32 offset, s32 numBits);
s32 fileProgressFlag_getN(s32 offset, s32 numBits);
void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
void ml_vec3h_to_vec3f(f32 *, s32);
void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *);
@@ -108,19 +107,19 @@ void func_8031FEC0(void) {
*obscured_addr = func_8031FE40();
}
s32 func_8031FF1C(s32 index) {
bool fileProgressFlag_get(enum file_progress_e index) {
return func_803200A4(D_803831A0.unk8, index);
}
s32 func_8031FF44(s32 offset, s32 numBits) {
s32 fileProgressFlag_getN(s32 offset, s32 numBits) {
return func_803200E4(D_803831A0.unk8, offset, numBits);
}
s32 func_8031FF74(s32 index, s32 set) {
s32 fileProgressFlag_getAndSet(s32 index, s32 set) {
s32 ret;
ret = func_8031FF1C(index);
func_80320004(index, set);
ret = fileProgressFlag_get(index);
fileProgressFlag_set(index, set);
return ret;
}
@@ -134,13 +133,13 @@ void func_8031FFAC(void) {
func_8031FEC0();
}
void func_80320004(s32 index, s32 set) {
void fileProgressFlag_set(s32 index, s32 set) {
func_8032015C(D_803831A0.unk8, index, set);
func_8031FC40();
func_8031FEC0();
}
void func_80320044(s32 startIndex, s32 set, s32 length) {
void fileProgressFlag_setN(s32 startIndex, s32 set, s32 length) {
func_803201C8(D_803831A0.unk8, startIndex, set, length);
func_8031FC40();
func_8031FEC0();

View File

@@ -37,7 +37,7 @@ void func_803216D0(enum map_e map){
levelSpecificFlags_clear();
bsStoredState_clearTimers();
func_803219A8();
if( func_80320454(0x17, 0)
if( func_80320454(0x17, FALSE)
&& getGameMode() != 0
&& D_80383300.level != LEVEL_D_CUTSCENE
&& map != MAP_91_FILE_SELECT
@@ -57,7 +57,7 @@ void func_803216D0(enum map_e map){
ttc_resetTresureHunt();
break;
case MAP_1B_MMM_MAD_MONSTER_MANSION:
mm_resetFlowerPots();
mmm_resetFlowerPots();
break;
}
}
@@ -71,8 +71,8 @@ void func_80321854(void){
if( D_80383300.level == LEVEL_1_MUMBOS_MOUNTAIN
&& getGameMode() != 0
&& func_8031FF1C(BKPROG_31_MM_OPEN)
&& !func_8031FF1C(0xC1)
&& fileProgressFlag_get(FILEPROG_31_MM_OPEN)
&& !fileProgressFlag_get(FILEPROG_C1_BADDIES_ESCAPE_TEXT)
){
func_803204E4(0x22, 1);
}

View File

@@ -183,11 +183,11 @@ void func_80332CCC(void) {
}
void func_80332D98(enum map_e map_id, enum jiggy_e jiggy_id, enum bkprog_e flag_id, s32 arg3) {
void func_80332D98(enum map_e map_id, enum jiggy_e jiggy_id, enum file_progress_e flag_id, s32 arg3) {
f32 sp1C[3];
if ((map_get() == map_id)
&& func_8031FF1C(flag_id)
&& fileProgressFlag_get(flag_id)
&& !jiggyscore_isSpawned(jiggy_id)
&& nodeProp_findPositionFromActorId(arg3, sp1C)
) {
@@ -206,13 +206,13 @@ void func_80332E08(void) {
var_v0 = D_8038356C;
}
}
func_80332D98(MAP_69_GL_MM_LOBBY, JIGGY_34_LAIR_MM_WITCH_SWITCH, BKPROG_18_MM_WITCH_SWITCH_JIGGY_SPAWNED, 0x205);
func_80332D98(MAP_6F_GL_FP_LOBBY, JIGGY_39_LAIR_MMM_WITCH_SWITCH, BKPROG_19_MMM_WITCH_SWITCH_JIGGY_SPAWNED, 0x207);
func_80332D98(MAP_6D_GL_TTC_LOBBY, JIGGY_36_LAIR_TTC_WITCH_SWITCH, BKPROG_1A_TTC_WITCH_SWITCH_JIGGY_SPAWNED, 0x209);
func_80332D98(MAP_76_GL_640_NOTE_DOOR, JIGGY_3B_LAIR_RBB_WITCH_SWITCH, BKPROG_1C_RBB_WITCH_SWITCH_JIGGY_SPAWNED, 0x20C);
func_80332D98(MAP_79_GL_CCW_LOBBY, JIGGY_3C_LAIR_CCW_WITCH_SWITCH, BKPROG_46_CCW_WITCH_SWITCH_JIGGY_SPAWNED, 0x238);
if ((D_8036E830 == 0) && func_8031FF1C(BKPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)) {
func_80332D98(MAP_6A_GL_TTC_AND_CC_PUZZLE, JIGGY_35_LAIR_CC_WITCH_SWITCH, BKPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED, 0x190);
func_80332D98(MAP_69_GL_MM_LOBBY, JIGGY_34_LAIR_MM_WITCH_SWITCH, FILEPROG_18_MM_WITCH_SWITCH_JIGGY_PRESSED, 0x205);
func_80332D98(MAP_6F_GL_FP_LOBBY, JIGGY_39_LAIR_MMM_WITCH_SWITCH, FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED, 0x207);
func_80332D98(MAP_6D_GL_TTC_LOBBY, JIGGY_36_LAIR_TTC_WITCH_SWITCH, FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED, 0x209);
func_80332D98(MAP_76_GL_640_NOTE_DOOR, JIGGY_3B_LAIR_RBB_WITCH_SWITCH, FILEPROG_1C_RBB_WITCH_SWITCH_JIGGY_PRESSED, 0x20C);
func_80332D98(MAP_79_GL_CCW_LOBBY, JIGGY_3C_LAIR_CCW_WITCH_SWITCH, FILEPROG_46_CCW_WITCH_SWITCH_JIGGY_PRESSED, 0x238);
if ((D_8036E830 == 0) && fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)) {
func_80332D98(MAP_6A_GL_TTC_AND_CC_PUZZLE, JIGGY_35_LAIR_CC_WITCH_SWITCH, FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED, 0x190);
}
D_8036E830 = 1;
}

View File

@@ -65,7 +65,7 @@ s32 D_80383D08; //savedata_jiggy_offset
s32 D_80383D0C; //saved_item_offset
s32 D_80383D10; //abilities_offset
s32 D_80383D14; //end_offset
u8 D_80383D18;
u8 D_80383D18[8];
/* .code */
void savedata_update_crc(s32 buffer, s32 size){
@@ -90,7 +90,7 @@ int _savedata_verify(SaveData *savedata, s32 size){
return 0;
}
void func_8033C070(void){ //savedata_init
void savedata_init(void){ //savedata_init
s32 sp54;
s32 sp50;
s32 sp4C;
@@ -211,7 +211,7 @@ void func_8033C4E4(u8 *savedata){ //saveddata_load_collectibles
func_803479C0(sp28);
}
void func_8033C570(u8 *savedata){ //savedata_load_abilities
void __savedata_load_abilities(u8 *savedata){ //savedata_load_abilities
s32 sp2C;
u8 *sp28;
int i;
@@ -281,7 +281,7 @@ void __savedata_save_timeScores(u8 *savedata){
}
}
void func_8033C8A0(u8 *savedata){ //global_progress
void __savedata_8033C8A0(u8 *savedata){ //global_progress
s32 sp2C;
u8 *sp28;
int i;
@@ -292,7 +292,7 @@ void func_8033C8A0(u8 *savedata){ //global_progress
}
}
void func_8033C924(u8 *savedata){ //saveddata_save_collectibles
void __savedata_8033CA2C(u8 *savedata){ //saveddata_save_collectibles
s32 sp2C;
u8 *sp28;
int i;
@@ -303,7 +303,7 @@ void func_8033C924(u8 *savedata){ //saveddata_save_collectibles
}
}
void func_8033C9A8(u8 *savedata){ //savedata_save_abilities
void __savedata_save_abilities(u8 *savedata){ //savedata_save_abilities
s32 sp2C;
u8 *sp28;
int i;
@@ -314,7 +314,7 @@ void func_8033C9A8(u8 *savedata){ //savedata_save_abilities
}
}
s32 func_8033CA2C(s32 filenum, SaveData *save_data){
s32 savedata_8033CA2C(s32 filenum, SaveData *save_data){
s32 sp1C;
sp1C = load_file_blocks(filenum, 0, save_data, 0xF);
@@ -327,7 +327,7 @@ s32 func_8033CA2C(s32 filenum, SaveData *save_data){
return sp1C;
}
s32 func_8033CA9C(SaveData *savedata){
s32 savedata_8033CA9C(SaveData *savedata){
s32 sp1C;
sp1C = load_file_blocks(0, 0x3C, savedata, 0x4);
@@ -357,16 +357,16 @@ void saveData_load(SaveData *savedata){
__savedata_load_highNoteScores(savedata);
__savedata_load_timeScores(savedata);
func_8033C4E4(savedata);
func_8033C570(savedata);
__savedata_load_abilities(savedata);
for(i = 0; D_80370A20[i].unk0 != -1; i++){
func_803204E4(D_80370A20[i].unk0, func_8031FF1C(D_80370A20[i].unk2));
func_803204E4(D_80370A20[i].unk0, fileProgressFlag_get(D_80370A20[i].unk2));
}
}
void saveData_create(SaveData *savedata){
int i;
for(i = 0; D_80370A20[i].unk0 != -1; i++){
func_80320004(D_80370A20[i].unk2, func_803203FC(D_80370A20[i].unk0));
fileProgressFlag_set(D_80370A20[i].unk2, func_803203FC(D_80370A20[i].unk0));
}
savedata_clear(savedata);
func_8033C5F4(savedata);
@@ -375,13 +375,13 @@ void saveData_create(SaveData *savedata){
__savedata_save_mumboScore(savedata);
__savedata_save_highNoteScores(savedata);
__savedata_save_timeScores(savedata);
func_8033C8A0(savedata);
func_8033C924(savedata);
func_8033C9A8(savedata);
__savedata_8033C8A0(savedata);
__savedata_8033CA2C(savedata);
__savedata_save_abilities(savedata);
savedata_update_crc(savedata, sizeof(SaveData));
}
int func_8033CC98(s32 filenum, u8 *buffer){
int savedata_8033CC98(s32 filenum, u8 *buffer){
int out;
out = write_file_blocks(filenum, 0, buffer, 0xF);
if(out){
@@ -390,16 +390,16 @@ int func_8033CC98(s32 filenum, u8 *buffer){
return out;
}
int func_8033CCD0(s32 filenum){
int savedata_8033CCD0(s32 filenum){
int out;
out = write_file_blocks(filenum, 0, &D_80383D18, 1);
out = write_file_blocks(filenum, 0, D_80383D18, 1);
if(out){
out = 1;
}
return out;
}
int func_8033CD0C(u8 *buffer){
int savedata_8033CE40(u8 *buffer){
int out;
savedata_update_crc(buffer, 0x20);
out = write_file_blocks(0, 0x3C, buffer, 4);

View File

@@ -5,33 +5,33 @@
#include "save.h"
/* .bss */
SaveData D_80383D20[4]; //save_data
s8 D_80383F00[4]; //gamenum to filenum
SaveData gameFile_saveData[4]; //save_data
s8 gameFile_GameIdToFileIdMap[4]; //gamenum to filenum
s32 D_80383F04;
/* .code */
int func_8033CD90(s32 filenum){
int __gameFile_8033CD90(s32 filenum){
int i;
s32 tmp_v1;
void *s2;
s2 = &D_80383D20[filenum];
void *save_data_ptr;
save_data_ptr = &gameFile_saveData[filenum];
i = 3;
while(i != 0){
tmp_v1 = func_8033CA2C(filenum, s2);
tmp_v1 = savedata_8033CA2C(filenum, save_data_ptr);
if(!tmp_v1)
break;
i--;
}
if(tmp_v1)
savedata_clear(s2);
savedata_clear(save_data_ptr);
return tmp_v1;
}
void func_8033CE14(s32 gamenum){
func_8033CD90(D_80383F00[gamenum]);
void __gameFile_8033CE14(s32 gamenum){
__gameFile_8033CD90(gameFile_GameIdToFileIdMap[gamenum]);
}
void func_8033CE40(void) {
void gameFile_8033CE40(void) {
s32 i;
s32 var_s0;
s32 sp48[4];
@@ -41,16 +41,14 @@ void func_8033CE40(void) {
sp48[3] = i = 0;
if (sp48[3] < 3) {
for(i = i; i < 3; i++) {
D_80383F00[i] = -1;
gameFile_GameIdToFileIdMap[i] = -1;
sp48[i] = 0;
i++; i--; //do nothing
}
}
// sp48[3] = 0;
// D_80383F00[3] = -1;
for(var_s0 = 0; var_s0 < 4; var_s0++){
if( (func_8033CD90(var_s0) == 0) && (D_80383F00[D_80383D20[var_s0].unk1 - 1] == -1)) {
D_80383F00[D_80383D20[var_s0].unk1 - 1] = var_s0;
if( (__gameFile_8033CD90(var_s0) == 0) && (gameFile_GameIdToFileIdMap[gameFile_saveData[var_s0].unk1 - 1] == -1)) {
gameFile_GameIdToFileIdMap[gameFile_saveData[var_s0].unk1 - 1] = var_s0;
sp48[var_s0] = 1;
} else {
D_80383F04 = var_s0;
@@ -58,76 +56,76 @@ void func_8033CE40(void) {
}
sp48[D_80383F04] = 1;
for(i = 0; i < 3; i++){
for(var_s0 = 0; (var_s0 < 4) && (D_80383F00[i] == -1); var_s0++){
for(var_s0 = 0; (var_s0 < 4) && (gameFile_GameIdToFileIdMap[i] == -1); var_s0++){
if (sp48[var_s0] == 0) {
sp48[var_s0] = 1;
D_80383F00[i] = var_s0;
gameFile_GameIdToFileIdMap[i] = var_s0;
}
}
}
}
s32 func_8033CFD4(s32 gamenum){
s32 gameFile_8033CFD4(s32 gamenum){
s32 next;
s32 var_s3;
s32 filenum;
u32 i = 3;
s32 tmp_s1;
s32 eeprom_error;
SaveData *var_a1;
var_s3 = D_80383F04;
next = D_80383F00[gamenum];
D_80383F00[gamenum] = D_80383F04;
bcopy(&D_80383D20[next], &D_80383D20[var_s3], 0x78);
var_a1 = D_80383D20 + var_s3;
filenum = D_80383F04;
next = gameFile_GameIdToFileIdMap[gamenum];
gameFile_GameIdToFileIdMap[gamenum] = D_80383F04;
bcopy(&gameFile_saveData[next], &gameFile_saveData[filenum], 0xF*8);
var_a1 = gameFile_saveData + filenum;
var_a1->unk1 = gamenum + 1;
savedata_update_crc(var_a1, sizeof(SaveData));
for(tmp_s1 = 1; tmp_s1 && i > 0; i--){//L8033D070
tmp_s1 = func_8033CC98(var_s3, var_a1);
if(!tmp_s1){
func_8033CE14(gamenum);
for(eeprom_error = 1; eeprom_error && i > 0; i--){//L8033D070
eeprom_error = savedata_8033CC98(filenum, var_a1);
if(!eeprom_error){
__gameFile_8033CE14(gamenum);
}
}
if(!tmp_s1){
if(!eeprom_error){
for(i = 3; i > 0; i--){//L8033D070
tmp_s1 = func_8033CCD0(next);
if(!tmp_s1)
eeprom_error = savedata_8033CCD0(next);
if(!eeprom_error)
break;
}
}
if(tmp_s1){
D_80383F00[gamenum] = next;
if(eeprom_error){
gameFile_GameIdToFileIdMap[gamenum] = next;
}
else{
D_80383F04 = next;
}
return tmp_s1;
return eeprom_error;
}
void func_8033D0FC(s32 gamenum){
s32 filenum = D_80383F00[gamenum];
savedata_clear(&D_80383D20[filenum]);
void gameFile_clear(s32 gamenum){
s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
savedata_clear(&gameFile_saveData[filenum]);
}
void func_8033D13C(s32 gamenum){
s32 filenum = D_80383F00[gamenum];
saveData_load(&D_80383D20[filenum]);
void gameFile_load(s32 gamenum){
s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
saveData_load(&gameFile_saveData[filenum]);
}
void func_8033D17C(s32 gamenum){
s32 filenum = D_80383F00[gamenum];
saveData_create(&D_80383D20[filenum]);
void gameFile_save(s32 gamenum){
s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
saveData_create(&gameFile_saveData[filenum]);
}
bool func_8033D1BC(s32 gamenum){
s32 filenum = D_80383F00[gamenum];
return D_80383D20[filenum].unk0 != 0;
bool gameFile_isNotEmpty(s32 gamenum){
s32 filenum = gameFile_GameIdToFileIdMap[gamenum];
return gameFile_saveData[filenum].unk0 != 0;
}
bool func_8033D1EC(void){
bool gameFile_anyNonEmpty(void){
int i;
for(i = 0; i < 3; i++){
if(func_8033D1BC(i))
if(gameFile_isNotEmpty(i))
return TRUE;
}
return FALSE;

View File

@@ -80,7 +80,7 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
newVal = MAX(0, D_80385F30[item] + diff);
D_80385F30[item] = newVal;
sp34 = ((func_8031FF1C(BKPROG_B9_DOUBLE_HEALTH))? 2 : 1);
sp34 = ((fileProgressFlag_get(FILEPROG_B9_DOUBLE_HEALTH))? 2 : 1);
D_80385F30[ITEM_15_HEALTH_TOTAL] = MIN(sp34*8, D_80385F30[ITEM_15_HEALTH_TOTAL]);
D_80385F30[ITEM_14_HEALTH]= MIN(D_80385F30[ITEM_15_HEALTH_TOTAL], D_80385F30[ITEM_14_HEALTH]);
D_80385F30[ITEM_17_AIR] = MIN(3600, D_80385F30[ITEM_17_AIR]);
@@ -89,15 +89,15 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
switch(item){
case ITEM_D_EGGS:
sp38 = (func_8031FF1C(BKPROG_BE_CHEATO_BLUEEGGS))? 200 : 100;
sp38 = (fileProgressFlag_get(FILEPROG_BE_CHEATO_BLUEEGGS))? 200 : 100;
break;
case ITEM_F_RED_FEATHER:
sp38 = (func_8031FF1C(BKPROG_BF_CHEATO_REDFEATHERS))? 100 : 50;
sp38 = (fileProgressFlag_get(FILEPROG_BF_CHEATO_REDFEATHERS))? 100 : 50;
break;
case ITEM_10_GOLD_FEATHER:
sp38 = (func_8031FF1C(BKPROG_C0_CHEATO_GOLDFEATHERS))? 20 : 10;
sp38 = (fileProgressFlag_get(FILEPROG_C0_CHEATO_GOLDFEATHERS))? 20 : 10;
break;
default:
@@ -523,7 +523,7 @@ void func_8034789C(void) {
sp1C = honeycombscore_get_total();
D_80385F30[ITEM_13_EMPTY_HONEYCOMB] = sp1C % 6;
if (func_8031FF1C(BKPROG_B9_DOUBLE_HEALTH)) {
if (fileProgressFlag_get(FILEPROG_B9_DOUBLE_HEALTH)) {
D_80385F30[ITEM_15_HEALTH_TOTAL] = 16;
} else {
D_80385F30[ITEM_15_HEALTH_TOTAL] = 5 + MIN(3, (sp1C / 6));

View File

@@ -199,7 +199,7 @@ void func_8034B834(void) {
func_80295864(-1);
func_80295870(-1);
for(i = 0; i < 10; i++){
func_80320004(D_80371FA0[i], 1);
fileProgressFlag_set(D_80371FA0[i], 1);
}
}
@@ -259,7 +259,7 @@ void func_8034BA7C(enum map_e map_id, s32 exit_id){
void func_8034BA9C(void) {
if (func_8034BAFC() != -1) {
func_802C5A3C(func_8034BAFC());
func_8033D13C(func_8034BAFC());
gameFile_load(func_8034BAFC());
func_80347AA8();
}
func_8031B010();

View File

@@ -32,6 +32,25 @@ extern void func_8034CD28(void *arg0);
extern void func_8034F248(void *arg0);
extern void func_8034F568(void *arg0);
enum mesh_xform_e{
MESH_XFORM_3_WATER = 3,
};
typedef struct struct_1D_s{
BKModel *model;
s16 unk4;
u8 xform_id;
// u8 pad7[1];
Struct70s unk8;//union of subtypes
}struct1Ds;
typedef struct struct_1E_s{
void (* unk0)(void * arg0, s32 arg1, s32 arg2, s32 arg3);
void (* unk4)(void * arg0, s32 arg1, s32 arg2);
void (* unk8)(void * arg0);
}struct1Es;
struct1Es D_80372030[] = {
{func_8034CF74, func_8034CF90, func_8034CF6C},
{func_8034D170, func_8034D194, func_8034D168},
@@ -56,10 +75,10 @@ void func_8034C9B0(int arg0);
//.code
func_8034C3D0(BKModel *arg0, s32 arg1, s32 vtx_xform_id, s32 arg3){
struct1Ds * v0 = vector_pushBackNew(&D_80386140.unk4);
v0->unk6 = vtx_xform_id;
v0->unk0 = arg0;
v0->xform_id = vtx_xform_id;
v0->model = arg0;
v0->unk4 = arg1;
D_80372030[v0->unk6].unk0(&v0->unk8, arg3, v0->unk0, v0->unk4);
D_80372030[v0->xform_id].unk0(&v0->unk8, arg3, v0->model, v0->unk4);
}
Struct70s *func_8034C448(s32 arg0){
@@ -67,7 +86,7 @@ Struct70s *func_8034C448(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if(iPtr->unk6 == 8 && iPtr->unk4 == arg0)
if(iPtr->xform_id == 8 && iPtr->unk4 == arg0)
return &iPtr->unk8;
}
return NULL;
@@ -99,7 +118,7 @@ Struct70s *func_8034C528(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if(iPtr->unk6 == 2 && iPtr->unk4 == arg0)
if(iPtr->xform_id == 2 && iPtr->unk4 == arg0)
return &iPtr->unk8;
}
return NULL;
@@ -110,7 +129,7 @@ Struct70s *func_8034C5AC(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if(iPtr->unk6 == 3 && iPtr->unk4 == arg0)
if(iPtr->xform_id == 3 && iPtr->unk4 == arg0)
return &iPtr->unk8;
}
return NULL;
@@ -121,8 +140,8 @@ Struct70s *func_8034C630(s32 arg0){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
if( (iPtr->unk6 == 3)
&& meshList_meshContainsVtx(BKModel_getMeshList(iPtr->unk0), iPtr->unk4, arg0)
if( (iPtr->xform_id == 3)
&& meshList_meshContainsVtx(BKModel_getMeshList(iPtr->model), iPtr->unk4, arg0)
){
return &iPtr->unk8;
}
@@ -174,7 +193,7 @@ void func_8034C8D8(void){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
D_80372030[iPtr->unk6].unk8(&iPtr->unk8);
D_80372030[iPtr->xform_id].unk8(&iPtr->unk8);
}
vector_free(D_80386140.unk4);
}
@@ -193,7 +212,7 @@ void * func_8034C9D4(void){
struct1Ds *endPtr = vector_getEnd(D_80386140.unk4);
for(iPtr = vector_getBegin(D_80386140.unk4); iPtr < endPtr; iPtr++){
D_80372030[iPtr->unk6].unk4(&iPtr->unk8, iPtr->unk0, iPtr->unk4);
D_80372030[iPtr->xform_id].unk4(&iPtr->unk8, iPtr->model, iPtr->unk4);
}
}

View File

@@ -5,31 +5,31 @@
typedef KEY_VALUE_PAIR(s16, s16) unkD_80372730;
unkD_80372730 D_80372730[] = {
{ BKPROG_AB_SWIM_OILY_WATER, 0xBA1},
{ BKPROG_AC_DIVE_OILY_WATER, 0xBA2},
{ BKPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6},
{ BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ BKPROG_A9_HAS_TOUCHED_RBB_OVEN, 0xBA0},
{ BKPROG_10_HAS_TOUCHED_SAND_EEL_SAND, 0xA7E},
{ BKPROG_14_HAS_TOUCHED_FP_ICY_WATER, 0xC11},
{ BKPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ BKPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE, 0xAE1},
{ BKPROG_DD_HAS_TOUCHED_ICY_WATER, 0xCE7},
{ BKPROG_3_MUSIC_NOTE_TEXT, 0xD9C},
{ BKPROG_4_MUMBO_TOKEN_TEXT, 0xD9D},
{ BKPROG_5_BLUE_EGG_TEXT, 0xD9E},
{ BKPROG_6_RED_FEATHER_TEXT, 0xD9F},
{ BKPROG_7_GOLD_FEATHER_TEXT, 0xDA0},
{ BKPROG_8_GOLD_BULLION_TEXT, 0xB46},
{ BKPROG_9_ORANGE_TEXT, 0xA21},
{ BKPROG_A_HONEYCOMB_TEXT, 0xDA1},
{ BKPROG_B_EMPTY_HONEYCOMB_TEXT, 0xDA2},
{ BKPROG_C_EXTRA_LIFE_TEXT, 0xDA3},
{ BKPROG_BE_CHEATO_BLUEEGGS, 0xFA8},
{ BKPROG_BF_CHEATO_REDFEATHERS, 0xFA9},
{ BKPROG_C0_CHEATO_GOLDFEATHERS, 0xFAA},
{ FILEPROG_AB_SWIM_OILY_WATER, 0xBA1},
{ FILEPROG_AC_DIVE_OILY_WATER, 0xBA2},
{ FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6},
{ FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ FILEPROG_A9_HAS_TOUCHED_RBB_OVEN, 0xBA0},
{ FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND, 0xA7E},
{ FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER, 0xC11},
{ FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE, 0xAE1},
{ FILEPROG_DD_HAS_TOUCHED_ICY_WATER, 0xCE7},
{ FILEPROG_3_MUSIC_NOTE_TEXT, 0xD9C},
{ FILEPROG_4_MUMBO_TOKEN_TEXT, 0xD9D},
{ FILEPROG_5_BLUE_EGG_TEXT, 0xD9E},
{ FILEPROG_6_RED_FEATHER_TEXT, 0xD9F},
{ FILEPROG_7_GOLD_FEATHER_TEXT, 0xDA0},
{ FILEPROG_8_ORANGE_TEXT, 0xB46},
{ FILEPROG_9_GOLD_BULLION_TEXT, 0xA21},
{ FILEPROG_A_HONEYCOMB_TEXT, 0xDA1},
{ FILEPROG_B_EMPTY_HONEYCOMB_TEXT, 0xDA2},
{ FILEPROG_C_EXTRA_LIFE_TEXT, 0xDA3},
{ FILEPROG_BE_CHEATO_BLUEEGGS, 0xFA8},
{ FILEPROG_BF_CHEATO_REDFEATHERS, 0xFA9},
{ FILEPROG_C0_CHEATO_GOLDFEATHERS, 0xFAA},
{0x95, 0xB50},
{ BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 0xF7B},
{ FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 0xF7B},
{ -1, -1}
};
@@ -71,24 +71,24 @@ static s32 __findIndex(unkD_80372730 *arg0, s32 arg1) {
return -1;
}
s32 func_803563B8(enum bkprog_e arg0, s32 arg1) {
s32 func_803563B8(enum file_progress_e arg0, s32 arg1) {
s32 index;
if (func_8031FF1C(arg0) != 0) {
if (fileProgressFlag_get(arg0) != 0) {
return 0;
} else {
index = __findIndex(D_80372730, arg0);
if (index != -1) {
if (func_80311480(D_80372730[index].value, arg1, 0, 0, 0, 0) != 0) {
func_80320004(arg0, 1);
fileProgressFlag_set(arg0, 1);
}
return func_8031FF1C(arg0);
return fileProgressFlag_get(arg0);
}
return 0;
}
}
void func_8035644C(s32 arg0){
void func_8035644C(enum file_progress_e arg0){
func_803563B8(arg0, 0);
}

View File

@@ -16,17 +16,17 @@ ActorInfo D_803731B0 = {
int func_803616F0(Actor *this){
switch(this->unkF4_8){
case 1:// L80361728
return func_8031FF1C(BKPROG_31_MM_OPEN) && !func_802D9220(LEVEL_1_MUMBOS_MOUNTAIN);
return fileProgressFlag_get(FILEPROG_31_MM_OPEN) && !func_802D9220(LEVEL_1_MUMBOS_MOUNTAIN);
case 2:// L80361750
return func_8031FF1C(BKPROG_32_TTC_OPEN) && !func_802D9220(LEVEL_2_TREASURE_TROVE_COVE);
return fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && !func_802D9220(LEVEL_2_TREASURE_TROVE_COVE);
case 3:// L80361778
return func_8031FF1C(BKPROG_33_CC_OPEN) && !func_802D9220(LEVEL_3_CLANKERS_CAVERN);
return fileProgressFlag_get(FILEPROG_33_CC_OPEN) && !func_802D9220(LEVEL_3_CLANKERS_CAVERN);
case 4:// L803617A0
return func_8031FF1C(BKPROG_34_BGS_OPEN) && !func_802D9220(LEVEL_4_BUBBLEGLOOP_SWAMP);
return fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && !func_802D9220(LEVEL_4_BUBBLEGLOOP_SWAMP);
case 5:// L803617C8
return func_8031FF1C(BKPROG_35_FP_OPEN) && !func_802D9220(LEVEL_5_FREEZEEZY_PEAK);
return fileProgressFlag_get(FILEPROG_35_FP_OPEN) && !func_802D9220(LEVEL_5_FREEZEEZY_PEAK);
case 6:// L803617F0
return func_8031FF1C(BKPROG_36_GV_OPEN) && !func_802D9220(LEVEL_7_GOBIS_VALLEY);
return fileProgressFlag_get(FILEPROG_36_GV_OPEN) && !func_802D9220(LEVEL_7_GOBIS_VALLEY);
default:
return FALSE;
}
@@ -47,8 +47,8 @@ void func_80361870(Actor *this){
}
if(!this->unk138_24 && func_80329530(this, 400) && !func_80329530(this, 50)){
if(this->unkF4_8 == 1 && !func_8031FF1C(BKPROG_31_MM_OPEN) && level_get() == LEVEL_6_LAIR){
text_id = func_8031FF1C(BKPROG_A7_NEAR_PUZZLE_PODIUM_TEXT)? 0xF80 : 0xF7F;
if(this->unkF4_8 == 1 && !fileProgressFlag_get(FILEPROG_31_MM_OPEN) && level_get() == LEVEL_6_LAIR){
text_id = fileProgressFlag_get(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT)? 0xF80 : 0xF7F;
if(func_80311480(text_id, 0, 0, 0, 0, 0)){
this->unk138_24 = TRUE;
}

View File

@@ -47,7 +47,7 @@ enum bs_e func_80295EE0(enum bs_e arg0){
switch(func_8028ECAC()){
case 6://L80295F5C
if(D_8037C3E0.unk18 != 0x3E){
if(D_8037C3E0.unk18 != ASSET_3E_ANIM_BSBFLY_BEAKBOMB_CRASH){
sp2C++;
}
break;

View File

@@ -151,7 +151,7 @@ void gcparade_8031ABA0(void) {
func_8031FBA0();
if (D_803830F0.unk8 != -1) {
func_802C5A3C(D_803830F0.unk8);
func_8033D13C(D_803830F0.unk8);
gameFile_load(D_803830F0.unk8);
func_80347AA8();
}
}

View File

@@ -44,7 +44,7 @@ void func_802DC560(s32, s32);
s32 func_8024E67C(s32 controller_index);
bool func_803188B4(gczoombox_t*);
bool func_803183A4(gczoombox_t*, char *);
bool func_8031FF1C(enum bkprog_e);
bool fileProgressFlag_get(enum file_progress_e);
enum map_e map_get(void);
bool func_802FD2D4(void);
bool func_802FC3C4(void);
@@ -1014,7 +1014,7 @@ s32 gcPauseMenu_update(void){
case 3://L8031399C
func_802C5994();
func_803204E4(0,0);
if(!func_8031FF1C(BKPROG_BD_ENTER_LAIR_CUTSCENE) || func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){
if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
gcPauseMenu_setState(0x14);
}else{
func_802E412C(1,0);

View File

@@ -332,7 +332,7 @@ void mapModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
case MAP_93_GL_DINGPOT:
func_8033A45C(4, 1);
func_8033A45C(5, 1);
func_8033A45C(6, (func_8038EAE0(0xA) || func_8031FF1C(0xE2) || func_803203FC(0xC1)));
func_8033A45C(6, (func_8038EAE0(0xA) || fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) || func_803203FC(0xC1)));
break;
}
func_8033A450(mapModel.unk24);

View File

@@ -128,7 +128,7 @@ extern ActorInfo D_80372810;
extern ActorInfo D_80372840; //grillchompa
extern ActorInfo D_80372870; //clucker
extern ActorInfo D_803728A0; //scarab
extern ActorInfo D_8036D970; //boombox
extern ActorInfo chMinigame; //boombox
extern ActorInfo D_80372970; //leaf_particle
extern ActorInfo D_80372994;
extern ActorInfo D_803729B8; //rain
@@ -275,7 +275,7 @@ void spawnQueue_reset(void){
spawnableActorList_add(&D_80372A24, actor_new, 0x80);
spawnableActorList_add(&D_80372A48, actor_new, 0x81);
spawnableActorList_add(&D_80372A6C, actor_new, 0x81);
spawnableActorList_add(&D_8036D970, actor_new, 0x80); //boombox
spawnableActorList_add(&chMinigame, actor_new, 0x80); //boombox
spawnableActorList_add(&D_803677A8, actor_new, 0x8600); //ice_key
spawnableActorList_add(&D_80367814, actor_new, 0x8600); //SnS_egg
spawnableActorList_add(&gChFireFxInfo, actor_new, 0x0); //fire