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

@@ -253,7 +253,7 @@ void func_80388FC0(Actor *this){
ActorLocal_BGS_2270 *local;
local = (ActorLocal_BGS_2270 *)&this->local;
func_80320044(0, local->unkA, 2);
fileProgressFlag_setN(0, local->unkA, 2);
vector_free(local->unk4);
}
@@ -289,7 +289,7 @@ void func_80389080(Actor *this){
unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8);
unqPtr->unk8 = 0;
unqPtr->unk9 = 0;
unqPtr->unkA = func_8031FF44(0,2);
unqPtr->unkA = fileProgressFlag_getN(0,2);
unqPtr->unkB = 0;
unqPtr->unkC = 0.0f;
if(func_803203FC(2)){

View File

@@ -4,12 +4,13 @@
void chfrogminigame_update(Actor *);
void chFrogMinigame_setState(Actor * arg0, u32 arg1);
void chFrogMinigame_setState(Actor * arg0, u32 next_state);
void func_8025A58C(u32, u32);
void func_80324E88(f32);
ActorInfo BGS_D_80390AB0 = {MARKER_C4_YELLOW_FLIBBIT_CTRL, ACTOR_136_YELLOW_FLIBBIT_CONTROLLER, 0x00, 0x00, NULL,
ActorInfo chFrogMinigame = {MARKER_C4_YELLOW_FLIBBIT_CTRL, ACTOR_136_YELLOW_FLIBBIT_CONTROLLER, 0x00,
0x00, NULL,
chfrogminigame_update, NULL, func_80325340,
0, 0, 0.0f, 0
};
@@ -45,16 +46,16 @@ void func_8038CBB4(Actor * arg0){
arg0->bgs_6730.unk4 = 0;
}
void chFrogMinigame_setState(Actor * arg0, u32 arg1){
void chFrogMinigame_setState(Actor * arg0, u32 next_state){
ActorLocal_BGS_6730 *s0;
s0 = &arg0->bgs_6730;
if(arg1 == 2){
if(next_state == 2){
func_8028F8F8(0x12, 1);
func_8028F8F8(0x1F, 0);
mapSpecificFlags_set(0x10, 1);
if(!func_8031FF1C(0x1B)){
func_80320004(0x1B, 1);
if(!fileProgressFlag_get(FILEPROG_1B_MET_YELLOW_FLIBBITS)){
fileProgressFlag_set(FILEPROG_1B_MET_YELLOW_FLIBBITS, 1);
func_80311480(text_flibbits_meet, 0xf, arg0->position, arg0->marker, __chFrogMinigame_textCallback, 0);
}else{
if(!arg0->bgs_6730.unk8){
@@ -66,7 +67,7 @@ void chFrogMinigame_setState(Actor * arg0, u32 arg1){
}
}
}
if(arg1 == 3){
if(next_state == 3){
s0->unk0 = 1;
if(!s0->unk4){
func_8025A58C(0, 400);
@@ -81,7 +82,7 @@ void chFrogMinigame_setState(Actor * arg0, u32 arg1){
if(arg0->state == 3){
func_8028F8F8(0x12, 0);
func_8028F8F8(0x1F, 1);
if(arg1 == 1){
if(next_state == 1){
if(s0->unk4){
comusic_8025AB44(MUSIC_BGS_FLIBBIT_FIGHT, 18000, 100);
}
@@ -91,22 +92,22 @@ void chFrogMinigame_setState(Actor * arg0, u32 arg1){
}
}
if(arg1 == 4){
if(next_state == 4){
func_80311480(text_flibbits_defeat, 0xf, arg0->position, arg0->marker, __chFrogMinigame_textCallback, 0);
}
if(arg1 == 5){
if(next_state == 5){
func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 0x27);
timedFunc_set_0(0.2f, __chFrogMinigame_spawnJiggy);
func_80324E88(3.0f);
func_80324E38(3.0f, 0);
arg1 = 6;
next_state = 6;
}
if(arg1 == 6){
if(next_state == 6){
func_8028F8F8(0x12, 0);
func_8028F8F8(0x1F, 1);
}
arg0->state = arg1;
arg0->state = next_state;
}
void func_8038CE88(void){

View File

@@ -16,7 +16,7 @@ extern ActorInfo D_80390C88;
extern ActorInfo D_80390CC8;
extern ActorInfo D_80390D08;
extern ActorInfo D_80390D48;
extern ActorInfo BGS_D_80390AB0;
extern ActorInfo chFrogMinigame;
extern ActorInfo BGS_D_80390AE0;
extern ActorInfo D_80390960;
extern ActorInfo D_80390A40;
@@ -47,7 +47,7 @@ void BGS_func_8038F1E0(void){//bgs_updateSpawnableActors
spawnableActorList_add(&D_80390CC8, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390D08, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&D_80390D48, actor_new, 0x400042c);//tanktup_leg
spawnableActorList_add(&BGS_D_80390AB0, actor_new, 0x81);
spawnableActorList_add(&chFrogMinigame, actor_new, 0x81);
spawnableActorList_add(&BGS_D_80390AE0, actor_new, 0x20108a1); //yellow_flibbit
spawnableActorList_add(&D_80390960, actor_new, 0);
spawnableActorList_add(&D_80390A40, actor_new, 0x880); //yumblie

View File

@@ -55,7 +55,7 @@ void func_80387F64(Actor *this, s32 next_state){
if (map_get() == MAP_43_CCW_SPRING) {
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
}
func_80320004(local->unk0->unk8, 1);
fileProgressFlag_set(local->unk0->unk8, TRUE);
func_80335924(this->unk148, local->unk0->unk4, 0.0f, 6.0f);
func_80335A8C(this->unk148, 2);
if (map_get() == MAP_43_CCW_SPRING) {
@@ -107,7 +107,7 @@ Actor *CCW_func_803882F4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
s32 sp18;
this = marker_getActor(marker);
if ((this->state == 1) && !func_8031FF1C(0xE3)) {
if ((this->state == 1) && !fileProgressFlag_get(FILEPROG_E3_CCW_FLOWER_SPRING)) {
return func_80325340(marker, gfx, mtx, vtx);
}
@@ -147,16 +147,16 @@ void func_80388478(Actor *this) {
marker_setCollisionScripts(this->marker, NULL, CCW_func_80388278, func_803882A4);
actor_collisionOn(this);
if (!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) {
func_80320004(0xE5, FALSE);
fileProgressFlag_set(FILEPROG_E5_CCW_FLOWER_AUTUMN, FALSE);
}
for(local->unk0 = &D_8038EC40[0]; local->unk0 < D_8038EC40 + 3; local->unk0++){
if(!func_8031FF1C(local->unk0->unk8)){
if(!fileProgressFlag_get(local->unk0->unk8)){
break;
}
}
if (!func_8031FF1C(0xE3) && (map_get() != MAP_43_CCW_SPRING)) {
if (!fileProgressFlag_get(FILEPROG_E3_CCW_FLOWER_SPRING) && (map_get() != MAP_43_CCW_SPRING)) {
marker_despawn(this->marker);
}
else{

View File

@@ -24,7 +24,7 @@ void func_80388590(Actor *this, s32 next_state){
void func_803885F8(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
if(func_8031FF1C(0xe5)){
if(fileProgressFlag_get(FILEPROG_E5_CCW_FLOWER_AUTUMN)){
func_80388590(this, 1);
}
else{

View File

@@ -142,16 +142,16 @@ void chGobiCCW_update(Actor *this) {
local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT);
marker_setCollisionScripts(this->marker, 0, func_8038894C, 0);
if(!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) {
func_80320004(0xE5, 0);
fileProgressFlag_set(FILEPROG_E5_CCW_FLOWER_AUTUMN, FALSE);
}
local->unk0 = &D_8038ECD0[0];
while((local->unk0->map_id != 0) && (map_get() != local->unk0->map_id)) {
local->unk0++;
}
if( (map_get() == MAP_44_CCW_SUMMER) && func_8031FF1C(0xE3) && !func_8031FF1C(0xE4)) {
if( (map_get() == MAP_44_CCW_SUMMER) && fileProgressFlag_get(FILEPROG_E3_CCW_FLOWER_SPRING) && !fileProgressFlag_get(FILEPROG_E4_CCW_FLOWER_SUMMER)) {
CCW_func_8038868C(this, 1);
} else if( (map_get() == MAP_45_CCW_AUTUMN) && func_8031FF1C(0xE4) && !func_8031FF1C(0xE5) ) {
} else if( (map_get() == MAP_45_CCW_AUTUMN) && fileProgressFlag_get(FILEPROG_E4_CCW_FLOWER_SUMMER) && !fileProgressFlag_get(FILEPROG_E5_CCW_FLOWER_AUTUMN) ) {
CCW_func_8038868C(this, 1);
} else{
marker_despawn(this->marker);

View File

@@ -85,7 +85,7 @@ void func_80388FD4(Actor *this) {
this->initialized = TRUE;
}
if (!this->unk16C_4) {
if (func_8031FF1C(this->unk10_12 + 0x8B)) {
if (fileProgressFlag_get(this->unk10_12 + FILEPROG_8B_CCW_SPRING_OPEN)) {
actor_playAnimationOnce(this);
func_80328B8C(this, 4, 0.999f, 1);
actor_collisionOff(this);
@@ -142,7 +142,7 @@ void func_80389268(Actor *this) {
this->unk1C[1] += 250.0f;
this->unk16C_4 = TRUE;
if (func_8031FF1C(this->unk10_12 + 0x8B)) {
if (fileProgressFlag_get(this->unk10_12 + FILEPROG_8B_CCW_SPRING_OPEN)) {
func_80328A84(this, 3);
}
}

View File

@@ -15,7 +15,7 @@ void func_80389440(Actor *this, s32 next_state) {
if (next_state == 2) {
func_8030E510(SFX_AA_BGS_EGG_BREAKING_1, 28000);
this->marker->propPtr->unk8_3 = FALSE;
func_80320004(0xE6, 1);
fileProgressFlag_set(FILEPROG_E6_SPRING_EYRIE_HATCHED, TRUE);
func_80335924(this->unk148, 0x187, 0.0f, 2.0f);
func_80335A8C(this->unk148, 2);
func_80324E38(0.0f, 3);
@@ -54,7 +54,7 @@ void func_803895F4(Actor *this) {
this->marker->propPtr->unk8_3 = TRUE;
marker_setCollisionScripts(this->marker, NULL, NULL, &func_8038950C);
func_80389440(this, 1);
if ((func_8031FF1C(0xE6) != 0) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE)) {
if (fileProgressFlag_get(FILEPROG_E6_SPRING_EYRIE_HATCHED) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE)) {
marker_despawn(this->marker);
}
return;

View File

@@ -90,9 +90,9 @@ Struct_CCW_3310_1 D_8038F060[] = {
};
Struct_CCW_3310_0 D_8038F080[] = {
{MAP_43_CCW_SPRING, 0, 0xE6, 0, NULL, 3, 0, NULL, 0x18F, D_8038EFC0, 0x190, D_8038F030, 0, 0, 0, 0},
{MAP_44_CCW_SUMMER, 0xE6, 0xE7, 0x191, D_8038EEA0, 2, 0x192, D_8038EF20, 0x193, D_8038EFC0, 0x194, D_8038F030, 2, 5, 0x21A, 0xCD7},
{MAP_45_CCW_AUTUMN, 0xE7, 0xE8, 0x195, D_8038EEA0, 2, 0x196, D_8038EF20, 0x197, D_8038EFC0, 0x198, D_8038F030, 4, 0xA, 0x21B, 0xCDA},
{MAP_43_CCW_SPRING, 0, FILEPROG_E6_SPRING_EYRIE_HATCHED, 0, NULL, 3, 0, NULL, 0x18F, D_8038EFC0, 0x190, D_8038F030, 0, 0, 0, 0},
{MAP_44_CCW_SUMMER, FILEPROG_E6_SPRING_EYRIE_HATCHED, FILEPROG_E7_SUMMER_EYRIE_FED, 0x191, D_8038EEA0, 2, 0x192, D_8038EF20, 0x193, D_8038EFC0, 0x194, D_8038F030, 2, 5, 0x21A, 0xCD7},
{MAP_45_CCW_AUTUMN, FILEPROG_E7_SUMMER_EYRIE_FED, FILEPROG_E8_AUTMN_EYRIE_FED, 0x195, D_8038EEA0, 2, 0x196, D_8038EF20, 0x197, D_8038EFC0, 0x198, D_8038F030, 4, 0xA, 0x21B, 0xCDA},
0
};
@@ -131,7 +131,7 @@ void func_803897B8(Actor *this, s32 next_state) {
local->unk8 = local->unk0->unk8;
}
if ((this->state == 1) && (next_state == 2)) {
func_80320004(local->unk0->unk4, TRUE);
fileProgressFlag_set(local->unk0->unk4, TRUE);
}
if (next_state == 5) {
func_8028F784(1);
@@ -230,9 +230,9 @@ void CCW_func_80389BFC(Actor *this) {
local->unk0++;
}
if ((local->unk0->unk2 != 0) && !func_8031FF1C(local->unk0->unk2)) {
if ((local->unk0->unk2 != 0) && !fileProgressFlag_get(local->unk0->unk2)) {
marker_despawn(this->marker);
} else if (!func_8031FF1C(local->unk0->unk4)) {
} else if (!fileProgressFlag_get(local->unk0->unk4)) {
func_803897B8(this, 1);
} else {
func_803897B8(this, 4);
@@ -285,7 +285,7 @@ void CCW_func_80389BFC(Actor *this) {
}
}
}
if (func_8031FF1C(local->unk0->unk4)) {
if (fileProgressFlag_get(local->unk0->unk4)) {
func_803897B8(this, local->unk0->unkC);
}
}

View File

@@ -98,8 +98,8 @@ void chcaterpillar_update(Actor *this){
}
else{//L8038A408
map_id = map_get();
if ( !func_8031FF1C(BKPROG_E6_SPRING_EYRIE_HATCHED)
|| ( map_id == MAP_45_CCW_AUTUMN && !func_8031FF1C(BKPROG_E7_SUMMER_EYRIE_FED))
if ( !fileProgressFlag_get(FILEPROG_E6_SPRING_EYRIE_HATCHED)
|| ( map_id == MAP_45_CCW_AUTUMN && !fileProgressFlag_get(FILEPROG_E7_SUMMER_EYRIE_FED))
) {
chcaterpillar_setState(this, 5);
} else {

View File

@@ -79,7 +79,7 @@ void func_8038AA8C(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
mapSpecificFlags_set(5, FALSE);
if( (!func_8031FF1C(0xE8) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE))
if( (!fileProgressFlag_get(FILEPROG_E8_AUTMN_EYRIE_FED) || jiggyscore_isSpawned(JIGGY_49_CCW_EYRIE))
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) {
marker_despawn(this->marker);

View File

@@ -334,9 +334,9 @@ void func_8038C9A0(Actor *this){
this->position_y += 3.0f;
if(this->unk1C[1] <= this->position_y){
this->position_y = this->unk1C[1];
if(!func_8031FF1C(0x82)){
if(!fileProgressFlag_get(FILEPROG_82_MET_TWINKLIES)){
func_80311480(0xc12, 0x2a, this->position, this->marker, func_8038C94C, NULL);
func_80320004(0x82, TRUE);
fileProgressFlag_set(FILEPROG_82_MET_TWINKLIES, TRUE);
}
else{
func_80311480(0xc25, 0x2b, this->position, this->marker, func_8038C94C, NULL);

View File

@@ -26,7 +26,7 @@ ActorInfo D_803920E8 = { 0x204, 0x336, 0x442,
/* .code */
Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker);
if( func_8038BFA0() || func_8031FF1C(BKPROG_13) ){
if( func_8038BFA0() || fileProgressFlag_get(FILEPROG_13) ){
if(0.0f == this->velocity[1])
return this;
}
@@ -240,7 +240,7 @@ void func_8038D51C(ActorMarker *marker){
Actor *this = marker_getActor(marker);
item_set(ITEM_6_HOURGLASS, FALSE);
func_80320004(BKPROG_13, TRUE);
fileProgressFlag_set(FILEPROG_13, TRUE);
FUNC_8030E624(SFX_416, 0.8f, 32000);
func_8028F8F8(7, 0);
this->unk1C[1] = 1.0f;
@@ -281,7 +281,7 @@ void func_8038D6C8(Actor *this){
sp24 = time_getDelta();
mapSpecificFlags_set(0xd, (this->state != 1 && this->state != 2) ? TRUE : FALSE);
if(func_8038BFA0() || func_8031FF1C(BKPROG_13)){
if(func_8038BFA0() || fileProgressFlag_get(FILEPROG_13)){
this->marker->propPtr->unk8_3 = FALSE;
actor_collisionOff(this);
func_8028F8F8(7, FALSE);

View File

@@ -124,7 +124,7 @@ void func_8038E094(Actor *this){
if(this->unk100){
sp38 = marker_getActor(this->unk100);
if(sp38->unk1C[1] == 1.0f){
if(this->unkF4_8 == 1 && !func_8031FF1C(BKPROG_13)){
if(this->unkF4_8 == 1 && !fileProgressFlag_get(FILEPROG_13)){
if(this->state != 6 && this->state != 7 && 0.0f == this->velocity[0]){
timed_setCameraToNode(0.5f, 0xd);
func_80311480(ASSET_C15_TEXT_TWINKLIE_MINIGAME_LOST, 0x2b, this->position, this->marker, func_8038E040, NULL);

View File

@@ -18,7 +18,7 @@ ActorInfo chXmasTree = {
Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker);
func_8033A45C(5, this->unk38_31);
func_8033A45C(6, func_8031FF1C(0x13) && !func_8033A0F0(5));
func_8033A45C(6, fileProgressFlag_get(0x13) && !func_8033A0F0(5));
return func_80325888(marker, gfx, mtx, vtx);
}
@@ -100,7 +100,7 @@ void chXmasTree_update(Actor *this){
}
__spawnQueue_add_0(__chXmasTree_spawnSwitch);
__spawnQueue_add_1((GenMethod_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker));
if(func_8031FF1C(0x13)){
if(fileProgressFlag_get(0x13)){
__chXmasTree_80386F84(this);
mapSpecificFlags_set(2, FALSE);
}
@@ -115,7 +115,7 @@ void chXmasTree_update(Actor *this){
switch(this->state){
case 1: // L80387268
__chXmasTree_80386EF4(this, 0);
if(func_8031FF1C(0x13)){
if(fileProgressFlag_get(0x13)){
__chXmasTree_80386F84(this);
}
break;

View File

@@ -88,7 +88,7 @@ void func_8038E940(Actor *this){
switch(this->state){
case 1: //L8038EA98
if(func_8031FF1C(BKPROG_13) && !mapSpecificFlags_get(2))
if(fileProgressFlag_get(FILEPROG_13) && !mapSpecificFlags_get(2))
func_8038E774(this);
break;
case 2: //L8038EAC8

View File

@@ -59,7 +59,7 @@ void chBuriedPyramid_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE;
local->raised_state = func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
local->raised_state = fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
this->position_x = 67.0f;
this->position_y = (local->raised_state/3.0)*1050.0 + 1375.0;
this->position_z = 400.0f;

View File

@@ -5,30 +5,31 @@
extern void func_802EE6CC(f32[3], s32[4], s32[4], s32, f32, f32, s32, s32, s32);
void func_80389634(Actor *this);
void func_803898B8(Actor *this);
void chSarcophagus_update(Actor *this);
void chSarcophagus_updateSNS(Actor *this);
/* .data */
ActorAnimationInfo GV_D_80390E00[] = {
ActorAnimationInfo chSarcophagusAnimations[] = {
{0x00, 0.0f},
{0xCD, 8000000.0f},
{0xCD, 2.5f},
{0xCD, 8000000.0f},
{0xCD, 1.6f},
{0xCD, 4.5f},
{ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 8000000.0f},
{ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 2.5f},
{ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 8000000.0f},
{ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 1.6f},
{ASSET_CD_ANIM_SARCOPHAGUS_OPEN, 4.5f},
};
ActorInfo GV_D_80390E30 = { 0xA8, 0x11A, 0x33D,
0x1, GV_D_80390E00,
func_80389634, func_80326224, func_80325888,
ActorInfo chSarcophagus = { MARKER_A8_GV_MAZE_SARCOPHAGUS, ACTOR_11A_GV_MAZE_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS,
0x1, chSarcophagusAnimations,
chSarcophagus_update, func_80326224, func_80325888,
2500, 0, 0.0f, 0
};
ActorInfo D_80390E54 = { 0x23B, 0x244, 0x33D,
0x1, GV_D_80390E00,
func_803898B8, func_80326224, func_80325888,
ActorInfo chSNSSarcophagus = { MARKER_23B_GV_SNS_SARCOPHAGUS, ACTOR_244_GV_SNS_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS,
0x1, chSarcophagusAnimations,
chSarcophagus_updateSNS, func_80326224, func_80325888,
0, 0, 0.0f, 0
};
s32 D_80390E78[4] = {0xff, 0xd0, 0x5d, 0xb4};
s32 D_80390E88[4] = {0, 0, 0, 0};
@@ -62,7 +63,7 @@ int func_8038957C(Actor *this){
return 0;
}
void func_80389634(Actor *this){
void chSarcophagus_update(Actor *this){
int i;
switch(this->state){
@@ -92,7 +93,7 @@ void func_80389634(Actor *this){
break;
case 3: //L80389788
if(!func_80329530(this, 0x2bc)){
if(!func_80329530(this, 700)){
func_80328B8C(this, 4, 0.5f, 1);
FUNC_8030E8B4(SFX_6B_LOCKUP_OPENING, 1.0f, 32000, this->position, 1250, 2500);
FUNC_8030E8B4(SFX_3F6_UNKNOWN, 1.0f, 32000, this->position, 1250, 2500);
@@ -118,10 +119,10 @@ void func_80389634(Actor *this){
}//L803898A8
}
void func_803898B8(Actor *this){
void chSarcophagus_updateSNS(Actor *this){
if(!this->initialized){
GV_func_803894B0(this);
if(func_8031FF1C(BKPROG_A4_UNKOWN))
if(fileProgressFlag_get(FILEPROG_A4_GV_SNS_SARCOPHAGUS_OPEN))
func_80328B8C(this, 3, 0.5f, 1);
this->unk1C[0] = 0.0f;
}
@@ -137,7 +138,7 @@ void func_803898B8(Actor *this){
}
}
else{//L803899C0
if(func_8031FF1C(BKPROG_A3_UNKOWN)){
if(fileProgressFlag_get(FILEPROG_A3_GV_SNS_SWITCH_PRESSED)){
this->unk1C[0] = 33.0f;
}
}

View File

@@ -50,13 +50,13 @@ void func_8038C760(Actor *this, s32 arg1){
timed_setCameraToNode(0.0f, 8);
if(arg1 < 3){
timed_setCameraToNode(3.5f, arg1 + 0x15);
timedFunc_set_3(3.5f, (GenMethod_3)func_80320044, BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2);
timedFunc_set_3(3.5f, (GenMethod_3)fileProgressFlag_setN, FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2);
func_80324E88(6.5f);
func_80324E38(6.5f, 0);
}
else{
timedFunc_set_2(3.5f, (GenMethod_2)func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff);
timedFunc_set_3(3.5f, (GenMethod_3)func_80320044, BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2);
timedFunc_set_3(3.5f, (GenMethod_3)fileProgressFlag_setN, FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, arg1, 2);
func_80324E88(6.0f);
func_80324E38(6.0f, 0);
}
@@ -158,7 +158,7 @@ void func_8038CC98(Actor *this){
f32 sp48[3];
if(!this->unk16C_4){
sp7C = func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
sp7C = fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
this->unk16C_4 = TRUE;
this->marker->unk30 = func_8038C880;
local->unk8 = &D_803911F0[this->modelCacheIndex - 0x285];
@@ -185,7 +185,7 @@ void func_8038CC98(Actor *this){
}
if(this->state == 1){
if(func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == *local->unk8){
if(fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == *local->unk8){
func_8038C8A0(this, 2);
}
}

View File

@@ -28,7 +28,7 @@ void func_8038D3AC(Actor *this){
this->unk16C_4 = TRUE;
marker_setCollisionScripts(this->marker, func_8038D370, NULL, NULL);
D_80391AA0 = 0;
if(func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){
if(fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){
marker_despawn(this->marker);
}
}

View File

@@ -20,8 +20,8 @@ extern ActorInfo chGobi2;
extern ActorInfo chGobi3;
extern ActorInfo chTrunker;
extern ActorInfo GV_D_80390DD0;
extern ActorInfo GV_D_80390E30;
extern ActorInfo D_80390E54;
extern ActorInfo chSarcophagus;
extern ActorInfo chSNSSarcophagus;
extern ActorInfo D_80390ED0;
extern ActorInfo D_80390F00;
extern ActorInfo D_80390FD0;
@@ -301,7 +301,7 @@ void func_8038E97C(Actor *this){
}//L8038EA6C
if(this->position_y == this->unk1C[0] + -300.0f){
if(func_8031FF44(BKPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){
if(fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3){
this->position_y = this->unk1C[0];
}
}
@@ -476,8 +476,8 @@ void GV_func_8038F154(void)
spawnableActorList_add(&chGobi3, actor_new, 0X9A8);
spawnableActorList_add(&chTrunker, actor_new, 0XD80);
spawnableActorList_add(&GV_D_80390DD0, actor_new, 0X4004);
spawnableActorList_add(&GV_D_80390E30, actor_new, 0X448);
spawnableActorList_add(&D_80390E54, actor_new, 0X48);
spawnableActorList_add(&chSarcophagus, actor_new, 0X448);
spawnableActorList_add(&chSNSSarcophagus, actor_new, 0X48);
spawnableActorList_add(&D_80390ED0, actor_new, 0X180);
spawnableActorList_add(&D_80390F00, actor_new, 0X80);
spawnableActorList_add(&D_80390FD0, actor_new, 0X4048);

View File

@@ -35,23 +35,23 @@ void __chLoggo_textCallback(ActorMarker* caller, enum asset_e text_id, s32 arg3)
void __chLoggo_collide(ActorMarker* this_marker, ActorMarker *other_marker) {
Actor *this = marker_getActor(this_marker);
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !func_8031FF1C(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
if (func_80311480(ASSET_ADF_TEXT_ENTER_LOGGO, 0x2B, this->position, this->marker, &__chLoggo_textCallback, 0) != 0) {
actor_collisionOff(this);
func_80320004(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE);
fileProgressFlag_set(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE);
}
return;
}
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && func_8031FF1C(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
actor_collisionOff(this);
__chLoggo_flush(this_marker);
return;
}
if ((player_getTransformation() == TRANSFORM_1_BANJO) && !func_8031FF1C(BKPROG_88_TRIED_LOGGO_AS_BEAR)){
if ((player_getTransformation() == TRANSFORM_1_BANJO) && !fileProgressFlag_get(FILEPROG_88_TRIED_LOGGO_AS_BEAR)){
if(func_80311480(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) {
func_80320004(BKPROG_88_TRIED_LOGGO_AS_BEAR, TRUE);
fileProgressFlag_set(FILEPROG_88_TRIED_LOGGO_AS_BEAR, TRUE);
}
}
}
@@ -70,9 +70,9 @@ void chLoggo_update(Actor *this){
func_80328B8C(this, 1, 0.01f, 1);
actor_loopAnimation(this);
this->unk60 = 0.0f;
if(!func_8031FF1C(BKPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){
if(!fileProgressFlag_get(FILEPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){
if(func_80311480(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)){
func_80320004(BKPROG_8A_EXITED_LOGGO, TRUE);
fileProgressFlag_set(FILEPROG_8A_EXITED_LOGGO, TRUE);
}
}
}

View File

@@ -41,7 +41,7 @@ void MMM_func_803871FC(Actor *this){
func_803255FC(this);
}
void mm_resetFlowerPots() {
void mmm_resetFlowerPots() {
func_803871D4(5);
}

View File

@@ -236,7 +236,7 @@ void func_803892C8(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void func_80389494(Actor * this, s32* arg1, s32 *arg2){
if(ability_isUnlocked(D_8038AFB4[this->unkF4_8 -1].unk5)){
if(func_8031FF1C(0xDB)){
if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){
*arg1 = D_8038AFE4 + 0xE0A; //dialog index
D_8038AFE4++;
D_8038AFE4 = MIN(D_8038AFE4, 5);
@@ -267,7 +267,7 @@ void SM_func_80389610(Actor * this){
case 1://L8038965C
if(mapSpecificFlags_get(1)){
sp28 |= 1;
if(func_8031FF1C(0xDB)){
if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){
sp2C = D_8038AFE4 + 0xE0A; //dialog index
D_8038AFE4++;
D_8038AFE4 = MIN(D_8038AFE4, 5);
@@ -282,7 +282,7 @@ void SM_func_80389610(Actor * this){
break;
case 8://L80389720
if(mapSpecificFlags_get(3)){
if(func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE)){
if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
sp2C = 0xe37;
sp28 |= 1;
}else{//L80389758
@@ -291,7 +291,7 @@ void SM_func_80389610(Actor * this){
sp28 |= 1;
}else{//L80389780
func_80388E48();
sp2C = func_8031FF1C(0xdb) ? 0xe1e : 0xe13;
sp2C = fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) ? 0xe1e : 0xe13;
mapSpecificFlags_set(0xf, 1);
}
} //L803897B4
@@ -445,10 +445,10 @@ void func_803899B0(Actor * this){
sp34 = !((!(D_8038AFB4[this->unkF4_8-1].unk5 + 1)) || (!ability_isUnlocked( D_8038AFB4[this->unkF4_8-1].unk5)));
if( (!sp34 && this->unkF4_8 != 1)
|| func_8031FF1C(0xDB) == 0
|| fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL) == 0
|| D_8038AFE4 < 6
){
if(this->unkF4_8 != 8 || !func_8031FF1C(0xFC)){
if(this->unkF4_8 != 8 || !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
if( func_8028EFC8()
&& sp50[FACE_BUTTON(BUTTON_B)] == 1
){
@@ -535,7 +535,7 @@ void func_803899B0(Actor * this){
}//L8038A218
if( sp38 != -1){ //button was pressed
func_80320004(0xdb, (sp38)?0:1);
fileProgressFlag_set(FILEPROG_DB_SKIPPED_TUTORIAL, (sp38)?0:1);
func_80311480((sp38)? 0xe07 : 0xe09, 0xe, this->position, this->marker, func_803892C8, func_80389214);
if(!sp38){
func_80388EB0(); //give all SM moves

View File

@@ -81,7 +81,7 @@ void SM_func_8038A5D8(Actor *this){
switch (this->state)
{
case 1://L8038A688
if(func_8031FF1C(0xdb)){
if(fileProgressFlag_get(FILEPROG_DB_SKIPPED_TUTORIAL)){
marker_despawn(this->marker);
}else{
if(mapSpecificFlags_get(0xe)){

View File

@@ -52,7 +52,7 @@ void func_803869A0(Actor *this, f32 arg1, f32 arg2) {
void SM_func_80386A00(Actor *this) {
if (this->unk16C_4 <= 0) {
if (func_8031FF1C(BKPROG_FC_DEFEAT_GRUNTY) == 0) {
if (fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY) == 0) {
marker_despawn(this->marker);
return;
}

View File

@@ -40,7 +40,7 @@ void chLeaky_update(Actor *this) {
this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = FALSE;
if (levelSpecificFlags_get(5) != 0) {
levelSpecificFlags_set(5, 0);
levelSpecificFlags_set(5, FALSE);
timedFunc_set_1(0.5f, (GenMethod_1)func_8025A70C, COMUSIC_2D_PUZZLE_SOLVED_FANFARE);
}
if (levelSpecificFlags_get(2) != 0) {

View File

@@ -5,7 +5,7 @@
#include "SnS.h"
/* extern */
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e);
extern void func_802D6310(f32, enum map_e, s32, s32, enum file_progress_e);
extern BKModel *mapModel_getModel(s32);
extern u8 D_8037DCC0[7];
@@ -39,7 +39,7 @@ typedef struct {
s16 unk2;
}Struct_TTC_3E30_2;
s32 func_8038B778(void);
s32 __sandcastleCodes_getNumberEntered(void);
/* .data */
s32 D_8038C980 = 0;
@@ -234,9 +234,9 @@ void func_8038AB44(void){
D_8038C980 = func_8038B600();
}
u32 func_8038AB68(s32 arg0){
if(func_8031FF1C(0xAC + arg0)){
return 1 << arg0;
u32 func_8038AB68(s32 cheato_code_index){
if(fileProgressFlag_get(FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED + cheato_code_index - 1)){
return 1 << cheato_code_index;
}
return 0;
}
@@ -319,11 +319,11 @@ void func_8038AC48(Struct_TTC_3E30_1 *arg0) {
D_8038D720.unk8 = 2U;
D_8038D720.unkC = 0.0f;
mapSpecificFlags_set(1, TRUE);
func_80320004(0xFA, TRUE);
fileProgressFlag_set(0xFA, TRUE);
func_8030E2C4(D_8038D720.unk9);
func_8038A258(2);
} else if (var_v0 & 0xE) {
func_8035644C((i_ptr - D_8038CA6C) + 0xBD);
func_8035644C((i_ptr - D_8038CA6C) - 1 + FILEPROG_BE_CHEATO_BLUEEGGS);
switch ((i_ptr - D_8038CA6C) - 1) { /* irregular */
default:
break;
@@ -455,7 +455,7 @@ void func_8038B2F0(void) {
Struct_TTC_3E30_1 *temp_v0_3;
sp24 = time_getDelta();
if (func_8038B778() == 3) {
if (__sandcastleCodes_getNumberEntered() == 3) {
func_802C5A3C(-1);
}
if (D_8038D720.unk0 != 0) {
@@ -612,23 +612,23 @@ u32 func_8038B600(void) {
return var_a3;
}
void TTC_func_8038B6D4(s32 arg0, s32 arg1, s32 arg2, enum bkprog_e prog_id, s32 prog_val, s32 prog_bit_size, enum bkprog_e arg6){
void TTC_func_8038B6D4(s32 arg0, s32 arg1, s32 arg2, enum file_progress_e prog_id, s32 prog_val, s32 prog_bit_size, enum file_progress_e arg6){
if( ((arg2 + 20 == D_8038CAD8[arg1].unk5) && func_803203FC(arg2))
|| arg0 == 3
){
func_80320044(prog_id, prog_val, prog_bit_size);
fileProgressFlag_setN(prog_id, prog_val, prog_bit_size);
if(arg6){
func_80320004(arg6, TRUE);
fileProgressFlag_set(arg6, TRUE);
}
}
}
void func_8038B750(s32 arg0){
func_80320044(0xfd, arg0, 2);
void __sandcastleCodes_setNumberEntered(s32 arg0){
fileProgressFlag_setN(FILEPROG_FD_CHEATCODES_ENTERED, arg0, 2);
}
s32 func_8038B778(void){
return func_8031FF44(0xFD, 2);
s32 __sandcastleCodes_getNumberEntered(void){
return fileProgressFlag_getN(FILEPROG_FD_CHEATCODES_ENTERED, 2);
}
void func_8038B79C(s32 arg0, s32 arg1, s32 arg2, enum item_e item_id, s32 item_diff, s32 item_val) {
@@ -660,30 +660,30 @@ void func_8038B800(s32 arg0) {
func_803204E4(0x65, 1);
func_803204E4(sp38, 1);
}
TTC_func_8038B6D4(0, arg0, 0x6C, 0x60, 5, 3, 0x33);
TTC_func_8038B6D4(0, arg0, 0x6D, 0x63, 7, 3, 0x34);
TTC_func_8038B6D4(0, arg0, 0x6E, 0x66, 8, 4, 0x35);
TTC_func_8038B6D4(0, arg0, 0x6F, 0x6A, 9, 4, 0x36);
TTC_func_8038B6D4(0, arg0, 0x70, 0x6E, 0xA, 4, 0x37);
TTC_func_8038B6D4(0, arg0, 0x71, 0x72, 0xC, 4, 0x38);
TTC_func_8038B6D4(0, arg0, 0x72, 0x76, 0xF, 4, 0x39);
TTC_func_8038B6D4(0, arg0, 0x6C, FILEPROG_60_CC_PUZZLE_PIECES_PLACED, 5, 3, FILEPROG_33_CC_OPEN);
TTC_func_8038B6D4(0, arg0, 0x6D, FILEPROG_63_BGS_PUZZLE_PIECES_PLACED, 7, 3, FILEPROG_34_BGS_OPEN);
TTC_func_8038B6D4(0, arg0, 0x6E, FILEPROG_66_FP_PUZZLE_PIECES_PLACED, 8, 4, FILEPROG_35_FP_OPEN);
TTC_func_8038B6D4(0, arg0, 0x6F, FILEPROG_6A_GV_PUZZLE_PIECES_PLACED, 9, 4, FILEPROG_36_GV_OPEN);
TTC_func_8038B6D4(0, arg0, 0x70, FILEPROG_6E_MMM_PUZZLE_PIECES_PLACED, 10, 4, FILEPROG_37_MMM_OPEN);
TTC_func_8038B6D4(0, arg0, 0x71, FILEPROG_72_RBB_PUZZLE_PIECES_PLACED, 0xC, 4, FILEPROG_38_RBB_OPEN);
TTC_func_8038B6D4(0, arg0, 0x72, FILEPROG_76_CCW_PUZZLE_PIECES_PLACED, 0xF, 4, FILEPROG_39_CCW_OPEN);
func_8038B79C(0, arg0, 0x94, ITEM_15_HEALTH_TOTAL, 0, 8);
func_8038B79C(0, arg0, 0x77, ITEM_14_HEALTH, 0, item_getCount(ITEM_15_HEALTH_TOTAL));
func_8038B79C(0, arg0, 0x95, ITEM_1C_MUMBO_TOKEN, 0, 99);
if (sp38 == 0x81) {
func_80320004(0x53, 1);
func_80320004(0x54, 1);
fileProgressFlag_set(FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED, 1);
fileProgressFlag_set(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE, 1);
}
func_8038B5B4();
}
void func_8038BB10(ActorMarker *caller, enum asset_e text_id, s32 arg2) {
if (arg2 == 1) {
func_8038B750(3);
void __sandcastleCodes_eraseGameDialogCallback(ActorMarker *caller, enum asset_e text_id, s32 confirmed) {
if (confirmed == 1) {
__sandcastleCodes_setNumberEntered(3);
func_8038B800(D_8038CAD4);
func_80311480(0xFBF, 0xC, NULL, NULL, NULL, NULL);
func_8033D0FC(func_802C5A30());
func_8033CFD4(func_802C5A30());
gameFile_clear(func_802C5A30());
gameFile_8033CFD4(func_802C5A30());
func_802C5A3C(-1);
return;
}
@@ -700,21 +700,21 @@ void TTC_func_8038BBA0(s32 arg0) {
}
for( i = 0; D_8038CC7C[i].unk0 != 0; i++){
if ((D_8038CAD8[arg0].unk5 >= D_8038CC7C[i].unk0) && (D_8038CC7C[i].unk2 >= D_8038CAD8[arg0].unk5)) {
switch (func_8038B778()) {
switch (__sandcastleCodes_getNumberEntered()) {
case 0:
func_8038B750(1);
__sandcastleCodes_setNumberEntered(1);
func_8038B800(arg0);
func_8038B5B4();
return;
case 1:
func_8038B750(2);
__sandcastleCodes_setNumberEntered(2);
func_8038B800(arg0);
func_8038B5B4();
func_80311480(0xFBE, 0xC, NULL, NULL, NULL, NULL);
return;
case 2:
D_8038CAD4 = arg0;
func_80311480(0xE38, 0xC, NULL, NULL, func_8038BB10, NULL);
func_80311480(0xE38, 0xC, NULL, NULL, __sandcastleCodes_eraseGameDialogCallback, NULL);
return;
}
return;
@@ -733,7 +733,7 @@ bool func_8038BD10(Struct_TTC_3E30_1 *arg0) {
s32 var_s2;
s32 var_v1;
if ((D_8038CC78 == 2) || (func_8038B778() == 3)) {
if ((D_8038CC78 == 2) || (__sandcastleCodes_getNumberEntered() == 3)) {
return 0;
}
if (D_8038CC78 == 0) {

View File

@@ -5,10 +5,10 @@
#define ROUND_UP_DIVIDE(a, b) (((a) + (b) - 1) / (b))
// The round up divide is not technically needed, but will come in handy for modding
#define SAVEFILE_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveFile),EEPROM_BLOCK_SIZE)
#define gameFile_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveFile),EEPROM_BLOCK_SIZE)
s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) {
s32 address = (filenum * SAVEFILE_NUM_BLOCKS) + blockOffset;
s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset;
s32 ret;
func_8024F35C(3);
@@ -18,7 +18,7 @@ s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount)
}
s32 load_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) {
s32 address = (filenum * SAVEFILE_NUM_BLOCKS) + blockOffset;
s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset;
s32 ret;
func_8024F35C(3);

View File

@@ -49,7 +49,7 @@ void sns_update_global_save_data_checksum(void)
* Running this multiple times seems to achieve nothing.
* A debug leftover?
*/
for (i = 5; i != 0 && func_8033CD0C(&gSaveData); i--)
for (i = 5; i != 0 && savedata_8033CE40(&gSaveData); i--)
;
}
@@ -62,7 +62,7 @@ void sns_save_and_update_global_data(void)
* and validates the checksum.
*/
if (func_8033CA9C(&gSaveData))
if (savedata_8033CA9C(&gSaveData))
{
/**
* Failed, hide the evidence.

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

View File

@@ -136,7 +136,7 @@ void func_8038D568(Actor *this){
other = marker_getActor(this->unk100);
sp3C = this->velocity_y * sp48;
if(this->position_y + sp3C < this->unk1C[1]){
if( !func_8031FF1C(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1){
if( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1){
func_8030E2C4(this->unk44_31);
func_8030E2C4(local->unk0);
}

View File

@@ -1570,7 +1570,7 @@ void chfinalboss_phase3_update(ActorMarker *marker) {
void func_80389F54(void) {
func_80320004(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE);
fileProgressFlag_set(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE);
D_803927C4 = (u8)0;
}
@@ -1597,7 +1597,7 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) {
if ((local->unk3 == 2) && (local->unkA == 0)) {
D_803927C8 = 1;
func_80311480(randi2(0, 5) + 0x1136, 4, NULL, NULL, NULL, NULL);
if ( !func_8031FF1C(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) ) {
if ( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) ) {
local->unkA = 1U;
D_803927C4 = 1;
func_80324E38(0.0f, 1);
@@ -1725,8 +1725,8 @@ void chfinalboss_phase4_update(ActorMarker *marker) {
sp6C = chfinalboss_findCollidingJinjo(this, func_8033229C(this->marker));
if (sp6C != NULL) {
chbossjinjo_attack(sp6C);
if (!func_8031FF1C(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT)) {
func_80320004(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE);
if (!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT)) {
fileProgressFlag_set(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE);
D_803927C4 = 0;
func_80324E88(1.0f);
func_80324E38(1.0f, 0);
@@ -2142,8 +2142,8 @@ void func_8038B780(ActorMarker *marker) {
Actor *sp24;
sp24 = marker_getActor(marker);
if (!func_8031FF1C(BKPROG_CF_HAS_ENTERED_FINAL_FIGHT)) {
func_80320004(BKPROG_CF_HAS_ENTERED_FINAL_FIGHT, TRUE);
if (!fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) {
fileProgressFlag_set(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT, TRUE);
func_80311480(0x10E7, 0x2A, sp24->position, sp24->marker, chfinalboss_phase0_endTextCallback, NULL);
}
else{
@@ -2421,7 +2421,7 @@ void func_8038C148(void) {
temp_f20 = sp34 + chjinjonator_80391234();
sp40 = chjinjonator_80391240();
camera_node = 0x14;
func_80320004(BKPROG_FC_DEFEAT_GRUNTY, TRUE);
fileProgressFlag_set(FILEPROG_FC_DEFEAT_GRUNTY, TRUE);
if (sp48->mirror_phase5 != 0) {
camera_node = 0x23;
}

View File

@@ -120,7 +120,7 @@ void chstonejinjo_breakOpen(ActorMarker *marker){
actor_playAnimationOnce(actor);
animctrl_setDuration(actor->animctrl, actor->unk1C[0]);
SPAWNQUEUE_ADD_1(chstonejinjo_spawnJinjo, actor->marker);
if(!func_8031FF1C(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor->unkF4_8 != BOSSJINJO_JINJONATOR){
if(!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor->unkF4_8 != BOSSJINJO_JINJONATOR){
sp38 = 0x30 + actor->unkF4_8*2;
sp34 = chbossjinjo_8038D268();
sp30 = actor->unk1C[0] + sp34;

View File

@@ -8,16 +8,16 @@ typedef struct {
s32 unk0;
} ActorLocal_lair_5640;
void func_8038BCF0(Actor *this);
void chBrentilda_update(Actor *this);
/* .data */
ActorAnimationInfo D_80393710[] ={
ActorAnimationInfo chBrentildaAnimations[] ={
{0, 0.0f},
{0x26B, 4.0f},
{0x26C, 4.0f},
{0x26B, 4.0f},
};
ActorInfo D_80393730 = { 0x1E0, 0x348, 0x539, 0x1, D_80393710, func_8038BCF0, func_80326224, func_80325888, 2000, 0, 2.0f, 0};
ActorInfo chBrentilda = { 0x1E0, 0x348, 0x539, 0x1, chBrentildaAnimations, chBrentilda_update, func_80326224, func_80325888, 2000, 0, 2.0f, 0};
/* .code */
void func_8038BA30(ActorMarker *marker, enum asset_e text_id, s32 arg2){
@@ -34,7 +34,7 @@ void lair_func_8038BA88(ActorMarker *marker, enum asset_e text_id, s32 arg2){
this = marker_getActor(marker);
item_set(ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL));
func_80320004(this->unkF4_8 + 0xE8, TRUE);
fileProgressFlag_set(this->unkF4_8 - 1 + FILEPROG_E9_TALKED_TO_BRENTILDA_1, TRUE);
}
void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
@@ -42,7 +42,7 @@ void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
this = marker_getActor(marker);
if (text_id == ((ActorLocal_lair_5640 *)&this->local)->unk0 + 2) {
if (!func_8031FF1C(this->unkF4_8 + 0xE8)) {
if (!fileProgressFlag_get(this->unkF4_8 - 1 + FILEPROG_E9_TALKED_TO_BRENTILDA_1)) {
if (item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL)) {
func_80311480(0x10A2, 0xF, this->position, this->marker, func_8038BADC, lair_func_8038BA88);
return;
@@ -68,8 +68,8 @@ void func_8038BC24(void) {
s32 phi_s0;
s32 phi_s1;
if (func_8031FF1C(0x5C) && !func_803203FC(0x62)) {
func_8034A8BC(func_8031FF44(0xD3, 8));
if (fileProgressFlag_get(FILEPROG_5C_FF_PATTERN_SET) && !func_803203FC(0x62)) {
func_8034A8BC(fileProgressFlag_getN(FILEPROG_D3_FF_PATTERN, 8));
for(phi_s1 = 0; phi_s1 < func_8031A45C(3); phi_s1++){
phi_s0 = 0x26 + 2*phi_s1;
temp_v0 = randi2(0, 3);
@@ -84,7 +84,7 @@ void func_8038BC24(void) {
}
void func_8038BCF0(Actor *this) {
void chBrentilda_update(Actor *this) {
s32 sp78[6];
s32 sp74;
ActorLocal_lair_5640 *local;
@@ -100,9 +100,9 @@ void func_8038BCF0(Actor *this) {
marker_setFreeMethod(this->marker, func_8038BBC0);
actor_collisionOff(this);
this->unk10_12 = 2;
if (!func_8031FF1C(0x5C)) {
func_80320044(0xD3, randi2(0, 0x100), 8);
func_80320004(0x5C, TRUE);
if (!fileProgressFlag_get(FILEPROG_5C_FF_PATTERN_SET)) {
fileProgressFlag_setN(FILEPROG_D3_FF_PATTERN, randi2(0, 0x100), 8);
fileProgressFlag_set(FILEPROG_5C_FF_PATTERN_SET, TRUE);
}
func_8038BC24();
actor_setOpacity(this, 0x40);
@@ -178,9 +178,9 @@ void func_8038BCF0(Actor *this) {
&& (func_8028ECAC() == 0)
&& func_8028F20C()
&& !func_803114B0()) {
if (!func_8031FF1C(0x96)) {
func_80311480(0x10A1, 0xA, this->position, this->marker, func_8038BADC, NULL);
func_80320004(0x96, TRUE);
if (!fileProgressFlag_get(FILEPROG_96_MET_BRENTILDA)) {
func_80311480(ASSET_10A1_DIALOG_BRENTILDA_MEET, 0xA, this->position, this->marker, func_8038BADC, NULL);
fileProgressFlag_set(FILEPROG_96_MET_BRENTILDA, TRUE);
func_80328A84(this, 2);
return;
}

View File

@@ -20,8 +20,8 @@ extern void *func_8034C2C4(ActorMarker *, s32);
void lair_func_803863F0(Actor *this);
void lair_func_803864B0(Actor *this);
void chFloorCobweb_update(Actor *this);
void chWallCobweb_update(Actor *this);
void lair_func_80386550(Actor *this);
Actor *func_8038664C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80386D78(Actor *this);
@@ -64,7 +64,7 @@ extern ActorInfo D_80393560;
extern ActorInfo D_80393584;
extern ActorInfo D_803947B0;
extern ActorInfo D_803947D4;
extern ActorInfo D_80393730;
extern ActorInfo chBrentilda;
extern ActorInfo D_80394A80;
extern ActorInfo D_80394AB0;
extern ActorInfo D_80394870;
@@ -125,10 +125,10 @@ ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, fu
ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392EF8 = { 0x109, 0x20D, 0x4A1, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85};
ActorInfo D_80392EF8 = { MARKER_109_BREAKABLE_BRICK_WALL, ACTOR_20D_BREAKABLE_BRICK_WALL, ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85};
ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392F40 = { 0x224, 0x230, 0x4BF, 0xB, D_80392CB0, lair_func_803863F0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F64 = { 0x225, 0x231, 0x4D5, 0xE, D_80392CB0, lair_func_803864B0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F40 = { MARKER_224_BREAKABLE_FLOOR_COBWEB, ACTOR_230_BREAKABLE_FLOOR_COBWEB, ASSET_4BF_MODEL_FLOOR_COBWEB, 0xB, D_80392CB0, chFloorCobweb_update, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F64 = { MARKER_225_BREAKABLE_WALL_COBWEB, ACTOR_231_BREAKABLE_WALL_COBWEB, ASSET_4D5_MODEL_WALL_COBWEB, 0xE, D_80392CB0, chWallCobweb_update, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
@@ -152,7 +152,7 @@ ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, func_803
ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x84};
ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x7F};
ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x87};
ActorInfo D_803932C4 = { 0x122, 0x228, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C};
ActorInfo D_803932C4 = { 0x122, ACTOR_228_MMM_ENTRANCE_DOOR, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C};
ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x80};
ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8F};
ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x92};
@@ -170,15 +170,15 @@ struct31s D_8039342C = {
0.0f, 0.0f
};
s16 D_80393454[] = {
BKPROG_31_MM_OPEN,
BKPROG_32_TTC_OPEN,
BKPROG_33_CC_OPEN,
BKPROG_34_BGS_OPEN,
BKPROG_35_FP_OPEN,
BKPROG_36_GV_OPEN,
BKPROG_37_MMM_OPEN,
BKPROG_38_RBB_OPEN,
BKPROG_39_CCW_OPEN,
FILEPROG_31_MM_OPEN,
FILEPROG_32_TTC_OPEN,
FILEPROG_33_CC_OPEN,
FILEPROG_34_BGS_OPEN,
FILEPROG_35_FP_OPEN,
FILEPROG_36_GV_OPEN,
FILEPROG_37_MMM_OPEN,
FILEPROG_38_RBB_OPEN,
FILEPROG_39_CCW_OPEN,
0
};
@@ -214,13 +214,13 @@ s32 D_80393504[4] = {0x87, 0x87, 0x87, 0xB4};
//chcobweb
void lair_func_803863F0(Actor *this)
void chFloorCobweb_update(Actor *this)
{
if(!this->initialized)
{
func_802D3CE8(this);
if (func_8031FF1C(this->unkF4_8 == 1 ? 0xCB : 0xCC))
if (fileProgressFlag_get(this->unkF4_8 == 1 ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN))
{
marker_despawn(this->marker);
return;
@@ -238,13 +238,13 @@ void lair_func_803863F0(Actor *this)
}
//chbigyellowcobweb
void lair_func_803864B0(Actor *this)
void chWallCobweb_update(Actor *this)
{
if (!this->initialized)
{
func_802D3CE8(this);
if (func_8031FF1C(0xCA))
if (fileProgressFlag_get(FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN))
{
marker_despawn(this->marker);
return;
@@ -267,7 +267,7 @@ void lair_func_80386550(Actor *this)
{
func_802D3CE8(this);
if (func_8031FF1C(this->unkF4_8 == 1 ? 0xC8 : 0xC9))
if (fileProgressFlag_get(this->unkF4_8 == 1 ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN))
{
marker_despawn(this->marker);
return;
@@ -334,7 +334,7 @@ ParticleEmitter *func_803866D8(s32 a0)
void func_80386780(Actor *this)
{
func_802D4AC0(this, 0x8000C6, 0xC7);
func_802D4AC0(this, 0x800000 | FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED, FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE);
}
void func_803867A8(Actor *this) {
@@ -365,8 +365,8 @@ void func_803867A8(Actor *this) {
this->unk158[1] = func_803866D8(1);
if (func_803203FC(0x86)) {
ability_unlock(ABILITY_D_SHOCK_JUMP);
func_80320004(0xC6, TRUE);
func_80320004(0xC7, TRUE);
fileProgressFlag_set(FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED, TRUE);
fileProgressFlag_set(FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE, TRUE);
}
}
if ((this->unk1C[1] - 150.0f) <= this->position[1]) {
@@ -424,10 +424,10 @@ void func_803867A8(Actor *this) {
particleEmitter_emitN(sp44, 1);
}
}
} else if (func_8031FF1C(0xC6)) {
} else if (fileProgressFlag_get(FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED)) {
this->position_y = this->unk1C[1];
if (func_8031FF1C(0xC7)) {
if (fileProgressFlag_get(FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE)) {
this->unk38_31 = 0;
this->alpha_124_19 = 0xFF;
}
@@ -525,7 +525,7 @@ void func_803870DC(Actor *this) {
f32 sp64[3];
s32 temp_s7;
phi_v1 = func_8031FF1C(D_80393454[this->unkF4_8 - 1])
phi_v1 = fileProgressFlag_get(D_80393454[this->unkF4_8 - 1])
|| (D_80393468[this->unkF4_8 - 1] != 0 && func_803203FC(D_80393468[this->unkF4_8 - 1]));
if (!this->unk16C_4) {
@@ -605,7 +605,7 @@ void func_803875F0(Actor * this)
if (!this->unk16C_4)
{
if (func_8031FF1C(0x1E))
if (fileProgressFlag_get(FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN))
{
marker_despawn(this->marker);
return;
@@ -615,7 +615,7 @@ void func_803875F0(Actor * this)
{
this->unk1C_y = this->position_y;
func_802BAFE4(0x2A);
func_80320004(0x1E, TRUE);
fileProgressFlag_set(FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN, TRUE);
this->unk16C_4 = TRUE;
this->unk38_31 = 0x0C;
}
@@ -663,7 +663,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 = 0xFF;
this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f;
if (func_8031FF1C(this->unkF4_8 + 0x39)) {
if (fileProgressFlag_get(this->unkF4_8 + 0x39)) {
marker_despawn(this->marker);
return;
}
@@ -682,7 +682,7 @@ void func_80387730(Actor *this) {
this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f;
}
if (!func_8031FF1C(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
if (!fileProgressFlag_get(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
player_getPosition(spAC);
if ((ml_distance_vec3f(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) {
func_802FACA4(0xC);
@@ -712,7 +712,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 -= 7;
}
if (this->alpha_124_19 == 0) {
func_80320004(this->unkF4_8 + 0x39, TRUE);
fileProgressFlag_set(this->unkF4_8 + 0x39, TRUE);
marker_despawn(this->marker);
func_8028F918(0);
func_8028F66C(BS_INTR_35);
@@ -830,22 +830,22 @@ void func_80387F78(Actor *this, u32 flag)
{
if (this->unk1C[0] != 2.f)
{
if (this->unk1C[0] != 0 && func_8031FF1C(0x9B))
if (this->unk1C[0] != 0 && fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
u32 flagState = func_8031FF1C(flag);
func_80320004(flag, TRUE);
u32 flagState = fileProgressFlag_get(flag);
fileProgressFlag_set(flag, TRUE);
if (flagState == FALSE
&& !jiggyscore_isSpawned(JIGGY_35_LAIR_CC_WITCH_SWITCH)
&& func_8031FF1C(0x9C)
&& func_8031FF1C(0x9D))
&& fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)
&& fileProgressFlag_get(FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED))
{
func_8025A6EC(0x2D, 0x7FFF);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
timedFunc_set_0(0.9f, func_80387F1C);
}
}
if (func_8031FF1C(flag))
if (fileProgressFlag_get(flag))
{
this->position_y -= 4.5; // f64
@@ -873,19 +873,19 @@ void func_803880BC(Actor *this)
__spawnQueue_add_1((GenMethod_1)func_80387E94, reinterpret_cast(s32, this->marker));
if (func_803203FC(0xBC) && !func_8031FF1C(0x9A))
if (func_803203FC(0xBC) && !fileProgressFlag_get(FILEPROG_9A_CC_WITCH_SWITCH_PRESSED))
FUNC_8030E624(SFX_3F6_UNKNOWN, 0.75f, 30000);
}
if (func_8031FF1C(0x9B))
if (fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
if (!func_8031FF1C(0x9C))
if (!fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED))
{
this->position_y = this->unk1C[1];
actor_collisionOn(this);
}
if (this->unk100 != NULL && !func_8031FF1C(0x9D))
if (this->unk100 != NULL && !fileProgressFlag_get(FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED))
{
Actor *actor = marker_getActor(this->unk100);
actor->position_y = this->unk1C[1];
@@ -893,14 +893,14 @@ void func_803880BC(Actor *this)
}
}
if (func_803203FC(0xBC) && !func_8031FF1C(0x9B))
if (func_803203FC(0xBC) && !fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
this->position_y += 1.7;
if (this->position_y >= this->unk1C[1])
{
this->position_y = this->unk1C[1];
func_80320004(0x9B, TRUE);
fileProgressFlag_set(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE, TRUE);
}
if (this->unk100 != NULL)
@@ -910,13 +910,13 @@ void func_803880BC(Actor *this)
}
}
func_80387F78(this, 0x9C);
func_80387F78(this, FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED);
}
void func_8038824C(Actor *this)
{
func_802D3CE8(this);
func_80387F78(this, 0x9D);
func_80387F78(this, FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED);
}
@@ -939,7 +939,7 @@ void func_803882B0(Actor *this)
this->unk16C_4 = TRUE;
if (func_8031FF1C(0x48))
if (fileProgressFlag_get(FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN))
this->pitch = 90.f;
this->unk60 = 0;
@@ -962,17 +962,17 @@ void func_803882B0(Actor *this)
if (this->pitch > 90.f)
{
this->pitch = 90.f;
func_80320004(0x48, TRUE);
fileProgressFlag_set(FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN, TRUE);
func_802D48B8(this);
}
}
void func_80388404(enum bkprog_e flag, enum sfx_e sfx, f32 a2, s32 a3)
void func_80388404(enum file_progress_e flag, enum sfx_e sfx, f32 a2, s32 a3)
{
if (func_8031FF1C(flag) == FALSE)
if (fileProgressFlag_get(flag) == FALSE)
func_8030E6A4(sfx, a2, a3);
func_80320004(flag, TRUE);
fileProgressFlag_set(flag, TRUE);
}
void func_80388450(Actor *actor1, Actor *actor2)
@@ -1015,63 +1015,63 @@ void func_80388524(Actor *this) {
if (!this->initialized) {
if (!sp34) {
switch(this->modelCacheIndex){
case 0x2E5://L80388630
if (!func_8031FF1C(0xE2) && func_8038EAE0(0xA)) {
func_80320004(0xE2, TRUE);
case ACTOR_2E5_DOOR_OF_GRUNTY://L80388630
if (!fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) && func_8038EAE0(0xA)) {
fileProgressFlag_set(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, TRUE);
}
break;
case 0x20e: //L80388660
if (!func_8031FF1C(0x31) && func_8038EAE0(1)) {
func_80320004(0x31, TRUE);
case ACTOR_20E_MM_ENTRANCE_DOOR: //L80388660
if (!fileProgressFlag_get(FILEPROG_31_MM_OPEN) && func_8038EAE0(1)) {
fileProgressFlag_set(FILEPROG_31_MM_OPEN, TRUE);
}
break;
case 0x226: //L80388690
if (!func_8031FF1C(0x36) && func_8038EAE0(6)) {
func_80320004(0x36, TRUE);
case ACTOR_226_GV_ENTRANCE: //L80388690
if (!fileProgressFlag_get(FILEPROG_36_GV_OPEN) && func_8038EAE0(6)) {
fileProgressFlag_set(FILEPROG_36_GV_OPEN, TRUE);
}
break;
case 0x212: //L803886C0
if (!func_8031FF1C(0x33) && func_8038EAE0(3)) {
func_80320004(0x33, TRUE);
case ACTOR_212_CC_ENTRANCE_BARS: //L803886C0
if (!fileProgressFlag_get(FILEPROG_33_CC_OPEN) && func_8038EAE0(3)) {
fileProgressFlag_set(FILEPROG_33_CC_OPEN, TRUE);
}
break;
case 0x211: //L803886F0
if (!func_8031FF1C(0x32) && func_8038EAE0(2)) {
func_80320004(0x32, TRUE);
case ACTOR_211_TCC_ENTRANCE_CHEST_LID: //L803886F0
if (!fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && func_8038EAE0(2)) {
fileProgressFlag_set(FILEPROG_32_TTC_OPEN, TRUE);
}
break;
case 0x210: //L80388720
if (!func_8031FF1C(0x34) && func_8038EAE0(4)) {
func_80320004(0x34, TRUE);
case ACTOR_210_BGS_ENTRANCE_DOOR: //L80388720
if (!fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && func_8038EAE0(4)) {
fileProgressFlag_set(FILEPROG_34_BGS_OPEN, TRUE);
}
break;
case 0x20f: //L80388750
if (!func_8031FF1C(0x38) && func_8038EAE0(8)) {
func_80320004(0x38, TRUE);
case ACTOR_20F_RBB_ENTRANCE_DOOR: //L80388750
if (!fileProgressFlag_get(FILEPROG_38_RBB_OPEN) && func_8038EAE0(8)) {
fileProgressFlag_set(FILEPROG_38_RBB_OPEN, TRUE);
}
break;
case 0x228: //L80388780
if (!func_8031FF1C(0x37) && func_8038EAE0(7)) {
func_80320004(0x37, TRUE);
case ACTOR_228_MMM_ENTRANCE_DOOR: //L80388780
if (!fileProgressFlag_get(FILEPROG_37_MMM_OPEN) && func_8038EAE0(7)) {
fileProgressFlag_set(FILEPROG_37_MMM_OPEN, TRUE);
}
break;
case 0x234: //L803887B0
if (!func_8031FF1C(0x39) && func_8038EAE0(9)) {
func_80320004(0x39, TRUE);
case ACTOR_234_CCW_ENTRANCE_DOOR: //L803887B0
if (!fileProgressFlag_get(FILEPROG_39_CCW_OPEN) && func_8038EAE0(9)) {
fileProgressFlag_set(FILEPROG_39_CCW_OPEN, TRUE);
}
break;
case 0x235: //L803887E0
if (!func_8031FF1C(0x35) && func_8038EAE0(5)) {
func_80320004(0x35, TRUE);
case ACTOR_235_FP_ENTANCE_DOOR: //L803887E0
if (!fileProgressFlag_get(FILEPROG_35_FP_OPEN) && func_8038EAE0(5)) {
fileProgressFlag_set(FILEPROG_35_FP_OPEN, TRUE);
}
break;
}//L80388808
@@ -1081,71 +1081,71 @@ void func_80388524(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
switch(this->modelCacheIndex){
case 0x2E5: //L80388880
if (func_8031FF1C(0xE2) && (this->state == 0x19)) {
case ACTOR_2E5_DOOR_OF_GRUNTY: //L80388880
if (fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) && (this->state == 0x19)) {
func_80328B8C(this, 0x1B, 0.999f, 1);
}
break;
case 0x20e://L803888C0
if(func_8031FF1C(0x31)){
case ACTOR_20E_MM_ENTRANCE_DOOR://L803888C0
if(fileProgressFlag_get(FILEPROG_31_MM_OPEN)){
this->yaw = 270.0f;
}
break;
case 0x226://L803888DC
if(func_8031FF1C(0x36)){
case ACTOR_226_GV_ENTRANCE://L803888DC
if(fileProgressFlag_get(FILEPROG_36_GV_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 300.0f;
break;
case 0x212://L80388914
if(func_8031FF1C(0x33)){
case ACTOR_212_CC_ENTRANCE_BARS://L80388914
if(fileProgressFlag_get(FILEPROG_33_CC_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 365.0f;
break;
case 0x211://L80388948
if(func_8031FF1C(0x32)){
case ACTOR_211_TCC_ENTRANCE_CHEST_LID://L80388948
if(fileProgressFlag_get(FILEPROG_32_TTC_OPEN)){
this->pitch = 90.0f;
}
break;
case 0x210://L8038896C
if(func_8031FF1C(0x34)){
case ACTOR_210_BGS_ENTRANCE_DOOR://L8038896C
if(fileProgressFlag_get(FILEPROG_34_BGS_OPEN)){
this->yaw = 90.0f;
}
break;
case 0x20f://L80388990
if(func_8031FF1C(0x38)){
case ACTOR_20F_RBB_ENTRANCE_DOOR://L80388990
if(fileProgressFlag_get(FILEPROG_38_RBB_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 290.0f;
break;
case 0x228://L803889C8
if(func_8031FF1C(0x37)){
case ACTOR_228_MMM_ENTRANCE_DOOR://L803889C8
if(fileProgressFlag_get(FILEPROG_37_MMM_OPEN)){
this->yaw = 90.0f;
}
break;
case 0x234://L803889EC
if(func_8031FF1C(0x39)){
case ACTOR_234_CCW_ENTRANCE_DOOR://L803889EC
if(fileProgressFlag_get(FILEPROG_39_CCW_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 270.0f;
break;
case 0x235://L80388A24
case ACTOR_235_FP_ENTANCE_DOOR://L80388A24
sp30 = actorArray_findActorFromActorId(0x236);
if(func_8031FF1C(0x35)){
if(fileProgressFlag_get(FILEPROG_35_FP_OPEN)){
marker_despawn(this->marker);
marker_despawn(sp30->marker);
return;
@@ -1180,7 +1180,7 @@ void func_80388524(Actor *this) {
}
if (actor_animationIsAt(this, 0.97f)) {
func_80328B8C(this, 0x1B, 0.999f, 1);
func_80320004(0xE2, 1);
fileProgressFlag_set(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, 1);
func_8030E6D4(SFX_6C_LOCKUP_CLOSING);
}
if (animctrl_getAnimTimer(this->animctrl) < 0.68) {
@@ -1251,7 +1251,7 @@ void func_80388524(Actor *this) {
}
break;
case 0x228://L80388E84
case ACTOR_228_MMM_ENTRANCE_DOOR://L80388E84
this->yaw += 1.4;
if (this->yaw > 90.0f) {
this->yaw = 90.0f;
@@ -1259,16 +1259,16 @@ void func_80388524(Actor *this) {
}
break;
case 0x234://L80388ED4
case ACTOR_234_CCW_ENTRANCE_DOOR://L80388ED4
this->position[1] += 3.2;
if (this->unk1C[1] <= this->position[1]) {
func_80388404(0x39, SFX_6C_LOCKUP_CLOSING, 1.0f, 20000);
func_80388404(FILEPROG_39_CCW_OPEN, SFX_6C_LOCKUP_CLOSING, 1.0f, 20000);
lair_func_80388278(this);
marker_despawn(this->marker);
}
break;
case 0x235://L80388F34
case ACTOR_235_FP_ENTANCE_DOOR://L80388F34
{
sp28 = actorArray_findActorFromActorId(0x236);
this->unk1C[0] += 3.6;
@@ -1276,7 +1276,7 @@ void func_80388524(Actor *this) {
lair_func_80388278(this);
marker_despawn(this->marker);
marker_despawn(sp28->marker);
func_80320004(0x35, TRUE);
fileProgressFlag_set(FILEPROG_35_FP_OPEN, TRUE);
return;
}
func_80388450(this, sp28);
@@ -1313,7 +1313,7 @@ void func_80388FC8(Actor *this)
if (!this->unk16C_4)
{
if (func_8031FF1C(this->modelCacheIndex == 0x215 ? BKPROG_1F_CC_LOBBY_PIPE_1_RAISED : BKPROG_20_CC_LOBBY_PIPE_2_RAISED))
if (fileProgressFlag_get(this->modelCacheIndex == 0x215 ? FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED : FILEPROG_20_CC_LOBBY_PIPE_2_RAISED))
{
this->position_y = this->unk1C[1];
return;
@@ -1327,7 +1327,7 @@ void func_80388FC8(Actor *this)
if (1); // oof
}
func_80320004(this->modelCacheIndex == 0x215 ? BKPROG_1F_CC_LOBBY_PIPE_1_RAISED : BKPROG_20_CC_LOBBY_PIPE_2_RAISED, TRUE);
fileProgressFlag_set(this->modelCacheIndex == 0x215 ? FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED : FILEPROG_20_CC_LOBBY_PIPE_2_RAISED, TRUE);
this->unk16C_4 = 1;
this->unk38_31 = 12;
@@ -1390,7 +1390,7 @@ void lair_func_80389204(Actor *this)
if (!this->unk16C_4)
{
if (func_8031FF1C(BKPROG_21_CC_LOBBY_PIPE_3_RAISED))
if (fileProgressFlag_get(FILEPROG_21_CC_LOBBY_PIPE_3_RAISED))
{
this->position_y = this->unk1C[1];
return;
@@ -1399,7 +1399,7 @@ void lair_func_80389204(Actor *this)
if (mapSpecificFlags_get(2))
{
func_802BAFE4(0x2C);
func_80320004(BKPROG_21_CC_LOBBY_PIPE_3_RAISED, TRUE);
fileProgressFlag_set(FILEPROG_21_CC_LOBBY_PIPE_3_RAISED, TRUE);
this->unk16C_4 = 1;
this->unk38_31 = 12;
@@ -1476,7 +1476,7 @@ void lair_func_803894B0(Actor *this)
this->unk16C_4 = TRUE;
this->unk1C[0] = 0;
if (func_8031FF1C(BKPROG_A1_STATUE_HAT_OPEN))
if (fileProgressFlag_get(FILEPROG_A1_STATUE_HAT_OPEN))
{
marker_despawn(this->marker);
return;
@@ -1490,7 +1490,7 @@ void lair_func_803894B0(Actor *this)
if (--this->unk1C[0] == 0)
{
func_80320004(0xA1, TRUE);
fileProgressFlag_set(FILEPROG_A1_STATUE_HAT_OPEN, TRUE);
timed_playSfx(0.5f, SFX_3F9_UNKNOWN, 1.f, 32000);
FUNC_8030E624(SFX_114_BRICKWALL_BREAKING, 0.8f, 32000);
func_802EE2E8(this, 0xB, 0x19, 0x000, 0.6f, 1.8f, 3.f);
@@ -1519,22 +1519,22 @@ void func_80389714(Actor *this)
void func_80389734(Actor *this)
{
func_802D4AC0(this, 0x800022, 0x23);
func_802D4AC0(this, 0x800000 | FILEPROG_22_WATER_SWITCH_1_PRESSED, FILEPROG_23_LAIR_WATER_LEVEL_1);
}
void func_8038975C(Actor *this)
{
func_802D4AC0(this, 0x800024, 0x25);
func_802D4AC0(this, 0x800000 | FILEPROG_24_WATER_SWITCH_2_PRESSED, FILEPROG_25_LAIR_WATER_LEVEL_2);
}
void func_80389784(Actor *this)
{
func_802D4AC0(this, 0x800026, 0x27);
func_802D4AC0(this, 0x800000 | FILEPROG_26_WATER_SWITCH_3_PRESSED, FILEPROG_27_LAIR_WATER_LEVEL_3);
}
void func_803897AC(Actor *this)
{
func_802D4AC0(this, 0x800053, 0x54);
func_802D4AC0(this, 0x800000 | FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED, FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE);
}
void func_803897D4(s32 arg0)
@@ -1562,7 +1562,7 @@ void func_8038982C(Actor *this)
this->initialized = TRUE;
if (!func_8031FF1C(BKPROG_9E_CRYPT_COFFIN_LID_OPEN))
if (!fileProgressFlag_get(FILEPROG_9E_CRYPT_COFFIN_LID_OPEN))
__spawnQueue_add_1((GenMethod_1)func_803897D4, reinterpret_cast(s32, this->marker));
}
}
@@ -1579,7 +1579,7 @@ void func_80389898(Actor *this)
{
func_80328AC8(this, 0x13);
actor_playAnimationOnce(this);
func_80320004(BKPROG_9E_CRYPT_COFFIN_LID_OPEN, TRUE);
fileProgressFlag_set(FILEPROG_9E_CRYPT_COFFIN_LID_OPEN, TRUE);
}
break;
@@ -1605,7 +1605,7 @@ void func_80389934(Actor *this)
this->unk16C_4 = TRUE;
if (func_8031FF1C(BKPROG_A2_GV_LOBBY_COFFIN_OPEN))
if (fileProgressFlag_get(FILEPROG_A2_GV_LOBBY_COFFIN_OPEN))
func_80328B8C(this, 0x18, 0.999f, 1);
}
@@ -1618,7 +1618,7 @@ void func_80389934(Actor *this)
this->unk1C[0] = 25;
func_80328AC8(this, 0x16);
func_80320004(BKPROG_A2_GV_LOBBY_COFFIN_OPEN, TRUE);
fileProgressFlag_set(FILEPROG_A2_GV_LOBBY_COFFIN_OPEN, TRUE);
}
break;
@@ -1731,7 +1731,7 @@ void func_80389D08(Actor *this)
this->unk16C_4 = TRUE;
this->unk60 = 0;
if (func_8031FF1C(0xA5))
if (fileProgressFlag_get(0xA5))
{
marker_despawn(this->marker);
return;
@@ -1799,47 +1799,47 @@ Actor *func_80389E10(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
return this;
}
void func_80389FA8(Actor *this, enum bkprog_e flag)
void func_80389FA8(Actor *this, enum file_progress_e flag)
{
if (!this->initialized)
{
func_802D3D54(this);
if (func_8031FF1C(flag))
if (fileProgressFlag_get(flag))
marker_despawn(this->marker);
}
}
void func_80389FF4(Actor *this)
{
func_80389FA8(this, BKPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
func_80389FA8(this, FILEPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
}
void func_8038A014(Actor *this)
{
func_80389FA8(this, BKPROG_C3_ICE_BALL_TO_CHEATO_BROKEN);
func_80389FA8(this, FILEPROG_C3_ICE_BALL_TO_CHEATO_BROKEN);
}
void func_8038A034(Actor *this)
{
this->depth_mode = 2;
func_80389FA8(this, BKPROG_C4_STATUE_EYE_BROKEN);
func_80389FA8(this, FILEPROG_C4_STATUE_EYE_BROKEN);
}
void func_8038A064(Actor *this)
{
func_80389FA8(this, BKPROG_C5_RAREWARE_BOX_BROKEN);
func_80389FA8(this, FILEPROG_C5_RAREWARE_BOX_BROKEN);
}
void lair_func_8038A084(Actor *this)
{
func_80389FA8(this, BKPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
func_80389FA8(this, FILEPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
}
void func_8038A0A4(Actor *this)
{
func_80389FA8(this, BKPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN);
func_80389FA8(this, FILEPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN);
}
void lair_func_8038A0C4(void)
@@ -1888,7 +1888,7 @@ void lair_func_8038A0C4(void)
spawnableActorList_add(&D_80393378, actor_new, 0x8640);
spawnableActorList_add(&D_803947B0, actor_new, 0xA1480);
spawnableActorList_add(&D_803947D4, actor_new, 0xA1480);
spawnableActorList_add(&D_80393730, actor_new, 0x140);
spawnableActorList_add(&chBrentilda, actor_new, 0x140);
spawnableActorList_add(&D_80394A80, actor_new, 0);
spawnableActorList_add(&D_80394AB0, actor_new, 0x44);
spawnableActorList_add(&D_80392EB0, actor_new, 0x8608);

View File

@@ -4,7 +4,7 @@
extern void func_8028F4B8(f32[3], f32, f32);
extern void func_8028F66C(s32);
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e);
extern void func_802D6310(f32, enum map_e, s32, s32, enum file_progress_e);
extern void func_802EE354(Actor *, s32, s32, s32, f32, f32, f32, s32[4], s32, s32);
extern void func_80324CFC(f32, enum comusic_e, s32);
extern void func_8034DF30(s32, f32[4], f32[4], f32);
@@ -19,8 +19,8 @@ typedef struct {
s16 unk6;
}Struct_lair_42A0_0;
void func_8038AE2C(Actor *this);
Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chWarpCauldron_update(Actor *this);
Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */
ActorAnimationInfo D_80393520[] = {
@@ -33,8 +33,8 @@ ActorAnimationInfo D_80393520[] = {
{0x28F, 5.167f},
{0x290, 6.26f}
};
ActorInfo D_80393560 = { 0x231, 0x23B, 0x4DF, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0};
ActorInfo D_80393584 = { 0x244, 0x2DB, 0x450, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0};
ActorInfo D_80393560 = { MARKER_231_DINGPOT, ACTOR_23B_DINGPOT, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0};
ActorInfo D_80393584 = { MARKER_244_WARP_CAULDRON, ACTOR_2DB_WARP_CAULDRON, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0};
f32 D_803935A8[][2][3] = {
{{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}},
{{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}},
@@ -71,11 +71,11 @@ bool func_8038A690(Actor *this) {
}
}
enum bkprog_e func_8038A6DC(Actor *this){
return this->unkF4_8 + 0x48;
enum file_progress_e chWarpCauldron_getFileProgressFlagIndex(Actor *this){
return this->unkF4_8 -1 + 0x49;
}
enum bkprog_e func_8038A6EC(Actor *this){
enum file_progress_e chWarpCauldron_getPairedFileProgressFlagIndex(Actor *this){
return ((this->unkF4_8 - 1) ^ 1) + 0x49;
}
@@ -129,8 +129,8 @@ void func_8038A96C(Actor *this, s32 arg1) {
f32 sp38[4];
if( ( (arg1 != 3) || ( (this->unk1C[1] == 0.0f) && (this->marker->unk14_21 == 1)))
&& (this->modelCacheIndex == 0x23B)
&& ((arg1 != 0) || func_8031FF1C(func_8038A6DC(this)))
&& (this->modelCacheIndex == ACTOR_23B_DINGPOT)
&& ((arg1 != 0) || fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this)))
){
sp5C = func_8034C2C4(this->marker, 0x1C3);
if(sp5C != 0){
@@ -145,7 +145,7 @@ void func_8038A96C(Actor *this, s32 arg1) {
func_8034DF30(sp5C, sp38, sp38, 0.3f);
}
else{
func_8034DF30(sp5C, sp48, sp38, func_8031FF1C(func_8038A6DC(this)) ? 0.3 : 3.0);
func_8034DF30(sp5C, sp48, sp38, fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this)) ? 0.3 : 3.0);
}
}
}
@@ -178,12 +178,12 @@ void func_8038AC7C(Actor *this) {
if(
(func_803114C4() != 0xFAD)
&& func_80329530(this, 1200)
&& !func_8031FF1C(0xFC)
&& !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
) {
this->unk60 += time_getDelta();
if (35.0 < this->unk60) {
sp2C = (func_8031FF1C(0xCF)) ? 0xFB7 : 0xFAE;
sp28 = (func_8031FF1C(0xCF)) ? 0xFBC : 0xFB7;
sp2C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE;
sp28 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7;
if (func_80311480(sp2C + this->unk38_31, 0, NULL, NULL, NULL, NULL)) {
this->unk38_31++;
this->unk60 = 0.0f;
@@ -196,8 +196,8 @@ void func_8038AC7C(Actor *this) {
}
void func_8038ADC0(ActorMarker *marker, enum asset_e text_id, s32 arg2){
func_80320004(0xF3, TRUE);
void __chWarpCauldron_dingpotDialogCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2){
fileProgressFlag_set(FILEPROG_F3_MET_DINGPOT, TRUE);
}
bool lair_func_8038ADF0(s32 arg0, s32 arg1) {
@@ -209,7 +209,7 @@ bool lair_func_8038ADF0(s32 arg0, s32 arg1) {
return phi_v1 < 70;
}
void func_8038AE2C(Actor *this) {
void chWarpCauldron_update(Actor *this) {
f32 sp54[3];
s32 sp50;
s32 sp4C;
@@ -227,10 +227,10 @@ void func_8038AE2C(Actor *this) {
this->marker->propPtr->unk8_3 = TRUE;
this->unk1C[1] = 0.0f;
this->velocity[0] = this->yaw;
if (this->modelCacheIndex == 0x2DB) {
if (func_8031FF1C(0xF3)) {
sp4C = (func_8031FF1C(0xCF)) ? 0xFB7 : 0xFAE;
phi_v0 = (func_8031FF1C(0xCF)) ? 0xFBC : 0xFB7;
if (this->modelCacheIndex == ACTOR_2DB_WARP_CAULDRON) {
if (fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) {
sp4C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE;
phi_v0 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7;
this->unk60 = 35.0f;
this->unk38_31 = randi2(0, phi_v0 - sp4C);
}
@@ -238,7 +238,7 @@ void func_8038AE2C(Actor *this) {
func_80328B8C(this, 6, 0.99f, 1);
func_802D09B8(this, 2);
}
if (func_8031FF1C(func_8038A6DC(this))) {
if (fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this))) {
func_8038A704(this);
func_802D09B8(this, 2);
func_8038A96C(this, 2);
@@ -254,10 +254,10 @@ void func_8038AE2C(Actor *this) {
this->unk10_12 = 1;
func_8038AB90(this, 5, 1, 0, 0.0f);
}
if (!func_8031FF1C(0xF5) && func_8031FF1C(func_8038A6EC(this))) {
if (!fileProgressFlag_get(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET) && fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))) {
if (func_802D677C(-1) != map_get()) {
func_80311480(0xF7A, 4, NULL, NULL, NULL, NULL);
func_80320004(0xF5, 1);
fileProgressFlag_set(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET, 1);
}
}
}
@@ -275,12 +275,12 @@ void func_8038AE2C(Actor *this) {
func_8038A96C(this, 1);
func_802BAFE4(D_80393620[this->unkF4_8 - 1].unk3);
func_802D09B8(this, 2);
phi_a0 = (func_8031FF1C(func_8038A6EC(this)) != 0) ? SFX_107_CAULDRON_ACTIVATION_1 : SFX_108_CAULDRON_ACTIVATION_2;
func_8030E510(phi_a0, 0x7D00);
if (!func_8031FF1C(0xF5) && !func_8031FF1C(func_8038A6EC(this))) {
phi_a0 = (fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this)) != 0) ? SFX_107_CAULDRON_ACTIVATION_1 : SFX_108_CAULDRON_ACTIVATION_2;
func_8030E510(phi_a0, 32000);
if (!fileProgressFlag_get(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET) && !fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))) {
func_80311480(0xF79, 4, NULL, NULL, NULL, NULL);
}
if (func_8031FF1C(func_8038A6EC(this))){
if (fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))){
switch(this->unkF4_8){
case 2://L8038B204
func_802D6310(2.0f, MAP_6A_GL_TTC_AND_CC_PUZZLE, 0x62, 0x22, 0);
@@ -326,7 +326,7 @@ void func_8038AE2C(Actor *this) {
this->unk38_0 = (sp3C & 1) ? TRUE : FALSE;
if (actor_animationIsAt(this, 0.95f)) {
func_8038A704(this);
func_80320004(func_8038A6DC(this), 1);
fileProgressFlag_set(chWarpCauldron_getFileProgressFlagIndex(this), 1);
func_8028F918(0);
this->unk1C[2] = 4.0f;
}
@@ -338,7 +338,7 @@ void func_8038AE2C(Actor *this) {
this->unk1C[2] = this->unk1C[2] - 1.0f;
} else {
func_8038AB90(this, 5, 1, 0, 0.0f);
func_8038AB90(this, 4, 2, 0xA6, 2.6f);
func_8038AB90(this, 4, 2, SFX_A6_MAGICAL_FINISH, 2.6f);
}
func_8038A96C(this, 3);
break;
@@ -384,14 +384,14 @@ void func_8038AE2C(Actor *this) {
break;
case 6: //L8038B64C
if (func_8038A690(this) && !func_8031FF1C(0xF3)) {
func_80311480(0xFAD, 0xA, this->position, NULL, func_8038ADC0, NULL);
if (func_8038A690(this) && !fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) {
func_80311480(0xFAD, 0xA, this->position, NULL, __chWarpCauldron_dingpotDialogCallback, NULL);
}
this->unk38_0 = TRUE;
sp3C = 0;
if (func_8031FF1C(0xFC)){
if(jiggyscore_total() == 0x64){
if (fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
if(jiggyscore_total() == 100){
sp3C = 1;
}
}
@@ -429,12 +429,12 @@ void func_8038AE2C(Actor *this) {
this->unk1C[1] = (f32)this->marker->unk14_21;
}
Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *this;
s32 sp3C[4];
this = marker_getActor(marker);
if(this->modelCacheIndex == 0x23B) {
if(this->modelCacheIndex == ACTOR_23B_DINGPOT) {
func_8033A45C(3, this->unk38_0 ? TRUE : FALSE);
func_8033A45C(4, this->unk38_0 ? FALSE : TRUE);
}

View File

@@ -678,7 +678,7 @@ void lair_func_8038CF18(void)
}
else
{
if (func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE))
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE))
func_8038D670(FFA_8_FURNACE_FUN_COMPLETE);
else
func_8038D670(FFA_1_UNK);
@@ -1012,11 +1012,11 @@ void func_8038D670(enum FF_Action next_state) {
break;
case FFA_8_FURNACE_FUN_COMPLETE: //L8038DC00
if (func_8031FF1C(0xA6) == 0) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE) == 0) {
func_8025A55C(0, 0x1388, 0xB);
func_8025AB00();
func_8025A70C(JINGLE_DOOR_OF_GRUNTY_OPENED);
func_80320004(0xA6, TRUE);
fileProgressFlag_set(FILEPROG_A6_FURNACE_FUN_COMPLETE, TRUE);
func_803204E4(0, FALSE);
func_803204E4(0xA6, TRUE);
func_803204E4(0xA7, TRUE);
@@ -1238,9 +1238,9 @@ void lair_func_8038E0B0(void) {
func_802FACA4(0x14);
func_802FACA4(0x16);
if (sp38 != FFTT_0_NIL) {
sp28 = sp38 + 0x54;
if (!func_8031FF1C(sp28) && func_80311480(sp38 + 0x101E, 0, NULL, NULL, NULL, NULL)) {
func_80320004(sp28, TRUE);
sp28 = sp38 - 1 + FILEPROG_55_FF_BK_SQUARE_INSTRUCTIONS;
if (!fileProgressFlag_get(sp28) && func_80311480(sp38 + 0x101E, 0, NULL, NULL, NULL, NULL)) {
fileProgressFlag_set(sp28, TRUE);
}
if ((sp38 == FFTT_6_SKULL) && (item_getCount(ITEM_16_LIFE) == 1)) {
func_80356540(0xAB);

View File

@@ -16,9 +16,9 @@ typedef struct {
}ActorLocal_lair_86F0;
typedef struct {
u8 unk0;
u8 unk1;
u16 unk2;
u8 cost;
u8 size_bits;
u16 progress_flag;
}Struct_lair_86F0_0;
void func_8038F350(Actor *this, s32 next_state);
@@ -28,17 +28,17 @@ void lair_func_8038F924(Actor *this);
ActorInfo D_803947B0 = { 0x1EB, 0x3B7, 0x48B, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_803947D4 = { 0x1EB, 0x3BC, 0x538, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0};
Struct_lair_86F0_0 D_803947F8[0xb] ={
{0x01, 0x1, 0x5D},
{0x02, 0x2, 0x5E},
{0x05, 0x3, 0x60},
{0x07, 0x3, 0x63},
{0x08, 0x4, 0x66},
{0x09, 0x4, 0x6A},
{0x0A, 0x4, 0x6E},
{0x0C, 0x4, 0x72},
{0x0F, 0x4, 0x76},
{0x19, 0x5, 0x7A},
{0x04, 0x3, 0x7F}
{ 1, 0x1, FILEPROG_5D_MM_PUZZLE_PIECES_PLACED},
{ 2, 0x2, FILEPROG_5E_TCC_PUZZLE_PIECES_PLACED},
{ 5, 0x3, FILEPROG_60_CC_PUZZLE_PIECES_PLACED},
{ 7, 0x3, FILEPROG_63_BGS_PUZZLE_PIECES_PLACED},
{ 8, 0x4, FILEPROG_66_FP_PUZZLE_PIECES_PLACED},
{ 9, 0x4, FILEPROG_6A_GV_PUZZLE_PIECES_PLACED},
{10, 0x4, FILEPROG_6E_MMM_PUZZLE_PIECES_PLACED},
{12, 0x4, FILEPROG_72_RBB_PUZZLE_PIECES_PLACED},
{15, 0x4, FILEPROG_76_CCW_PUZZLE_PIECES_PLACED},
{25, 0x5, FILEPROG_7A_DOG_PUZZLE_PIECES_PLACED},
{ 4, 0x3, FILEPROG_7F_DOUBLE_HEALTH_PUZZLE_PIECES_PLACED}
};
s32 D_80394824[3] = {0xff, 0xff, 0};
struct31s D_80394830 = {
@@ -51,11 +51,11 @@ struct31s D_80394830 = {
/* .code */
bool func_8038EAE0(s32 arg0) {
return func_8031FF44(D_803947F8[arg0 -1].unk2, D_803947F8[arg0 -1].unk1) == D_803947F8[arg0 -1].unk0;
return fileProgressFlag_getN(D_803947F8[arg0 -1].progress_flag, D_803947F8[arg0 -1].size_bits) == D_803947F8[arg0 -1].cost;
}
s32 func_8038EB24(Actor *this){
return (this->unkF4_8 != 0 && this->unkF4_8 < 0xC) ? D_803947F8[this->unkF4_8 - 1].unk0 : 0;
return (this->unkF4_8 != 0 && this->unkF4_8 < 0xC) ? D_803947F8[this->unkF4_8 - 1].cost : 0;
}
bool func_8038EB58(Actor *this){
@@ -72,7 +72,7 @@ s32 func_8038EB84(Actor *this){
void func_8038EB94(void){
func_802FAFD4(ITEM_14_HEALTH, 0x417);
func_802FAFC0(ITEM_14_HEALTH, COMUSIC_2B_DING_B);
func_80320004(BKPROG_B9_DOUBLE_HEALTH, TRUE);
fileProgressFlag_set(FILEPROG_B9_DOUBLE_HEALTH, TRUE);
func_80347958();
func_803463D4(ITEM_14_HEALTH, 0);
gcpausemenu_80314AC8(1);
@@ -83,7 +83,7 @@ void func_8038EBEC(ActorMarker *marker) {
u32 temp_t6;
this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
if (this->unkF4_8 < 0xAU) {
if (this->unkF4_8 < 0xA) {
levelSpecificFlags_set(func_8038EB84(this), TRUE);
return;
}
@@ -189,7 +189,7 @@ void func_8038EF58(ActorMarker *marker) {
func_8028E6EC(2);
func_8028F918(0);
func_8028F94C(4, sp24);
func_8038F350(this, func_8031FF1C(0x17) ? 4 : 3);
func_8038F350(this, fileProgressFlag_get(FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES) ? 4 : 3);
}
void func_8038EFD8(Actor *this) {
@@ -260,18 +260,18 @@ void func_8038F250(Actor *this){
if( (this->unkF4_8 >= 2)
&& (local->unk4 > 0)
&& !func_8038EB58(this)
&& !func_8031FF1C(0xDF)
&& !fileProgressFlag_get(FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES)
) {
if (func_80311480(0xF7C, 2, NULL, NULL, NULL, NULL)) {
func_80320004(0xDF, TRUE);
fileProgressFlag_set(FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES, TRUE);
}
} else if ((this->unkF4_8 >= 3)
&& (local->unk4 >= 2)
&& !func_8038EB58(this)
&& !func_8031FF1C(0xE0)
&& !fileProgressFlag_get(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES)
){
if(func_80311480(0xF7D, 2, NULL, NULL, NULL, NULL)) {
func_80320004(0xE0, TRUE);
fileProgressFlag_set(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES, TRUE);
}
}
}
@@ -300,13 +300,13 @@ void func_8038F350(Actor *this, s32 next_state){
func_803115C4(0xF80);
func_803115C4(0xF7F);
if (item_getCount(ITEM_26_JIGGY_TOTAL) > 0) {
func_80311480(func_8031FF1C(0x16) ? 0xF5A : 0xF59, 6, sp50, this->marker, func_8038F078, NULL);
func_80320004(0x17, 1);
func_80311480(fileProgressFlag_get(FILEPROG_16_STOOD_ON_JIGSAW_PODIUM) ? 0xF5A : 0xF59, 6, sp50, this->marker, func_8038F078, NULL);
fileProgressFlag_set(FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES, 1);
} else {
func_80311480(0xF58, 6, sp50, this->marker, func_8038F078, NULL);
}
func_80320004(0x16, 1);
func_80320004(0xA7, 1);
fileProgressFlag_set(FILEPROG_16_STOOD_ON_JIGSAW_PODIUM, 1);
fileProgressFlag_set(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 1);
break;
case 8: //L8038F4AC
@@ -317,7 +317,7 @@ void func_8038F350(Actor *this, s32 next_state){
func_8038F1EC(this, temp_s1, 0);
local->unk4--;
local->unk0 &= ~(1 << temp_s1);
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1);
fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_803463F4(ITEM_26_JIGGY_TOTAL, 1);
}
break;
@@ -330,7 +330,7 @@ void func_8038F350(Actor *this, s32 next_state){
temp_s1 = func_8038F0EC(this);
func_8038F1EC(this, temp_s1, 1);
local->unk0 |= (1 << temp_s1);
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1);
fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_803463F4(ITEM_26_JIGGY_TOTAL, -1);
func_8038F250(this);
}
@@ -353,7 +353,7 @@ void func_8038F350(Actor *this, s32 next_state){
local->unk0 |= (1 << temp_s1);
func_803463F4(ITEM_26_JIGGY_TOTAL, -1);
}
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1);
fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_8038F250(this);
}
break;
@@ -391,12 +391,12 @@ void lair_func_8038F894(Actor *this, s32 arg1) {
return;
}
func_8025A70C(COMUSIC_2C_BUZZER);
if (func_8031FF1C(0xDE) != 0) {
if (fileProgressFlag_get(FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES) != 0) {
func_8038F350(this, 1);
return;
}
func_80311480(0xFBC, 4, NULL, NULL, NULL, NULL);
func_80320004(0xDE, 1);
fileProgressFlag_set(FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES, 1);
}
void lair_func_8038F924(Actor *this) {
@@ -417,7 +417,7 @@ void lair_func_8038F924(Actor *this) {
if (!this->unk16C_4) {
// temp_v0 = &D_803947F8[this->unkF4_8 - 1];
sp64 = func_8031FF44(D_803947F8[this->unkF4_8 - 1].unk2, D_803947F8[this->unkF4_8 - 1].unk1);
sp64 = fileProgressFlag_getN(D_803947F8[this->unkF4_8 - 1].progress_flag, D_803947F8[this->unkF4_8 - 1].size_bits);
local->unk0 = 0;
local->unk4 = 0;
local->unk8 = (func_8038ECA8(this->marker)) ? 0xff : 1;
@@ -432,11 +432,11 @@ void lair_func_8038F924(Actor *this) {
this->unk16C_4 = TRUE;
if (this->unkF4_8 == 9) {
this->unk1C[0] = 8.0f;
if (!func_8031FF1C(0x53)) {
if (!fileProgressFlag_get(FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED)) {
marker_despawn(this->marker);
return;
}
if (!func_8031FF1C(0x54)) {
if (!fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) {
func_802C9334(0x20, this);
func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF);
func_80324D2C(2.1f, COMUSIC_43_ENTER_LEVEL_GLITTER);
@@ -445,7 +445,7 @@ void lair_func_8038F924(Actor *this) {
}
}
if ((this->unkF4_8 == 9) && !func_8031FF1C(0x54)) {
if ((this->unkF4_8 == 9) && !fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) {
this->yaw += this->unk1C[0];
while(this->yaw >= 360.0f){
this->yaw -= 360.0f;
@@ -477,13 +477,13 @@ void lair_func_8038F924(Actor *this) {
this->unk138_24 = TRUE;
}
if (func_80329530(this, 300)) {
if ((this->unkF4_8 == 0xA) && !func_8031FF1C(0xF6)) {
phi_a0 = (item_getCount(ITEM_26_JIGGY_TOTAL) < D_803947F8[this->unkF4_8 - 1].unk0) ? 0xFAB : 0xFC0;
if ((this->unkF4_8 == 0xA) && !fileProgressFlag_get(FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM)) {
phi_a0 = (item_getCount(ITEM_26_JIGGY_TOTAL) < D_803947F8[this->unkF4_8 - 1].cost) ? 0xFAB : 0xFC0;
if (func_80311480(phi_a0, 0, NULL, NULL, NULL, NULL)) {
func_80320004(0xF6, TRUE);
fileProgressFlag_set(FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM, TRUE);
}
} else if (this->unkF4_8 == 1) {
func_8035644C(0xA7);
func_8035644C(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
}
}
if (func_8038ECA8(this->marker) && this->unk138_24 && !func_8038EB58(this) && (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT)) {
@@ -497,7 +497,7 @@ void lair_func_8038F924(Actor *this) {
lair_func_8038F894(this, 5);
} else if (sp7C[FACE_BUTTON(BUTTON_B)] == 1) {
func_8038F350(this, 1);
} else if ((sp6C[0] == 1) && func_8031FF1C(0xE0)) {
} else if ((sp6C[SIDE_BUTTON(BUTTON_Z)] == 1) && fileProgressFlag_get(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES)) {
lair_func_8038F894(this, 6);
} else if (sp7C[FACE_BUTTON(BUTTON_C_DOWN)] == 1) {
if (local->unk4) {

View File

@@ -28,7 +28,7 @@ s32 func_80390084(void) {
s32 phi_s1;
for(phi_s0 = 0, phi_s1 = 0; phi_s0 < 3; phi_s0++){
if (func_8031FF1C(phi_s0 + 0xAD)) {
if (fileProgressFlag_get(phi_s0 + 0xAD)) {
phi_s1++;
}
}
@@ -44,8 +44,8 @@ void func_803900EC(ActorMarker *marker, enum asset_e text_id, s32 arg2){
sp1C = marker->unk14_20 - 0x16D;
func_8028F918(0);
if (!func_8031FF1C(sp1C + 0xAD)) {
func_80320004(sp1C + 0xAD, 1);
if (!fileProgressFlag_get(sp1C + 0xAD)) {
fileProgressFlag_set(sp1C + 0xAD, 1);
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
}
}
@@ -63,7 +63,7 @@ void func_80390174(ActorMarker *marker, s32 arg1) {
this = marker_getActor(marker);
sp28 = this->marker->unk14_20 - 0x16D;
func_8028F94C(2, this->position);
if (func_8031FF1C(sp28 + 0xAD)) {
if (fileProgressFlag_get(sp28 + 0xAD)) {
func_80311480(sp28 + 0xF83, 0xE, this->position, this->marker, func_803900EC, lair_func_803900DC);
return;
}
@@ -106,7 +106,7 @@ void func_803902B8(Actor *this) {
}
this->unk38_0 = sp58;
sp58 = func_80259384(this->position, sp5C, 400.0f);
if (func_8031FF1C(sp54 + 0xAD)) {
if (fileProgressFlag_get(sp54 + 0xAD)) {
func_8024E55C(0, sp3C);
sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04();
}

View File

@@ -73,7 +73,7 @@ void func_803920E0(Actor *this, enum sfx_e sfx_id, f32 arg2, f32 arg3, s32 arg4,
void func_8039217C(Actor *this) {
if (!this->initialized) {
this->initialized = TRUE;
if (func_8031FF1C(0xA6)) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
return;
}

View File

@@ -53,13 +53,13 @@ void func_80392690(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void func_80392700(Actor *this) {
if (mapSpecificFlags_get(4)) {
if (func_8031FF1C(0xF4)) {
if (fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE)) {
func_80311480(0x1031, 0xF, this->position, this->marker, func_80392664, func_80392610);
} else {
func_802BC280();
set_camera_to_node(0x1F);
func_80311480(0x102C, 0xE, this->position, this->marker, func_80392664, func_80392610);
func_80320004(0xF4, 1);
fileProgressFlag_set(FILEPROG_F4_ENTER_FF_CUTSCENE, TRUE);
}
mapSpecificFlags_set(4, 0);
}
@@ -91,13 +91,13 @@ void func_80392700(Actor *this) {
void func_80392918(Actor *this) {
if (!this->unk16C_4) {
if ((func_8031FF1C(0xF4) != 0) && (func_8028E4A4() == 2)) {
if (fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE) && (func_8028E4A4() == 2)) {
mapSpecificFlags_set(4, 1);
}
this->unk4C = 400.0f;
this->marker->unk2C_2 = FALSE;
this->unk16C_4 = TRUE;
if (func_8031FF1C(0xA6) != 0) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
}
return;

View File

@@ -31,7 +31,7 @@ void func_80392B6C(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
if (func_8031FF1C(0xA6) != 0) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
return;
}