document more vola flags

This commit is contained in:
mariob92
2024-09-08 17:59:41 +02:00
parent 35f93d5505
commit f451eae4e2
33 changed files with 184 additions and 172 deletions

View File

@@ -230,13 +230,13 @@ enum file_progress_e{
}; };
enum volatile_flags_e { enum volatile_flags_e {
VOLATILE_FLAG_0, // FFQ entered? VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ,
VOLATILE_FLAG_1, VOLATILE_FLAG_1, // FF related
VOLATILE_FLAG_2, VOLATILE_FLAG_2_FF_IN_MINIGAME,
VOLATILE_FLAG_3, VOLATILE_FLAG_3, // FF related
VOLATILE_FLAG_4, VOLATILE_FLAG_4, // FF related
VOLATILE_FLAG_5, VOLATILE_FLAG_5_FF_MINIGAME_WON,
VOLATILE_FLAG_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6, VOLATILE_FLAG_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME,
VOLATILE_FLAG_7_HAS_SEEN_VILE_FF_MINIGAME, VOLATILE_FLAG_7_HAS_SEEN_VILE_FF_MINIGAME,
VOLATILE_FLAG_8_HAS_SEEN_MATCHING_PYRAMID_FF_MINIGAME, VOLATILE_FLAG_8_HAS_SEEN_MATCHING_PYRAMID_FF_MINIGAME,
VOLATILE_FLAG_9_HAS_SEEN_ZUBBAS_FF_MINIGAME, VOLATILE_FLAG_9_HAS_SEEN_ZUBBAS_FF_MINIGAME,
@@ -249,7 +249,7 @@ enum volatile_flags_e {
VOLATILE_FLAG_10, VOLATILE_FLAG_10,
VOLATILE_FLAG_11, VOLATILE_FLAG_11,
VOLATILE_FLAG_12, VOLATILE_FLAG_12,
VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT = 0x13, VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT,
VOLATILE_FLAG_14, VOLATILE_FLAG_14,
VOLATILE_FLAG_15, VOLATILE_FLAG_15,
VOLATILE_FLAG_16, VOLATILE_FLAG_16,
@@ -326,22 +326,29 @@ enum volatile_flags_e {
VOLATILE_FLAG_9B_SANDCASTLE_BOTTLES_BONUS_5, VOLATILE_FLAG_9B_SANDCASTLE_BOTTLES_BONUS_5,
VOLATILE_FLAG_9C_SANDCASTLE_BOTTLES_BONUS_6, VOLATILE_FLAG_9C_SANDCASTLE_BOTTLES_BONUS_6,
VOLATILE_FLAG_9D_SANDCASTLE_WISHY_WASHY, VOLATILE_FLAG_9D_SANDCASTLE_WISHY_WASHY,
VOLATILE_FLAG_9E_BETA_OILY_SCUM,
VOLATILE_FLAG_A0 = 0xA0, VOLATILE_FLAG_9F_BETA_DIVE_IN_ICY_WATER,
VOLATILE_FLAG_A1, VOLATILE_FLAG_A0_FF_FIRST_ANSWER_RIGHT,
VOLATILE_FLAG_A2, VOLATILE_FLAG_A1_FF_NEXT_ANSWER_RIGHT,
VOLATILE_FLAG_A3, VOLATILE_FLAG_A2_FF_GRUNTY_ANSWER_RIGHT,
VOLATILE_FLAG_A4, VOLATILE_FLAG_A3_FF_FIRST_ANSWER_WRONG,
VOLATILE_FLAG_A5, VOLATILE_FLAG_A4_FF_NEXT_ANSWER_WRONG,
VOLATILE_FLAG_A6, VOLATILE_FLAG_A5_FF_UNUSED,
VOLATILE_FLAG_A7, VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB,
VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE,
VOLATILE_FLAG_AC = 0xAC, VOLATILE_FLAG_A8_FF_GOT_JOKER,
VOLATILE_FLAG_AD, VOLATILE_FLAG_A9_FF_USED_JOKER,
VOLATILE_FLAG_AA_FF_LOW_HEALTH,
VOLATILE_FLAG_AB_LAST_LIFE_ON_SKULL,
VOLATILE_FLAG_AC_GV_TRAPDOOR_MISSED,
VOLATILE_FLAG_AD_MMM_CHURCH_DOOR_MISSED,
VOLATILE_FLAG_AE_BGS_WALKWAY_JIGGY_MISSED,
VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED,
VOLATILE_FLAG_B0_NOT_ENOUGH_NOTES,
VOLATILE_FLAG_B2 = 0xB2, VOLATILE_FLAG_B2 = 0xB2,
VOLATILE_FLAG_B3, VOLATILE_FLAG_B3,
VOLATILE_FLAG_B4, VOLATILE_FLAG_B4,
VOLATILE_FLAG_B5,
VOLATILE_FLAG_BB = 0xBB, VOLATILE_FLAG_BB = 0xBB,
VOLATILE_FLAG_BC, VOLATILE_FLAG_BC,
@@ -351,9 +358,10 @@ enum volatile_flags_e {
VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE = 0xC0, VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE = 0xC0,
VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE, VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE,
VOLATILE_FLAG_C2_UNUSED, VOLATILE_FLAG_C2_NOBONUS_TEXT,
VOLATILE_FLAG_C3, // SNS picture related VOLATILE_FLAG_C3, // SNS picture related
VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE,
VOLATILE_FLAG_C5_WISHYWASHYBANJO_TEXT
}; };
enum level_flags_e enum level_flags_e

View File

@@ -111,10 +111,10 @@ void func_80388848(ActorMarker *this){
if(sp1C != ++unqPtr->unk0) if(sp1C != ++unqPtr->unk0)
return; return;
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
item_set(ITEM_6_HOURGLASS,0); item_set(ITEM_6_HOURGLASS,0);
volatileFlag_set(VOLATILE_FLAG_3,0); volatileFlag_set(VOLATILE_FLAG_3,0);
volatileFlag_set(VOLATILE_FLAG_5,1); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON,1);
} }
else{ else{
BGS_func_80388660(thisActor->marker); BGS_func_80388660(thisActor->marker);
@@ -173,12 +173,12 @@ void BGS_func_803888E4(Actor *this, s32 arg1){
}//L80388B7C }//L80388B7C
timed_exitStaticCamera(tmpf += 2.5); timed_exitStaticCamera(tmpf += 2.5);
if(!unqPtr->unkA && !volatileFlag_get(VOLATILE_FLAG_2)){ if(!unqPtr->unkA && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
func_80324DBC(tmpf + 0.5, 0xc73, 0xe, this->position, this->marker, func_80388784, 0); func_80324DBC(tmpf + 0.5, 0xc73, 0xe, this->position, this->marker, func_80388784, 0);
unqPtr->unkA = 1; unqPtr->unkA = 1;
} }
func_80324E38(sp54 = tmpf + 0.6, 0); func_80324E38(sp54 = tmpf + 0.6, 0);
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
timedFunc_set_1(sp54, (GenFunction_1)func_803886F4, reinterpret_cast(s32, this->marker)); timedFunc_set_1(sp54, (GenFunction_1)func_803886F4, reinterpret_cast(s32, this->marker));
}else{ }else{
this->state = 0x05; this->state = 0x05;
@@ -243,7 +243,7 @@ void func_80388E94(ActorMarker *this, s32 arg1){
else{ else{
func_8028F55C(1, thisActor->marker); func_8028F55C(1, thisActor->marker);
timedFunc_set_0(0.5f, BGS_func_80388760); timedFunc_set_0(0.5f, BGS_func_80388760);
if(!mapSpecificFlags_get(1) && !volatileFlag_get(VOLATILE_FLAG_2) && func_80311480(0xc75, 0, NULL, NULL, NULL, NULL)) if(!mapSpecificFlags_get(1) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && func_80311480(0xc75, 0, NULL, NULL, NULL, NULL))
mapSpecificFlags_set(1,TRUE); mapSpecificFlags_set(1,TRUE);
} }
} }
@@ -292,12 +292,12 @@ void func_80389080(Actor *this){
unqPtr->unkA = fileProgressFlag_getN(0,2); unqPtr->unkA = fileProgressFlag_getN(0,2);
unqPtr->unkB = 0; unqPtr->unkB = 0;
unqPtr->unkC = 0.0f; unqPtr->unkC = 0.0f;
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
unqPtr->unkA = 3; unqPtr->unkA = 3;
this->position_y = this->position_y - 300.0f; this->position_y = this->position_y - 300.0f;
} }
BGS_func_803888E4(this, 1); BGS_func_803888E4(this, 1);
if(jiggyscore_isSpawned(JIGGY_27_BGS_TIPTUP) && !volatileFlag_get(VOLATILE_FLAG_2) && !volatileFlag_get(VOLATILE_FLAG_1)) if(jiggyscore_isSpawned(JIGGY_27_BGS_TIPTUP) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && !volatileFlag_get(VOLATILE_FLAG_1))
marker_despawn(this->marker); marker_despawn(this->marker);
} }
else{ else{
@@ -312,7 +312,7 @@ void func_80389080(Actor *this){
func_80258A4C(this->position, this->yaw - 90.0f, player_position, &sp38, &sp34, &sp30); func_80258A4C(this->position, this->yaw - 90.0f, player_position, &sp38, &sp34, &sp30);
this->yaw = this->yaw + 5.0f*sp30; this->yaw = this->yaw + 5.0f*sp30;
if(this->state == 1){ if(this->state == 1){
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
if(volatileFlag_get(VOLATILE_FLAG_3)){ if(volatileFlag_get(VOLATILE_FLAG_3)){
func_80324E38(0.0f,0); func_80324E38(0.0f,0);
BGS_func_803888E4(this, 3); BGS_func_803888E4(this, 3);
@@ -325,11 +325,11 @@ void func_80389080(Actor *this){
} }
} }
if(this->state == 5){ if(this->state == 5){
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
if(item_empty(ITEM_0_HOURGLASS_TIMER)){ if(item_empty(ITEM_0_HOURGLASS_TIMER)){
item_set(ITEM_6_HOURGLASS,1); item_set(ITEM_6_HOURGLASS,1);
volatileFlag_set(VOLATILE_FLAG_3,0); volatileFlag_set(VOLATILE_FLAG_3,0);
volatileFlag_set(VOLATILE_FLAG_5,0); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON,0);
} }
} //L80389370 } //L80389370
else{ else{

View File

@@ -80,7 +80,7 @@ void func_80389668(Actor *this) {
local->tiptup_marker = NULL; local->tiptup_marker = NULL;
local->unk8 = 1.0f; local->unk8 = 1.0f;
func_80389488(this, 1); func_80389488(this, 1);
if (jiggyscore_isSpawned(JIGGY_27_BGS_TIPTUP) && !volatileFlag_get(VOLATILE_FLAG_2) && !volatileFlag_get(VOLATILE_FLAG_1)) { if (jiggyscore_isSpawned(JIGGY_27_BGS_TIPTUP) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && !volatileFlag_get(VOLATILE_FLAG_1)) {
marker_despawn(this->marker); marker_despawn(this->marker);
} }
return; return;

View File

@@ -362,7 +362,7 @@ void func_8038A068(Actor *this, s32 next_state) {
local->current_type = YUMBLIE; local->current_type = YUMBLIE;
local->player_score = 0; local->player_score = 0;
local->vile_score = 0; local->vile_score = 0;
if (volatileFlag_get(VOLATILE_FLAG_2) != 0) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) != 0) {
local->type_change_timer = 5.0f; local->type_change_timer = 5.0f;
} else { } else {
local->type_change_timer = 10.0f; local->type_change_timer = 10.0f;
@@ -640,7 +640,7 @@ void chvilegame_update(Actor *this) {
local->unkC = 3; local->unkC = 3;
local->unkD = 3; local->unkD = 3;
} }
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
local->unkC = 2; local->unkC = 2;
local->unkD = 3; local->unkD = 3;
} }
@@ -651,7 +651,7 @@ void chvilegame_update(Actor *this) {
local->vile_marker = actorArray_findClosestActorFromActorId(this->position, 0x13A, -1, &sp4C)->marker; local->vile_marker = actorArray_findClosestActorFromActorId(this->position, 0x13A, -1, &sp4C)->marker;
} }
if (this->state == 1) { if (this->state == 1) {
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
if (volatileFlag_get(VOLATILE_FLAG_3)) { if (volatileFlag_get(VOLATILE_FLAG_3)) {
func_8038A068(this, 5); func_8038A068(this, 5);
} }
@@ -670,7 +670,7 @@ void chvilegame_update(Actor *this) {
if ((local->unkC == 3) || (local->unkC == 6)) { if ((local->unkC == 3) || (local->unkC == 6)) {
if (ml_timer_update(&local->type_change_timer, sp50)) { if (ml_timer_update(&local->type_change_timer, sp50)) {
local->current_type = !local->current_type; local->current_type = !local->current_type;
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
local->type_change_timer = 5.0f; local->type_change_timer = 5.0f;
} else { } else {
local->type_change_timer = 10.0f; local->type_change_timer = 10.0f;
@@ -691,9 +691,9 @@ void chvilegame_update(Actor *this) {
itemPrint_reset(); itemPrint_reset();
} }
if (item_empty(ITEM_6_HOURGLASS)) { if (item_empty(ITEM_6_HOURGLASS)) {
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, ( local->vile_score < local->player_score) ? TRUE : FALSE); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, ( local->vile_score < local->player_score) ? TRUE : FALSE);
func_8038A068(this, 1); func_8038A068(this, 1);
} else if (local->vile_score < local->player_score) { } else if (local->vile_score < local->player_score) {
if (local->unkC == 3) { if (local->unkC == 3) {

View File

@@ -41,7 +41,7 @@ void func_803865F4(Actor *this, s32 next_state) {
local = (ActorLocal_CCW_160 *)&this->local; local = (ActorLocal_CCW_160 *)&this->local;
local->unkC = 0.0f; local->unkC = 0.0f;
if (next_state == 2) { if (next_state == 2) {
if (!volatileFlag_getAndSet(0xB5, 1)) { if (!volatileFlag_getAndSet(VOLATILE_FLAG_B5, 1)) {
func_80311480(0xCE2, 4, NULL, this->marker, func_803865C4, NULL); func_80311480(0xCE2, 4, NULL, this->marker, func_803865C4, NULL);
} else { } else {
func_80311480(0xCE3, 4, NULL, NULL, NULL, NULL); func_80311480(0xCE3, 4, NULL, NULL, NULL, NULL);
@@ -57,10 +57,10 @@ void func_803865F4(Actor *this, s32 next_state) {
} }
if (next_state == 4) { if (next_state == 4) {
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
item_set(ITEM_6_HOURGLASS, FALSE); item_set(ITEM_6_HOURGLASS, FALSE);
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 1); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 1);
} else { } else {
func_80311480(0xCE4, 4, NULL, NULL, NULL, NULL); func_80311480(0xCE4, 4, NULL, NULL, NULL, NULL);
func_8025A58C(-1, 400); func_8025A58C(-1, 400);
@@ -133,7 +133,7 @@ void func_8038687C(Actor *this) {
local->unk4 = 0; local->unk4 = 0;
local->unk8 = 0; local->unk8 = 0;
local->unkC = 0.0f; local->unkC = 0.0f;
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
this->position_y -= 300.0f; this->position_y -= 300.0f;
} }
func_803865F4(this, 1); func_803865F4(this, 1);
@@ -141,7 +141,7 @@ void func_8038687C(Actor *this) {
} }
if ((s32)local->unk0 == 1) { if ((s32)local->unk0 == 1) {
other = actorArray_findActorFromActorId(0x46); other = actorArray_findActorFromActorId(0x46);
if(volatileFlag_get(VOLATILE_FLAG_2)) { if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
local->unk0 = NULL; local->unk0 = NULL;
if (other != NULL) { if (other != NULL) {
actor_collisionOff(other); actor_collisionOff(other);
@@ -198,7 +198,7 @@ void func_8038687C(Actor *this) {
local->unkC = randf2(0.5 - ((local->unk8 / 10) * 0.4), 1.0 - ((local->unk8 / 10) * 0.8)); local->unkC = randf2(0.5 - ((local->unk8 / 10) * 0.4), 1.0 - ((local->unk8 / 10) * 0.8));
} }
if (this->state == 1) { if (this->state == 1) {
if (volatileFlag_get(VOLATILE_FLAG_2) && volatileFlag_get(VOLATILE_FLAG_3)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && volatileFlag_get(VOLATILE_FLAG_3)) {
item_set(ITEM_6_HOURGLASS, 1); item_set(ITEM_6_HOURGLASS, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 1800 - 1); item_set(ITEM_0_HOURGLASS_TIMER, 1800 - 1);
func_803865F4(this, 3); func_803865F4(this, 3);
@@ -209,9 +209,9 @@ void func_8038687C(Actor *this) {
} }
} }
} }
if ((this->state == 3) && volatileFlag_get(VOLATILE_FLAG_2) && item_empty(ITEM_0_HOURGLASS_TIMER)) { if ((this->state == 3) && volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && item_empty(ITEM_0_HOURGLASS_TIMER)) {
item_set(ITEM_6_HOURGLASS, 0); item_set(ITEM_6_HOURGLASS, 0);
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 0); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 0);
} }
} }

View File

@@ -263,7 +263,7 @@ void func_8038E648(Actor *this){
func_8030E540(SFX_7F_HEAVYDOOR_SLAM); func_8030E540(SFX_7F_HEAVYDOOR_SLAM);
mapSpecificFlags_set(5, FALSE); mapSpecificFlags_set(5, FALSE);
func_80244C78(0); func_80244C78(0);
func_80356520(0xAC); volatileFlag_setAndTriggerDialog_0(VOLATILE_FLAG_AC_GV_TRAPDOOR_MISSED);
} }
break; break;
}//L8038E904: }//L8038E904:

View File

@@ -69,7 +69,7 @@ void __matchingGame_spawnJIggy(void){
void __matchingGame_setState(s32 next_state){ void __matchingGame_setState(s32 next_state){
if(next_state == 2){ if(next_state == 2){
item_set(ITEM_6_HOURGLASS, 1); item_set(ITEM_6_HOURGLASS, 1);
if(volatileFlag_get(VOLATILE_FLAG_2)) if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME))
item_set(ITEM_0_HOURGLASS_TIMER, 4499); item_set(ITEM_0_HOURGLASS_TIMER, 4499);
else else
item_set(ITEM_0_HOURGLASS_TIMER, 5999); item_set(ITEM_0_HOURGLASS_TIMER, 5999);
@@ -79,9 +79,9 @@ void __matchingGame_setState(s32 next_state){
} }
if(next_state == 3){ if(next_state == 3){
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 0); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 0);
} }
else{ else{
func_8028F66C(BS_INTR_F); func_8028F66C(BS_INTR_F);
@@ -89,9 +89,9 @@ void __matchingGame_setState(s32 next_state){
} }
if(next_state == 4){ if(next_state == 4){
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 1); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 1);
} }
else{ else{
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff);
@@ -120,7 +120,7 @@ void gv_matchingGame_init(void){
matchingGame.state = 0; matchingGame.state = 0;
if(map_get() == MAP_13_GV_MEMORY_GAME){ if(map_get() == MAP_13_GV_MEMORY_GAME){
if( !jiggyscore_isSpawned(JIGGY_40_GV_MATCHING_GAME) //jiggy is collected if( !jiggyscore_isSpawned(JIGGY_40_GV_MATCHING_GAME) //jiggy is collected
|| volatileFlag_get(VOLATILE_FLAG_2) //in FF minigame || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) //in FF minigame
){ ){
matchingGame.match_count = 0; matchingGame.match_count = 0;
matchingGame.tile_a = NULL; matchingGame.tile_a = NULL;
@@ -222,7 +222,7 @@ void gv_matchingGame_update(void){
}//L803907F0 }//L803907F0
if( matchingGame.state == 1 if( matchingGame.state == 1
&& volatileFlag_get(VOLATILE_FLAG_2) && volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
&& volatileFlag_get(VOLATILE_FLAG_3) && volatileFlag_get(VOLATILE_FLAG_3)
){ ){
__matchingGame_setState(2); __matchingGame_setState(2);

View File

@@ -358,7 +358,7 @@ void func_80388BDC(Actor *this) {
} }
this->unk38_31 = 0; this->unk38_31 = 0;
this->unk60 = 0.0f; this->unk60 = 0.0f;
func_80356520(0xAD); volatileFlag_setAndTriggerDialog_0(VOLATILE_FLAG_AD_MMM_CHURCH_DOOR_MISSED);
} }
break; break;
} }

View File

@@ -313,7 +313,7 @@ void RBB_func_8038CC9C(Actor *this, s32 new_state){
timed_playSfx(1.25f, SFX_6C_LOCKUP_CLOSING, 1.05f, 0x7d00); timed_playSfx(1.25f, SFX_6C_LOCKUP_CLOSING, 1.05f, 0x7d00);
timed_playSfx(1.35f, SFX_6C_LOCKUP_CLOSING, 1.0f, 0x7d00); timed_playSfx(1.35f, SFX_6C_LOCKUP_CLOSING, 1.0f, 0x7d00);
timed_playSfx(1.8f, SFX_6C_LOCKUP_CLOSING, 1.0f, 0x7d00); timed_playSfx(1.8f, SFX_6C_LOCKUP_CLOSING, 1.0f, 0x7d00);
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
item_set(ITEM_6_HOURGLASS, 1); item_set(ITEM_6_HOURGLASS, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 0x1067); item_set(ITEM_0_HOURGLASS_TIMER, 0x1067);
timed_exitStaticCamera(2.4f); timed_exitStaticCamera(2.4f);
@@ -360,10 +360,10 @@ void RBB_func_8038CC9C(Actor *this, s32 new_state){
func_8025A58C(-1, 0x190); func_8025A58C(-1, 0x190);
comusic_8025AB44(COMUSIC_62_RBB_BOOMBOX, 0, 0x190); comusic_8025AB44(COMUSIC_62_RBB_BOOMBOX, 0, 0x190);
func_8025AABC(COMUSIC_62_RBB_BOOMBOX); func_8025AABC(COMUSIC_62_RBB_BOOMBOX);
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
item_set(ITEM_6_HOURGLASS, 0); item_set(ITEM_6_HOURGLASS, 0);
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 1); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 1);
} }
else{//L8038D220 else{//L8038D220
timedFunc_set_3(0.0f, (GenFunction_3)chbossboombox_respawnJiggy, (s32)this->position_x, (s32)this->position_y, (s32)this->position_z); timedFunc_set_3(0.0f, (GenFunction_3)chbossboombox_respawnJiggy, (s32)this->position_x, (s32)this->position_y, (s32)this->position_z);
@@ -523,10 +523,10 @@ void func_8038D8BC(Actor *this){
RBB_func_8038CC9C(this, 7); RBB_func_8038CC9C(this, 7);
} }
if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !volatileFlag_get(VOLATILE_FLAG_2)) if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME))
marker_despawn(this->marker); marker_despawn(this->marker);
if(volatileFlag_get(VOLATILE_FLAG_2)) if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME))
chbossboombox_hideJiggy(); chbossboombox_hideJiggy();
if(volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){ if(volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
@@ -540,7 +540,7 @@ void func_8038D8BC(Actor *this){
player_getPosition(player_position); player_getPosition(player_position);
if(this->state == 1){ if(this->state == 1){
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
if(volatileFlag_get(VOLATILE_FLAG_3)){ if(volatileFlag_get(VOLATILE_FLAG_3)){
RBB_func_8038CC9C(this, 2); RBB_func_8038CC9C(this, 2);
} }
@@ -572,10 +572,10 @@ void func_8038D8BC(Actor *this){
}//L8038DC48 }//L8038DC48
if(this->state == 3 || this->state == 4){ if(this->state == 3 || this->state == 4){
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
if(item_empty(ITEM_0_HOURGLASS_TIMER)){ if(item_empty(ITEM_0_HOURGLASS_TIMER)){
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 0); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 0);
RBB_func_8038CC9C(this, 8); RBB_func_8038CC9C(this, 8);
} }
} }

View File

@@ -21,7 +21,7 @@ void chBossBoomBoxCtrl_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !volatileFlag_get(VOLATILE_FLAG_2)){ if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
marker_despawn(this->marker); marker_despawn(this->marker);
}else{ }else{
__spawnQueue_add_4((GenFunction_4)func_802C4140, ACTOR_281_BOSS_BOOM_BOX_LARGEST, reinterpret_cast(s32,this->position_x), reinterpret_cast(s32,this->position_y), reinterpret_cast(s32,this->position_z)); __spawnQueue_add_4((GenFunction_4)func_802C4140, ACTOR_281_BOSS_BOOM_BOX_LARGEST, reinterpret_cast(s32,this->position_x), reinterpret_cast(s32,this->position_y), reinterpret_cast(s32,this->position_z));

View File

@@ -116,7 +116,7 @@ void func_8038A23C( s32 arg0, BKVtxRef *vtx_ref, Vtx *vtx, s32 arg2){
void func_8038A258(s32 arg0) { void func_8038A258(s32 arg0) {
if (arg0 == 1) { if (arg0 == 1) {
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
item_set(ITEM_0_HOURGLASS_TIMER, 3000 - 1); item_set(ITEM_0_HOURGLASS_TIMER, 3000 - 1);
} else { } else {
item_set(ITEM_0_HOURGLASS_TIMER, 6000 - 1); item_set(ITEM_0_HOURGLASS_TIMER, 6000 - 1);
@@ -243,9 +243,9 @@ u32 cheatoCodeUnlocked(s32 cheato_code_index){
void func_8038ABA0(u32 arg0){ void func_8038ABA0(u32 arg0){
int i; int i;
func_80356520(0xC2); volatileFlag_setAndTriggerDialog_0(VOLATILE_FLAG_C2_NOBONUS_TEXT);
if(arg0 & 0x400){ if(arg0 & 0x400){
func_80356560(0xC5); volatileFlag_setAndTriggerDialog_E(VOLATILE_FLAG_C5_WISHYWASHYBANJO_TEXT);
} }
volatileFlag_set(VOLATILE_FLAG_78_SANDCASTLE_NO_BONUS, 0); volatileFlag_set(VOLATILE_FLAG_78_SANDCASTLE_NO_BONUS, 0);
for(i = 4; i < 0xb; i++){ for(i = 4; i < 0xb; i++){
@@ -269,7 +269,7 @@ void func_8038AC48(LetterFloorTile *arg0) {
s32 phi_s1; s32 phi_s1;
bool phi_s7; bool phi_s7;
temp_s5 = volatileFlag_get(VOLATILE_FLAG_2); temp_s5 = volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME);
phi_s7 = FALSE; phi_s7 = FALSE;
sp3C = func_8038BD10(arg0); sp3C = func_8038BD10(arg0);
for(i_ptr = codesTable; i_ptr->code != 0; i_ptr++){ for(i_ptr = codesTable; i_ptr->code != 0; i_ptr++){
@@ -311,7 +311,7 @@ void func_8038AC48(LetterFloorTile *arg0) {
if (temp_s5) { if (temp_s5) {
item_set(ITEM_6_HOURGLASS, FALSE); item_set(ITEM_6_HOURGLASS, FALSE);
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
volatileFlag_set(VOLATILE_FLAG_5, 1); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 1);
func_8038A258(2); func_8038A258(2);
} else { } else {
var_v0 = i_ptr->unk4; var_v0 = i_ptr->unk4;
@@ -366,7 +366,7 @@ void func_8038AFC8(void){
iPtr->unk6 = 0; iPtr->unk6 = 0;
} }
if(volatileFlag_get(VOLATILE_FLAG_2)) if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME))
strcpy(codesTable[0].code, "j4663n86pink"); //EIOOZAKOJNAB strcpy(codesTable[0].code, "j4663n86pink"); //EIOOZAKOJNAB
else else
strcpy(codesTable[0].code, "knip68n3664j"); //BANJOKAZOOIE strcpy(codesTable[0].code, "knip68n3664j"); //BANJOKAZOOIE
@@ -410,7 +410,7 @@ void func_8038B094(void){
func_803228D8(); func_803228D8();
timedFunc_set_3(2.0f, (GenFunction_3) func_802E4078, MAP_7_TTC_TREASURE_TROVE_COVE, 1, 0); timedFunc_set_3(2.0f, (GenFunction_3) func_802E4078, MAP_7_TTC_TREASURE_TROVE_COVE, 1, 0);
} }
else if(levelSpecificFlags_get(2) || volatileFlag_get(VOLATILE_FLAG_2)){ else if(levelSpecificFlags_get(2) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
func_8034E71C(sp2C, -500, 0.0f); func_8034E71C(sp2C, -500, 0.0f);
} }
else{ else{
@@ -437,7 +437,7 @@ void func_8038B094(void){
func_8038AFC8(); func_8038AFC8();
if( jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE) if( jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)
&& !volatileFlag_get(VOLATILE_FLAG_2) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
){ ){
BKModel_transformMesh(D_8038D720.model2, 0x3C, func_8038A23C, 0); BKModel_transformMesh(D_8038D720.model2, 0x3C, func_8038A23C, 0);
D_8038D720.unk8 = 3; D_8038D720.unk8 = 3;
@@ -461,14 +461,14 @@ void func_8038B2F0(void) {
if (D_8038D720.model1 != 0) { if (D_8038D720.model1 != 0) {
func_8038AA2C(); func_8038AA2C();
player_getPosition(sp2C); player_getPosition(sp2C);
if ((D_8038D720.unk10 == 0) && volatileFlag_get(VOLATILE_FLAG_2) && volatileFlag_get(VOLATILE_FLAG_3)) { if ((D_8038D720.unk10 == 0) && volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && volatileFlag_get(VOLATILE_FLAG_3)) {
func_8038A258(1); func_8038A258(1);
} }
if ((D_8038D720.unk10 == 1) && item_empty(ITEM_0_HOURGLASS_TIMER)) { if ((D_8038D720.unk10 == 1) && item_empty(ITEM_0_HOURGLASS_TIMER)) {
func_8038A258(2); func_8038A258(2);
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
volatileFlag_set(VOLATILE_FLAG_3, FALSE); volatileFlag_set(VOLATILE_FLAG_3, FALSE);
volatileFlag_set(VOLATILE_FLAG_5, FALSE); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, FALSE);
} else { } else {
func_8028F66C(BS_INTR_F); func_8028F66C(BS_INTR_F);
} }
@@ -483,7 +483,7 @@ void func_8038B2F0(void) {
temp_v0_3 = func_8038A2DC(mesh_id); temp_v0_3 = func_8038A2DC(mesh_id);
if ((temp_v0_3 != NULL) && ((temp_v0_3->unk3 == 2) || (D_8038D720.unk8 == 3))) { if ((temp_v0_3 != NULL) && ((temp_v0_3->unk3 == 2) || (D_8038D720.unk8 == 3))) {
func_8038AC48(temp_v0_3); func_8038AC48(temp_v0_3);
if ((D_8038D720.unk8 == 0) && (D_8038D720.unk10 == 0) && (volatileFlag_get(VOLATILE_FLAG_2) == 0)) { if ((D_8038D720.unk8 == 0) && (D_8038D720.unk10 == 0) && (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) == 0)) {
func_8038A258(1); func_8038A258(1);
} }
} }

View File

@@ -57,7 +57,7 @@ void animCache_flushAll(void){
for(i = 0; i<340; i++){ for(i = 0; i<340; i++){
if(D_80379E20[i].alive){ if(D_80379E20[i].alive){
volatileFlag_get(VOLATILE_FLAG_0); volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ);
D_80379E20[i].life = 0; D_80379E20[i].life = 0;
boneTransformList_free(D_80379E20[i].bone_xform); boneTransformList_free(D_80379E20[i].bone_xform);
D_80379E20[i].bone_xform = NULL; D_80379E20[i].bone_xform = NULL;

View File

@@ -583,10 +583,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
return; return;
if( map_get() == MAP_8E_GL_FURNACE_FUN if( map_get() == MAP_8E_GL_FURNACE_FUN
&& volatileFlag_get(VOLATILE_FLAG_0) && volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE) && !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){ ){
func_80356540(FILEPROG_A6_FURNACE_FUN_COMPLETE); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB);
func_8030E6D4(SFX_126_AUDIENCE_BOOING); func_8030E6D4(SFX_126_AUDIENCE_BOOING);
} }
@@ -695,10 +695,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(__baMarker_8028BC20(marker)) if(__baMarker_8028BC20(marker))
return; return;
if( map_get() == MAP_8E_GL_FURNACE_FUN if( map_get() == MAP_8E_GL_FURNACE_FUN
&& volatileFlag_get(VOLATILE_FLAG_0) && volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE) && !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){ ){
func_80356540(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE);
func_8030E6D4(SFX_127_AUDIENCE_MIXED); func_8030E6D4(SFX_127_AUDIENCE_MIXED);
} }
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF); func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
@@ -715,7 +715,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(ability_isUnlocked(ABILITY_D_SHOCK_JUMP)){ if(ability_isUnlocked(ABILITY_D_SHOCK_JUMP)){
miscflag_set(MISC_FLAG_2_ON_SPRING_PAD); miscflag_set(MISC_FLAG_2_ON_SPRING_PAD);
}else{ }else{
if(!volatileFlag_getAndSet(0xC, 1)){ if(!volatileFlag_getAndSet(VOLATILE_FLAG_C, 1)){
func_80311480(0xA24, 4, 0, 0, 0, 0); func_80311480(0xA24, 4, 0, 0, 0, 0);
} }
} }
@@ -727,7 +727,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(ability_isUnlocked(ABILITY_9_FLIGHT)){ if(ability_isUnlocked(ABILITY_9_FLIGHT)){
miscflag_set(MISC_FLAG_1_ON_FLIGHT_PAD); miscflag_set(MISC_FLAG_1_ON_FLIGHT_PAD);
} }
else if(! volatileFlag_getAndSet(0xD, 1)){ else if(! volatileFlag_getAndSet(VOLATILE_FLAG_D, 1)){
func_80311480(0xA25, 4, 0, 0, 0, 0); func_80311480(0xA25, 4, 0, 0, 0, 0);
} }
break; break;

View File

@@ -77,7 +77,7 @@ void func_802D77D4(Actor *this) {
ml_vec3f_diff_copy(sp4C, this->position, sp40); ml_vec3f_diff_copy(sp4C, this->position, sp40);
if (((sp4C[0] * sp4C[0]) + (sp4C[2] * sp4C[2])) < (sp3C * sp3C)) { if (((sp4C[0] * sp4C[0]) + (sp4C[2] * sp4C[2])) < (sp3C * sp3C)) {
if ((this->position[1] < sp40[1]) && (sp40[1] <= local->unk0[1])) { if ((this->position[1] < sp40[1]) && (sp40[1] <= local->unk0[1])) {
if (volatileFlag_get(VOLATILE_FLAG_2) == 0) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) == 0) {
func_8028F738(this->position, local->unk0, (f32)this->unkF4_8, local->unkC); func_8028F738(this->position, local->unk0, (f32)this->unkF4_8, local->unkC);
} }
} }

View File

@@ -246,7 +246,7 @@ void chCrab_update(Actor *this) {
if (!jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)) { if (!jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)) {
mapSpecificFlags_set(1, 0); mapSpecificFlags_set(1, 0);
} }
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
@@ -279,7 +279,7 @@ void chCrab_update(Actor *this) {
if (map_get() == MAP_A_TTC_SANDCASTLE) { if (map_get() == MAP_A_TTC_SANDCASTLE) {
if( !mapSpecificFlags_get(0) if( !mapSpecificFlags_get(0)
&& levelSpecificFlags_get(2) && levelSpecificFlags_get(2)
&& !volatileFlag_get(VOLATILE_FLAG_2) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
&& !jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE) && !jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)
&& func_80329530(this, 1600) && func_80329530(this, 1600)
) { ) {

View File

@@ -1,6 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "enums.h"
extern void func_802BE720(void); extern void func_802BE720(void);
extern f32 func_8033A244(f32); extern f32 func_8033A244(f32);
@@ -71,7 +72,7 @@ void func_802C7B6C(u32 arg0){
mapSpecificFlags_set(arg0, 0); mapSpecificFlags_set(arg0, 0);
} }
void func_802C7B8C(Actor *this, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6){ void func_802C7B8C(Actor *this, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, enum volatile_flags_e arg6){
if( !mapSpecificFlags_get(arg1) if( !mapSpecificFlags_get(arg1)
&& mapSpecificFlags_get(arg2) && mapSpecificFlags_get(arg2)
&& item_getCount(ITEM_0_HOURGLASS_TIMER) == 0 && item_getCount(ITEM_0_HOURGLASS_TIMER) == 0
@@ -79,7 +80,7 @@ void func_802C7B8C(Actor *this, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5
func_8028FCC8(1); func_8028FCC8(1);
actor_collisionOff(this); actor_collisionOff(this);
func_802BAFE4(arg3); func_802BAFE4(arg3);
func_80356520(arg6); volatileFlag_setAndTriggerDialog_0(arg6);
timedFunc_set_4(0.6f, (GenFunction_4)func_802C7AF8, (s32)this->position[0], (s32)this->position[1], (s32)this->position[2], arg4); timedFunc_set_4(0.6f, (GenFunction_4)func_802C7AF8, (s32)this->position[0], (s32)this->position[1], (s32)this->position[2], arg4);
timedFunc_set_2(0.6f, (GenFunction_2)func_802C7AB0, (s32)this->marker, arg5); timedFunc_set_2(0.6f, (GenFunction_2)func_802C7AB0, (s32)this->marker, arg5);
timedFunc_set_0(1.0f, (GenFunction_0)func_802BE720); timedFunc_set_0(1.0f, (GenFunction_0)func_802BE720);
@@ -174,10 +175,10 @@ void chjiggy_update(Actor *this){
chjiggy_updateRotation(this); chjiggy_updateRotation(this);
switch(chjiggy_getJiggyId(this)){ switch(chjiggy_getJiggyId(this)){
case JIGGY_20_BGS_ELEVATED_WALKWAY: //L802C7FE8 case JIGGY_20_BGS_ELEVATED_WALKWAY: //L802C7FE8
func_802C7B8C(this, 4, 3, 0xD, 5, 2, 0xae); func_802C7B8C(this, 4, 3, 0xD, 5, 2, VOLATILE_FLAG_AE_BGS_WALKWAY_JIGGY_MISSED);
break; break;
case JIGGY_25_BGS_MAZE://L802C8018 case JIGGY_25_BGS_MAZE://L802C8018
func_802C7B8C(this, 0xd, 0xc, 0x1e, 9, 0xb, 0xaf); func_802C7B8C(this, 0xd, 0xc, 0x1e, 9, 0xb, VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED);
break; break;
case JIGGY_2F_FP_XMAS_TREE://L802C8048 case JIGGY_2F_FP_XMAS_TREE://L802C8048
if(levelSpecificFlags_get(0x29)) if(levelSpecificFlags_get(0x29))

View File

@@ -336,7 +336,7 @@ void func_8029B85C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
} }
void func_8029B890(void){ void func_8029B890(void){
if(!fileProgressFlag_get(FILEPROG_A8_HAS_DIED) && !volatileFlag_get(VOLATILE_FLAG_2)){ if(!fileProgressFlag_get(FILEPROG_A8_HAS_DIED) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
func_803114D0(); func_803114D0();
if(bs_getState() == 0x54){ if(bs_getState() == 0x54){
func_8029B62C(); func_8029B62C();

View File

@@ -341,7 +341,7 @@ void func_802BC2CC(s32 arg0) {
if (volatileFlag_get(VOLATILE_FLAG_E) != 0) { if (volatileFlag_get(VOLATILE_FLAG_E) != 0) {
func_80347A14(0); func_80347A14(0);
} }
if (volatileFlag_getAndSet(0xE, 0) || func_802D686C() || (arg0 == 0x63) || !func_802BB720(arg0, D_8037D908, D_8037D918, &sp1C)) { if (volatileFlag_getAndSet(VOLATILE_FLAG_E, 0) || func_802D686C() || (arg0 == 0x63) || !func_802BB720(arg0, D_8037D908, D_8037D918, &sp1C)) {
if (ncCameraType == CAMERA_TYPE_2_DYNAMIC) { if (ncCameraType == CAMERA_TYPE_2_DYNAMIC) {
func_802BE794(); func_802BE794();
} }

View File

@@ -14,7 +14,7 @@ void chextralife_update(Actor *this){
if(!this->initialized){ if(!this->initialized){
func_8032AA58(this, 0.8f); func_8032AA58(this, 0.8f);
this->initialized = TRUE; this->initialized = TRUE;
if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
marker_despawn(this->marker); marker_despawn(this->marker);
} }
} }

View File

@@ -105,7 +105,7 @@ void chHoneycomb_update(Actor *this){
local->uid = (!this->unk44_2)? D_8037DDC0 : func_802C9C40(this); local->uid = (!this->unk44_2)? D_8037DDC0 : func_802C9C40(this);
if( honeycombscore_get(local->uid) if( honeycombscore_get(local->uid)
|| volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1)
|| volatileFlag_get(VOLATILE_FLAG_2) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
){ ){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;

View File

@@ -574,7 +574,7 @@ void func_802D4680(Actor *this){
if(func_80258640(this->position, sp1C) < 150.0f && func_8028F20C()){ if(func_80258640(this->position, sp1C) < 150.0f && func_8028F20C()){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){ if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if(map_get() == MAP_8E_GL_FURNACE_FUN){ if(map_get() == MAP_8E_GL_FURNACE_FUN){
volatileFlag_set(VOLATILE_FLAG_0, 0); volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, 0);
func_802D4614(MAP_80_GL_FF_ENTRANCE); func_802D4614(MAP_80_GL_FF_ENTRANCE);
} }
else{ else{

View File

@@ -70,7 +70,7 @@ void func_802E0B10(Actor *this){
} }
if( mumboscore_get(local->uid) if( mumboscore_get(local->uid)
|| volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1)
|| volatileFlag_get(VOLATILE_FLAG_2) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
|| volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
){ ){
marker_despawn(this->marker); marker_despawn(this->marker);

View File

@@ -265,7 +265,7 @@ void func_802E3E7C(enum game_mode_e mode){
sp28 = D_8037E8E0.exit; sp28 = D_8037E8E0.exit;
prev_mode = D_8037E8E0.unk0; prev_mode = D_8037E8E0.unk0;
func_802E3BF8(GAME_MODE_2_UNKNOWN, 0); func_802E3BF8(GAME_MODE_2_UNKNOWN, 0);
if(!volatileFlag_getAndSet(0x21, 0) || map_getLevel(map_get()) == map_getLevel(D_8037E8E0.map)){ if(!volatileFlag_getAndSet(VOLATILE_FLAG_21, 0) || map_getLevel(map_get()) == map_getLevel(D_8037E8E0.map)){
if(!volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) if(!volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE))
mapSavestate_save(map_get()); mapSavestate_save(map_get());
} }

View File

@@ -136,7 +136,7 @@ void __chMinigame_setState(Actor *this, u32 arg1) {
volatileFlag_set(VOLATILE_FLAG_4, 1); volatileFlag_set(VOLATILE_FLAG_4, 1);
func_8028F918(2); func_8028F918(2);
func_8025AB00(); func_8025AB00();
func_8025A70C((volatileFlag_get(VOLATILE_FLAG_5)) ? COMUSIC_3B_MINIGAME_VICTORY : COMUSIC_3C_MINIGAME_LOSS); func_8025A70C((volatileFlag_get(VOLATILE_FLAG_5_FF_MINIGAME_WON)) ? COMUSIC_3B_MINIGAME_VICTORY : COMUSIC_3C_MINIGAME_LOSS);
func_802E4A70(); func_802E4A70();
volatileFlag_set(VOLATILE_FLAG_21, TRUE); volatileFlag_set(VOLATILE_FLAG_21, TRUE);
timedFunc_set_3(2.0f, (GenFunction_3)func_802E4078, MAP_8E_GL_FURNACE_FUN, 1, 1); timedFunc_set_3(2.0f, (GenFunction_3)func_802E4078, MAP_8E_GL_FURNACE_FUN, 1, 1);
@@ -154,7 +154,7 @@ void chMinigame_update(Actor *this){
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->unk10_12 = __chminigame_getCurrentMapId(); this->unk10_12 = __chminigame_getCurrentMapId();
actor_collisionOff(this); actor_collisionOff(this);
if(!volatileFlag_get(VOLATILE_FLAG_2)){ if(!volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
func_8031A678(this); func_8031A678(this);
return; return;
} }
@@ -169,12 +169,12 @@ void chMinigame_update(Actor *this){
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
volatileFlag_set(VOLATILE_FLAG_5, 0); volatileFlag_set(VOLATILE_FLAG_5_FF_MINIGAME_WON, 0);
volatileFlag_set(VOLATILE_FLAG_3, 0); volatileFlag_set(VOLATILE_FLAG_3, 0);
__chMinigame_setState(this, MINIGAME_STATE_1_INTRODUCE_GAME); __chMinigame_setState(this, MINIGAME_STATE_1_INTRODUCE_GAME);
gcpausemenu_80314AC8(0); gcpausemenu_80314AC8(0);
} }
if(volatileFlag_get(VOLATILE_FLAG_2)){ if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
switch(this->state){ switch(this->state){
case MINIGAME_STATE_1_INTRODUCE_GAME://L8031AB2C case MINIGAME_STATE_1_INTRODUCE_GAME://L8031AB2C
if(this->unk138_24) if(this->unk138_24)

View File

@@ -297,7 +297,7 @@ void warp_gvEnterMatchingPyramid(s32 arg0, s32 arg1) {
void warp_gvEnterWaterPyramidUpper(s32 arg0, s32 arg1) { void warp_gvEnterWaterPyramidUpper(s32 arg0, s32 arg1) {
func_80244C78(0); func_80244C78(0);
volatileFlag_set(VOLATILE_FLAG_AC, 1); volatileFlag_set(VOLATILE_FLAG_AC_GV_TRAPDOOR_MISSED, 1);
func_8031CC8C(arg0, 0x1502); func_8031CC8C(arg0, 0x1502);
} }
@@ -534,7 +534,7 @@ void func_8031DAA8(s32 arg0, s32 arg1) {
void func_8031DAE0(s32 arg0, s32 arg1) { void func_8031DAE0(s32 arg0, s32 arg1) {
if (mapSpecificFlags_get(2) == 0) { if (mapSpecificFlags_get(2) == 0) {
volatileFlag_set(VOLATILE_FLAG_AD, 1); volatileFlag_set(VOLATILE_FLAG_AD_MMM_CHURCH_DOOR_MISSED, 1);
func_80244C78(0); func_80244C78(0);
mapSpecificFlags_set(2, 1); mapSpecificFlags_set(2, 1);
func_8025A6EC(COMUSIC_3B_MINIGAME_VICTORY, 0x6D60); func_8025A6EC(COMUSIC_3B_MINIGAME_VICTORY, 0x6D60);

View File

@@ -37,7 +37,7 @@ void func_803216D0(enum map_e map){
levelSpecificFlags_clear(); levelSpecificFlags_clear();
bsStoredState_clearTimers(); bsStoredState_clearTimers();
func_803219A8(); func_803219A8();
if( volatileFlag_getAndSet(0x17, FALSE) if( volatileFlag_getAndSet(VOLATILE_FLAG_17, FALSE)
&& getGameMode() != 0 && getGameMode() != 0
&& D_80383300.level != LEVEL_D_CUTSCENE && D_80383300.level != LEVEL_D_CUTSCENE
&& map != MAP_91_FILE_SELECT && map != MAP_91_FILE_SELECT

View File

@@ -286,7 +286,7 @@ void __overlay_bgs_release(void){ return; }
void func_80322D38(void){ void func_80322D38(void){
if( map_get() == MAP_10_BGS_MR_VILE if( map_get() == MAP_10_BGS_MR_VILE
&& volatileFlag_get(VOLATILE_FLAG_2) && volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
&& volatileFlag_get(VOLATILE_FLAG_7_HAS_SEEN_VILE_FF_MINIGAME) && volatileFlag_get(VOLATILE_FLAG_7_HAS_SEEN_VILE_FF_MINIGAME)
){ ){
player_setTransformation(TRANSFORM_5_CROC); player_setTransformation(TRANSFORM_5_CROC);

View File

@@ -888,7 +888,7 @@ void cube_fromFile(Struct61s *file_ptr, Cube *cube) {
} }
if (file_getByte_ifExpected(file_ptr, 8, &sp47)) { if (file_getByte_ifExpected(file_ptr, 8, &sp47)) {
sp34 = volatileFlag_get(VOLATILE_FLAG_1) + volatileFlag_get(VOLATILE_FLAG_2) + volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE); sp34 = volatileFlag_get(VOLATILE_FLAG_1) + volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) + volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE);
if ((sp34) && gcparade_8031B4CC()) { if ((sp34) && gcparade_8031B4CC()) {
sp34 = 0; sp34 = 0;

View File

@@ -250,7 +250,7 @@ void func_803465E4(void){
}//L8034667C }//L8034667C
if(D_80385FE0){ if(D_80385FE0){
if(gctransition_done() || volatileFlag_get(VOLATILE_FLAG_0)){ if(gctransition_done() || volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ)){
if(D_80385FE4){ if(D_80385FE4){
item_dec(ITEM_16_LIFE); item_dec(ITEM_16_LIFE);
func_802FACA4(ITEM_14_HEALTH); func_802FACA4(ITEM_14_HEALTH);

View File

@@ -36,28 +36,28 @@ MapProgressFlagToDialogID fileProgressDialogMap[] = {
/* This progress IDs are not saved in the save file, like when Banjo goes near a Note door which requires more notes than the Banjo has. */ /* This progress IDs are not saved in the save file, like when Banjo goes near a Note door which requires more notes than the Banjo has. */
/* Triggers a dialog every time after the game restarts. */ /* Triggers a dialog every time after the game restarts. */
MapProgressFlagToDialogID volatileProgressDialogMap[] = { MapProgressFlagToDialogID gVolatileFlagDialogMap[] = {
{0x9E, 0xBA3}, {VOLATILE_FLAG_9E_BETA_OILY_SCUM, 0xBA3}, // Oily scum (unused)
{0x9F, 0xCE8}, {VOLATILE_FLAG_9F_BETA_DIVE_IN_ICY_WATER, 0xCE8}, // Dive in icy water (unused)
{0xA0, 0x1032}, {VOLATILE_FLAG_A0_FF_FIRST_ANSWER_RIGHT, 0x1032},
{0xA1, 0x1033}, {VOLATILE_FLAG_A1_FF_NEXT_ANSWER_RIGHT, 0x1033},
{0xA2, 0x1034}, {VOLATILE_FLAG_A2_FF_GRUNTY_ANSWER_RIGHT, 0x1034},
{0xA3, 0x1035}, {VOLATILE_FLAG_A3_FF_FIRST_ANSWER_WRONG, 0x1035},
{0xA4, 0x1036}, {VOLATILE_FLAG_A4_FF_NEXT_ANSWER_WRONG, 0x1036},
{0xA5, 0x1037}, {VOLATILE_FLAG_A5_FF_UNUSED, 0x1037}, // FF "the choice is yours"
{0xA6, 0x1038}, {VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB, 0x1038},
{0xA7, 0x1039}, {VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE, 0x1039},
{0xA8, 0x103A}, {VOLATILE_FLAG_A8_FF_GOT_JOKER, 0x103A},
{0xA9, 0x103B}, {VOLATILE_FLAG_A9_FF_USED_JOKER, 0x103B},
{0xAA, 0x103C}, {VOLATILE_FLAG_AA_FF_LOW_HEALTH, 0x103C},
{0xAB, 0x103D}, {VOLATILE_FLAG_AB_LAST_LIFE_ON_SKULL, 0x103D},
{0xAC, 0xA88}, {VOLATILE_FLAG_AC_GV_TRAPDOOR_MISSED, 0xA88},
{0xAD, 0xAE2}, {VOLATILE_FLAG_AD_MMM_CHURCH_DOOR_MISSED, 0xAE2},
{0xAE, 0xC8B}, {VOLATILE_FLAG_AE_BGS_WALKWAY_JIGGY_MISSED, 0xC8B},
{0xAF, 0xC8C}, {VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED, 0xC8C},
{0xB0, 0xFBD}, {VOLATILE_FLAG_B0_NOT_ENOUGH_NOTES, 0xFBD},
{0xC2, 0xE36}, {VOLATILE_FLAG_C2_NOBONUS_TEXT, 0xE36},
{0xC5, 0xDB6}, {VOLATILE_FLAG_C5_WISHYWASHYBANJO_TEXT, 0xDB6},
{ -1, -1} { -1, -1}
}; };
@@ -101,31 +101,34 @@ void func_8035646C(enum file_progress_e progress_flag) {
} }
/* Checks for a specific "volatile" progress flag and triggers a dialog only if the progress flag was not set and sets the progress flag */ /* Checks for a specific "volatile" progress flag and triggers a dialog only if the progress flag was not set and sets the progress flag */
s32 func_8035648C(s32 arg0, s32 arg1) { s32 volatileFlag_setAndTriggerDialog(enum volatile_flags_e id, s32 arg1) {
s32 index; s32 index;
if (volatileFlag_get(arg0) != 0) { if (volatileFlag_get(id) != 0) {
return 0; return 0;
} else { } else {
index = __findIndex(volatileProgressDialogMap, arg0); index = __findIndex(gVolatileFlagDialogMap, id);
if (index != -1) { if (index != -1) {
if (func_80311480(volatileProgressDialogMap[index].value, arg1, 0, 0, 0, 0) != 0) { if (func_80311480(gVolatileFlagDialogMap[index].value, arg1, 0, 0, 0, 0) != 0) {
volatileFlag_set(arg0, 1); volatileFlag_set(id, 1);
} }
return volatileFlag_get(arg0); return volatileFlag_get(id);
} }
return 0; return 0;
} }
} }
void func_80356520(s32 arg0) { // called for dialogs when banjo is not fast enough to reach a door or jiggy and for NOBONUS text
func_8035648C(arg0, 0); void volatileFlag_setAndTriggerDialog_0(s32 arg0) {
volatileFlag_setAndTriggerDialog(arg0, 0);
} }
void func_80356540(s32 arg0) { // called for FFQ dialogs
func_8035648C(arg0, 4); void volatileFlag_setAndTriggerDialog_4(s32 arg0) {
volatileFlag_setAndTriggerDialog(arg0, 4);
} }
void func_80356560(s32 arg0) { // called for WISHYWASHYBANJO dialog
func_8035648C(arg0, 0xE); void volatileFlag_setAndTriggerDialog_E(s32 arg0) {
volatileFlag_setAndTriggerDialog(arg0, 0xE);
} }

View File

@@ -990,7 +990,7 @@ s32 gcPauseMenu_update(void){
case 1://L80313908 //return to lair case 1://L80313908 //return to lair
volatileFlag_set(VOLATILE_FLAG_16, 1); volatileFlag_set(VOLATILE_FLAG_16, 1);
if(map_get() == MAP_8E_GL_FURNACE_FUN){ if(map_get() == MAP_8E_GL_FURNACE_FUN){
volatileFlag_set(VOLATILE_FLAG_0,0); volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ,0);
func_802E4078(MAP_80_GL_FF_ENTRANCE, 2, 1); func_802E4078(MAP_80_GL_FF_ENTRANCE, 2, 1);
}else{ }else{
func_802E4078(D_8036C560[level-1].map, D_8036C560[level-1].exit, 1); func_802E4078(D_8036C560[level-1].map, D_8036C560[level-1].exit, 1);
@@ -1003,7 +1003,7 @@ s32 gcPauseMenu_update(void){
break; break;
case 3://L8031399C case 3://L8031399C
func_802C5994(); func_802C5994();
volatileFlag_set(VOLATILE_FLAG_0,0); volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ,0);
if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){ if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
gcPauseMenu_setState(0x14); gcPauseMenu_setState(0x14);
}else{ }else{

View File

@@ -741,7 +741,7 @@ void func_80387730(Actor *this) {
} }
} }
} else if ((this->unkF4_8 >= 2) && (ml_distance_vec3f(spAC, this->position) < 290.0f)) { } else if ((this->unkF4_8 >= 2) && (ml_distance_vec3f(spAC, this->position) < 290.0f)) {
func_80356520(0xB0); volatileFlag_setAndTriggerDialog_0(VOLATILE_FLAG_B0_NOT_ENOUGH_NOTES);
} }
} }
} }

View File

@@ -573,10 +573,10 @@ void lair_func_8038CD48(void)
if (D_8037DCB8->UNK_18) if (D_8037DCB8->UNK_18)
lair_func_8038CC9C(); lair_func_8038CC9C();
if (!volatileFlag_get(VOLATILE_FLAG_1) && !volatileFlag_get(VOLATILE_FLAG_2)) if (!volatileFlag_get(VOLATILE_FLAG_1) && !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME))
volatileFlag_set(VOLATILE_FLAG_0, FALSE); volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, FALSE);
if (!volatileFlag_get(VOLATILE_FLAG_0)) if (!volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ))
func_8038CCEC(); func_8038CCEC();
} }
@@ -626,7 +626,7 @@ void lair_func_8038CF18(void)
D_8037DCB8->unk0 = mapModel_getModel(0); D_8037DCB8->unk0 = mapModel_getModel(0);
D_8037DCB8->unk11 = 0; D_8037DCB8->unk11 = 0;
if (volatileFlag_get(VOLATILE_FLAG_2) && !volatileFlag_get(VOLATILE_FLAG_4)) if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) && !volatileFlag_get(VOLATILE_FLAG_4))
{ {
quizQuestionAskedBitfield_free(); quizQuestionAskedBitfield_free();
quizQuestionAskedBitfield_init(); quizQuestionAskedBitfield_init();
@@ -666,7 +666,7 @@ void lair_func_8038CF18(void)
} }
else else
{ {
if (volatileFlag_get(VOLATILE_FLAG_2)) if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME))
{ {
levelSpecificFlags_clear(); levelSpecificFlags_clear();
func_8038D670(FFA_5_FORGET_MOVES_2); func_8038D670(FFA_5_FORGET_MOVES_2);
@@ -823,7 +823,7 @@ void func_8038D48C(void)
void func_8038D4BC(void) void func_8038D4BC(void)
{ {
volatileFlag_set(VOLATILE_FLAG_2, TRUE); volatileFlag_set(VOLATILE_FLAG_2_FF_IN_MINIGAME, TRUE);
func_802E4A70(); func_802E4A70();
// restore moves after a delay // restore moves after a delay
@@ -959,17 +959,17 @@ void func_8038D670(enum FF_Action next_state) {
if (((s32) D_8037DCB8->unk4->unk8 >= 7) && (quizQuestionAskedBitfield_get(func_8038D60C(D_8037DCB8->unk8)) == 0)) { if (((s32) D_8037DCB8->unk4->unk8 >= 7) && (quizQuestionAskedBitfield_get(func_8038D60C(D_8037DCB8->unk8)) == 0)) {
item_adjustByDiffWithHud(ITEM_27_JOKER_CARD, D_8037DCB8->unk4->unk8 - 6); item_adjustByDiffWithHud(ITEM_27_JOKER_CARD, D_8037DCB8->unk4->unk8 - 6);
quizQuestionAskedBitfield_set(func_8038D60C(D_8037DCB8->unk8), TRUE); quizQuestionAskedBitfield_set(func_8038D60C(D_8037DCB8->unk8), TRUE);
func_80356540(0xA8); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A8_FF_GOT_JOKER);
} }
if (D_8037DCB8->unk8 != 0x1EF) { if (D_8037DCB8->unk8 != 0x1EF) {
func_8030E6A4(SFX_126_AUDIENCE_BOOING, 1.0f, 0x7FF8); func_8030E6A4(SFX_126_AUDIENCE_BOOING, 1.0f, 0x7FF8);
if (D_8037DCB8->unk4->unk8 == FFTT_5_GRUNTY) { if (D_8037DCB8->unk4->unk8 == FFTT_5_GRUNTY) {
func_80356540(0xA2); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A2_FF_GRUNTY_ANSWER_RIGHT);
} }
if (volatileFlag_get(VOLATILE_FLAG_A0)) { if (volatileFlag_get(VOLATILE_FLAG_A0_FF_FIRST_ANSWER_RIGHT)) {
func_80356540(0xA1); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A1_FF_NEXT_ANSWER_RIGHT);
} }
func_80356540(0xA0); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A0_FF_FIRST_ANSWER_RIGHT);
} }
} else { } else {
if (D_8037DCB8->unk4->unk8 == FFTT_6_SKULL) { if (D_8037DCB8->unk4->unk8 == FFTT_6_SKULL) {
@@ -995,10 +995,10 @@ void func_8038D670(enum FF_Action next_state) {
quizQuestionAskedBitfield_set(func_8038D60C(D_8037DCB8->unk8), TRUE); quizQuestionAskedBitfield_set(func_8038D60C(D_8037DCB8->unk8), TRUE);
lair_func_8038C640(D_8037DCB8->unk8, D_8037DCB8->unk4); lair_func_8038C640(D_8037DCB8->unk8, D_8037DCB8->unk4);
} }
if (volatileFlag_get(VOLATILE_FLAG_A3)) { if (volatileFlag_get(VOLATILE_FLAG_A3_FF_FIRST_ANSWER_WRONG)) {
func_80356540(0xA4); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A4_FF_NEXT_ANSWER_WRONG);
} }
func_80356540(0xA3); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A3_FF_FIRST_ANSWER_WRONG);
} }
break; break;
@@ -1012,9 +1012,9 @@ void func_8038D670(enum FF_Action next_state) {
func_8025AB00(); func_8025AB00();
func_8025A70C(JINGLE_DOOR_OF_GRUNTY_OPENED); func_8025A70C(JINGLE_DOOR_OF_GRUNTY_OPENED);
fileProgressFlag_set(FILEPROG_A6_FURNACE_FUN_COMPLETE, TRUE); fileProgressFlag_set(FILEPROG_A6_FURNACE_FUN_COMPLETE, TRUE);
volatileFlag_set(VOLATILE_FLAG_0, FALSE); volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, FALSE);
volatileFlag_set(VOLATILE_FLAG_A6, TRUE); volatileFlag_set(VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB, TRUE);
volatileFlag_set(VOLATILE_FLAG_A7, TRUE); volatileFlag_set(VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE, TRUE);
next_state = 9; next_state = 9;
mapSpecificFlags_set(0xA, TRUE); mapSpecificFlags_set(0xA, TRUE);
func_8028F918(2); func_8028F918(2);
@@ -1238,9 +1238,9 @@ void lair_func_8038E0B0(void) {
fileProgressFlag_set(sp28, TRUE); fileProgressFlag_set(sp28, TRUE);
} }
if ((sp38 == FFTT_6_SKULL) && (item_getCount(ITEM_16_LIFE) == 1)) { if ((sp38 == FFTT_6_SKULL) && (item_getCount(ITEM_16_LIFE) == 1)) {
func_80356540(0xAB); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_AB_LAST_LIFE_ON_SKULL);
} else if (item_getCount(ITEM_14_HEALTH) == 1) { } else if (item_getCount(ITEM_14_HEALTH) == 1) {
func_80356540(0xAA); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_AA_FF_LOW_HEALTH);
} }
if ((D_8037DCB8->unk4->unk9 == 2) && (func_8028ECAC() == 0)) { if ((D_8037DCB8->unk4->unk9 == 2) && (func_8028ECAC() == 0)) {
if (func_8028EFEC() && (sp48[FACE_BUTTON(BUTTON_A)] == 1)) { if (func_8028EFEC() && (sp48[FACE_BUTTON(BUTTON_A)] == 1)) {
@@ -1256,7 +1256,7 @@ void lair_func_8038E0B0(void) {
lair_func_8038C640(D_8037DCB8->unk8, D_8037DCB8->unk4); lair_func_8038C640(D_8037DCB8->unk8, D_8037DCB8->unk4);
item_dec(ITEM_27_JOKER_CARD); item_dec(ITEM_27_JOKER_CARD);
func_8030E6D4(SFX_3EA_UNKNOWN); func_8030E6D4(SFX_3EA_UNKNOWN);
func_80356540(0xA9); volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A9_FF_USED_JOKER);
if (D_8037DCB8->unk8 == 0x1EF) { if (D_8037DCB8->unk8 == 0x1EF) {
func_8038D670(8); func_8038D670(8);
} }
@@ -1291,15 +1291,15 @@ void lair_func_8038E0B0(void) {
break; break;
case 5://L8038E684 case 5://L8038E684
if (volatileFlag_get(VOLATILE_FLAG_2)) { if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
if (volatileFlag_get(VOLATILE_FLAG_4)) { if (volatileFlag_get(VOLATILE_FLAG_4)) {
func_8038E070(); func_8038E070();
D_8037DCB8->unkF = volatileFlag_get(VOLATILE_FLAG_5); D_8037DCB8->unkF = volatileFlag_get(VOLATILE_FLAG_5_FF_MINIGAME_WON);
func_8038D670(6); func_8038D670(6);
} else { } else {
func_8038D670(1); func_8038D670(1);
} }
volatileFlag_set(VOLATILE_FLAG_2, FALSE); volatileFlag_set(VOLATILE_FLAG_2_FF_IN_MINIGAME, FALSE);
volatileFlag_set(VOLATILE_FLAG_4, FALSE); volatileFlag_set(VOLATILE_FLAG_4, FALSE);
} }
break; break;
@@ -1334,11 +1334,11 @@ void lair_func_8038E768(Gfx **dl, Mtx **m, Vtx **v)
void func_8038E7C4(void) void func_8038E7C4(void)
{ {
if (volatileFlag_get(VOLATILE_FLAG_0)) if (volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ))
return; return;
func_8038CE28(); func_8038CE28();
volatileFlag_set(VOLATILE_FLAG_0, TRUE); volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, TRUE);
} }
/** /**