diff --git a/include/enums.h b/include/enums.h index 962df97f..09ceaec9 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2290,9 +2290,18 @@ enum bs_e BS_A5_WONDERWING_UNKA5 }; -enum map_flags_e -{ - mapflag_mm_main_hit_with_orange = 8 +enum mm_specific_flags { + MM_SPECIFIC_FLAG_0_UNKNOWN, + + MM_SPECIFIC_FLAG_2_UNKNOWN = 0x2, + MM_SPECIFIC_FLAG_3_UNKNOWN, + MM_SPECIFIC_FLAG_4_SHAKE, + + MM_SPECIFIC_FLAG_6_UNKNOWN = 0x6, + + MM_SPECIFIC_FLAG_8_HIT_WITH_ORANGE = 0x8, + MM_SPECIFIC_FLAG_9_UNKNOWN, + MM_SPECIFIC_FLAG_A_UNKNOWN }; enum item_e diff --git a/src/MM/ch/chimpystump.c b/src/MM/ch/chimpystump.c index 60efb6e8..42614abc 100644 --- a/src/MM/ch/chimpystump.c +++ b/src/MM/ch/chimpystump.c @@ -9,58 +9,75 @@ void func_80353064(f32 *, f32); void func_802BB3DC(s32, f32, f32); void func_80244BB0(s32, s32, s32, f32); +s32 mapSpecificFlags_get(s32); /* public function declarations */ void chchimpystump_update(Actor *this); /* .data */ -ActorInfo chchimpystump = { MARKER_95_CHIMPY_STUMP, ACTOR_C5_CHIMPY_STUMP, ASSET_3C8_MODEL_CHIMPY_STUMP, +enum chchimpystump_state_e { + CHIMPY_STUMP_STATE_1_LOWERED = 1, + CHIMPY_STUMP_STATE_2_RAISING, + CHIMPY_STUMP_STATE_3_RAISED +}; + +ActorInfo chchimpystump = { + MARKER_95_CHIMPY_STUMP, ACTOR_C5_CHIMPY_STUMP, ASSET_3C8_MODEL_CHIMPY_STUMP, 1, NULL, chchimpystump_update, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; -void _chchimpystump_80386CA0(Actor *this){ - if(mapSpecificFlags_get(4)){ - if(this->unk10_12 == 0){ +/* .code */ +void __chchimpystump_updateShaking(Actor *this) { + if (mapSpecificFlags_get(MM_SPECIFIC_FLAG_4_SHAKE)) { + if (this->unk10_12 == 0) { this->unk10_12 = 1; func_802BB3DC(1, 3.0f, 1.0f); func_80244BB0(0, 0x6A, 0x7FF8, 0.2f); }//L80386D0C - this->position_x = ((globalTimer_getTime() & 1) * 2) ^ (s32)this->position_x; - this->position_z = ((globalTimer_getTime() & 2) * 2) ^ (s32)this->position_z; + + this->position_x = ((globalTimer_getTime() & 1) * 2) ^ (s32) this->position_x; + this->position_z = ((globalTimer_getTime() & 2) * 2) ^ (s32) this->position_z; } } -void chchimpystump_update(Actor *this){ - if(!this->initialized){ +void chchimpystump_update(Actor *this) { + if (!this->initialized) { actor_collisionOff(this); this->initialized = TRUE; this->unk28 = this->position_y; this->position_y -= 134.0f; this->marker->propPtr->unk8_3 = 1; } - switch (this->state) - { - case 1: - if(mapSpecificFlags_get(0)) - subaddie_set_state(this, 2); - _chchimpystump_80386CA0(this); - break; - case 2: - _chchimpystump_80386CA0(this); - this->position_y += 2.5; - if(this->unk28 <= this->position_y){ - this->position_y = this->unk28; - subaddie_set_state(this, 3); - func_802BB41C(1); - func_80244C78(0); - } - if((globalTimer_getTime() & 3) == 2) - func_80353064(this->position, 40.0f); - break; - case 3: - break; + switch (this->state) { + case CHIMPY_STUMP_STATE_1_LOWERED: + if (mapSpecificFlags_get(MM_SPECIFIC_FLAG_0_UNKNOWN)) { + subaddie_set_state(this, CHIMPY_STUMP_STATE_2_RAISING); + } + + __chchimpystump_updateShaking(this); + break; + + case CHIMPY_STUMP_STATE_2_RAISING: + __chchimpystump_updateShaking(this); + this->position_y += 2.5; + + if (this->unk28 <= this->position_y) { + this->position_y = this->unk28; + subaddie_set_state(this, CHIMPY_STUMP_STATE_3_RAISED); + func_802BB41C(1); + func_80244C78(0); + } + + if ((globalTimer_getTime() & 3) == 2) { + func_80353064(this->position, 40.0f); + } + + break; + + case CHIMPY_STUMP_STATE_3_RAISED: + break; } } diff --git a/src/MM/ch/conga.c b/src/MM/ch/conga.c index a42048b3..fe3165d4 100644 --- a/src/MM/ch/conga.c +++ b/src/MM/ch/conga.c @@ -122,7 +122,7 @@ void func_80387168(ActorMarker *marker, ActorMarker *other_marker){ if(((ActorLocal_Conga *)&actorPtr->local)->unkC == 1){ if(actorPtr->unk10_12 == 0){ ((ActorLocal_Conga *)&actorPtr->local)->unkC = 0; - if(mapSpecificFlags_get(0xA)) + if(mapSpecificFlags_get(MM_SPECIFIC_FLAG_A_UNKNOWN)) actorPtr->unk38_31++; actorPtr->unk10_12 = MIN(actorPtr->unk38_31, 0xA); @@ -252,7 +252,7 @@ void func_803876D0(Actor *this){ && func_80311480(ASSET_B37_TEXT_CONGA_SAFE_UP_HERE, 0, 0, 0, 0, 0) ){ this->unk138_23 = 1; - mapSpecificFlags_set(0xA, 1); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_A_UNKNOWN, TRUE); }//L803878F8 if( sp3C && !this->is_first_encounter){ diff --git a/src/MM/ch/juju.c b/src/MM/ch/juju.c index 6865adbe..da46f9c5 100644 --- a/src/MM/ch/juju.c +++ b/src/MM/ch/juju.c @@ -191,7 +191,7 @@ void func_80389598(Actor *this){ }//L803896B4 if(jujuPtr->unk18){ if(sp38 || (sp34 < 180.0f && 180.0f <= this->yaw)){ - mapSpecificFlags_set(9,1); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_9_UNKNOWN, TRUE); } } break; diff --git a/src/MM/ch/jujuhitbox.c b/src/MM/ch/jujuhitbox.c index 9610a518..d03d3a83 100644 --- a/src/MM/ch/jujuhitbox.c +++ b/src/MM/ch/jujuhitbox.c @@ -155,10 +155,10 @@ void func_80388E20(Actor *this){ else{ func_80389514(jujuCtlPtr->unk8); } - - if(mapSpecificFlags_get(0x9)){ + + if (mapSpecificFlags_get(MM_SPECIFIC_FLAG_9_UNKNOWN)) { func_80388D14(this); - mapSpecificFlags_set(0x9, 0); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_9_UNKNOWN, FALSE); } } } diff --git a/src/MM/ch/lmonkey.c b/src/MM/ch/lmonkey.c index d6a4f503..76784813 100644 --- a/src/MM/ch/lmonkey.c +++ b/src/MM/ch/lmonkey.c @@ -69,7 +69,7 @@ void __chLMonkey_spawnJiggy(s32 x, s32 y, s32 z){ void __chLMonkey_complete(ActorMarker *marker, enum asset_e arg1, s32 arg2){ Actor * actor = marker_getActor(marker); - mapSpecificFlags_set(4,1); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_4_SHAKE, TRUE); subaddie_set_state(actor, 3); timed_setStaticCameraToNode(2.3f, 0x12); timedFunc_set_3(2.9f,__chLMonkey_spawnJiggy, actor->position_x, actor->position_y + 150.0f, actor->position_z); @@ -89,7 +89,7 @@ void chLMonkey_update(Actor *this){ }//L8038865C switch(this->state){ case 1://L80388690 - if(mapSpecificFlags_get(2)){ + if (mapSpecificFlags_get(MM_SPECIFIC_FLAG_2_UNKNOWN)) { subaddie_set_state(this, 4); if(!jiggyscore_isCollected(JIGGY_9_MM_CHIMPY)){ func_80311480(ASSET_B40_DIALOG_CHIMPY_COMPLETE, 0xE, this->position, this->marker, __chLMonkey_complete, NULL); @@ -124,10 +124,10 @@ void chLMonkey_update(Actor *this){ func_80343DEC(this); actor_loopAnimation(this); if(0.19 <= this->unk48){ - mapSpecificFlags_set(0, 1); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_0_UNKNOWN, TRUE); } if(0.24 <= this->unk48){ - mapSpecificFlags_set(3, 1); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_3_UNKNOWN, TRUE); } if(0.99 <= this->unk48){ marker_despawn(this->marker); diff --git a/src/MM/ch/orange.c b/src/MM/ch/orange.c index 1260a3f4..2567b6f0 100644 --- a/src/MM/ch/orange.c +++ b/src/MM/ch/orange.c @@ -34,10 +34,10 @@ f32 D_80389A00[3] = {0.0f, 0.0f, 0.0f}; void func_80387F90(ActorMarker *arg0, ActorMarker *other_marker){ if( !func_8028F22C(arg0) - && !mapSpecificFlags_get(mapflag_mm_main_hit_with_orange) + && !mapSpecificFlags_get(MM_SPECIFIC_FLAG_8_HIT_WITH_ORANGE) && func_80311480(ASSET_B3A_TEXT_CONGA_HITS_PLAYER, 0, 0, 0, NULL, NULL) ){ - mapSpecificFlags_set(mapflag_mm_main_hit_with_orange, 1); + mapSpecificFlags_set(MM_SPECIFIC_FLAG_8_HIT_WITH_ORANGE, TRUE); } if(arg0); diff --git a/src/MM/ch/orangepad.c b/src/MM/ch/orangepad.c index 6b8b33ec..24970234 100644 --- a/src/MM/ch/orangepad.c +++ b/src/MM/ch/orangepad.c @@ -118,11 +118,11 @@ void func_80386768(Actor * this){ if( func_80329530(this, 0x28) && !func_8028ECAC() - && !mapSpecificFlags_get(6) + && !mapSpecificFlags_get(MM_SPECIFIC_FLAG_6_UNKNOWN) && closest_actor->state != 3 ){ - if(func_80311480(0xb3d, 0, NULL, NULL, NULL, NULL)) { - mapSpecificFlags_set(6,1); + if (func_80311480(0xb3d, 0, NULL, NULL, NULL, NULL)) { + mapSpecificFlags_set(MM_SPECIFIC_FLAG_6_UNKNOWN, TRUE); } }