documented volatile flag functions and enums and some Actor struct members

This commit is contained in:
mariob92
2024-09-08 12:22:27 +02:00
parent 347c3edcdf
commit 615e2bda33
111 changed files with 584 additions and 549 deletions

View File

@@ -229,59 +229,80 @@ enum file_progress_e{
FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit
};
enum volatile_progress_e{
VOLAPROG_0_UNKNOWN
};
enum volatile_flags_e {
VOLATILE_FLAG_0, // FFQ
VOLATILE_FLAG_1,
VOLATILE_FLAG_2,
VOLATILE_FLAG_3,
VOLATILE_FLAG_4,
VOLATILE_FLAG_5,
VOLATILE_FLAG_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6,
VOLATILE_FLAG_7_HAS_SEEN_VILE_FF_MINIGAME,
VOLATILE_FLAG_8_HAS_SEEN_MATCHING_PYRAMID_FF_MINIGAME,
VOLATILE_FLAG_9_HAS_SEEN_ZUBBAS_FF_MINIGAME,
VOLATILE_FLAG_A_HAS_SEEN_TIPTUP_FF_MINIGAME,
VOLATILE_FLAG_B_HAS_SEEN_SANDCASTLE_FF_MINIGAME,
VOLATILE_FLAG_C,
VOLATILE_FLAG_D,
VOLATILE_FLAG_E,
VOLATILE_FLAG_F,
VOLATILE_FLAG_10,
VOLATILE_FLAG_11,
VOLATILE_FLAG_12,
VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT = 0x13,
VOLATILE_FLAG_14,
VOLATILE_FLAG_15,
VOLATILE_FLAG_16,
VOLATILE_FLAG_17,
VOLATILE_FLAG_18,
VOLATILE_FLAG_19,
VOLATILE_FLAG_1A,
VOLATILE_FLAG_1B,
VOLATILE_FLAG_1C,
VOLATILE_FLAG_1D,
VOLATILE_FLAG_1E,
VOLATILE_FLAG_1F_IN_CHARACTER_PARADE = 0x1F,
VOLATILE_FLAG_20_BEGIN_CHARACTER_PARADE,
enum unkflags_1{
UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6,
UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME,
UNKFLAGS1_8_HAS_SEEN_MATCHING_PYRAMID_FF_MINIGAME,
UNKFLAGS1_9_HAS_SEEN_ZUBBAS_FF_MINIGAME,
UNKFLAGS1_A_HAS_SEEN_TIPTUP_FF_MINIGAME,
UNKFLAGS1_B_HAS_SEEN_SANDCASTLE_FF_MINIGAME,
VOLATILE_FLAG_73_SANDCASTLE_INFINITE_LIVES = 0x73,
VOLATILE_FLAG_74_SANDCASTLE_INFINITE_EGGS,
VOLATILE_FLAG_75_SANDCASTLE_INFINITE_RED_FEATHERS,
VOLATILE_FLAG_76_SANDCASTLE_INFINITE_GOLD_FEATHERS,
UNKFLAGS1_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT = 0x13,
VOLATILE_FLAG_78_SANDCASTLE_NO_BONUS = 0x78,
UNKFLAGS1_1F_IN_CHARACTER_PARADE = 0x1F,
UNKFLAGS1_20_BEGIN_CHARACTER_PARADE,
VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC = 0x7F,
UNKFLAGS1_73_SANDCASTLE_INFINITE_LIVES = 0x73,
UNKFLAGS1_74_SANDCASTLE_INFINITE_EGGS,
UNKFLAGS1_75_SANDCASTLE_INFINITE_RED_FEATHERS,
UNKFLAGS1_76_SANDCASTLE_INFINITE_GOLD_FEATHERS,
VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS = 0x84,
UNKFLAGS1_78_SANDCASTLE_NO_BONUS = 0x78,
VOLATILE_FLAG_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED = 0x86,
VOLATILE_FLAG_87_SANDCASTLE_OPEN_GV,// 0X87
UNKFLAGS1_7F_SANDCASTLE_OPEN_CC = 0x7F,
VOLATILE_FLAG_8A_SANDCASTLE_FLIGHT_UNLOCKED = 0x8A,// 0X8A
VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP,// 0X8B
VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM,// 0X8C
VOLATILE_FLAG_8D_SANDCASTLE_REMOVE_CRYPT_GATE,// 0X8D
VOLATILE_FLAG_8E_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID,// 0X8E
VOLATILE_FLAG_8F_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH,// 0X8F
VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB,
UNKFLAGS1_84_SANDCASTLE_OPEN_BGS = 0x84,
VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW = 0x93,
VOLATILE_FLAG_94_SANDCASTLE_INFINITE_HEALTH,// 0X94
VOLATILE_FLAG_95_SANDCASTLE_INFINTE_MUMBO_TOKENS,// 0X95
VOLATILE_FLAG_96_SANDCASTLE_INFINITE_AIR,// 0X96
VOLATILE_FLAG_97_SANDCASTLE_BOTTLES_BONUS_1,// 0X97
VOLATILE_FLAG_98_SANDCASTLE_BOTTLES_BONUS_2,// 0X98
VOLATILE_FLAG_99_SANDCASTLE_BOTTLES_BONUS_3,// 0X99
VOLATILE_FLAG_9A_SANDCASTLE_BOTTLES_BONUS_4,// 0X9A
VOLATILE_FLAG_9B_SANDCASTLE_BOTTLES_BONUS_5,// 0X9B
VOLATILE_FLAG_9C_SANDCASTLE_BOTTLES_BONUS_6,// 0X9C
VOLATILE_FLAG_9D_SANDCASTLE_WISHY_WASHY,// 0X9D
UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED = 0x86,
UNKFLAGS1_87_SANDCASTLE_OPEN_GV,// 0X87
UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED = 0x8A,// 0X8A
UNKFLAGS1_8B_SANDCASTLE_OPEN_FP,// 0X8B
UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM,// 0X8C
UNKFLAGS1_8D_SANDCASTLE_REMOVE_CRYPT_GATE,// 0X8D
UNKFLAGS1_8E_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID,// 0X8E
UNKFLAGS1_8F_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH,// 0X8F
UNKFLAGS1_90_SANDCASTLE_OPEN_RBB,
UNKFLAGS1_93_SANDCASTLE_OPEN_CCW = 0x93,
UNKFLAGS1_94_SANDCASTLE_INFINITE_HEALTH,// 0X94
UNKFLAGS1_95_SANDCASTLE_INFINTE_MUMBO_TOKENS,// 0X95
UNKFLAGS1_96_SANDCASTLE_INFINITE_AIR,// 0X96
UNKFLAGS1_97_SANDCASTLE_BOTTLES_BONUS_1,// 0X97
UNKFLAGS1_98_SANDCASTLE_BOTTLES_BONUS_2,// 0X98
UNKFLAGS1_99_SANDCASTLE_BOTTLES_BONUS_3,// 0X99
UNKFLAGS1_9A_SANDCASTLE_BOTTLES_BONUS_4,// 0X9A
UNKFLAGS1_9B_SANDCASTLE_BOTTLES_BONUS_5,// 0X9B
UNKFLAGS1_9C_SANDCASTLE_BOTTLES_BONUS_6,// 0X9C
UNKFLAGS1_9D_SANDCASTLE_WISHY_WASHY,// 0X9D
UNKFLAGS1_C0_BEGIN_FINAL_CHARACTER_PARADE = 0xC0,
UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE
VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE = 0xC0,
VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE,
VOLATILE_FLAG_C2_UNUSED,
VOLATILE_FLAG_C3, // unk
VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE
};
enum level_flags_e
@@ -4691,4 +4712,10 @@ enum nc_first_person_state{
FIRSTPERSON_STATE_4_DONE
};
enum marker_collision_func_type_e {
MARKER_COLLISION_FUNC_0, // active?
MARKER_COLLISION_FUNC_1, // passive?
MARKER_COLLISION_FUNC_2_DIE
};
#endif

View File

@@ -20,6 +20,8 @@
#include "bsint.h"
#include "generic.h"
#include "enums.h"
extern f32 fabsf(f32);
#pragma intrinsic (fabsf)
@@ -561,5 +563,8 @@ extern void spawnableActorList_add(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32,
extern void spawnableActorList_addIfMapVisited(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32, ActorInfo *, u32), u32 arg2, enum map_e arg3);
extern void marker_setActorUpdateFunc(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_setActorUpdate2Func(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_callCollisionFunc(ActorMarker *, ActorMarker *, enum marker_collision_func_type_e);
extern enum marker_collision_func_type_e func_8033D574(struct5Cs *arg0);
extern s32 volatileFlag_get(s32); // get volatile flag
#endif

View File

@@ -217,7 +217,7 @@ typedef struct actor_s{
};
//u8 padAC[0x44];
f32 unkEC; //animCtrl???
f32 stored_animctrl_timer; // animCtrlTimer
f32 stored_animctrl_duration; //animCtrlDuration
u32 unkF4_31:1;
u32 unkF4_30:1; // has something to do with vertices
@@ -303,7 +303,7 @@ typedef struct actor_info_s{
s16 startAnimation;
ActorAnimationInfo* animations;
void (* update_func)(Actor *);
void (* unk10)(Actor *);
void (* update2_func)(Actor *);
Actor* (* draw_func)(ActorMarker *, Gfx **, Mtx **, Vtx **);
u16 unk18;
u16 draw_distance;

View File

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

View File

@@ -154,7 +154,7 @@ bool func_80386A34(Actor * this){
f32 plyrPos[3];
bool out;
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE))
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))
return 0;
player_getPosition(plyrPos);

View File

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

View File

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

View File

@@ -30,7 +30,7 @@ static bool __playerIsWithinTrigger(s32 x, s32 z, s32 distance) {
void chVacationTextTrigger_update(Actor* this) {
// Despawn if already triggered
if (func_803203FC(UNKFLAGS1_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT)) {
if (volatileFlag_get(VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT)) {
marker_despawn(this->marker);
return;
}
@@ -38,6 +38,6 @@ void chVacationTextTrigger_update(Actor* this) {
// Start dialog if player is within trigger
if (__playerIsWithinTrigger(0, -107, 188) != 0) {
func_80311480(0xDA9, 4, NULL, NULL, NULL, NULL);
func_803204E4(UNKFLAGS1_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT, 1);
volatileFlag_set(VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT, 1);
}
}

View File

@@ -41,7 +41,7 @@ void func_803865F4(Actor *this, s32 next_state) {
local = (ActorLocal_CCW_160 *)&this->local;
local->unkC = 0.0f;
if (next_state == 2) {
if (!func_80320454(0xB5, 1)) {
if (!volatileFlag_getAndSet(0xB5, 1)) {
func_80311480(0xCE2, 4, NULL, this->marker, func_803865C4, NULL);
} else {
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 (func_803203FC(2)) {
if (volatileFlag_get(VOLATILE_FLAG_2)) {
item_set(ITEM_6_HOURGLASS, FALSE);
func_803204E4(3, 0);
func_803204E4(5, 1);
volatileFlag_set(3, 0);
volatileFlag_set(5, 1);
} else {
func_80311480(0xCE4, 4, NULL, NULL, NULL, NULL);
func_8025A58C(-1, 400);
@@ -133,7 +133,7 @@ void func_8038687C(Actor *this) {
local->unk4 = 0;
local->unk8 = 0;
local->unkC = 0.0f;
if (func_803203FC(2)) {
if (volatileFlag_get(VOLATILE_FLAG_2)) {
this->position_y -= 300.0f;
}
func_803865F4(this, 1);
@@ -141,7 +141,7 @@ void func_8038687C(Actor *this) {
}
if ((s32)local->unk0 == 1) {
other = actorArray_findActorFromActorId(0x46);
if(func_803203FC(2)) {
if(volatileFlag_get(VOLATILE_FLAG_2)) {
local->unk0 = NULL;
if (other != NULL) {
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));
}
if (this->state == 1) {
if (func_803203FC(2) && func_803203FC(3)) {
if (volatileFlag_get(VOLATILE_FLAG_2) && volatileFlag_get(VOLATILE_FLAG_3)) {
item_set(ITEM_6_HOURGLASS, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 1800 - 1);
func_803865F4(this, 3);
@@ -209,9 +209,9 @@ void func_8038687C(Actor *this) {
}
}
}
if ((this->state == 3) && func_803203FC(2) && item_empty(ITEM_0_HOURGLASS_TIMER)) {
if ((this->state == 3) && volatileFlag_get(VOLATILE_FLAG_2) && item_empty(ITEM_0_HOURGLASS_TIMER)) {
item_set(ITEM_6_HOURGLASS, 0);
func_803204E4(3, 0);
func_803204E4(5, 0);
volatileFlag_set(3, 0);
volatileFlag_set(5, 0);
}
}

View File

@@ -152,9 +152,9 @@ void chcaterpillar_update(Actor *this){
if(ml_distance_vec3f(this->position, sp74) < 50.0f){
func_8028F030(ACTOR_2A2_CATERPILLAR);
if(!func_803203FC(0xb2)){
if(!volatileFlag_get(0xb2)){
func_80311480(0xcc7, 4, NULL, NULL, NULL, NULL);
func_803204E4(0xb2, TRUE);
volatileFlag_set(0xb2, TRUE);
}
FUNC_8030E8B4(SFX_C5_TWINKLY_POP, 1.0f, 25000, this->position, 0x1f4, 0x9c4);
marker_despawn(this->marker);

View File

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

View File

@@ -109,7 +109,7 @@ void func_8038A384(Actor *this){
}//L8038A4A0
if( jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)
|| func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)
|| volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)
){
subaddie_set_state_with_direction(this, 2, randf2(0.0f, 0.9f), 1);
}

View File

@@ -115,7 +115,7 @@ void func_8038794C(Actor *this){
this->unk38_31 = 1;
ml_vec3f_copy(this->velocity, this->position);
if(func_803203FC(1))
if(volatileFlag_get(VOLATILE_FLAG_1))
return;
if(!jiggyscore_isCollected(JIGGY_2A_FP_BOGGY_1) && jiggyscore_isSpawned(JIGGY_2A_FP_BOGGY_1)){

View File

@@ -143,9 +143,9 @@ void func_80388B18(Actor *this, u8 arg1){
}
}
else{//L80388BB8
if(!func_803203FC(0xb3)){
if(!volatileFlag_get(0xb3)){
if(func_80311480(0xc01, 0xe, this->position, this->marker, func_80388D70, NULL)){
func_803204E4(0xb3, TRUE);
volatileFlag_set(0xb3, TRUE);
func_80388A50(this);
}
}
@@ -153,9 +153,9 @@ void func_80388B18(Actor *this, u8 arg1){
}
else{//L80388C08
if(player_getTransformation() == TRANSFORM_4_WALRUS){
if(!func_803203FC(0xb4)){
if(!volatileFlag_get(0xb4)){
if(func_80311480(0xc08, 0xe, this->position, this->marker, func_80388D70, NULL)){
func_803204E4(0xb4, TRUE);
volatileFlag_set(0xb4, TRUE);
func_80388A50(this);
}
}
@@ -476,13 +476,13 @@ void func_803896FC(Actor *this){
){
if( local->unk19 == 1
&& player_getTransformation() != TRANSFORM_4_WALRUS
&& func_803203FC(0xb3)
&& volatileFlag_get(0xb3)
){
func_80311480(0xC01, 0xf, this->position, this->marker, func_80388D70, NULL);
}
else if( local->unk19 == 2){
if( player_getTransformation() == TRANSFORM_4_WALRUS
&& func_803203FC(0xb4)
&& volatileFlag_get(0xb4)
){
func_80311480(0xC08, 0xf, this->position, this->marker, func_80388D70, NULL);
}

View File

@@ -20,7 +20,7 @@ extern ActorInfo D_80392700 = { MARKER_20F_WOZZA_IN_CAVE, ACTOR_33F_WOZZA_IN_CAV
/* .code */
void func_80390630(Actor *this){
if(func_803203FC(0xC4)){
if(volatileFlag_get(VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE)){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = FALSE;

View File

@@ -242,7 +242,7 @@ void func_8038C8F0(ActorMarker *marker){
void func_8038C94C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
Actor *this = marker_getActor(caller);
if(!func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(!volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
subaddie_set_state(this, 6);
__spawnQueue_add_1((GenFunction_1)func_8038C8F0, reinterpret_cast(s32, this->marker));
}

View File

@@ -302,14 +302,14 @@ void func_8038D6C8(Actor *this){
this->velocity[1] = 0.0f;
this->unk1C[0] = -1.0f;
func_8028F8F8(7, FALSE);
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -1){
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -1){
subaddie_set_state_with_direction(this, 3, 0.001f, 1);
actor_playAnimationOnce(this);
this->velocity[0] = 1.0f;
}
}//L8038D844
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
this->velocity[0] = 1.0f;
}

View File

@@ -112,7 +112,7 @@ void func_8038E094(Actor *this){
func_8038DDC8(this);
}
if(this->unkF4_8 == 2){
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -2){
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -2){
func_8038DDC8(this);
}
else{

View File

@@ -172,7 +172,7 @@ void FP_func_8038F758(ActorMarker *marker){
void FP_func_8038F7AC(Actor *this){
ActorLocal_Wozza * local = (ActorLocal_Wozza *)&this->local;
if(func_803203FC(0xC4)){
if(volatileFlag_get(VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE)){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = FALSE;
@@ -228,7 +228,7 @@ void FP_func_8038F7AC(Actor *this){
break;
}
if(func_80329530(this, 1000) && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(func_80329530(this, 1000) && !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
func_8038F454(this);
break;
}

View File

@@ -42,7 +42,7 @@ void __chXmasTree_80386EF4(Actor *this, int arg1){
void __chXmasTree_80386F3C(void){
levelSpecificFlags_set(0x29, TRUE);
func_803228D8();
func_803204E4(0xe, 1);
volatileFlag_set(0xe, 1);
func_802E4078(MAP_53_FP_CHRISTMAS_TREE, 1, 0);
}

View File

@@ -130,7 +130,7 @@ void chGobi1_update(Actor *this){
this->unk1C[0] = 0.0f;
this->unk1C[1] = 0.0f;
chGobi1_setState(this, 1);
if(jiggyscore_isSpawned(JIGGY_44_GV_GOBI_1) && ! func_803203FC(1)){
if(jiggyscore_isSpawned(JIGGY_44_GV_GOBI_1) && ! volatileFlag_get(VOLATILE_FLAG_1)){
marker_despawn(this->marker);
}
return;

View File

@@ -112,7 +112,7 @@ void chGobiRock_update(Actor *this){
this->position_z = sp28->position_z;
}
__chGobiRock_setState(this, 1);
if(jiggyscore_isSpawned(JIGGY_44_GV_GOBI_1) && !func_803203FC(1)){
if(jiggyscore_isSpawned(JIGGY_44_GV_GOBI_1) && !volatileFlag_get(VOLATILE_FLAG_1)){
marker_despawn(this->marker);
}
}

View File

@@ -49,7 +49,7 @@ void chGobiRope_update(Actor *this){
}
chGobiRope_setState(this, 1);
if( jiggyscore_isSpawned(JIGGY_44_GV_GOBI_1)
&& !func_803203FC(1)
&& !volatileFlag_get(VOLATILE_FLAG_1)
){
marker_despawn(this->marker);
}

View File

@@ -118,7 +118,7 @@ void func_8038DBDC(Actor *this){
func_8038DB4C(0);
this->unk1C[0] = 0.0f;
}//L8038DC90
if(func_8038E178() != (s32)this->unk1C[0] || func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(func_8038E178() != (s32)this->unk1C[0] || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
if(15.0f <= this->unk60){
subaddie_set_state_with_direction(this, 2, 0.01f, 1);
animctrl_setPlaybackType(this->animctrl, ANIMCTRL_ONCE);

View File

@@ -61,7 +61,7 @@ void chTrucker_update(Actor *this){
marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this);
mapSpecificFlags_set(0xC, FALSE);
if(jiggyscore_isSpawned(JIGGY_45_GV_GOBI_2) && !func_803203FC(1)){
if(jiggyscore_isSpawned(JIGGY_45_GV_GOBI_2) && !volatileFlag_get(VOLATILE_FLAG_1)){
__chTrucker_setState(this, 3);
}
else{//L803891CC

View File

@@ -64,7 +64,7 @@ void func_8038D47C(Actor *this){
if(!this->unk16C_4){
mapSpecificFlags_set(0x10, 0);
this->unk16C_4 = TRUE;
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -3){
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -3){
timedFunc_set_1(1.5f, (GenFunction_1)func_8038D450, reinterpret_cast(s32, this->marker));
}
}//L8038D5EC
@@ -121,7 +121,7 @@ void func_8038D47C(Actor *this){
FUNC_8030E624(SFX_D6_UGH, 0.8f, 32750);
}
if(actor_animationIsAt(this, 0.94f)){
if(!func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(!volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
mapSpecificFlags_set(0x10, 1);
}
}

View File

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

View File

@@ -39,7 +39,7 @@ void __waterCtrl_setState(s32 arg0){
if(GV_D_80391B00.state == 3){
levelSpecificFlags_set(6, TRUE);
func_803228D8();
func_803204E4(0xe, 1);
volatileFlag_set(0xe, 1);
func_802E4078(MAP_12_GV_GOBIS_VALLEY, 0, 0);
}
}

View File

@@ -152,7 +152,7 @@ int func_803872EC(void){
return text_id == ASSET_B37_TEXT_CONGA_SAFE_UP_HERE
|| text_id == ASSET_B38_TEXT_CONGA_DEFEAT
|| func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
|| volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
|| text_id == ASSET_B3B_TEXT_CONGA_ORANGE_PAD_JIGGY
|| text_id == ASSET_B45_TEXT_JIGGY_COLLECT_10
|| text_id == ASSET_B51_TEXT_BOTTLES_HOW_TO_EXIT_LEVEL;

View File

@@ -175,7 +175,7 @@ void chnapper_update(Actor *this){
__chnapper_setState(this, 2);
}
if(MMM_func_80389530() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(MMM_func_80389530() || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
__chnapper_setState(this, 3);
}
}//L80386F74

View File

@@ -21,7 +21,7 @@ void __chAnchorSwitch_setState(Actor *this, s32 arg1){
this->position_y -= 35.0f;
if(this->state == 1){
levelSpecificFlags_set(0x30, TRUE);
func_803204E4(0xe, 1);
volatileFlag_set(0xe, 1);
timedFunc_set_0(1.0f, func_803228D8);
timedFunc_set_3(1.0f, (GenFunction_3)func_802E4078, MAP_31_RBB_RUSTY_BUCKET_BAY, 0, 0);
}

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.35f, SFX_6C_LOCKUP_CLOSING, 1.0f, 0x7d00);
timed_playSfx(1.8f, SFX_6C_LOCKUP_CLOSING, 1.0f, 0x7d00);
if(func_803203FC(2)){
if(volatileFlag_get(VOLATILE_FLAG_2)){
item_set(ITEM_6_HOURGLASS, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 0x1067);
timed_exitStaticCamera(2.4f);
@@ -360,10 +360,10 @@ void RBB_func_8038CC9C(Actor *this, s32 new_state){
func_8025A58C(-1, 0x190);
comusic_8025AB44(COMUSIC_62_RBB_BOOMBOX, 0, 0x190);
func_8025AABC(COMUSIC_62_RBB_BOOMBOX);
if(func_803203FC(2)){
if(volatileFlag_get(VOLATILE_FLAG_2)){
item_set(ITEM_6_HOURGLASS, 0);
func_803204E4(3, 0);
func_803204E4(5, 1);
volatileFlag_set(3, 0);
volatileFlag_set(5, 1);
}
else{//L8038D220
timedFunc_set_3(0.0f, (GenFunction_3)chbossboombox_respawnJiggy, (s32)this->position_x, (s32)this->position_y, (s32)this->position_z);
@@ -523,13 +523,13 @@ void func_8038D8BC(Actor *this){
RBB_func_8038CC9C(this, 7);
}
if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !func_803203FC(2))
if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !volatileFlag_get(VOLATILE_FLAG_2))
marker_despawn(this->marker);
if(func_803203FC(2))
if(volatileFlag_get(VOLATILE_FLAG_2))
chbossboombox_hideJiggy();
if(func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
chbossboombox_hideJiggy();
skeletalAnim_set(this->unk148, ASSET_146_ANIM_BOSS_BOOMBOX_APPEAR, 0.0f, 2.4f);
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE);
@@ -540,8 +540,8 @@ void func_8038D8BC(Actor *this){
player_getPosition(player_position);
if(this->state == 1){
if(func_803203FC(2)){
if(func_803203FC(3)){
if(volatileFlag_get(VOLATILE_FLAG_2)){
if(volatileFlag_get(VOLATILE_FLAG_3)){
RBB_func_8038CC9C(this, 2);
}
}
@@ -572,10 +572,10 @@ void func_8038D8BC(Actor *this){
}//L8038DC48
if(this->state == 3 || this->state == 4){
if(func_803203FC(2)){
if(volatileFlag_get(VOLATILE_FLAG_2)){
if(item_empty(ITEM_0_HOURGLASS_TIMER)){
func_803204E4(3, 0);
func_803204E4(5, 0);
volatileFlag_set(3, 0);
volatileFlag_set(5, 0);
RBB_func_8038CC9C(this, 8);
}
}

View File

@@ -21,7 +21,7 @@ void chBossBoomBoxCtrl_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 1;
if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !func_803203FC(2)){
if(jiggyscore_isSpawned(JIGGY_56_RBB_BOSS_BOOM_BOX) && !volatileFlag_get(VOLATILE_FLAG_2)){
marker_despawn(this->marker);
}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));

View File

@@ -132,7 +132,7 @@ void chAttackTutorial_update(Actor *this){
if(mapSpecificFlags_get(4))
chAttackTutorial_setState(this, 5);
if(func_803874C4() || func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE))
if(func_803874C4() || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))
chAttackTutorial_setState(this, 4);
break;
case 2://L80387658

View File

@@ -246,7 +246,7 @@ void func_80387E64(Actor *this){
void func_80387F00(Actor *this){
ChVeg *local = (ChVeg *)&this->local;
this->position_y += (mapSpecificFlags_get(0xC) || func_803203FC(0xC1)) ? 120.0 : 180.0;
this->position_y += (mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) ? 120.0 : 180.0;
local->unk0_x = this->position_x;
local->unk0_y = this->position_y;
local->unk0_z = this->position_z;
@@ -329,9 +329,9 @@ void func_80388080(Actor *this){
switch (this->state)
{
case 1: //L803882B0
if(mapSpecificFlags_get(0xC) || func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) || this->unk10_12){
if(mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) || this->unk10_12){
//L803882E4
if(mapSpecificFlags_get(0xC) || func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){ //L8038830C
if(mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){ //L8038830C
this->unk1C_y += (local->unkC == 3)? 120.0 : 0.0;
}else{//L80388350
this->unk1C_y += (local->unkC == 3)? 270.0 : 85.0;
@@ -372,7 +372,7 @@ void func_80388080(Actor *this){
}else{//L80388520
if(local->unkC == 1){
this->unk28 = 3.0f;
if(mapSpecificFlags_get(0xC) || func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){//L80388554
if(mapSpecificFlags_get(0xC) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){//L80388554
if(!func_80329030(this, 0) && func_80329480(this)){
func_80328CEC(this, (s32)this->yaw, 0x78, 0xb4);
this->unk38_0 = 1;
@@ -396,7 +396,7 @@ void func_80388080(Actor *this){
func_80328CEC(this, (s32)this->yaw, 0x78, 0xB4);
this->unk38_0 = 1;
}//L80388698
if(mapSpecificFlags_get(0xC) || (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && func_803292E0(this))){
if(mapSpecificFlags_get(0xC) || (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) && func_803292E0(this))){
this->yaw_ideal = func_80329784(this);
}else{//L803886E4
if(randf() < 0.02){//D_8038B1D0){
@@ -427,7 +427,7 @@ void func_80388080(Actor *this){
func_80387E64(this);
}
this->unk28 = 5.0f;
if(mapSpecificFlags_get(0xC) || (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE))){ //L8038892C
if(mapSpecificFlags_get(0xC) || (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))){ //L8038892C
if(!func_80387FA8(this, local, (s32)this->yaw, (s32)this->unk28)){
if(func_80329480(this)){
func_80328CEC(this, (s32)this->yaw, 0x78, 0xb4);

View File

@@ -420,7 +420,7 @@ void chsmmole_Update(Actor * this){
this->unk28 = nodeprop_getRadius(sp40);
}//L80389A8C
if(this->unkF4_8 == 1){
if(func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
func_80388FA0(this, 3);
}
}

View File

@@ -85,8 +85,8 @@ bool __chClam_updateTarget(Actor *this, f32 arg1) {
this->unk28 = phi_f2 / arg1;
this->yaw_ideal = func_80257204(this->position[0], this->position[2], target_position[0], target_position[2]);
if ((func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11) < this->unk28) {
this->unk28 = (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) != 0) ? 0.0f : 17.0f;
if ((volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11) < this->unk28) {
this->unk28 = (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) != 0) ? 0.0f : 17.0f;
} else if (sp38 == 0) {
__chClam_func_803863F0(SFX_AE_YUMYUM_TALKING, randf2(0.9f, 1.0f), 22000, this->position, 500.0f, 2000.0f);
}
@@ -108,13 +108,13 @@ bool __chClam_rotateTowardTarget(Actor *this, s32 arg1) {
if (((f64) animctrl_getAnimTimer(this->animctrl) < 0.1) && ((f64) randf() < 0.5)) {
if (this->unk1C[0] != 0.0f) {
arg1 *= 2;
this->unk28 = (f32) randi2(0, 0.5*(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11));
this->unk28 = (f32) randi2(0, 0.5*(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11));
this->yaw_ideal += (f32) randi2(-arg1, arg1);
} else if ((f64) randf() < 0.4) {
this->unk28 = 0.0f;
this->yaw_ideal += (f32) randi2(-arg1, arg1);
} else {
this->unk28 = (f32) randi2(0.33 * (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11), func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11);
this->unk28 = (f32) randi2(0.33 * (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11), volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11);
this->yaw_ideal = this->yaw;
}
this->unk1C[0] = 0.0f;

View File

@@ -48,7 +48,7 @@ void chtreasure_update(Actor *this){
if(!this->initialized){
this->initialized = TRUE;
if(this->unkF4_8 == 1 && !func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(this->unkF4_8 == 1 && !volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
marker_despawn(this->marker);
return;
}

View File

@@ -116,7 +116,7 @@ void func_8038A23C( s32 arg0, BKVtxRef *vtx_ref, Vtx *vtx, s32 arg2){
void func_8038A258(s32 arg0) {
if (arg0 == 1) {
if (func_803203FC(2)) {
if (volatileFlag_get(VOLATILE_FLAG_2)) {
item_set(ITEM_0_HOURGLASS_TIMER, 3000 - 1);
} else {
item_set(ITEM_0_HOURGLASS_TIMER, 6000 - 1);
@@ -247,14 +247,14 @@ void func_8038ABA0(u32 arg0){
if(arg0 & 0x400){
func_80356560(0xC5);
}
func_803204E4(0x78, 0);
volatileFlag_set(0x78, 0);
for(i = 4; i < 0xb; i++){
if( arg0 & (1 << i)){
func_803204E4(0x93 + i, TRUE);
func_803204E4(0x78, TRUE);
volatileFlag_set(0x93 + i, TRUE);
volatileFlag_set(0x78, TRUE);
}
else{
func_803204E4(0x93 + i, FALSE);
volatileFlag_set(0x93 + i, FALSE);
}
}
}
@@ -269,7 +269,7 @@ void func_8038AC48(LetterFloorTile *arg0) {
s32 phi_s1;
bool phi_s7;
temp_s5 = func_803203FC(2);
temp_s5 = volatileFlag_get(VOLATILE_FLAG_2);
phi_s7 = FALSE;
sp3C = func_8038BD10(arg0);
for(i_ptr = codesTable; i_ptr->code != 0; i_ptr++){
@@ -284,7 +284,7 @@ void func_8038AC48(LetterFloorTile *arg0) {
phi_s1 |= (0x10 << i);
}
};
if (func_803203FC(0x78)) {
if (volatileFlag_get(0x78)) {
phi_s1 |= 0x800;
}
}
@@ -310,8 +310,8 @@ void func_8038AC48(LetterFloorTile *arg0) {
if (temp_s5) {
item_set(ITEM_6_HOURGLASS, FALSE);
func_803204E4(3, 0);
func_803204E4(5, 1);
volatileFlag_set(3, 0);
volatileFlag_set(5, 1);
func_8038A258(2);
} else {
var_v0 = i_ptr->unk4;
@@ -366,7 +366,7 @@ void func_8038AFC8(void){
iPtr->unk6 = 0;
}
if(func_803203FC(2))
if(volatileFlag_get(VOLATILE_FLAG_2))
strcpy(codesTable[0].code, "j4663n86pink"); //EIOOZAKOJNAB
else
strcpy(codesTable[0].code, "knip68n3664j"); //BANJOKAZOOIE
@@ -410,7 +410,7 @@ void func_8038B094(void){
func_803228D8();
timedFunc_set_3(2.0f, (GenFunction_3) func_802E4078, MAP_7_TTC_TREASURE_TROVE_COVE, 1, 0);
}
else if(levelSpecificFlags_get(2) || func_803203FC(2)){
else if(levelSpecificFlags_get(2) || volatileFlag_get(VOLATILE_FLAG_2)){
func_8034E71C(sp2C, -500, 0.0f);
}
else{
@@ -437,7 +437,7 @@ void func_8038B094(void){
func_8038AFC8();
if( jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)
&& !func_803203FC(2)
&& !volatileFlag_get(VOLATILE_FLAG_2)
){
BKModel_transformMesh(D_8038D720.model2, 0x3C, func_8038A23C, 0);
D_8038D720.unk8 = 3;
@@ -461,20 +461,20 @@ void func_8038B2F0(void) {
if (D_8038D720.model1 != 0) {
func_8038AA2C();
player_getPosition(sp2C);
if ((D_8038D720.unk10 == 0) && func_803203FC(2) && func_803203FC(3)) {
if ((D_8038D720.unk10 == 0) && volatileFlag_get(VOLATILE_FLAG_2) && volatileFlag_get(VOLATILE_FLAG_3)) {
func_8038A258(1);
}
if ((D_8038D720.unk10 == 1) && item_empty(ITEM_0_HOURGLASS_TIMER)) {
func_8038A258(2);
if (func_803203FC(2)) {
func_803204E4(3, FALSE);
func_803204E4(5, FALSE);
if (volatileFlag_get(VOLATILE_FLAG_2)) {
volatileFlag_set(3, FALSE);
volatileFlag_set(5, FALSE);
} else {
func_8028F66C(BS_INTR_F);
}
}
if ((D_8038D720.unk8 == 0) || (D_8038D720.unk8 == 3)) {
if( (levelSpecificFlags_get(2) || func_803203FC(3))
if( (levelSpecificFlags_get(2) || volatileFlag_get(VOLATILE_FLAG_3))
&& (player_getActiveHitbox(0) == HITBOX_1_BEAK_BUSTER)
&& func_8028F20C()
) {
@@ -483,7 +483,7 @@ void func_8038B2F0(void) {
temp_v0_3 = func_8038A2DC(mesh_id);
if ((temp_v0_3 != NULL) && ((temp_v0_3->unk3 == 2) || (D_8038D720.unk8 == 3))) {
func_8038AC48(temp_v0_3);
if ((D_8038D720.unk8 == 0) && (D_8038D720.unk10 == 0) && (func_803203FC(2) == 0)) {
if ((D_8038D720.unk8 == 0) && (D_8038D720.unk10 == 0) && (volatileFlag_get(VOLATILE_FLAG_2) == 0)) {
func_8038A258(1);
}
}
@@ -613,7 +613,7 @@ u32 func_8038B600(void) {
}
void TTC_func_8038B6D4(s32 arg0, s32 secretCodeIndex, s32 arg2, enum file_progress_e prog_id, s32 prog_val, s32 prog_bit_size, enum file_progress_e arg6){
if( ((arg2 + 20 == secretCodesTable[secretCodeIndex].id) && func_803203FC(arg2))
if( ((arg2 + 20 == secretCodesTable[secretCodeIndex].id) && volatileFlag_get(arg2))
|| arg0 == 3
){
fileProgressFlag_setN(prog_id, prog_val, prog_bit_size);
@@ -657,8 +657,8 @@ void func_8038B800(s32 secretCodeIndex) {
func_8038B564(secretCodeIndex, 7, MAP_7F_FP_WOZZAS_CAVE, 0x89, 0x21);
if (secretCode->id >= 0x14) {
func_8030E58C(SFX_2B_BULL_MOO_1, 1.5f);
func_803204E4(0x65, 1);
func_803204E4(sp38, 1);
volatileFlag_set(0x65, 1);
volatileFlag_set(sp38, 1);
}
TTC_func_8038B6D4(0, secretCodeIndex, 0x6C, FILEPROG_60_CC_PUZZLE_PIECES_PLACED, 5, 3, FILEPROG_33_CC_OPEN);
TTC_func_8038B6D4(0, secretCodeIndex, 0x6D, FILEPROG_63_BGS_PUZZLE_PIECES_PLACED, 7, 3, FILEPROG_34_BGS_OPEN);
@@ -694,7 +694,7 @@ void TTC_func_8038BBA0(s32 secretCodeIndex) {
s32 i;
if ((s32) secretCodesTable[secretCodeIndex].id >= 0x14) {
if (func_803203FC(secretCodesTable[secretCodeIndex].id - 0x14)) {
if (volatileFlag_get(secretCodesTable[secretCodeIndex].id - 0x14)) {
func_8038B5B4();
return;
}

View File

@@ -173,7 +173,7 @@ void mainLoop(void){
}//L8023DE54
if( !func_8032056C()
|| !levelSpecificFlags_validateCRC1()
|| !func_80320240()
|| !dummy_func_80320240()
){
s32 offset;
//render weird CRC failure image

View File

@@ -182,9 +182,9 @@ void pfsManager_update(void) {
temp_t6 = demo_readInput(&pfsManagerContPadData, &sp5C) == 0;
if ((D_802812D0.button & s0) || temp_t6) {
if (D_802812D0.button & s0) {
func_803204E4(0x64, 1);
volatileFlag_set(0x64, 1);
} else {
func_803204E4(0x63, 1);
volatileFlag_set(0x63, 1);
}
}
func_8033DD04(sp5C);

View File

@@ -181,8 +181,8 @@ void func_8024AF00(s32 arg0, s32 arg1){
void func_8024AF48(void){
if(!D_802806F4) return;
if(func_803203FC(1)) return;
if(func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) return;
if(volatileFlag_get(VOLATILE_FLAG_1)) return;
if(volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) return;
if(func_802D686C()) return;
if(func_8028F22C()) return;
if(gctransition_8030BDC0()) return;

View File

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

View File

@@ -83,11 +83,11 @@ void __baanim_applyBottlesBonus(s32 arg0, s32 arg1) {
sp28 = func_802E4B38();
if (func_803203FC(UNKFLAGS1_78_SANDCASTLE_NO_BONUS) == 0) {
if (volatileFlag_get(VOLATILE_FLAG_78_SANDCASTLE_NO_BONUS) == 0) {
D_8037BF4C = 0;
} else {
for(phi_s0 = 0; phi_s0 < 7; phi_s0++){
if (func_803203FC(phi_s0 + UNKFLAGS1_97_SANDCASTLE_BOTTLES_BONUS_1)) {
if (volatileFlag_get(phi_s0 + VOLATILE_FLAG_97_SANDCASTLE_BOTTLES_BONUS_1)) {
D_8037BF4C = D_803635EC[phi_s0];
}
}

View File

@@ -205,10 +205,10 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a
if(arg1 & 0x400000){
sp24 = arg1 + 0xFFC00000;
if(!func_803203FC(sp24)){
func_803204E4(sp24, 1);
if(!volatileFlag_get(sp24)){
volatileFlag_set(sp24, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
func_803204E4(0xBF, 1);
volatileFlag_set(0xBF, 1);
func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6);
}
}
@@ -216,7 +216,7 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a
if(!fileProgressFlag_get(arg1)){
fileProgressFlag_set(arg1, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
func_803204E4(0xBF, 1);
volatileFlag_set(0xBF, 1);
func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6);
}
}
@@ -231,8 +231,8 @@ int __baMarker_8028BC60(void){
}
void __baMarker_resolveCollision(Prop *other_prop){
s32 plyr_collision_type;
s32 obj_collision_type;
enum marker_collision_func_type_e plyr_collision_type;
enum marker_collision_func_type_e obj_collision_type;
s32 plyr_hitbox_type;
int i;
ActorMarker *marker; //0xbc
@@ -253,8 +253,8 @@ void __baMarker_resolveCollision(Prop *other_prop){
s32 tmp1;
if(*((u32*)(((u32)other_prop) + 8)) & 1){
plyr_collision_type = 0;
obj_collision_type = 0;
plyr_collision_type = MARKER_COLLISION_FUNC_0;
obj_collision_type = MARKER_COLLISION_FUNC_0;
marker = other_prop->actorProp.marker;
actor = NULL;
if(marker->unk3E_0){
@@ -273,12 +273,12 @@ void __baMarker_resolveCollision(Prop *other_prop){
switch(marker->id){
case 0x125: //L8028BE88
case 0x126: //L8028BE88
obj_collision_type = 1;
obj_collision_type = MARKER_COLLISION_FUNC_1;
break;
case 0x97: //L8028BE94
plyr_collision_type = 1;
obj_collision_type = 1;
case MARKER_97_BOGGY_2: //L8028BE94
plyr_collision_type = MARKER_COLLISION_FUNC_1;
obj_collision_type = MARKER_COLLISION_FUNC_1;
break;
case 0xBA: //L8028BEA8
@@ -289,7 +289,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
|| marker->unk40_31 == 5
|| marker->unk40_31 == 6
){
obj_collision_type = 1;
obj_collision_type = MARKER_COLLISION_FUNC_1;
}
break;
@@ -314,7 +314,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
case 0xA1: //L8028BF54
if(plyr_hitbox_type == HITBOX_1_BEAK_BUSTER){
func_802A02B4(1);
obj_collision_type = 2;
obj_collision_type = MARKER_COLLISION_FUNC_2_DIE;
}
break;
@@ -327,7 +327,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
}
if(plyr_hitbox_type != HITBOX_6_WONDERWING){
plyr_collision_type = 2;
plyr_collision_type = MARKER_COLLISION_FUNC_2_DIE;
}
break;
@@ -389,7 +389,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
spAC[1] += 40.0f;
if(func_802458E0(spAC, actor, 0x87) == 0)
return;
func_803204E4(0x1E, 1);
volatileFlag_set(0x1E, 1);
if(fileProgressFlag_get(((actor->unkF4_8 - 1) ^ 1) + 0x49)){
actor->unk10_12 = 2;
}
@@ -516,7 +516,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
case MARKER_F3_GV_KAZOOIE_TARGET: //L8028C64C
if(plyr_hitbox_type == HITBOX_3_BEAK_BOMB){
mapSpecificFlags_set(6,1);
obj_collision_type = 1;
obj_collision_type = MARKER_COLLISION_FUNC_1;
}
break;
@@ -583,7 +583,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
return;
if( map_get() == MAP_8E_GL_FURNACE_FUN
&& func_803203FC(0)
&& volatileFlag_get(VOLATILE_FLAG_0)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){
func_80356540(FILEPROG_A6_FURNACE_FUN_COMPLETE);
@@ -695,7 +695,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(__baMarker_8028BC20(marker))
return;
if( map_get() == MAP_8E_GL_FURNACE_FUN
&& func_803203FC(0)
&& volatileFlag_get(VOLATILE_FLAG_0)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){
func_80356540(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
@@ -715,7 +715,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(ability_isUnlocked(ABILITY_D_SHOCK_JUMP)){
miscflag_set(MISC_FLAG_2_ON_SPRING_PAD);
}else{
if(!func_80320454(0xC, 1)){
if(!volatileFlag_getAndSet(0xC, 1)){
func_80311480(0xA24, 4, 0, 0, 0, 0);
}
}
@@ -727,7 +727,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(ability_isUnlocked(ABILITY_9_FLIGHT)){
miscflag_set(MISC_FLAG_1_ON_FLIGHT_PAD);
}
else if(! func_80320454(0xD, 1)){
else if(! volatileFlag_getAndSet(0xD, 1)){
func_80311480(0xA25, 4, 0, 0, 0, 0);
}
break;
@@ -775,33 +775,33 @@ void __baMarker_resolveCollision(Prop *other_prop){
chtrainers_pickup(actor);
break;
case 0x1AE: //L8028CFEC
case MARKER_1AE_ZUBBA: //L8028CFEC
switch(plyr_hitbox_type){
case HITBOX_1_BEAK_BUSTER:
case HITBOX_2_BEAK_BARGE:
case HITBOX_5_PECK:
case HITBOX_6_WONDERWING:
obj_collision_type = 2;
obj_collision_type = MARKER_COLLISION_FUNC_2_DIE;
break;
default:
plyr_collision_type = 2;
plyr_collision_type = MARKER_COLLISION_FUNC_2_DIE;
break;
}
break;
case MARKER_1B1_CCW_GOBI: //L8028D024
if(plyr_hitbox_type == HITBOX_1_BEAK_BUSTER)
obj_collision_type = 1;
obj_collision_type = MARKER_COLLISION_FUNC_1;
break;
}//L8028D034
if(func_80297C6C() == 3){
plyr_collision_type = 0;
plyr_collision_type = MARKER_COLLISION_FUNC_0;
}
if(obj_collision_type){
miscflag_set(8);
}
func_8032FFF4(playerMarker, marker, plyr_collision_type);
func_8032FFF4(marker, playerMarker, obj_collision_type);
marker_callCollisionFunc(playerMarker, marker, plyr_collision_type);
marker_callCollisionFunc(marker, playerMarker, obj_collision_type);
if(marker->unk3E_0){
func_8032B258(actor, obj_collision_type);
}

View File

@@ -44,7 +44,7 @@ void chBeehive_update(Actor *this){
this->marker->propPtr->unk8_3 = 1;
this->unk44_31 = func_8030D90C();
this->unk16C_4 = 1;
this->unk38_0 = func_803203FC(1)| func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE);
this->unk38_0 = volatileFlag_get(VOLATILE_FLAG_1)| volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE);
}//L802CE960
if(map_get() == MAP_27_FP_FREEZEEZY_PEAK){
if(func_8038BFA0()){

View File

@@ -44,7 +44,7 @@ void func_802C5E80(Actor *this){
}
void func_802C5EB8(Actor *this){
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE))
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))
return;
if(this->unk38_31){

View File

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

View File

@@ -36,7 +36,7 @@ void func_802CD8C0(Actor *this){
this->marker->unk2C_1 = 1;
this->marker->collidable = 0;
*(s32*)this->unkBC = 0; //TODO Make struct
if(func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
marker_despawn(this->marker);
return;
}

View File

@@ -154,8 +154,8 @@ void chCollectible_update(Actor *this) {
if(!this->unk38_0)
return;
if (func_80320424(0x23, 3) != this->unk10_12) {
func_802D8C98(this, func_80320424(0x23, 3));
if (volatileFlag_getN(0x23, 3) != this->unk10_12) {
func_802D8C98(this, volatileFlag_getN(0x23, 3));
}
switch (this->state) {

View File

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

View File

@@ -176,7 +176,7 @@ void func_8035B6CC(Actor *this){
void func_8035B75C(Actor *this){
subaddie_set_state_with_direction(this, 3, 0.01f, 1);
actor_loopAnimation(this);
this->unk28 = func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0.0 : 12.0;
this->unk28 = volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) ? 0.0 : 12.0;
func_8030E878(0x3F4, randf2(1.0f, 1.2f), 32000, this->position, this->scale*400.0f, this->scale*1800.0f);
}

View File

@@ -303,7 +303,7 @@ void chicecube_update(Actor *this){
case 1: // L8035AC9C
animctrl_setAnimTimer(this->animctrl, 0.0f);
if( func_80359DF4(this, 900)
|| (this->unkF4_8 == 2 && func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE))
|| (this->unkF4_8 == 2 && volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))
){
subaddie_set_state_with_direction(this, 2, 0.0001f, 1);
actor_playAnimationOnce(this);

View File

@@ -110,7 +110,7 @@ void chJinjo_update(Actor * this){
local->unk8 = (this->position_y < func_80309B24(this->position));
this->marker->collisionFunc = __chJinjo_802CDBA8;
marker_setFreeMethod(this->marker, __chJinjo_802CDD3C);
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
marker_despawn(this->marker);
}
}//L802CDE24

View File

@@ -332,7 +332,7 @@ void chSnacker_spawn(void) {
_player_getPosition(spawn_position);
if (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) != 0) {
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) != 0) {
nodeprop_getPosition(func_80304CAC(0x3CB, spawn_position), spawn_position);
}
else{
@@ -372,7 +372,7 @@ void chSnacker_spawn(void) {
marker_despawn(s_chSnacker_marker);
return;
}
if (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) == 0) {
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) == 0) {
func_8032BB88(snacker, 5000, 750);
func_8024BD08(0);
func_8025A6EC(COMUSIC_34_SNACKER_DANGER, 0);

View File

@@ -66,23 +66,23 @@ void chtrainers_update(Actor *this){
ml_vec3f_copy(this->unk1C, this->position);
this->velocity[0] = this->yaw;
this->velocity[1] = 0.0f;
this->unk10_12 = !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && !func_803203FC(0x1);
this->unk10_12 = !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE) && !volatileFlag_get(0x1);
subaddie_set_state(this, 0);
}
if(!func_803203FC(0xF) && ability_isUnlocked(ABILITY_11_TURBO_TALON)){
func_803204E4(0xF, TRUE);
if(!volatileFlag_get(0xF) && ability_isUnlocked(ABILITY_11_TURBO_TALON)){
volatileFlag_set(0xF, TRUE);
}
switch(this->state){
case 0://L802CA5A8
if(func_803296D8(this, 2000) || sp2C){
if( func_80329530(this, 0xfa)
&& !func_803203FC(0xf)
&& !volatileFlag_get(0xf)
&& player_getTransformation() == TRANSFORM_1_BANJO
){
if(func_80311480(0xda4, 0, NULL, NULL, NULL, NULL)){
func_803204E4(0xf, TRUE);
volatileFlag_set(0xf, TRUE);
}
}//L802CA620
_chtrainers_802CA378(this, sp2C);

View File

@@ -41,12 +41,12 @@ void chwadingboots_update(Actor *this){
if(!this->initialized){
this->initialized = TRUE;
this->velocity[0] = this->yaw;
this->unk10_12 = !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && !func_803203FC(0x1);
this->unk10_12 = !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE) && !volatileFlag_get(0x1);
subaddie_set_state(this, 0);
}
if(!func_803203FC(0x10) && ability_isUnlocked(ABILITY_E_WADING_BOOTS)){
func_803204E4(0x10, TRUE);
if(!volatileFlag_get(0x10) && ability_isUnlocked(ABILITY_E_WADING_BOOTS)){
volatileFlag_set(0x10, TRUE);
}
switch(this->state){
@@ -65,12 +65,12 @@ void chwadingboots_update(Actor *this){
}
}
if(func_803203FC(0x10)) break;
if(volatileFlag_get(0x10)) break;
if(!func_80329530(this, 250)) break;
if(player_getTransformation() != TRANSFORM_1_BANJO) break;
if(func_80311480(ASSET_DA5_DIALOG_WADINGBOOTS_MEET, 0, NULL, NULL, NULL, NULL)){
func_803204E4(0x10, TRUE);
volatileFlag_set(0x10, TRUE);
}
break;

View File

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

View File

@@ -338,10 +338,10 @@ void func_802BC2CC(s32 arg0) {
f32 *sp20 = D_8037D918;
s32 sp1C;
if (func_803203FC(0xE) != 0) {
if (volatileFlag_get(0xE) != 0) {
func_80347A14(0);
}
if (func_80320454(0xE, 0) || func_802D686C() || (arg0 == 0x63) || !func_802BB720(arg0, D_8037D908, D_8037D918, &sp1C)) {
if (volatileFlag_getAndSet(0xE, 0) || func_802D686C() || (arg0 == 0x63) || !func_802BB720(arg0, D_8037D908, D_8037D918, &sp1C)) {
if (ncCameraType == CAMERA_TYPE_2_DYNAMIC) {
func_802BE794();
}

View File

@@ -133,7 +133,7 @@ int func_8028ADB4(void){
}
int func_8028ADF0(void){
return func_803203FC(0x9d);
return volatileFlag_get(0x9d);
}
bool func_8028AE10(void) {

View File

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

View File

@@ -104,8 +104,8 @@ void chHoneycomb_update(Actor *this){
if(local->uid == 0)
local->uid = (!this->unk44_2)? D_8037DDC0 : func_802C9C40(this);
if( honeycombscore_get(local->uid)
|| func_803203FC(1)
|| func_803203FC(2)
|| volatileFlag_get(VOLATILE_FLAG_1)
|| volatileFlag_get(VOLATILE_FLAG_2)
){
marker_despawn(this->marker);
return;

View File

@@ -47,7 +47,7 @@ extern struct43s chFightFlightPad_D_80366FB4 = {
/* .code */
void chShockJump_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){
if(volatileFlag_get(VOLATILE_FLAG_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){
ability_unlock(ABILITY_D_SHOCK_JUMP);
}
@@ -61,7 +61,7 @@ void chShockJump_update(Actor *this){
void chFlightPad_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){
if(volatileFlag_get(VOLATILE_FLAG_8A_SANDCASTLE_FLIGHT_UNLOCKED)){
ability_unlock(ABILITY_9_FLIGHT);
}

View File

@@ -372,7 +372,7 @@ void func_802CCC5C(Actor *this) {
}
if (local->unk4 >= 1.0f) {
local->unk4 = 1.0f;
if (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) {
local->unk3A = 0;
} else {
if (this->state == 2) {

View File

@@ -378,7 +378,7 @@ void chBeeSwarm_update(Actor *this) {
subaddie_set_state(this, (this->unk100 != NULL) ? 1 : 2);
this->unk60 = 0.0f;
chBeeSwarm_802CF040(this);
this->unk38_0 = func_803203FC(1) | func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE);
this->unk38_0 = volatileFlag_get(VOLATILE_FLAG_1) | volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE);
}
if (!subaddie_playerIsWithinSphere(this, 0xFA0))

View File

@@ -123,7 +123,7 @@ void chMumbo_func_802D18B4(Actor *this) {
} else {
player_is_within_range = chMumbo_withinHorzDistToPlayer(0, -107, 188);
}
if(player_is_within_range || func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(player_is_within_range || volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
subaddie_set_state_forward(this, 2);
if( !fileProgressFlag_get(FILEPROG_11_HAS_MET_MUMBO)
|| (!fileProgressFlag_get(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) && this->unk38_0)
@@ -221,8 +221,8 @@ void chMumbo_update(Actor *this) {
f32 temp_f12;
this->unk130 = func_803255FC;
if( !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
if( !volatileFlag_get(VOLATILE_FLAG_1)
&& !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
&& map_get() != MAP_7A_GL_CRYPT) {
item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, 0);
}
@@ -278,8 +278,8 @@ void chMumbo_update(Actor *this) {
actor_playAnimationOnce(this);
if (actor_animationIsAt(this, 0.999f)) {
if( !fileProgressFlag_get(FILEPROG_11_HAS_MET_MUMBO)
&& !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
&& !volatileFlag_get(VOLATILE_FLAG_1)
&& !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
) {
subaddie_set_state(this, 3);
func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
@@ -288,8 +288,8 @@ void chMumbo_update(Actor *this) {
}
if( !fileProgressFlag_get(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE)
&& !func_803203FC(1)
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
&& !volatileFlag_get(VOLATILE_FLAG_1)
&& !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
&& this->unk38_0
){
subaddie_set_state(this, 3);
@@ -428,7 +428,7 @@ void chMumbo_update(Actor *this) {
case 7: //L802D2704
chMumbo_func_802D186C(this);
if (func_803203FC(FILEPROG_11_HAS_MET_MUMBO) == 0) {
if (volatileFlag_get(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(FILEPROG_11_HAS_MET_MUMBO, TRUE);
volatileFlag_set(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(FILEPROG_12_HAS_TRANSFORMED_BEFORE) == 0) {
if (volatileFlag_get(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(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
volatileFlag_set(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
}
}
actor_loopAnimation(this);

View File

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

View File

@@ -14,7 +14,7 @@ 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 fileProgressFlag_set(s32, bool);
extern void func_803204E4(s32, bool);
extern void volatileFlag_set(s32, bool);
void func_802D3D54(Actor *this);
void func_802D3DA4(Actor *this);
@@ -137,17 +137,20 @@ void func_802D2FB0(Actor *this, s32 arg1, s32 arg2, s32 arg3, f32 arg4, s32 arg5
}
}
void func_802D3138(ActorMarker *marker, ActorMarker *other_marker){
if(marker->id == 0x224 || marker->id == 0x225){
// collision function if player shoots egg at spider webs
void func_802D3138(ActorMarker *marker, ActorMarker *other_marker) {
if(marker->id == MARKER_224_BREAKABLE_FLOOR_COBWEB || marker->id == MARKER_225_BREAKABLE_WALL_COBWEB) {
func_8025A70C(COMUSIC_2B_DING_B);
}
}
void func_802D317C(ActorMarker *marker, enum file_progress_e prog_flag_id){
// called from collision die function below, set according file flag and despawns object
void func_802D317C(ActorMarker *marker, enum file_progress_e prog_flag_id) {
fileProgressFlag_set(prog_flag_id, TRUE);
marker_despawn(marker);
}
// collision die function for several objects in Lair
void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
Actor *sp2C;
@@ -166,7 +169,7 @@ 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;
fileProgressFlag_set(0xA5, 1);
fileProgressFlag_set(FILEPROG_A5_LAIR_CRYPT_GATE_OPEN, 1);
break;
case MARKER_109_BREAKABLE_BRICK_WALL:
@@ -261,21 +264,21 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
func_8030E540(SFX_D9_WOODEN_CRATE_BREAKING_1);
func_802EE2E8(sp2C, 7, 9, 0x78, 0.43f, 1.3f, 3.0f);
func_802EE2E8(sp2C, 3, 6, 0x78, 0.43f, 1.3f, 3.0f);
func_802D317C(arg0, 0xC5);
func_802D317C(arg0, FILEPROG_C5_RAREWARE_BOX_BROKEN);
break;
case 0x11A:
func_8030E540(SFX_82_METAL_BREAK);
func_802EE278(sp2C, 0xE, 0xD, 0x32, 0.8f, 0.9f);
func_802EE278(sp2C, 0xE, 0xD, 0xAA, 0.8f, 0.9f);
func_802D317C(arg0, 0xC2);
func_802D317C(arg0, FILEPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
break;
case 0x118:
func_8030E540(SFX_82_METAL_BREAK);
func_802EE278(sp2C, 0xE, 0xD, 0x50, 1.2f, 0.9f);
func_802EE278(sp2C, 0xE, 0xD, 0xB4, 1.2f, 0.9f);
func_802D317C(arg0, 0xCD);
func_802D317C(arg0, FILEPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
break;
case 0x119:
@@ -283,7 +286,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
func_802EE278(sp2C, 0xE, 9, 0x50, 1.2f, 0.9f);
func_802EE278(sp2C, 0xE, 9, 0xAA, 1.2f, 0.9f);
func_802EE278(sp2C, 0xE, 9, 0x104, 1.2f, 0.9f);
func_802D317C(arg0, 0xCE);
func_802D317C(arg0, FILEPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN);
break;
case 0x22D:
@@ -315,7 +318,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
func_802EE278(sp2C, 4, 0x32, 0x50, 1.0f, 1.4f);
func_802EE278(sp2C, 4, 0x32, 0xA0, 1.0f, 1.4f);
func_802EE278(sp2C, 4, 0x1E, 0xF0, 0.8f, 1.1f);
func_802D317C(arg0, 0xC3);
func_802D317C(arg0, FILEPROG_C3_ICE_BALL_TO_CHEATO_BROKEN);
break;
case MARKER_121_GLASS_EYE:
@@ -572,7 +575,7 @@ void func_802D4680(Actor *this){
if(func_80258640(this->position, sp1C) < 150.0f && func_8028F20C()){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if(map_get() == MAP_8E_GL_FURNACE_FUN){
func_803204E4(0, 0);
volatileFlag_set(0, 0);
func_802D4614(MAP_80_GL_FF_ENTRANCE);
}
else{
@@ -624,7 +627,7 @@ 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) && fileProgressFlag_get(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x400000) && func_803203FC(arg1 - 0x400000))
|| (((arg1 & 0xC00000) == 0x400000) && volatileFlag_get(arg1 - 0x400000))
)
&& (arg2 != this->state)
) {
@@ -633,7 +636,7 @@ void func_802D4928(Actor *this, s32 arg1, s32 arg2, s32 arg3) {
}
if( ( (((arg1 & 0xC00000) == 0) && !mapSpecificFlags_get(arg1 - 0))
|| (((arg1 & 0xC00000) == 0x800000) && !fileProgressFlag_get(arg1 - 0x800000))
|| (((arg1 & 0xC00000) == 0x400000) && !func_803203FC(arg1 - 0x400000))
|| (((arg1 & 0xC00000) == 0x400000) && !volatileFlag_get(arg1 - 0x400000))
)
&& (arg2 == this->state)
) {
@@ -652,10 +655,10 @@ void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) {
fileProgressFlag_set(arg1 + 0xFF800000, 1);
}
if (arg1 & 0x400000) {
func_803204E4(arg1 + 0xFFC00000, 1);
volatileFlag_set(arg1 + 0xFFC00000, 1);
}
}
if( (((arg1 & 0x800000) && (fileProgressFlag_get(arg1 + 0xFF800000))) || ((arg1 & 0x400000) && (func_803203FC(arg1 + 0xFFC00000))))
if( (((arg1 & 0x800000) && (fileProgressFlag_get(arg1 + 0xFF800000))) || ((arg1 & 0x400000) && (volatileFlag_get(arg1 + 0xFFC00000))))
&& (fileProgressFlag_get(arg2)) && (this->animctrl == NULL)
) {
subaddie_set_state_with_direction(this, 8, 0.0f, 1);
@@ -761,7 +764,7 @@ void func_802D5000(enum map_e map_id){
}
void func_802D5058(enum map_e map_id, s32 arg1, bool arg2) {
func_803204E4(1, 1);
volatileFlag_set(1, 1);
D_80367684 = map_id;
D_80367688 = arg1;
if (arg2) {
@@ -784,7 +787,7 @@ void func_802D5058(enum map_e map_id, s32 arg1, bool arg2) {
void func_802D5140(ActorMarker *caller, enum asset_e text_id, s32 arg2){
itemscore_noteScores_get(func_80320424(0x19, 4));
itemscore_noteScores_get(volatileFlag_getN(0x19, 4));
}
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){
@@ -798,7 +801,7 @@ void func_802D5178(s32 arg0, enum file_progress_e arg1, s32 arg2, enum map_e arg
}
void func_802D520C(Gfx **gfx, Mtx **mtx, Vtx **vtx){
if(func_803203FC(1) && map_get() != MAP_8E_GL_FURNACE_FUN){
if(volatileFlag_get(VOLATILE_FLAG_1) && map_get() != MAP_8E_GL_FURNACE_FUN){
func_80319214(gfx, mtx, vtx);
}
}
@@ -1020,16 +1023,16 @@ void func_802D5628(void){
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_DOOR_OF_GRUNTY, 0x28);
if(func_803203FC(0x18)){
if(volatileFlag_get(0x18)){
if(!fileProgressFlag_get(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT)){
func_80311174(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140);
fileProgressFlag_set(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT, TRUE);
func_803204E4(0x18, 0);
volatileFlag_set(0x18, 0);
}
else{//L802D5DD8
if(!func_803203FC(0x16)){
if(!volatileFlag_get(0x16)){
func_80311174(0xF77, 0x4, NULL, NULL, NULL, NULL, func_802D5140);
func_803204E4(0x18, 0);
volatileFlag_set(0x18, 0);
}
}
}//L802D5E18
@@ -1042,7 +1045,7 @@ void func_802D5628(void){
&& !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
){
D_8037DE04 += time_getDelta();
if(D_80367680 < D_8037DE04 && !func_803203FC(0x16)){
if(D_80367680 < D_8037DE04 && !volatileFlag_get(0x16)){
if(fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
sp4C = 0xF9D;
}
@@ -1054,10 +1057,10 @@ void func_802D5628(void){
D_8037DE00 = randi2(0xF86, sp4C);
}//L802D5F1C
if(func_803203FC(0x22)){
if(volatileFlag_get(0x22)){
if(func_80311480(0xF82, 4, NULL, NULL, NULL, NULL)){
fileProgressFlag_set(FILEPROG_C1_BADDIES_ESCAPE_TEXT, TRUE);
func_803204E4(0x22, 0);
volatileFlag_set(0x22, 0);
D_8037DE04 = 0.0f;
D_80367680 += 60.0;
if(300.0 < D_80367680)
@@ -1109,7 +1112,7 @@ void func_802D6114(void){
if(map_getLevel(sp24) != map_getLevel(map_get())){
func_802E4A70();
}//L802D6194
func_803204E4(0x21, 1);
volatileFlag_set(0x21, 1);
if(sp24 != 0x1C || !func_8025ADBC(COMUSIC_23_MMM_INSIDE_CHURCH)){
func_803228D8();
}
@@ -1194,7 +1197,7 @@ void func_802D63D4(void){
default: //L802D6460
func_802BAFE4(D_80367688);
timedFuncQueue_update();
func_803204E4(0xbf, 0);
volatileFlag_set(0xbf, 0);
func_802D6750();
break;
}
@@ -1216,43 +1219,43 @@ void func_802D6494(void){
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
case ACTOR_212_CC_ENTRANCE_BARS:// L802D6550
if(map_get() == MAP_70_GL_CC_LOBBY && !func_803203FC(UNKFLAGS1_7F_SANDCASTLE_OPEN_CC)){
if(map_get() == MAP_70_GL_CC_LOBBY && !volatileFlag_get(VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_212_CC_ENTRANCE_BARS), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_234_CCW_ENTRANCE_DOOR:// L802D65A0
if(map_get() == MAP_79_GL_CCW_LOBBY && !func_803203FC(UNKFLAGS1_93_SANDCASTLE_OPEN_CCW)){
if(map_get() == MAP_79_GL_CCW_LOBBY && !volatileFlag_get(VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW)){
func_802D485C(actorArray_findActorFromActorId(ACTOR_234_CCW_ENTRANCE_DOOR), SFX_3EC_CCW_DOOR_OPENING, 0.8f, 15000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_210_BGS_ENTRANCE_DOOR:// L802D65F8
if(!func_803203FC(0x84)){
if(!volatileFlag_get(0x84)){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_235_FP_ENTANCE_DOOR:// L802D6624
if(map_get() == MAP_6F_GL_FP_LOBBY && !func_803203FC(UNKFLAGS1_8B_SANDCASTLE_OPEN_FP)){
if(map_get() == MAP_6F_GL_FP_LOBBY && !volatileFlag_get(VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_235_FP_ENTANCE_DOOR), SFX_18_BIGBUTT_SLIDE, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_226_GV_ENTRANCE:// L802D6674
if(map_get() == MAP_6E_GL_GV_LOBBY && !func_803203FC(UNKFLAGS1_87_SANDCASTLE_OPEN_GV)){
if(map_get() == MAP_6E_GL_GV_LOBBY && !volatileFlag_get(VOLATILE_FLAG_87_SANDCASTLE_OPEN_GV)){
func_802D485C(actorArray_findActorFromActorId(ACTOR_226_GV_ENTRANCE), SFX_3EC_CCW_DOOR_OPENING, 0.8f, 15000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_228_MMM_ENTRANCE_DOOR:// L802D66CC
if(!func_803203FC(UNKFLAGS1_8C_SANDCASTLE_OPEN_MMM)){
if(!volatileFlag_get(VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM)){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_20F_RBB_ENTRANCE_DOOR:// L802D66F8
if(map_get() == MAP_77_GL_RBB_LOBBY && !func_803203FC(UNKFLAGS1_90_SANDCASTLE_OPEN_RBB)){
if(map_get() == MAP_77_GL_RBB_LOBBY && !volatileFlag_get(VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_20F_RBB_ENTRANCE_DOOR), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
}
@@ -1311,14 +1314,14 @@ s32 func_802D683C(s32 arg0){
}
int func_802D686C(void){
if(func_803203FC(0x1E)){
if(volatileFlag_get(0x1E)){
return FALSE;
}
return map_get() == D_80367684;
}
int func_802D68B4(void){
return func_802D686C() || func_803203FC(0x21);
return func_802D686C() || volatileFlag_get(0x21);
}
//BREAK????

View File

@@ -36,7 +36,7 @@ void func_802DAA14(Actor *this){
s32 tmp;
s32 text_id;
if(func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
marker_despawn(this->marker);
return;
}

View File

@@ -247,7 +247,7 @@ void func_802DB5A0(Actor *this) {
this->unk124_0 = this->unk138_31 = FALSE;
local->unk38 = 0;
this->unk16C_4 = TRUE;
if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) {
subaddie_set_state(this, 2U);
return;
}

View File

@@ -133,7 +133,7 @@ void func_802DEE1C(Actor *this) {
case 3:
if(animctrl_isStopped(this->animctrl)) {
func_803204E4(0xC3, 1);
volatileFlag_set(VOLATILE_FLAG_C3, 1);
this->state = 4;
}
break;

View File

@@ -69,9 +69,9 @@ void func_802E0B10(Actor *this){
}
}
if( mumboscore_get(local->uid)
|| func_803203FC(1)
|| func_803203FC(2)
|| func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
|| volatileFlag_get(VOLATILE_FLAG_1)
|| volatileFlag_get(VOLATILE_FLAG_2)
|| volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
){
marker_despawn(this->marker);
return;

View File

@@ -214,7 +214,7 @@ void func_802E3BF8(enum game_mode_e next_mode, s32 arg1){
if(arg1){
sp20 = FALSE;
if(next_mode == GAME_MODE_3_NORMAL){
if(func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
if(volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
sp20 = TRUE;
sp1C = 7;
}
@@ -265,8 +265,8 @@ void func_802E3E7C(enum game_mode_e mode){
sp28 = D_8037E8E0.exit;
prev_mode = D_8037E8E0.unk0;
func_802E3BF8(GAME_MODE_2_UNKNOWN, 0);
if(!func_80320454(0x21, 0) || map_getLevel(map_get()) == map_getLevel(D_8037E8E0.map)){
if(!func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE))
if(!volatileFlag_getAndSet(0x21, 0) || map_getLevel(map_get()) == map_getLevel(D_8037E8E0.map)){
if(!volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE))
mapSavestate_save(map_get());
}
func_802E398C(1);
@@ -547,7 +547,7 @@ bool func_802E4424(void) {
&& !func_8028F22C()
&& func_8032056C()
&& levelSpecificFlags_validateCRC1()
&& func_80320248()
&& dummy_func_80320248()
) {
func_802E3BF8(GAME_MODE_4_PAUSED, 0U);
} else if ((func_8024E67C(0) == 1) && (D_8037E8E0.unk0 != 0)) {

View File

@@ -189,7 +189,7 @@ void func_8028E4B0(void) {
sp20 = exit_get();
D_8037BFB8 = 0;
player_setPosition(D_803636C0);
if (func_803203FC(0xE) || func_802D686C() || (sp20 == 0x65)){
if (volatileFlag_get(0xE) || func_802D686C() || (sp20 == 0x65)){
return;
}
if (sp20 == 0x63) {

View File

@@ -1265,7 +1265,7 @@ Actor * func_803055E0(enum actor_e arg0, s32 arg1[3], s32 arg2, s32 arg3, s32 ar
Actor *spawn_actor(enum actor_e arg0, s32 arg1[3], s32 arg2) {
s32 i;
arg0 = (!func_80320248()) ? (ACTOR_4_BIGBUTT) : (arg0);
arg0 = (!dummy_func_80320248()) ? (ACTOR_4_BIGBUTT) : (arg0);
for (i = 0; i < sSpawnableActorSize; i++) {
if (arg0 == sSpawnableActorList[i].infoPtr->actorId) {
return sSpawnableActorList[i].spawnFunc(arg1, arg2, ((0, sSpawnableActorList[i])).infoPtr, sSpawnableActorList[i].unk8);

View File

@@ -905,7 +905,7 @@ void sfx_play(enum sfx_e uid, f32 arg1, u32 sampleRate, f32 position[3], f32 min
__sfx_getPlayerPositionIfPresent(plyr_pos);
if( !(maxFadeDistance <= ml_distance_vec3f(plyr_pos, position))
&& levelSpecificFlags_validateCRC2()
&& func_80320240()
&& dummy_func_80320240()
){
sfxsource = func_8030D90C();
if(sfxsource){

View File

@@ -163,7 +163,7 @@ s32 func_80318F60(enum ff_question_type_e question_type, s32 q_indx, s32 arg2) {
phi_v1 = arg2;
} else {
if (question_type == FFQT_3_GRUNTY) {
phi_a0 = func_80320424((q_indx * 2) + 0x26, 2);
phi_a0 = volatileFlag_getN((q_indx * 2) + 0x26, 2);
} else {
phi_a0 = 0;
}

View File

@@ -120,9 +120,9 @@ void __chMinigame_setState(Actor *this, u32 arg1) {
if (this->unk10_12 == MINIGAME_1_VILE) {
func_80347A14(0);
}
if (func_803203FC(this->unk10_12 + 6) == 0) {
if (volatileFlag_get(this->unk10_12 + 6) == 0) {
func_80324DBC(2.0f, this->unk10_12 + 0x1026, 0xA2, NULL, this->marker, __chMinigame_textCallback1, __chMinigame_transformToCroc);
func_803204E4(this->unk10_12 + 6, 1);
volatileFlag_set(this->unk10_12 + 6, 1);
this->unk138_23 = TRUE;
} else {
func_80324DBC(2.0f, 0xD38, 0x20, NULL, this->marker, __chMinigame_textCallback1, NULL);
@@ -130,15 +130,15 @@ void __chMinigame_setState(Actor *this, u32 arg1) {
break;
case MINIGAME_STATE_2_IN_PROGESS:
func_8028F918(0);
func_803204E4(3, 1);
volatileFlag_set(3, 1);
break;
case MINIGAME_STATE_3_RETURN_TO_FF:
func_803204E4(4, 1);
volatileFlag_set(4, 1);
func_8028F918(2);
func_8025AB00();
func_8025A70C((func_803203FC(5)) ? COMUSIC_3B_MINIGAME_VICTORY : COMUSIC_3C_MINIGAME_LOSS);
func_8025A70C((volatileFlag_get(VOLATILE_FLAG_5)) ? COMUSIC_3B_MINIGAME_VICTORY : COMUSIC_3C_MINIGAME_LOSS);
func_802E4A70();
func_803204E4(0x21, TRUE);
volatileFlag_set(0x21, TRUE);
timedFunc_set_3(2.0f, (GenFunction_3)func_802E4078, MAP_8E_GL_FURNACE_FUN, 1, 1);
break;
}
@@ -146,7 +146,7 @@ void __chMinigame_setState(Actor *this, u32 arg1) {
}
void __chMinigame_free(Actor *this){
func_803204E4(3, 0);
volatileFlag_set(3, 0);
}
void chMinigame_update(Actor *this){
@@ -154,7 +154,7 @@ void chMinigame_update(Actor *this){
this->unk16C_4 = 1;
this->unk10_12 = __chminigame_getCurrentMapId();
actor_collisionOff(this);
if(!func_803203FC(2)){
if(!volatileFlag_get(VOLATILE_FLAG_2)){
func_8031A678(this);
return;
}
@@ -169,12 +169,12 @@ void chMinigame_update(Actor *this){
marker_despawn(this->marker);
return;
}
func_803204E4(5, 0);
func_803204E4(3, 0);
volatileFlag_set(5, 0);
volatileFlag_set(3, 0);
__chMinigame_setState(this, MINIGAME_STATE_1_INTRODUCE_GAME);
gcpausemenu_80314AC8(0);
}
if(func_803203FC(2)){
if(volatileFlag_get(VOLATILE_FLAG_2)){
switch(this->state){
case MINIGAME_STATE_1_INTRODUCE_GAME://L8031AB2C
if(this->unk138_24)
@@ -184,7 +184,7 @@ void chMinigame_update(Actor *this){
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)){
if(!volatileFlag_get(VOLATILE_FLAG_3)){
__chMinigame_setState(this, MINIGAME_STATE_3_RETURN_TO_FF);
}
break;

View File

@@ -9,8 +9,8 @@ extern s32 fileProgressFlag_get(s32);
extern s32 fileProgressFlag_getN(s32 offset, s32 numBits);
extern void func_8031FFAC(void);
extern void fileProgressFlag_set(s32 index, s32 set);
extern void func_8032048C(void);
extern void func_803204E4(s32 arg0, s32 arg1);
extern void volatileFlag_clear(void);
extern void volatileFlag_set(s32 arg0, s32 arg1);
extern void ml_vec3h_to_vec3f(f32 *, s32);
extern NodeProp *func_80304ED0(void*, f32 *);
extern void func_8031CD44(s32, s32, f32, f32, s32);
@@ -299,7 +299,7 @@ void warp_gvEnterMatchingPyramid(s32 arg0, s32 arg1) {
void warp_gvEnterWaterPyramidUpper(s32 arg0, s32 arg1) {
func_80244C78(0);
func_803204E4(0xAC, 1);
volatileFlag_set(0xAC, 1);
func_8031CC8C(arg0, 0x1502);
}
@@ -536,7 +536,7 @@ void func_8031DAA8(s32 arg0, s32 arg1) {
void func_8031DAE0(s32 arg0, s32 arg1) {
if (mapSpecificFlags_get(2) == 0) {
func_803204E4(0xAD, 1);
volatileFlag_set(0xAD, 1);
func_80244C78(0);
mapSpecificFlags_set(2, 1);
func_8025A6EC(COMUSIC_3B_MINIGAME_VICTORY, 0x6D60);
@@ -1498,7 +1498,7 @@ void func_8031FBA0(void) {
jiggyscore_clearAll();
honeycombscore_clear();
mumboscore_clear();
func_8032048C();
volatileFlag_clear();
func_802D6344();
}

View File

@@ -6,10 +6,10 @@ void func_8031FFAC(void);
void fileProgressFlag_set(s32 index, s32 set);
s32 bitfield_get_bit(u8 *array, s32 index);
s32 bitfield_get_n_bits(u8 *array, s32 offset, s32 numBits);
void setBitToArray(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);
void bitfield_set_bit(u8 *array, s32 index, s32 set);
void bitfield_set_n_bits(u8 *array, s32 startIndex, s32 set, s32 length);
void volatileFlag_clear(void);
void volatileFlag_set(s32 arg0, s32 arg1);
s32 fileProgressFlag_getN(s32 offset, s32 numBits);
void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
void ml_vec3h_to_vec3f(f32 *, s32);
@@ -22,22 +22,22 @@ void func_80256E24(f32 *, f32, f32, f32, f32, f32);
/* .data */
s32 D_8036DDF0 = 0x24;
s32 gVolatileFlagsSize = 0x24; // sizeof(gVolatileFlags)
/* .bss */
struct {
s32 unk0;
s32 unk4;
u8 unk8[0x25];
} D_803831A0;
} gFileProgressFlags;
struct {
s32 unk0;
s32 unk4;
u8 unk8[0x19];
} D_803831D0;
} gVolatileFlags;
u8 D_803831F8[0x21]; //copy of D_803831D0
u8 glVolatileFlagsCopy[0x21]; //copy of gVolatileFlags
/* .code */
@@ -53,16 +53,16 @@ void func_8031FC40(void) {
u32 v1;
//obsucre address
t0 = (((s32)&D_803831A0.unk8 & 0xE0000000) >> 15) +
(((s32)&D_803831A0.unk8 & 0x1FC00000) >> 22) +
(((s32)&D_803831A0.unk8 & 0x00300000) << 10) +
(((s32)&D_803831A0.unk8 & 0x000F0000) << 7) +
(((s32)&D_803831A0.unk8 & 0x0000E000) << 14) +
(((s32)&D_803831A0.unk8 & 0x00001800) >> 4) +
(((s32)&D_803831A0.unk8 & 0x00000780) << 10) +
(((s32)&D_803831A0.unk8 & 0x00000060) << 4) +
(((s32)&D_803831A0.unk8 & 0x00000018) << 18) +
(((s32)&D_803831A0.unk8 & 0x00000007) << 11);
t0 = (((s32)&gFileProgressFlags.unk8 & 0xE0000000) >> 15) +
(((s32)&gFileProgressFlags.unk8 & 0x1FC00000) >> 22) +
(((s32)&gFileProgressFlags.unk8 & 0x00300000) << 10) +
(((s32)&gFileProgressFlags.unk8 & 0x000F0000) << 7) +
(((s32)&gFileProgressFlags.unk8 & 0x0000E000) << 14) +
(((s32)&gFileProgressFlags.unk8 & 0x00001800) >> 4) +
(((s32)&gFileProgressFlags.unk8 & 0x00000780) << 10) +
(((s32)&gFileProgressFlags.unk8 & 0x00000060) << 4) +
(((s32)&gFileProgressFlags.unk8 & 0x00000018) << 18) +
(((s32)&gFileProgressFlags.unk8 & 0x00000007) << 11);
//unobscure address
t1 = ((t0 & 0x1E0600) << 0xB) | ((s32) (t0 & 0x603800) / 8);
@@ -79,7 +79,7 @@ void func_8031FC40(void) {
v0 = (((v0 - ptr[v1]) & 0x1F) << 0xF) ^ ((ptr[v1]* 0x1B) + (v0 >> 0xB));
}
scrambled_ptr = (s32 *) ((((s32) &D_803831A0 & 0x55555555) << 1) + (((s32) &D_803831A0 & 0xAAAAAAAA) >> 1));
scrambled_ptr = (s32 *) ((((s32) &gFileProgressFlags & 0x55555555) << 1) + (((s32) &gFileProgressFlags & 0xAAAAAAAA) >> 1));
unscrambled_ptr = (s32 *) ((((s32) scrambled_ptr & 0x55555555) << 1) | (((s32) scrambled_ptr & 0xAAAAAAAA) >> 1));
*unscrambled_ptr = v0;
}
@@ -92,7 +92,7 @@ u32 func_8031FE40(void) {
var_v1 = 0xDE1C05;
var_v0 = 0x25;
obscured_addr = (u8*)OBSCURE(&D_803831A0.unk8[0]);
obscured_addr = (u8*)OBSCURE(&gFileProgressFlags.unk8[0]);
for(var_a2 = 0; var_a2 < var_v0; var_a2++){
var_v1 += ((var_v1 % 4) + var_a2) * obscured_addr[var_a2];
}
@@ -101,16 +101,16 @@ u32 func_8031FE40(void) {
void func_8031FEC0(void) {
u32 *obscured_addr;
obscured_addr = (u32*)OBSCURE(&D_803831A0.unk4);
obscured_addr = (u32*)OBSCURE(&gFileProgressFlags.unk4);
*obscured_addr = func_8031FE40();
}
bool fileProgressFlag_get(enum file_progress_e index) {
return bitfield_get_bit(D_803831A0.unk8, index);
return bitfield_get_bit(gFileProgressFlags.unk8, index);
}
s32 fileProgressFlag_getN(s32 offset, s32 numBits) {
return bitfield_get_n_bits(D_803831A0.unk8, offset, numBits);
return bitfield_get_n_bits(gFileProgressFlags.unk8, offset, numBits);
}
s32 fileProgressFlag_getAndSet(s32 index, s32 set) {
@@ -125,27 +125,27 @@ void func_8031FFAC(void) {
s32 i;
for (i = 0; i < 37; i++) {
D_803831A0.unk8[i] = 0;
gFileProgressFlags.unk8[i] = 0;
}
func_8031FC40();
func_8031FEC0();
}
void fileProgressFlag_set(s32 index, s32 set) {
setBitToArray(D_803831A0.unk8, index, set);
bitfield_set_bit(gFileProgressFlags.unk8, index, set);
func_8031FC40();
func_8031FEC0();
}
void fileProgressFlag_setN(s32 startIndex, s32 set, s32 length) {
func_803201C8(D_803831A0.unk8, startIndex, set, length);
bitfield_set_n_bits(gFileProgressFlags.unk8, startIndex, set, length);
func_8031FC40();
func_8031FEC0();
}
void progressflags_getSizeAndPtr(s32 *size, u8 **addr) {
void fileProgressFlag_getSizeAndPtr(s32 *size, u8 **addr) {
*size = 0x25;
*addr = D_803831A0.unk8;
*addr = gFileProgressFlags.unk8;
}
// Returns a single bit from a byte array
@@ -171,7 +171,7 @@ s32 bitfield_get_n_bits(u8 *array, s32 offset, s32 numBits) {
}
// Sets or clears a single bit in a byte array
void setBitToArray(u8 *array, s32 index, s32 set) {
void bitfield_set_bit(u8 *array, s32 index, s32 set) {
if (set) {
array[index / 8] |= (1 << (index & 7));
} else {
@@ -180,21 +180,21 @@ void setBitToArray(u8 *array, s32 index, s32 set) {
}
// Sets or clears a range of bits in a byte array
void func_803201C8(u8 *array, s32 startIndex, s32 set, s32 length) {
void bitfield_set_n_bits(u8 *array, s32 startIndex, s32 set, s32 length) {
s32 i;
for (i = 0; i < length; i++) {
setBitToArray(array, startIndex + i, (1 << i) & set);
bitfield_set_bit(array, startIndex + i, (1 << i) & set);
}
}
s32 func_80320240(void){return 1;}
s32 dummy_func_80320240(void){return 1;}
s32 func_80320248(void){return 1;}
s32 dummy_func_80320248(void){return 1;}
u32 func_80320250(void) {
u32 checksum = 0x6CE9E91F;
u8 *obscured_addr = (u8*)OBSCURE(&D_803831D0.unk8[0]);
u8 *obscured_addr = (u8*)OBSCURE(&gVolatileFlags.unk8[0]);
s32 len = 25;
u32 i;
@@ -207,7 +207,7 @@ u32 func_80320250(void) {
}
void func_803202D0(void) {
s32 addr = (s32) &D_803831D0.unk0;
s32 addr = (s32) &gVolatileFlags.unk0;
addr ^= 0x7EDDF5F4;
addr ^= 0x7BEF9D80;
addr ^= 0x5326874;
@@ -215,7 +215,7 @@ void func_803202D0(void) {
}
s32 func_80320320(void) {
s32 addr = (s32) &D_803831D0.unk8[0];
s32 addr = (s32) &gVolatileFlags.unk8[0];
s32 checksum = 0x281E421C;
s32 len = 25;
s32 scrambled;
@@ -238,44 +238,44 @@ s32 func_80320320(void) {
}
void func_803203A0(void) {
u32 *obscured_addr = (u32*)OBSCURE(&D_803831D0.unk4);
u32 *obscured_addr = (u32*)OBSCURE(&gVolatileFlags.unk4);
*obscured_addr = func_80320320();
}
s32 func_803203FC(s32 index) {
return bitfield_get_bit(D_803831D0.unk8, index);
s32 volatileFlag_get(s32 index) {
return bitfield_get_bit(gVolatileFlags.unk8, index);
}
void func_80320424(s32 index, s32 numBits) {
bitfield_get_n_bits(D_803831D0.unk8, index, numBits);
void volatileFlag_getN(s32 index, s32 numBits) {
bitfield_get_n_bits(gVolatileFlags.unk8, index, numBits);
}
s32 func_80320454(s32 index, s32 arg1) {
s32 volatileFlag_getAndSet(s32 index, s32 arg1) {
s32 temp_v0;
temp_v0 = func_803203FC(index);
func_803204E4(index, arg1);
temp_v0 = volatileFlag_get(index);
volatileFlag_set(index, arg1);
return temp_v0;
}
void func_8032048C(void) {
void volatileFlag_clear(void) {
s32 i;
for (i = 0; i < 25; i++) {
D_803831D0.unk8[i] = 0;
gVolatileFlags.unk8[i] = 0;
}
func_803202D0();
func_803203A0();
}
void func_803204E4(s32 index, s32 set) {
setBitToArray(D_803831D0.unk8, index, set);
void volatileFlag_set(s32 index, s32 set) {
bitfield_set_bit(gVolatileFlags.unk8, index, set);
func_803202D0();
func_803203A0();
}
void func_80320524(s32 startIndex, s32 set, s32 length) {
func_803201C8(D_803831D0.unk8, startIndex, set, length);
void volatileFlag_setN(s32 startIndex, s32 set, s32 length) {
bitfield_set_n_bits(gVolatileFlags.unk8, startIndex, set, length);
func_803202D0();
func_803203A0();
}
@@ -285,7 +285,7 @@ s32 func_8032056C(void) {
s32 temp_a1;
s32 temp_a1_2;
s32 phi_t9;
s32 addr = (s32)&D_803831D0;
s32 addr = (s32)&gVolatileFlags;
s32 temp_v1;
temp_v1 = ((addr & 0xE0000000) >> 15) +
@@ -312,31 +312,32 @@ s32 func_80320708(void) {
u16 temp_t6;
s32 addr;
temp_t6 = ((s32) &D_803831D0.unk4 >> 0x10);
addr = (s32) &D_803831D0.unk4 ^ temp_t6;
temp_t6 = ((s32) &gVolatileFlags.unk4 >> 0x10);
addr = (s32) &gVolatileFlags.unk4 ^ temp_t6;
return func_80320320() == *(s32*)(addr ^ temp_t6);
}
void func_80320748(void) {
s32 var_v0;
u8 *var_a0;
u8 *var_a1;
void volatileFlag_backupAll(void) {
s32 i;
u8 *dst;
u8 *src;
var_a1 = &D_803831D0;
var_a0 = D_803831F8;
for(var_v0 = 0; var_v0 < D_8036DDF0; var_v0++){
var_a0[var_v0] = var_a1[var_v0];
src = (u8 *) &gVolatileFlags;
dst = glVolatileFlagsCopy;
for(i = 0; i < gVolatileFlagsSize; i++){
dst[i] = src[i];
}
}
void func_80320798(void) {
s32 var_v0;
u8 *var_a0;
u8 *var_a1;
void volatileFlag_restoreAll(void) {
s32 i;
u8 *dst;
u8 *src;
var_a1 = D_803831F8;
var_a0 = &D_803831D0;
for(var_v0 = 0; var_v0 < D_8036DDF0; var_v0++){
var_a0[var_v0] = var_a1[var_v0];
src = glVolatileFlagsCopy;
dst = (u8 *) &gVolatileFlags;
for(i = 0; i < gVolatileFlagsSize; i++) {
dst[i] = src[i];
}
}

View File

@@ -37,12 +37,12 @@ void func_803216D0(enum map_e map){
levelSpecificFlags_clear();
bsStoredState_clearTimers();
func_803219A8();
if( func_80320454(0x17, FALSE)
if( volatileFlag_getAndSet(0x17, FALSE)
&& getGameMode() != 0
&& D_80383300.level != LEVEL_D_CUTSCENE
&& map != MAP_91_FILE_SELECT
){
func_803204E4(0x18, TRUE);
volatileFlag_set(0x18, TRUE);
}
if(D_80383300.level == LEVEL_9_RUSTY_BUCKET_BAY){
@@ -74,7 +74,7 @@ void func_80321854(void){
&& fileProgressFlag_get(FILEPROG_31_MM_OPEN)
&& !fileProgressFlag_get(FILEPROG_C1_BADDIES_ESCAPE_TEXT)
){
func_803204E4(0x22, 1);
volatileFlag_set(0x22, 1);
}
bsStoredState_8029A924(); //null
func_803465BC(); //null

View File

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

View File

@@ -19,7 +19,6 @@ f32 func_80257204(f32, f32, f32, f32);
extern Actor *func_802C4260(enum actor_e actor_id, s32 x, s32 y, s32 z, s32 yaw);
f32 func_8033229C(ActorMarker *);
f32 player_getYaw(void);
extern void func_8032FFF4(ActorMarker *, ActorMarker *, s32);
extern void func_802C9334(s32, Actor *);
extern void func_8032B3A0(Actor *, ActorMarker *);
extern void func_8032EE0C(GenFunction_2, s32);
@@ -529,7 +528,7 @@ void func_803268B4(void) {
if (suBaddieActorArray != NULL) {
sp54 = func_803203FC(101);
sp54 = volatileFlag_get(101);
for(temp_v1 = suBaddieActorArray->cnt - 1; temp_v1 >= 0; temp_v1--){
actor = &suBaddieActorArray->data[temp_v1];
actor_info = actor->actor_info;
@@ -538,7 +537,7 @@ void func_803268B4(void) {
temp_s1 = actor->actor_info->unk18;
if (marker->propPtr->unk8_4) {
if(sp54){
if ( actor->actor_info->unk20 && func_803203FC( actor->actor_info->unk20)) {
if ( actor->actor_info->unk20 && volatileFlag_get( actor->actor_info->unk20)) {
marker_despawn(marker);
}
}
@@ -724,7 +723,7 @@ Actor **actorArray_findJiggyActors(void) {
return suBaddieJiggyArray;
}
bool func_803270B8(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *), ActorMarker * arg4){
bool func_803270B8(f32 arg0[3], f32 arg1, enum marker_collision_func_type_e arg2, int (*arg3)(Actor *), ActorMarker * arg4){
bool var_s4;
Actor * start;
Actor * i_ptr;
@@ -741,7 +740,7 @@ bool func_803270B8(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *), ActorM
) {
var_s4 = TRUE;
if (!func_8033D410(arg4, i_ptr->marker)) {
func_8032FFF4(i_ptr->marker, arg4, arg2);
marker_callCollisionFunc(i_ptr->marker, arg4, arg2);
}
}
}
@@ -849,7 +848,7 @@ Actor *actor_new(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
func_8032FFD4(suLastBaddie->marker, suBaddieActorArray->cnt - 1);
marker_setModelId(suLastBaddie->marker, actorInfo->modelId);
marker_setActorUpdateFunc(suLastBaddie->marker, actorInfo->update_func);
marker_setActorUpdate2Func(suLastBaddie->marker, actorInfo->unk10);
marker_setActorUpdate2Func(suLastBaddie->marker, actorInfo->update2_func);
ml_vec3f_clear(suLastBaddie->unk1C);
ml_vec3f_clear(suLastBaddie->velocity);
ml_vec3f_clear(suLastBaddie->spawn_position);
@@ -859,7 +858,7 @@ Actor *actor_new(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
suLastBaddie->stored_animctrl_forwards = 0;
suLastBaddie->stored_animctrl_smoothTransistion = 0;
suLastBaddie->stored_animctrl_duration = 0.0f;
suLastBaddie->unkEC = 0.0f;
suLastBaddie->stored_animctrl_timer = 0.0f;
suLastBaddie->unk138_19 = 0;
suLastBaddie->stored_animctrl_subrangeMin = 0.0f;
suLastBaddie->stored_animctrl_subrangeMax = 1.0f;
@@ -868,7 +867,7 @@ Actor *actor_new(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
suLastBaddie->unk138_29 = 0;
suLastBaddie->unk18 = actorInfo->animations;
suLastBaddie->animctrl = NULL;
suLastBaddie->unkEC = 0.0f;
suLastBaddie->stored_animctrl_timer = 0.0f;
suLastBaddie->unk130 = 0;
suLastBaddie->unk124_5 = 0;
suLastBaddie->unk124_3 = 0;
@@ -1518,7 +1517,7 @@ bool func_803294F0(Actor *this, s32 arg1, s32 arg2){
bool func_80329530(Actor *this, s32 dist){
if( func_8028F098()
&& !func_803203FC(0xBF)
&& !volatileFlag_get(0xBF)
&& subaddie_playerIsWithinSphere(this, dist)
){
return TRUE;
@@ -1684,7 +1683,7 @@ void func_80329B68(Actor *this){
animctrl_setDirection(this->animctrl, this->stored_animctrl_forwards);
animctrl_setSmoothTransition(this->animctrl, this->stored_animctrl_smoothTransistion);
animctrl_setDuration(this->animctrl, this->stored_animctrl_duration);
animctrl_setStart(this->animctrl, this->unkEC);
animctrl_setStart(this->animctrl, this->stored_animctrl_timer);
animctrl_setSubRange(this->animctrl, this->stored_animctrl_subrangeMin, this->stored_animctrl_subrangeMax);
animctrl_start(this->animctrl, "subaddie.c", 0x8fd);
animctrl_setTimer(this->animctrl, this->sound_timer);
@@ -1761,7 +1760,7 @@ void *actors_appendToSavestate(void * begin, u32 end){
s0->stored_animctrl_forwards = animctrl_isPlayedForwards(s0->animctrl);
s0->stored_animctrl_smoothTransistion = animctrl_isSmoothTransistion(s0->animctrl);
s0->stored_animctrl_duration = animctrl_getDuration(s0->animctrl);
s0->unkEC = animctrl_getAnimTimer(s0->animctrl);
s0->stored_animctrl_timer = animctrl_getAnimTimer(s0->animctrl);
animctrl_getSubRange(s0->animctrl, &s0->stored_animctrl_subrangeMin, &s0->stored_animctrl_subrangeMax);
}
s0->animctrl = NULL;
@@ -2231,7 +2230,7 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) {
s32 sp70;
s32 sp6C;
s32 sp68;
s32 sp64;
enum marker_collision_func_type_e sp64;
s32 var_v0;
f32 player_yaw;
f32 sp50[3];
@@ -2311,7 +2310,7 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) {
}
func_8032EE20();
}
func_8032FFF4(arg0, arg1, sp64);
marker_callCollisionFunc(arg0, arg1, sp64);
}
if ((sp64 != 0) && (sp6C != 0)) {
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 1.0f, 25984, this->position, (s32)((500.0f + func_8033229C(arg0)) * 0.5), (s32)((500.0f + func_8033229C(arg0)) * 5));

View File

@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "enums.h"
#define AssetCacheSize 0x3D5
@@ -887,7 +888,7 @@ void cube_fromFile(Struct61s *file_ptr, Cube *cube) {
}
if (file_getByte_ifExpected(file_ptr, 8, &sp47)) {
sp34 = func_803203FC(1) + func_803203FC(2) + func_803203FC(0x1F);
sp34 = volatileFlag_get(VOLATILE_FLAG_1) + volatileFlag_get(VOLATILE_FLAG_2) + volatileFlag_get(0x1F);
if ((sp34) && gcparade_8031B4CC()) {
sp34 = 0;
@@ -1219,17 +1220,17 @@ void func_8032FFEC(ActorMarker *this, s32 arg1){
this->unk28 = arg1;
}
void func_8032FFF4(ActorMarker *this, ActorMarker *other, s32 type){
void marker_callCollisionFunc(ActorMarker *this, ActorMarker *other, enum marker_collision_func_type_e type){
switch(type){
case 0: //ow
case MARKER_COLLISION_FUNC_0: //ow
if(this->collisionFunc)
this->collisionFunc(this, other);
break;
case 1:
case MARKER_COLLISION_FUNC_1:
if(this->collision2Func)
this->collision2Func(this, other);
break;
case 2: //die
case MARKER_COLLISION_FUNC_2_DIE: //die
if(this->dieFunc)
this->dieFunc(this, other);
break;

View File

@@ -112,7 +112,7 @@ void savedata_init(void){ //savedata_init
jiggyscore_getSizeAndPtr(&jiggy_size, &jiggy_addr);
honeycombscore_getSizeAndPtr(&honeycomb_size, &honeycomb_addr);
mumboscore_getSizeAndPtr(&mumbotoken_size, &mumbotoken_addr);
progressflags_getSizeAndPtr(&progressflags_size, &progressflags_addr);
fileProgressFlag_getSizeAndPtr(&progressflags_size, &progressflags_addr);
notescore_getSizeAndPtr(&notescores_size, &notescores_addr);
timeScores_getSizeAndPtr(&timescores_size, &timescores_addr);
saveditem_getSizeAndPtr(&saved_item_size, &saved_item_addr);
@@ -194,7 +194,7 @@ void func_8033C460(u8 *savedata){ //global_progress
u8 *progressflags_addr;
int i;
progressflags_getSizeAndPtr(&progressflags_size, &progressflags_addr);
fileProgressFlag_getSizeAndPtr(&progressflags_size, &progressflags_addr);
for(i = progressflagsOffset; i < progressflagsOffset + progressflags_size; i++){
progressflags_addr[i - progressflagsOffset] = savedata[i];
}
@@ -287,7 +287,7 @@ void __savedata_8033C8A0(u8 *savedata){ //global_progress
u8 *progressflags_addr;
int i;
progressflags_getSizeAndPtr(&progressflags_size, &progressflags_addr);
fileProgressFlag_getSizeAndPtr(&progressflags_size, &progressflags_addr);
for(i = progressflagsOffset; i < progressflagsOffset + progressflags_size; i++){
savedata[i] = progressflags_addr[i - progressflagsOffset];
}
@@ -360,14 +360,14 @@ void saveData_load(SaveData *savedata){
func_8033C4E4(savedata);
__savedata_load_abilities(savedata);
for(i = 0; D_80370A20[i].unk0 != -1; i++){
func_803204E4(D_80370A20[i].unk0, fileProgressFlag_get(D_80370A20[i].unk2));
volatileFlag_set(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++){
fileProgressFlag_set(D_80370A20[i].unk2, func_803203FC(D_80370A20[i].unk0));
fileProgressFlag_set(D_80370A20[i].unk2, volatileFlag_get(D_80370A20[i].unk0));
}
savedata_clear(savedata);
__savedata_save_magic(savedata);

View File

@@ -291,7 +291,7 @@ s32 func_8033D564(struct5Cs *arg0){
return arg0->unk0_15;
}
s32 func_8033D574(struct5Cs *arg0){
enum marker_collision_func_type_e func_8033D574(struct5Cs *arg0){
return arg0->unk0_11;
}

View File

@@ -66,11 +66,11 @@ s32 item_adjustByDiff(enum item_e item, s32 diff, s32 no_hud){
diff = 0;
if(diff < 0){
if( (item == ITEM_D_EGGS && func_803203FC(UNKFLAGS1_74_SANDCASTLE_INFINITE_EGGS))
|| (item == ITEM_16_LIFE && func_803203FC(UNKFLAGS1_73_SANDCASTLE_INFINITE_LIVES))
|| (item == ITEM_F_RED_FEATHER && func_803203FC(UNKFLAGS1_75_SANDCASTLE_INFINITE_RED_FEATHERS))
|| (item == ITEM_10_GOLD_FEATHER && func_803203FC(UNKFLAGS1_76_SANDCASTLE_INFINITE_GOLD_FEATHERS))
|| (item == ITEM_17_AIR && func_803203FC(UNKFLAGS1_96_SANDCASTLE_INFINITE_AIR))
if( (item == ITEM_D_EGGS && volatileFlag_get(VOLATILE_FLAG_74_SANDCASTLE_INFINITE_EGGS))
|| (item == ITEM_16_LIFE && volatileFlag_get(VOLATILE_FLAG_73_SANDCASTLE_INFINITE_LIVES))
|| (item == ITEM_F_RED_FEATHER && volatileFlag_get(VOLATILE_FLAG_75_SANDCASTLE_INFINITE_RED_FEATHERS))
|| (item == ITEM_10_GOLD_FEATHER && volatileFlag_get(VOLATILE_FLAG_76_SANDCASTLE_INFINITE_GOLD_FEATHERS))
|| (item == ITEM_17_AIR && volatileFlag_get(VOLATILE_FLAG_96_SANDCASTLE_INFINITE_AIR))
){
diff = 0;
}
@@ -253,7 +253,7 @@ void func_803465E4(void){
}//L8034667C
if(D_80385FE0){
if(gctransition_done() || func_803203FC(0)){
if(gctransition_done() || volatileFlag_get(VOLATILE_FLAG_0)){
if(D_80385FE4){
item_dec(ITEM_16_LIFE);
func_802FACA4(ITEM_14_HEALTH);
@@ -308,7 +308,7 @@ void func_803465E4(void){
}//L803469E4
}//L803469E4
if(!func_803203FC(0xbf)){
if(!volatileFlag_get(0xbf)){
for(i = 0; i < 6; i++){
if(D_80385F30[ITEM_6_HOURGLASS + i]){
func_80345EB0(ITEM_0_HOURGLASS_TIMER + i);
@@ -327,7 +327,7 @@ void func_803465E4(void){
}//L80346B6C
if((globalTimer_getTime() & 7) == 6){
if(!func_80320708() || !func_80320248()){
if(!func_80320708() || !dummy_func_80320248()){
D_80385F30[randi2(0, 0x2C)] = 1;
D_80385FF0[randi2(0, 0xE)] = 1;
D_80386000[randi2(0, 0xE)] = 1.0f;
@@ -406,9 +406,9 @@ void func_80346DB4(s32 note_count) {
if (!levelSpecificFlags_get(0x34) && (func_80311480(0xF76, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(0x34, TRUE);
}
if (func_803203FC(0x17) == 0) {
func_803204E4(0x17, 1);
func_80320524(0x19, level_id, 4);
if (volatileFlag_get(0x17) == 0) {
volatileFlag_set(0x17, 1);
volatileFlag_setN(0x19, level_id, 4);
}
}
}
@@ -537,7 +537,7 @@ void func_8034789C(void) {
} else {
D_80385F30[ITEM_15_HEALTH_TOTAL] = 5 + MIN(3, (sp1C / 6));
}
if (func_803203FC(0x94)) {
if (volatileFlag_get(0x94)) {
temp_v0 = D_80385F30[ITEM_15_HEALTH_TOTAL];
if (temp_v0 >= 9) {
D_80385F30[ITEM_15_HEALTH_TOTAL] = temp_v0;
@@ -591,16 +591,16 @@ void func_80347A70(void){
s32 D_80386068;
void func_80347A7C(void){
func_80320748();
volatileFlag_backupAll();
D_80386068 = item_getCount(ITEM_16_LIFE);
}
void func_80347AA8(void) {
func_80320798();
func_803204E4(0x1F, FALSE);
func_803204E4(0x20, FALSE);
func_803204E4(0xC1, FALSE);
func_803204E4(0xC0, FALSE);
volatileFlag_restoreAll();
volatileFlag_set(0x1F, FALSE);
volatileFlag_set(0x20, FALSE);
volatileFlag_set(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE, FALSE);
volatileFlag_set(VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE, FALSE);
item_set(ITEM_16_LIFE, D_80386068);
itemPrint_reset();
}

View File

@@ -77,7 +77,7 @@ void func_80349FB0(DemoInput *input_ptr, u32 size, int arg2){
func_8031FBA0();
func_803216D0(map_get());
func_8030AFA0(map_get());
func_803204E4(0xc4, 1);
volatileFlag_set(VOLATILE_FLAG_C4_WOZZA_HIDE_IN_SNS_PARADE, 1);
func_8024F224();
rand_reset();
globalTimer_reset();

View File

@@ -207,7 +207,7 @@ void func_8034B8C0(enum map_e map_id, s32 demo_id) {
demo_load(map_id,demo_id);
D_80386118 = D_8038611C = 0;
if (D_80386114->unk1 == 6) {
func_803204E4(0x1F, 1);
volatileFlag_set(0x1F, 1);
func_802E4A70();
}
if ((demo_id == 0x5B) || (demo_id == 0x5F)) {
@@ -297,16 +297,16 @@ void func_8034BB90(void) {
D_80386118 = 1;
}
func_8034B580(D_80386114->unk1);
if (func_803203FC(0xC3)) {
func_803204E4(0xC3, 0);
if (volatileFlag_get(VOLATILE_FLAG_C3)) {
volatileFlag_set(VOLATILE_FLAG_C3, 0);
func_8034B9E4();
}
if( !sp1C
&& sp18
&& !D_8038611C
&& (getGameMode() != GAME_MODE_8_BOTTLES_BONUS)
&& ((func_803203FC(0x64) && (getGameMode() != GAME_MODE_A_SNS_PICTURE))
|| func_803203FC(0x63))
&& ((volatileFlag_get(0x64) && (getGameMode() != GAME_MODE_A_SNS_PICTURE))
|| volatileFlag_get(0x63))
) {
func_8034B7F0(D_80386114->unk1);
if (getGameMode() == GAME_MODE_9_BANJO_AND_KAZOOIE) {
@@ -317,7 +317,7 @@ void func_8034BB90(void) {
} else {
func_802DF0C8();
}
} else if (func_803203FC(0x64)) {
} else if (volatileFlag_get(0x64)) {
func_802E412C(1, D_80386114->unk5);
func_8034B994();
} else {
@@ -329,8 +329,8 @@ void func_8034BB90(void) {
func_8025A58C(0, 800);
func_8025AB00();
}
func_803204E4(0x64, 0);
func_803204E4(0x63, 0);
volatileFlag_set(0x64, 0);
volatileFlag_set(0x63, 0);
D_8038611C = 1;
}
}
@@ -338,7 +338,7 @@ void func_8034BB90(void) {
s32 func_8034BDA4(enum map_e map_id, s32 exit_id) {
s32 phi_v0;
if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) {
return D_80371F70.unk3;
}

View File

@@ -104,15 +104,15 @@ void func_8035646C(enum file_progress_e progress_flag) {
s32 func_8035648C(s32 arg0, s32 arg1) {
s32 index;
if (func_803203FC() != 0) {
if (volatileFlag_get(arg0) != 0) {
return 0;
} else {
index = __findIndex(volatileProgressDialogMap, arg0);
if (index != -1) {
if (func_80311480(volatileProgressDialogMap[index].value, arg1, 0, 0, 0, 0) != 0) {
func_803204E4(arg0, 1);
volatileFlag_set(arg0, 1);
}
return func_803203FC(arg0);
return volatileFlag_get(arg0);
}
return 0;
}

View File

@@ -357,7 +357,7 @@ void func_80358684(Actor *this) {
}
if (local->unk4 >= 1.0f) {
local->unk4 = 1.0f;
if (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) {
local->unk39 = 0;
} else {
if (this->state == 2) {

View File

@@ -130,7 +130,7 @@ void func_8035DA1C(Actor *this) {
this->unk138_25 = TRUE;
this->unk28 = 4.0f;
LOCAL_D6600(this)->unk4 =(map_get() == MAP_71_GL_STATUE_ROOM) ? 8 : 0xf;
if (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) {
this->unk28 = 0.0f;
subaddie_set_state_with_direction(this, 1, 0.0f, 1);
}
@@ -151,7 +151,7 @@ void func_8035DA1C(Actor *this) {
func_80328FB0(this, 0.5f);
func_80328FF0(this, 0.5f);
func_8032CA80(this, LOCAL_D6600(this)->unk4);
if (subaddie_maybe_set_state(this, 2, 0.05f) && !func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)) {
if (subaddie_maybe_set_state(this, 2, 0.05f) && !volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)) {
this->unk28 = 4.0f;
}
func_8035D65C(this);

View File

@@ -43,7 +43,7 @@ void func_8035F970(Actor *this){
}
void func_8035F99C(Actor *this){
if(!func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
if(!volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)){
subaddie_set_state_with_direction(this, 2, 0.01f, 1);
actor_playAnimationOnce(this);
this->unk28 = 5.0f;

View File

@@ -33,8 +33,8 @@ int func_803616F0(Actor *this){
}
void func_80361828(Actor *this){
if(func_803203FC(0x16) && level_get() == LEVEL_6_LAIR){
func_803204E4(0x16, 0);
if(volatileFlag_get(0x16) && level_get() == LEVEL_6_LAIR){
volatileFlag_set(0x16, 0);
}
}
@@ -54,19 +54,19 @@ void func_80361870(Actor *this){
}
}
else if(func_803616F0(this)){
sp28 = (func_803203FC(0x16)?0xf6e:0xf68) + this->unkF4_8 - 1;
if(!func_803203FC(0x16) && level_get() == LEVEL_6_LAIR){
sp28 = (volatileFlag_get(0x16)?0xf6e:0xf68) + this->unkF4_8 - 1;
if(!volatileFlag_get(0x16) && level_get() == LEVEL_6_LAIR){
this->unk138_24 = TRUE;
}
else{
if(func_80311480(sp28, 0, 0, 0, 0, 0)){
this->unk138_24 = TRUE;
func_803204E4(0x16, 0);
volatileFlag_set(0x16, 0);
}
}
}
else{//L80361A14
func_803204E4(0x16, 0);
volatileFlag_set(0x16, 0);
}
}//L80361A20
}

View File

@@ -228,7 +228,7 @@ void func_8030F338(void){
}
}
if(g_Dialog.unk128_31 & 0x8){
if((!func_802E4A08() && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) || !g_Dialog.unk128_3){
if((!func_802E4A08() && !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) || !g_Dialog.unk128_3){
func_8028F918(0);
}
}//L8030F3E8
@@ -710,13 +710,13 @@ void func_803106BC(s32 text_id, s32 arg1, ActorMarker *marker, void(*callback)(A
g_Dialog.active_zoombox = 1;
}//L8031095C
g_Dialog.unk128_6 = 1;
g_Dialog.unk12C_23 = ((func_802E4A08() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) && g_Dialog.unk128_3) ? 1 : -1;
g_Dialog.unk12C_23 = ((func_802E4A08() || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) && g_Dialog.unk128_3) ? 1 : -1;
g_Dialog.caller = marker;
g_Dialog.unk13C = callback;
g_Dialog.unk140 = arg4;
g_Dialog.unk144 = (void *)arg5;
g_Dialog.unk138 = (marker != NULL )? ((marker->unk5C)? marker->unk5C : -1) : 0;
gcdialog_setState(((func_802E4A08() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) && g_Dialog.unk128_3) ? 6 : 1);
gcdialog_setState(((func_802E4A08() || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) && g_Dialog.unk128_3) ? 6 : 1);
//L803109EC
}
@@ -795,7 +795,7 @@ void func_80310D2C(void){
g_Dialog.unk138 = sp24->unk14;
func_8025A55C(8000, 300, 2);
if((sp24->unk2 & 0x8) && !((func_802E4A08() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) && g_Dialog.unk128_3)){//L80310E6C
if((sp24->unk2 & 0x8) && !((func_802E4A08() || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) && g_Dialog.unk128_3)){//L80310E6C
func_8028F918(0);
if( 0.0f == sp24->unk4_x
&& 0.0f == sp24->unk4_y
@@ -871,13 +871,13 @@ int func_80311174(s32 text_id, s32 arg1, f32 *pos, ActorMarker *marker, void(*ca
f32 pad;
s32 temp_v1;
if(func_803203FC(1) || func_802D686C())
if(volatileFlag_get(VOLATILE_FLAG_1) || func_802D686C())
return 0;
if(!func_803114B0()){
func_80310B1C(text_id, arg1, marker, (void *)callback, (void *)arg5, arg6);
if(arg1 & 8){
if(!(func_802E4A08() || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) || !g_Dialog.unk128_3){//L80311214
if(!(func_802E4A08() || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) || !g_Dialog.unk128_3){//L80311214
if(pos != NULL){
func_8028F94C(((g_Dialog.string_cmd[1] < 0)? 1 : 3), pos);
}else{//L8031126C
@@ -922,7 +922,7 @@ int func_80311174(s32 text_id, s32 arg1, f32 *pos, ActorMarker *marker, void(*ca
g_Dialog.unk148[temp_v1].unk20 = arg6;
g_Dialog.unk12C_15++;
if(arg1 & 0x08){
if(!( func_802E4A08() || func_803203FC(0x1f, &g_Dialog)) || !g_Dialog.unk128_3){//L8031141C
if(!( func_802E4A08() || volatileFlag_get(0x1f)) || !g_Dialog.unk128_3){//L8031141C
if(!func_8028EC04()){
if(pos != NULL){
func_8028F94C(2, pos);

View File

@@ -7,7 +7,7 @@
extern void func_8028F918(s32);
extern void func_80311714(int);
extern void func_803204E4(s32, s32);
extern void volatileFlag_set(s32, s32);
typedef struct struct_1C_s{
u8 map;
@@ -166,9 +166,9 @@ void gcparade_8031ABF8(void) {
func_80347A7C();
func_8031FBF8();
func_8031FBA0();
func_803204E4(0x1F, 1);
volatileFlag_set(0x1F, 1);
if (D_803830F0.parade_id == PARADE_1_POST_GRUNTY_BATTLE) {
func_803204E4(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE, TRUE);
volatileFlag_set(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE, TRUE);
}
func_803228D8();
func_802E4A70();
@@ -203,7 +203,7 @@ void gcparade_setState(enum parade_state_e next_state) {
gcparade_8031AC8C();
break;
case PARADE_STATE_2_INIT_FINAL_PARADE: //parade 1 init
func_803204E4(0xC1, TRUE);
volatileFlag_set(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE, TRUE);
D_803830F0.parade_element = D_8036DAE4;
D_803830F0.indx = 0;
D_803830F0.parade_id = PARADE_1_POST_GRUNTY_BATTLE;
@@ -243,8 +243,8 @@ void gcparade_setState(enum parade_state_e next_state) {
timedFunc_set_1(0.25f, (GenFunction_1)gcparade_setState, (D_803830F0.indx == D_803830F0.count) ? PARADE_STATE_8_END : PARADE_STATE_3_WARP);
break;
case PARADE_STATE_8_END:
func_803204E4(0x1F, 0);
func_803204E4(0xC1, FALSE);
volatileFlag_set(0x1F, 0);
volatileFlag_set(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE, FALSE);
func_802E412C(1, 8);
func_802E40C4(0xA);
if (D_803830F0.parade_id == 0) {
@@ -286,7 +286,7 @@ void gcparade_update(void) {
gcparade_beginFinalParade();
return;
}
if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) != 0) {
if (volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE) != 0) {
snackerctl_update();
switch (D_803830F0.state) {
case PARADE_STATE_3_WARP:
@@ -333,9 +333,9 @@ void gcparade_update(void) {
void gcparade_free(void){}
void gcparade_start(void){
func_803204E4(UNKFLAGS1_20_BEGIN_CHARACTER_PARADE, FALSE);
func_803204E4(0x1F, TRUE);
if(func_80320454(UNKFLAGS1_C0_BEGIN_FINAL_CHARACTER_PARADE, FALSE))
volatileFlag_set(VOLATILE_FLAG_20_BEGIN_CHARACTER_PARADE, FALSE);
volatileFlag_set(0x1F, TRUE);
if(volatileFlag_getAndSet(VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE, FALSE))
gcparade_setState(PARADE_STATE_2_INIT_FINAL_PARADE);
else
gcparade_setState(PARADE_STATE_1_INIT_FF_PARADE);
@@ -348,11 +348,11 @@ void gcparade_init(void) {
s32 temp_v0;
s32 var_s2;
if (func_803203FC(UNKFLAGS1_20_BEGIN_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_20_BEGIN_CHARACTER_PARADE)) {
gcparade_start();
return;
}
if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) {
if (volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) {
func_80347A14(0);
if ((D_803830F0.state == 3)){
var_s2 = FALSE;
@@ -390,18 +390,18 @@ int gcparade_8031B4F4(void){
}
void gcparade_beginFFParade(void){
if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) return;
if (volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) return;
func_803204E4(UNKFLAGS1_20_BEGIN_CHARACTER_PARADE, TRUE);
volatileFlag_set(VOLATILE_FLAG_20_BEGIN_CHARACTER_PARADE, TRUE);
gcparade_init();
}
void gcparade_beginFinalParade(void){
if (func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)) return;
if (volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)) return;
func_803204E4(UNKFLAGS1_20_BEGIN_CHARACTER_PARADE, TRUE);
func_803204E4(UNKFLAGS1_C0_BEGIN_FINAL_CHARACTER_PARADE, TRUE);
volatileFlag_set(VOLATILE_FLAG_20_BEGIN_CHARACTER_PARADE, TRUE);
volatileFlag_set(VOLATILE_FLAG_C0_BEGIN_FINAL_CHARACTER_PARADE, TRUE);
D_803830F0.jiggyscore = jiggyscore_total();
gcparade_init();
}

View File

@@ -24,7 +24,7 @@ typedef struct struct_1A_s{
extern void func_802C5994(void);
extern void func_802E412C(s32, s32);
void func_803204E4(s32, s32);
void volatileFlag_set(s32, s32);
f32 func_8024DE1C(f32, f32, f32 *, f32 *);
void mlMtxApply(Mtx*);
void func_80310D2C(void);
@@ -988,9 +988,9 @@ s32 gcPauseMenu_update(void){
D_80383010.unk3_7 = 1;
break;
case 1://L80313908 //return to lair
func_803204E4(0x16, 1);
volatileFlag_set(0x16, 1);
if(map_get() == MAP_8E_GL_FURNACE_FUN){
func_803204E4(0,0);
volatileFlag_set(0,0);
func_802E4078(MAP_80_GL_FF_ENTRANCE, 2, 1);
}else{
func_802E4078(D_8036C560[level-1].map, D_8036C560[level-1].exit, 1);
@@ -1003,7 +1003,7 @@ s32 gcPauseMenu_update(void){
break;
case 3://L8031399C
func_802C5994();
func_803204E4(0,0);
volatileFlag_set(0,0);
if(!fileProgressFlag_get(FILEPROG_BD_ENTER_LAIR_CUTSCENE) || fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)){
gcPauseMenu_setState(0x14);
}else{
@@ -1431,7 +1431,7 @@ void gcpausemenu_80314B24(void){
void gcpausemenu_returnToLair(void){
s32 level = level_get();
if(0 < level && level < 0xC && D_8036C560[level-1].map != -1){
func_803204E4(0x16, TRUE);
volatileFlag_set(0x16, TRUE);
func_802E4078(D_8036C560[level-1].map, D_8036C560[level-1].exit, 1);
}
}

View File

@@ -990,7 +990,7 @@ void gczoombox_draw(GcZoombox *this, Gfx **gdl, Mtx ** mptr, void *vptr){
|| ( getGameMode() != GAME_MODE_3_NORMAL
&& getGameMode() != GAME_MODE_8_BOTTLES_BONUS
&& getGameMode() != GAME_MODE_A_SNS_PICTURE
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE))
&& !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE))
){//L80316C64
func_80316764(this, 0);
}

View File

@@ -84,13 +84,13 @@ void levelSpecificFlags_clear(void){
}
void levelSpecificFlags_set(s32 index, s32 val){
setBitToArray(&D_80383320.unk8, index, val);
bitfield_set_bit(&D_80383320.unk8, index, val);
_levelSpecificFlags_updateCRC1();
_levelSpecificFlags_updateCRC2();
}
void levelSpecificFlags_setN(s32 index, s32 val, s32 n){
func_803201C8(&D_80383320.unk8, index, val, n);
bitfield_set_n_bits(&D_80383320.unk8, index, val, n);
_levelSpecificFlags_updateCRC1();
_levelSpecificFlags_updateCRC2();
}

View File

@@ -237,7 +237,7 @@ f32 func_80308FDC(f32 arg0[3], u32 arg1) {
void mapModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
s32 temp_a0;
if (func_80320708() && levelSpecificFlags_validateCRC2() && func_80320248()) {
if (func_80320708() && levelSpecificFlags_validateCRC2() && dummy_func_80320248()) {
if (mapModel_getOpaModelId() == ASSET_14CF_MODEL_SM_SPIRAL_MOUNTAIN_OPA) {
func_8033A45C(1, 0);
func_8033A45C(2, 1);
@@ -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) || fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) || func_803203FC(0xC1)));
func_8033A45C(6, (func_8038EAE0(0xA) || fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) || volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE)));
break;
}
func_8033A450(mapModel.unk24);

Some files were not shown because too many files have changed in this diff Show More