Merge branch 'level_specific_flags' into 'master'

Document level specific flags

See merge request banjo.decomp/banjo-kazooie!88
This commit is contained in:
Banjo Kazooie 2024-10-08 06:07:43 +00:00
commit 01b63ee455
47 changed files with 274 additions and 173 deletions

View File

@ -376,7 +376,62 @@ enum volatile_flags_e {
enum level_flags_e
{
LEVEL_FLAG_0_CC_TOKEN_TOOTH_OPEN = 0,
LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN = 1
LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN,
LEVEL_FLAG_2_TTC_UNKNOWN,
LEVEL_FLAG_3_RBB_UNKNOWN,
LEVEL_FLAG_4_RBB_UNKNOWN,
LEVEL_FLAG_5_TTC_UNKNOWN,
LEVEL_FLAG_6_GV_UNKNOWN,
LEVEL_FLAG_B_MM_UNKNOWN = 0xB,
LEVEL_FLAG_C_MM_UNKNOWN,
LEVEL_FLAG_D_MM_UNKNOWN,
LEVEL_FLAG_E_CC_UNKNOWN,
LEVEL_FLAG_10_CCW_UNKNOWN = 0x10,
LEVEL_FLAG_11_FP_UNKNOWN,
LEVEL_FLAG_12_FP_UNKNOWN,
LEVEL_FLAG_13_FP_UNKNOWN,
LEVEL_FLAG_14_TTC_UNKNOWN,
LEVEL_FLAG_15_GV_UNKNOWN,
LEVEL_FLAG_16_GV_UNKNOWN,
LEVEL_FLAG_17_GV_UNKNOWN,
LEVEL_FLAG_19_FP_UNKNOWN = 0x19,
LEVEL_FLAG_1A_UNKNOWN,
LEVEL_FLAG_1B_MMM_UNKNOWN,
LEVEL_FLAG_1C_MM_UNKNOWN,
LEVEL_FLAG_1D_TTC_UNKNOWN,
LEVEL_FLAG_1E_CC_UNKNOWN,
LEVEL_FLAG_1F_BGS_UNKNOWN,
LEVEL_FLAG_20_FP_UNKNOWN,
LEVEL_FLAG_21_GV_UNKNOWN,
LEVEL_FLAG_22_MMM_UNKNOWN,
LEVEL_FLAG_23_RBB_UNKNOWN,
LEVEL_FLAG_24_CCW_UNKNOWN,
LEVEL_FLAG_25_CCW_UNKNOWN,
LEVEL_FLAG_26_FP_UNKNOWN,
LEVEL_FLAG_27_RBB_UNKNOWN,
LEVEL_FLAG_28_RBB_UNKNOWN,
LEVEL_FLAG_29_FP_UNKNOWN,
LEVEL_FLAG_2A_FP_UNKNOWN,
LEVEL_FLAG_2B_FP_UNKNOWN,
LEVEL_FLAG_2C_FP_UNKNOWN,
LEVEL_FLAG_2D_RBB_UNKNOWN,
LEVEL_FLAG_2E_MMM_UNKNOWN,
LEVEL_FLAG_2F_MMM_UNKNOWN,
LEVEL_FLAG_30_RBB_UNKNOWN,
LEVEL_FLAG_31_FP_UNKNOWN,
LEVEL_FLAG_32_FP_UNKNOWN,
LEVEL_FLAG_33_MMM_UNKNOWN,
LEVEL_FLAG_34_UNKNOWN,
LEVEL_FLAG_38_CCW_UNKNOWN = 0x38,
LEVEL_FLAG_3C_LAIR_UNKNOWN = 0x3C,
LEVEL_FLAG_3D_LAIR_UNKNOWN,
LEVEL_FLAG_3E_UNKNOWN,
LEVEL_FLAG_3F_LAIR_UNKNOWN
};
enum transformation_e

View File

@ -39,7 +39,7 @@ void CC_func_80386FE0(Actor *this, s32 next_state){
}
else if(this->state == 3){
if(prev_state == 2){
levelSpecificFlags_set((local->unk0 == 1) ? 0 : 1, TRUE);
levelSpecificFlags_set((local->unk0 == 1) ? LEVEL_FLAG_0_CC_TOKEN_TOOTH_OPEN : LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN, TRUE);
}
if(local->unk0 == 1){
this->yaw = -30.0f;

View File

@ -11,7 +11,7 @@ ActorInfo D_8038EB74 = { 0x1AC, 0x29A, 0x445, 0x0, NULL, func_803864B8, NULL, ac
void CCW_func_803863F0(Actor *this, s32 next_state){
if(next_state == 2){
FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 1.0f, 32000, this->position, 500, 3000);
levelSpecificFlags_set(0x10, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_10_CCW_UNKNOWN, TRUE);
marker_despawn(this->marker);
}
this->state = next_state;
@ -30,7 +30,8 @@ void func_803864B8(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
marker_setCollisionScripts(this->marker, NULL, NULL, func_80386468);
CCW_func_803863F0(this, 1);
if(levelSpecificFlags_get(0x10)){
if (levelSpecificFlags_get(LEVEL_FLAG_10_CCW_UNKNOWN)) {
marker_despawn(this->marker);
}
}

View File

@ -97,12 +97,15 @@ void func_8038CC4C(Actor *this) {
local->unk0++;
}
func_8038CB40(this, 1);
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY)) {
levelSpecificFlags_set(0x25, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
}
if ((local->unk0->unk2 != 0) && levelSpecificFlags_get(0x25)) {
if ((local->unk0->unk2 != 0) && levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN)) {
marker_despawn(this->marker);
}
return;
}

View File

@ -85,9 +85,9 @@ void func_8038CFB4(Actor *this) {
this->has_met_before = FALSE;
func_8038CEB0(this, 1);
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != 0) {
levelSpecificFlags_set(0x25, 1);
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
}
if (levelSpecificFlags_get(0x25) != 0) {
if (levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) != FALSE) {
marker_despawn(this->marker);
}
return;
@ -121,7 +121,8 @@ void func_8038CFB4(Actor *this) {
this->has_met_before = TRUE;
}
}
if (levelSpecificFlags_get(0x25) != 0) {
if (levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) != FALSE) {
func_8038CEB0(this, 2);
}
}

View File

@ -39,9 +39,10 @@ void func_8038D2B0(Actor *this, s32 next_state) {
}
Actor *func_8038D30C(ActorMarker* marker, Gfx** gfx, Mtx** mtx, Vtx** vtx) {
if (levelSpecificFlags_get(0x25) == 0) {
if (levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) == FALSE) {
return func_80325340(marker, gfx, mtx, vtx);
}
return actor_draw(marker, gfx, mtx, vtx);
}
@ -61,7 +62,7 @@ void func_8038D368(Actor *this) {
func_8038D2B0(this, 1);
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY)) {
levelSpecificFlags_set(0x25, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
}
return;
}

View File

@ -78,7 +78,7 @@ void func_8038D6D8(Actor *this, s32 next_state) {
FUNC_8030E624(SFX_9B_BOULDER_BREAKING_1, 0.9f, 15000);
func_80324E38(0.0f, 3);
timed_setStaticCameraToNode(0.5f, 3);
timedFunc_set_2(0.5f, levelSpecificFlags_set, 0x25, TRUE);
timedFunc_set_2(0.5f, levelSpecificFlags_set, LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
timed_exitStaticCamera(4.0f);
func_80324E38(4.0f, 0);
local->unk0 = 0.5f;
@ -107,10 +107,12 @@ void func_8038D85C(Actor *this) {
this->volatile_initialized = TRUE;
marker_setCollisionScripts(this->marker, 0, &func_8038D81C, 0);
func_8038D6D8(this, 1);
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != 0) {
levelSpecificFlags_set(0x25, 1);
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != FALSE) {
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
}
if ((levelSpecificFlags_get(0x25) != 0) && (map_get() != MAP_43_CCW_SPRING)) {
if ((levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) != FALSE) && (map_get() != MAP_43_CCW_SPRING)) {
marker_despawn(this->marker);
}
return;

View File

@ -83,7 +83,8 @@ void func_8038DAB0(Actor *this){
if(!this->initialized){
func_802D3CE8(this);
this->initialized = TRUE;
if(levelSpecificFlags_get(0x38)){
if (levelSpecificFlags_get(LEVEL_FLAG_38_CCW_UNKNOWN)) {
marker_despawn(this->marker);
}
}

View File

@ -41,9 +41,9 @@ ActorInfo D_80391E50 = { MARKER_1FC_POLAR_BEAR_CUB_RED, ACTOR_1EC_POLAR_BEAR_CUB
f32 FP_D_80391E74[3] = {-5.0f, 180.0f, 1.0f};
Struct_FP_3E00 D_80391E80[] ={
{0x11, MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, 0x1EE},
{0x12, MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, 0x1F0},
{0x13, MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, 0x1F2}
{LEVEL_FLAG_11_FP_UNKNOWN, MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, 0x1EE},
{LEVEL_FLAG_12_FP_UNKNOWN, MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, 0x1F0},
{LEVEL_FLAG_13_FP_UNKNOWN, MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, 0x1F2}
};
/* .code */
@ -123,7 +123,7 @@ void func_8038A384(Actor *this){
}
}//L8038A4E4
sp34 = levelSpecificFlags_get(0x11) + levelSpecificFlags_get(0x12) + levelSpecificFlags_get(0x13);
sp34 = levelSpecificFlags_get(LEVEL_FLAG_11_FP_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_12_FP_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_13_FP_UNKNOWN);
sp38 = (sp34 == 1) ? ASSET_C17_TEXT_UNKNOWN
: (sp34 == 2) ? ASSET_C18_TEXT_UNKNOWN
: ASSET_C19_TEXT_UNKNOWN;
@ -134,14 +134,14 @@ void func_8038A384(Actor *this){
switch(this->state){
case 1://L8038A5B0
if(!levelSpecificFlags_get(0x19) && func_80329530(this, 0xfa)){
if(!levelSpecificFlags_get(LEVEL_FLAG_19_FP_UNKNOWN) && func_80329530(this, 0xfa)){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if(sp34 == 0
&& !jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3)
&& !jiggyscore_isSpawned(JIGGY_2C_FP_BOGGY_3)
){
if (gcdialog_showText(ASSET_C1A_TEXT_UNKNOWN, 0x2a, NULL, NULL, NULL, NULL)) {
levelSpecificFlags_set(0x19, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_19_FP_UNKNOWN, TRUE);
}
}
}

View File

@ -35,10 +35,11 @@ Actor *func_80390290(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
int func_80390334(void){
if( levelSpecificFlags_get(0x11) && levelSpecificFlags_get(0x12) && levelSpecificFlags_get(0x13)){
return TRUE;
}
int func_80390334(void) {
if (levelSpecificFlags_get(LEVEL_FLAG_11_FP_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_12_FP_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_13_FP_UNKNOWN)) {
return TRUE;
}
return FALSE;
}
@ -47,9 +48,9 @@ void func_80390388(Actor *this){
if(!this->volatile_initialized){
this->volatile_initialized = TRUE;
if(jiggyscore_isSpawned(JIGGY_2E_FP_PRESENTS) || jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)){
levelSpecificFlags_set(0x11, TRUE);
levelSpecificFlags_set(0x12, TRUE);
levelSpecificFlags_set(0x13, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_11_FP_UNKNOWN, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_12_FP_UNKNOWN, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_13_FP_UNKNOWN, TRUE);
}
if(jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3) || jiggyscore_isSpawned(JIGGY_2C_FP_BOGGY_3)){
this->unk38_31 = FALSE;

View File

@ -34,7 +34,7 @@ void func_80390630(Actor *this){
this->volatile_initialized = TRUE;
this->marker->propPtr->unk8_3 = FALSE;
actor_collisionOn(this);
this->unk38_31 = jiggyscore_isCollected(JIGGY_32_FP_WOZZA) || levelSpecificFlags_get(0x26) ? 0 : 1;
this->unk38_31 = jiggyscore_isCollected(JIGGY_32_FP_WOZZA) || levelSpecificFlags_get(LEVEL_FLAG_26_FP_UNKNOWN) ? 0 : 1;
}//L80390714
if(this->unk38_31){
@ -66,18 +66,18 @@ void func_80390630(Actor *this){
}
}
if(func_80329530(this, 350)){
if(player_getTransformation() == TRANSFORM_4_WALRUS){
if(!levelSpecificFlags_get(0x31)){
if(gcdialog_showText(ASSET_C27_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)){
levelSpecificFlags_set(0x31, TRUE);
if (func_80329530(this, 350)) {
if (player_getTransformation() == TRANSFORM_4_WALRUS) {
if (!levelSpecificFlags_get(LEVEL_FLAG_31_FP_UNKNOWN)) {
if (gcdialog_showText(ASSET_C27_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)) {
levelSpecificFlags_set(LEVEL_FLAG_31_FP_UNKNOWN, TRUE);
}
}
}
else{
if(!levelSpecificFlags_get(0x32)){
if(gcdialog_showText(ASSET_C26_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)){
levelSpecificFlags_set(0x32, TRUE);
else {
if (!levelSpecificFlags_get(LEVEL_FLAG_32_FP_UNKNOWN)) {
if (gcdialog_showText(ASSET_C26_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)) {
levelSpecificFlags_set(LEVEL_FLAG_32_FP_UNKNOWN, TRUE);
}
}
}

View File

@ -192,7 +192,7 @@ void FP_func_8038F7AC(Actor *this){
return;
}
if(levelSpecificFlags_get(0x26)){
if (levelSpecificFlags_get(LEVEL_FLAG_26_FP_UNKNOWN)) {
this->unk38_31 = TRUE;
func_8038F274();
}

View File

@ -76,7 +76,7 @@ void func_8038FF54(Actor *this){
sp40[2] = (f32)(s32)sp40[2];
bundle_setYaw(this->yaw + 90.0f);
jiggy_spawn(JIGGY_32_FP_WOZZA, sp40);
levelSpecificFlags_set(0x26, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_26_FP_UNKNOWN, TRUE);
marker_despawn(this->marker);
}
else if(this->marker->unk14_21){//L8039016C

View File

@ -40,7 +40,7 @@ void __chXmasTree_80386EF4(Actor *this, int arg1){
}
void __chXmasTree_80386F3C(void){
levelSpecificFlags_set(0x29, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_29_FP_UNKNOWN, TRUE);
func_803228D8();
volatileFlag_set(VOLATILE_FLAG_E, 1);
func_802E4078(MAP_53_FP_CHRISTMAS_TREE, 1, 0);
@ -107,7 +107,8 @@ void chXmasTree_update(Actor *this){
}
this->depth_mode = 1;
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){
if (jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
__chXmasTree_80386EF4(this, 1);
return;
}

View File

@ -83,18 +83,18 @@ void func_80390B70(Actor *this){
timedFunc_set_1(2.5f, (GenFunction_1)func_80390B2C, reinterpret_cast(s32, this->marker));
}
void func_80390BDC(Actor *this){
void func_80390BDC(Actor *this) {
this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this);
if(!this->volatile_initialized){
if (!this->volatile_initialized) {
this->volatile_initialized = TRUE;
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE)){
if (jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE)) {
marker_despawn(this->marker);
}
else{
if(levelSpecificFlags_get(0x29)){
func_80390B70(this);
}
else if (levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
func_80390B70(this);
}
}
}

View File

@ -67,7 +67,7 @@ void func_8038E840(f32 position[3], s32 cnt, enum asset_e sprite_id){
}
void func_8038E940(Actor *this){
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){
if (jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
this->marker->propPtr->unk8_3 = TRUE;
this->marker->collidable = FALSE;
subaddie_set_state_with_direction(this, 3, 0.95f, 0);

View File

@ -83,9 +83,10 @@ void __chMazeCtrl_setState(Actor *this, s32 next_state){
else{//L8038F754
timed_playSfx(1.0f, SFX_7F_HEAVYDOOR_SLAM, 1.0f, 32000);
}
if(!levelSpecificFlags_get(0x16)){
if (!levelSpecificFlags_get(LEVEL_FLAG_16_GV_UNKNOWN)) {
gcdialog_showText(ASSET_A82_TEXT_SANDYBUTT_START_MAZE, 4, NULL, NULL, NULL, NULL);
levelSpecificFlags_set(0x16, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_16_GV_UNKNOWN, TRUE);
}
}//L8038F794
@ -133,9 +134,9 @@ void __chMazeCtrl_setState(Actor *this, s32 next_state){
if(++local->unk4 == 1)
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff);
if(!levelSpecificFlags_get(0x17)){
if(!levelSpecificFlags_get(LEVEL_FLAG_17_GV_UNKNOWN)){
gcdialog_showText(ASSET_A83_TEXT_SANDYBUTT_DONE, 4, NULL, NULL, NULL, NULL);
levelSpecificFlags_set(0x17, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_17_GV_UNKNOWN, TRUE);
}
}
@ -165,7 +166,7 @@ void chMazeCtrl_update(Actor *this){
local->unk8 = 1.0f;
}//L8038FA8C
if(jiggyscore_isCollected(JIGGY_41_GV_MAZE))
levelSpecificFlags_set(0x17, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_17_GV_UNKNOWN, TRUE);
}//L8038FAA4
player_getPosition(sp3C);
@ -174,11 +175,12 @@ void chMazeCtrl_update(Actor *this){
if(sp38 != NULL && func_8034DC80(sp38, sp3C)){
__chMazeCtrl_setState(this, 2);
}
if( !levelSpecificFlags_get(0x15)
if (!levelSpecificFlags_get(LEVEL_FLAG_15_GV_UNKNOWN)
&& ml_timer_update(&local->unk8, sp34)
&& gcdialog_showText(ASSET_A81_TEXT_SANDYBUTT_ENTER, 0, NULL, NULL, NULL, NULL)
){
levelSpecificFlags_set(0x15, TRUE);
) {
levelSpecificFlags_set(LEVEL_FLAG_15_GV_UNKNOWN, TRUE);
}
}//L8038FB34

View File

@ -30,7 +30,7 @@ void func_80390000(s32 arg0){
}//L803900AC
if(GV_D_80391AD0 == 2){
levelSpecificFlags_set(6, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_6_GV_UNKNOWN, FALSE);
func_803228D8();
func_802E4078(MAP_15_GV_WATER_PYRAMID, 1, 0);
}
@ -40,7 +40,8 @@ void func_803900F8(void){}
void func_80390100(void){
GV_D_80391AD0 = 0;
if(levelSpecificFlags_get(6)){
if (levelSpecificFlags_get(LEVEL_FLAG_6_GV_UNKNOWN)) {
func_80390000(1);
}
}

View File

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

View File

@ -70,8 +70,9 @@ void chLoggo_update(Actor *this){
subaddie_set_state_with_direction(this, 1, 0.01f, 1);
actor_loopAnimation(this);
this->lifetime_value = 0.0f;
if(!fileProgressFlag_get(FILEPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){
if(gcdialog_showText(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)){
if (!fileProgressFlag_get(FILEPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(LEVEL_FLAG_33_MMM_UNKNOWN)) {
if (gcdialog_showText(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)) {
fileProgressFlag_set(FILEPROG_8A_EXITED_LOGGO, TRUE);
}
}
@ -107,7 +108,7 @@ void chLoggo_update(Actor *this){
if(actor_animationIsAt(this, 0.46f)){
this->marker->propPtr->unk8_3 = FALSE;
FUNC_8030E8B4(SFX_92_TOILET_FLUSH, 1.0f, 32000, this->position, 600, 1500);
levelSpecificFlags_set(0x33, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_33_MMM_UNKNOWN, TRUE);
ml_vec3f_assign(sp38, this->position_x - 50.0f, this->position_y + 50.0f, this->position_z);
func_8028F6E4(BS_INTR_2F_LOGGO, sp38);
}

View File

@ -370,10 +370,13 @@ void func_80388FE4(Actor *this) {
void func_80389004(Actor *this){
func_802D3CE8(this);
if(!this->volatile_initialized){
if (!this->volatile_initialized) {
this->volatile_initialized = TRUE;
if(levelSpecificFlags_get(0x2e))
if (levelSpecificFlags_get(LEVEL_FLAG_2E_MMM_UNKNOWN)) {
marker_despawn(this->marker);
}
}
}

View File

@ -104,11 +104,12 @@ void func_8038966C(void){
if((s32)(tmp_v0->flags << 4) < 0){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 1.4f, 32750);
MMM_D_8038C4E0.unk1 = 2;
if(!levelSpecificFlags_get(0x1b)){
if (!levelSpecificFlags_get(LEVEL_FLAG_1B_MMM_UNKNOWN)) {
func_80324E38(0.0f, 3);
timed_setStaticCameraToNode(0.0f, 0);
func_80324DBC(0.0f, 0xad7, 6, NULL, NULL, func_803895D8, NULL);
levelSpecificFlags_set(0x1b, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_1B_MMM_UNKNOWN, TRUE);
}
}
}

View File

@ -251,11 +251,11 @@ void func_8038AA44(void){
&& MMM_D_8038C510.unkC != NULL
&& func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
){
if(!levelSpecificFlags_get(0x2f)){
levelSpecificFlags_set(0x2f, TRUE);
if (!levelSpecificFlags_get(LEVEL_FLAG_2F_MMM_UNKNOWN)) {
levelSpecificFlags_set(LEVEL_FLAG_2F_MMM_UNKNOWN, TRUE);
func_8038A140(2);
}
else{
else {
func_8038A140(3);
}
}

View File

@ -53,10 +53,13 @@ void __chAnchorCtrl_setState(Actor *this, s32 new_state){
void chAnchorCtrl_update(Actor *this){
if(!this->volatile_initialized){
this->volatile_initialized = TRUE;
if(levelSpecificFlags_getSet(0x30, FALSE))
if (levelSpecificFlags_getSet(LEVEL_FLAG_30_RBB_UNKNOWN, FALSE)) {
__chAnchorCtrl_setState(this, 2);
else
}
else {
__chAnchorCtrl_setState(this, 1);
}
if(jiggyscore_isSpawned(JIGGY_53_RBB_SNORKEL))
marker_despawn(this->marker);

View File

@ -20,7 +20,7 @@ void __chAnchorSwitch_setState(Actor *this, s32 arg1){
actor_collisionOff(this);
this->position_y -= 35.0f;
if(this->state == 1){
levelSpecificFlags_set(0x30, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_30_RBB_UNKNOWN, TRUE);
volatileFlag_set(VOLATILE_FLAG_E, 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

@ -58,8 +58,8 @@ ActorInfo D_8039083C = {
f32 D_80390860[3] = {1.0f, 0.5f, 0.5f};
/* .code */
f32 func_8038A4E0(void){
return D_80390860[2*levelSpecificFlags_get(0x27) + levelSpecificFlags_get(0x28)];
f32 func_8038A4E0(void) {
return D_80390860[2 * levelSpecificFlags_get(LEVEL_FLAG_27_RBB_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_28_RBB_UNKNOWN)];
}
void func_8038A524(Actor *this, s32 arg1){

View File

@ -23,8 +23,8 @@ ActorInfo D_803906E0 = {
s32 D_80390704[4] = {0x258, 0x12C, 0x12C, 0};
/*.code */
f32 __chPropellor_getSpeed(void){
return (f32) D_80390704[2*levelSpecificFlags_get(0x27) + levelSpecificFlags_get(0x28)];
f32 __chPropellor_getSpeed(void) {
return (f32) D_80390704[2 * levelSpecificFlags_get(LEVEL_FLAG_27_RBB_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_28_RBB_UNKNOWN)];
}
void __chPropellor_setState(Actor *this, s32 arg1){
@ -50,7 +50,8 @@ void func_80389B80(Actor *this, f32 arg1){
func_802F9DB8(local->unk0, arg1, arg1, 0.0f);
func_802F9F80(local->unk0, 0.0f, 8999999488.0f, 0.0f);
func_802FA060(local->unk0, 0x4650, 0x4650, 0.0f);
if(!levelSpecificFlags_get(3) && !levelSpecificFlags_get(4)){
if (!levelSpecificFlags_get(LEVEL_FLAG_3_RBB_UNKNOWN) && !levelSpecificFlags_get(LEVEL_FLAG_4_RBB_UNKNOWN)) {
func_802F9EC4(local->unk0, &this->position, 0x1f4, 0x7d0);
func_802FA0B0(local->unk0, 1);
}
@ -90,7 +91,8 @@ void chPropellor_update(Actor *this){
local->unk4 = 0.0f;
local->unkC = 0.0f;
__chPropellor_setState(this, 1);
if(levelSpecificFlags_get(local->unk8 ? 4 : 3)){
if (levelSpecificFlags_get(local->unk8 ? LEVEL_FLAG_4_RBB_UNKNOWN : LEVEL_FLAG_3_RBB_UNKNOWN)) {
ncStaticCamera_setToNode(9);
func_80324E38(0.0f, 3);
timedFunc_set_2(0.1f, (GenFunction_2)levelSpecificFlags_set, local->unk8 ? 0x28 : 0x27, 1);
@ -107,10 +109,12 @@ void chPropellor_update(Actor *this){
if( (0.0f < tmp && this->pitch <= 0.0f)
|| (180.0f < tmp && this->pitch <= 180.0f)
){
if(levelSpecificFlags_get(3) || levelSpecificFlags_get(4))
if (levelSpecificFlags_get(LEVEL_FLAG_3_RBB_UNKNOWN) || levelSpecificFlags_get(LEVEL_FLAG_4_RBB_UNKNOWN)) {
func_8030E760(SFX_2_CLAW_SWIPE, 0.4f, 20000);
else
}
else {
func_8030E988(SFX_2_CLAW_SWIPE, 0.4f, 20000, &this->position, 500.0f, 1000.0f);
}
}//L80389F94
if(this->pitch < 0.0f)
this->pitch += 360.0f;

View File

@ -114,8 +114,8 @@ void chPropellorSwitch_update(Actor *this){
}//L8038A47C
if(this->state == 2){
if( !levelSpecificFlags_get(local->unk0->unkA)
&& !levelSpecificFlags_get(3)
&& !levelSpecificFlags_get(4)
&& !levelSpecificFlags_get(LEVEL_FLAG_3_RBB_UNKNOWN)
&& !levelSpecificFlags_get(LEVEL_FLAG_4_RBB_UNKNOWN)
){
__chPropellorSwitch_setState(this, 1);
}

View File

@ -210,7 +210,7 @@ void func_803881E8(Actor *this, s32 arg1){
func_80324E38(0.2f, 3);
timed_setStaticCameraToNode(1.1f, 7);
timedFunc_set_1(1.6f, (GenFunction_1)func_80388154, (s32)this->marker);
levelSpecificFlags_set(0x2D, 1);
levelSpecificFlags_set(LEVEL_FLAG_2D_RBB_UNKNOWN, TRUE);
}
}
@ -223,12 +223,14 @@ void func_803882B4(ActorMarker *marker, s32 arg1){
void RBB_func_803882F4(Actor *this){
if(!this->volatile_initialized){
this->volatile_initialized = TRUE;
if(levelSpecificFlags_get(0x2d)){
if (levelSpecificFlags_get(LEVEL_FLAG_2D_RBB_UNKNOWN)) {
func_80387AC0();
RBB_func_80387960(0.0f);
func_80387B24();
func_803881E8(this, 3);
}else{
}
else {
marker_setCollisionScripts(this->marker, NULL, func_803882B4, NULL);
func_8032AA58(this, 1.1f);
func_803881E8(this, 1);

View File

@ -21,8 +21,8 @@ void __propellorCtrl_setState(s32 arg0){
}
if(arg0 == 3 || arg0 == 4){
levelSpecificFlags_set(0x27, FALSE);
levelSpecificFlags_set(0x28, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_27_RBB_UNKNOWN, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_28_RBB_UNKNOWN, FALSE);
item_set(ITEM_9_PROPELLOR,0);
if(arg0 == 3 && !jiggyscore_isCollected(JIGGY_57_RBB_PROPELLOR)){
timedFunc_set_1(0.5f, (GenFunction_1)func_802FAD64, 3);
@ -51,9 +51,11 @@ void rbb_propellorCtrl_start(void){
}
void rbb_propellorCtrl_update(void){
if( __propellorCtrlState == 0)
if(levelSpecificFlags_get(0x27) && levelSpecificFlags_get(0x28))
if (__propellorCtrlState == 0) {
if (levelSpecificFlags_get(LEVEL_FLAG_27_RBB_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_28_RBB_UNKNOWN)) {
__propellorCtrl_setState(1);
}
}
if(__propellorCtrlState == 1)
if(ml_timer_update(&__propellorTimer,time_getDelta()))

View File

@ -39,11 +39,13 @@ void chLeaky_update(Actor *this) {
if (!this->volatile_initialized) {
this->volatile_initialized = TRUE;
this->marker->propPtr->unk8_3 = FALSE;
if (levelSpecificFlags_get(5) != 0) {
levelSpecificFlags_set(5, FALSE);
if (levelSpecificFlags_get(LEVEL_FLAG_5_TTC_UNKNOWN) != FALSE) {
levelSpecificFlags_set(LEVEL_FLAG_5_TTC_UNKNOWN, FALSE);
timedFunc_set_1(0.5f, (GenFunction_1)comusic_playTrack, COMUSIC_2D_PUZZLE_SOLVED_FANFARE);
}
if (levelSpecificFlags_get(2) != 0) {
if (levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN) != FALSE) {
temp_v0_2 = func_8034C5AC(300);
if (temp_v0_2 != 0) {
func_8034E71C(temp_v0_2, -600, 0.0f);
@ -100,17 +102,20 @@ void __chLeaky_startCutscene(ActorMarker *caller, enum asset_e text_id, s32 arg2
bool chLeaky_eggCollision(ActorMarker *marker){
Actor *this = marker_getActor(marker);
if(levelSpecificFlags_get(2))
if (levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN)) {
return TRUE;
}
comusic_playTrack(COMUSIC_2B_DING_B);
this->unk38_31++;
if(this->unk38_31 < 2)
return TRUE;
levelSpecificFlags_set(2, TRUE);
levelSpecificFlags_set(5, TRUE);
if (this->unk38_31 < 2) {
return TRUE;
}
levelSpecificFlags_set(LEVEL_FLAG_2_TTC_UNKNOWN, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_5_TTC_UNKNOWN, TRUE);
gcdialog_showText(ASSET_A28_TEXT_LEAKY_DONE, 0x2a, this->position, this->marker, __chLeaky_startCutscene, NULL);
return TRUE;
}

View File

@ -387,7 +387,7 @@ void func_8038B094(void){
void *sp28;
if( map_get() == MAP_7_TTC_TREASURE_TROVE_COVE
&& levelSpecificFlags_get(0x2)
&& levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN)
){
sp2C = func_8034C5AC(0x12C);
if(sp2C){
@ -401,7 +401,8 @@ void func_8038B094(void){
else{
sp2C = func_8034C5AC(0x131);
sp28 = func_8034C5AC(0x12C);
if(levelSpecificFlags_get(5)){
if (levelSpecificFlags_get(LEVEL_FLAG_5_TTC_UNKNOWN)) {
func_8034E71C(sp2C, -500, 10.0f);
func_80324E38(0.0f, 3);
timed_setStaticCameraToNode(0.0f, 1);
@ -410,10 +411,10 @@ 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) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
else if (levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)) {
func_8034E71C(sp2C, -500, 0.0f);
}
else{
else {
func_8034E71C(sp28, -500, 0.0f);
}//L8038B1EC
@ -474,7 +475,7 @@ void func_8038B2F0(void) {
}
}
if ((D_8038D720.unk8 == 0) || (D_8038D720.unk8 == 3)) {
if( (levelSpecificFlags_get(2) || volatileFlag_get(VOLATILE_FLAG_3))
if( (levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN) || volatileFlag_get(VOLATILE_FLAG_3))
&& (player_getActiveHitbox(0) == HITBOX_1_BEAK_BUSTER)
&& func_8028F20C()
) {

View File

@ -107,7 +107,7 @@ void func_8024AAB0(void){
break;
case MAP_41_FP_BOGGYS_IGLOO: //L8024AD08
if( jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)
|| (levelSpecificFlags_get(0x11) && levelSpecificFlags_get(0x12) && levelSpecificFlags_get(0x13))
|| (levelSpecificFlags_get(LEVEL_FLAG_11_FP_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_12_FP_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_13_FP_UNKNOWN))
){
D_80280708[2] = 0;
}

View File

@ -128,7 +128,7 @@ void bsjig_jiggy_end(void){
sp2C = 0xa16;
break;
case 0x17:
if(!levelSpecificFlags_get(0) || !levelSpecificFlags_get(1))
if(!levelSpecificFlags_get(LEVEL_FLAG_0_CC_TOKEN_TOOTH_OPEN) || !levelSpecificFlags_get(LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN))
sp2C = 0xd2d;
break;
}

View File

@ -90,10 +90,10 @@ void func_80357264(Actor *this, s32 next_state){
}
if(next_state == 5){
if(!levelSpecificFlags_get(0x14)
if(!levelSpecificFlags_get(LEVEL_FLAG_14_TTC_UNKNOWN)
&& !( actorArray_findClosestActorFromActorId(this->position, 0x318, -1, &sp38) && ( sp38 < 250.0f))
){
levelSpecificFlags_set(0x14, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_14_TTC_UNKNOWN, TRUE);
func_80324E38(0.0f, 3);
__clucker_setDeathCutsceneCamera(this);
timed_exitStaticCamera(2.0f);

View File

@ -152,7 +152,7 @@ void __chCrab_mutantTextCallback(ActorMarker *caller, enum asset_e text_id, s32
func_80324E38(3.0f, 0);
return;
}
levelSpecificFlags_set(0xE, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_E_CC_UNKNOWN, FALSE);
}
bool __chCrab_802CB76C(ActorMarker *marker, ActorMarker *other) {
@ -272,13 +272,13 @@ void chCrab_update(Actor *this) {
if ((this->state != 6) && (this->state != 5)) {
gcdialog_showText(ASSET_D32_DIALOG_MUTANT_CRAB_MEET, 0xF, this->position, NULL, __chCrab_mutantTextCallback, NULL);
mapSpecificFlags_set(0, TRUE);
levelSpecificFlags_set(0xE, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_E_CC_UNKNOWN, TRUE);
this->has_met_before = TRUE;
}
}
if (map_get() == MAP_A_TTC_SANDCASTLE) {
if( !mapSpecificFlags_get(0)
&& levelSpecificFlags_get(2)
&& levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN)
&& !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
&& !jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)
&& func_80329530(this, 1600)
@ -290,7 +290,7 @@ void chCrab_update(Actor *this) {
mapSpecificFlags_set(1, FALSE);
}
}
if (levelSpecificFlags_get(0xE)) {
if (levelSpecificFlags_get(LEVEL_FLAG_E_CC_UNKNOWN)) {
if ((this->state != 8) && (this->state != 9)) {
subaddie_set_state_with_direction(this, (this->has_met_before) ? 8 : 9, 0.0f, 1);
this->has_met_before = FALSE;
@ -306,7 +306,7 @@ void chCrab_update(Actor *this) {
break;
case 9: //L802CBE6C
if (!levelSpecificFlags_get(0xE)) {
if (!levelSpecificFlags_get(LEVEL_FLAG_E_CC_UNKNOWN)) {
subaddie_set_state_with_direction(this, 3, 0.0f, 1);
}
break;
@ -337,7 +337,7 @@ void chCrab_update(Actor *this) {
if (func_80329480(this)) {
subaddie_set_state(this, 9);
this->actor_specific_1_f = 12.0f;
} else if (!levelSpecificFlags_get(0xE)) {
} else if (!levelSpecificFlags_get(LEVEL_FLAG_E_CC_UNKNOWN)) {
subaddie_set_state_with_direction(this, 3, 0.0f, 1);
}
break;

View File

@ -181,10 +181,12 @@ void chjiggy_update(Actor *this){
func_802C7B8C(this, 0xd, 0xc, 0x1e, 9, 0xb, VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED);
break;
case JIGGY_2F_FP_XMAS_TREE://L802C8048
if(levelSpecificFlags_get(0x29))
if (levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
actor_collisionOn(this);
else
}
else {
actor_collisionOff(this);
}
break;
}
break;

View File

@ -185,18 +185,18 @@ void chmole_additionalAbilityLearnActions(ActorMarker *marker, enum asset_e arg1
switch(arg2){
case 1: // Stilt Stride
timed_setStaticCameraToNode(0.0f, 0x11);
levelSpecificFlags_set(0x1A, 1);
levelSpecificFlags_set(LEVEL_FLAG_1A_UNKNOWN, TRUE);
break;
case 2:
levelSpecificFlags_set(0x1A, 0);
levelSpecificFlags_set(LEVEL_FLAG_1A_UNKNOWN, FALSE);
chmole_setStaticCamera(actor);
break;
case 3: // Turbo Talon Trainer
timed_setStaticCameraToNode(0.0f, 0x29);
levelSpecificFlags_set(0x1A, 1);
levelSpecificFlags_set(LEVEL_FLAG_1A_UNKNOWN, TRUE);
break;
case 4:
levelSpecificFlags_set(0x1A, 0);
levelSpecificFlags_set(LEVEL_FLAG_1A_UNKNOWN, FALSE);
chmole_setStaticCamera(actor);
break;
case 5: // Egg Firing

View File

@ -142,12 +142,13 @@ void __chTermite_die(ActorMarker *marker, ActorMarker *other_marker){
FUNC_8030E624(SFX_D1_SNORKEL_WAH, 1.4f, 32750);
marker_despawn(marker);
}
void __chTermite_testCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2){
void __chTermite_testCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2) {
Actor *this;
this = marker_getActor(caller);
this->has_met_before = FALSE;
levelSpecificFlags_set(0xd, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_D_MM_UNKNOWN, FALSE);
}
void chTermite_update(Actor *this) {
@ -172,7 +173,7 @@ void chTermite_update(Actor *this) {
) {
gcdialog_showText(ASSET_B43_DIALOG_TERMITE_MEET_AS_BEAR, 7, this->position, this->marker, __chTermite_testCallback, NULL);
mapSpecificFlags_set(0, TRUE);
levelSpecificFlags_set(0xD, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_D_MM_UNKNOWN, TRUE);
this->has_met_before = TRUE;
}
@ -181,13 +182,14 @@ void chTermite_update(Actor *this) {
&& func_8028ECAC() == 0
&& player_getTransformation() == TRANSFORM_2_TERMITE
) {
if (!levelSpecificFlags_get(0xB)) {
if (!levelSpecificFlags_get(LEVEL_FLAG_B_MM_UNKNOWN)) {
if (gcdialog_showText(ASSET_B41_DIALOG_TERMITE_COOL_SHORTS, 0, NULL, NULL, NULL, NULL)) {
levelSpecificFlags_set(0xB, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_B_MM_UNKNOWN, TRUE);
this->unk138_23 = TRUE;
}
} else if (!levelSpecificFlags_get(0xC) && !this->unk138_23 && (gcdialog_showText(ASSET_B42_DIALOG_TERMITE_COOL_BACKPACK, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(0xC, TRUE);
}
else if (!levelSpecificFlags_get(LEVEL_FLAG_C_MM_UNKNOWN) && !this->unk138_23 && (gcdialog_showText(ASSET_B42_DIALOG_TERMITE_COOL_BACKPACK, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(LEVEL_FLAG_C_MM_UNKNOWN, TRUE);
}
}
switch (this->state) {

View File

@ -56,8 +56,9 @@ void _chtrainers_802CA378(Actor *this, bool arg1){
}
void chtrainers_update(Actor *this){
s32 sp2C = levelSpecificFlags_get(0x1a);
if(sp2C && this->unkF4_8 != 1){
s32 sp2C = levelSpecificFlags_get(LEVEL_FLAG_1A_UNKNOWN);
if (sp2C && this->unkF4_8 != 1) {
return;
}

View File

@ -33,8 +33,9 @@ Actor *chwadingboots_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
void chwadingboots_update(Actor *this){
s32 sp2C = levelSpecificFlags_get(0x1a);
if(sp2C && this->unkF4_8 != 1){
s32 sp2C = levelSpecificFlags_get(LEVEL_FLAG_1A_UNKNOWN);
if (sp2C && this->unkF4_8 != 1) {
return;
}

View File

@ -360,8 +360,8 @@ void chMumbo_update(Actor *this) {
break;
}
func_8025A6EC(COMUSIC_2C_BUZZER, 22000);
if ((levelSpecificFlags_get(0x3E) == 0) && (gcdialog_showText(ASSET_DAC_DIALOG_MUMBO_FAIL_TO_BUY, 0, NULL, NULL, NULL, NULL) != 0)) {
levelSpecificFlags_set(0x3E, 1);
if ((levelSpecificFlags_get(LEVEL_FLAG_3E_UNKNOWN) == FALSE) && (gcdialog_showText(ASSET_DAC_DIALOG_MUMBO_FAIL_TO_BUY, 0, NULL, NULL, NULL, NULL) != 0)) {
levelSpecificFlags_set(LEVEL_FLAG_3E_UNKNOWN, 1);
}
}
}

View File

@ -218,10 +218,10 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x108:
case 0x263:
if ((arg0->id == 0x9D) || (arg0->id == 0xE7)) {
levelSpecificFlags_set(0x2E, 1);
levelSpecificFlags_set(LEVEL_FLAG_2E_MMM_UNKNOWN, 1);
}
if (arg0->id == 0x263) {
levelSpecificFlags_set(0x38, 1);
levelSpecificFlags_set(LEVEL_FLAG_38_CCW_UNKNOWN, 1);
}
func_802D2FB0(sp2C, 5, -0x28, 0xC8, 0.85f, 0xDC, 0x3C, 0x64);
func_8030E540(SFX_D_EGGSHELL_BREAKING);
@ -817,46 +817,50 @@ void func_802D5260(void) {
: -1;
if (sp3C == -1) {
levelSpecificFlags_set(0x3C, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_3C_LAIR_UNKNOWN, FALSE);
fileProgressFlag_set(FILEPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
levelSpecificFlags_set(0x3D, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_3D_LAIR_UNKNOWN, FALSE);
return;
}
sp38 = func_8034C528(sp3C + 0x190);
if( fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3)
&& !levelSpecificFlags_get(0x3D)
&& !levelSpecificFlags_get(0x3C)
&& !levelSpecificFlags_get(LEVEL_FLAG_3D_LAIR_UNKNOWN)
&& !levelSpecificFlags_get(LEVEL_FLAG_3C_LAIR_UNKNOWN)
) {
func_802D68F0(30);
item_set(ITEM_6_HOURGLASS, TRUE);
levelSpecificFlags_set(0x3D, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_3D_LAIR_UNKNOWN, TRUE);
}
if( levelSpecificFlags_get(0x3D)
&& !levelSpecificFlags_get(0x3C)
if( levelSpecificFlags_get(LEVEL_FLAG_3D_LAIR_UNKNOWN)
&& !levelSpecificFlags_get(LEVEL_FLAG_3C_LAIR_UNKNOWN)
&& item_getCount(ITEM_6_HOURGLASS) == FALSE
) {
levelSpecificFlags_set(0x3C, TRUE);
levelSpecificFlags_set(0x3D, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_3C_LAIR_UNKNOWN, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_3D_LAIR_UNKNOWN, FALSE);
D_803676A4 = 0.0f;
}
if (levelSpecificFlags_get(0x3C)) {
if (levelSpecificFlags_get(LEVEL_FLAG_3C_LAIR_UNKNOWN)) {
D_803676A4 -= 5.0;
if (D_803676A8 == 0) {
D_803676A8 = func_802F9AA8(SFX_3EC_CCW_DOOR_OPENING);
func_802FA060(D_803676A8, 20000, 20000, 0.0f);
func_802F9F80(D_803676A8, 0.0f, 1.0e8f, 0.0f);
}
if (D_803679C8[sp3C].unk6 + D_803676A4 <= D_803679C8[sp3C].unk4) {
levelSpecificFlags_set(0x3C, FALSE);
levelSpecificFlags_set(LEVEL_FLAG_3C_LAIR_UNKNOWN, FALSE);
fileProgressFlag_set(FILEPROG_26_WATER_SWITCH_3_PRESSED, FALSE);
fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
fileProgressFlag_set(FILEPROG_27_LAIR_WATER_LEVEL_3, FALSE);
func_802F9D38(D_803676A8);
D_803676A8 = 0;
}
}
if (sp38 != 0) {
if (levelSpecificFlags_get(0x3C) != 0) {
if (levelSpecificFlags_get(LEVEL_FLAG_3C_LAIR_UNKNOWN) != FALSE) {
sp34 = D_803679C8[sp3C].unk6 + D_803676A4;
} else {
sp34 = ((s16 *)&D_803679C8[sp3C])[(fileProgressFlag_get(FILEPROG_27_LAIR_WATER_LEVEL_3)) ? 3
@ -1012,16 +1016,16 @@ void func_802D5628(void){
}
else{//L802D5B64
func_802D5260();
func_802D5178(0x1C, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(0x21, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(0x1E, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(0x1D, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(0x1F, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(0x23, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(0x22, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
func_802D5178(0x24, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA);
func_802D5178(0x20, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA);
func_802D5178(0x3F, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_DOOR_OF_GRUNTY, 0x28);
func_802D5178(LEVEL_FLAG_1C_MM_UNKNOWN, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(LEVEL_FLAG_21_GV_UNKNOWN, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(LEVEL_FLAG_1E_CC_UNKNOWN, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(LEVEL_FLAG_1D_TTC_UNKNOWN, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(LEVEL_FLAG_1F_BGS_UNKNOWN, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_23_RBB_UNKNOWN, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_22_MMM_UNKNOWN, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_24_CCW_UNKNOWN, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_20_FP_UNKNOWN, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_3F_LAIR_UNKNOWN, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_DOOR_OF_GRUNTY, 0x28);
if(volatileFlag_get(VOLATILE_FLAG_18)){
if(!fileProgressFlag_get(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT)){
func_80311174(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140);

View File

@ -85,7 +85,7 @@ void __chLevelCollectible_presentCollectEmitSparkles(f32 position[3], enum asset
}
s32 __chLevelCollectible_dialogCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
return -(levelSpecificFlags_get(0x2A) + levelSpecificFlags_get(0x2B) + levelSpecificFlags_get(0x2C));
return -(levelSpecificFlags_get(LEVEL_FLAG_2A_FP_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_2B_FP_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_2C_FP_UNKNOWN));
}
@ -123,21 +123,21 @@ void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker
break;
case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(0x2A, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_2A_FP_UNKNOWN, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
__chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE);
dialog_id = ASSET_C20_DIALOG_PRESENT_COLLECTIBLE_MEET_BLUE;
break;
case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(0x2B, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_2B_FP_UNKNOWN, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
__chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_712_SPRITE_SPARKLE_GREEN);
dialog_id = ASSET_C21_DIALOG_PRESENT_COLLECTIBLE_MEET_GREEN;
break;
case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(0x2C, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_2C_FP_UNKNOWN, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
__chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_715_SPRITE_SPARKLE_RED);
dialog_id = ASSET_C22_DIALOG_PRESENT_COLLECTIBLE_MEET_RED;
@ -241,15 +241,15 @@ void __chLevelCollectible_returnObj(Actor *this) {
break;
case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(0x11, 1);
levelSpecificFlags_set(LEVEL_FLAG_11_FP_UNKNOWN, TRUE);
break;
case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(0x12, 1);
levelSpecificFlags_set(LEVEL_FLAG_12_FP_UNKNOWN, TRUE);
break;
case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(0x13, 1);
levelSpecificFlags_set(LEVEL_FLAG_13_FP_UNKNOWN, TRUE);
break;
}
}

View File

@ -278,7 +278,7 @@ void func_803465E4(void){
}
if(!func_8028EC04() && func_8028F070()){
if(level_get() != LEVEL_2_TREASURE_TROVE_COVE || !levelSpecificFlags_get(5)){
if(level_get() != LEVEL_2_TREASURE_TROVE_COVE || !levelSpecificFlags_get(LEVEL_FLAG_5_TTC_UNKNOWN)){
is_underwater = (player_getWaterState() == BSWATERGROUP_2_UNDERWATER);
is_on_water_surface = (player_getWaterState() == BSWATERGROUP_1_SURFACE);
is_in_polluted_or_winter_water = ((level_get() == LEVEL_9_RUSTY_BUCKET_BAY) || (map_get() == MAP_46_CCW_WINTER));
@ -398,10 +398,10 @@ void func_80346DB4(s32 note_count) {
gcdialog_showText(0xF78, 4, NULL, NULL, NULL, NULL);
}
if (note_count == 1) {
levelSpecificFlags_set(0x34, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_34_UNKNOWN, TRUE);
}
if (!levelSpecificFlags_get(0x34) && (gcdialog_showText(0xF76, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(0x34, TRUE);
if (!levelSpecificFlags_get(LEVEL_FLAG_34_UNKNOWN) && (gcdialog_showText(0xF76, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(LEVEL_FLAG_34_UNKNOWN, TRUE);
}
if (volatileFlag_get(VOLATILE_FLAG_17) == 0) {
volatileFlag_set(VOLATILE_FLAG_17, 1);

View File

@ -252,7 +252,7 @@ void mapModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
break;
case MAP_12_GV_GOBIS_VALLEY:
func_8033A45C(1, levelSpecificFlags_get(6) ? 1 : 0);
func_8033A45C(1, levelSpecificFlags_get(LEVEL_FLAG_6_GV_UNKNOWN) ? 1 : 0);
func_8033A45C(2, jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID) ? 0 : 1);
func_8033A45C(5, jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID) ? 1 : 0);
break;

View File

@ -90,7 +90,7 @@ void func_8038EBEC(ActorMarker *marker) {
if (this->unkF4_8 == 0xA) {
func_8028F918(0);
func_8028F918(2);
levelSpecificFlags_set(0x3F, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_3F_LAIR_UNKNOWN, TRUE);
return;
}
if (this->unkF4_8 == 0xB) {