From d1e9b74dc293eb39e5b9abc273b210e05a74656c Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Mon, 30 Sep 2024 11:05:42 +0200 Subject: [PATCH 01/16] Documented map Mad Monster Mansion --- include/enums.h | 11 +++++++++++ src/MMM/code_2040.c | 8 ++++---- src/MMM/code_3D50.c | 6 +++--- src/MMM/code_47D0.c | 8 ++++---- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/include/enums.h b/include/enums.h index 543185ca..826bd9e1 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2305,6 +2305,17 @@ enum mm_specific_flags { MM_SPECIFIC_FLAG_A_UNKNOWN }; +enum mmm_specific_flags { + MMM_SPECIFIC_FLAG_0_UNKNOWN, + MMM_SPECIFIC_FLAG_1_UNKNOWN, + MMM_SPECIFIC_FLAG_2_UNKNOWN, + MMM_SPECIFIC_FLAG_3_UNKNOWN, + MMM_SPECIFIC_FLAG_4_UNKNOWN, + MMM_SPECIFIC_FLAG_5_UNKNOWN, + MMM_SPECIFIC_FLAG_6_UNKNOWN, + MMM_SPECIFIC_FLAG_7_UNKNOWN +}; + enum item_e { ITEM_0_HOURGLASS_TIMER = 0x0, diff --git a/src/MMM/code_2040.c b/src/MMM/code_2040.c index 597967a1..cb737ed6 100644 --- a/src/MMM/code_2040.c +++ b/src/MMM/code_2040.c @@ -287,7 +287,7 @@ void func_80388BDC(Actor *this) { f64 phi_f0; func_802D3D74(this); - mapSpecificFlags_set(1, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f))); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f))); if (!this->volatile_initialized) { if (this->yaw != 0.0f) { this->lifetime_value = 0.5f; @@ -304,11 +304,11 @@ void func_80388BDC(Actor *this) { switch (this->state) { case 1: this->yaw = 0.0f; - if(mapSpecificFlags_get(0)) { + if(mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN)) { func_802BAFE4(0x21); subaddie_set_state(this, 6); func_80244BB0(0, 0x6A, 0x7FF8, 0.3f); - mapSpecificFlags_set(2, 0); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_2_UNKNOWN, FALSE); func_8025A6EC(COMUSIC_4_MMM_CLOCK_VERSION, -1); func_8025AE0C(2000, 3.0f); } @@ -350,7 +350,7 @@ void func_80388BDC(Actor *this) { subaddie_set_state(this, 1U); this->yaw = 0.0f; func_8030E540(SFX_7F_HEAVYDOOR_SLAM); - mapSpecificFlags_set(0, 0); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_0_UNKNOWN, FALSE); func_80244C78(0); if (!this->unk38_31) { func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 0x7FF8); diff --git a/src/MMM/code_3D50.c b/src/MMM/code_3D50.c index c1b327ed..ead8b49a 100644 --- a/src/MMM/code_3D50.c +++ b/src/MMM/code_3D50.c @@ -72,21 +72,21 @@ void func_8038A140(UNK_TYPE(s32) arg0) { if (arg0 == 2) { func_80324E38(0.3f, 3); timed_setStaticCameraToNode(0.3f, 1); - timedFunc_set_2(0.3f, mapSpecificFlags_set, 3, 1); + timedFunc_set_2(0.3f, mapSpecificFlags_set, MMM_SPECIFIC_FLAG_3_UNKNOWN, TRUE); func_80324E38(3.0f, 0); timed_exitStaticCamera(3.0f); timedFunc_set_1(3.0f, func_8038A140, 3); } if (arg0 == 3) { if (MMM_D_8038C510.unk8 == 1) { - mapSpecificFlags_set(3, 1); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_3_UNKNOWN, 1); } item_set(ITEM_0_HOURGLASS_TIMER, 75*60 - 1); item_set(6, 1); } if (MMM_D_8038C510.unk8 == 3) { item_set(6, 0); - mapSpecificFlags_set(4, 1); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_4_UNKNOWN, 1); } if (arg0 == 4) { func_8028F66C(BS_INTR_F); diff --git a/src/MMM/code_47D0.c b/src/MMM/code_47D0.c index 19a66baf..252648ec 100644 --- a/src/MMM/code_47D0.c +++ b/src/MMM/code_47D0.c @@ -100,7 +100,7 @@ void MMM_func_8038ADF0(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) { } void func_8038AF0C(ActorMarker *marker, enum asset_e text_id, s32 arg2) { - mapSpecificFlags_set(1, 1); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, TRUE); } void func_8038AF3C(Struct_MMM_47D0_0 *arg0, s32 arg1) { @@ -177,15 +177,15 @@ void func_8038AF90(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 arg2) { } player_getPosition(sp48); func_8035179C(arg1, sp54); - if (!mapSpecificFlags_get(0) && (arg0->unk4 == 0) && (func_80258640(sp54, sp48) < 250.0f)){ + if (!mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN) && (arg0->unk4 == 0) && (func_80258640(sp54, sp48) < 250.0f)){ if(gcdialog_showText(0xADA, 0, NULL, NULL, NULL, NULL)) { mapSpecificFlags_set(0, TRUE); } } - if ((arg0->unk4 == 1) && mapSpecificFlags_get(1)) { + if ((arg0->unk4 == 1) && mapSpecificFlags_get(MMM_SPECIFIC_FLAG_1_UNKNOWN)) { arg0->unk4 = 2U; arg0->unk8 = 0.0f; - mapSpecificFlags_set(1, 0); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, FALSE); FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, sp54, 500, 2500); } From 6208ea22bcabfba448f3ec6537ff7d58a664469e Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Mon, 30 Sep 2024 19:35:49 +0200 Subject: [PATCH 02/16] Documented ch Loggo --- include/functions.h | 2 +- src/MMM/ch/loggo.c | 80 ++++++++++++++++++++++++------------------ src/core2/code_9E370.c | 15 ++++---- 3 files changed, 56 insertions(+), 41 deletions(-) diff --git a/include/functions.h b/include/functions.h index 9e0f31f0..5d72cf37 100644 --- a/include/functions.h +++ b/include/functions.h @@ -406,7 +406,7 @@ int func_80328A2C(Actor *, f32, s32, f32); void subaddie_set_state(Actor *, u32); ActorMarker *func_8032B16C(enum jiggy_e jiggy_id); int subaddie_maybe_set_state(Actor *, s32, f32); -void subaddie_set_state_with_direction(Actor * this, s32 myAnimId, f32 arg2, s32 direction); +void subaddie_set_state_with_direction(Actor * this, s32 myAnimId, f32 anim_start_position, s32 direction); bool subaddie_maybe_set_state_position_direction(Actor *, s32, f32, s32, f32 ); void func_80328CEC(Actor *, s32, s32, s32); void func_80328FB0(Actor *, f32); diff --git a/src/MMM/ch/loggo.c b/src/MMM/ch/loggo.c index 5d0809b8..36f4131c 100644 --- a/src/MMM/ch/loggo.c +++ b/src/MMM/ch/loggo.c @@ -2,11 +2,18 @@ #include "functions.h" #include "variables.h" +/* extern functions */ extern void ml_vec3f_assign(f32[3], f32, f32, f32); +/* public functions */ void chLoggo_update(Actor *this); /* .data */ +enum chLoggo_state_e { + LOGGO_STATE_1_IDLE = 1, + LOGGO_STATE_2_FLUSHING +}; + ActorAnimationInfo chLoggoAnimations[] = { {0, 0.0f}, {ASSET_238_ANIM_LOGGO_IDLE, 0.8f}, @@ -14,108 +21,113 @@ ActorAnimationInfo chLoggoAnimations[] = { }; ActorInfo chLoggo = { - MARKER_252_LOGGO, ACTOR_37F_LOGGO, ASSET_519_MODEL_LOGGO, - 0x1, chLoggoAnimations, - chLoggo_update, func_80326224, actor_draw, + MARKER_252_LOGGO, ACTOR_37F_LOGGO, ASSET_519_MODEL_LOGGO, + 0x1, chLoggoAnimations, + chLoggo_update, func_80326224, actor_draw, 1000, 0, 0.0f, 0 }; /* .code */ -void __chLoggo_flush(ActorMarker* marker) { - Actor* actor = marker_getActor(marker); +void __chLoggo_flush(ActorMarker *marker) { + Actor *actor = marker_getActor(marker); func_8028F918(2); - subaddie_set_state_with_direction(actor, 2, 0.01, 1); + subaddie_set_state_with_direction(actor, LOGGO_STATE_2_FLUSHING, 0.01, 1); actor_playAnimationOnce(actor); actor->lifetime_value = 3.2f; } -void __chLoggo_textCallback(ActorMarker* caller, enum asset_e text_id, s32 arg3) { +void __chLoggo_textCallback(ActorMarker *caller, enum asset_e text_id, s32 arg3) { __chLoggo_flush(caller); } -void __chLoggo_collide(ActorMarker* this_marker, ActorMarker *other_marker) { +void __chLoggo_collide(ActorMarker *this_marker, ActorMarker *other_marker) { Actor *this = marker_getActor(this_marker); + if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) { if (gcdialog_showText(ASSET_ADF_TEXT_ENTER_LOGGO, 0x2B, this->position, this->marker, &__chLoggo_textCallback, 0) != 0) { actor_collisionOff(this); - fileProgressFlag_set(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE); } return; } + if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) { actor_collisionOff(this); __chLoggo_flush(this_marker); return; } - if ((player_getTransformation() == TRANSFORM_1_BANJO) && !fileProgressFlag_get(FILEPROG_88_TRIED_LOGGO_AS_BEAR)){ - if(gcdialog_showText(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) { + if ((player_getTransformation() == TRANSFORM_1_BANJO) && !fileProgressFlag_get(FILEPROG_88_TRIED_LOGGO_AS_BEAR)) { + if (gcdialog_showText(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) { fileProgressFlag_set(FILEPROG_88_TRIED_LOGGO_AS_BEAR, TRUE); } } } -void chLoggo_update(Actor *this){ - f32 sp44; - f32 sp38[3]; +void chLoggo_update(Actor *this) { + f32 tick; + f32 position[3]; s32 sp34; - sp44 = time_getDelta(); - if(!this->volatile_initialized){ + tick = time_getDelta(); + + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; this->marker->propPtr->unk8_3 = TRUE; + actor_collisionOn(this); marker_setCollisionScripts(this->marker, __chLoggo_collide, NULL, NULL); - subaddie_set_state_with_direction(this, 1, 0.01f, 1); + + subaddie_set_state_with_direction(this, LOGGO_STATE_1_IDLE, 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(0x33)) { + if (gcdialog_showText(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)) { fileProgressFlag_set(FILEPROG_8A_EXITED_LOGGO, TRUE); } } } - switch(this->state){ - case 1: + switch (this->state) { + case LOGGO_STATE_1_IDLE: sp34 = func_803114B0() ? 12000 : 0; - if(actor_animationIsAt(this, 0.09f)){ + if (actor_animationIsAt(this, 0.09f)) { func_8030E878(SFX_109_LOGGO_LID_CLAP, randf2(0.975f, 1.025f), MAX(0, 22000 - sp34), this->position, 400.0f, 1000.0f); break; } - if(actor_animationIsAt(this, 0.37f)){ + if (actor_animationIsAt(this, 0.37f)) { func_8030E878(SFX_20_METAL_CLANK_1, randf2(1.675f, 1.725f), MAX(0, 12000 - sp34), this->position, 400.0f, 1000.0f); break; } - if(actor_animationIsAt(this, 0.6f)){ + if (actor_animationIsAt(this, 0.6f)) { func_8030E878(SFX_3F_CAULDRON_SQEAK_1, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f); break; } - - if(actor_animationIsAt(this, 0.16f)){ + + if (actor_animationIsAt(this, 0.16f)) { func_8030E878(SFX_40_CAULDRON_SQEAK_2, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f); break; } - break; - case 2: - if(actor_animationIsAt(this, 0.46f)){ + case LOGGO_STATE_2_FLUSHING: + 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); - ml_vec3f_assign(sp38, this->position_x - 50.0f, this->position_y + 50.0f, this->position_z); - func_8028F6E4(BS_INTR_2F_LOGGO, sp38); + ml_vec3f_assign(position, this->position_x - 50.0f, this->position_y + 50.0f, this->position_z); + func_8028F6E4(BS_INTR_2F_LOGGO, position); } - if(0.0 < this->lifetime_value){ - this->lifetime_value -= sp44; + if (0.0 < this->lifetime_value) { + this->lifetime_value -= tick; } - else{ + else { warp_mmmEnterLoggo(0, 0); } break; diff --git a/src/core2/code_9E370.c b/src/core2/code_9E370.c index 9805d8d1..c356bbba 100644 --- a/src/core2/code_9E370.c +++ b/src/core2/code_9E370.c @@ -1190,9 +1190,11 @@ static bool __subaddie_set_state(Actor *this, s32 state) void func_803285E8(Actor *this, f32 anim_start_position, int direction){ animctrl_setStart(this->animctrl, anim_start_position); - if(direction != -1){ + + if (direction != -1) { animctrl_setDirection(this->animctrl, direction); } + this->sound_timer = anim_start_position; } @@ -1275,8 +1277,8 @@ int actor_animationIsAt(Actor *this, f32 arg1){ } } -void func_803289EC(Actor *this , f32 arg1, int direction){ - func_803285E8(this, arg1, direction); +void func_803289EC(Actor *this , f32 anim_start_position, int direction){ + func_803285E8(this, anim_start_position, direction); animctrl_start(this->animctrl, "subaddie.c", 0x6b1); } @@ -1316,9 +1318,10 @@ int subaddie_maybe_set_state(Actor *this, s32 myAnimId, f32 chance){ return 0; } -void subaddie_set_state_with_direction(Actor * this, s32 myAnimId, f32 arg2, s32 direction){ - if(__subaddie_set_state(this, myAnimId) && this->animctrl) - func_803289EC(this, arg2, direction); +void subaddie_set_state_with_direction(Actor * this, s32 myAnimId, f32 anim_start_position, s32 direction){ + if (__subaddie_set_state(this, myAnimId) && this->animctrl) { + func_803289EC(this, anim_start_position, direction); + } } bool subaddie_maybe_set_state_position_direction(Actor *this, s32 myAnimId, f32 start_position, s32 direction, f32 probability) { From 1bfcd8ace5fbe2b445ed6a6caea49e9f0ed48fd4 Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Mon, 30 Sep 2024 20:09:20 +0200 Subject: [PATCH 03/16] Documented ch Motzhand --- include/enums.h | 8 +- include/structs.h | 2 +- src/MMM/ch/motzhand.c | 162 ++++++++++++++++++++++------------------- src/MMM/code_3420.c | 68 ++++++++++------- src/core2/code_C9F00.c | 89 ++++++++++------------ 5 files changed, 180 insertions(+), 149 deletions(-) diff --git a/include/enums.h b/include/enums.h index 826bd9e1..cd16d0b1 100644 --- a/include/enums.h +++ b/include/enums.h @@ -4039,7 +4039,13 @@ enum asset_e ASSET_A84_DIALOG_TURBOTRAINERS_LEARN, ASSET_A85_DIALOG_TURBOTRAINERS_REFRESHER, - ASSET_ADE_TEXT_LOGGO_AS_BEAR = 0xade, + ASSET_AD3_TEXT_UNKNOWN = 0xad3, + ASSET_AD4_TEXT_UNKNOWN, + ASSET_AD5_TEXT_UNKNOWN, + ASSET_AD6_TEXT_UNKNOWN, + + ASSET_ADD_TEXT_UNKNOWN = 0xadd, + ASSET_ADE_TEXT_LOGGO_AS_BEAR, ASSET_ADF_TEXT_ENTER_LOGGO, ASSET_AE0_TEXT_EXIT_LOGGO, diff --git a/include/structs.h b/include/structs.h index 9cc3ce23..d78dc03a 100644 --- a/include/structs.h +++ b/include/structs.h @@ -593,7 +593,7 @@ typedef struct struct_68_s{ Struct68DrawMethod unk8; BKModelBin *unkC; u8 pad10[0x4]; - f32 unk14[3]; //position + f32 position[3]; f32 unk20[3]; //rotation f32 unk2C; //scale u8 unk30; diff --git a/src/MMM/ch/motzhand.c b/src/MMM/ch/motzhand.c index 667195a3..94becdb5 100644 --- a/src/MMM/ch/motzhand.c +++ b/src/MMM/ch/motzhand.c @@ -2,22 +2,32 @@ #include "functions.h" #include "variables.h" -typedef struct{ +typedef struct { f32 alpha; //motzhand_alpha u8 *pattern_ptr; u8 unk8; //pattern_id u8 unk9; //end_current seq? f32 unkC[3]; -}ActorLocal_Motzhand; +} ActorLocal_Motzhand; -void chmotzhand_update(Actor *this); +/* public functions */ +void chMotzhand_update(Actor *this); Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); /* .data */ +enum chMotzhand_state_e { + MOTZHAND_STATE_0_INIT, + MOTZHAND_STATE_1_UNKNOWN, + MOTZHAND_STATE_2_UNKNOWN, + MOTZHAND_STATE_3_UNKNOWN, + MOTZHAND_STATE_4_UNKNOWN, + MOTZHAND_STATE_5_UNKNOWN +}; + ActorInfo chMotzhand = { MARKER_49_MOTZHAND, ACTOR_3A_MOTZHAND, ASSET_88C_MODEL_MOTZHAND, 0x0, NULL, - chmotzhand_update, func_80326224, chMotzhand_draw, + chMotzhand_update, func_80326224, chMotzhand_draw, 0, 0, 0.0f, 0 }; @@ -25,53 +35,54 @@ u8 sMotzhandPattern1[] = {7, 14, 13, 9, 17, 0xFF}; u8 sMotzhandPattern2[] = {10, 18, 15, 9, 14, 13, 9, 17, 11, 15, 0xFF}; /* .code */ -void func_80387410(f32 dst[3]){ +void func_80387410(f32 dst[3]) { dst[0] = 0.0f; dst[1] = 1500.0f; dst[2] = -2400.0f; } -void chMotzhand_setState(Actor *this, s32 next_state){ - ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local; +void chMotzhand_setState(Actor *this, s32 next_state) { + ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local; - if(next_state == 1 && this->state == 0){ + if (next_state == MOTZHAND_STATE_1_UNKNOWN && this->state == MOTZHAND_STATE_0_INIT) { skeletalAnim_set(this->unk148, ASSET_A7_ANIM_MOTZHAND_IDLE, 0.0f, 1.8f); func_80387410(this->position); } - if(next_state == 2){ + if (next_state == MOTZHAND_STATE_2_UNKNOWN) { skeletalAnim_set(this->unk148, ASSET_A7_ANIM_MOTZHAND_IDLE, 0.9f, 1.8f); } - if(next_state == 3){ + if (next_state == MOTZHAND_STATE_3_UNKNOWN) { skeletalAnim_set(this->unk148, ASSET_A8_ANIM_MOTZHAND_PLAY, 0.9f, 1.8f); } - if(next_state == 4){ + if (next_state == MOTZHAND_STATE_4_UNKNOWN) { local->alpha = 1.0f; } - if(next_state == 5){ + if (next_state == MOTZHAND_STATE_5_UNKNOWN) { marker_despawn(this->marker); } this->state = next_state; } -Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ +Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { Actor *this = marker_getActor(marker); - ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local; + ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local; f32 sp3C[3]; - if(this->state == 0 || this->state == 5) + if (this->state == MOTZHAND_STATE_0_INIT || this->state == MOTZHAND_STATE_5_UNKNOWN) { return this; - - modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148)); - - if(this->state == 4){ - modelRender_setAlpha((s32) (local->alpha * 255.0f)); } - else{ + + modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148)); + + if (this->state == MOTZHAND_STATE_4_UNKNOWN) { + modelRender_setAlpha((s32)(local->alpha * 255.0f)); + } + else { modelRender_setAlpha((s32) 255); } @@ -84,119 +95,124 @@ Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ } -void func_80387654(ActorMarker* marker) { - Actor* actor = marker_getActor(marker); +void func_80387654(ActorMarker *marker) { + Actor *actor = marker_getActor(marker); - if ((actor->state != 4) && (actor->state != 5)) { - chMotzhand_setState(actor, 4); + if ((actor->state != MOTZHAND_STATE_4_UNKNOWN) && (actor->state != MOTZHAND_STATE_5_UNKNOWN)) { + chMotzhand_setState(actor, MOTZHAND_STATE_4_UNKNOWN); } } bool func_8038769C(ActorMarker *marker) { - return marker_getActor(marker)->state == 1; + return marker_getActor(marker)->state == MOTZHAND_STATE_1_UNKNOWN; } // chMotzhand_startPattern -void func_803876C8(ActorMarker *marker, s32 arg1){ +void func_803876C8(ActorMarker *marker, s32 arg1) { Actor *this = marker_getActor(marker); - ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local; - + ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local; + local->unk8 = arg1; - if(arg1 == TRUE){ + if (arg1 == TRUE) { local->pattern_ptr = sMotzhandPattern1; } - else{ + else { local->pattern_ptr = sMotzhandPattern2; } - chMotzhand_setState(this, 2); + chMotzhand_setState(this, MOTZHAND_STATE_2_UNKNOWN); } void func_80387720(ActorMarker *marker) { - Actor * this = marker_getActor(marker); - ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local; + Actor *this = marker_getActor(marker); + ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local; local->unk9 = TRUE; } -void chmotzhand_update(Actor *this){ - ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local; - f32 sp48; - f32 sp3C[3]; +void chMotzhand_update(Actor *this) { + ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local; + f32 tick; + f32 diff[3]; f32 sp30[3]; - sp48 = time_getDelta(); + tick = time_getDelta(); - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; - if(jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)){ + + if (jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)) { marker_despawn(this->marker); return; } + local->unk8 = FALSE; local->unk9 = FALSE; local->unkC[0] = this->position_x; local->unkC[1] = this->position_y; local->unkC[2] = this->position_z; - chMotzhand_setState(this, 1); + + chMotzhand_setState(this, MOTZHAND_STATE_1_UNKNOWN); }//L803877CC - if(this->state == 2){ - if(local->unk9){ - while(*local->pattern_ptr != 0xff){ + if (this->state == MOTZHAND_STATE_2_UNKNOWN) { + if (local->unk9) { + while (*local->pattern_ptr != 0xff) { *local->pattern_ptr++; //find_seq end } local->unk9 = FALSE; }//L80387820 - if(0xff == *local->pattern_ptr){ + if (0xff == *local->pattern_ptr) { func_80387410(sp30); } - else{ + else { organMinigame_getKeyPosition(*local->pattern_ptr, sp30); - sp30[0] += local->unkC[0]; - sp30[1] += local->unkC[1]; - sp30[2] += local->unkC[2]; + TUPLE_ADD(sp30, local->unkC) }//L80387880 - sp3C[0] = sp30[0] - this->position_x; - sp3C[1] = sp30[1] - this->position_y; - sp3C[2] = sp30[2] - this->position_z; - if(LENGTH_VEC3F(sp3C) < 5.0f){ - if(*local->pattern_ptr == 0xff){ - chMotzhand_setState(this, 1); + diff[0] = sp30[0] - this->position_x; + diff[1] = sp30[1] - this->position_y; + diff[2] = sp30[2] - this->position_z; + + if (LENGTH_VEC3F(diff) < 5.0f) { + if (*local->pattern_ptr == 0xff) { + chMotzhand_setState(this, MOTZHAND_STATE_1_UNKNOWN); } - else{ - chMotzhand_setState(this, 3); + else { + chMotzhand_setState(this, MOTZHAND_STATE_3_UNKNOWN); } } - else{//L80387930 - ml_vec3f_set_length(sp3C, ((local->unk8 == TRUE) ? 150.0f : 225.0f)*sp48); - this->position_x = sp3C[0] + this->position_x; - this->position_y = sp3C[1] + this->position_y; - this->position_z = sp3C[2] + this->position_z; + else {//L80387930 + ml_vec3f_set_length(diff, ((local->unk8 == TRUE) ? 150.0f : 225.0f) * tick); + this->position_x = diff[0] + this->position_x; + this->position_y = diff[1] + this->position_y; + this->position_z = diff[2] + this->position_z; } }//L803879A4 - if(this->state == 3){ - if(skeletalAnim_getLoopCount(this->unk148) > 0){ + if (this->state == MOTZHAND_STATE_3_UNKNOWN) { + if (skeletalAnim_getLoopCount(this->unk148) > 0) { func_80389D9C(*local->pattern_ptr); - if(local->unk9){ - while(*local->pattern_ptr != 0xff){ + + if (local->unk9) { + while (*local->pattern_ptr != 0xff) { *local->pattern_ptr++; //find_seq end } local->unk9 = FALSE; } - else{//L80387A18 + else {//L80387A18 *local->pattern_ptr++; } - chMotzhand_setState(this, 2); + + chMotzhand_setState(this, MOTZHAND_STATE_2_UNKNOWN); } }//L80387A2C - if(this->state == 4){ - local->alpha -= 0.25*sp48; - if(local->alpha <= 0.0f){ - chMotzhand_setState(this, 5); + if (this->state == MOTZHAND_STATE_4_UNKNOWN) { + local->alpha -= 0.25 * tick; + + if (local->alpha <= 0.0f) { + chMotzhand_setState(this, MOTZHAND_STATE_5_UNKNOWN); } } } diff --git a/src/MMM/code_3420.c b/src/MMM/code_3420.c index 9abbb008..2a15e7f9 100644 --- a/src/MMM/code_3420.c +++ b/src/MMM/code_3420.c @@ -2,6 +2,7 @@ #include "functions.h" #include "variables.h" +/* extern functions */ extern void MMM_func_8038B6D4(f32* arg0, s32 arg1); /* internal definitions */ @@ -15,6 +16,7 @@ typedef struct { u8 unk1; } Struct_MMM_3420_1; +/* public functions */ void organMinigame_setState(s32 arg0); /* .data */ @@ -175,7 +177,7 @@ void func_803898EC() { } void func_80389910() { - gcdialog_showText(0xAD5, 0xE, NULL, NULL, MMM_func_80389810, NULL); + gcdialog_showText(ASSET_AD5_TEXT_UNKNOWN, 0xE, NULL, NULL, MMM_func_80389810, NULL); timedFunc_set_2(0.0f, func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF); timed_setStaticCameraToNode(2.0f, 0); timedFunc_set_0(2.1f, MMM_func_803898A0); @@ -192,13 +194,14 @@ void func_803899BC(void){ void organMinigame_setState(s32 next_state){ func_8028F8F8(1, FALSE); - if(next_state == 2){ - if(D_8038C4F0.pattern == 0){ + + if (next_state == 2) { + if (D_8038C4F0.pattern == 0) { D_8038C4F0.pattern = 1; - gcdialog_showText(0xad3, 4, NULL, NULL, MMM_func_80389810, NULL); + gcdialog_showText(ASSET_AD3_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL); } - else{//L80389A84 - gcdialog_showText(0xad6, 4, NULL, NULL, MMM_func_80389810, NULL); + else {//L80389A84 + gcdialog_showText(ASSET_AD6_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL); } }//L80389A9C @@ -215,13 +218,13 @@ void organMinigame_setState(s32 next_state){ }//L80389AF4 if(next_state == 4){ - gcdialog_showText(0xadd, 4, NULL, NULL, MMM_func_80389810, NULL); + gcdialog_showText(ASSET_ADD_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL); func_80387720(D_8038C4F0.motzhand_marker); } if(next_state == 5){ D_8038C4F0.pattern++; - gcdialog_showText(0xad4, 4, NULL, NULL, MMM_func_80389810, NULL); + gcdialog_showText(ASSET_AD4_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL); func_80387720(D_8038C4F0.motzhand_marker); } @@ -246,17 +249,22 @@ void organMinigame_getKeyPosition(s32 key_indx, f32 position[3]) { position[0] = -145.0f; position[1] = 0.0f; position[2] = 0.0f; + for (iPtr = &D_8038C198[0]; iPtr <= &D_8038C198[key_indx]; iPtr++) { is_black_key = (iPtr->unk0 == 2 || iPtr->unk0 == 4); + if (is_black_key != 0) { position[0] += 67.0f; position[1] += 12.5; position[2] += -230.0f; - } else { + } + else { position[0] += 170.0f; } - if (iPtr == &D_8038C198[key_indx]) + + if (iPtr == &D_8038C198[key_indx]) { break; + } if (is_black_key != 0) { position[0] -= 67.0f; @@ -309,30 +317,39 @@ void code3420_handleOrganGame(s32 arg0, s32 arg1) { D_8038C4F0.unk8 = &D_8038BF20; func_80250170(0, 0x6A, 0); D_8038C4F0.state = 0; + if ((map_get() == MAP_1C_MMM_CHURCH) && (arg1 == 2)) { D_8038C4F0.motzhand_marker = NULL; D_8038C4F0.pattern = 0; + key_position[0] = -1345.0f; key_position[1] = 1150.0f; key_position[2] = -2300.0f; - for(iPtr = &D_8038C198[0]; iPtr->unk0; iPtr++){ - is_black_key = (iPtr->unk0 == 2 || iPtr->unk0 == 4); - if (is_black_key) { - key_position[0] += 122.0f; - key_position[1] += 12.5; - } else { - key_position[0] += 170.0f; - } - iPtr->unk1 = func_80351838(key_position, iPtr->unk0, iPtr - &D_8038C198[0]); - if (is_black_key) { - key_position[0] -= 122.0f; - key_position[1] -= 12.5; - } + + for (iPtr = &D_8038C198[0]; iPtr->unk0; iPtr++) { + is_black_key = iPtr->unk0 == 2 || iPtr->unk0 == 4; + + if (is_black_key) { + key_position[0] += 122.0f; + key_position[1] += 12.5; + } + else { + key_position[0] += 170.0f; + } + + iPtr->unk1 = func_80351838(key_position, iPtr->unk0, iPtr - &D_8038C198[0]); + + if (is_black_key) { + key_position[0] -= 122.0f; + key_position[1] -= 12.5; + } } + if (jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)) { organMinigame_setState(7); return; } + organMinigame_setState(1); } } @@ -346,8 +363,9 @@ void organMinigame_update(void){ f32 plyr_pos[3]; Actor *motzhand_2; - - if(D_8038C4F0.state == 0) return; + if (D_8038C4F0.state == 0) { + return; + } if(func_802501A0(0, 0x6A, &sp4C)){ func_80250170(0, 0x6A, 0); diff --git a/src/core2/code_C9F00.c b/src/core2/code_C9F00.c index 823e770e..d2561800 100644 --- a/src/core2/code_C9F00.c +++ b/src/core2/code_C9F00.c @@ -100,17 +100,20 @@ Actor *func_80350E90(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { temp_s0 = &D_803861B0.unk4[marker->actrArrayIdx]; temp_v0 = temp_s0->unkC; + if (temp_v0 == NULL) { - return 0; - } else { - if (temp_s0->unk8 != NULL) { - temp_s0->unk8(&temp_s0->local, temp_s0, temp_s0->unk14, temp_s0->unk20, temp_s0->unk2C, temp_v0, gfx, mtx, vtx); - } else { - modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL); - modelRender_draw(gfx, mtx, temp_s0->unk14, temp_s0->unk20, temp_s0->unk2C, NULL, temp_s0->unkC); - } + return NULL; } - return 0; + + if (temp_s0->unk8 != NULL) { + temp_s0->unk8(&temp_s0->local, temp_s0, temp_s0->position, temp_s0->unk20, temp_s0->unk2C, temp_v0, gfx, mtx, vtx); + } + else { + modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL); + modelRender_draw(gfx, mtx, temp_s0->position, temp_s0->unk20, temp_s0->unk2C, NULL, temp_s0->unkC); + } + + return NULL; } s32 func_80350F7C(ActorMarker *marker, s32 arg1, f32 arg2[3], s32 arg3, s32 arg4) { @@ -126,7 +129,7 @@ s32 func_80350F7C(ActorMarker *marker, s32 arg1, f32 arg2[3], s32 arg3, s32 arg4 colision_list = model_getCollisionList(temp_s0->unkC); vtx_list = model_getVtxList(temp_s0->unkC); - sp4C = func_802E805C(colision_list, vtx_list, temp_s0->unk14, temp_s0->unk20, temp_s0->unk2C, arg1, arg2, arg3, arg4); + sp4C = func_802E805C(colision_list, vtx_list, temp_s0->position, temp_s0->unk20, temp_s0->unk2C, arg1, arg2, arg3, arg4); if (sp4C != 0) { if (func_8029453C()) { D_80386180.unk20[0] = (s32) arg2[0]; @@ -150,7 +153,7 @@ s32 func_803510B4(ActorMarker *marker, s32 arg1, f32 arg2[3], f32 arg3, s32 arg4 } collision_list = model_getCollisionList(sp40->unkC); vertex_list = model_getVtxList(sp40->unkC); - return func_802E9118(collision_list, vertex_list, sp40->unk14, sp40->unk20, sp40->unk2C, arg1, arg2, arg3, arg4, arg5, flagFliter); + return func_802E9118(collision_list, vertex_list, sp40->position, sp40->unk20, sp40->unk2C, arg1, arg2, arg3, arg4, arg5, flagFliter); } s32 func_80351198(ActorMarker *marker, s32 arg1, f32 arg2, s32 arg3, s32 arg4) { @@ -165,11 +168,11 @@ s32 func_80351198(ActorMarker *marker, s32 arg1, f32 arg2, s32 arg3, s32 arg4) { } collision_list = model_getCollisionList(sp38->unkC); vtx_list = model_getVtxList(sp38->unkC); - return func_802E9DD8(collision_list, vtx_list, sp38->unk14, sp38->unk20, sp38->unk2C, arg1, arg2, arg3, arg4); + return func_802E9DD8(collision_list, vtx_list, sp38->position, sp38->unk20, sp38->unk2C, arg1, arg2, arg3, arg4); } -Struct68s * func_8035126C(f32 arg0[3], f32 arg1[3], f32 arg2, s32 arg3, enum asset_e arg4) { +Struct68s * func_8035126C(f32 position[3], f32 arg1[3], f32 arg2, s32 arg3, enum asset_e arg4) { s32 sp2C; s32 sp1C; @@ -177,22 +180,20 @@ Struct68s * func_8035126C(f32 arg0[3], f32 arg1[3], f32 arg2, s32 arg3, enum ass if (D_803861B0.unk8 == D_803861B0.unkC) { sp2C = D_803861B0.unk8 - D_803861B0.unk4; sp1C = sp2C * 2; - D_803861B0.unk4 = (Struct68s *)realloc(D_803861B0.unk4, sp1C * sizeof(Struct68s)); + D_803861B0.unk4 = (Struct68s *) realloc(D_803861B0.unk4, sp1C * sizeof(Struct68s)); D_803861B0.unk8 = D_803861B0.unk4 + sp2C; D_803861B0.unkC = D_803861B0.unk4 + sp1C; } + D_803861B0.unk8->unk0 = 0; D_803861B0.unk8->unk30 = 0; D_803861B0.unk8->unk8 = NULL; D_803861B0.unk8->unkC = NULL; D_803861B0.unk8->unk2C = arg2; D_803861B0.unk8->unk31 = arg3; - D_803861B0.unk8->unk14[0] = arg0[0]; - D_803861B0.unk8->unk14[1] = arg0[1]; - D_803861B0.unk8->unk14[2] = arg0[2]; - D_803861B0.unk8->unk20[0] = arg1[0]; - D_803861B0.unk8->unk20[1] = arg1[1]; - D_803861B0.unk8->unk20[2] = arg1[2]; + + TUPLE_COPY(D_803861B0.unk8->position, position) + TUPLE_COPY(D_803861B0.unk8->unk20, arg1) func_80351AD0(D_803861B0.unk8, arg4); return D_803861B0.unk8++; @@ -224,7 +225,7 @@ void func_803514F4(Struct68s *arg0){ } void func_80351538(Struct68s *arg0){ - arg0->unk4 = (ActorMarker *)func_8032FBE4(arg0->unk14, func_80350E90, 1, 0x47); + arg0->unk4 = (ActorMarker *)func_8032FBE4(arg0->position, func_80350E90, 1, 0x47); ((ActorMarker *)arg0->unk4)->collidable = FALSE; ((ActorMarker *)arg0->unk4)->actrArrayIdx = (arg0 - D_803861B0.unk4); ((ActorMarker *)arg0->unk4)->unk18 = &D_80386180.unk4; @@ -291,9 +292,7 @@ ActorMarker *func_80351794(Struct68s *arg0){ } void func_8035179C(Struct68s* arg0, f32 arg1[3]) { - arg1[0] = arg0->unk14[0]; - arg1[1] = arg0->unk14[1]; - arg1[2] = arg0->unk14[2]; + TUPLE_COPY(arg1, arg0->position) } void * func_803517B8(s32 arg0){ @@ -305,9 +304,7 @@ Struct68s * func_803517E8(s32 arg0){ } void func_80351814(Struct68s *arg0, f32 arg1[3]) { - arg1[0] = arg0->unk20[0]; - arg1[1] = arg0->unk20[1]; - arg1[2] = arg0->unk20[2]; + TUPLE_COPY(arg1, arg0->unk20) } f32 func_80351830(Struct68s *arg0) { @@ -315,14 +312,14 @@ f32 func_80351830(Struct68s *arg0) { } -s32 func_80351838(f32 arg0[3], s32 arg1, s32 arg2) { - f32 sp2C[3]; +s32 func_80351838(f32 position[3], s32 key_flag, s32 arg2) { + f32 rotation[3]; Struct68s *sp28; - sp2C[0] = sp2C[1] = sp2C[2] = 0.0f; - sp28 = func_8035126C(arg0, &sp2C, 1.0f, 4, arg1 + 0x884); + rotation[0] = rotation[1] = rotation[2] = 0.0f; + sp28 = func_8035126C(position, &rotation, 1.0f, 4, key_flag + 0x884); func_80351538(sp28); - func_8038B5D8(&sp28->local, sp28, arg1, arg2); + func_8038B5D8(&sp28->local, sp28, key_flag, arg2); return sp28 - D_803861B0.unk4; } @@ -416,7 +413,7 @@ void func_80351B28(Struct68s *arg0, f32 arg1[3]) { if(arg0->unkC != NULL){ sp34 = func_8033A12C(arg0->unkC); if(sp34 != NULL){ - if(func_802EA760(sp34, 0, arg0->unk14, arg0->unk20, arg0->unk2C, 0, &sp48, &sp38)){ + if(func_802EA760(sp34, 0, arg0->position, arg0->unk20, arg0->unk2C, 0, &sp48, &sp38)){ func_802EA760(sp34, 0, arg1, arg0->unk20, arg0->unk2C, 0, &sp3C, &sp38); if(func_80309DBC(&sp48, &sp3C, sp38, &sp54, 3, 0)){ return; @@ -424,17 +421,13 @@ void func_80351B28(Struct68s *arg0, f32 arg1[3]) { } } } - arg0->unk14[0] = arg1[0]; - arg0->unk14[1] = arg1[1]; - arg0->unk14[2] = arg1[2]; - func_8032F64C(arg0->unk14, arg0->unk4); + + TUPLE_COPY(arg0->position, arg1) + func_8032F64C(arg0->position, arg0->unk4); } - void func_80351C2C(Struct68s *arg0, f32 arg1[3]){ - arg0->unk20[0] = arg1[0]; - arg0->unk20[1] = arg1[1]; - arg0->unk20[2] = arg1[2]; + TUPLE_COPY(arg0->unk20, arg1) } void func_80351C48(void) { @@ -450,7 +443,7 @@ void func_80351C48(void) { if ((sp38[0] == D_80386180.unk20[0]) && (sp38[1] == D_80386180.unk20[1]) && (sp38[2] == D_80386180.unk20[2])) { player_getPosition(sp4C); mlMtxIdent(); - func_80252CC4(D_80386180.unk2C->unk14, D_80386180.unk2C->unk20, D_80386180.unk2C->unk2C, 0); + func_80252CC4(D_80386180.unk2C->position, D_80386180.unk2C->unk20, D_80386180.unk2C->unk2C, 0); mlMtx_apply_vec3f(D_80386180.unk14, sp4C); if (func_8029FC4C() != 0) { D_80386180.unk0 = D_80386180.unk2C; @@ -469,7 +462,7 @@ void func_80351C48(void) { } if (D_80386180.unk2C != NULL) { mlMtxIdent(); - func_80252C08(D_80386180.unk2C->unk14, D_80386180.unk2C->unk20, D_80386180.unk2C->unk2C, NULL); + func_80252C08(D_80386180.unk2C->position, D_80386180.unk2C->unk20, D_80386180.unk2C->unk2C, NULL); mlMtx_apply_vec3f(&sp4C, &D_80386180.unk14); func_8028FAB0(&sp4C); } @@ -492,12 +485,10 @@ void func_80351E60(Struct6Bs *arg0, Struct68s *arg1, f32 arg2) { arg0->unk10[1] = sinf(((arg0->unk34 * arg0->unk0) / 180.0) * BAD_PI) * 20.0f; arg0->unk4[0] = cosf(((arg0->unk34 * arg0->unk0) / 180.0) * BAD_PI) * 7.5; arg0->unk4[1] = sinf(((arg0->unk34 * arg0->unk0) / 180.0) * BAD_PI) * 3.0f; - sp24[0] = arg0->unk1C[0] + arg0->unk10[0]; - sp24[1] = arg0->unk1C[1] + arg0->unk10[1]; - sp24[2] = arg0->unk1C[2] + arg0->unk10[2]; + + TUPLE_ADD_COPY(sp24, arg0->unk1C, arg0->unk10) func_80351B28(arg1, &sp24); - sp24[0] = arg0->unk28[0] + arg0->unk4[0]; - sp24[1] = arg0->unk28[1] + arg0->unk4[1]; - sp24[2] = arg0->unk28[2] + arg0->unk4[2]; + + TUPLE_ADD_COPY(sp24, arg0->unk28, arg0->unk4) func_80351C2C(arg1, &sp24); } From da234765d79b4d198d1f21148aa3c4e7b160e327 Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Mon, 30 Sep 2024 22:25:10 +0200 Subject: [PATCH 04/16] Documented ch Chompa --- src/CCW/code_2270.c | 2 +- src/CCW/code_2B00.c | 2 +- src/CCW/code_7120.c | 2 +- src/MMM/code_16B0.c | 193 +++++++++++++++++++++++------------------ src/MMM/code_2F60.c | 59 +++++++------ src/RBB/code_CA0.c | 2 +- src/SM/code_5B0.c | 2 +- src/core1/code_18350.c | 10 +-- src/core2/code_C31A0.c | 52 +++++------ 9 files changed, 172 insertions(+), 152 deletions(-) diff --git a/src/CCW/code_2270.c b/src/CCW/code_2270.c index c740d882..378f4cb8 100644 --- a/src/CCW/code_2270.c +++ b/src/CCW/code_2270.c @@ -140,7 +140,7 @@ void chGobiCCW_update(Actor *this) { this->has_met_before = FALSE; local->unk4 = skeletalAnim_new(); local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT); - marker_setCollisionScripts(this->marker, 0, func_8038894C, 0); + marker_setCollisionScripts(this->marker, NULL, func_8038894C, NULL); if(!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) { fileProgressFlag_set(FILEPROG_E5_CCW_FLOWER_AUTUMN, FALSE); } diff --git a/src/CCW/code_2B00.c b/src/CCW/code_2B00.c index 582de99a..36e6d20b 100644 --- a/src/CCW/code_2B00.c +++ b/src/CCW/code_2B00.c @@ -90,7 +90,7 @@ void func_80388FD4(Actor *this) { subaddie_set_state_with_direction(this, 4, 0.999f, 1); actor_collisionOff(this); } else { - marker_setCollisionScripts(this->marker, 0, &func_80388F50, 0); + marker_setCollisionScripts(this->marker, NULL, &func_80388F50, NULL); } this->unk38_0 = FALSE; this->volatile_initialized = TRUE; diff --git a/src/CCW/code_7120.c b/src/CCW/code_7120.c index fa9debbc..0ea2b842 100644 --- a/src/CCW/code_7120.c +++ b/src/CCW/code_7120.c @@ -105,7 +105,7 @@ void func_8038D85C(Actor *this) { if (!this->volatile_initialized) { this->marker->propPtr->unk8_3 = TRUE; this->volatile_initialized = TRUE; - marker_setCollisionScripts(this->marker, 0, &func_8038D81C, 0); + marker_setCollisionScripts(this->marker, NULL, &func_8038D81C, NULL); func_8038D6D8(this, 1); if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != 0) { levelSpecificFlags_set(0x25, 1); diff --git a/src/MMM/code_16B0.c b/src/MMM/code_16B0.c index 5b1371ef..6fd8dc3b 100644 --- a/src/MMM/code_16B0.c +++ b/src/MMM/code_16B0.c @@ -2,91 +2,109 @@ #include "functions.h" #include "variables.h" -extern void func_80389484(ActorMarker *, f32); +/* extern functions */ +extern void chPortrait_break(ActorMarker *, f32); typedef struct { - f32 unk0; -}ActorLocal_PortraitChompa; + f32 timer; +} ActorLocal_PortraitChompa; -void func_80388028(Actor *this); -Actor *func_80387AA0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); +/* public functions */ +void chChompa_update(Actor *this); +Actor *chChompa_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); /* .data */ -ActorInfo D_8038BAD0 = { - MARKER_254_PORTRAIT_CHOMPA_A, ACTOR_381_PORTRAIT_CHOMPA, ASSET_521_MODEL_PORTRAIT_CHOMPA, +enum chChompa_state_e { + CHOMPA_STATE_0_INIT, + CHOMPA_STATE_1_IDLE, + CHOMPA_STATE_2_GROWLING, + CHOMPA_STATE_3_WAITING_TO_BITE, + CHOMPA_STATE_4_BITING, + CHOMPA_STATE_5_DYING, + CHOMPA_STATE_6_DEAD +}; + +ActorInfo D_8038BAD0 = { + MARKER_254_PORTRAIT_CHOMPA_A, ACTOR_381_PORTRAIT_CHOMPA, ASSET_521_MODEL_PORTRAIT_CHOMPA, 0x0, NULL, - func_80388028, NULL, func_80387AA0, + chChompa_update, NULL, chChompa_draw, 0, 0, 0.0f, 0 }; /* .code */ -Actor *func_80387AA0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { - Actor* actor = marker_getActor(marker); - if ((actor->state == 0) || (actor->state == 1) || (actor->state == 6) || (actor->state == 2)) { +Actor *chChompa_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { + Actor *actor = marker_getActor(marker); + + if (actor->state == CHOMPA_STATE_0_INIT || actor->state == CHOMPA_STATE_1_IDLE || actor->state == CHOMPA_STATE_6_DEAD || actor->state == CHOMPA_STATE_2_GROWLING) { return actor; } + return actor_draw(marker, gfx, mtx, vtx); } -void func_80387B14(Actor *this, s32 next_state){ +void chChompa_setState(Actor *this, s32 next_state) { ActorLocal_PortraitChompa *local = (ActorLocal_PortraitChompa *) &this->local; f32 tmp = 2.5f; this->marker->id = 0x1d1; - if(next_state == 1 || next_state == 2){ + if (next_state == CHOMPA_STATE_1_IDLE || next_state == CHOMPA_STATE_2_GROWLING) { skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f); skeletalAnim_setProgress(this->unk148, 0.99f); skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_4_STOPPED); - if(this->state == 4){ - local->unk0 = randf2(0.5f, 1.0f); + + if (this->state == CHOMPA_STATE_4_BITING) { + local->timer = randf2(0.5f, 1.0f); } - else{ - local->unk0 = 0.0f; + else { + local->timer = 0.0f; } }//L80387BD0 - if(this->state == 1 && next_state == 2){ + if (this->state == CHOMPA_STATE_1_IDLE && next_state == CHOMPA_STATE_2_GROWLING) { FUNC_8030E624(SFX_3EF, 0.9f, 32675); } - if(next_state == 3){ - local->unk0 = 0.2f; + if (next_state == CHOMPA_STATE_3_WAITING_TO_BITE) { + local->timer = 0.2f; } - if(next_state == 4){ + if (next_state == CHOMPA_STATE_4_BITING) { this->marker->id = MARKER_254_PORTRAIT_CHOMPA_A; skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f); skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE); - if(this->unk100){ - func_80389484(this->unk100, tmp + 0.55); + + if (this->unk100) { + chPortrait_break(this->unk100, tmp + 0.55); } + FUNC_8030E624(SFX_3EF, 1.1f, 25000); FUNC_8030E624(SFX_3EF, 1.1f, 25000); }//L80387CAC - if(next_state == 5){ + if (next_state == CHOMPA_STATE_5_DYING) { func_8030E6D4(SFX_1E_HITTING_AN_ENEMY_2); actor_collisionOff(this); } + this->state = next_state; } -void MMM_func_80387CF4(ActorMarker *this_marker, ActorMarker *other_marker) { - func_8030E6D4(0x1E); +void __chChompa_hit(ActorMarker *this_marker, ActorMarker *other_marker) { + func_8030E6D4(SFX_1E_HITTING_AN_ENEMY_2); } -void func_80387D1C(ActorMarker* this_marker, ActorMarker *other_marker) { +void __chChompa_die(ActorMarker *this_marker, ActorMarker *other_marker) { Actor *this = marker_getActor(this_marker); - func_80387B14(this, 5); + chChompa_setState(this, CHOMPA_STATE_5_DYING); } -void func_80387D48(ActorMarker *marker){ +void __chChompa_spwanPortrait(ActorMarker *marker) { Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker)); enum asset_e portrait_id; Actor *portrait; - switch(this->unkF4_8){ + switch (this->unkF4_8) { case 0x32: portrait_id = ACTOR_382_PORTRAIT_OF_GRUNTY; break; @@ -109,13 +127,14 @@ void func_80387D48(ActorMarker *marker){ portrait_id = ACTOR_382_PORTRAIT_OF_GRUNTY; break; } + portrait = spawn_child_actor(portrait_id, &this); portrait->yaw = this->yaw; this->unk100 = portrait->marker; portrait->unk10_1 = FALSE; } -void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) { +void __chChompa_emitDust(f32 position[3], s32 count, enum asset_e sprite_id) { static s32 D_8038BAF4[3] = {0xB4, 0xFF, 0x8C}; static ParticleScaleAndLifetimeRanges D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f}; static struct43s D_8038BB28 = { @@ -123,9 +142,8 @@ void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) { {{ 0.0f, -600.0f, 0.0f}, { 0.0f, -600.0f, 0.0f}}, {{ -50.0f, -50.0f, -50.0f}, { 50.0f, 50.0f, 50.0f}} }; - ParticleEmitter *pCtrl; - pCtrl = partEmitMgr_newEmitter(count); + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setRGB(pCtrl, D_8038BAF4); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); @@ -134,16 +152,15 @@ void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) { particleEmitter_emitN(pCtrl, count); } -void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) { +void __chChompa_emitBones(f32 position[3], s32 count, enum asset_e model_id) { static ParticleScaleAndLifetimeRanges D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f}; static struct43s D_8038BB98 = { - {{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}}, - {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}}, - {{-50.0f, 0.0f, -50.0f}, {50.0f, 50.0f, 50.0f}} + {{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}}, + {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, + {{-50.0f, 0.0f, -50.0f}, {50.0f, 50.0f, 50.0f}} }; - ParticleEmitter *pCtrl; - pCtrl = partEmitMgr_newEmitter(count); + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB98); @@ -157,97 +174,103 @@ void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) { particleEmitter_emitN(pCtrl, count); } -void func_80387F7C(Actor *this){ +void __chChompa_emitDeathEffects(Actor *this) { f32 sp2C[3]; f32 sp20[3]; - if(!this->marker->unk14_21) return; + if (!this->marker->unk14_21) { + return; + } func_8034A174(this->marker->unk44, 5, sp2C); func_8034A174(this->marker->unk44, 6, sp20); - func_80387E84(sp2C, 1, ASSET_523_MODEL_PORTRAIT_CHOMPA_TEETH); - func_80387E84(sp2C, 1, ASSET_524_MODEL_PORTRAIT_CHOMPA_HEAD); - func_80387E84(sp20, 6, ASSET_525_MODEL_PORTRAIT_CHOMPA_PART); - func_80387DF8(sp2C, 2, ASSET_700_SPRITE_DUST); - func_80387DF8(sp20, 2, ASSET_700_SPRITE_DUST); + + __chChompa_emitBones(sp2C, 1, ASSET_523_MODEL_PORTRAIT_CHOMPA_TEETH); + __chChompa_emitBones(sp2C, 1, ASSET_524_MODEL_PORTRAIT_CHOMPA_HEAD); + __chChompa_emitBones(sp20, 6, ASSET_525_MODEL_PORTRAIT_CHOMPA_PART); + + __chChompa_emitDust(sp2C, 2, ASSET_700_SPRITE_DUST); + __chChompa_emitDust(sp20, 2, ASSET_700_SPRITE_DUST); } -void func_80388028(Actor *this){ +void chChompa_update(Actor *this) { ActorLocal_PortraitChompa *local = (ActorLocal_PortraitChompa *) &this->local; - f32 sp58 = time_getDelta(); + f32 tick = time_getDelta(); f32 plyr_position[3]; f32 plyr_dist; - f32 sp44; - f32 sp40; + f32 anim_prev_progress; + f32 anim_progress; - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; this->unk16C_0 = TRUE; - marker_setCollisionScripts(this->marker, NULL, MMM_func_80387CF4, func_80387D1C); - __spawnQueue_add_1((GenFunction_1)func_80387D48, reinterpret_cast(s32, this->marker)); - func_80387B14(this, (this->state < 5) ? 1 : 6); + marker_setCollisionScripts(this->marker, NULL, __chChompa_hit, __chChompa_die); + __spawnQueue_add_1((GenFunction_1) __chChompa_spwanPortrait, reinterpret_cast(s32, this->marker)); + chChompa_setState(this, this->state < CHOMPA_STATE_5_DYING ? CHOMPA_STATE_1_IDLE : CHOMPA_STATE_6_DEAD); }//L803880B4 player_getPosition(plyr_position); plyr_dist = ml_distance_vec3f(this->position, plyr_position); - if(this->state == 4) + if (this->state == CHOMPA_STATE_4_BITING) { actor_collisionOn(this); - else + } + else { actor_collisionOff(this); - - - if(this->state == 1 && plyr_dist < this->scale*400.0f){ - func_80387B14(this, 2); } - if(this->state == 2){ - if(0.0f < local->unk0){ - local->unk0 -= sp58; + if (this->state == CHOMPA_STATE_1_IDLE && plyr_dist < this->scale * 400.0f) { + chChompa_setState(this, CHOMPA_STATE_2_GROWLING); + } + + if (this->state == CHOMPA_STATE_2_GROWLING) { + if (0.0f < local->timer) { + local->timer -= tick; } - else if(plyr_dist < this->scale*300.0f){ - func_80387B14(this, 3); + else if (plyr_dist < this->scale * 300.0f) { + chChompa_setState(this, CHOMPA_STATE_3_WAITING_TO_BITE); } - else if(this->scale*500.0f < plyr_dist){ - func_80387B14(this, 1); + else if (this->scale * 500.0f < plyr_dist) { + chChompa_setState(this, CHOMPA_STATE_1_IDLE); } }//L80388204 - if(this->state == 3){ - if(ml_timer_update(&local->unk0, sp58)){ - func_80387B14(this, 4); + if (this->state == CHOMPA_STATE_3_WAITING_TO_BITE) { + if (ml_timer_update(&local->timer, tick)) { + chChompa_setState(this, CHOMPA_STATE_4_BITING); } } - if(this->state == 4){ - skeletalAnim_getProgressRange(this->unk148, &sp44, &sp40); - if(sp44 < 0.56 && 0.56 <= sp40){ + if (this->state == CHOMPA_STATE_4_BITING) { + skeletalAnim_getProgressRange(this->unk148, &anim_prev_progress, &anim_progress); + + if (anim_prev_progress < 0.56 && 0.56 <= anim_progress) { this->marker->id = 0x1d1; } - if(sp44 < 0.5 && 0.5 <= sp40){ + if (anim_prev_progress < 0.5 && 0.5 <= anim_progress) { FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000); } - if( (sp44 < 0.11 && 0.11 <= sp40) - || (sp44 < 0.32 && 0.32 <= sp40) - || (sp44 < 0.53 && 0.53 <= sp40) - ){ + if ((anim_prev_progress < 0.11 && 0.11 <= anim_progress) || + (anim_prev_progress < 0.32 && 0.32 <= anim_progress) || + (anim_prev_progress < 0.53 && 0.53 <= anim_progress) + ) { func_8030E6A4(SFX_6D_CROC_BITE, randf2(0.95f, 1.05f), 32000); } - if(sp44 < 0.9 && 0.9 <= sp40){ + if (anim_prev_progress < 0.9 && 0.9 <= anim_progress) { func_8030E6D4(SFX_2_CLAW_SWIPE); } - if(skeletalAnim_getLoopCount(this->unk148) > 0){ - func_80387B14(this, 2); + + if (skeletalAnim_getLoopCount(this->unk148) > 0) { + chChompa_setState(this, CHOMPA_STATE_2_GROWLING); } } - if(this->state == 5){ + if (this->state == CHOMPA_STATE_5_DYING) { func_8030E6D4(SFX_D7_GRABBA_DEATH); - func_80387F7C(this); - func_80387B14(this, 6); + __chChompa_emitDeathEffects(this); + chChompa_setState(this, CHOMPA_STATE_6_DEAD); } - } diff --git a/src/MMM/code_2F60.c b/src/MMM/code_2F60.c index 8b6d82d4..9f30bc32 100644 --- a/src/MMM/code_2F60.c +++ b/src/MMM/code_2F60.c @@ -2,11 +2,17 @@ #include "functions.h" #include "variables.h" -Actor *func_80389350(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); -void func_803893A4(Actor *this); +/* public functions */ +Actor *chPortrait_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); +void chPortrait_update(Actor *this); /* .data */ -ActorAnimationInfo D_8038BE30[] ={ +enum chPortrait_state_e { + PORTRAIT_STATE_1_IDLE = 1, + PORTRAIT_STATE_2_BROKEN +}; + +ActorAnimationInfo D_8038BE30[] = { {0x000, 0.0f}, {0x23F, 10000000.0f}, {0x23F, 2.0f}, @@ -14,68 +20,69 @@ ActorAnimationInfo D_8038BE30[] ={ ActorInfo D_8038BE48 = { MARKER_255_PORTRAIT_OF_GRUNTY, ACTOR_382_PORTRAIT_OF_GRUNTY, ASSET_522_MODEL_PORTRAIT_OF_GRUNTY, - 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + 0x1, D_8038BE30, + chPortrait_update, func_80326224, chPortrait_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8038BE6C = { MARKER_257_PORTRAIT_OF_BLACKEYE, ACTOR_384_PORTRAIT_OF_BLACKEYE, ASSET_527_MODEL_PORTRAIT_OF_BLACKEYE, - 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + 0x1, D_8038BE30, + chPortrait_update, func_80326224, chPortrait_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8038BE90 = { MARKER_258_PORTRAIT_OF_TOWER, ACTOR_385_PORTRAIT_OF_TOWER, ASSET_528_MODEL_PORTRAIT_OF_TOWER, - 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + 0x1, D_8038BE30, + chPortrait_update, func_80326224, chPortrait_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8038BEB4 = { MARKER_259_PORTRAIT_OF_TREE_AND_MOON, ACTOR_386_PORTRAIT_OF_TREE_AND_MOON, ASSET_529_MODEL_PORTRAIT_OF_TREE_AND_MOON, - 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + 0x1, D_8038BE30, + chPortrait_update, func_80326224, chPortrait_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8038BED8 = { MARKER_25A_PORTRAIT_OF_TEEHEE, ACTOR_387_PORTRAIT_OF_TEEHEE, ASSET_52A_MODEL_PORTRAIT_OF_TEEHEE, - 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + 0x1, D_8038BE30, + chPortrait_update, func_80326224, chPortrait_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8038BEFC = { MARKER_25B_PORTRAIT_OF_MINION, ACTOR_388_PORTRAIT_OF_MINION, ASSET_52B_MODEL_PORTRAIT_OF_MINION, - 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + 0x1, D_8038BE30, + chPortrait_update, func_80326224, chPortrait_draw, 0, 0, 0.0f, 0 }; - /* .code */ -Actor *func_80389350(ActorMarker* marker, Gfx** graphics, Mtx** matrix, Vtx** vertex) { +Actor *chPortrait_draw(ActorMarker *marker, Gfx **graphics, Mtx **matrix, Vtx **vertex) { func_8033A45C(3, marker_getActor(marker)->unk38_31); return actor_draw(marker, graphics, matrix, vertex); } -void func_803893A4(Actor *this){ - if(!this->volatile_initialized){ +void chPortrait_update(Actor *this) { + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; + this->marker->propPtr->unk8_3 = TRUE; actor_collisionOff(this); this->unk38_31 = 2; } - switch(this->state){ - case 1: + switch (this->state) { + case PORTRAIT_STATE_1_IDLE: animctrl_setAnimTimer(this->animctrl, 0.0f); break; - case 2: - if(actor_animationIsAt(this, 0.999f)){ - subaddie_set_state_with_direction(this, 1, 0.001f, 0); + + case PORTRAIT_STATE_2_BROKEN: + if (actor_animationIsAt(this, 0.999f)) { + subaddie_set_state_with_direction(this, PORTRAIT_STATE_1_IDLE, 0.001f, 0); actor_playAnimationOnce(this); this->unk38_31 = 2; } @@ -83,10 +90,10 @@ void func_803893A4(Actor *this){ } } -void func_80389484(ActorMarker * marker, f32 anim_duration){ +void chPortrait_break(ActorMarker *marker, f32 anim_duration) { Actor *this = marker_getActor(marker); - subaddie_set_state_with_direction(this, 2, 0.001f, 1); + subaddie_set_state_with_direction(this, PORTRAIT_STATE_2_BROKEN, 0.001f, 1); actor_playAnimationOnce(this); animctrl_setDuration(this->animctrl, anim_duration); this->unk38_31 = 1; diff --git a/src/RBB/code_CA0.c b/src/RBB/code_CA0.c index f985dc58..682cb44a 100644 --- a/src/RBB/code_CA0.c +++ b/src/RBB/code_CA0.c @@ -201,7 +201,7 @@ void func_803878B0(Actor *this){ if(!this->volatile_initialized){ this->volatile_initialized = TRUE; this->marker->actorFreeFunc = func_80387890; - marker_setCollisionScripts(this->marker, 0, func_80387850, 0); + marker_setCollisionScripts(this->marker, NULL, func_80387850, NULL); func_8032AA58(this, 1.1f); func_8038756C(this, 1); } diff --git a/src/SM/code_5B0.c b/src/SM/code_5B0.c index cc334c5a..e9e5d644 100644 --- a/src/SM/code_5B0.c +++ b/src/SM/code_5B0.c @@ -131,7 +131,7 @@ void SM_func_80386EF4(Actor *this) { Actor *other; if ((this->volatile_initialized) <= 0) { this->marker->propPtr->unk8_3 = 1; - marker_setCollisionScripts(this->marker, 0, 0, func_80386EB4); + marker_setCollisionScripts(this->marker, NULL, NULL, func_80386EB4); this->unk38_31 = 0; this->unk138_31 = 1; this->volatile_initialized = TRUE; diff --git a/src/core1/code_18350.c b/src/core1/code_18350.c index 06eba603..6216a429 100644 --- a/src/core1/code_18350.c +++ b/src/core1/code_18350.c @@ -598,16 +598,12 @@ void ml_defrag(void) //ml_timer_update //decrement a counter and returns True if timer reaches 0 -bool ml_timer_update(f32 *timer, f32 delta) -{ - if (*timer > 0) - { +bool ml_timer_update(f32 *timer, f32 delta) { + if (*timer > 0) { *timer -= delta; - if (*timer <= 0) - { + if (*timer <= 0) { *timer = 0; - return TRUE; } } diff --git a/src/core2/code_C31A0.c b/src/core2/code_C31A0.c index 716cf1c2..aebdbfe5 100644 --- a/src/core2/code_C31A0.c +++ b/src/core2/code_C31A0.c @@ -4,55 +4,49 @@ #define CORE2_C31A0_VEC_COUNT 0x21 -void func_8034A130(struct5Bs *this){ - f32 (*iPtr)[3]; - for(iPtr = this->unk0; iPtr < this->unk4; iPtr++){ +void func_8034A130(struct5Bs *this) { + f32(*iPtr)[3]; + + for (iPtr = this->unk0; iPtr < this->unk4; iPtr++) { (*iPtr)[0] = (*iPtr)[1] = (*iPtr)[2] = 0.0f; } } -void func_8034A174(struct5Bs *this, s32 indx,f32 dst[3]){ - dst[0] = this->unk0[indx][0]; - dst[1] = this->unk0[indx][1]; - dst[2] = this->unk0[indx][2]; +void func_8034A174(struct5Bs *this, s32 indx, f32 dst[3]) { + TUPLE_COPY(dst, this->unk0[indx]) } -void func_8034A1B4(struct5Bs *this, s32 indx, s32 dst[3]){ - dst[0] = (s32)this->unk0[indx][0]; - dst[1] = (s32)this->unk0[indx][1]; - dst[2] = (s32)this->unk0[indx][2]; +void func_8034A1B4(struct5Bs *this, s32 indx, s32 dst[3]) { + TUPLE_COPY(dst, this->unk0[indx]) } -void func_8034A214(struct5Bs *this, s32 indx1, s32 indx2, f32 dst[3]){ - dst[0] = this->unk0[indx2][0] - this->unk0[indx1][0]; - dst[1] = this->unk0[indx2][1] - this->unk0[indx1][1]; - dst[2] = this->unk0[indx2][2] - this->unk0[indx1][2]; +void func_8034A214(struct5Bs *this, s32 indx1, s32 indx2, f32 dst[3]) { + TUPLE_DIFF_COPY(dst, this->unk0[indx2], this->unk0[indx1]) ml_vec3f_normalize(dst); } -void func_8034A2A8(struct5Bs *this){ +void func_8034A2A8(struct5Bs *this) { free(this); } -struct5Bs *func_8034A2C8(void){ - struct5Bs *this = (struct5Bs *)malloc(sizeof(struct5Bs) + sizeof(f32[3])*CORE2_C31A0_VEC_COUNT); - this->unk0 = (f32(*)[3])((s32)this + sizeof(struct5Bs)); - this->unk4 = (f32(*)[3])((s32)this->unk0 + sizeof(f32[3])*CORE2_C31A0_VEC_COUNT); +struct5Bs *func_8034A2C8(void) { + struct5Bs *this = (struct5Bs *) malloc(sizeof(struct5Bs) + sizeof(f32[3]) * CORE2_C31A0_VEC_COUNT); + this->unk0 = (f32(*)[3])((s32) this + sizeof(struct5Bs)); + this->unk4 = (f32(*)[3])((s32) this->unk0 + sizeof(f32[3]) * CORE2_C31A0_VEC_COUNT); func_8034A130(this); return this; } -void func_8034A308(struct5Bs *this, s32 indx, f32 arg2[3]){ - this->unk0[indx][0] = arg2[0]; - this->unk0[indx][1] = arg2[1]; - this->unk0[indx][2] = arg2[2]; +void func_8034A308(struct5Bs *this, s32 indx, f32 arg2[3]) { + TUPLE_COPY(this->unk0[indx], arg2) } -struct5Bs *func_8034A348(struct5Bs *this){ - if(this){ - this = (struct5Bs *)defrag(this); - this->unk0 = (f32(*)[3])(((s32)this + sizeof(struct5Bs))); - this->unk4 = (f32(*)[3])((s32)this->unk0 + sizeof(f32[3])*CORE2_C31A0_VEC_COUNT); +struct5Bs *func_8034A348(struct5Bs *this) { + if (this) { + this = (struct5Bs *) defrag(this); + this->unk0 = (f32(*)[3])(((s32) this + sizeof(struct5Bs))); + this->unk4 = (f32(*)[3])((s32) this->unk0 + sizeof(f32[3]) * CORE2_C31A0_VEC_COUNT); } + return this; } From ecac4dde39cb94828d80119bc2473567824bf6ec Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Tue, 1 Oct 2024 09:21:23 +0200 Subject: [PATCH 05/16] Documented ch Flowerpot --- include/enums.h | 10 ++--- src/MMM/code_DC0.c | 89 ++++++++++++++++++++++++------------------ src/core1/code_72B0.c | 33 ++++++++-------- src/core2/ba/marker.c | 2 +- src/core2/code_9A740.c | 2 +- src/core2/code_CC1E0.c | 16 ++++---- 6 files changed, 82 insertions(+), 70 deletions(-) diff --git a/include/enums.h b/include/enums.h index cd16d0b1..79ecf709 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1191,7 +1191,7 @@ enum sfx_e SFX_12C_FF_QUESTION_START, SFX_12D_CAMERA_ZOOM_CLOSEST, SFX_12E_CAMERA_ZOOM_MEDIUM, - SFX_12F_FUUUCK_YOUUU, + SFX_12F_THAAANK_YOOOUUU, // from her final fall SFX_130_GRUNTY_ECHOING_CRY = 0x0130, SFX_131_GRUNTY_WEEEGH, @@ -4553,8 +4553,8 @@ enum marker_e{ MARKER_AB_RUBEES_EGG_POT, MARKER_AD_SLAPPA = 0xAD, - - MARKER_AF_MAGIC_CARPET_SHADOW = 0xAF, + MARKER_AE_UNKNOWN, + MARKER_AF_MAGIC_CARPET_SHADOW, MARKER_B0_MAGIC_CARPET_2, MARKER_B1_SIR_SLUSH, MARKER_B2_SNOWBALL, @@ -4566,8 +4566,8 @@ enum marker_e{ MARKER_B9_FP_SNOWMAN_BUTTON = 0xB9, MARKER_BA_XMAS_TREE, - - MARKER_BC_GOBI_1 = 0xBC, + MARKER_BB_UNKNOWN, + MARKER_BC_GOBI_1, MARKER_BD_GOBI_ROPE, MARKER_BE_GOBI_ROCK, MARKER_BF_GOBI_2, diff --git a/src/MMM/code_DC0.c b/src/MMM/code_DC0.c index 866d26ea..9da64bdf 100644 --- a/src/MMM/code_DC0.c +++ b/src/MMM/code_DC0.c @@ -2,93 +2,104 @@ #include "functions.h" #include "variables.h" -void func_80387280(Actor *this); +/* public functions */ +void chFlowerpot_update(Actor *this); /* .data */ +enum chFlowerpot_state_e { + FLOWER_POT_STATE_1_IDLE = 1, + FLOWER_POT_STATE_2_FLOWERED +}; + ActorAnimationInfo D_8038BA50[] = { - {0x00, 0.0f}, + {0x00, 0.0f}, {ASSET_A9_ANIM_FLOWER_POT, 2.0f}, {ASSET_A9_ANIM_FLOWER_POT, 2.0f} }; ActorInfo D_8038BA68 = { - MARKER_34_CEMETARY_POT, ACTOR_25_CEMETARY_POT, ASSET_3AE_MODEL_GRAVE_FLOWER_POT, - 0x1, D_8038BA50, - func_80387280, func_80326224, actor_draw, + MARKER_34_CEMETARY_POT, ACTOR_25_CEMETARY_POT, ASSET_3AE_MODEL_GRAVE_FLOWER_POT, + 0x1, D_8038BA50, + chFlowerpot_update, func_80326224, actor_draw, 0, 0, 0.0f, 0 }; /* .code */ -//chflowerpots_getRemaining -s32 func_803871B0(void) { +s32 chFlowerpot_getRemaining(void) { return levelSpecificFlags_getN(0x39, 3); } -//chflowerpots_setRemaining -void func_803871D4(s32 arg0) { +void chFlowerpot_setRemaining(s32 arg0) { levelSpecificFlags_setN(0x39, arg0, 3); } -void MMM_func_803871FC(Actor *this){ - switch(this->state){ - case 1: +void MMM_func_803871FC(Actor *this) { + switch (this->state) { + case FLOWER_POT_STATE_1_IDLE: func_8033A45C(3, FALSE); break; - case 2: + + case FLOWER_POT_STATE_2_FLOWERED: func_8033A45C(3, TRUE); break; } + func_803255FC(this); } -void mmm_resetFlowerPots() { - func_803871D4(5); +void chFlowerpot_reset() { + chFlowerpot_setRemaining(5); } -//chflowerpots_update -void func_80387280(Actor *this){ +void chFlowerpot_update(Actor *this) { this->marker->propPtr->unk8_3 = TRUE; - if(!this->initialized){ + + if (!this->initialized) { this->initialized = TRUE; this->unk130 = MMM_func_803871FC; } - switch(this->state){ - case 1: + switch (this->state) { + case FLOWER_POT_STATE_1_IDLE: animctrl_setPlaybackType(this->animctrl, ANIMCTRL_STOPPED); break; - case 2: - if(actor_animationIsAt(this, 0.2f)){ - FUNC_8030E8B4(SFX_12F_FUUUCK_YOUUU, 1.0f, 30000, this->position, 300, 2000); + case FLOWER_POT_STATE_2_FLOWERED: + if (actor_animationIsAt(this, 0.2f)) { + FUNC_8030E8B4(SFX_12F_THAAANK_YOOOUUU, 1.0f, 30000, this->position, 300, 2000); } break; } } -bool MMM_func_80387340(ActorMarker *marker){ +bool chFlowerpot_eggCollision(ActorMarker *marker) { Actor *actor = marker_getActor(marker); - f32 sp20[3]; - s32 sp1C; - - if(actor->state == 2) - return FALSE; + f32 position[3]; + s32 remaining; - subaddie_set_state(actor, 2); + if (actor->state == FLOWER_POT_STATE_2_FLOWERED) { + return FALSE; + } + + subaddie_set_state(actor, FLOWER_POT_STATE_2_FLOWERED); animctrl_setPlaybackType(actor->animctrl, ANIMCTRL_ONCE); - sp1C = func_803871B0(); - if(sp1C != 0){ - sp1C--; - if(sp1C == 0){ - ml_vec3f_copy(sp20, actor->position); - sp20[1] += 80.0f; + remaining = chFlowerpot_getRemaining(); + + if (remaining != 0) { + remaining--; + + if (remaining == 0) { + ml_vec3f_copy(position, actor->position); + position[1] += 80.0f; + comusic_playTrack(COMUSIC_2D_PUZZLE_SOLVED_FANFARE); - jiggy_spawn(JIGGY_63_MMM_FLOWER_POTS, sp20); + jiggy_spawn(JIGGY_63_MMM_FLOWER_POTS, position); } - else{ + else { comusic_playTrack(COMUSIC_2B_DING_B); } } - func_803871D4(sp1C); + + chFlowerpot_setRemaining(remaining); return TRUE; } diff --git a/src/core1/code_72B0.c b/src/core1/code_72B0.c index 00dc82fa..3c026f4b 100644 --- a/src/core1/code_72B0.c +++ b/src/core1/code_72B0.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -int func_802458E0(f32 arg0[3], Actor *arg1, s32 arg2); +int collisionTri_isHitFromAbove_actor(f32 arg0[3], Actor *arg1, s32 arg2); extern bool func_80320DB0(f32[3], f32, f32[3], u32); extern bool func_80323240(struct56s *, f32, f32[3]); extern f32 ml_dotProduct_vec3f(f32[3], f32[3]); @@ -308,31 +308,32 @@ BKCollisionTri *func_802457C4(f32 arg0[3], f32 arg1[3], f32 arg2, f32 arg3, f32 return var_v1; } -void collisionTri_copy(BKCollisionTri *dst, BKCollisionTri *src){ - dst->unk0[0] = src->unk0[0]; - dst->unk0[1] = src->unk0[1]; - dst->unk0[2] = src->unk0[2]; +void collisionTri_copy(BKCollisionTri *dst, BKCollisionTri *src) { + TUPLE_COPY(dst->unk0, src->unk0) dst->flags = src->flags; dst->unk6 = src->unk6; } -int func_802458A8(f32 arg0[3], ActorMarker *arg1, s32 arg2){ - return func_802458E0(arg0, marker_getActor(arg1), arg2); +int collisionTri_isHitFromAbove_marker(f32 position[3], ActorMarker *marker, s32 verticalOffset) { + return collisionTri_isHitFromAbove_actor(position, marker_getActor(marker), verticalOffset); } -int func_802458E0(f32 arg0[3], Actor *arg1, s32 arg2){ +int collisionTri_isHitFromAbove_actor(f32 position[3], Actor *actor, s32 verticalOffset) { f32 sp34[3]; - f32 sp28[3]; - f32 sp1C[3]; + f32 tmp_position[3]; + f32 adjusted_actor_position[3]; - ml_vec3f_copy(sp28, arg0); - ml_vec3f_copy(sp1C, arg1->position); - sp1C[1] += (f32)arg2; - if(sp1C[1] < sp28[1]) - return FALSE; + ml_vec3f_copy(tmp_position, position); + ml_vec3f_copy(adjusted_actor_position, actor->position); + adjusted_actor_position[1] += (f32) verticalOffset; - if(func_80320B98(sp28, sp1C, sp34, 0x25e0000)){ + if (adjusted_actor_position[1] < tmp_position[1]) { return FALSE; } + + if (func_80320B98(tmp_position, adjusted_actor_position, sp34, 0x25e0000)) { + return FALSE; + } + return TRUE; } diff --git a/src/core2/ba/marker.c b/src/core2/ba/marker.c index 61bca831..05b650ca 100644 --- a/src/core2/ba/marker.c +++ b/src/core2/ba/marker.c @@ -388,7 +388,7 @@ void __baMarker_resolveCollision(Prop *other_prop){ return; player_getPosition(spAC); spAC[1] += 40.0f; - if(func_802458E0(spAC, actor, 0x87) == 0) + if(collisionTri_isHitFromAbove_actor(spAC, actor, 0x87) == 0) return; volatileFlag_set(VOLATILE_FLAG_1E, 1); if(fileProgressFlag_get(((actor->unkF4_8 - 1) ^ 1) + 0x49)){ diff --git a/src/core2/code_9A740.c b/src/core2/code_9A740.c index 9fb56644..e996fb88 100644 --- a/src/core2/code_9A740.c +++ b/src/core2/code_9A740.c @@ -57,7 +57,7 @@ void func_803216D0(enum map_e map){ ttc_resetTresureHunt(); break; case MAP_1B_MMM_MAD_MONSTER_MANSION: - mmm_resetFlowerPots(); + chFlowerpot_reset(); break; } } diff --git a/src/core2/code_CC1E0.c b/src/core2/code_CC1E0.c index 0506f919..401f0b44 100644 --- a/src/core2/code_CC1E0.c +++ b/src/core2/code_CC1E0.c @@ -51,7 +51,7 @@ void fxegg_shatter(u8 projectile_indx){ s32 func_803531C8(u8 projectile_indx, s32 arg1){ ActorProp *prop; - f32 sp40[3]; + f32 egg_position[3]; ActorMarker * marker; ActorMarker * other_marker; s32 sp34; @@ -63,7 +63,7 @@ s32 func_803531C8(u8 projectile_indx, s32 arg1){ marker = func_8033E840(); sp34 = 0; - projectile_getPosition(projectile_indx, sp40); + projectile_getPosition(projectile_indx, egg_position); marker->unk38[1] = 0x1E; prop = func_80320EB0(marker, 30.0f, 1); if(prop != NULL && prop->unk8_0){ @@ -84,7 +84,7 @@ s32 func_803531C8(u8 projectile_indx, s32 arg1){ break; case MARKER_33_LEAKY: //L80353350 - if(func_802458A8(sp40, other_marker, 0x32) && chLeaky_eggCollision(other_marker)){ + if (collisionTri_isHitFromAbove_marker(egg_position, other_marker, 0x32) && chLeaky_eggCollision(other_marker)) { func_8033E984(); } break; @@ -94,7 +94,7 @@ s32 func_803531C8(u8 projectile_indx, s32 arg1){ func_803870EC(1); break; - case 0x1ae: //L8035339C //zubba? + case MARKER_1AE_ZUBBA: //L8035339C //zubba? func_8033E984(); fxegg_shatter(projectile_indx); break; @@ -109,26 +109,26 @@ s32 func_803531C8(u8 projectile_indx, s32 arg1){ func_8038685C(other_marker); break; - case 0xbb: //L803533E4 //"BIG_JINXYHEAD" + case MARKER_BB_UNKNOWN: //L803533E4 //"BIG_JINXYHEAD" other_actor = marker_getActor(other_marker); *(s32 *)&other_actor->local = 1; func_8033E984(); break; case MARKER_34_CEMETARY_POT: //L80353400 - if(func_802458A8(sp40, other_marker, 0x3C) && MMM_func_80387340(other_marker)){ + if (collisionTri_isHitFromAbove_marker(egg_position, other_marker, 0x3C) && chFlowerpot_eggCollision(other_marker)) { func_8033E984(); } break; case MARKER_AB_RUBEES_EGG_POT: //L80353434 - if(func_802458A8(sp40, other_marker, 0x1E) && (func_8038E178() < func_8038E184())){ + if (collisionTri_isHitFromAbove_marker(egg_position, other_marker, 0x1E) && (func_8038E178() < func_8038E184())) { func_8033E984(); func_8038E140(); } break; - case 0xae: //L80353480 //big_jynxy_head + case MARKER_AE_UNKNOWN: //L80353480 //big_jynxy_head if(func_8038E344(other_marker)){ func_8033E984(); func_8038E2FC(other_marker); From 4bf7028254617a39bfc9755cdf35ac4638330ce7 Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Tue, 1 Oct 2024 10:27:28 +0200 Subject: [PATCH 06/16] Documented ch Tumblar --- include/core2/core2.h | 2 +- include/enums.h | 5 +- src/CC/code_13C0.c | 2 +- src/MMM/code_2040.c | 2 +- src/MMM/code_3D50.c | 12 +- src/MMM/code_47D0.c | 279 +++++++++++++++++++++----------------- src/MMM/code_5000.c | 4 +- src/core1/code_10A00.c | 2 +- src/core1/code_18350.c | 19 ++- src/core1/code_2FA0.c | 4 +- src/core2/ch/climbBase.c | 6 +- src/core2/ch/gameSelect.c | 4 +- src/core2/code_13FC0.c | 4 +- src/core2/code_14420.c | 2 +- src/core2/code_4C020.c | 6 +- src/core2/code_5C870.c | 2 +- src/core2/code_91E10.c | 2 +- src/core2/code_C9F00.c | 17 +-- src/core2/code_CB050.c | 2 +- src/core2/gc/pauseMenu.c | 4 +- src/lair/ch/brentilda.c | 4 +- 21 files changed, 210 insertions(+), 174 deletions(-) diff --git a/include/core2/core2.h b/include/core2/core2.h index 0c401741..7fe1faca 100644 --- a/include/core2/core2.h +++ b/include/core2/core2.h @@ -8,7 +8,7 @@ void func_80351A04(Struct68s *arg0, s32 arg1); void func_80351A14(Struct68s *arg0, Struct68DrawMethod arg1); -void func_8035179C(Struct68s* arg0, f32 arg1[3]); +void func_8035179C_copyPosition(Struct68s* arg0, f32 arg1[3]); void func_80351814(Struct68s *arg0, f32 arg1[3]); f32 func_80351830(Struct68s *arg0); diff --git a/include/enums.h b/include/enums.h index 79ecf709..6c1421d0 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2307,7 +2307,7 @@ enum mm_specific_flags { enum mmm_specific_flags { MMM_SPECIFIC_FLAG_0_UNKNOWN, - MMM_SPECIFIC_FLAG_1_UNKNOWN, + MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, MMM_SPECIFIC_FLAG_2_UNKNOWN, MMM_SPECIFIC_FLAG_3_UNKNOWN, MMM_SPECIFIC_FLAG_4_UNKNOWN, @@ -4044,6 +4044,9 @@ enum asset_e ASSET_AD5_TEXT_UNKNOWN, ASSET_AD6_TEXT_UNKNOWN, + ASSET_ADA_TEXT_UNKNOWN = 0xada, + ASSET_ADB_TEXT_UNKNOWN, + ASSET_ADD_TEXT_UNKNOWN = 0xadd, ASSET_ADE_TEXT_LOGGO_AS_BEAR, ASSET_ADF_TEXT_ENTER_LOGGO, diff --git a/src/CC/code_13C0.c b/src/CC/code_13C0.c index 6607692c..3723775d 100644 --- a/src/CC/code_13C0.c +++ b/src/CC/code_13C0.c @@ -121,7 +121,7 @@ void CC_func_80387A40(Struct_CC_13C0_1* arg0, Struct68s* arg1, f32 arg2) { } } if ((arg0->unk4 == 0) || (arg0->unk4 == 1)) { - func_8035179C(arg1, sp38); + func_8035179C_copyPosition(arg1, sp38); func_80351814(arg1, sp2C); sp44[0] = 0.0f; sp44[1] = 0.0f; diff --git a/src/MMM/code_2040.c b/src/MMM/code_2040.c index cb737ed6..a375194b 100644 --- a/src/MMM/code_2040.c +++ b/src/MMM/code_2040.c @@ -287,7 +287,7 @@ void func_80388BDC(Actor *this) { f64 phi_f0; func_802D3D74(this); - mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f))); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f))); if (!this->volatile_initialized) { if (this->yaw != 0.0f) { this->lifetime_value = 0.5f; diff --git a/src/MMM/code_3D50.c b/src/MMM/code_3D50.c index ead8b49a..a8621dde 100644 --- a/src/MMM/code_3D50.c +++ b/src/MMM/code_3D50.c @@ -181,7 +181,7 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){ if(arg0->unk2 == 'X'){ MMM_func_8038A54C(arg0, 1); player_getPosition(sp44); - func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38); + chTumblar_copyPosition(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38); sp38[1] = sp44[1]; func_8028F620(sp38, 300.0f, -1500.0f); return; @@ -192,7 +192,7 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){ MMM_func_8038A54C(arg0, 3); if( iPtr->unk0[iPtr->unk4] == 0){ func_8038A140(5); - func_8038AF3C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10); + chTumblar_congratulate(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000); } else{ @@ -249,7 +249,7 @@ void func_8038AA44(void){ func_8038A750(); if( MMM_D_8038C510.unk8 == 1 && MMM_D_8038C510.unkC != NULL - && func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) + && chTumblar_isBanjoAbove(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) ){ if(!levelSpecificFlags_get(0x2f)){ levelSpecificFlags_set(0x2f, TRUE); @@ -265,9 +265,9 @@ void func_8038AA44(void){ func_8038A140(4); } else if( MMM_D_8038C510.unkC != NULL - && func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) + && chTumblar_isBanjoAbove(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) ){ - func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28); + chTumblar_copyPosition(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28); tmp_v0 = func_8033F3C0(MMM_D_8038C510.unk0, sp28); if(tmp_v0){ sp24 = func_8038A26C(tmp_v0); @@ -286,7 +286,7 @@ void func_8038AA44(void){ }//L8038AB7C if( MMM_D_8038C510.unk8 == 5 - && func_8038AD38(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) + && chTumblar_isDisappeared(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) ){ func_8038A140(6); } diff --git a/src/MMM/code_47D0.c b/src/MMM/code_47D0.c index 252648ec..b2d971d2 100644 --- a/src/MMM/code_47D0.c +++ b/src/MMM/code_47D0.c @@ -3,16 +3,25 @@ #include "variables.h" #include +/* extern functions */ extern void sfxsource_setSampleRate(u8, s32); -extern f32 func_80258640(f32[3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]); + +/* data */ +enum chTumblar_state_e { + TUMBLAR_STATE_0_IDLE, + TUMBLAR_STATE_1_CONGRATULATING, + TUMBLAR_STATE_2_BREAKING, + TUMBLAR_STATE_3_DISAPPEARED +}; typedef struct { - ActorMarker *unk0; - u8 unk4; - u8 pad5[3]; - f32 unk8; - f32 unkC[3]; -}Struct_MMM_47D0_0; + ActorMarker *jiggy_marker; + u8 state; + u8 unused[3]; + f32 timer; + f32 velocity[3]; +} Struct_MMM_47D0_0; /* .code */ void MMM_func_8038ABC0(s32 arg0) { @@ -21,172 +30,198 @@ void MMM_func_8038ABC0(s32 arg0) { } } -void func_8038AC04(void){ - if((*(u32*)PHYS_TO_K1(0x1D0)) - 0x356BAAAE){ +void func_8038AC04(void) { + if ((*(u32 *) PHYS_TO_K1(0x1D0)) - 0x356BAAAE) { MMM_func_8038ABC0(0x820); } } -//BREAK???========== -void func_8038AC40(Struct_MMM_47D0_0 *arg0, struct struct_68_s *arg1, f32 position[3], f32 rotation[3], f32 scale, BKModelBin *model_bin, Gfx **gfx, Mtx **mtx, Vtx **vtx){ - u8 temp_v0; - - if (arg0->unk4 != 3) { - if ((arg0->unk4 == 0) || (arg0->unk4 == 1)) { +void chTumblar_draw(Struct_MMM_47D0_0 *arg0, struct struct_68_s *arg1, f32 position[3], f32 rotation[3], f32 scale, BKModelBin *model_bin, Gfx **gfx, Mtx **mtx, Vtx **vtx) { + if (arg0->state != TUMBLAR_STATE_3_DISAPPEARED) { + if (arg0->state == TUMBLAR_STATE_0_IDLE || arg0->state == TUMBLAR_STATE_1_CONGRATULATING) { modelRender_setAlpha(0xFF); - } else if (arg0->unk4 == 2) { - modelRender_setAlpha((s32)((1 - ((f64)arg0->unk8 * 1)) * 255.0)); } + else if (arg0->state == TUMBLAR_STATE_2_BREAKING) { + modelRender_setAlpha((s32)((1 - ((f64) arg0->timer * 1)) * 255.0)); + } + modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL); modelRender_draw(gfx, mtx, position, rotation, scale, NULL, model_bin); } } -void func_8038AD10(s32 arg0, s32 arg1, f32 arg2[3]) { - func_8035179C(arg1, arg2); +void chTumblar_copyPosition(s32 arg0, s32 arg1, f32 arg2[3]) { + func_8035179C_copyPosition(arg1, arg2); } -bool func_8038AD38(Struct_MMM_47D0_0 *arg0, s32 arg1){ - return arg0->unk4 == 3; +bool chTumblar_isDisappeared(Struct_MMM_47D0_0 *arg0, s32 arg1) { + return arg0->state == TUMBLAR_STATE_3_DISAPPEARED; } -bool func_8038AD4C(s32 arg0, s32 arg1) { +bool chTumblar_isBanjoAbove(s32 arg0, s32 arg1) { f32 plyr_pos[3]; - f32 sp18[3]; + f32 position[3]; player_getPosition(plyr_pos); - func_8035179C(arg1, sp18); - return func_803518D4(arg1) - && (func_80258640(sp18, plyr_pos) < 40.0f) - && (player_getTransformation() == TRANSFORM_1_BANJO) - && (func_8028ECAC() == 0); + func_8035179C_copyPosition(arg1, position); + + return func_803518D4(arg1) && + ml_vec3f_horizontal_distance_zero_likely(position, plyr_pos) < 40.0f && + player_getTransformation() == TRANSFORM_1_BANJO && + func_8028ECAC() == 0; } -void MMM_func_8038ADF0(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) { - u8 sp3F; - f32 sp38; +void chTumblar_init(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) { + u8 sfxsource_index; + f32 distance_to_jiggy; Actor *jiggy; - f32 sp28[3]; + f32 position[3]; + + arg0->state = TUMBLAR_STATE_0_IDLE; + arg0->timer = 0.0f; + + arg0->velocity[0] = 0.0f; + arg0->velocity[1] = 0.0f; + arg0->velocity[2] = 0.0f; - arg0->unk4 = 0; - arg0->unk8 = 0.0f; - arg0->unkC[0] = 0.0f; - arg0->unkC[1] = 0.0f; - arg0->unkC[2] = 0.0f; func_8038AA30(arg0, arg1); - func_80351A14(arg1, (Struct68DrawMethod)func_8038AC40); - sp3F = func_80351758(arg1); - sfxsource_setSfxId(sp3F, SFX_3EC_CCW_DOOR_OPENING); - func_8030DD14(sp3F, 3); - sfxsource_playSfxAtVolume(sp3F, 0.6f); - sfxsource_setSampleRate(sp3F, 0); - func_8030E2C4(sp3F); - func_8035179C(arg1, sp28); - sp38 = 500.0f; - jiggy = actorArray_findClosestActorFromActorId(sp28, ACTOR_46_JIGGY, -1, &sp38); + func_80351A14(arg1, (Struct68DrawMethod) chTumblar_draw); + + sfxsource_index = func_80351758_getSfxsourceIndex(arg1); + sfxsource_setSfxId(sfxsource_index, SFX_3EC_CCW_DOOR_OPENING); + func_8030DD14(sfxsource_index, 3); + sfxsource_playSfxAtVolume(sfxsource_index, 0.6f); + sfxsource_setSampleRate(sfxsource_index, 0); + func_8030E2C4(sfxsource_index); + + func_8035179C_copyPosition(arg1, position); + distance_to_jiggy = 500.0f; + jiggy = actorArray_findClosestActorFromActorId(position, ACTOR_46_JIGGY, -1, &distance_to_jiggy); + if (jiggy != NULL) { - arg0->unk0 = jiggy->marker; - } else { - arg0->unk0 = NULL; + arg0->jiggy_marker = jiggy->marker; + } + else { + arg0->jiggy_marker = NULL; } - if (arg0->unk0 != NULL) { - arg0->unk0->collidable = FALSE; + if (arg0->jiggy_marker != NULL) { + arg0->jiggy_marker->collidable = FALSE; } + if (jiggyscore_isCollected(JIGGY_62_MMM_TUMBLAR)) { func_80351A04(arg1, 1); - arg0->unk4 = 3; + arg0->state = TUMBLAR_STATE_3_DISAPPEARED; } } -void func_8038AF0C(ActorMarker *marker, enum asset_e text_id, s32 arg2) { - mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, TRUE); +void __chTumblar_congratulationTextCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2) { + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, TRUE); } -void func_8038AF3C(Struct_MMM_47D0_0 *arg0, s32 arg1) { - gcdialog_showText(0xADB, 4, NULL, arg0->unk0, func_8038AF0C, NULL); - arg0->unk4 = 1; +void chTumblar_congratulate(Struct_MMM_47D0_0 *arg0, s32 arg1) { + gcdialog_showText(ASSET_ADB_TEXT_UNKNOWN, 4, NULL, arg0->jiggy_marker, __chTumblar_congratulationTextCallback, NULL); + arg0->state = TUMBLAR_STATE_1_CONGRATULATING; } -void func_8038AF90(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 arg2) { - f32 sp7C[3]; - f32 sp70[3]; - f32 sp64[3]; - Actor *temp_v0_2; - f32 sp54[3]; - f32 sp48[3]; - f32 sp40[2]; - s32 sp3C; - u8 sp38; +void chTumblar_update(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 tick) { + f32 viewport_position[3]; + f32 viewport_rotation[3]; + f32 direction[3]; + Actor *jiggy; + f32 position[3]; + f32 plyr_pos[3]; + f32 joystick[2]; + s32 is_banjo_above; + u8 sfxsource_index; + arg0->timer += tick; - arg0->unk8 += arg2; - if (arg0->unk4 == 0) { - func_8035179C(arg1, sp54); - func_8024E71C(0, sp40); - sp3C = func_8038AD4C(arg0, arg1); - if (sp3C) { + if (arg0->state == TUMBLAR_STATE_0_IDLE) { + func_8035179C_copyPosition(arg1, position); + controller_getJoystick(0, joystick); + is_banjo_above = chTumblar_isBanjoAbove(arg0, arg1); + + if (is_banjo_above) { func_8028F66C(BS_INTR_D_SURF); } - if (sp3C && ((sp40[0] != 0.0f) || (sp40[1] != 0.0f))) { - viewport_getRotation_vec3f(sp70); - sp64[0] = sp40[0]; - sp64[1] = 0.0f; - sp64[2] = -sp40[1]; - ml_vec3f_yaw_rotate_copy(sp64, sp64, sp70[1]); - arg0->unkC[0] += sp64[0] * 2500.0f * arg2; - arg0->unkC[2] += sp64[2] * 2500.0f * arg2; - } else { - arg0->unkC[0] *= 0.7; - arg0->unkC[2] *= 0.7; + + if (is_banjo_above && (joystick[0] != 0.0f || joystick[1] != 0.0f)) { + viewport_getRotation_vec3f(viewport_rotation); + + direction[0] = joystick[0]; + direction[1] = 0.0f; + direction[2] = -joystick[1]; + + ml_vec3f_yaw_rotate_copy(direction, direction, viewport_rotation[1]); + arg0->velocity[0] += direction[0] * 2500.0f * tick; + arg0->velocity[2] += direction[2] * 2500.0f * tick; } - if (LENGTH_VEC3F(arg0->unkC) > 400.0f) { - ml_vec3f_set_length(arg0->unkC, 400.0f); + else { + arg0->velocity[0] *= 0.7; + arg0->velocity[2] *= 0.7; } - sp54[0] += arg0->unkC[0] * arg2; - sp54[2] += arg0->unkC[2] * arg2; - func_80351B28(arg1, sp54); - func_8035179C(arg1, sp54); - if (arg0->unk0 != NULL) { - viewport_getPosition_vec3f(sp7C); - sp64[0] = sp54[0] - sp7C[0]; - sp64[2] = sp54[2] - sp7C[2]; - sp64[1] = 0.0f; - ml_vec3f_normalize(sp64); - temp_v0_2 = marker_getActor(arg0->unk0); - temp_v0_2->position[0] = sp54[0] + (sp64[0] * 20.0f); - temp_v0_2->position[2] = sp54[2] + (sp64[2] * 20.0f); + + if (LENGTH_VEC3F(arg0->velocity) > 400.0f) { + ml_vec3f_set_length(arg0->velocity, 400.0f); } - } else if (arg0->unk4 == 2) { - if (arg0->unk8 >= 1.0f) { - arg0->unk4 = 3U; - if (arg0->unk0 != NULL) { - arg0->unk0->collidable = TRUE; + + position[0] += arg0->velocity[0] * tick; + position[2] += arg0->velocity[2] * tick; + + func_80351B28(arg1, position); + func_8035179C_copyPosition(arg1, position); + + if (arg0->jiggy_marker != NULL) { + viewport_getPosition_vec3f(viewport_position); + + direction[0] = position[0] - viewport_position[0]; + direction[2] = position[2] - viewport_position[2]; + direction[1] = 0.0f; + ml_vec3f_normalize(direction); + + jiggy = marker_getActor(arg0->jiggy_marker); + jiggy->position[0] = position[0] + (direction[0] * 20.0f); + jiggy->position[2] = position[2] + (direction[2] * 20.0f); + } + } + else if (arg0->state == TUMBLAR_STATE_2_BREAKING) { + if (arg0->timer >= 1.0f) { + arg0->state = TUMBLAR_STATE_3_DISAPPEARED; + + if (arg0->jiggy_marker != NULL) { + arg0->jiggy_marker->collidable = TRUE; } + func_80351A04(arg1, 1); } - arg0->unkC[0] *= 0.7; - arg0->unkC[2] *= 0.7; + + arg0->velocity[0] *= 0.7; + arg0->velocity[2] *= 0.7; } - if (arg0->unk4 == 1) { - sp38 = func_80351758(arg1); - sfxsource_setSampleRate(sp38, 0); - } else { - sp38 = func_80351758(arg1); - sfxsource_setSampleRate(sp38, (s32) ((LENGTH_VEC3F(arg0->unkC) / 400.0) * 15000.0)); + + if (arg0->state == TUMBLAR_STATE_1_CONGRATULATING) { + sfxsource_index = func_80351758_getSfxsourceIndex(arg1); + sfxsource_setSampleRate(sfxsource_index, 0); } - player_getPosition(sp48); - func_8035179C(arg1, sp54); - if (!mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN) && (arg0->unk4 == 0) && (func_80258640(sp54, sp48) < 250.0f)){ - if(gcdialog_showText(0xADA, 0, NULL, NULL, NULL, NULL)) { + else { + sfxsource_index = func_80351758_getSfxsourceIndex(arg1); + sfxsource_setSampleRate(sfxsource_index, (s32)((LENGTH_VEC3F(arg0->velocity) / 400.0) * 15000.0)); + } + + player_getPosition(plyr_pos); + func_8035179C_copyPosition(arg1, position); + + if (!mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN) && arg0->state == TUMBLAR_STATE_0_IDLE && ml_vec3f_horizontal_distance_zero_likely(position, plyr_pos) < 250.0f) { + if (gcdialog_showText(ASSET_ADA_TEXT_UNKNOWN, 0, NULL, NULL, NULL, NULL)) { mapSpecificFlags_set(0, TRUE); } } - if ((arg0->unk4 == 1) && mapSpecificFlags_get(MMM_SPECIFIC_FLAG_1_UNKNOWN)) { - arg0->unk4 = 2U; - arg0->unk8 = 0.0f; - mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, FALSE); - FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, sp54, 500, 2500); + if (arg0->state == TUMBLAR_STATE_1_CONGRATULATING && mapSpecificFlags_get(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN)) { + arg0->state = TUMBLAR_STATE_2_BREAKING; + arg0->timer = 0.0f; + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, FALSE); + FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, position, 500, 2500); } } diff --git a/src/MMM/code_5000.c b/src/MMM/code_5000.c index 6a789f89..7a055263 100644 --- a/src/MMM/code_5000.c +++ b/src/MMM/code_5000.c @@ -74,7 +74,7 @@ void func_8038B630(Struct5Fs *arg0, Struct68s *arg1){ f32 sp20; sp20 = alCents2Ratio(func_80389BBC()*100); - phi_s0 = func_80351758(arg1); + phi_s0 = func_80351758_getSfxsourceIndex(arg1); func_8030E394(phi_s0); sfxsource_playSfxAtVolume(phi_s0, sp20); sfxsource_setSfxId(phi_s0, 0x3f3); @@ -118,7 +118,7 @@ void func_8038B790(Struct5Fs *arg0, Struct68s *arg1, f32 arg2) { if (arg0->unk14 <= 0.0f) { func_80351954(arg1); } else if (arg0->unk14 <= 1.0f) { - sfxsource_setSampleRate(func_80351758(arg1), (s32)(arg0->unk14 * 32767.0f)); + sfxsource_setSampleRate(func_80351758_getSfxsourceIndex(arg1), (s32)(arg0->unk14 * 32767.0f)); } } diff --git a/src/core1/code_10A00.c b/src/core1/code_10A00.c index 8cbed3d2..3f50ec47 100644 --- a/src/core1/code_10A00.c +++ b/src/core1/code_10A00.c @@ -149,7 +149,7 @@ void func_8024E6E0(s32 controller_index, s32 *dst[4]){ dst[3] = D_80281138[controller_index].unk24[3]; } -void func_8024E71C(s32 controller_index, f32 dst[2]){ +void controller_getJoystick(s32 controller_index, f32 dst[2]){ if(func_802E4A08()){ dst[0] = D_80281250[controller_index].joystick[0]; dst[1] = D_80281250[controller_index].joystick[1]; diff --git a/src/core1/code_18350.c b/src/core1/code_18350.c index 6216a429..3f586876 100644 --- a/src/core1/code_18350.c +++ b/src/core1/code_18350.c @@ -345,14 +345,12 @@ void ml_vec3f_roll_rotate_copy(f32 dst[3], f32 src[3], f32 roll) dst[0] = val; } -void ml_vec3f_set_length(f32 arg0[3], f32 arg1) -{ - f32 length = LENGTH_VEC3F(arg0); +void ml_vec3f_set_length(f32 vec[3], f32 length) { + f32 vec_length = LENGTH_VEC3F(vec); - if (length != 0) - { - f32 inv_length = arg1 / length; - TUPLE_SCALE_COPY(arg0, arg0, inv_length) + if (vec_length != 0) { + f32 inv_length = length / vec_length; + TUPLE_SCALE_COPY(vec, vec, inv_length) } } @@ -942,14 +940,13 @@ int func_802585E0(s32 vec[3], s32 minX, s32 minY, s32 minZ, s32 maxX, s32 maxY, && vec[2] > minZ && vec[2] < maxZ; } -//ml_vec3f_horizontal_distance_zero_likely -f32 func_80258640(f32 vec1[3], f32 vec2[3]) -{ +f32 ml_vec3f_horizontal_distance_zero_likely(f32 vec1[3], f32 vec2[3]) { f32 dX = vec1[0] - vec2[0]; f32 dZ = vec1[2] - vec2[2]; - if (dX != 0 || dZ != 0) + if (dX != 0 || dZ != 0) { return gu_sqrtf(_SQ2(dX, dZ)); + } return 0; } diff --git a/src/core1/code_2FA0.c b/src/core1/code_2FA0.c index 0ed7bc46..17d87b9e 100644 --- a/src/core1/code_2FA0.c +++ b/src/core1/code_2FA0.c @@ -14,7 +14,7 @@ void func_802409C0(f32 arg0[3], f32 arg1){ f32 dt; dt = time_getDelta()*arg1; - func_8024E71C(0, sp28); + controller_getJoystick(0, sp28); sp30[0] = sp28[0] * dt; sp30[1] = 0.0f; @@ -46,7 +46,7 @@ void func_80240AC8(f32 arg0[3], f32 arg1){ f32 dt; dt = time_getDelta()*arg1; - func_8024E71C(0, sp28); + controller_getJoystick(0, sp28); if(0.0f != sp28[0] || 0.0f != sp28[1]){ D_80275860++; diff --git a/src/core2/ch/climbBase.c b/src/core2/ch/climbBase.c index 6859a7b0..b1e52759 100644 --- a/src/core2/ch/climbBase.c +++ b/src/core2/ch/climbBase.c @@ -5,7 +5,7 @@ void func_802D77D4(Actor *this); extern void player_setClimbParams(f32[3], f32[3], f32, u32); -extern f32 func_80258640(f32[3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]); typedef struct { f32 unk0[3]; @@ -40,8 +40,8 @@ s32 func_802D76E0(Actor *this, f32 *arg1) { return FALSE; } if (sp28 && temp_v0) { - sp30 = func_80258640(this->position, sp40); - if (func_80258640(this->position, sp34) < sp30) { + sp30 = ml_vec3f_horizontal_distance_zero_likely(this->position, sp40); + if (ml_vec3f_horizontal_distance_zero_likely(this->position, sp34) < sp30) { sp28 = 0; } } diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index 570c89cb..5910fb8f 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -26,7 +26,7 @@ extern void warp_smExitBanjosHouse(s32, s32); extern void func_80335110(s32); extern void func_8024E60C(s32, s32[3]); -extern void func_8024E71C(s32, f32*); +extern void controller_getJoystick(s32, f32*); extern char *gcpausemenu_TimeToA(int); extern struct5Bs *func_803097A0(void); @@ -334,7 +334,7 @@ void func_802C4C14(Actor *this){ else{//L802C4D24 func_8024E60C(0, sp74); func_8024E55C(0, sp5C); - func_8024E71C(0, &sp54); + controller_getJoystick(0, &sp54); switch(this->state){ case 2: case 5: diff --git a/src/core2/code_13FC0.c b/src/core2/code_13FC0.c index dd2d4bc7..df1df256 100644 --- a/src/core2/code_13FC0.c +++ b/src/core2/code_13FC0.c @@ -3,7 +3,7 @@ #include "variables.h" #include -extern void func_8024E71C(s32, f32*); +extern void controller_getJoystick(s32, f32*); extern f32 ml_acosf(f32); extern f32 player_getYaw(void); extern void particleEmitter_setSphericalParticleVelocityRange(ParticleEmitter *this, f32 pitch_min, f32 yaw_min, f32 radial_min, f32 pitch_max, f32 yaw_max, f32 radial_max); @@ -79,7 +79,7 @@ void func_8029B11C(void) { } void func_8029B174(void) { - func_8024E71C(0, &D_8037D1A0.unk1C); + controller_getJoystick(0, &D_8037D1A0.unk1C); if (D_8037D1A0.unk34) { D_8037D1A0.unk1C[0] = D_8037D1A0.unk1C[1] = 0.0f; } diff --git a/src/core2/code_14420.c b/src/core2/code_14420.c index 6e607c4f..dfd1b811 100644 --- a/src/core2/code_14420.c +++ b/src/core2/code_14420.c @@ -7,7 +7,7 @@ #include "core2/ba/physics.h" #include -extern void func_8024E71C(s32, f32*); +extern void controller_getJoystick(s32, f32*); extern f32 ml_acosf(f32); extern f32 player_getYaw(void); extern void particleEmitter_setSphericalParticleVelocityRange(ParticleEmitter *this, f32 pitch_min, f32 yaw_min, f32 radial_min, f32 pitch_max, f32 yaw_max, f32 radial_max); diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 28a92ae6..62a78c1a 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -4,7 +4,7 @@ #include "SnS.h" -extern f32 func_80258640(f32 [3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32 [3], f32[3]); extern void func_8025A788(enum comusic_e, f32, f32); extern void func_8031CC40(enum map_e, s32); extern void fxRipple_802F363C(f32); @@ -565,13 +565,13 @@ void func_802D4680(Actor *this){ player_getPosition(sp1C); switch(this->state){ case 0: - if(150.0f < func_80258640(this->position, sp1C)){ + if(150.0f < ml_vec3f_horizontal_distance_zero_likely(this->position, sp1C)){ subaddie_set_state(this, 1); D_803676AC = 0; } break; case 1: - if(func_80258640(this->position, sp1C) < 150.0f && func_8028F20C()){ + if(ml_vec3f_horizontal_distance_zero_likely(this->position, sp1C) < 150.0f && func_8028F20C()){ if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){ if(map_get() == MAP_8E_GL_FURNACE_FUN){ volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, 0); diff --git a/src/core2/code_5C870.c b/src/core2/code_5C870.c index 66e164e4..38424f1f 100644 --- a/src/core2/code_5C870.c +++ b/src/core2/code_5C870.c @@ -626,7 +626,7 @@ s32 getGameMode(void){ int func_802E4A08(void){ return (D_8037E8E0.game_mode == GAME_MODE_6_FILE_PLAYBACK) - || (D_8037E8E0.game_mode == 5) + || (D_8037E8E0.game_mode == GAME_MODE_5_UNKNOWN) || (D_8037E8E0.game_mode == GAME_MODE_7_ATTRACT_DEMO) || (D_8037E8E0.game_mode == GAME_MODE_8_BOTTLES_BONUS) || (D_8037E8E0.game_mode == GAME_MODE_9_BANJO_AND_KAZOOIE) diff --git a/src/core2/code_91E10.c b/src/core2/code_91E10.c index 023da4f4..3f663217 100644 --- a/src/core2/code_91E10.c +++ b/src/core2/code_91E10.c @@ -488,7 +488,7 @@ void func_80319EA4(void) { return; func_8024E55C(0, sp58); - func_8024E71C(0, sp4C); + controller_getJoystick(0, sp4C); for(phi_s0 = 0; phi_s0 < 4; phi_s0++){ gczoombox_update(D_803830E0->unk24[phi_s0]); } diff --git a/src/core2/code_C9F00.c b/src/core2/code_C9F00.c index d2561800..495f1872 100644 --- a/src/core2/code_C9F00.c +++ b/src/core2/code_C9F00.c @@ -41,7 +41,7 @@ Struct_Core2_C9F00_1 D_803725C0[] = { void func_80351DE0(Struct6Bs *, Struct68s *); -extern void MMM_func_8038ADF0(void *, Struct68s *); +extern void chTumblar_init(void *, Struct68s *); extern void func_80387940(void *, Struct68s *); extern void GV_func_80387960(void *, Struct68s *); extern void func_80387980(void *, Struct68s *); @@ -53,7 +53,7 @@ extern void CC_func_80387A20(void *, Struct68s *); extern void func_80351FE0(void *, Struct68s *); void func_80351E60(Struct6Bs *, Struct68s *, f32); -extern void func_8038AF90(void *, Struct68s *, f32); +extern void chTumblar_update(void *, Struct68s *, f32); extern void func_8038B790(void *, Struct68s *, f32); extern void CCW_func_80387A40(void *, Struct68s *, f32); extern void func_80352114(void *, Struct68s *, f32); @@ -61,7 +61,7 @@ extern void func_80352114(void *, Struct68s *, f32); Struct_Core2_C9F00_0 D_803725F4[] = { { NULL, NULL}, {func_80351DE0, func_80351E60}, - {MMM_func_8038ADF0, func_8038AF90}, + {chTumblar_init, chTumblar_update}, { NULL, NULL}, { NULL, func_8038B790}, {func_80387940, CCW_func_80387A40}, @@ -280,10 +280,11 @@ bool func_80351724(void * arg0){ return TRUE; } -s32 func_80351758(Struct68s *arg0){ - if(arg0->unk0 == 0){ +s32 func_80351758_getSfxsourceIndex(Struct68s *arg0) { + if (arg0->unk0 == NULL) { arg0->unk0 = sfxsource_createSfxsourceAndReturnIndex(); } + return arg0->unk0; } @@ -291,8 +292,8 @@ ActorMarker *func_80351794(Struct68s *arg0){ return arg0->unk4; } -void func_8035179C(Struct68s* arg0, f32 arg1[3]) { - TUPLE_COPY(arg1, arg0->position) +void func_8035179C_copyPosition(Struct68s* arg0, f32 position[3]) { + TUPLE_COPY(position, arg0->position) } void * func_803517B8(s32 arg0){ @@ -473,7 +474,7 @@ void func_80351DE0(Struct6Bs *arg0, Struct68s *arg1) { arg0->unk0 = randf2(80.0f, 100.0f); arg0->unk4[0] = arg0->unk4[1] = arg0->unk4[2] = 0.0f; arg0->unk10[0] = arg0->unk10[1] = arg0->unk10[2] = 0.0f; - func_8035179C(arg1, arg0->unk1C); + func_8035179C_copyPosition(arg1, arg0->unk1C); func_80351814(arg1, arg0->unk28); arg0->unk34 = 0.0f; } diff --git a/src/core2/code_CB050.c b/src/core2/code_CB050.c index 762a4b71..46b92aa2 100644 --- a/src/core2/code_CB050.c +++ b/src/core2/code_CB050.c @@ -32,7 +32,7 @@ void func_80351FE0(Struct_core2_CB050_0 *arg0, Struct68s *arg1) { arg0->unk28[0] = arg0->unk28[1] = arg0->unk28[2] = 0.0f; arg0->unk34[0] = arg0->unk34[1] = arg0->unk34[2] = 0.0f; arg0->unk40[0] = arg0->unk40[1] = arg0->unk40[2] = 0.0f; - func_8035179C(arg1, arg0->unk4C); + func_8035179C_copyPosition(arg1, arg0->unk4C); func_80351814(arg1, arg0->unk58); arg0->unk64 = 0.0f; arg0->unk6C = 0; diff --git a/src/core2/gc/pauseMenu.c b/src/core2/gc/pauseMenu.c index 849456fe..f0deb99e 100644 --- a/src/core2/gc/pauseMenu.c +++ b/src/core2/gc/pauseMenu.c @@ -33,7 +33,7 @@ void func_80310D2C(void); s32 level_get(void); void func_8024E6E0(s32, void *); void func_8024E60C(s32, void *); -void func_8024E71C(s32, void *); +void controller_getJoystick(s32, void *); s32 getGameMode(void); void func_802DC5B8(void); @@ -937,7 +937,7 @@ s32 gcPauseMenu_update(void) { } func_8024E55C(0, face_button); - func_8024E71C(0, joystick); + controller_getJoystick(0, joystick); func_8024E60C(0, sp60); func_8024E6E0(0, sp50); func_80310D2C(); diff --git a/src/lair/ch/brentilda.c b/src/lair/ch/brentilda.c index 072330f2..f998ad80 100644 --- a/src/lair/ch/brentilda.c +++ b/src/lair/ch/brentilda.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -extern f32 func_80258640(f32[3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]); typedef struct { s32 unk0; @@ -124,7 +124,7 @@ void chBrentilda_update(Actor *this) { player_getPosition(sp64); temp_f0 = sp64[1] - this->position[1]; if ((temp_f0 > -100.0f) && (temp_f0 < 350.0f)) { - phi_f2 = func_80258640(sp64, this->position); + phi_f2 = ml_vec3f_horizontal_distance_zero_likely(sp64, this->position); } else { phi_f2 = 2000.0f; } From 18a88b3436456173d31642b209ce9170183e994f Mon Sep 17 00:00:00 2001 From: Bl00D4NGEL Date: Tue, 1 Oct 2024 21:38:40 +0200 Subject: [PATCH 07/16] refac: rename variables in func_802C4768 --- src/core2/ch/gameSelect.c | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index 570c89cb..6c762752 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -178,8 +178,8 @@ void *func_802C44EC(f32 arg0[3], f32 arg1[3], f32 arg2) { void func_802C4768(s32 gamenum){ u8 * sp20[2]; - static u8 D_8037DD48[0x20]; - static u8 D_8037DD68[0x20]; + static u8 upperTextLine[0x20]; + static u8 lowerTextLine[0x20]; func_8031FBF8(); D_80365E00 = gamenum; @@ -188,59 +188,59 @@ void func_802C4768(s32 gamenum){ gameFile_load(gamenum); D_8037DCCE[gamenum] = (itemscore_timeScores_get(LEVEL_6_LAIR)) ? 1 : 0; - strcpy(D_8037DD48, ""); - strcat(D_8037DD48, "GAME "); + strcpy(upperTextLine, ""); + strcat(upperTextLine, "GAME "); switch(gamenum){ case 0: //L802C4820 - strIToA(D_8037DD48, 1); + strIToA(upperTextLine, 1); break; case 1: //L802C4838 - strIToA(D_8037DD48, 3); + strIToA(upperTextLine, 3); break; case 2: //L802C484C - strIToA(D_8037DD48, 2); + strIToA(upperTextLine, 2); break; }//L802C4858 - strcat(D_8037DD48, ": TIME "); - strcat(D_8037DD48, gcpausemenu_TimeToA(itemscore_timeScores_getTotal())); - strcat(D_8037DD48, ","); - strcat(D_8037DD48, ""); + strcat(upperTextLine, ": TIME "); + strcat(upperTextLine, gcpausemenu_TimeToA(itemscore_timeScores_getTotal())); + strcat(upperTextLine, ","); + strcat(upperTextLine, ""); - strcpy(D_8037DD68, ""); - strIToA(D_8037DD68, jiggyscore_total()); - strcat(D_8037DD68, " JIGSAW"); + strcpy(lowerTextLine, ""); + strIToA(lowerTextLine, jiggyscore_total()); + strcat(lowerTextLine, " JIGSAW"); if(jiggyscore_total() != 1){ - strcat(D_8037DD68, "S"); + strcat(lowerTextLine, "S"); } - strcat(D_8037DD68, ", "); - strIToA(D_8037DD68, itemscore_noteScores_getTotal()); - strcat(D_8037DD68, " NOTE"); + strcat(lowerTextLine, ", "); + strIToA(lowerTextLine, itemscore_noteScores_getTotal()); + strcat(lowerTextLine, " NOTE"); if(itemscore_noteScores_getTotal() != 1){ - strcat(D_8037DD68, "S"); + strcat(lowerTextLine, "S"); } - strcat(D_8037DD68, "."); - strcat(D_8037DD68, ""); + strcat(lowerTextLine, "."); + strcat(lowerTextLine, ""); }//L802C49AC else{ D_8037DCCE[gamenum] = 0; - strcpy(D_8037DD48, ""); - strcat(D_8037DD48, "GAME "); + strcpy(upperTextLine, ""); + strcat(upperTextLine, "GAME "); switch (gamenum){ case 0: - strIToA(D_8037DD48, 1); + strIToA(upperTextLine, 1); break; case 1: - strIToA(D_8037DD48, 3); + strIToA(upperTextLine, 3); break; case 2: - strIToA(D_8037DD48, 2); + strIToA(upperTextLine, 2); break; }//L802C4A40 - strcat(D_8037DD48, ": EMPTY"); - strcpy(D_8037DD68, ""); + strcat(upperTextLine, ": EMPTY"); + strcpy(lowerTextLine, ""); }//L802C4A68 - sp20[0] = D_8037DD48;\ - sp20[1] = D_8037DD68; + sp20[0] = upperTextLine;\ + sp20[1] = lowerTextLine; func_8031877C(chGameSelectBottomZoombox); gczoombox_setStrings(chGameSelectBottomZoombox, 2, sp20); gczoombox_maximize(chGameSelectBottomZoombox); From cc7b79b76c5f364c03cff5614b2c288815ecc1d0 Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Tue, 1 Oct 2024 22:10:03 +0200 Subject: [PATCH 08/16] Documented health score --- include/enums.h | 2 + src/core2/code_B3A80.c | 10 ++- src/core2/code_B8860.c | 4 +- src/core2/fx/airscore.c | 2 +- src/core2/fx/common2score.c | 2 +- src/core2/fx/common3score.c | 2 +- src/core2/fx/healthscore.c | 134 +++++++++++++++++-------------- src/core2/fx/honeycarrierscore.c | 4 +- src/core2/fx/jinjoscore.c | 2 +- src/core2/fx/lifescore.c | 4 +- src/core2/modelRender.c | 4 +- 11 files changed, 93 insertions(+), 77 deletions(-) diff --git a/include/enums.h b/include/enums.h index 543185ca..ca3761ce 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3875,6 +3875,8 @@ enum asset_e ASSET_7E6_SPRITE_VILE, ASSET_7E7_SPRITE_CROC_BANJO, + ASSET_7EA_SPRITE_RED_HEALTH = 0x7ea, + ASSET_7EE_JOKER_CARD = 0x7ee, ASSET_7EF_SPRITE_BANJO, ASSET_7F0_SPRITE_BOTTLES, diff --git a/src/core2/code_B3A80.c b/src/core2/code_B3A80.c index 7637fdd5..15a0537d 100644 --- a/src/core2/code_B3A80.c +++ b/src/core2/code_B3A80.c @@ -164,12 +164,14 @@ void func_8033B020(void *ptr){ end_ptr = (struct21s *) vector_getEnd(D_80383CE0[0]); start_ptr = (struct21s *) vector_getBegin(D_80383CE0[0]); - for(iPtr = start_ptr; iPtr < end_ptr && ptr != iPtr->unk1; iPtr++); + + for (iPtr = start_ptr; iPtr < end_ptr && ptr != iPtr->unk1; iPtr++); + if (iPtr < end_ptr) { iPtr->unk0++; } - else{ - iPtr = (struct21s *)vector_pushBackNew(&D_80383CE0[0]); + else { + iPtr = (struct21s *) vector_pushBackNew(&D_80383CE0[0]); iPtr->unk0 = 1; iPtr->unk1 = ptr; } @@ -463,7 +465,7 @@ void func_8033BD20(BKModelBin **arg0){ *arg0 = NULL; } -void func_8033BD4C(void *arg0){ +void assetCache_free(void *arg0){ func_8033B020(arg0); } diff --git a/src/core2/code_B8860.c b/src/core2/code_B8860.c index 6fa7f192..929730cf 100644 --- a/src/core2/code_B8860.c +++ b/src/core2/code_B8860.c @@ -108,7 +108,7 @@ u8 func_8033FA84(void){ void func_8033FB64(u8 indx){ if(D_80385000[indx].sprite_0){ - func_8033BD4C(D_80385000[indx].sprite_0); + assetCache_free(D_80385000[indx].sprite_0); } D_80385000[indx].sprite_0 = NULL; D_80385000[indx].unk28_13 = 0; @@ -116,7 +116,7 @@ void func_8033FB64(u8 indx){ void projectile_setSprite(u8 indx, enum asset_e arg1){ if(D_80385000[indx].sprite_0){ - func_8033BD4C(D_80385000[indx].sprite_0); + assetCache_free(D_80385000[indx].sprite_0); } D_80385000[indx].sprite_0 = assetcache_get(arg1); } diff --git a/src/core2/fx/airscore.c b/src/core2/fx/airscore.c index 7319b57f..7efec759 100644 --- a/src/core2/fx/airscore.c +++ b/src/core2/fx/airscore.c @@ -46,7 +46,7 @@ void func_803016F0(void) { void fxairscore_free(s32 arg0, struct7s *arg1) { if (s_sprite != NULL) { - func_8033BD4C(s_sprite); + assetCache_free(s_sprite); s_sprite = NULL; } func_803016F0(); diff --git a/src/core2/fx/common2score.c b/src/core2/fx/common2score.c index b353e1ae..c5694113 100644 --- a/src/core2/fx/common2score.c +++ b/src/core2/fx/common2score.c @@ -308,7 +308,7 @@ void fxcommon2score_draw(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **m void fxcommon2score_free(enum item_e item_id, struct8s *arg1){ if(arg1->unk50){ - func_8033BD4C(arg1->unk50); //assetCache_free + assetCache_free(arg1->unk50); //assetCache_free arg1->unk50 = NULL; } } diff --git a/src/core2/fx/common3score.c b/src/core2/fx/common3score.c index f73877f5..ec06491e 100644 --- a/src/core2/fx/common3score.c +++ b/src/core2/fx/common3score.c @@ -226,7 +226,7 @@ void fxcommon3score_free(enum item_e item_id, void *arg1){ } if(a1->model != NULL){ - func_8033BD4C(a1->model); + assetCache_free(a1->model); a1->model = NULL; a1->unk6C = 0.0f; } diff --git a/src/core2/fx/healthscore.c b/src/core2/fx/healthscore.c index f70c80f1..65d16d5b 100644 --- a/src/core2/fx/healthscore.c +++ b/src/core2/fx/healthscore.c @@ -10,8 +10,8 @@ extern s32 framebuffer_width; extern s32 framebuffer_height; /* .data */ -BKSprite * D_8036A910 = NULL; -BKSprite * D_8036A914 = NULL; +BKSprite * gSpriteHealth = NULL; +BKSprite * gSpriteRedHealth = NULL; Gfx D_8036A918[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), @@ -28,8 +28,8 @@ s32 D_80381EF0; f32 D_80381EF4; f32 D_80381EF8; f32 D_80381EFC; -s32 D_80381F00; -f32 D_80381F04; +s32 gTotalHealth; +f32 gHealth; f32 D_80381F08[8]; f32 D_80381F28; f32 D_80381F2C; @@ -48,17 +48,16 @@ void func_80300C10(void) { } void fxhealthscore_free(enum item_e item_id, struct8s *arg1){ - s32 temp_a0; - s32 temp_a0_2; + if (gSpriteHealth != NULL) { + assetCache_free(gSpriteHealth); + gSpriteHealth = NULL; + } - if (D_8036A910 != 0) { - func_8033BD4C(D_8036A910); - D_8036A910 = 0; - } - if (D_8036A914 != 0) { - func_8033BD4C(D_8036A914); - D_8036A914 = 0; + if (gSpriteRedHealth != NULL) { + assetCache_free(gSpriteRedHealth); + gSpriteRedHealth = NULL; } + func_80300C10(); } @@ -68,61 +67,72 @@ struct7s *fxhealthscore_new(enum item_e item_id){ return &D_80381F30; } -void fxhealthscore_draw(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vtx **vtx){ - int i; +void fxhealthscore_draw(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vtx **vtx) { + int i; int tmp_v1; - s32 spEC; - s32 spE8; + s32 honeycomb_width; + s32 honeycomb_height; int tmp_v0; f32 f18; f32 f14; f32 f20; - s32 spD4 = 0; + s32 is_red_health_initialized = FALSE; s32 s6; - if(D_8036A910 == NULL) return; + if (gSpriteHealth == NULL) { + return; + } gSPDisplayList((*gfx)++, D_8036A918); - func_80347FC0(gfx, D_8036A910, 0, 0, 0, 0, 0, 2, 2, &spEC, &spE8); + func_80347FC0(gfx, gSpriteHealth, 0, 0, 0, 0, 0, 2, 2, &honeycomb_width, &honeycomb_height); viewport_setRenderViewportAndOrthoMatrix(gfx, mtx); + //loop over each honeycomb piece - for(i = D_80381F00-1; i >= 0; i--){//L80300E40 - if(i != 0 && (i + 1 != D_80381F00 || D_80381F00 & 1) - ){ + for (i = gTotalHealth - 1; i >= 0; i--) {//L80300E40 + if (i != 0 && (i + 1 != gTotalHealth || gTotalHealth & 1)) { s6 = (i & 1) ? i + 1 : i - 1; } - else{//L80300E84 + else {//L80300E84 s6 = i; } + gDPPipeSync((*gfx)++); - if(D_80381F04 > i){ - if((0 < D_80381F04 - 8.0f) && ((D_80381F04 - 8.0f) > i)){ - if(!spD4){ - func_80347FC0(gfx, D_8036A914, 0, 0, 0, 0, 0, 2, 2, &spEC, &spE8); - spD4 = TRUE; + + if (gHealth > i) { + if (0 < (gHealth - 8.0f) && (gHealth - 8.0f) > i) { + if (!is_red_health_initialized) { + func_80347FC0(gfx, gSpriteRedHealth, 0, 0, 0, 0, 0, 2, 2, &honeycomb_width, &honeycomb_height); + is_red_health_initialized = TRUE; } }//L80300F38 + gDPSetPrimColor((*gfx)++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); } - else{//L80300F58 - gDPSetPrimColor((*gfx)++, 0, 0, 0xFF, 0xFF, 0xFF, 0x78); + else {//L80300F58 + gDPSetPrimColor((*gfx)++, 0, 0, 0xFF, 0xFF, 0xFF, 0x78); } - f20 = 96.0f - (f32)framebuffer_width/2 + (i*13); - f14 = (f32)framebuffer_height/2 - func_802FB0E4(arg1) - D_80381F08[s6] - -48.0f; + + f20 = 96.0f - (f32) framebuffer_width / 2 + (i * 13); + f14 = (f32) framebuffer_height / 2 - func_802FB0E4(arg1) - D_80381F08[s6] - -48.0f; f14 = (i & 1) ? f14 + 5.75 : f14 - 5.75; + gSPVertex((*gfx)++, *vtx, 4, 0); - for(tmp_v1 = 0; tmp_v1 < 2; tmp_v1++){//L8030101C - for(tmp_v0 = 0; tmp_v0 < 2; tmp_v0++){//L80301030 - (*vtx)->v.ob[0] = (((spEC * D_80381EFC)*tmp_v0 - (spEC * D_80381EFC)/2) + f20)*4.0f; - (*vtx)->v.ob[1] = (((spE8 * D_80381EFC)/2 - (spE8 * D_80381EFC)*tmp_v1) + f14) * 4.0f; + + for (tmp_v1 = 0; tmp_v1 < 2; tmp_v1++) {//L8030101C + for (tmp_v0 = 0; tmp_v0 < 2; tmp_v0++) {//L80301030 + (*vtx)->v.ob[0] = (((honeycomb_width * D_80381EFC) * tmp_v0 - (honeycomb_width * D_80381EFC) / 2) + f20) * 4.0f; + (*vtx)->v.ob[1] = (((honeycomb_height * D_80381EFC) / 2 - (honeycomb_height * D_80381EFC) * tmp_v1) + f14) * 4.0f; (*vtx)->v.ob[2] = -0x14; - (*vtx)->v.tc[0] = ((spEC - 1) *tmp_v0) << 6; - (*vtx)->v.tc[1] = ((spE8 - 1) *tmp_v1) << 6; + + (*vtx)->v.tc[0] = ((honeycomb_width - 1) * tmp_v0) << 6; + (*vtx)->v.tc[1] = ((honeycomb_height - 1) * tmp_v1) << 6; (*vtx)++; } } + gSP1Quadrangle((*gfx)++, 0, 1, 3, 2, 0); } + gDPPipeSync((*gfx)++); gDPSetTextureLUT((*gfx)++, G_TT_NONE); gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE); @@ -140,7 +150,7 @@ void func_803012F8(void) { D_80381EF0 = 1; D_80381F28 = 0.0f; item_adjustByDiffWithHud(ITEM_14_HEALTH, 0); - D_80381F04 = (f32) item_getCount(ITEM_14_HEALTH); + gHealth = (f32) item_getCount(ITEM_14_HEALTH); } @@ -153,20 +163,20 @@ void fxhealthscore_update(enum item_e item_id, struct8s *arg1) { temp_f20 = time_getDelta(); sp2C = func_802FB0D4(arg1); if (item_getCount(ITEM_15_HEALTH_TOTAL) >= 9) { - D_80381F00 = 8; + gTotalHealth = 8; } else { - D_80381F00 = item_getCount(ITEM_15_HEALTH_TOTAL); + gTotalHealth = item_getCount(ITEM_15_HEALTH_TOTAL); } switch (D_80381EF0) { case 0: - D_80381F04 = (f32) itemPrint_getValue(item_id); + gHealth = (f32) itemPrint_getValue(item_id); break; case 1: - D_80381F04 += temp_f20 * 10.0f; - if (D_80381F00 <= D_80381F04) { - D_80381F04 = D_80381F04 - D_80381F00; + gHealth += temp_f20 * 10.0f; + if (gTotalHealth <= gHealth) { + gHealth = gHealth - gTotalHealth; } D_80381F28 += temp_f20; if (D_80381F28 > 2.5) { @@ -177,36 +187,38 @@ void fxhealthscore_update(enum item_e item_id, struct8s *arg1) { case 2: if (sp2C != 1) { - D_80381F04 += temp_f20 * 10.0f; - if (D_80381F00 <= D_80381F04) { - D_80381F04 = D_80381F04 - D_80381F00; + gHealth += temp_f20 * 10.0f; + if (gTotalHealth <= gHealth) { + gHealth = gHealth - gTotalHealth; } } - if (randf2(0.0f, 1.0f) < (1.0 / D_80381F00)) { - if (D_80381F04 < 1.0f) { - D_80381F04 =D_80381F04 + 1.0; + if (randf2(0.0f, 1.0f) < (1.0 / gTotalHealth)) { + if (gHealth < 1.0f) { + gHealth =gHealth + 1.0; } - if (item_getCount(ITEM_14_HEALTH) < D_80381F04) { + if (item_getCount(ITEM_14_HEALTH) < gHealth) { func_8025A6EC(COMUSIC_2B_DING_B, 22000); } - if (D_80381F04 < (f32) item_getCount(ITEM_14_HEALTH)) { + if (gHealth < (f32) item_getCount(ITEM_14_HEALTH)) { func_8025A6EC(COMUSIC_2C_BUZZER, 22000); } - item_set(ITEM_14_HEALTH, (s32) D_80381F04); + item_set(ITEM_14_HEALTH, (s32) gHealth); D_80381EF0 = 0; } break; } + switch (sp2C) { case 2: break; case 1: - if (D_8036A910 == NULL) { - D_8036A910 = assetcache_get(ASSET_7DD_SPRITE_HEALTH); + if (gSpriteHealth == NULL) { + gSpriteHealth = assetcache_get(ASSET_7DD_SPRITE_HEALTH); } - if (D_8036A914 == NULL) { - D_8036A914 = assetcache_get(0x7EA); + + if (gSpriteRedHealth == NULL) { + gSpriteRedHealth = assetcache_get(ASSET_7EA_SPRITE_RED_HEALTH); } break; @@ -215,8 +227,8 @@ void fxhealthscore_update(enum item_e item_id, struct8s *arg1) { break; } if (sp2C) { - for(var_s0 = 0; var_s0 < D_80381F00; var_s0++){ - if (func_803012B8(-15.0f, var_s0, D_80381F00)) { + for(var_s0 = 0; var_s0 < gTotalHealth; var_s0++){ + if (func_803012B8(-15.0f, var_s0, gTotalHealth)) { D_80381F08[var_s0] = D_80381F08[var_s0] * 0.6; } } diff --git a/src/core2/fx/honeycarrierscore.c b/src/core2/fx/honeycarrierscore.c index 6766dec8..3eae4891 100644 --- a/src/core2/fx/honeycarrierscore.c +++ b/src/core2/fx/honeycarrierscore.c @@ -67,11 +67,11 @@ void func_802FDD20(void) { void fxhoneycarrierscore_free(s32 arg0, struct8s *arg1){ if(D_8036A010){ - func_8033BD4C(D_8036A010); + assetCache_free(D_8036A010); D_8036A010 = NULL; } if(D_8036A014){ - func_8033BD4C(D_8036A014); + assetCache_free(D_8036A014); D_8036A014 = NULL; } D_803815E8 = 0x50; diff --git a/src/core2/fx/jinjoscore.c b/src/core2/fx/jinjoscore.c index 4e99a2c4..fca34533 100644 --- a/src/core2/fx/jinjoscore.c +++ b/src/core2/fx/jinjoscore.c @@ -124,7 +124,7 @@ void fxjinjoscore_free(enum item_e item_id, struct8s * arg1){ for(i = 0; i < 5; i++){ if(D_80381E40[i] != NULL){ - func_8033BD4C(D_80381E40[i]); + assetCache_free(D_80381E40[i]); D_80381E40[i] = NULL; } } diff --git a/src/core2/fx/lifescore.c b/src/core2/fx/lifescore.c index a05852fd..e479535c 100644 --- a/src/core2/fx/lifescore.c +++ b/src/core2/fx/lifescore.c @@ -58,7 +58,7 @@ void fxlifescore_free(s32 item_id, struct8s *arg1){ s32 i; for(i = 0; i < 2; i++){ if(D_80381EB0[i] != NULL){ - func_8033BD4C(D_80381EB0[i]); + assetCache_free(D_80381EB0[i]); D_80381EB0[i] = NULL; } }; @@ -150,7 +150,7 @@ void fxlifescore_update(enum item_e item_id, struct8s *arg1) { if (sp18 != D_80381EC0) { D_80381EC4 = NOT(D_80381EC4); if (D_80381EB0[D_80381EC4] != 0) { - func_8033BD4C(D_80381EB0[D_80381EC4]); + assetCache_free(D_80381EB0[D_80381EC4]); } D_80381EB0[D_80381EC4] = assetcache_get(sp18); D_80381EC0 = sp18; diff --git a/src/core2/modelRender.c b/src/core2/modelRender.c index 927dc8b7..e324e848 100644 --- a/src/core2/modelRender.c +++ b/src/core2/modelRender.c @@ -14,7 +14,7 @@ extern bool func_802ED420(BKModelUnk20List *arg0, u8 *arg1, u32 arg2); extern void func_802ED52C(BKModelUnk20List *, f32[3], f32); extern void func_80252AF0(f32[3], f32[3], f32[3], f32, f32[3]); extern void mlMtxRotatePYR(f32, f32, f32); -extern void func_8033BD4C(BKModelBin *); +extern void assetCache_free(BKModelBin *); extern s32 func_8024DB50(f32[3], f32); extern AnimMtxList *animMtxList_new(); extern AnimMtxList *animMtxList_defrag(AnimMtxList *); @@ -1286,7 +1286,7 @@ BKModelBin *modelRender_draw(Gfx **gfx, Mtx **mtx, f32 position[3], f32 rotation } if(D_803837C8.model_id){ - func_8033BD4C(model_bin); //assetCache_free + assetCache_free(model_bin); } modelRender_reset(); From 7984c313a8f8969c8ed658e079c289f76a61ad0e Mon Sep 17 00:00:00 2001 From: Bl00D4NGEL Date: Tue, 1 Oct 2024 23:48:12 +0200 Subject: [PATCH 09/16] document: fileprogresss related code, replaced magic numbers with constants where applicable --- include/enums.h | 61 ++++++++++++++++++++++++++++++--- include/functions.h | 12 +++---- include/prop.h | 2 +- src/BGS/ch/code_2270.c | 4 +-- src/CCW/code_1B20.c | 2 +- src/CCW/code_3310.c | 4 +-- src/FP/ch/xmastree.c | 6 ++-- src/TTC/code_3E30.c | 6 ++-- src/core2/ba/marker.c | 12 +++---- src/core2/ch/snowman.c | 2 +- src/core2/code_47BD0.c | 2 +- src/core2/code_4A6F0.c | 8 ++--- src/core2/code_4C020.c | 55 +++++++++++++++++------------ src/core2/code_53A10.c | 16 ++++----- src/core2/code_956B0.c | 8 ++--- src/core2/code_98CB0.c | 25 +++++++------- src/core2/code_B5040.c | 78 +++++++++++++++++++++--------------------- src/core2/code_C4320.c | 13 ++++++- src/lair/code_0.c | 30 ++++++++-------- src/lair/code_86F0.c | 2 +- src/lair/code_9C40.c | 11 +++--- 21 files changed, 218 insertions(+), 141 deletions(-) diff --git a/include/enums.h b/include/enums.h index 543185ca..40705f65 100644 --- a/include/enums.h +++ b/include/enums.h @@ -13,7 +13,7 @@ #define SPRITE_TYPE_RGBA16 (1 << 10) ////0x400 #define SPRITE_TYPE_RGBA32 (1 << 11) -enum file_progress_e{ +enum file_progress_e { FILEPROG_0_UNKNOWN, FILEPROG_1_UNKNOWN, FILEPROG_2_UNKNOWN, @@ -201,8 +201,8 @@ enum file_progress_e{ FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES, FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES, FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES, - - FILEPROG_E2_DOOR_OF_GRUNTY_OPEN = 0xE2, + FILEPROG_E1_UNKNOWN, // is set in cutscene_skipGameOverCutsceneCheck + FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, FILEPROG_E3_CCW_FLOWER_SPRING, FILEPROG_E4_CCW_FLOWER_SUMMER, FILEPROG_E5_CCW_FLOWER_AUTUMN, @@ -227,8 +227,48 @@ enum file_progress_e{ FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF8, //2bit // FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF9, //2bit + FILEPROG_FA_UNKNOWN = 0xFA, // Something that's set in FF + FILEPROG_FC_DEFEAT_GRUNTY = 0xFC, - FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit + FILEPROG_FD_BANNED_CHEATCODES_ENTERED, //2 bit + + FILEPROG_FF_SANDCASTLE_OPEN_DOOR_TWO = 0xFF, + FILEPROG_100_SANDCASTLE_OPEN_DOOR_THREE, + FILEPROG_101_SANDCASTLE_OPEN_DOOR_FOUR, + FILEPROG_102_SANDCASTLE_OPEN_DOOR_FIVE, + FILEPROG_103_SANDCASTLE_OPEN_DOOR_SIX, + FILEPROG_104_SANDCASTLE_OPEN_DOOR_SEVEN, + FILEPROG_105_SANDCASTLE_PUZZLE_COMPLETE_CC, + FILEPROG_106_SANDCASTLE_PUZZLE_COMPLETE_BGS, + FILEPROG_107_SANDCASTLE_PUZZLE_COMPLETE_FP, + FILEPROG_108_SANDCASTLE_PUZZLE_COMPLETE_GV, + FILEPROG_109_SANDCASTLE_PUZZLE_COMPLETE_MMM, + FILEPROG_10A_SANDCASTLE_PUZZLE_COMPLETE_RBB, + FILEPROG_10B_SANDCASTLE_PUZZLE_COMPLETE_CCC, + FILEPROG_10C_SANDCASTLE_RAISE_PIPES_TO_CC, + FILEPROG_10D_SANDCASTLE_RAISE_PIPE_TO_BRENTILDA, + FILEPROG_10E_SANDCASTLE_OPEN_CC, + FILEPROG_10F_SANDCASTLE_REMOVE_GRILL_NEAR_BGS_JIGGY, + FILEPROG_110_SANDCASTLE_CCC_JIGGY_PODIUM, + FILEPROG_111_SANDCASTLE_REMOVE_GRILL_AND_HAT_FROM_STATUE, + FILEPROG_112_SANDCASTLE_REMOVE_ICE, + FILEPROG_113_SANDCASTLE_OPEN_BGS, + FILEPROG_114_SANDCASTLE_REMOVE_BREAKABLE_WALLS, + FILEPROG_115_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED, + FILEPROG_116_SANDCASTLE_OPEN_GV, + FILEPROG_117_SANDCASTLE_REMOVE_WEBS, + FILEPROG_118_SANDCASTLE_REMOVE_GLASS_EYE, + FILEPROG_119_SANDCASTLE_FLIGHT_UNLOCKED, + FILEPROG_11A_SANDCASTLE_OPEN_FP, + FILEPROG_11B_SANDCASTLE_OPEN_MMM, + FILEPROG_11C_SANDCASTLE_REMOVE_CRYPT_GATE, + FILEPROG_11D_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID, + FILEPROG_11E_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH, + FILEPROG_11F_SANDCASTLE_OPEN_RBB, + FILEPROG_120_SANDCASTLE_REMOVE_GRILL_NEAR_RBB_JIGGY, + FILEPROG_121_SANDCASTLE_REMOVE_TUNNEL_GRILL_NEAR_RBB_JIGGY, + FILEPROG_122_SANDCASTLE_OPEN_CCW, + FILEPROG_123_CHEAT_ENTERED }; enum volatile_flags_e { @@ -2732,14 +2772,21 @@ enum asset_e ASSET_1E0_ANIM_BEE_OW = 0x1e0, ASSET_1E1_ANIM_BEE_DIE, ASSET_1E2_ANIM_BEE_JUMP, + ASSET_1E3_ANIM_UNKNOWN, ASSET_1ED_ANIM_GRAVESTONE_OW = 0x1ED, ASSET_1EE_ANIM_GRAVESTONE_DIE, - ASSET_1F4_ANIM_SHRAPNEL_IDLE = 0x1F4, + ASSET_1F0_ANIM_UNKNOWN = 0x1F0, + ASSET_1F1_ANIM_UNKNOWN, + ASSET_1F2_ANIM_UNKNOWN, + ASSET_1F3_ANIM_UNKNOWN, + ASSET_1F4_ANIM_SHRAPNEL_IDLE, ASSET_1F5_ANIM_TRANSITION_FALLING_JIGGIES, + ASSET_217_ANIM_UNKNOWN = 0x217, + ASSET_220_ANIM_SIR_SLUSH_DIE = 0x220, ASSET_221_ANIM_WOZZA_IN_CAVE, @@ -4028,6 +4075,8 @@ enum asset_e ASSET_A84_DIALOG_TURBOTRAINERS_LEARN, ASSET_A85_DIALOG_TURBOTRAINERS_REFRESHER, + ASSET_ADC_DIALOG_UNKNOWN = 0xadc, + ASSET_ADE_TEXT_LOGGO_AS_BEAR = 0xade, ASSET_ADF_TEXT_ENTER_LOGGO, ASSET_AE0_TEXT_EXIT_LOGGO, @@ -4246,6 +4295,8 @@ enum asset_e ASSET_F64_DIALOG_NOTEDOORS_LEARN = 0xf64, ASSET_F65_DIALOG_NOTEDOORS_REFRESHER, + ASSET_F66_DIALOG_UNKNOWN, + ASSET_F67_DIALOG_UNKNOWN, ASSET_F79_TEXT_UNKNOWN = 0xf79, ASSET_F7A_TEXT_UNKNOWN, diff --git a/include/functions.h b/include/functions.h index 244ecfcf..2cc7fedb 100644 --- a/include/functions.h +++ b/include/functions.h @@ -416,7 +416,7 @@ void func_8030EBC8(enum sfx_e uid, f32 arg1, f32 arg2, s32 arg3, s32 arg4); void func_8030EC20(enum sfx_e uid, f32 arg1, f32 arg2, u32 arg3, u32 arg4); u8 func_8030ED2C(enum sfx_e uid, s32 arg1); -void fileProgressFlag_setN(s32, s32, s32); +void fileProgressFlag_setN(enum file_progress_e, s32, s32); Actor *marker_getActorAndRotation(ActorMarker *marker, f32 rotation[3]); Actor *func_80325934(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *actor_drawFullDepth(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); @@ -560,11 +560,11 @@ extern void marker_setActorUpdateFunc(ActorMarker *marker, ActorUpdateFunc metho 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); -extern s32 volatileFlag_getN(s32 index, s32 numBits); -extern s32 volatileFlag_getAndSet(s32 index, s32 arg1); -extern void volatileFlag_set(s32 index, s32 set); -extern void volatileFlag_setN(s32 startIndex, s32 set, s32 length); +extern s32 volatileFlag_get(enum volatile_flags_e); +extern s32 volatileFlag_getN(enum volatile_flags_e index, s32 numBits); +extern s32 volatileFlag_getAndSet(enum volatile_flags_e index, s32 arg1); +extern void volatileFlag_set(enum volatile_flags_e index, s32 set); +extern void volatileFlag_setN(enum volatile_flags_e startIndex, s32 set, s32 length); extern void itemscore_noteScores_clear(void); extern s32 itemscore_noteScores_get(enum level_e lvl_id); diff --git a/include/prop.h b/include/prop.h index a147b9be..b7e95dbb 100644 --- a/include/prop.h +++ b/include/prop.h @@ -230,7 +230,7 @@ typedef struct actor_s{ u32 unkF4_22:1; u32 initialized:1; //unkF4_21; u32 unkF4_20:12; - u32 unkF4_8:9; + u32 unkF4_8:9; // is used to determine file progress related stuff, can also be a file_progress_e f32 stored_animctrl_subrangeMin; //animCtrl_SubRangeStart f32 stored_animctrl_subrangeMax; //animCtrl_SubRangeEnd ActorMarker *unk100; diff --git a/src/BGS/ch/code_2270.c b/src/BGS/ch/code_2270.c index aed2229f..28ec6c82 100644 --- a/src/BGS/ch/code_2270.c +++ b/src/BGS/ch/code_2270.c @@ -255,7 +255,7 @@ void func_80388FC0(Actor *this){ ActorLocal_Tiptup *local; local = (ActorLocal_Tiptup *)&this->local; - fileProgressFlag_setN(0, local->unkA, 2); + fileProgressFlag_setN(FILEPROG_0_UNKNOWN, local->unkA, 2); vector_free(local->unk4); } @@ -291,7 +291,7 @@ void chTiptup_update(Actor *this){ unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8); unqPtr->unk8 = 0; unqPtr->unk9 = 0; - unqPtr->unkA = fileProgressFlag_getN(0,2); + unqPtr->unkA = fileProgressFlag_getN(FILEPROG_0_UNKNOWN, 2); unqPtr->unkB = 0; unqPtr->unkC = 0.0f; if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){ diff --git a/src/CCW/code_1B20.c b/src/CCW/code_1B20.c index afeb3639..e80eaf1c 100644 --- a/src/CCW/code_1B20.c +++ b/src/CCW/code_1B20.c @@ -8,7 +8,7 @@ typedef struct{ u8 unk3; s16 unk4; s16 unk6; - s16 unk8; + s16 unk8; // enum file_progress_e s16 unkA; }Struct_CCW_1B20_0; diff --git a/src/CCW/code_3310.c b/src/CCW/code_3310.c index 7a2b7391..0c9e695f 100644 --- a/src/CCW/code_3310.c +++ b/src/CCW/code_3310.c @@ -11,8 +11,8 @@ typedef struct { typedef struct { s16 map_id; - s16 unk2; - s16 unk4; + s16 unk2; // enum file_progress_e + s16 unk4; // enum file_progress_e s16 unk6; Struct_CCW_3310_1 *unk8; s16 unkC; diff --git a/src/FP/ch/xmastree.c b/src/FP/ch/xmastree.c index 9d5aea68..48b3ad8a 100644 --- a/src/FP/ch/xmastree.c +++ b/src/FP/ch/xmastree.c @@ -18,7 +18,7 @@ ActorInfo chXmasTree = { Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *this = marker_getActor(marker); func_8033A45C(5, this->unk38_31); - func_8033A45C(6, fileProgressFlag_get(0x13) && !func_8033A0F0(5)); + func_8033A45C(6, fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME) && !func_8033A0F0(5)); return actor_draw(marker, gfx, mtx, vtx); } @@ -100,7 +100,7 @@ void chXmasTree_update(Actor *this){ } __spawnQueue_add_0(__chXmasTree_spawnSwitch); __spawnQueue_add_1((GenFunction_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker)); - if(fileProgressFlag_get(0x13)){ + if(fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)){ __chXmasTree_80386F84(this); mapSpecificFlags_set(2, FALSE); } @@ -115,7 +115,7 @@ void chXmasTree_update(Actor *this){ switch(this->state){ case 1: // L80387268 __chXmasTree_80386EF4(this, 0); - if(fileProgressFlag_get(0x13)){ + if(fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)){ __chXmasTree_80386F84(this); } break; diff --git a/src/TTC/code_3E30.c b/src/TTC/code_3E30.c index 97e2cf1e..6b17a88b 100644 --- a/src/TTC/code_3E30.c +++ b/src/TTC/code_3E30.c @@ -319,7 +319,7 @@ void func_8038AC48(LetterFloorTile *arg0) { D_8038D720.unk8 = 2U; D_8038D720.unkC = 0.0f; mapSpecificFlags_set(1, TRUE); - fileProgressFlag_set(0xFA, TRUE); + fileProgressFlag_set(FILEPROG_FA_UNKNOWN, TRUE); func_8030E2C4(D_8038D720.sfxsourceIdx); func_8038A258(2); } else if (var_v0 & 0xE) { @@ -612,11 +612,11 @@ u32 func_8038B600(void) { return var_a3; } -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){ +void TTC_func_8038B6D4(s32 arg0, s32 secretCodeIndex, s32 arg2, enum file_progress_e progress_flag, s32 prog_val, s32 prog_bit_size, enum file_progress_e arg6){ if( ((arg2 + 20 == secretCodesTable[secretCodeIndex].id) && volatileFlag_get(arg2)) || arg0 == 3 ){ - fileProgressFlag_setN(prog_id, prog_val, prog_bit_size); + fileProgressFlag_setN(progress_flag, prog_val, prog_bit_size); if(arg6){ fileProgressFlag_set(arg6, TRUE); } diff --git a/src/core2/ba/marker.c b/src/core2/ba/marker.c index ff8185e2..2782353d 100644 --- a/src/core2/ba/marker.c +++ b/src/core2/ba/marker.c @@ -195,7 +195,7 @@ void __baMarker_8028BAB0(enum jiggy_e jiggy_id, s32 arg1, s32 arg2, s32 arg3){ } // arg1 - if bit 0x400000 is set, it's a volatile flag, else it's a file progress flag (for witch switches) -void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6){ +void __baMarker_8028BB1C(s32 arg0, enum file_progress_e progress_flag, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6){ u32 sp24; if(arg0 != 1) return; @@ -203,9 +203,9 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a if(func_8028ECAC() == 1) return; - // if bit 0x400000 of arg1 is set, it's a volatile flag, else it's a file progress flag (for witch switches) - if(arg1 & 0x400000){ - sp24 = arg1 + 0xFFC00000; // weird truncing + // if bit 0x400000 of fileProgressFlag is set, it's a volatile flag, else it's a file progress flag (for witch switches) + if(progress_flag & 0x400000){ + sp24 = progress_flag + 0xFFC00000; // weird truncing if(!volatileFlag_get(sp24)){ volatileFlag_set(sp24, 1); func_8030E6D4(SFX_90_SWITCH_PRESS); @@ -214,8 +214,8 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a } } else{//L8028BBB8 - if(!fileProgressFlag_get(arg1)){ - fileProgressFlag_set(arg1, 1); + if(!fileProgressFlag_get(progress_flag)){ + fileProgressFlag_set(progress_flag, 1); func_8030E6D4(SFX_90_SWITCH_PRESS); volatileFlag_set(VOLATILE_FLAG_BF, 1); func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6); diff --git a/src/core2/ch/snowman.c b/src/core2/ch/snowman.c index 50e179ec..de5f7bb0 100644 --- a/src/core2/ch/snowman.c +++ b/src/core2/ch/snowman.c @@ -257,7 +257,7 @@ void chSnowman_update(Actor *this){ else if( map_get() != MAP_27_FP_FREEZEEZY_PEAK || func_8038DD34(local->unk0) == 0 - || fileProgressFlag_get(0x13) + || fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME) ){//L802E2318 if(0.0 < local->unk4){ if( (globalTimer_getTime() & 1) diff --git a/src/core2/code_47BD0.c b/src/core2/code_47BD0.c index 06bed9a5..9b4fb7fd 100644 --- a/src/core2/code_47BD0.c +++ b/src/core2/code_47BD0.c @@ -6,7 +6,7 @@ extern void func_8030DBFC(u32, f32, f32, f32); extern bool func_80309DBC(f32[3], f32[3], f32, f32 sp54[3], s32, s32); -extern void fileProgressFlag_set(s32, bool); +extern void fileProgressFlag_set(enum file_progress_e, bool); extern void sfxsource_set_fade_distances(u8, f32, f32); extern void sfxsource_set_position(u8, f32[3]); extern void func_8030E2C4(u8); diff --git a/src/core2/code_4A6F0.c b/src/core2/code_4A6F0.c index b3ac781c..d09a2e69 100644 --- a/src/core2/code_4A6F0.c +++ b/src/core2/code_4A6F0.c @@ -428,7 +428,7 @@ void chMumbo_update(Actor *this) { case 7: //L802D2704 chMumbo_func_802D186C(this); - if (volatileFlag_get(FILEPROG_11_HAS_MET_MUMBO) == 0) { + if (volatileFlag_get(VOLATILE_FLAG_11) == 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) { gcdialog_showText(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL); - volatileFlag_set(FILEPROG_11_HAS_MET_MUMBO, TRUE); + volatileFlag_set(VOLATILE_FLAG_11, TRUE); } } actor_loopAnimation(this); @@ -444,7 +444,7 @@ void chMumbo_update(Actor *this) { case 8: //L802D2790 chMumbo_func_802D186C(this); - if (volatileFlag_get(FILEPROG_12_HAS_TRANSFORMED_BEFORE) == 0) { + if (volatileFlag_get(VOLATILE_FLAG_12) == 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) { gcdialog_showText(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL); - volatileFlag_set(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE); + volatileFlag_set(VOLATILE_FLAG_12, TRUE); } } actor_loopAnimation(this); diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 28a92ae6..e371d3c2 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -13,7 +13,7 @@ extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32); extern void ml_vec3f_assign(f32[3], f32, f32, f32); extern void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6); extern void func_80319EA4(void); -extern void fileProgressFlag_set(s32, bool); +extern void fileProgressFlag_set(enum file_progress_e, bool); void func_802D3D54(Actor *this); void func_802D3DA4(Actor *this); @@ -50,7 +50,7 @@ s32 D_8036768C = 0; s32 D_80367690 = 0; s32 D_80367694 = 0; //enum map_e s32 D_80367698 = 0; -s32 D_8036769C = 0; //enum file_progress_e +enum file_progress_e D_8036769C = 0; s32 D_803676A0 = 0; //enum actor_e f32 D_803676A4 = 0.0f; s32 D_803676A8 = 0; @@ -59,26 +59,26 @@ u8 D_803676AC = 0; ActorAnimationInfo D_803676B0[] = { {0x000, 0.0f}, {0x000, 0.0f}, - {0x0D4, 0.15f}, - {0x0D5, 0.5f}, + {ASSET_D4_ANIM_SWITCH_DOWN, 0.15f}, + {ASSET_D5_ANIM_SWITCH_UP, 0.5f}, {0x000, 0.0f}, {0x000, 0.0f}, - {0x0D4, 0.15f}, - {0x0D5, 0.5f}, - {0x0D5, 1e+8f}, - {0x1E3, 0.73f}, - {0x1E3, 1e+8f}, - {0x1F0, 1.0f}, - {0x1F1, 0.7f}, - {0x1F1, 1e+8f}, - {0x1F2, 1.0f}, - {0x1F3, 0.4f}, - {0x1F3, 1e+8f}, + {ASSET_D4_ANIM_SWITCH_DOWN, 0.15f}, + {ASSET_D5_ANIM_SWITCH_UP, 0.5f}, + {ASSET_D5_ANIM_SWITCH_UP, 1e+8f}, + {ASSET_1E3_ANIM_UNKNOWN, 0.73f}, + {ASSET_1E3_ANIM_UNKNOWN, 1e+8f}, + {ASSET_1F0_ANIM_UNKNOWN, 1.0f}, + {ASSET_1F1_ANIM_UNKNOWN, 0.7f}, + {ASSET_1F1_ANIM_UNKNOWN, 1e+8f}, + {ASSET_1F2_ANIM_UNKNOWN, 1.0f}, + {ASSET_1F3_ANIM_UNKNOWN, 0.4f}, + {ASSET_1F3_ANIM_UNKNOWN, 1e+8f}, {0x000, 0.0f}, - {0x217, 1e+8f}, - {0x217, 0.3f}, - {0x217, 1e+8f}, - {0x217, 0.3f} + {ASSET_217_ANIM_UNKNOWN, 1e+8f}, + {ASSET_217_ANIM_UNKNOWN, 0.3f}, + {ASSET_217_ANIM_UNKNOWN, 1e+8f}, + {ASSET_217_ANIM_UNKNOWN, 0.3f} }; ActorInfo D_80367760 = { 0x26E, 0x2D9, 0x3B4, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; @@ -99,7 +99,20 @@ ActorInfo D_80367958 = { MARKER_162_BGS_WITCH_SWITCH, ACTOR_257_BGS_WITCH_SWITCH ActorInfo D_8036797C = { MARKER_161_GV_WITCH_SWITCH, ACTOR_256_GV_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C0C, func_80326224, actor_draw, 0, 0, 0.0f, 0}; s32 D_803679A0[4] = {0x87, 0x87, 0x87, 0xA0}; -s16 D_803679B0[] = {0x5, 0x90, 0xA, 0x93, 0xF,0x92, 0x14, 0x91, 0x19, 0x94, -1}; +s16 D_803679B0[] = { + FILEPROG_5_BLUE_EGG_TEXT, + FILEPROG_90_PAID_TERMITE_COST, + FILEPROG_A_HONEYCOMB_TEXT, + FILEPROG_93_PAID_CROC_COST, + FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, + FILEPROG_92_PAID_WALRUS_COST, + FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER, + FILEPROG_91_PAID_PUMPKIN_COST, + FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED, + FILEPROG_94_PAID_BEE_COST, + -1 +}; + Struct_core2_4C020_0 D_803679C8[] = { {0, 600, 1200, 1900}, {-580, 0, 1550, 2200}, @@ -648,7 +661,7 @@ void func_802D4A9C(Actor *this, s32 arg1){ func_802D4928(this, arg1, 2, 3); } -void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) { +void func_802D4AC0(Actor *this, s32 arg1, enum file_progress_e arg2) { if (fileProgressFlag_get(arg2)) { if (arg1 & 0x800000) { fileProgressFlag_set(arg1 + 0xFF800000, 1); diff --git a/src/core2/code_53A10.c b/src/core2/code_53A10.c index e8a644fc..05ea8e27 100644 --- a/src/core2/code_53A10.c +++ b/src/core2/code_53A10.c @@ -15,8 +15,8 @@ ActorInfo D_80367E70= { /* .code */ void func_802DA9A0(ActorMarker *caller, enum asset_e text_id, s32 arg2){ - s32 flag; - s32 tmp; + enum file_progress_e flag; + enum file_progress_e tmp; if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){ flag = FILEPROG_15_ENTER_MMM_TEXT; } @@ -32,9 +32,9 @@ void func_802DA9A0(ActorMarker *caller, enum asset_e text_id, s32 arg2){ } void func_802DAA14(Actor *this){ - s32 flag; - s32 tmp; - s32 text_id; + enum file_progress_e flag; + s32 tmp; // file_progress_e OR asset_e + enum asset_e text_id; if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){ marker_despawn(this->marker); @@ -69,13 +69,13 @@ void func_802DAA14(Actor *this){ if(!this->has_met_before){ if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){ - text_id = 0xadc; + text_id = ASSET_ADC_DIALOG_UNKNOWN; } else{ if(map_get() == MAP_69_GL_MM_LOBBY) - tmp = 0xf66; + tmp = ASSET_F66_DIALOG_UNKNOWN; else - tmp = 0xf67; + tmp = ASSET_F67_DIALOG_UNKNOWN; text_id = tmp; } gcdialog_showText(text_id, 4, NULL, this->marker, func_802DA9A0, NULL); diff --git a/src/core2/code_956B0.c b/src/core2/code_956B0.c index 35b85a1c..0083123f 100644 --- a/src/core2/code_956B0.c +++ b/src/core2/code_956B0.c @@ -8,7 +8,7 @@ extern void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2); 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 fileProgressFlag_set(enum file_progress_e index, s32 set); extern void ml_vec3h_to_vec3f(f32 *, s32); extern NodeProp *func_80304ED0(void*, f32 *); extern void func_8031CD44(s32, s32, f32, f32, s32); @@ -56,9 +56,9 @@ bool cutscene_skipGameOverCutsceneCheck(void) { sp24 = func_8024E698(0); if (mapSpecificFlags_get(0) != 0) { - fileProgressFlag_set(0xE1, 1); + fileProgressFlag_set(FILEPROG_E1_UNKNOWN, 1); } - if ((sp24 == 1) && fileProgressFlag_get(0xE1) && !gctransition_8030BDC0()) { + if ((sp24 == 1) && fileProgressFlag_get(FILEPROG_E1_UNKNOWN) && !gctransition_8030BDC0()) { if (!mapSpecificFlags_get(0xC)) { mapSpecificFlags_set(0xC, TRUE); func_802DC528(0, 0); @@ -302,7 +302,7 @@ void warp_gvEnterWaterPyramidUpper(s32 arg0, s32 arg1) { } void warp_gvEnterMazePyramid(s32 arg0, s32 arg1) { - if (fileProgressFlag_getN(0xF8, 2) == 3) { + if (fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3) { func_8031CC8C(arg0, 0x1401); } } diff --git a/src/core2/code_98CB0.c b/src/core2/code_98CB0.c index d34e9f17..2cb555f1 100644 --- a/src/core2/code_98CB0.c +++ b/src/core2/code_98CB0.c @@ -1,16 +1,17 @@ #include #include "functions.h" #include "variables.h" +#include "enums.h" void func_8031FFAC(void); -void fileProgressFlag_set(s32 index, s32 set); +void fileProgressFlag_set(enum file_progress_e index, s32 set); s32 bitfield_get_bit(u8 *array, s32 index); s32 bitfield_get_n_bits(u8 *array, s32 offset, s32 numBits); 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 volatileFlag_set(enum volatile_flags_e index, s32 set); +s32 fileProgressFlag_getN(enum file_progress_e offset, s32 numBits); void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2); void ml_vec3h_to_vec3f(f32 *, s32); void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *); @@ -109,11 +110,11 @@ bool fileProgressFlag_get(enum file_progress_e index) { return bitfield_get_bit(gFileProgressFlags.unk8, index); } -s32 fileProgressFlag_getN(s32 offset, s32 numBits) { +s32 fileProgressFlag_getN(enum file_progress_e offset, s32 numBits) { return bitfield_get_n_bits(gFileProgressFlags.unk8, offset, numBits); } -s32 fileProgressFlag_getAndSet(s32 index, s32 set) { +s32 fileProgressFlag_getAndSet(enum file_progress_e index, s32 set) { s32 ret; ret = fileProgressFlag_get(index); @@ -131,13 +132,13 @@ void func_8031FFAC(void) { func_8031FEC0(); } -void fileProgressFlag_set(s32 index, s32 set) { +void fileProgressFlag_set(enum file_progress_e index, s32 set) { bitfield_set_bit(gFileProgressFlags.unk8, index, set); func_8031FC40(); func_8031FEC0(); } -void fileProgressFlag_setN(s32 startIndex, s32 set, s32 length) { +void fileProgressFlag_setN(enum file_progress_e startIndex, s32 set, s32 length) { bitfield_set_n_bits(gFileProgressFlags.unk8, startIndex, set, length); func_8031FC40(); func_8031FEC0(); @@ -243,15 +244,15 @@ void func_803203A0(void) { *obscured_addr = func_80320320(); } -s32 volatileFlag_get(s32 index) { +s32 volatileFlag_get(enum volatile_flags_e index) { return bitfield_get_bit(gVolatileFlags.unk8, index); } -s32 volatileFlag_getN(s32 index, s32 numBits) { +s32 volatileFlag_getN(enum volatile_flags_e index, s32 numBits) { return bitfield_get_n_bits(gVolatileFlags.unk8, index, numBits); } -s32 volatileFlag_getAndSet(s32 index, s32 arg1) { +s32 volatileFlag_getAndSet(enum volatile_flags_e index, s32 arg1) { s32 temp_v0; temp_v0 = volatileFlag_get(index); @@ -268,13 +269,13 @@ void volatileFlag_clear(void) { func_803203A0(); } -void volatileFlag_set(s32 index, s32 set) { +void volatileFlag_set(enum volatile_flags_e index, s32 set) { bitfield_set_bit(gVolatileFlags.unk8, index, set); func_803202D0(); func_803203A0(); } -void volatileFlag_setN(s32 startIndex, s32 set, s32 length) { +void volatileFlag_setN(enum volatile_flags_e startIndex, s32 set, s32 length) { bitfield_set_n_bits(gVolatileFlags.unk8, startIndex, set, length); func_803202D0(); func_803203A0(); diff --git a/src/core2/code_B5040.c b/src/core2/code_B5040.c index 6e291afd..e41a75d4 100644 --- a/src/core2/code_B5040.c +++ b/src/core2/code_B5040.c @@ -6,8 +6,8 @@ typedef struct { - s16 unk0; - s16 unk2; + s16 unk0; // enum volatile_flags_e + s16 unk2; // enum file_progress_e }Struct_B5040; void savedata_clear(u8 *savedata); @@ -15,43 +15,43 @@ s32 savedata_verify(s32 arg0, SaveData *savedata); /* .data */ Struct_B5040 D_80370A20[] = { - {0x66, 0xFF}, - {0x67, 0x100}, - {0x68, 0x101}, - {0x69, 0x102}, - {0x6A, 0x103}, - {0x6B, 0x104}, - {0x6C, 0x105}, - {0x6D, 0x106}, - {0x6E, 0x107}, - {0x6F, 0x108}, - {0x70, 0x109}, - {0x71, 0x10A}, - {0x72, 0x10B}, - {0x7D, 0x10C}, - {0x7E, 0x10D}, - {0x7F, 0x10E}, - {0x80, 0x10F}, - {0x81, 0x110}, - {0x82, 0x111}, - {0x83, 0x112}, - {0x84, 0x113}, - {0x85, 0x114}, - {0x86, 0x115}, - {0x87, 0x116}, - {0x88, 0x117}, - {0x89, 0x118}, - {0x8A, 0x119}, - {0x8B, 0x11A}, - {0x8C, 0x11B}, - {0x8D, 0x11C}, - {0x8E, 0x11D}, - {0x8F, 0x11E}, - {0x90, 0x11F}, - {0x91, 0x120}, - {0x92, 0x121}, - {0x93, 0x122}, - {0x65, 0x123}, + {VOLATILE_FLAG_66_SANDCASTLE_OPEN_DOOR_TWO, FILEPROG_FF_SANDCASTLE_OPEN_DOOR_TWO}, + {VOLATILE_FLAG_67_SANDCASTLE_OPEN_DOOR_THREE, FILEPROG_100_SANDCASTLE_OPEN_DOOR_THREE}, + {VOLATILE_FLAG_68_SANDCASTLE_OPEN_DOOR_FOUR, FILEPROG_101_SANDCASTLE_OPEN_DOOR_FOUR}, + {VOLATILE_FLAG_69_SANDCASTLE_OPEN_DOOR_FIVE, FILEPROG_102_SANDCASTLE_OPEN_DOOR_FIVE}, + {VOLATILE_FLAG_6A_SANDCASTLE_OPEN_DOOR_SIX, FILEPROG_103_SANDCASTLE_OPEN_DOOR_SIX}, + {VOLATILE_FLAG_6B_SANDCASTLE_OPEN_DOOR_SEVEN, FILEPROG_104_SANDCASTLE_OPEN_DOOR_SEVEN}, + {VOLATILE_FLAG_6C_SANDCASTLE_PUZZLE_COMPLETE_CC, FILEPROG_105_SANDCASTLE_PUZZLE_COMPLETE_CC}, + {VOLATILE_FLAG_6D_SANDCASTLE_PUZZLE_COMPLETE_BGS, FILEPROG_106_SANDCASTLE_PUZZLE_COMPLETE_BGS}, + {VOLATILE_FLAG_6E_SANDCASTLE_PUZZLE_COMPLETE_FP, FILEPROG_107_SANDCASTLE_PUZZLE_COMPLETE_FP}, + {VOLATILE_FLAG_6F_SANDCASTLE_PUZZLE_COMPLETE_GV, FILEPROG_108_SANDCASTLE_PUZZLE_COMPLETE_GV}, + {VOLATILE_FLAG_70_SANDCASTLE_PUZZLE_COMPLETE_MMM, FILEPROG_109_SANDCASTLE_PUZZLE_COMPLETE_MMM}, + {VOLATILE_FLAG_71_SANDCASTLE_PUZZLE_COMPLETE_RBB, FILEPROG_10A_SANDCASTLE_PUZZLE_COMPLETE_RBB}, + {VOLATILE_FLAG_72_SANDCASTLE_PUZZLE_COMPLETE_CCC, FILEPROG_10B_SANDCASTLE_PUZZLE_COMPLETE_CCC}, + {VOLATILE_FLAG_7D_SANDCASTLE_RAISE_PIPES_TO_CC, FILEPROG_10C_SANDCASTLE_RAISE_PIPES_TO_CC}, + {VOLATILE_FLAG_7E_SANDCASTLE_RAISE_PIPE_TO_BRENTILDA, FILEPROG_10D_SANDCASTLE_RAISE_PIPE_TO_BRENTILDA}, + {VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC, FILEPROG_10E_SANDCASTLE_OPEN_CC}, + {VOLATILE_FLAG_80_SANDCASTLE_REMOVE_GRILL_NEAR_BGS_JIGGY, FILEPROG_10F_SANDCASTLE_REMOVE_GRILL_NEAR_BGS_JIGGY}, + {VOLATILE_FLAG_81_SANDCASTLE_CCC_JIGGY_PODIUM, FILEPROG_110_SANDCASTLE_CCC_JIGGY_PODIUM}, + {VOLATILE_FLAG_82_SANDCASTLE_REMOVE_GRILL_AND_HAT_FROM_STATUE, FILEPROG_111_SANDCASTLE_REMOVE_GRILL_AND_HAT_FROM_STATUE}, + {VOLATILE_FLAG_83_SANDCASTLE_REMOVE_ICE, FILEPROG_112_SANDCASTLE_REMOVE_ICE}, + {VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS, FILEPROG_113_SANDCASTLE_OPEN_BGS}, + {VOLATILE_FLAG_85_SANDCASTLE_REMOVE_BREAKABLE_WALLS, FILEPROG_114_SANDCASTLE_REMOVE_BREAKABLE_WALLS}, + {VOLATILE_FLAG_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED, FILEPROG_115_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED}, + {VOLATILE_FLAG_87_SANDCASTLE_OPEN_GV, FILEPROG_116_SANDCASTLE_OPEN_GV}, + {VOLATILE_FLAG_88_SANDCASTLE_REMOVE_WEBS, FILEPROG_117_SANDCASTLE_REMOVE_WEBS}, + {VOLATILE_FLAG_89_SANDCASTLE_REMOVE_GLASS_EYE, FILEPROG_118_SANDCASTLE_REMOVE_GLASS_EYE}, + {VOLATILE_FLAG_8A_SANDCASTLE_FLIGHT_UNLOCKED, FILEPROG_119_SANDCASTLE_FLIGHT_UNLOCKED}, + {VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP, FILEPROG_11A_SANDCASTLE_OPEN_FP}, + {VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM, FILEPROG_11B_SANDCASTLE_OPEN_MMM}, + {VOLATILE_FLAG_8D_SANDCASTLE_REMOVE_CRYPT_GATE, FILEPROG_11C_SANDCASTLE_REMOVE_CRYPT_GATE}, + {VOLATILE_FLAG_8E_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID, FILEPROG_11D_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID}, + {VOLATILE_FLAG_8F_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH, FILEPROG_11E_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH}, + {VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB, FILEPROG_11F_SANDCASTLE_OPEN_RBB}, + {VOLATILE_FLAG_91_SANDCASTLE_REMOVE_GRILL_NEAR_RBB_JIGGY, FILEPROG_120_SANDCASTLE_REMOVE_GRILL_NEAR_RBB_JIGGY}, + {VOLATILE_FLAG_92_SANDCASTLE_REMOVE_TUNNEL_GRILL_NEAR_RBB_JIGGY, FILEPROG_121_SANDCASTLE_REMOVE_TUNNEL_GRILL_NEAR_RBB_JIGGY}, + {VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW, FILEPROG_122_SANDCASTLE_OPEN_CCW}, + {VOLATILE_FLAG_65_CHEAT_ENTERED, FILEPROG_123_CHEAT_ENTERED}, {-1, 0x000} }; diff --git a/src/core2/code_C4320.c b/src/core2/code_C4320.c index e1856afc..c475b7fd 100644 --- a/src/core2/code_C4320.c +++ b/src/core2/code_C4320.c @@ -54,7 +54,18 @@ extern s32 D_80371F90 = 0x7; //bottles bonus demo count extern s32 D_80371F94 = 1; extern s32 D_80371F98 = 3; extern s32 D_80371F9C = 1; -extern u16 D_80371FA0[] = { 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC }; +extern u16 D_80371FA0[] = { + FILEPROG_3_MUSIC_NOTE_TEXT, + FILEPROG_4_MUMBO_TOKEN_TEXT, + FILEPROG_5_BLUE_EGG_TEXT, + FILEPROG_6_RED_FEATHER_TEXT, + FILEPROG_7_GOLD_FEATHER_TEXT, + FILEPROG_8_ORANGE_TEXT, + FILEPROG_9_GOLD_BULLION_TEXT, + FILEPROG_A_HONEYCOMB_TEXT, + FILEPROG_B_EMPTY_HONEYCOMB_TEXT, + FILEPROG_C_EXTRA_LIFE_TEXT +}; //EB030: /* .bss */ diff --git a/src/lair/code_0.c b/src/lair/code_0.c index 4901b5b3..3fcdb7c2 100644 --- a/src/lair/code_0.c +++ b/src/lair/code_0.c @@ -178,12 +178,12 @@ s16 D_80393454[] = { FILEPROG_37_MMM_OPEN, FILEPROG_38_RBB_OPEN, FILEPROG_39_CCW_OPEN, - 0 + FILEPROG_0_UNKNOWN }; s16 D_80393468[] = { - 0, - 0, + VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, + VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC, VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS, VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP, @@ -191,7 +191,7 @@ s16 D_80393468[] = { VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM, VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB, VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW, - 0 + VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ }; s16 D_8039347C[] = {50, 180, 260, 350, 450, 640, 765, 810, 828, 846, 864, 882}; //notedoor_notes_required_to_open @@ -662,7 +662,7 @@ void func_80387730(Actor *this) { this->alpha_124_19 = 0xFF; this->unk1C[1] = 0.0f; this->unk1C[2] = 3.5f; - if (fileProgressFlag_get(this->unkF4_8 + 0x39)) { + if (fileProgressFlag_get(this->unkF4_8 + FILEPROG_39_CCW_OPEN)) { marker_despawn(this->marker); return; } @@ -681,7 +681,7 @@ void func_80387730(Actor *this) { this->unk1C[1] = 0.0f; this->unk1C[2] = 3.5f; } - if (!fileProgressFlag_get(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) { + if (!fileProgressFlag_get(this->unkF4_8 + FILEPROG_39_CCW_OPEN) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) { player_getPosition(spAC); if ((ml_distance_vec3f(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) { func_802FACA4(0xC); @@ -711,7 +711,7 @@ void func_80387730(Actor *this) { this->alpha_124_19 -= 7; } if (this->alpha_124_19 == 0) { - fileProgressFlag_set(this->unkF4_8 + 0x39, TRUE); + fileProgressFlag_set(this->unkF4_8 + FILEPROG_39_CCW_OPEN, TRUE); marker_despawn(this->marker); func_8028F918(0); func_8028F66C(BS_INTR_35); @@ -825,14 +825,14 @@ void func_80387F1C(void) } } -void func_80387F78(Actor *this, u32 flag) +void func_80387F78(Actor *this, enum file_progress_e progress_flag) { if (this->unk1C[0] != 2.f) { if (this->unk1C[0] != 0 && fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE)) { - u32 flagState = fileProgressFlag_get(flag); - fileProgressFlag_set(flag, TRUE); + u32 flagState = fileProgressFlag_get(progress_flag); + fileProgressFlag_set(progress_flag, TRUE); if (flagState == FALSE && !jiggyscore_isSpawned(JIGGY_35_LAIR_CC_WITCH_SWITCH) @@ -844,7 +844,7 @@ void func_80387F78(Actor *this, u32 flag) } } - if (fileProgressFlag_get(flag)) + if (fileProgressFlag_get(progress_flag)) { this->position_y -= 4.5; // f64 @@ -966,12 +966,12 @@ void func_803882B0(Actor *this) } } -void func_80388404(enum file_progress_e flag, enum sfx_e sfx, f32 a2, s32 a3) +void func_80388404(enum file_progress_e progress_flag, enum sfx_e sfx, f32 a2, s32 a3) { - if (fileProgressFlag_get(flag) == FALSE) + if (fileProgressFlag_get(progress_flag) == FALSE) func_8030E6A4(sfx, a2, a3); - fileProgressFlag_set(flag, TRUE); + fileProgressFlag_set(progress_flag, TRUE); } void func_80388450(Actor *actor1, Actor *actor2) @@ -1730,7 +1730,7 @@ void func_80389D08(Actor *this) this->volatile_initialized = TRUE; this->lifetime_value = 0; - if (fileProgressFlag_get(0xA5)) + if (fileProgressFlag_get(FILEPROG_A5_LAIR_CRYPT_GATE_OPEN)) { marker_despawn(this->marker); return; diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index 9905582d..4608df2e 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -18,7 +18,7 @@ typedef struct { typedef struct { u8 cost; u8 size_bits; - u16 progress_flag; + u16 progress_flag; // enum file_progress_e }Struct_lair_86F0_0; void func_8038F350(Actor *this, s32 next_state); diff --git a/src/lair/code_9C40.c b/src/lair/code_9C40.c index 0d9c5b25..ed9d28fa 100644 --- a/src/lair/code_9C40.c +++ b/src/lair/code_9C40.c @@ -28,7 +28,7 @@ s32 func_80390084(void) { s32 phi_s1; for(phi_s0 = 0, phi_s1 = 0; phi_s0 < 3; phi_s0++){ - if (fileProgressFlag_get(phi_s0 + 0xAD)) { + if (fileProgressFlag_get(phi_s0 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) { phi_s1++; } } @@ -44,8 +44,8 @@ void func_803900EC(ActorMarker *marker, enum asset_e text_id, s32 arg2){ sp1C = marker->id - 0x16D; func_8028F918(0); - if (!fileProgressFlag_get(sp1C + 0xAD)) { - fileProgressFlag_set(sp1C + 0xAD, 1); + if (!fileProgressFlag_get(sp1C + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) { + fileProgressFlag_set(sp1C + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED, 1); func_8025A6EC(COMUSIC_2B_DING_B, 28000); } } @@ -63,7 +63,8 @@ void func_80390174(ActorMarker *marker, s32 arg1) { this = marker_getActor(marker); sp28 = this->marker->id - 0x16D; func_8028F94C(2, this->position); - if (fileProgressFlag_get(sp28 + 0xAD)) { + if (fileProgressFlag_get(sp28 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) { + // cheato hint texts gcdialog_showText(sp28 + 0xF83, 0xE, this->position, this->marker, func_803900EC, lair_func_803900DC); return; } @@ -106,7 +107,7 @@ void func_803902B8(Actor *this) { } this->unk38_0 = sp58; sp58 = func_80259384(this->position, sp5C, 400.0f); - if (fileProgressFlag_get(sp54 + 0xAD)) { + if (fileProgressFlag_get(sp54 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) { func_8024E55C(0, sp3C); sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04(); } From a9605a685f6b5ccfc7ff02e585014ed20a301266 Mon Sep 17 00:00:00 2001 From: Bl00D4NGEL Date: Wed, 2 Oct 2024 00:15:39 +0200 Subject: [PATCH 10/16] document: change types for volatileFlag_setAndTriggerDialog_x functions --- src/core2/code_CF3E0.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core2/code_CF3E0.c b/src/core2/code_CF3E0.c index af97ebf8..be686261 100644 --- a/src/core2/code_CF3E0.c +++ b/src/core2/code_CF3E0.c @@ -119,16 +119,16 @@ s32 volatileFlag_setAndTriggerDialog(enum volatile_flags_e id, s32 arg1) { } // called for dialogs when banjo is not fast enough to reach a door or jiggy and for NOBONUS text -void volatileFlag_setAndTriggerDialog_0(s32 arg0) { +void volatileFlag_setAndTriggerDialog_0(enum volatile_flags_e arg0) { volatileFlag_setAndTriggerDialog(arg0, 0); } // called for FFQ dialogs -void volatileFlag_setAndTriggerDialog_4(s32 arg0) { +void volatileFlag_setAndTriggerDialog_4(enum volatile_flags_e arg0) { volatileFlag_setAndTriggerDialog(arg0, 4); } // called for WISHYWASHYBANJO dialog -void volatileFlag_setAndTriggerDialog_E(s32 arg0) { +void volatileFlag_setAndTriggerDialog_E(enum volatile_flags_e arg0) { volatileFlag_setAndTriggerDialog(arg0, 0xE); } From f7a084aa10c303170cc161bcdaf4a07e1f802c6f Mon Sep 17 00:00:00 2001 From: Bl00D4NGEL Date: Wed, 2 Oct 2024 01:21:51 +0200 Subject: [PATCH 11/16] fix: volatileFlag_set definition --- src/core2/gc/pauseMenu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core2/gc/pauseMenu.c b/src/core2/gc/pauseMenu.c index 849456fe..72b48cac 100644 --- a/src/core2/gc/pauseMenu.c +++ b/src/core2/gc/pauseMenu.c @@ -26,7 +26,7 @@ typedef struct struct_1A_s { extern void func_802C5994(void); extern void func_802E412C(s32, s32); -void volatileFlag_set(s32, s32); +void volatileFlag_set(enum volatile_flags_e, s32); f32 func_8024DE1C(f32, f32, f32 *, f32 *); void func_80310D2C(void); From dd2611e5956729135e6aaefc2be1376fa517705b Mon Sep 17 00:00:00 2001 From: Bl00D4NGEL Date: Thu, 3 Oct 2024 04:25:14 +0200 Subject: [PATCH 12/16] document: FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, replace FILEPROG_0 usage with NULL where applicable --- include/enums.h | 34 ++++++++++++++++------------------ src/BGS/ch/code_2270.c | 4 ++-- src/core2/ba/marker.c | 14 ++++++++++++++ src/core2/bs/bee.c | 3 ++- src/core2/code_CF3E0.c | 2 +- src/lair/code_0.c | 8 ++++---- 6 files changed, 39 insertions(+), 26 deletions(-) diff --git a/include/enums.h b/include/enums.h index 40705f65..176ad8e9 100644 --- a/include/enums.h +++ b/include/enums.h @@ -14,9 +14,9 @@ #define SPRITE_TYPE_RGBA32 (1 << 11) enum file_progress_e { - FILEPROG_0_UNKNOWN, - FILEPROG_1_UNKNOWN, - FILEPROG_2_UNKNOWN, + FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, + // unused + // unused FILEPROG_3_MUSIC_NOTE_TEXT, FILEPROG_4_MUMBO_TOKEN_TEXT, FILEPROG_5_BLUE_EGG_TEXT, @@ -79,17 +79,17 @@ enum file_progress_e { FILEPROG_46_CCW_WITCH_SWITCH_JIGGY_PRESSED, FILEPROG_47_FP_WITCH_SWITCH_JIGGY_PRESSED, FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN, - // {index=0x49, type="Prog", level=6, name="Pink Cauldron 1 Active"}, - // {index=0x4A, type="Prog", level=6, name="Pink Cauldron 2 Active"}, - // {index=0x4B, type="Prog", level=6, name="Green Cauldron 1 Active"}, - // {index=0x4C, type="Prog", level=6, name="Green Cauldron 2 Active"}, - // {index=0x4D, type="Prog", level=6, name="Red Cauldron 1 Active"}, - // {index=0x4E, type="Prog", level=6, name="Red Cauldron 2 Active"}, - // -- 0x4F - Unused Cauldron Pair? - // -- 0x50 - Unused Cauldron Pair? - // {index=0x51, type="Prog", level=6, name="Yellow Cauldron 1 Active"}, - // {index=0x52, type="Prog", level=6, name="Yellow Cauldron 2 Active"}, - FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED = 0x53, + FILEPROG_49_PINK_CAULDRON_1_ACTIVE, + FILEPROG_4A_PINK_CAULDRON_2_ACTIVE, + FILEPROG_4B_GREEN_CAULDRON_1_ACTIVE, + FILEPROG_4C_GREEN_CAULDRON_2_ACTIVE, + FILEPROG_4D_RED_CAULDRON_1_ACTIVE, + FILEPROG_4E_RED_CAULDRON_2_ACTIVE, + FILEPROG_4F_UNUSED_CAULDRON_1_ACTIVE, + FILEPROG_50_UNUSED_CAULDRON_2_ACTIVE, + FILEPROG_51_YELLOW_CAULDRON_1_ACTIVE, + FILEPROG_52_YELLOW_CAULDRON_2_ACTIVE, + FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED, FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE, FILEPROG_55_FF_BK_SQUARE_INSTRUCTIONS, FILEPROG_56_FF_PICTURE_SQUARE_INSTRUCTIONS, @@ -110,7 +110,6 @@ enum file_progress_e { FILEPROG_76_CCW_PUZZLE_PIECES_PLACED = 0x76, //4 bit FILEPROG_7A_DOG_PUZZLE_PIECES_PLACED = 0x7A, //5 bit FILEPROG_7F_DOUBLE_HEALTH_PUZZLE_PIECES_PLACED = 0x7F, //3 bit - // {index=0x82, unknown} FILEPROG_82_MET_TWINKLIES = 0x82, FILEPROG_83_MAGIC_GET_WEAK_TEXT, FILEPROG_84_MAGIC_ALL_GONE_TEXT, @@ -130,8 +129,8 @@ enum file_progress_e { FILEPROG_92_PAID_WALRUS_COST, FILEPROG_93_PAID_CROC_COST, FILEPROG_94_PAID_BEE_COST, - - FILEPROG_96_MET_BRENTILDA = 0x96, + FILEPROG_95_UNKNOWN, + FILEPROG_96_MET_BRENTILDA, FILEPROG_97_ENTERED_LAIR_TEXT, FILEPROG_98_EXITED_LEVEL_TEXT, FILEPROG_99_PAST_50_NOTE_DOOR_TEXT, @@ -225,7 +224,6 @@ enum file_progress_e { FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM, FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT, FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF8, //2bit - // FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE = 0xF9, //2bit FILEPROG_FA_UNKNOWN = 0xFA, // Something that's set in FF diff --git a/src/BGS/ch/code_2270.c b/src/BGS/ch/code_2270.c index 28ec6c82..c555ab04 100644 --- a/src/BGS/ch/code_2270.c +++ b/src/BGS/ch/code_2270.c @@ -255,7 +255,7 @@ void func_80388FC0(Actor *this){ ActorLocal_Tiptup *local; local = (ActorLocal_Tiptup *)&this->local; - fileProgressFlag_setN(FILEPROG_0_UNKNOWN, local->unkA, 2); + fileProgressFlag_setN(FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, local->unkA, 2); vector_free(local->unk4); } @@ -291,7 +291,7 @@ void chTiptup_update(Actor *this){ unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8); unqPtr->unk8 = 0; unqPtr->unk9 = 0; - unqPtr->unkA = fileProgressFlag_getN(FILEPROG_0_UNKNOWN, 2); + unqPtr->unkA = fileProgressFlag_getN(FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, 2); unqPtr->unkB = 0; unqPtr->unkC = 0.0f; if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){ diff --git a/src/core2/ba/marker.c b/src/core2/ba/marker.c index 06bdeade..1fb03d9f 100644 --- a/src/core2/ba/marker.c +++ b/src/core2/ba/marker.c @@ -391,6 +391,20 @@ void __baMarker_resolveCollision(Prop *other_prop){ if(func_802458E0(spAC, actor, 0x87) == 0) return; volatileFlag_set(VOLATILE_FLAG_1E, 1); + /** + * This should use the following fileprog flags: + * + * FILEPROG_49_PINK_CAULDRON_1_ACTIVE + * FILEPROG_4A_PINK_CAULDRON_2_ACTIVE + * FILEPROG_4B_GREEN_CAULDRON_1_ACTIVE + * FILEPROG_4C_GREEN_CAULDRON_2_ACTIVE + * FILEPROG_4D_RED_CAULDRON_1_ACTIVE + * FILEPROG_4E_RED_CAULDRON_2_ACTIVE + * FILEPROG_4F_UNUSED_CAULDRON_1_ACTIVE + * FILEPROG_50_UNUSED_CAULDRON_2_ACTIVE + * FILEPROG_51_YELLOW_CAULDRON_1_ACTIVE + * FILEPROG_52_YELLOW_CAULDRON_2_ACTIVE + */ if(fileProgressFlag_get(((actor->unkF4_8 - 1) ^ 1) + 0x49)){ actor->unk10_12 = 2; } diff --git a/src/core2/bs/bee.c b/src/core2/bs/bee.c index 52c2831a..2b16d033 100644 --- a/src/core2/bs/bee.c +++ b/src/core2/bs/bee.c @@ -36,7 +36,8 @@ void func_802A0340(void){ } } -// bsBee_inSet +// bsBee_inSet +// move_idx is probably a bs_e int bsbee_inSet(s32 move_idx){ return (move_idx == 0x85) || (move_idx == 0x86) diff --git a/src/core2/code_CF3E0.c b/src/core2/code_CF3E0.c index be686261..b0f2f5b1 100644 --- a/src/core2/code_CF3E0.c +++ b/src/core2/code_CF3E0.c @@ -29,7 +29,7 @@ MapProgressFlagToDialogID fileProgressDialogMap[] = { { FILEPROG_BE_CHEATO_BLUEEGGS, 0xFA8}, { FILEPROG_BF_CHEATO_REDFEATHERS, 0xFA9}, { FILEPROG_C0_CHEATO_GOLDFEATHERS, 0xFAA}, - {0x95, 0xB50}, + { FILEPROG_95_UNKNOWN, 0xB50}, { FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 0xF7B}, { -1, -1} }; diff --git a/src/lair/code_0.c b/src/lair/code_0.c index 3fcdb7c2..ac5aa67e 100644 --- a/src/lair/code_0.c +++ b/src/lair/code_0.c @@ -178,12 +178,12 @@ s16 D_80393454[] = { FILEPROG_37_MMM_OPEN, FILEPROG_38_RBB_OPEN, FILEPROG_39_CCW_OPEN, - FILEPROG_0_UNKNOWN + NULL }; s16 D_80393468[] = { - VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, - VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, + NULL, + NULL, VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC, VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS, VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP, @@ -191,7 +191,7 @@ s16 D_80393468[] = { VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM, VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB, VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW, - VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ + NULL }; s16 D_8039347C[] = {50, 180, 260, 350, 450, 640, 765, 810, 828, 846, 864, 882}; //notedoor_notes_required_to_open From ee5d7e2fd8b2db21288c9ea74ae3dabf4c64f8bc Mon Sep 17 00:00:00 2001 From: Bl00D4NGEL Date: Thu, 3 Oct 2024 04:34:20 +0200 Subject: [PATCH 13/16] fix: add offset in file_progress_e enum --- include/enums.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/enums.h b/include/enums.h index 176ad8e9..33acece9 100644 --- a/include/enums.h +++ b/include/enums.h @@ -17,7 +17,7 @@ enum file_progress_e { FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, // unused // unused - FILEPROG_3_MUSIC_NOTE_TEXT, + FILEPROG_3_MUSIC_NOTE_TEXT = 0x03, FILEPROG_4_MUMBO_TOKEN_TEXT, FILEPROG_5_BLUE_EGG_TEXT, FILEPROG_6_RED_FEATHER_TEXT, From 7a65ed96b34078a9785750adf3d78eedadee35de Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Thu, 3 Oct 2024 23:45:50 +0200 Subject: [PATCH 14/16] Document bundles --- include/enums.h | 42 ++++++++++++++ src/BGS/ch/mudhut.c | 23 +++++--- src/BGS/code_3420.c | 2 +- src/GV/ch/gobi3.c | 2 +- src/MM/ch/hut.c | 14 ++++- src/RBB/code_9670.c | 2 +- src/SM/ch/vegetables.c | 6 +- src/SM/code_5B0.c | 7 ++- src/TTC/ch/clam.c | 16 +++--- src/core2/ch/icecube.c | 2 +- src/core2/code_41FB0.c | 118 +++++++++++++++++----------------------- src/core2/code_9E370.c | 16 +++--- src/core2/code_C0B80.c | 2 +- src/core2/code_D6180.c | 7 ++- src/core2/spawnqueue.c | 16 +++--- src/fight/chfinalboss.c | 4 +- src/lair/code_86F0.c | 2 +- 17 files changed, 162 insertions(+), 119 deletions(-) diff --git a/include/enums.h b/include/enums.h index 543185ca..5b70fac8 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2119,6 +2119,48 @@ enum actor_e ACTOR_3CA_ROCK_TRAPPING_GRUNTY = 0x3CA }; +enum bundle_e { + BUNDLE_0_MM_HUT_MUSIC_NOTE, + BUNDLE_1_MM_HUT_BLUE_EGG, + BUNDLE_2_MM_HUT_GRUBLIN, + BUNDLE_3_MM_HUT_JINJO_GREEN, + BUNDLE_4_MM_HUT_JIGGY, + BUNDLE_5__HONEYCOMB, + BUNDLE_6_MM_HUT_EXTRA_LIFE, + BUNDLE_7__JIGGY, + BUNDLE_8__JIGGY, + BUNDLE_9__JIGGY, + BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD, + BUNDLE_B_BGS_HUT_MUSIC_NOTE, + BUNDLE_C_BGS_HUT_JIGGY, + BUNDLE_D__EMPTY_HONEYCOMB, + BUNDLE_E_YUMYUM_BLUE_EGG, + BUNDLE_F_YUMYUM_RED_FEATHER, + BUNDLE_10__JIGGY, + BUNDLE_11__UNKNOWN, + BUNDLE_12__JIGGY, + BUNDLE_13__MUSIC_NOTE, + BUNDLE_14__HONEYCOMB, + BUNDLE_15__JIGGY, + BUNDLE_16__HONEYCOMB, + BUNDLE_17__HONEYCOMB, + BUNDLE_18__HONEYCOMB, + BUNDLE_19__HONEYCOMB, + BUNDLE_1A__HONEYCOMB, + BUNDLE_1B__HONEYCOMB, + BUNDLE_1C__HONEYCOMB, + BUNDLE_1D__HONEYCOMB, + BUNDLE_1E__JIGGY, + BUNDLE_1F_SM_EMPTY_HONEYCOMB, + BUNDLE_20__UNKOWN, + BUNDLE_21__ICECUBE_B, + BUNDLE_22__HONEYCOMB, + BUNDLE_23__HONEYCOMB, + BUNDLE_24__HONEYCOMB, + BUNDLE_25__HONEYCOMB, + BUNDLE_26__HONEYCOMB +}; + enum bs_e { BS_0_NONE = 0, diff --git a/src/BGS/ch/mudhut.c b/src/BGS/ch/mudhut.c index e2e85ded..d9b81bd5 100644 --- a/src/BGS/ch/mudhut.c +++ b/src/BGS/ch/mudhut.c @@ -8,7 +8,7 @@ extern void player_stateTimer_set(enum state_timer_e, f32); extern f32 player_stateTimer_get(enum state_timer_e); -void spawnQueue_bundle_f32(u32,f32,f32,f32); +Actor *spawnQueue_bundle_f32(u32,f32,f32,f32); void subaddie_set_state(Actor *, u32); /* local declarations */ @@ -24,7 +24,14 @@ ActorAnimationInfo D_80390B30[4] = { {ASSET_4E_ANIM_MUDHUT_SMASH, 1000000.0f} }; -u32 D_80390B50[6] = {0xA, 0xA, 0xB, 0xA, 0xA, 0xC}; +enum bundle_e D_80390B50[6] = { + BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD, + BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD, + BUNDLE_B_BGS_HUT_MUSIC_NOTE, + BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD, + BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD, + BUNDLE_C_BGS_HUT_JIGGY +}; ActorInfo D_80390B68 = {MARKER_D5_BGS_MUD_HUT, ACTOR_C_MUD_HUT, ASSET_7D8_MODEL_MM_HUT_TOP, 0x01, D_80390B30, chmudhut_update, func_80326224, chmudhut_draw, @@ -104,13 +111,11 @@ void chmudhut_update(Actor *this){ func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000); } __spawnQueue_add_1((GenFunction_1)func_8038EB4C, reinterpret_cast(s32, this->marker)); - if(tmp < 5){ - __spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, D_80390B50[tmp], - reinterpret_cast(s32, diffPos[0]), - reinterpret_cast(s32, diffPos[1]), - reinterpret_cast(s32, diffPos[2]) - ); - } else { + + if (tmp < 5) { + __spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, D_80390B50[tmp], reinterpret_cast(s32, diffPos[0]), reinterpret_cast(s32, diffPos[1]), reinterpret_cast(s32, diffPos[2])); + } + else { jiggy_spawn(JIGGY_23_BGS_HUTS, diffPos); } } diff --git a/src/BGS/code_3420.c b/src/BGS/code_3420.c index 36ce96b2..10a5510c 100644 --- a/src/BGS/code_3420.c +++ b/src/BGS/code_3420.c @@ -301,7 +301,7 @@ void func_80389F08(ActorMarker *marker) { if (var_s2 < 3) { bundle_setYaw(vile->yaw + (f32) (i * 30)); bundle_setRandomVelocity(2.0f); - bundle_spawn_f32(6, vile->position); + bundle_spawn_f32(BUNDLE_6_MM_HUT_EXTRA_LIFE, vile->position); var_s2 += 1; } else { item_inc(ITEM_16_LIFE); diff --git a/src/GV/ch/gobi3.c b/src/GV/ch/gobi3.c index 51ad72bb..54d8bc68 100644 --- a/src/GV/ch/gobi3.c +++ b/src/GV/ch/gobi3.c @@ -24,7 +24,7 @@ void __chGobi3_spawnHoneyComb(Actor *this){ TUPLE_ASSIGN(sp18, -6885.0f, 2383.0f, 1335.0f); bundle_setYaw(this->yaw); func_802CA1CC(HONEYCOMB_C_GV_GOBI_3); - bundle_spawn_f32(0xd, sp18); + bundle_spawn_f32(BUNDLE_D__EMPTY_HONEYCOMB, sp18); } void __chGobi3_runaway(ActorMarker *caller, enum asset_e text_id, s32 arg2){ diff --git a/src/MM/ch/hut.c b/src/MM/ch/hut.c index 3992dda0..1f3dc389 100644 --- a/src/MM/ch/hut.c +++ b/src/MM/ch/hut.c @@ -8,7 +8,7 @@ /* extern function declarations */ void bundle_setYaw(f32); -void spawnQueue_bundle_f32(s32, s32, s32, s32); +Actor *spawnQueue_bundle_f32(s32, s32, s32, s32); /* public function declarations */ Actor *chhut_draw(ActorMarker *, Gfx **, Mtx **, Vtx **); @@ -50,7 +50,15 @@ void __chhut_spawnExplosion(ActorMarker *this) { } void chhut_update(Actor *this) { - static s32 D_803898D8[6] = {0, 1, 2, 3, 6, 4}; + static enum bundle_e D_803898D8[6] = { + BUNDLE_0_MM_HUT_MUSIC_NOTE, + BUNDLE_1_MM_HUT_BLUE_EGG, + BUNDLE_2_MM_HUT_GRUBLIN, + BUNDLE_3_MM_HUT_JINJO_GREEN, + BUNDLE_6_MM_HUT_EXTRA_LIFE, + BUNDLE_4_MM_HUT_JIGGY + }; + f32 diff_pos[3]; f32 plyr_pos[3]; @@ -87,7 +95,7 @@ void chhut_update(Actor *this) { bundle_setYaw(this->yaw); if (mm_hut_smash_count < 5) { - __spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, D_803898D8[mm_hut_smash_count], *(s32*)(&diff_pos[0]),*(s32*)(&diff_pos[1]),*(s32*)(&diff_pos[2])); + __spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, D_803898D8[mm_hut_smash_count], *(s32 * )(&diff_pos[0]), *(s32 * )(&diff_pos[1]), *(s32 * )(&diff_pos[2])); } else { jiggy_spawn(JIGGY_5_MM_HUTS, diff_pos); diff --git a/src/RBB/code_9670.c b/src/RBB/code_9670.c index cecded28..3cc5211c 100644 --- a/src/RBB/code_9670.c +++ b/src/RBB/code_9670.c @@ -20,7 +20,7 @@ u8 D_803912B0; void RBB_func_8038FA60(ActorMarker *marker){ Actor *actor = marker_getActor(marker); bundle_setYaw(actor->yaw); - bundle_spawn_f32(6, &actor->position); + bundle_spawn_f32(BUNDLE_6_MM_HUT_EXTRA_LIFE, &actor->position); } void func_8038FA9C(Actor *this, s32 arg1){ diff --git a/src/SM/ch/vegetables.c b/src/SM/ch/vegetables.c index b243ec3c..34730c3d 100644 --- a/src/SM/ch/vegetables.c +++ b/src/SM/ch/vegetables.c @@ -200,11 +200,13 @@ void func_80387C28(Actor * this){ sp30[1] += 50.0f; func_80387910(partEmitMgr_newEmitter(8), sp30, 8); }//L80387D18 - if(this->unk38_31){ + + if (this->unk38_31) { this->position_y += 100.0f; func_802CA1CC(HONEYCOMB_17_SM_COLIWOBBLE); - __spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, 0x1f, reinterpret_cast(s32, this->position_x), reinterpret_cast(s32, this->position_y), reinterpret_cast(s32, this->position_z)); + __spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, BUNDLE_1F_SM_EMPTY_HONEYCOMB, reinterpret_cast(s32, this->position_x), reinterpret_cast(s32, this->position_y), reinterpret_cast(s32, this->position_z)); }//L80387D64 + timed_mapSpecificFlags_setTrue(1.5f, 7); actor_collisionOff(this); if(local->unkC != 3){ diff --git a/src/SM/code_5B0.c b/src/SM/code_5B0.c index cc334c5a..fc6af9fd 100644 --- a/src/SM/code_5B0.c +++ b/src/SM/code_5B0.c @@ -5,7 +5,7 @@ #include "prop.h" void func_803869A0(Actor*, f32, f32); -void spawnQueue_bundle_f32(s32, f32, f32, f32); +Actor *spawnQueue_bundle_f32(s32, f32, f32, f32); void SM_func_80386EF4(Actor *this); void SM_func_80386A00(Actor *this); @@ -111,10 +111,11 @@ void SM_func_80386D68(Actor *this){ func_80386B04(partEmitMgr_newEmitter(0xA), this->position, 0xA, this->scale); func_80386C2C(partEmitMgr_newEmitter(0x10), this->position, 0x10, this->scale); - if(this->unk100 && func_803870E8(this->unk100)){ + if (this->unk100 && func_803870E8(this->unk100)) { func_802CA1CC(HONEYCOMB_18_SM_QUARRIES); - __spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, 0x1F, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2])); + __spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, BUNDLE_1F_SM_EMPTY_HONEYCOMB, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2])); } + marker_despawn(this->marker); } diff --git a/src/TTC/ch/clam.c b/src/TTC/ch/clam.c index 0859b91b..06ba0fe7 100644 --- a/src/TTC/ch/clam.c +++ b/src/TTC/ch/clam.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -extern void spawnQueue_bundle_f32(s32, s32, s32, s32); +extern Actor *spawnQueue_bundle_f32(s32, s32, s32, s32); extern f32 func_80257204(f32, f32, f32, f32); extern ActorProp * func_80320EB0(ActorMarker *, f32, s32); @@ -232,12 +232,12 @@ void __chClam_takeDamage(ActorMarker *this_marker, ActorMarker *other_marker){ marker_despawn(this->marker); } -void __chClam_playerDropsItem(s32 index, enum item_e item_id){ +void __chClam_playerDropsItem(enum bundle_e bundle_id, enum item_e item_id){ f32 position[3]; player_getPosition(position); bundle_setYaw(randf2(0.0f, 359.0f)); - __spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, index, reinterpret_cast(s32, position[0]), reinterpret_cast(s32, position[1]), reinterpret_cast(s32, position[2])); + __spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, bundle_id, reinterpret_cast(s32, position[0]), reinterpret_cast(s32, position[1]), reinterpret_cast(s32, position[2])); item_dec(item_id); } @@ -249,11 +249,13 @@ void __chClam_attackOther(ActorMarker *this_marker, ActorMarker *other_marker){ mapSpecificFlags_set(5, TRUE); } - if(item_getCount(ITEM_D_EGGS) != 0) - __chClam_playerDropsItem(0xe, ITEM_D_EGGS); + if (item_getCount(ITEM_D_EGGS) != 0) { + __chClam_playerDropsItem(BUNDLE_E_YUMYUM_BLUE_EGG, ITEM_D_EGGS); + } - if(item_getCount(ITEM_F_RED_FEATHER) != 0) - __chClam_playerDropsItem(0xf, ITEM_F_RED_FEATHER); + if (item_getCount(ITEM_F_RED_FEATHER) != 0) { + __chClam_playerDropsItem(BUNDLE_F_YUMYUM_RED_FEATHER, ITEM_F_RED_FEATHER); + } } void chClam_update(Actor *this){ diff --git a/src/core2/ch/icecube.c b/src/core2/ch/icecube.c index fd85fb48..236a7262 100644 --- a/src/core2/ch/icecube.c +++ b/src/core2/ch/icecube.c @@ -202,7 +202,7 @@ void __chicecube_spawnHalfCubes(ActorMarker *marker){ sp54[1] += 100.0f; for(i = 0; i < 2; i++){//L8035A7FC bundle_setYaw((i & 1)? actor->yaw : actor->yaw + 180.0f); - other = bundle_spawn_f32(0x21, sp54); + other = bundle_spawn_f32(BUNDLE_21__ICECUBE_B, sp54); other->unkF4_8 = 1; //don't spawn more other->scale = randf2(0.5f, 0.6f)*actor->scale; actor->yaw = randi2(0, 359); diff --git a/src/core2/code_41FB0.c b/src/core2/code_41FB0.c index fb3dc3f8..34775003 100644 --- a/src/core2/code_41FB0.c +++ b/src/core2/code_41FB0.c @@ -50,65 +50,47 @@ enum bundle_state_e { BUNDLE_STATE_3_IDLE }; -enum core2_41FB0_e { - CORE2_41FB0_0_MM_HUT_NOTES, - CORE2_41FB0_1_MM_HUT_EGGS, - CORE2_41FB0_2_MM_HUT_GRUBLIN, - CORE2_41FB0_3_MM_HUT_JINJO, - CORE2_41FB0_4_MM_HUT_JIGGY, - - CORE2_41FB0_6_MM_HUT_EXTRA_LIFE = 0x6, - - - CORE2_41FB0_A_BGS_HUT_JUMP_PAD = 0xA, - CORE2_41FB0_B_BGS_HUT_NOTES, - CORE2_41FB0_C_BGS_HUT_JIGGY, - - CORE2_41FB0_E_YUMYUM_EGG = 0xe, - CORE2_41FB0_F_YUMYUM_RED_FEATHER -}; - // #define 41FB0_FLAG_SET_YAW 0x0020 BundleInfo gBundle_array[] = { - /*MM HUT 1*/ {0x0021, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f}, - /*MM HUT 2*/ {0x0021, ACTOR_52_BLUE_EGG, 5, SFX_21_EGG_BOUNCE_1, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, - /*MM HUT 3*/ {0x0021, ACTOR_6_GRUBLIN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 0.0f, 0.0f, 550.0f, 250.0f, 200.0f, 0.0f, 0.6f, 0.0f}, - /*MM HUT 4*/ {0x0021, ACTOR_62_JINJO_GREEN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, - /*MM HUT 6*/ {0x0021, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, - {0x0001, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 16000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, - /*MM HUT 5*/ {0x0021, ACTOR_49_EXTRA_LIFE, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, - {0x0001, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.6f, 0.0f}, - {0x0049, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 300.0f, 0.0f, 0.5f, 0.0f}, - /*BGS HUT 1,2,4,5*/ {0x002D, ACTOR_B_SHOCKSPRING_PAD, 1, 0, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.2f, 315.0f}, - /*BGS HUT 3*/ {0x0005, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 75.0f, 0.0f, 725.0f, 0.0f, 75.0f, 0.0f, 0.6f, 0.0f}, - /*BGS HUT 4*/ {0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, - {0x0009, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 300.0f, 0.0f, 0.6f, 0.0f}, - /*YUM YUM EGG*/ {0x0001, ACTOR_52_BLUE_EGG, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f}, - /*YUM YUM FEATHER*/ {0x0001, ACTOR_129_RED_FEATHER, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f}, - /*0x10*/ {0x0005, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 100.0f, 0.0f, 0.0f, 0.0f, 0.75f, 0.0f}, - {0x0005, ACTOR_6A_UNKNOWN, 1, 0, 0, 0, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x0009, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 650.0f, 0.0f, 950.0f, 0.0f, 0.6f, 0.0f}, - {0x0001, ACTOR_51_MUSIC_NOTE, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f}, - {0x0001, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, - {0x0065, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.7f, 0.0f}, - {0x0021, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 250.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x0021, ACTOR_50_HONEYCOMB, 2, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, - {0x0021, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, - {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x0021, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, - /*SM QUARRIES & VEGGIES*/ {0x0025, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 500.0f, 0.0f, 0.0f, 0.6f, 0.0f}, - {0x0129, ACTOR_352_UNKOWN, 1, SFX_3F2_UNKNOWN, 1, 16000, 0.0f, 0.0f, 2500.0f, 0.0f, 0.0f, 0.0f, 0.4f, 0.0f}, - {0x0081, ACTOR_3A0_ICECUBE_B, 1, SFX_116_DEAF_RUSTLING, 1, 32000, 220.0f, 100.0f, 350.0f, 200.0f, 220.0f, 100.0f, 0.6f, 0.0f}, - {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, - {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, - {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, - {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, - {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} + {0x0021, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_52_BLUE_EGG, 5, SFX_21_EGG_BOUNCE_1, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_6_GRUBLIN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 0.0f, 0.0f, 550.0f, 250.0f, 200.0f, 0.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_62_JINJO_GREEN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, + {0x0001, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 16000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_49_EXTRA_LIFE, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, + {0x0001, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.6f, 0.0f}, + {0x0049, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 300.0f, 0.0f, 0.5f, 0.0f}, + {0x002D, ACTOR_B_SHOCKSPRING_PAD, 1, 0, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.2f, 315.0f}, + {0x0005, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 75.0f, 0.0f, 725.0f, 0.0f, 75.0f, 0.0f, 0.6f, 0.0f}, + {0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, + {0x0009, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 300.0f, 0.0f, 0.6f, 0.0f}, + {0x0001, ACTOR_52_BLUE_EGG, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f}, + {0x0001, ACTOR_129_RED_FEATHER, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f}, + {0x0005, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 100.0f, 0.0f, 0.0f, 0.0f, 0.75f, 0.0f}, + {0x0005, ACTOR_6A_UNKNOWN, 1, 0, 0, 0, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x0009, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 650.0f, 0.0f, 950.0f, 0.0f, 0.6f, 0.0f}, + {0x0001, ACTOR_51_MUSIC_NOTE, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f}, + {0x0001, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, + {0x0065, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.7f, 0.0f}, + {0x0021, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 250.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_50_HONEYCOMB, 2, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, + {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x0021, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, + {0x0025, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 500.0f, 0.0f, 0.0f, 0.6f, 0.0f}, + {0x0129, ACTOR_352_UNKOWN, 1, SFX_3F2_UNKNOWN, 1, 16000, 0.0f, 0.0f, 2500.0f, 0.0f, 0.0f, 0.0f, 0.4f, 0.0f}, + {0x0081, ACTOR_3A0_ICECUBE_B, 1, SFX_116_DEAF_RUSTLING, 1, 32000, 220.0f, 100.0f, 350.0f, 200.0f, 220.0f, 100.0f, 0.6f, 0.0f}, + {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, + {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, + {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, + {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, + {0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} }; /* .bss */ @@ -117,7 +99,7 @@ f32 gBundle_yaw; f32 gBundle_randomVelocity; /* .public */ -Actor *bundle_spawn_f32(s32 arg0, f32 position[3]); +Actor *bundle_spawn_f32(enum bundle_e bundle_id, f32 position[3]); /* .code */ void bundle_reset(void) { @@ -136,14 +118,14 @@ void bundle_setRandomVelocity(f32 velocity) { gBundle_randomVelocity = velocity; } -Actor *bundle_spawn_s32(s32 index, s32 position[3]) { +Actor *bundle_spawn_s32(enum bundle_e bundle_id, s32 position[3]) { f32 pos_float[3]; TUPLE_COPY(pos_float, position) - return bundle_spawn_f32(index, pos_float); + return bundle_spawn_f32(bundle_id, pos_float); } -Actor *__bundle_spawnWithFirstActor(s32 index, f32 position[3], Actor *firstActor) { +Actor *__bundle_spawnWithFirstActor(enum bundle_e bundle_id, f32 position[3], Actor *firstActor) { static f32 D_80366C4C = 400.0f; BundleInfo *bundle_info; //s2 Actor *actor = NULL; //s3 @@ -151,7 +133,7 @@ Actor *__bundle_spawnWithFirstActor(s32 index, f32 position[3], Actor *firstActo s32 i; Bundle *bundle; - bundle_info = gBundle_array + index; + bundle_info = gBundle_array + bundle_id; actor = NULL; for (i = 0; i < bundle_info->count; i++) {//L802C90B0 @@ -166,7 +148,7 @@ Actor *__bundle_spawnWithFirstActor(s32 index, f32 position[3], Actor *firstActo actor->is_bundle = TRUE; bundle = (Bundle *) &actor->unkBC; - bundle->index = index; + bundle->index = bundle_id; bundle->state = BUNDLE_STATE_1_MOVING; bundle->unk6 = 1; ml_vec3f_copy(bundle->position, actor->position); @@ -201,13 +183,13 @@ Actor *__bundle_spawnWithFirstActor(s32 index, f32 position[3], Actor *firstActo return actor; } -Actor *__bundle_spawnFromFirstActor(s32 index, Actor *actor) { - gBundle_array[index].yaw = actor->yaw; - return __bundle_spawnWithFirstActor(index, actor->position, actor); +Actor *__bundle_spawnFromFirstActor(enum bundle_e bundle_id, Actor *actor) { + gBundle_array[bundle_id].yaw = actor->yaw; + return __bundle_spawnWithFirstActor(bundle_id, actor->position, actor); } -Actor *bundle_spawn_f32(s32 index, f32 position[3]) { - return __bundle_spawnWithFirstActor(index, position, NULL); +Actor *bundle_spawn_f32(enum bundle_e bundle_id, f32 position[3]) { + return __bundle_spawnWithFirstActor(bundle_id, position, NULL); } bool func_802C939C(Actor *actor, f32 arg1[3], f32 arg2[3], f32 arg3[3], bool arg4) { diff --git a/src/core2/code_9E370.c b/src/core2/code_9E370.c index 9805d8d1..5aba86e4 100644 --- a/src/core2/code_9E370.c +++ b/src/core2/code_9E370.c @@ -17,7 +17,7 @@ extern void func_802EE6CC(f32[3], s32[4], s32[4], s32, f32, f32, s32, s32, s32); extern void func_8033A244(f32); f32 func_80257204(f32, f32, f32, f32); -extern Actor *spawnQueue_bundleWithYaw_f32(s32 actor_id, s32 x, s32 y, s32 z, s32 yaw); +extern Actor *spawnQueue_bundleWithYaw_f32(enum bundle_e bundle_id, s32 x, s32 y, s32 z, s32 yaw); f32 func_8033229C(ActorMarker *); f32 player_getYaw(void); extern void __bundle_spawnFromFirstActor(s32, Actor *); @@ -2184,12 +2184,12 @@ void func_8032B258(Actor *this, enum collision_e arg1) { func_8034A174( this->marker->unk44, 0x20, sp38); } if (((s32)this->marker->unk44 < 0) && ((sp38[0] != 0.0f) || (sp38[1] != 0.0f) || (sp38[2] != 0.0f))) { - __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, this->unk138_27 + 0x15, reinterpret_cast(s32,sp38[0]), reinterpret_cast(s32,sp38[1]), reinterpret_cast(s32,sp38[2]), reinterpret_cast(s32,sp44)); + __spawnQueue_add_5((GenFunction_5) spawnQueue_bundleWithYaw_f32, this->unk138_27 + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp38[0]), reinterpret_cast(s32, sp38[1]), reinterpret_cast(s32, sp38[2]), reinterpret_cast(s32, sp44)); return; } else{ sp34 = this->position[1] + 50.0f; - __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, this->unk138_27 + 0x15, reinterpret_cast(s32,this->position[0]), reinterpret_cast(s32,sp34), reinterpret_cast(s32,this->position[2]), reinterpret_cast(s32,sp44)); + __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, this->unk138_27 + BUNDLE_15__JIGGY, reinterpret_cast(s32,this->position[0]), reinterpret_cast(s32,sp34), reinterpret_cast(s32,this->position[2]), reinterpret_cast(s32,sp44)); } } } @@ -2273,10 +2273,10 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) { bundle_setYaw(func_80257204(arg0->propPtr->x, arg0->propPtr->z, arg1->propPtr->x, arg1->propPtr->z) + 90.0f); D_8036E564 = sp6C; if (this->unk138_25) { - __bundle_spawnFromFirstActor(sp6C + 0x21, this); + __bundle_spawnFromFirstActor(sp6C + BUNDLE_21__ICECUBE_B, this); } else { if ((this->marker->id < 0x1A1) || (this->marker->id >= 0x1A5)) { - __bundle_spawnFromFirstActor(sp6C + 0x18, this); + __bundle_spawnFromFirstActor(sp6C + BUNDLE_18__HONEYCOMB, this); } } } @@ -2305,15 +2305,15 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) { } func_8032EE0C(func_8032B38C, this); if (((s32)arg0->unk44 < 0) && ((sp50[0] != 0.0f) || (sp50[1] != 0.0f) || (sp50[2] != 0.0f))) { - __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + 0x15, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw)); + __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw)); } else if (this->unk16C_3 && func_803048E0(sp3C, &sp4C, &sp48, 3, (s32) (func_8033229C(arg0) * 4.0f))) { sp50[0] = (f32) sp48->x; sp50[1] = (f32) sp48->y; sp50[2] = (f32) sp48->z; - __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + 0x15, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw)); + __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw)); } else { sp38 = this->position[1] + func_8033229C(arg0); - __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + 0x15, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, sp38), reinterpret_cast(s32, this->position[2]), reinterpret_cast(s32, player_yaw)); + __spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + BUNDLE_15__JIGGY, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, sp38), reinterpret_cast(s32, this->position[2]), reinterpret_cast(s32, player_yaw)); } func_8032EE20(); } diff --git a/src/core2/code_C0B80.c b/src/core2/code_C0B80.c index a96e9653..d0f8c35e 100644 --- a/src/core2/code_C0B80.c +++ b/src/core2/code_C0B80.c @@ -6,7 +6,7 @@ extern void func_80329904(ActorMarker *, s32, f32 *); void func_80347B10(Struct81s *arg0){ Actor *actor; - actor = bundle_spawn_f32(0x10, arg0->position); + actor = bundle_spawn_f32(BUNDLE_10__JIGGY, arg0->position); actor->unk54 = 3.0f; func_803333DC(arg0, actor); } diff --git a/src/core2/code_D6180.c b/src/core2/code_D6180.c index c97d3ae2..a6643736 100644 --- a/src/core2/code_D6180.c +++ b/src/core2/code_D6180.c @@ -132,8 +132,9 @@ void func_8035D490(ActorMarker *marker){ if (map_get() == MAP_13_GV_MEMORY_GAME) { sp1C = marker_getActor(marker); + if (func_80329530(sp1C, 250) != 0) { - __bundle_spawnFromFirstActor(0x1C, sp1C); + __bundle_spawnFromFirstActor(BUNDLE_1C__HONEYCOMB, sp1C); func_8035D2C0(marker, 0); } } @@ -145,8 +146,8 @@ void func_8035D4F0(ActorMarker *marker, s32 arg1){ if(map_get() == MAP_13_GV_MEMORY_GAME){ actor = marker_getActor(marker); if(actor->state != 9){ - if(func_8033F3E8(mapModel_getModel(0), actor->position, 0x190, 0x1A0) == arg1){ - __bundle_spawnFromFirstActor(0x1C, actor); + if (func_8033F3E8(mapModel_getModel(0), actor->position, 0x190, 0x1A0) == arg1) { + __bundle_spawnFromFirstActor(BUNDLE_1C__HONEYCOMB, actor); func_8035D2C0(marker, 0); } } diff --git a/src/core2/spawnqueue.c b/src/core2/spawnqueue.c index 95c3318c..9f88f75a 100644 --- a/src/core2/spawnqueue.c +++ b/src/core2/spawnqueue.c @@ -558,37 +558,37 @@ Actor *spawnQueue_actor_s32(enum actor_e actor_id, s32 x, s32 y, s32 z) { return actor_spawnWithYaw_s32(reinterpret_cast(enum actor_e, actor_id), position, 0); } -Actor *spawnQueue_bundle_f32(s32 index, s32 x, s32 y, s32 z) { +Actor *spawnQueue_bundle_f32(enum bundle_e bundle_id, s32 x, s32 y, s32 z) { f32 position[3]; position[0] = reinterpret_cast(f32, x); position[1] = reinterpret_cast(f32, y); position[2] = reinterpret_cast(f32, z); - return bundle_spawn_f32(reinterpret_cast(s32, index), position); + return bundle_spawn_f32(reinterpret_cast(s32, bundle_id), position); } -Actor *spawnQueue_bundleWithYaw_f32(s32 index, s32 x, s32 y, s32 z, s32 yaw) { +Actor *spawnQueue_bundleWithYaw_f32(enum bundle_e bundle_id, s32 x, s32 y, s32 z, s32 yaw) { f32 position[3]; position[0] = reinterpret_cast(f32, x); position[1] = reinterpret_cast(f32, y); position[2] = reinterpret_cast(f32, z); bundle_setYaw(reinterpret_cast(f32, yaw)); - return bundle_spawn_f32(reinterpret_cast(s32, index), position); + return bundle_spawn_f32(reinterpret_cast(s32, bundle_id), position); } -Actor *spawnQueue_bundle_s32(s32 index, s32 x, s32 y, s32 z) { +Actor *spawnQueue_bundle_s32(enum bundle_e bundle_id, s32 x, s32 y, s32 z) { s32 position[3]; position[0] = reinterpret_cast(s32, x); position[1] = reinterpret_cast(s32, y); position[2] = reinterpret_cast(s32, z); - return bundle_spawn_s32(reinterpret_cast(s32, index), position); + return bundle_spawn_s32(reinterpret_cast(s32, bundle_id), position); } -Actor *spawnQueue_bundle_s32_2(s32 index, s32 x, s32 y, s32 z) { +Actor *spawnQueue_bundle_s32_2(enum bundle_e bundle_id, s32 x, s32 y, s32 z) { s32 position[3]; position[0] = x; position[1] = y; position[2] = z; - return bundle_spawn_s32(index, position); + return bundle_spawn_s32(bundle_id, position); } void spawnQueue_defrag(FunctionQueue *arg0) { diff --git a/src/fight/chfinalboss.c b/src/fight/chfinalboss.c index b1f4b6cb..8575bd94 100644 --- a/src/fight/chfinalboss.c +++ b/src/fight/chfinalboss.c @@ -435,7 +435,7 @@ void __chfinalboss_dropHealth(ActorMarker *arg0) { actor = marker_getActor(arg0); bundle_setYaw(func_803297C8(actor, D_803916F4)); - bundle_spawn_f32(0x14, actor->position); + bundle_spawn_f32(BUNDLE_14__HONEYCOMB, actor->position); } void chfinalboss_despawnFlightPad(void) { @@ -1524,7 +1524,7 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) { case 32: func_8030E878(SFX_131_GRUNTY_WEEEGH, randf2(0.95f, 1.05f), 32000, this->position, 5000.0f, 12000.0f); - __bundle_spawnFromFirstActor(0x24, this); + __bundle_spawnFromFirstActor(BUNDLE_24__HONEYCOMB, this); return; case 33: FUNC_8030E624(SFX_131_GRUNTY_WEEEGH, 1.0f, 32000); diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index 9905582d..40c65008 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -437,7 +437,7 @@ void lair_func_8038F924(Actor *this) { return; } if (!fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) { - __bundle_spawnFromFirstActor(0x20, this); + __bundle_spawnFromFirstActor(BUNDLE_20__UNKOWN, this); func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF); func_80324D2C(2.1f, COMUSIC_43_ENTER_LEVEL_GLITTER); func_8030E6D4(SFX_113_PAD_APPEARS); From cd336b9b58ce5d085da63160c3bde27021f543c7 Mon Sep 17 00:00:00 2001 From: Mario <21146795-mariob92@users.noreply.gitlab.com> Date: Tue, 8 Oct 2024 05:54:59 +0000 Subject: [PATCH 15/16] Fight and other docu --- decompressed.pal.yaml | 4 +- decompressed.us.v10.yaml | 4 +- include/core2/particle.h | 2 +- include/enums.h | 54 +- include/functions.h | 16 +- include/prop.h | 6 +- include/structs.h | 46 +- level_symbols.us.v10.txt | 2 +- src/BGS/ch/bigalligator.c | 2 +- src/BGS/ch/code_8A60.c | 4 +- src/BGS/ch/croctus.c | 2 +- src/BGS/ch/leafboat.c | 6 +- src/BGS/ch/mudhut.c | 2 +- src/BGS/ch/pinkegg.c | 10 +- src/BGS/ch/tanktup.c | 2 +- src/BGS/code_9750.c | 8 +- src/CC/ch/tooth.c | 4 +- src/CC/code_0.c | 2 +- src/CC/code_530.c | 2 +- src/CC/code_BF0.c | 4 +- src/CCW/ch/grublinhood.c | 6 +- src/CCW/ch/vacationtexttrigger.c | 2 +- src/CCW/code_2270.c | 2 +- src/CCW/code_2B00.c | 16 +- src/CCW/code_4960.c | 4 +- src/CCW/code_5540.c | 2 +- src/CCW/code_6620.c | 2 +- src/CCW/code_6AC0.c | 2 +- src/CCW/code_7120.c | 10 +- src/CCW/code_76C0.c | 20 +- src/CCW/code_7BC0.c | 2 +- src/CCW/code_7BF0.c | 2 +- src/FP/ch/bearcub.c | 6 +- src/FP/ch/boggy2.c | 2 +- src/FP/ch/boggy3.c | 2 +- src/FP/ch/cavewozza.c | 2 +- src/FP/ch/present.c | 6 +- src/FP/ch/snowmanbutton.c | 6 +- src/FP/ch/twinkly.c | 16 +- src/FP/ch/twinklybox.c | 34 +- src/FP/ch/twinklymuncher.c | 2 +- src/FP/ch/wozza.c | 2 +- src/FP/ch/wozzasjig.c | 6 +- src/FP/ch/xmastree.c | 2 +- src/FP/ch/xmastreeeggtoll.c | 12 +- src/FP/ch/xmastreeice.c | 14 +- src/FP/ch/xmastreestar.c | 2 +- src/FP/ch/xmastreeswitch.c | 6 +- src/FP/code_19E0.c | 2 +- src/FP/code_1FF0.c | 2 +- src/FP/code_A1C0.c | 2 +- src/FP/code_ABD0.c | 36 +- src/GV/ch/ancientone.c | 2 +- src/GV/ch/gobi1.c | 2 +- src/GV/ch/gobi2.c | 2 +- src/GV/ch/gobi3.c | 2 +- src/GV/ch/gobirock.c | 2 +- src/GV/ch/gobirope.c | 2 +- src/GV/ch/histup.c | 2 +- src/GV/ch/sarcophagus.c | 4 +- src/GV/ch/toots.c | 2 +- src/GV/code_2EE0.c | 2 +- src/GV/code_3630.c | 2 +- src/GV/code_3BB0.c | 6 +- src/GV/code_4740.c | 14 +- src/GV/code_5570.c | 6 +- src/GV/code_61E0.c | 2 +- src/GV/code_6370.c | 6 +- src/GV/code_7060.c | 2 +- src/GV/code_7FC0.c | 4 +- src/GV/code_7FF0.c | 18 +- src/MM/ch/chimpystump.c | 2 +- src/MM/ch/conga.c | 2 +- src/MM/ch/grublin.c | 2 +- src/MM/ch/hut.c | 2 +- src/MM/ch/juju.c | 2 +- src/MM/ch/jujuhitbox.c | 2 +- src/MM/ch/orange.c | 2 +- src/MM/ch/orangepad.c | 10 +- src/MMM/ch/loggo.c | 2 +- src/MMM/ch/motzhand.c | 2 +- src/MMM/ch/napper.c | 2 +- src/MMM/code_16B0.c | 12 +- src/MMM/code_2040.c | 28 +- src/MMM/code_2F60.c | 12 +- src/MMM/code_DC0.c | 2 +- src/RBB/ch/boombox.c | 12 +- src/RBB/ch/bossboombox.c | 16 +- src/RBB/ch/dolphin.c | 4 +- src/RBB/ch/whistle.c | 4 +- src/RBB/code_1570.c | 6 +- src/RBB/code_640.c | 16 +- src/SM/ch/attacktutorial.c | 2 +- src/SM/ch/vegetables.c | 38 +- src/SM/code_2990.c | 2 +- src/SM/code_3FC0.c | 6 +- src/SM/code_4070.c | 2 +- src/SM/code_44D0.c | 2 +- src/SM/code_5B0.c | 16 +- src/SM/code_BF0.c | 2 +- src/TTC/ch/clam.c | 14 +- src/TTC/ch/leaky.c | 2 +- src/TTC/ch/lockup.c | 6 +- src/TTC/ch/nipper.c | 4 +- src/TTC/ch/treasure.c | 2 +- src/TTC/ch/treasurehunt.c | 8 +- src/TTC/code_26D0.c | 16 +- src/core2/bs/droneenter.c | 16 +- src/core2/bs/dronevanish.c | 10 +- src/core2/bs/dronexform.c | 22 +- src/core2/ch/badShad.c | 2 +- src/core2/ch/bat.c | 2 +- src/core2/ch/beehive.c | 2 +- src/core2/ch/bigbutt.c | 4 +- src/core2/ch/bottlesbonus.c | 2 +- src/core2/ch/bottlesbonuscursor.c | 2 +- src/core2/ch/bubble.c | 2 +- src/core2/ch/climbBase.c | 2 +- src/core2/ch/collectible.c | 6 +- src/core2/ch/crab.c | 16 +- src/core2/ch/drips.c | 8 +- src/core2/ch/firefx.c | 8 +- src/core2/ch/flotsam.c | 4 +- src/core2/ch/gameSelect.c | 6 +- src/core2/ch/ghost.c | 6 +- src/core2/ch/gloop.c | 2 +- src/core2/ch/gravestone.c | 8 +- src/core2/ch/icecube.c | 14 +- src/core2/ch/jigsawdance.c | 2 +- src/core2/ch/jinjo.c | 10 +- src/core2/ch/mole.c | 2 +- src/core2/ch/molehill.c | 8 +- src/core2/ch/musicnote.c | 2 +- src/core2/ch/overlaycopyright.c | 2 +- src/core2/ch/overlaynocontroller.c | 2 +- src/core2/ch/overlaypressstart.c | 2 +- src/core2/ch/shrapnel.c | 12 +- src/core2/ch/snacker.c | 2 +- src/core2/ch/snowball.c | 6 +- src/core2/ch/snowman.c | 10 +- src/core2/ch/snowmanhat.c | 2 +- src/core2/ch/termite.c | 14 +- src/core2/ch/trainers.c | 2 +- src/core2/ch/wadingboots.c | 2 +- src/core2/ch/whipcrack.c | 10 +- src/core2/code_3EAD0.c | 4 +- src/core2/code_3EC30.c | 2 +- src/core2/code_41460.c | 12 +- src/core2/code_41F30.c | 2 +- src/core2/code_42CB0.c | 4 +- src/core2/code_43250.c | 2 +- src/core2/code_43800.c | 2 +- src/core2/code_43A40.c | 12 +- src/core2/code_47BD0.c | 6 +- src/core2/code_4A6F0.c | 2 +- src/core2/code_4BD70.c | 10 +- src/core2/code_4BE10.c | 2 +- src/core2/code_4C020.c | 26 +- src/core2/code_50490.c | 6 +- src/core2/code_509D0.c | 16 +- src/core2/code_517A0.c | 4 +- src/core2/code_51950.c | 4 +- src/core2/code_53A10.c | 2 +- src/core2/code_53C10.c | 10 +- src/core2/code_54D50.c | 10 +- src/core2/code_55180.c | 4 +- src/core2/code_55390.c | 2 +- src/core2/code_556C0.c | 2 +- src/core2/code_55850.c | 2 +- src/core2/code_57C70.c | 2 +- src/core2/code_581D0.c | 2 +- src/core2/code_59780.c | 2 +- src/core2/code_59A80.c | 2 +- src/core2/code_66D90.c | 6 +- src/core2/code_66FB0.c | 8 +- src/core2/code_67650.c | 2 +- src/core2/code_6CD20.c | 4 +- src/core2/code_6CEC0.c | 2 +- src/core2/code_6D030.c | 6 +- src/core2/code_935F0.c | 2 +- src/core2/code_9E370.c | 2 +- src/core2/code_D0CA0.c | 8 +- src/core2/code_D5D10.c | 4 +- src/core2/code_D5FD0.c | 2 +- src/core2/code_D6180.c | 4 +- src/core2/code_D6600.c | 2 +- src/core2/code_DA3A0.c | 4 +- src/core2/code_DA760.c | 2 +- src/core2/code_DB010.c | 142 ++-- src/core2/code_DC4B0.c | 2 +- src/core2/eggshatter.c | 8 +- src/core2/fx/sparkle.c | 18 +- src/core2/particle.c | 107 +-- src/core2/spawnqueue.c | 2 +- src/cutscenes/code_0.c | 134 ++-- src/cutscenes/code_6730.c | 4 +- src/cutscenes/code_69F0.c | 8 +- src/cutscenes/code_6C90.c | 4 +- src/fight/chbossjinjo.c | 497 +++++++------- src/fight/chbossjinjobase.c | 149 ++-- src/fight/chbossshadow.c | 18 +- src/fight/chfinalboss.c | 1008 +++++++++++++--------------- src/fight/chgreenblast.c | 83 +-- src/fight/chjinjonator.c | 393 ++++++----- src/fight/chjinjonatorbase.c | 220 +++--- src/fight/chspellbarrier.c | 114 ++-- src/fight/chspellfireball.c | 616 ++++++++--------- src/fight/chstonejinjo.c | 192 +++--- src/fight/{code_0.c => fight.c} | 4 +- src/fight/fight.h | 241 ++++++- src/lair/ch/brentilda.c | 2 +- src/lair/ch/cauldron.c | 4 +- src/lair/code_0.c | 104 +-- src/lair/code_86F0.c | 6 +- src/lair/code_9C40.c | 6 +- src/lair/code_A170.c | 6 +- src/lair/code_A430.c | 2 +- src/lair/code_A4A0.c | 6 +- src/lair/code_A810.c | 2 +- src/lair/code_AD70.c | 22 +- src/lair/code_BBD0.c | 8 +- src/lair/code_C1C0.c | 2 +- src/lair/code_C6C0.c | 2 +- 223 files changed, 2692 insertions(+), 2652 deletions(-) rename src/fight/{code_0.c => fight.c} (97%) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index e831f6af..aab33b08 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -2241,7 +2241,7 @@ segments: # # follows_vram: core2 # # exclusive_ram_id: overlay # # subsegments: -# # - [0x10A6FD0, c, code_0] #DONE +# # - [0x10A6FD0, c, fight] #DONE # # - [0x10A7150, c, chfinalboss] # # - [0x10ACEA0, c, chbossjinjo] #DONE # # - [0x10ADE60, c, chbossjinjobase] #DONE @@ -2272,7 +2272,7 @@ segments: # # - [0x10B31F0, .rodata, code_9850] # # - [0x10B3200, .rodata, chjinjonator] # # - [0x10B3310, .rodata, chbossshadow] -# # - [0x10B3320, .bss, code_0] +# # - [0x10B3320, .bss, fight] # # - [0x10B3320, .bss, chfinalboss] # # - [0x10B3320, .bss, chspellfireball] # # - [0x10B3320, .bss, chjinjonator] diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index 61f10e98..c1923b09 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -2239,7 +2239,7 @@ segments: follows_vram: core2 exclusive_ram_id: overlay subsegments: - - [0x10A6FD0, c, code_0] #DONE + - [0x10A6FD0, c, fight] #DONE - [0x10A7150, c, chfinalboss] - [0x10ACEA0, c, chbossjinjo] #DONE - [0x10ADE60, c, chbossjinjobase] #DONE @@ -2270,7 +2270,7 @@ segments: - [0x10B31F0, .rodata, chgreenblast] - [0x10B3200, .rodata, chjinjonator] - [0x10B3310, .rodata, chbossshadow] - - [0x10B3320, .bss, code_0] + - [0x10B3320, .bss, fight] - [0x10B3320, .bss, chfinalboss] - [0x10B3320, .bss, chspellfireball] - [0x10B3320, .bss, chjinjonator] diff --git a/include/core2/particle.h b/include/core2/particle.h index 9c35b0f6..081b1338 100644 --- a/include/core2/particle.h +++ b/include/core2/particle.h @@ -15,7 +15,7 @@ void particleEmitter_setParticleCallback(ParticleEmitter *this, void (*arg1)(Par void func_802EFA20(ParticleEmitter *this, f32, f32); void func_802EFA34(ParticleEmitter *this, f32); void func_802EFA40(ParticleEmitter *this, f32 (*)[3]); -void func_802EFA78(ParticleEmitter *this, s32 arg1); +void particleEmitter_func_802EFA78(ParticleEmitter *this, s32 arg1); void func_802EFF5C(ParticleEmitter *this, f32, f32, f32); void func_802EFF7C(ParticleEmitter *this, f32, f32, f32); void func_802EFF9C(ParticleEmitter *this, f32); diff --git a/include/enums.h b/include/enums.h index 543185ca..874e2aa9 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2092,7 +2092,8 @@ enum actor_e ACTOR_3A1_STONE_JINJO, ACTOR_3A2_JINJO_STATUE_BASE, - ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5, + ACTOR_3A4_BOSS_JINJO_BASE_IDX = 0x3A4, + ACTOR_3A5_BOSS_JINJO_ORANGE, ACTOR_3A6_BOSS_JINJO_GREEN, ACTOR_3A7_BOSS_JINJO_PINK, ACTOR_3A8_BOSS_JINJO_YELLOW, @@ -2101,6 +2102,7 @@ enum actor_e ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK = 0x3AA, ACTOR_3AB_GRUNTY_SPELL_BARRIER, ACTOR_3AC_JINJONATOR, + ACTOR_3AD_JINJONATOR_STATUE_BASE_ACTIVATOR, ACTOR_3AF_GRUNTY_SHADOW = 0x3AF, @@ -3428,10 +3430,10 @@ enum asset_e ASSET_553_MODEL_BROOMSTICK_PIECE_SHORT, ASSET_554_MODEL_BROOMSTICK_PIECE_LONG, ASSET_555_MODEL_BROOMSTICK_PIECE_EYE, - // 556 Blast When Yellow Jinjo Hits Gruntilda - // 557 Blast When Orange Jinjo Hits Gruntilda - // 558 Blast When Green Jinjo Hits Gruntilda - // 559 Blast When Pink Jinjo Hits Gruntilda + ASSET_556_MODEL_YELLOW_JINJO_BLAST, + ASSET_557_MODEL_ORANGE_JINJO_BLAST, + ASSET_558_MODEL_GREEN_JINJO_BLAST, + ASSET_559_MODEL_PINK_JINJO_BLAST, // 55a BK World Entry/Exit Pad // 55b FP Boggy's Igloo ASSET_55C_MODEL_PRESS_START_OVERLAY = 0x55C, @@ -4260,6 +4262,48 @@ enum asset_e ASSET_10E7_TEXT_UNKNOWN = 0x10E7, + ASSET_10ED_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_1 = 0x10ED, + ASSET_10EE_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_2, + ASSET_10EF_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_3, + ASSET_10F0_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_4, + ASSET_10F1_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_5, + + ASSET_10F2_TEXT_FINALBOSS_PHASE_1_OPTION_1 = 0x10F2, + ASSET_10F3_TEXT_FINALBOSS_PHASE_1_OPTION_2, + ASSET_10F4_TEXT_FINALBOSS_PHASE_1_OPTION_3, + ASSET_10F5_TEXT_FINALBOSS_PHASE_1_OPTION_4, + ASSET_10F6_TEXT_FINALBOSS_PHASE_1_OPTION_5, + + ASSET_110B_TEXT_FINALBOSS_PHASE_2_OPTION_1 = 0x110B, + ASSET_110C_TEXT_FINALBOSS_PHASE_2_OPTION_2, + ASSET_110D_TEXT_FINALBOSS_PHASE_2_OPTION_3, + ASSET_110E_TEXT_FINALBOSS_PHASE_2_OPTION_4, + ASSET_110F_TEXT_FINALBOSS_PHASE_2_OPTION_5, + + ASSET_111D_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_1 = 0x111D, + ASSET_111E_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_2, + ASSET_111F_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_3, + ASSET_1120_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_4, + ASSET_1121_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_5, + + ASSET_1122_TEXT_FINALBOSS_PHASE_3_OPTION_1 = 0x1122, + ASSET_1123_TEXT_FINALBOSS_PHASE_3_OPTION_2, + ASSET_1124_TEXT_FINALBOSS_PHASE_3_OPTION_3, + ASSET_1125_TEXT_FINALBOSS_PHASE_3_OPTION_4, + ASSET_1126_TEXT_FINALBOSS_PHASE_3_OPTION_5, + + ASSET_113B_TEXT_FINALBOSS_PHASE_4_OPTION_1 = 0x113B, + ASSET_113C_TEXT_FINALBOSS_PHASE_4_OPTION_2, + ASSET_113D_TEXT_FINALBOSS_PHASE_4_OPTION_3, + ASSET_113E_TEXT_FINALBOSS_PHASE_4_OPTION_4, + ASSET_113F_TEXT_FINALBOSS_PHASE_4_OPTION_5, + + ASSET_1154_TEXT_FINALBOSS_PHASE_5_OPTION_1 = 0x1154, + ASSET_1155_TEXT_FINALBOSS_PHASE_5_OPTION_2, + ASSET_1156_TEXT_FINALBOSS_PHASE_5_OPTION_3, + ASSET_1157_TEXT_FINALBOSS_PHASE_5_OPTION_4, + ASSET_1158_TEXT_FINALBOSS_PHASE_5_OPTION_5, + ASSET_146B_MODEL_TTC_TREASURE_TROVE_COVE_OPA = 0x146B, ASSET_146C_MODEL_TTC_TREASURE_TROVE_COVE_XLU, ASSET_146D_MODEL_TTC_NIPPERS_SHELL_OPA, diff --git a/include/functions.h b/include/functions.h index 9e0f31f0..ca092d0a 100644 --- a/include/functions.h +++ b/include/functions.h @@ -203,19 +203,19 @@ void func_8030DA44(u8); void particleEmitter_emitInVolume(ParticleEmitter *, f32[3], f32[3], s32); ParticleEmitter *particleEmitter_new(u32 capacity); -void particleEmitter_setParticleAccelerationRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); -void func_802EF9F8(ParticleEmitter *, f32); -void func_802EFA18(ParticleEmitter *, s32); +void particleEmitter_setAccelerationRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); +void particleEmitter_func_802EF9F8(ParticleEmitter *, f32); +void particleEmitter_func_802EFA18(ParticleEmitter *, s32); void particleEmitter_setFade(ParticleEmitter *, f32, f32); void particleEmitter_setDrawMode(ParticleEmitter *, s32); void particleEmitter_setStartingFrameRange(ParticleEmitter *this, s32 arg1, s32 arg2); void particleEmitter_setParticleFramerateRange(ParticleEmitter *, f32, f32); -void particleEmitter_setParticleSpawnPositionRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); +void particleEmitter_setSpawnPositionRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); void particleEmitter_setStartingScaleRange(ParticleEmitter *, f32, f32); void particleEmitter_setFinalScaleRange(ParticleEmitter *, f32, f32); void particleEmitter_setScaleAndLifetimeRanges(ParticleEmitter *, ParticleScaleAndLifetimeRanges *); -void particleEmitter_setVelocityAndAccelerationRanges(ParticleEmitter *, struct41s *); -void particleEmitter_setPositionAndVelocityRanges(ParticleEmitter *this, struct42s *arg1); +void particleEmitter_setVelocityAndAccelerationRanges(ParticleEmitter *, ParticleSettingsVelocityAcceleration *); +void particleEmitter_setPositionAndVelocityRanges(ParticleEmitter *this, ParticleSettingsVelocityPosition *arg1); void particleEmitter_setAngularVelocityRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); void particleEmitter_setSpawnIntervalRange(ParticleEmitter *, f32, f32); void particleEmitter_setParticleLifeTimeRange(ParticleEmitter *, f32, f32); @@ -499,7 +499,7 @@ void actor_playAnimationOnce(Actor *); void actor_loopAnimation(Actor *); /* used in fight */ -void func_80326224(Actor *this); +void actor_update_func_80326224(Actor *this); void func_802F9FD0(s32, f32, f32, f32); void func_80324D54(f32, enum sfx_e, f32, s32, f32 [3], f32, f32); @@ -526,7 +526,7 @@ extern void subaddie_set_state_forward(Actor *, s32); extern BKModelBin *marker_loadModelBin(ActorMarker *this); extern Struct70s *func_8034C2C4(ActorMarker *marker, s32 arg1); -extern void func_80326310(Actor *this); +extern void func_80326310(Actor *this); // actor_setBlendStateFadeOut ?? extern ActorMarker *marker_init(s32 *pos, MarkerDrawFunc draw_func, int arg2, int marker_id, int arg4); extern s32 asset_getFlag(enum asset_e arg0); extern void spawnableActorList_add(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32, ActorInfo *, u32), u32 arg2); diff --git a/include/prop.h b/include/prop.h index a147b9be..d9b28afb 100644 --- a/include/prop.h +++ b/include/prop.h @@ -168,7 +168,7 @@ typedef struct actor_s{ TUPLE(f32, unk1C); f32 actor_specific_1_f; //used in cheggs TUPLE(f32, velocity); - u32 unk38_31:10; + u32 unk38_31:10; // hit count for jinjo base in fight u32 unk38_21:9; u32 unk38_13:9; u32 stored_animctrl_playbackType_:3; //animctrlPlaybackType @@ -230,10 +230,10 @@ typedef struct actor_s{ u32 unkF4_22:1; u32 initialized:1; //unkF4_21; u32 unkF4_20:12; - u32 unkF4_8:9; + u32 unkF4_8:9; // jinjo id in final fight f32 stored_animctrl_subrangeMin; //animCtrl_SubRangeStart f32 stored_animctrl_subrangeMax; //animCtrl_SubRangeEnd - ActorMarker *unk100; + ActorMarker *unk100; // child actor marker ? ActorMarker *unk104; Struct62s *unk108; // void ( *unk108)(struct actorMarker_s *, s32); //saved from marker->collisionFunc diff --git a/include/structs.h b/include/structs.h index 9cc3ce23..ceec68ea 100644 --- a/include/structs.h +++ b/include/structs.h @@ -384,41 +384,41 @@ typedef struct particle_scale_and_lifetime_ranges_s{ } ParticleScaleAndLifetimeRanges; typedef struct struct_32_s{ - f32 unk0[3]; - f32 unkC[3]; -} struct32s; + f32 min[3]; + f32 max[3]; +} ParticleSettingsVelocity; typedef struct struct_33_s{ - f32 unk0[3]; - f32 unkC[3]; -} struct33s; + f32 min[3]; + f32 max[3]; +} ParticleSettingsAcceleration; typedef struct struct_34_s{ - f32 unk0[3]; - f32 unkC[3]; -} struct34s; + f32 min[3]; + f32 max[3]; +} ParticleSettingsSpawnPosition; typedef struct struct_40_s{ - ParticleScaleAndLifetimeRanges unk0; - f32 unk28; - f32 unk2C; -} struct40s; + ParticleScaleAndLifetimeRanges scale_and_lifetime; + f32 drawmode; + f32 count; +} ParticleSettingsScaleAndLifetimeDrawModeEmitCount; typedef struct struct_41_s{ - struct32s unk0; - struct33s unk18; -} struct41s; + ParticleSettingsVelocity velocity; + ParticleSettingsAcceleration acceleration; +} ParticleSettingsVelocityAcceleration; typedef struct struct_42_s{ - struct32s unk0; - struct34s unk18; -} struct42s; + ParticleSettingsVelocity velocity; + ParticleSettingsSpawnPosition spawn_position; +} ParticleSettingsVelocityPosition; typedef struct struct_43_s{ - struct32s unk0; - struct33s unk18; - struct34s unk30; -} struct43s; + ParticleSettingsVelocity velocity; + ParticleSettingsAcceleration acceleration; + ParticleSettingsSpawnPosition spawn_position; +} ParticleSettingsVelocityAccelerationPosition; typedef struct { u32 unk0_31:11; diff --git a/level_symbols.us.v10.txt b/level_symbols.us.v10.txt index 644876c1..ee1488c5 100644 --- a/level_symbols.us.v10.txt +++ b/level_symbols.us.v10.txt @@ -17,7 +17,7 @@ lair_func_8038CD48 = 0x8038CD48; lair_func_8038CF18 = 0x8038CF18; lair_func_8038E0B0 = 0x8038E0B0; lair_func_8038E768 = 0x8038E768; -fight_func_803863F0 = 0x803863F0; +fight_addSpawnableActors = 0x803863F0; cutscene_func_8038C4E0 = 0x8038C4E0; chmole_learnedAllSpiralMountainAbilities = 0x802DA498; diff --git a/src/BGS/ch/bigalligator.c b/src/BGS/ch/bigalligator.c index e50ff1f2..275701ab 100644 --- a/src/BGS/ch/bigalligator.c +++ b/src/BGS/ch/bigalligator.c @@ -10,7 +10,7 @@ void func_8038FCB0(Actor *); /* .data */ ActorInfo D_80390D70 = {MARKER_DC_BIG_ALLIGATOR, ACTOR_F6_BIG_ALLIGATOR, ASSET_397_MODEL_BIG_ALLIGATOR, 0x01, NULL, - func_8038FCB0, func_80326224, actor_draw, + func_8038FCB0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/BGS/ch/code_8A60.c b/src/BGS/ch/code_8A60.c index ef53acf3..2653581d 100644 --- a/src/BGS/ch/code_8A60.c +++ b/src/BGS/ch/code_8A60.c @@ -18,8 +18,8 @@ ActorAnimationInfo D_80390B90[] = { {ASSET_D5_ANIM_SWITCH_UP, 0.5f}, {ASSET_D5_ANIM_SWITCH_UP, 1e+8f} }; -ActorInfo D_80390BD8 = {MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH, ACTOR_14E_BGS_ELEVATED_WALKWAY_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038EEA4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80390BFC = {MARKER_FD_BGS_MAZE_SWITCH, ACTOR_1FB_BGS_MAZE_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038F06C, func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80390BD8 = {MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH, ACTOR_14E_BGS_ELEVATED_WALKWAY_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038EEA4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80390BFC = {MARKER_FD_BGS_MAZE_SWITCH, ACTOR_1FB_BGS_MAZE_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038F06C, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; void func_8038EE50(void){ f32 sp24[3]; diff --git a/src/BGS/ch/croctus.c b/src/BGS/ch/croctus.c index 350c93e5..5a6400d6 100644 --- a/src/BGS/ch/croctus.c +++ b/src/BGS/ch/croctus.c @@ -31,7 +31,7 @@ ActorAnimationInfo D_803907CC[] = { }; ActorInfo D_80390804 ={MARKER_FC_CROCTUS, ACTOR_1FA_CROCTUS, ASSET_425_MODEL_CROCTUS, 1, D_803907CC, - func_80387FD4, func_80326224, func_8038860C, + func_80387FD4, actor_update_func_80326224, func_8038860C, 0, 0, 0.0f, 0 }; diff --git a/src/BGS/ch/leafboat.c b/src/BGS/ch/leafboat.c index 6d2dfbc9..f573af7a 100644 --- a/src/BGS/ch/leafboat.c +++ b/src/BGS/ch/leafboat.c @@ -88,7 +88,7 @@ void func_8038FD9C(Actor *this){ switch(this->state){ case 1: if(this->marker->unk2C_2) - func_80326224(this); + actor_update_func_80326224(this); this->marker->propPtr->unk8_3 = 1; this->unk1C[0] = 1.0f; this->alpha_124_19 = 0xff; @@ -99,7 +99,7 @@ void func_8038FD9C(Actor *this){ case 2: if(this->marker->unk2C_2) - func_80326224(this); + actor_update_func_80326224(this); this->marker->propPtr->unk8_3 = 1; this->unk1C[0] = 1.0f; @@ -118,7 +118,7 @@ void func_8038FD9C(Actor *this){ break; case 3: if (this->marker->unk2C_2) { - func_80326224(this); + actor_update_func_80326224(this); } this->marker->propPtr->unk8_3 = FALSE; this->unk1C[0] = 0.0f; diff --git a/src/BGS/ch/mudhut.c b/src/BGS/ch/mudhut.c index e2e85ded..5de05aa7 100644 --- a/src/BGS/ch/mudhut.c +++ b/src/BGS/ch/mudhut.c @@ -27,7 +27,7 @@ ActorAnimationInfo D_80390B30[4] = { u32 D_80390B50[6] = {0xA, 0xA, 0xB, 0xA, 0xA, 0xC}; ActorInfo D_80390B68 = {MARKER_D5_BGS_MUD_HUT, ACTOR_C_MUD_HUT, ASSET_7D8_MODEL_MM_HUT_TOP, 0x01, D_80390B30, - chmudhut_update, func_80326224, chmudhut_draw, + chmudhut_update, actor_update_func_80326224, chmudhut_draw, 0, 0, 0.0f, 0 }; diff --git a/src/BGS/ch/pinkegg.c b/src/BGS/ch/pinkegg.c index 8da61052..ed6b384c 100644 --- a/src/BGS/ch/pinkegg.c +++ b/src/BGS/ch/pinkegg.c @@ -28,27 +28,27 @@ ActorAnimationInfo D_803906D8[4] = { }; ActorInfo D_803906F8 = {MARKER_6E_PINK_EGG_LARGEST, ACTOR_5B_PINK_EGG_LARGEST, ASSET_380_MODEL_PINK_EGG_LARGEST, 0x01, D_803906D8, - chpinkegg_update, func_80326224, chpinkegg_draw, + chpinkegg_update, actor_update_func_80326224, chpinkegg_draw, 0, 0x2CC, 6.0f, 0 }; ActorInfo D_8039071C = {MARKER_D6_PINK_EGG_LARGE, ACTOR_ED_PINK_EGG_LARGE, ASSET_381_MODEL_PINK_EGG_LARGE, 0x01, D_803906D8, - chpinkegg_update, func_80326224, chpinkegg_draw, + chpinkegg_update, actor_update_func_80326224, chpinkegg_draw, 0, 0x2CC, 5.0f, 0 }; ActorInfo D_80390740 = {MARKER_D7_PINK_EGG_MEDIUM, ACTOR_EE_PINK_EGG_MEDIUM, ASSET_382_MODEL_PINK_EGG_MEDIUM, 0x01, D_803906D8, - chpinkegg_update, func_80326224, chpinkegg_draw, + chpinkegg_update, actor_update_func_80326224, chpinkegg_draw, 0, 0x2CC, 4.0f, 0 }; ActorInfo D_80390764 = {MARKER_D8_PINK_EGG_SMALL, ACTOR_EF_PINK_EGG_SMALL, ASSET_383_MODEL_PINK_EGG_SMALL, 0x01, D_803906D8, - chpinkegg_update, func_80326224, chpinkegg_draw, + chpinkegg_update, actor_update_func_80326224, chpinkegg_draw, 0, 0x2CC, 3.0f, 0 }; ActorInfo D_80390788 = {MARKER_D9_PINK_EGG_SMALLEST, ACTOR_F0_PINK_EGG_SMALLEST, ASSET_384_MODEL_PINK_EGG_SMALLEST, 0x01, D_803906D8, - chpinkegg_update, func_80326224, chpinkegg_draw, + chpinkegg_update, actor_update_func_80326224, chpinkegg_draw, 0, 0x2CC, 2.0f, 0 }; diff --git a/src/BGS/ch/tanktup.c b/src/BGS/ch/tanktup.c index 25c51d87..8c37d887 100644 --- a/src/BGS/ch/tanktup.c +++ b/src/BGS/ch/tanktup.c @@ -29,7 +29,7 @@ ActorAnimationInfo BGS_D_80390C20[] = { }; ActorInfo D_80390C40 = {MARKER_6C_TANKTUP, ACTOR_E8_TANKTUP, ASSET_3EE_TANKTUP, 0x01, BGS_D_80390C20, - func_8038F6A4, func_80326224, actor_draw, + func_8038F6A4, actor_update_func_80326224, actor_draw, 0, 0x80, 0.0f, 0 }; diff --git a/src/BGS/code_9750.c b/src/BGS/code_9750.c index d16a805c..32acc1be 100644 --- a/src/BGS/code_9750.c +++ b/src/BGS/code_9750.c @@ -17,7 +17,7 @@ ActorAnimationInfo D_80390C70[3] = { }; ActorInfo D_80390C88 = {MARKER_6D_TANKTUP_LEG, ACTOR_E9_TANKTUP_LEG_FL, ASSET_3EF_MODEL_TANKTUP_LEG_FL, 0x01, D_80390C70, - func_8038FBF8, func_80326224, actor_draw, + func_8038FBF8, actor_update_func_80326224, actor_draw, 0, 0x166, 0.0f, 0 }; u8 pad_80390CCC[4] = {0}; @@ -29,7 +29,7 @@ ActorAnimationInfo BGS_D_80390CB0[3] = { }; ActorInfo D_80390CC8 = {MARKER_6D_TANKTUP_LEG, ACTOR_EA_TANKTUP_LEG_BL, ASSET_3F0_MODEL_TANKTUP_LEG_BL, 0x01, BGS_D_80390CB0, - func_8038FBF8, func_80326224, actor_draw, + func_8038FBF8, actor_update_func_80326224, actor_draw, 0, 0x166, 0.0f, 0 }; u8 pad_80390CEC[4] = {0}; @@ -41,7 +41,7 @@ ActorAnimationInfo BGS_D_80390CF0[3] = { }; ActorInfo D_80390D08 = {MARKER_6D_TANKTUP_LEG, ACTOR_EB_TANKTUP_LEG_FR, ASSET_3F1_MODEL_TANKTUP_LEG_FR, 0x01, BGS_D_80390CF0, - func_8038FBF8, func_80326224, actor_draw, + func_8038FBF8, actor_update_func_80326224, actor_draw, 0, 0x166, 0.0f, 0 }; u8 pad_80390C2C[4] = {0}; @@ -53,7 +53,7 @@ ActorAnimationInfo D_80390C30[3] = { }; ActorInfo D_80390D48 = {MARKER_6D_TANKTUP_LEG, ACTOR_EC_TANKTUP_LEG_BR, ASSET_3F2_MODEL_TANKTUP_LEG_BR, 0x01, D_80390C30, - func_8038FBF8, func_80326224, actor_draw, + func_8038FBF8, actor_update_func_80326224, actor_draw, 0, 0x166, 0.0f, 0 }; diff --git a/src/CC/ch/tooth.c b/src/CC/ch/tooth.c index a6dd32bf..8949dd5a 100644 --- a/src/CC/ch/tooth.c +++ b/src/CC/ch/tooth.c @@ -29,14 +29,14 @@ Struct_CC_1120_0 D_80389B50[] = { ActorInfo D_80389B90 = { 0x4E, ACTOR_101_CLANKER_TOKEN_TOOTH, ASSET_891_MODEL_CLANKER_TOKEN_TOOTH_OPEN, 0, NULL, - chTooth_update, func_80326224, actor_draw, + chTooth_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; ActorInfo D_80389BB4 = { 0x4F, ACTOR_102_CLANKER_JIGGY_TOOTH, ASSET_893_MODEL_CLANKER_JIGGY_TOOTH_OPEN, 0, NULL, - chTooth_update, func_80326224, actor_draw, + chTooth_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/CC/code_0.c b/src/CC/code_0.c index aa0c35fb..a19ffa4f 100644 --- a/src/CC/code_0.c +++ b/src/CC/code_0.c @@ -15,7 +15,7 @@ void func_803864D4(Actor *this); /* .data */ ActorInfo D_80389AA0 = { MARKER_4B_CC_SCREW, ACTOR_43_CLACKER_SCREW, ASSET_890_MODEL_SCREW, 0, NULL, - func_803864D4, func_80326224 , actor_draw, + func_803864D4, actor_update_func_80326224 , actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/CC/code_530.c b/src/CC/code_530.c index 63f636f6..80565216 100644 --- a/src/CC/code_530.c +++ b/src/CC/code_530.c @@ -23,7 +23,7 @@ void func_80386B28(Actor* this); /* .data */ ActorInfo D_80389AD0 = { MARKER_4A_CC_KEY, ACTOR_3C_CC_KEY, ASSET_429_MODEL_CC_KEY, 0, NULL, - func_80386B28, func_80326224, actor_draw, + func_80386B28, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/CC/code_BF0.c b/src/CC/code_BF0.c index 5ea52781..b236f2d3 100644 --- a/src/CC/code_BF0.c +++ b/src/CC/code_BF0.c @@ -14,14 +14,14 @@ void func_803870F8(Actor *this); extern ActorInfo D_80389B00 = { MARKER_4C_CLANKER_TOKEN_TOOTH_EXT, ACTOR_44_CLANKER_TOKEN_TOOTH_EXTERIOR, ASSET_309_MODEL_CLANKER_TOKEN_TOOTH_EXTERIOR, 0, NULL, - func_803870F8, func_80326224, actor_draw, + func_803870F8, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; extern ActorInfo D_80389B24 = { MARKER_4D_CLANKER_JIGGY_TOOTH_EXT, ACTOR_45_CLANKER_JIGGY_TOOTH_EXTERIOR, ASSET_30A_MODEL_CLANKER_JIGGY_TOOTH_EXTERIOR, 0, NULL, - func_803870F8, func_80326224, actor_draw, + func_803870F8, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/CCW/ch/grublinhood.c b/src/CCW/ch/grublinhood.c index fbb4c42b..28ff9fb5 100644 --- a/src/CCW/ch/grublinhood.c +++ b/src/CCW/ch/grublinhood.c @@ -57,13 +57,13 @@ ActorAnimationInfo chGrublinHood_animations[] = { ActorInfo chGrublinHood = { MARKER_1E2_GRUBLIN_HOOD, ACTOR_375_GRUBLIN_HOOD, ASSET_52C_MODEL_GRUBLIN_HOOD, 0x1, chGrublinHood_animations, - chgrublinhood_update, func_80326224, chgrublinhood_draw, + chgrublinhood_update, actor_update_func_80326224, chgrublinhood_draw, 2500, 0, 1.0f, 0 }; /* .code */ void __chgrublinhood_emitHat(ParticleEmitter *pCtrl, Actor *actor, enum asset_e model_id){ - static struct43s D_8038F9AC = { + static ParticleSettingsVelocityAccelerationPosition D_8038F9AC = { {{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}}, {{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}}, {{ -50.0f, 200.0f, -50.0f}, { 50.0f, 400.0f, 50.0f}} @@ -74,7 +74,7 @@ void __chgrublinhood_emitHat(ParticleEmitter *pCtrl, Actor *actor, enum asset_e -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f ); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038F9AC); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038F9AC); particleEmitter_emitN(pCtrl, 1); } diff --git a/src/CCW/ch/vacationtexttrigger.c b/src/CCW/ch/vacationtexttrigger.c index 2cada924..77fcebf4 100644 --- a/src/CCW/ch/vacationtexttrigger.c +++ b/src/CCW/ch/vacationtexttrigger.c @@ -11,7 +11,7 @@ void chVacationTextTrigger_update(Actor* this); ActorInfo gChVacationTextTrigger = { MARKER_1E3_VACATION_TEXT_TRIGGER, ACTOR_374_VACATION_TEXT_TRIGGER, 0x0, 0x0, NULL, - chVacationTextTrigger_update, func_80326224, func_80325340, + chVacationTextTrigger_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/CCW/code_2270.c b/src/CCW/code_2270.c index c740d882..6fbccf57 100644 --- a/src/CCW/code_2270.c +++ b/src/CCW/code_2270.c @@ -208,7 +208,7 @@ void chGobiCCW_update(Actor *this) { } if (this->state == 6) { - func_80326224(this); + actor_update_func_80326224(this); if (0.99 < (f64) this->unk48) { CCW_func_8038868C(this, 7); } diff --git a/src/CCW/code_2B00.c b/src/CCW/code_2B00.c index 582de99a..8e9af7de 100644 --- a/src/CCW/code_2B00.c +++ b/src/CCW/code_2B00.c @@ -29,14 +29,14 @@ ActorAnimationInfo D_8038ED20[] = { {ASSET_D4_ANIM_SWITCH_DOWN, 100000000.0f} }; -ActorInfo D_8038ED50 = { 0x133, 0x1E3, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; -ActorInfo D_8038ED74 = { 0x132, 0x1E2, 0x4F5, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_8038ED98 = { 0x131, 0x16D, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; -ActorInfo D_8038EDBC = { 0x130, 0x16C, 0x4F6, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_8038EDE0 = { 0x12F, 0x16B, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; -ActorInfo D_8038EE04 = { 0x12E, 0x16A, 0x4F7, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_8038EE28 = { 0x12D, 0x169, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; -ActorInfo D_8038EE4C = { 0x12C, 0x168, 0x4F8, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8038ED50 = { 0x133, 0x1E3, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; +ActorInfo D_8038ED74 = { 0x132, 0x1E2, 0x4F5, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8038ED98 = { 0x131, 0x16D, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; +ActorInfo D_8038EDBC = { 0x130, 0x16C, 0x4F6, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8038EDE0 = { 0x12F, 0x16B, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; +ActorInfo D_8038EE04 = { 0x12E, 0x16A, 0x4F7, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8038EE28 = { 0x12D, 0x169, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0}; +ActorInfo D_8038EE4C = { 0x12C, 0x168, 0x4F8, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; /* .code */ s32 func_80388EF0(Actor *this){ diff --git a/src/CCW/code_4960.c b/src/CCW/code_4960.c index 1d363dbc..502868cd 100644 --- a/src/CCW/code_4960.c +++ b/src/CCW/code_4960.c @@ -76,7 +76,7 @@ void func_8038AEBC(Actor *this) { } } if (this->state == 2) { - func_80326224(this); + actor_update_func_80326224(this); skeletalAnim_getProgressRange(this->unk148, &sp38, &sp34); for(iPtr = &D_8038F254[0]; iPtr->unk0 > 0.0f; iPtr++){ if ((sp38 < iPtr->unk0) && (iPtr->unk0 <= sp34)) { @@ -92,7 +92,7 @@ void func_8038AEBC(Actor *this) { } } if (this->state == 3) { - func_80326224(this); + actor_update_func_80326224(this); skeletalAnim_getProgressRange(this->unk148, &sp30, &sp2C); if ((sp30 <= 0.5) && (sp2C >= 0.5)) { jiggy_spawn(JIGGY_49_CCW_EYRIE, this->position); diff --git a/src/CCW/code_5540.c b/src/CCW/code_5540.c index ef3c75f1..0b59e1f6 100644 --- a/src/CCW/code_5540.c +++ b/src/CCW/code_5540.c @@ -161,7 +161,7 @@ void chnabnut_update(Actor *this) { chnabnut_setState(this, NABNUT_STATE_5_EXIT); } if (this->state == NABNUT_STATE_5_EXIT) { - func_80326224(this); + actor_update_func_80326224(this); func_8028FC8C(this->position); if (0.99 < this->unk48) { chnabnut_setState(this, NABNUT_STATE_6_DESPAWN); diff --git a/src/CCW/code_6620.c b/src/CCW/code_6620.c index 12c63c00..ed75662a 100644 --- a/src/CCW/code_6620.c +++ b/src/CCW/code_6620.c @@ -47,7 +47,7 @@ void func_8038CA10(ActorMarker *marker) { pCtrl = func_802EDD8C(local->unk4, 0.0f, this->position[1] + 500.0f); particleEmitter_setStartingScaleRange(pCtrl, 0.04f, 0.05f); particleEmitter_setFinalScaleRange(pCtrl, 0.18f, 0.2f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f); + particleEmitter_setSpawnPositionRange(pCtrl, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f); particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 31.0f, 0.0f, 0.0f, 37.0f, 0.0f); particleEmitter_emitN(pCtrl, 1); } diff --git a/src/CCW/code_6AC0.c b/src/CCW/code_6AC0.c index b8fd4e2f..8fd558b6 100644 --- a/src/CCW/code_6AC0.c +++ b/src/CCW/code_6AC0.c @@ -133,7 +133,7 @@ void func_8038CFB4(Actor *this) { } if (this->state == 3) { - func_80326224(this); + actor_update_func_80326224(this); if (0.99 < (f64) this->unk48) { func_8038CEB0(this, 4); } diff --git a/src/CCW/code_7120.c b/src/CCW/code_7120.c index fa9debbc..9b83bd75 100644 --- a/src/CCW/code_7120.c +++ b/src/CCW/code_7120.c @@ -19,7 +19,7 @@ ActorInfo D_8038F640 = { /* .code */ void CCW_func_8038D510(Actor *this) { static s32 D_8038F664[3] = {0xDE, 0xA7, 0x71}; - static struct42s D_8038F670 = { + static ParticleSettingsVelocityPosition D_8038F670 = { {{ 0.0f, 50.0f, 0.0f}, { 70.0f, 100.0f, 70.0f}}, {{100.0f, 100.0f, 100.0f}, {150.0f, 400.0f, 200.0f}} }; @@ -39,7 +39,7 @@ void CCW_func_8038D510(Actor *this) { } void func_8038D5DC(Actor *this) { - static struct43s D_8038F6A0 ={ + static ParticleSettingsVelocityAccelerationPosition D_8038F6A0 ={ {{-100.0f, -50.0f, -100.0f}, {100.0f, 50.0f, 100.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}}, {{-100.0f, 0.0f, -200.0f}, {100.0f, 400.0f, 200.0f}} @@ -48,8 +48,8 @@ void func_8038D5DC(Actor *this) { ParticleEmitter *pCtrl; pCtrl = partEmitMgr_newEmitter(30); - func_802EF9F8(pCtrl, 0.6f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.6f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setModel(pCtrl, 0x896); particleEmitter_setPosition(pCtrl, this->position); particleEmitter_setStartingScaleRange(pCtrl, 0.05f, 0.3f); @@ -59,7 +59,7 @@ void func_8038D5DC(Actor *this) { ); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(pCtrl, 10.0f, 10.0f); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038F6A0); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038F6A0); particleEmitter_emitN(pCtrl, 30); } diff --git a/src/CCW/code_76C0.c b/src/CCW/code_76C0.c index 0196ba88..f53a9d21 100644 --- a/src/CCW/code_76C0.c +++ b/src/CCW/code_76C0.c @@ -65,16 +65,16 @@ void CCW_func_8038DB0C(Actor *this); void func_8038DAB0(Actor *this); /* .data */ -ActorInfo D_8038F720 = { 0x239, 0x25F, 0x4FC, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F744 = { 0x236, 0x260, 0x4F9, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F768 = { 0x237, 0x261, 0x4FA, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F78C = { 0x238, 0x262, 0x4FB, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F7B0 = { 0x243, 0x2E6, 0x533, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F7D4 = { 0x263, 0x2E7, 0x518, 0x1, NULL, func_8038DAB0, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F7F8 = { 0x21E, 0x233, 0x3B3, 0x1, NULL, func_802D3D74, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, CCW_func_8038DB0C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, CCW_func_8038DB0C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, CCW_func_8038DB0C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F720 = { 0x239, 0x25F, 0x4FC, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F744 = { 0x236, 0x260, 0x4F9, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F768 = { 0x237, 0x261, 0x4FA, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F78C = { 0x238, 0x262, 0x4FB, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F7B0 = { 0x243, 0x2E6, 0x533, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F7D4 = { 0x263, 0x2E7, 0x518, 0x1, NULL, func_8038DAB0, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F7F8 = { 0x21E, 0x233, 0x3B3, 0x1, NULL, func_802D3D74, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; ActorInfo D_8038F888 = { 0x1CC, 0x318, 0x0, 0x0, NULL, func_80325F84, NULL, func_80325340, 0, 0, 0.0f, 0}; diff --git a/src/CCW/code_7BC0.c b/src/CCW/code_7BC0.c index 42bd6e44..c8dbfcfb 100644 --- a/src/CCW/code_7BC0.c +++ b/src/CCW/code_7BC0.c @@ -12,7 +12,7 @@ ActorAnimationInfo D_8038F8B0[] = { ActorInfo D_8038F8C0 = { 0x251, 0x37E, 0x506, 0x1, D_8038F8B0, - func_8038DFB0, func_80326224, actor_draw, + func_8038DFB0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/CCW/code_7BF0.c b/src/CCW/code_7BF0.c index 70d3a9c8..556f1237 100644 --- a/src/CCW/code_7BF0.c +++ b/src/CCW/code_7BF0.c @@ -15,7 +15,7 @@ ActorAnimationInfo D_8038F8F0[] = { ActorInfo D_8038F908 = { MARKER_1F9_SNARE_BEAR, ACTOR_1E9_SNARE_BEAR, ASSET_440_MODEL_SNAREBEAR, 0x1, D_8038F8F0, - func_8038E0C8, func_80326224, actor_draw, + func_8038E0C8, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/FP/ch/bearcub.c b/src/FP/ch/bearcub.c index 373b6792..35fdcd3d 100644 --- a/src/FP/ch/bearcub.c +++ b/src/FP/ch/bearcub.c @@ -23,19 +23,19 @@ ActorAnimationInfo D_80391DF0[] = { ActorInfo D_80391E08 = { MARKER_1FA_POLAR_BEAR_CUB_BLUE, ACTOR_1EA_POLAR_BEAR_CUB_BLUE, ASSET_44C_MODEL_POLAR_BEAR_CUB_BLUE, 0x1, D_80391DF0, - func_8038A384, func_80326224, actor_draw, + func_8038A384, actor_update_func_80326224, actor_draw, 2500, 0, 1.2f, 0 }; ActorInfo FP_D_80391E2C = { MARKER_1FB_POLAR_BEAR_CUB_GREEN, ACTOR_1EB_POLAR_BEAR_CUB_GREEN, ASSET_44D_MODEL_POLAR_BEAR_CUB_GREEN, 0x1, D_80391DF0, - func_8038A384, func_80326224, actor_draw, + func_8038A384, actor_update_func_80326224, actor_draw, 2500, 0, 1.2f, 0 }; ActorInfo D_80391E50 = { MARKER_1FC_POLAR_BEAR_CUB_RED, ACTOR_1EC_POLAR_BEAR_CUB_RED, ASSET_44E_MODEL_POLAR_BEAR_CUB_RED, 0x1, D_80391DF0, - func_8038A384, func_80326224, actor_draw, + func_8038A384, actor_update_func_80326224, actor_draw, 2500, 0, 1.2f, 0 }; diff --git a/src/FP/ch/boggy2.c b/src/FP/ch/boggy2.c index 09fe94a5..765fb59d 100644 --- a/src/FP/ch/boggy2.c +++ b/src/FP/ch/boggy2.c @@ -237,7 +237,7 @@ void func_80388EE8(ParticleEmitter *pCtrl){ {0.3f, 0.45f}, 0.0f, 0.01f }; - static struct42s D_80391D58 = { + static ParticleSettingsVelocityPosition D_80391D58 = { {{-10.0f, 10.0f, -10.0f}, {10.0f, 240.0f, 10.0f}}, /*position*/ {{0.0f, 0.0f, 0.0f}, {0.0f, 20.0f, 0.0f}} /*velocity*/ }; diff --git a/src/FP/ch/boggy3.c b/src/FP/ch/boggy3.c index 6e245409..15af7956 100644 --- a/src/FP/ch/boggy3.c +++ b/src/FP/ch/boggy3.c @@ -13,7 +13,7 @@ ActorAnimationInfo D_80392680[] = { ActorInfo D_80392690 = { 0x20D, 0x33D, 0x38A, 0x1, D_80392680, - func_80390388, func_80326224, func_80390290, + func_80390388, actor_update_func_80326224, func_80390290, 2500, 0, 1.0f, 0 }; diff --git a/src/FP/ch/cavewozza.c b/src/FP/ch/cavewozza.c index 627f30f4..9a7ccc5d 100644 --- a/src/FP/ch/cavewozza.c +++ b/src/FP/ch/cavewozza.c @@ -14,7 +14,7 @@ extern ActorAnimationInfo D_803926F0[]= { extern ActorInfo D_80392700 = { MARKER_20F_WOZZA_IN_CAVE, ACTOR_33F_WOZZA_IN_CAVE, ASSET_494_MODEL_WOZZA, 0x1, D_803926F0, - func_80390630, func_80326224, actor_draw, + func_80390630, actor_update_func_80326224, actor_draw, 2500, 0, 1.6f, 0 }; diff --git a/src/FP/ch/present.c b/src/FP/ch/present.c index 6e8946ec..46cfd3e0 100644 --- a/src/FP/ch/present.c +++ b/src/FP/ch/present.c @@ -12,19 +12,19 @@ ActorAnimationInfo D_803924A0[] = { ActorInfo D_803924B0 = { MARKER_208_BLUE_PRESENT, ACTOR_33A_BLUE_PRESENT, ASSET_47F_MODEL_XMAS_GIFT_BLUE, 0x1, D_803924A0, - func_8038F144, func_80326224, func_8038F0F0, + func_8038F144, actor_update_func_80326224, func_8038F0F0, 2500, 0, 1.2f, 0 }; ActorInfo D_803924D4 = { MARKER_209_GREEN_PRESENT, ACTOR_33B_GREEN_PRESENT, ASSET_480_MODEL_XMAS_GIFT_GREEN, 0x1, D_803924A0, - func_8038F144, func_80326224, func_8038F0F0, + func_8038F144, actor_update_func_80326224, func_8038F0F0, 2500, 0, 1.2f, 0 }; ActorInfo D_803924F8 = { MARKER_20A_RED_PRESENT, ACTOR_33C_RED_PRESENT, ASSET_481_MODEL_XMAS_GIFT_RED, 0x1, D_803924A0, - func_8038F144, func_80326224, func_8038F0F0, + func_8038F144, actor_update_func_80326224, func_8038F0F0, 2500, 0, 1.2f, 0 }; diff --git a/src/FP/ch/snowmanbutton.c b/src/FP/ch/snowmanbutton.c index 633f7a9f..91e1f6b4 100644 --- a/src/FP/ch/snowmanbutton.c +++ b/src/FP/ch/snowmanbutton.c @@ -16,7 +16,7 @@ ActorAnimationInfo FP_D_80391A90[] ={ ActorInfo FP_D_80391AB0 = { MARKER_B9_FP_SNOWMAN_BUTTON, ACTOR_116_FP_SNOWMAN_BUTTON, ASSET_421_MODEL_FP_SNOWMAN_BUTTON, 0x1, FP_D_80391A90, - FP_func_80386CF8, func_80326224, func_80386B80, + FP_func_80386CF8, actor_update_func_80326224, func_80386B80, 0, 0x800, 0.0f, 0 }; @@ -28,7 +28,7 @@ ParticleScaleAndLifetimeRanges D_80391AD4 = { 0.0f, 0.01f, }; -struct43s D_80391AFC = { +ParticleSettingsVelocityAccelerationPosition D_80391AFC = { {{-300.0f, 350.0f, -300.0f}, {300.0f, 800.0f, 300.0f}}, {{0.0f, -800.0f, 0.0f}, {0.0f, -800.0f, 0.0f}}, {{-50.0f, -50.0f, -50.0f}, {50.0f, 50.0f, 50.0f}} @@ -58,7 +58,7 @@ void FP_func_80386BEC(Actor *this){ particleEmitter_setRGB(pCtrl, D_80391B44); particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST); particleEmitter_setPosition(pCtrl, plyr_pos); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80391AFC); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80391AFC); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80391AD4); particleEmitter_emitN(pCtrl, 12); } diff --git a/src/FP/ch/twinkly.c b/src/FP/ch/twinkly.c index 596f3b53..46e6ef85 100644 --- a/src/FP/ch/twinkly.c +++ b/src/FP/ch/twinkly.c @@ -21,30 +21,30 @@ ActorAnimationInfo D_80391F50[] = { ActorInfo D_80391F88 = { MARKER_200_TWINKLY_BLUE, ACTOR_332_TWINKLY_BLUE, ASSET_448_MODEL_TWINKLY_BLUE, 0x1, D_80391F50, - func_8038C9A0, func_80326224, func_8038C1F8, + func_8038C9A0, actor_update_func_80326224, func_8038C1F8, 0, 0, 1.0f, 0 }; ActorInfo D_80391FAC = { MARKER_201_TWINKLY_GREEN, ACTOR_333_TWINKLY_GREEN, ASSET_449_MODEL_TWINKLY_GREEN, 0x1, D_80391F50, - func_8038C9A0, func_80326224, func_8038C1F8, + func_8038C9A0, actor_update_func_80326224, func_8038C1F8, 0, 0, 1.0f, 0 }; ActorInfo D_80391FD0 = { MARKER_202_TWINKLY_ORANGE, ACTOR_334_TWINKLY_ORANGE, ASSET_44A_MODEL_TWINKLY_ORANGE, 0x1, D_80391F50, - func_8038C9A0, func_80326224, func_8038C1F8, + func_8038C9A0, actor_update_func_80326224, func_8038C1F8, 0, 0, 1.0f, 0 }; ActorInfo D_80391FF4 = { MARKER_203_TWINKLY_RED, ACTOR_335_TWINKLY_RED, ASSET_44B_MODEL_TWINKLY_RED, 0x1, D_80391F50, - func_8038C9A0, func_80326224, func_8038C1F8, + func_8038C9A0, actor_update_func_80326224, func_8038C1F8, 0, 0, 1.0f, 0 }; Struct6Cs FP_D_80392018 = {NULL, NULL, NULL, (void*)func_8038C0B0}; -struct43s D_80392028 = { +ParticleSettingsVelocityAccelerationPosition D_80392028 = { {{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}}, {{ -15.0f, -15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}} @@ -95,7 +95,7 @@ void func_8038C260(f32 position[3], s32 count, enum asset_e model_id){ pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392028); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392028); particleEmitter_setAngularVelocityRange(pCtrl, 400.0f, 400.0f, 400.0f, 800.0f, 800.0f, 800.0f @@ -104,8 +104,8 @@ void func_8038C260(f32 position[3], s32 count, enum asset_e model_id){ particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.02f); particleEmitter_setParticleLifeTimeRange(pCtrl, 1.5f, 1.5f); particleEmitter_setFade(pCtrl, 0.0f, 0.3f); - func_802EF9F8(pCtrl, 0.6f); - func_802EFA18(pCtrl, 0); + particleEmitter_func_802EF9F8(pCtrl, 0.6f); + particleEmitter_func_802EFA18(pCtrl, 0); func_802EFA20(pCtrl, 1.0f, 1.3f); particleEmitter_setSfx(pCtrl, SFX_7B_ICE_BREAKING_1, 8000); particleEmitter_emitN(pCtrl, count); diff --git a/src/FP/ch/twinklybox.c b/src/FP/ch/twinklybox.c index 6b2bef3f..c3da8851 100644 --- a/src/FP/ch/twinklybox.c +++ b/src/FP/ch/twinklybox.c @@ -19,7 +19,7 @@ ActorAnimationInfo D_803920C0[] ={ ActorInfo D_803920E8 = { 0x204, 0x336, 0x442, 0x1, D_803920C0, - func_8038D6C8, func_80326224, FP_func_8038CED0, + func_8038D6C8, actor_update_func_80326224, FP_func_8038CED0, 0, 0, 0.0f, 0 }; @@ -42,7 +42,7 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){ 0.0f, 0.7f }; - static struct43s D_80392134 = { + static ParticleSettingsVelocityAccelerationPosition D_80392134 = { {{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}}, {{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}} @@ -52,14 +52,14 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){ pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392134); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392134); particleEmitter_setAngularVelocityRange(pCtrl, 100.0f, 100.0f, 100.0f, 200.0f, 200.0f, 200.0f ); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039210C); - func_802EF9F8(pCtrl, 0.6f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.6f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_emitN(pCtrl, count); } @@ -73,7 +73,7 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){ 0.01f }; static s32 D_803921A4[3] = { 0xDC, 0xDC, 0xE6}; - static struct43s D_803921B0 = { + static ParticleSettingsVelocityAccelerationPosition D_803921B0 = { {{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}}, {{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}}, {{-50.0f, 0.0f, -50.0f}, {50.0f, 200.0f, 50.0f}} @@ -85,7 +85,7 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){ particleEmitter_setRGB(pCtrl, D_803921A4); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803921B0); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803921B0); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039217C); particleEmitter_emitN(pCtrl, count); } @@ -99,7 +99,7 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){ 0.0f, 0.3f }; - static struct43s D_80392220 = { + static ParticleSettingsVelocityAccelerationPosition D_80392220 = { {{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}}, {{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}} @@ -109,14 +109,14 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){ pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392220); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392220); particleEmitter_setAngularVelocityRange(pCtrl, 200.0f, 200.0f, 200.0f, 300.0f, 300.0f, 300.0f ); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803921F8); - func_802EF9F8(pCtrl, 0.2f); - func_802EFA18(pCtrl, 2); + particleEmitter_func_802EF9F8(pCtrl, 0.2f); + particleEmitter_func_802EFA18(pCtrl, 2); particleEmitter_emitN(pCtrl, count); } @@ -129,7 +129,7 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){ 0.0f, 0.3f }; - static struct43s D_80392290 = { + static ParticleSettingsVelocityAccelerationPosition D_80392290 = { {{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}}, {{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}} @@ -139,10 +139,10 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){ pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392290); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392290); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392268); - func_802EF9F8(pCtrl, 0.2f); - func_802EFA18(pCtrl, 2); + particleEmitter_func_802EF9F8(pCtrl, 0.2f); + particleEmitter_func_802EFA18(pCtrl, 2); particleEmitter_emitN(pCtrl, count); } @@ -155,7 +155,7 @@ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){ 0.0f, 0.01f }; static s32 D_80392300[3] = { 0xDC, 0xDC, 0xE6}; - static struct43s D_8039230C = { + static ParticleSettingsVelocityAccelerationPosition D_8039230C = { {{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}, {{0.0f, -10.0f, 0.0f}, {0.0f, -10.0f, 0.0f}}, {{-80.0f, 0.0f, -80.0f}, {50.0f, 200.0f, 80.0f}} @@ -166,7 +166,7 @@ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){ particleEmitter_setRGB(pCtrl, D_80392300); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8039230C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8039230C); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803922D8); particleEmitter_emitN(pCtrl, count); } diff --git a/src/FP/ch/twinklymuncher.c b/src/FP/ch/twinklymuncher.c index 735d4444..f1ef8082 100644 --- a/src/FP/ch/twinklymuncher.c +++ b/src/FP/ch/twinklymuncher.c @@ -21,7 +21,7 @@ extern ActorAnimationInfo D_80392390[] ={ extern ActorInfo D_803923D0 = { MARKER_205_TWINKLY_MUNCHER, ACTOR_337_TWINKLY_MUNCHER, ASSET_496_MODEL_TWINKLY_MUNCHER, 0x1, D_80392390, - func_8038E094, func_80326224, func_8038DD70, + func_8038E094, actor_update_func_80326224, func_8038DD70, 2500, 0, 1.0f, 0 }; diff --git a/src/FP/ch/wozza.c b/src/FP/ch/wozza.c index 1441708f..5989bdec 100644 --- a/src/FP/ch/wozza.c +++ b/src/FP/ch/wozza.c @@ -32,7 +32,7 @@ ActorAnimationInfo D_80392520[] ={ ActorInfo D_80392588 = { MARKER_20B_WOZZA, ACTOR_1F3_WOZZA, ASSET_494_MODEL_WOZZA, 0x1, D_80392520, - FP_func_8038F7AC, func_80326224, func_8038F210, + FP_func_8038F7AC, actor_update_func_80326224, func_8038F210, 0, 0, 1.6f, 0 }; diff --git a/src/FP/ch/wozzasjig.c b/src/FP/ch/wozzasjig.c index c8dc588a..64da2f34 100644 --- a/src/FP/ch/wozzasjig.c +++ b/src/FP/ch/wozzasjig.c @@ -24,7 +24,7 @@ ActorAnimationInfo D_803925C0[] = { ActorInfo D_80392628 = { MARKER_20C_WOZZAS_JIGGY, ACTOR_1F4_WOZZAS_JIGGY, ASSET_495_MODEL_WOZZAS_JIGGY, 0x1, D_803925C0, - func_8038FF54, func_80326224, func_8038FF00, + func_8038FF54, actor_update_func_80326224, func_8038FF00, 0, 0, 0.0f, 0 }; @@ -85,7 +85,7 @@ void func_8038FF54(Actor *this){ particleEmitter_setSprite(sp3C, ASSET_713_SPRITE_SPARKLE_YELLOW); particleEmitter_setStartingFrameRange(sp3C, 1, 6); particleEmitter_setPosition(sp3C, sp40); - particleEmitter_setParticleSpawnPositionRange(sp3C, + particleEmitter_setSpawnPositionRange(sp3C, 0.0f, 20.0f, 0.0f, 0.0f, 20.0f, 0.0f ); @@ -93,7 +93,7 @@ void func_8038FF54(Actor *this){ -180.0f, 0.0f, -180.0f, 180.0f, 280.0f, 180.0f ); - particleEmitter_setParticleAccelerationRange(sp3C, + particleEmitter_setAccelerationRange(sp3C, 0.0f, -60.0f, 0.0f, 0.0f, -90.0f, 0.0f ); diff --git a/src/FP/ch/xmastree.c b/src/FP/ch/xmastree.c index 9d5aea68..1b14add6 100644 --- a/src/FP/ch/xmastree.c +++ b/src/FP/ch/xmastree.c @@ -9,7 +9,7 @@ void chXmasTree_update(Actor *this); ActorInfo chXmasTree = { MARKER_BA_XMAS_TREE, ACTOR_15F_XMAS_TREE, ASSET_488_MODEL_XMAS_TREE, 0x1, NULL, - chXmasTree_update, func_80326224, chXmasTree_draw, + chXmasTree_update, actor_update_func_80326224, chXmasTree_draw, 0, 0, 0.0f, 0 }; diff --git a/src/FP/ch/xmastreeeggtoll.c b/src/FP/ch/xmastreeeggtoll.c index a92c4c5e..e1baf1f6 100644 --- a/src/FP/ch/xmastreeeggtoll.c +++ b/src/FP/ch/xmastreeeggtoll.c @@ -8,13 +8,13 @@ void func_80390EB0(Actor *this); /* .data */ ActorInfo FP_D_80392840 = { MARKER_245_XMAS_TREE_EGG_TOLL, ACTOR_353_XMAS_TREE_EGG_TOLL, ASSET_402_MODEL_EGG_TOLL, 0x0, NULL, - func_80390EB0, func_80326224, func_80325340, + func_80390EB0, actor_update_func_80326224, func_80325340, 2000, 0, 0.0f, 0 }; /* .code */ void func_80390C70(f32 position[3]){ - static struct40s FP_D_80392864 = {{{1.7f, 2.0f}, {2.4f, 2.7f}, {0.0f, 0.01f}, {4.0f, 7.0f}, 0.3f, 0.7f}, 4.0f, 1.0f}; + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount FP_D_80392864 = {{{1.7f, 2.0f}, {2.4f, 2.7f}, {0.0f, 0.01f}, {4.0f, 7.0f}, 0.3f, 0.7f}, 4.0f, 1.0f}; static s32 D_80392894[3] = {0xFF, 0XFF, 0xFF}; ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1); @@ -23,7 +23,7 @@ void func_80390C70(f32 position[3]){ particleEmitter_setRGB(pCtrl, D_80392894); particleEmitter_setAlpha(pCtrl, 0x41); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -40.0f, 110.0f, -40.0f, 40.0f, 110.0f, 40.0f ); @@ -35,7 +35,7 @@ void func_80390C70(f32 position[3]){ } void func_80390D58(f32 position[3]){ - static struct40s D_803928A0 = {{{0.05f, 0.1f}, {0.1f, 0.2f}, {0.0f, 0.01f}, {0.9f, 1.3f}, 0.3f, 0.7f}, 4.0f, 1.0f}; + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803928A0 = {{{0.05f, 0.1f}, {0.1f, 0.2f}, {0.0f, 0.01f}, {0.9f, 1.3f}, 0.3f, 0.7f}, 4.0f, 1.0f}; static s32 D_803928D0[3] = {0xFF, 0xFF, 0xFF}; ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1); @@ -44,7 +44,7 @@ void func_80390D58(f32 position[3]){ particleEmitter_setRGB(pCtrl, D_803928D0); particleEmitter_setAlpha(pCtrl, 0xFF); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -40.0f, 50.0,-40.0f, 40.0f, 70.0, 40.0f ); @@ -52,7 +52,7 @@ void func_80390D58(f32 position[3]){ -40.0f, 120.0,-40.0f, 40.0f, 180.0, 40.0f ); - particleEmitter_setParticleAccelerationRange(pCtrl, + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -60.0f, 0.0f, 0.0f, -100.0f, 0.0f ); diff --git a/src/FP/ch/xmastreeice.c b/src/FP/ch/xmastreeice.c index 62c5553d..2c2f4aba 100644 --- a/src/FP/ch/xmastreeice.c +++ b/src/FP/ch/xmastreeice.c @@ -8,7 +8,7 @@ void func_80390BDC(Actor *this); /* .data */ ActorInfo D_80392730 = { 0x210, 0x340, 0x4D2, 0x0, NULL, - func_80390BDC, func_80326224, func_803908F0, + func_80390BDC, actor_update_func_80326224, func_803908F0, 0, 0, 1.0f, 0 }; @@ -22,7 +22,7 @@ Actor *func_803908F0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){ static ParticleScaleAndLifetimeRanges D_80392754 = {{0.2f, 0.4f}, {-1.0f, -1.0f}, {0.0f, 0.02f}, {2.2f, 2.2f}, 0.0f, 0.3f}; - static struct43s D_8039277C = { + static ParticleSettingsVelocityAccelerationPosition D_8039277C = { {{-300.0f, 350.0f, -300.0f}, {300.0f, 600.0f, 300.0f}}, /*position*/ {{ 0.0f, -1000.0f, 0.0f}, { 0.0f, -1000.0f, 0.0f}}, /*velocitcy*/ {{-100.0f, 0.0f, -100.0f}, {100.0f, 200.0f, 100.0f}} /*acceleration*/ @@ -30,14 +30,14 @@ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8039277C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8039277C); particleEmitter_setAngularVelocityRange(pCtrl, 100.0f, 100.0f, 100.0f, 250.0f, 250.0f, 250.0f ); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392754); - func_802EF9F8(pCtrl, 0.6f); - func_802EFA18(pCtrl, 0); + particleEmitter_func_802EF9F8(pCtrl, 0.6f); + particleEmitter_func_802EFA18(pCtrl, 0); func_802EFA20(pCtrl, 1.0f, 1.3f); particleEmitter_setSfx(pCtrl, SFX_7B_ICE_BREAKING_1, 8000); particleEmitter_emitN(pCtrl, cnt); @@ -45,7 +45,7 @@ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){ void func_80390A30(f32 position[3], s32 cnt, enum asset_e sprite_id){ static ParticleScaleAndLifetimeRanges D_803927C4 = {{0.6f, 0.8f}, {1.0f, 1.4f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01f}; - static struct43s D_803927EC = { + static ParticleSettingsVelocityAccelerationPosition D_803927EC = { {{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}}, /*position*/ {{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}}, /*velocitcy*/ {{ -50.0f, 0.0f, -50.0f}, { 50.0f, 200.0f, 50.0f}} /*acceleration*/ @@ -55,7 +55,7 @@ void func_80390A30(f32 position[3], s32 cnt, enum asset_e sprite_id){ particleEmitter_setRGB(pCtrl, D_80392834); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803927EC); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803927EC); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803927C4); particleEmitter_emitN(pCtrl, cnt); } diff --git a/src/FP/ch/xmastreestar.c b/src/FP/ch/xmastreestar.c index e9142d38..eafa7a0a 100644 --- a/src/FP/ch/xmastreestar.c +++ b/src/FP/ch/xmastreestar.c @@ -17,7 +17,7 @@ void func_8038ECD8(Actor *this); /* .data */ ActorInfo D_80392470 = { 0x207, 0x339, 0x426, 0x1, NULL, - func_8038ECD8, func_80326224, func_8038EBD0, + func_8038ECD8, actor_update_func_80326224, func_8038EBD0, 0, 0, 0.0f, 0 }; diff --git a/src/FP/ch/xmastreeswitch.c b/src/FP/ch/xmastreeswitch.c index 42a323b3..dae78c0b 100644 --- a/src/FP/ch/xmastreeswitch.c +++ b/src/FP/ch/xmastreeswitch.c @@ -15,7 +15,7 @@ ActorAnimationInfo D_80392400[] = { ActorInfo D_80392420 = { 0x206, 0x338, 0x486, 0x1, D_80392400, - func_8038E940, func_80326224, func_8038E720, + func_8038E940, actor_update_func_80326224, func_8038E720, 4500, 0, 0.0f, 0 }; @@ -50,11 +50,11 @@ void func_8038E840(f32 position[3], s32 cnt, enum asset_e sprite_id){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -100.0f, -80.0f, -70.0f, 100.0f, 100.0f, 70.0f ); - particleEmitter_setParticleAccelerationRange(pCtrl, + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -200.0f, 0.0f, 0.0f, -200.0f, 0.0f ); diff --git a/src/FP/code_19E0.c b/src/FP/code_19E0.c index d503fe42..a5662531 100644 --- a/src/FP/code_19E0.c +++ b/src/FP/code_19E0.c @@ -23,7 +23,7 @@ ActorAnimationInfo D_80391C00[] = { ActorInfo D_80391C18 = { 0x125, 0x161, 0x38b, 0x1, D_80391C00, - func_803881AC, func_80326224, func_80387DD0, + func_803881AC, actor_update_func_80326224, func_80387DD0, 0, 0, 0.35f, 0 }; diff --git a/src/FP/code_1FF0.c b/src/FP/code_1FF0.c index d3dab825..f60699ee 100644 --- a/src/FP/code_1FF0.c +++ b/src/FP/code_1FF0.c @@ -18,7 +18,7 @@ ActorAnimationInfo D_80391C40[] = { ActorInfo D_80391C58 = { 0x126, 0x162, 0x38B, 0x1, D_80391C40, - func_80388584, func_80326224, func_803883E0, + func_80388584, actor_update_func_80326224, func_803883E0, 0, 0, 0.35f, 0 }; diff --git a/src/FP/code_A1C0.c b/src/FP/code_A1C0.c index 52c42f06..2251af5e 100644 --- a/src/FP/code_A1C0.c +++ b/src/FP/code_A1C0.c @@ -7,7 +7,7 @@ void func_803905B0(Actor *this); /* .data */ ActorInfo D_803926C0 = { 0x20E, 0x33E, 0x49C, 0x1, NULL, - func_803905B0, func_80326224, func_80325340, + func_803905B0, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/FP/code_ABD0.c b/src/FP/code_ABD0.c index 1dfee22f..ed34be0e 100644 --- a/src/FP/code_ABD0.c +++ b/src/FP/code_ABD0.c @@ -45,24 +45,24 @@ void func_8039180C(Actor *this); void func_80391894(Actor *this); /* .data */ -ActorInfo FP_D_803928E0 = { 0x247, 0x355, 0x4E5, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0}; -ActorInfo D_80392904 = { 0x248, 0x356, 0x4E6, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0}; -ActorInfo D_80392928 = { 0x249, 0x357, 0x4E7, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0}; -ActorInfo D_8039294C = { 0x24A, 0x358, 0x4E8, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0}; -ActorInfo D_80392970 = { 0x21F, 0x22B, 0x4C4, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392994 = { 0x220, 0x22C, 0x4C5, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803929B8 = { 0x221, 0x22D, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803929DC = { 0x222, 0x22E, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392A00 = { 0x223, 0x22F, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392A24 = { 0x24B, 0x35D, 0x4E9, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392A48 = { 0x24C, 0x35E, 0x4EC, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392A6C = { 0x24D, 0x35F, 0x4EA, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392A90 = { 0x24E, 0x360, 0x4EB, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392AB4 = { 0x23D, 0x253, 0x512, 0x1, NULL, func_8039180C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392AD8 = { 0x23E, 0x254, 0x513, 0x1, NULL, func_80391894, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392AFC = { 0x286, 0x3AE, 0x55B, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392B20 = { 0x21D, 0x229, 0x4C3, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392B44 = { 0x289, 0x3B0, 0x56A, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo FP_D_803928E0 = { 0x247, 0x355, 0x4E5, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0}; +ActorInfo D_80392904 = { 0x248, 0x356, 0x4E6, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0}; +ActorInfo D_80392928 = { 0x249, 0x357, 0x4E7, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0}; +ActorInfo D_8039294C = { 0x24A, 0x358, 0x4E8, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0}; +ActorInfo D_80392970 = { 0x21F, 0x22B, 0x4C4, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392994 = { 0x220, 0x22C, 0x4C5, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803929B8 = { 0x221, 0x22D, 0x4C6, 0x1, NULL, FP_func_80391254, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803929DC = { 0x222, 0x22E, 0x4C6, 0x1, NULL, FP_func_80391254, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392A00 = { 0x223, 0x22F, 0x4C6, 0x1, NULL, FP_func_80391254, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392A24 = { 0x24B, 0x35D, 0x4E9, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392A48 = { 0x24C, 0x35E, 0x4EC, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392A6C = { 0x24D, 0x35F, 0x4EA, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392A90 = { 0x24E, 0x360, 0x4EB, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392AB4 = { 0x23D, 0x253, 0x512, 0x1, NULL, func_8039180C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392AD8 = { 0x23E, 0x254, 0x513, 0x1, NULL, func_80391894, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392AFC = { 0x286, 0x3AE, 0x55B, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392B20 = { 0x21D, 0x229, 0x4C3, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392B44 = { 0x289, 0x3B0, 0x56A, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; /* .code */ int func_80390FC0(void){ diff --git a/src/GV/ch/ancientone.c b/src/GV/ch/ancientone.c index f81d5e4a..c57cab94 100644 --- a/src/GV/ch/ancientone.c +++ b/src/GV/ch/ancientone.c @@ -28,7 +28,7 @@ ActorAnimationInfo chAncientOneAnimations[] = { ActorInfo chAncientOne = { MARKER_F4_ANCIENT_ONE, ACTOR_147_ANCIENT_ONE, ASSET_3E8_MODEL_ANCIENT_ONE, 0x1, chAncientOneAnimations, - chAncientOne_update, func_80326224, chAncientOne_draw, + chAncientOne_update, actor_update_func_80326224, chAncientOne_draw, 0, 0x100, 0.0f, 0 }; diff --git a/src/GV/ch/gobi1.c b/src/GV/ch/gobi1.c index e173a801..27fa47f1 100644 --- a/src/GV/ch/gobi1.c +++ b/src/GV/ch/gobi1.c @@ -202,7 +202,7 @@ void chGobi1_update(Actor *this){ }//L80387830 if(this->state == 4){ - func_80326224(this); + actor_update_func_80326224(this); tmp_s1 = func_8033A12C(marker_loadModelBin(this->marker)); if(tmp_s1){ player_getPosition(sp54); diff --git a/src/GV/ch/gobi2.c b/src/GV/ch/gobi2.c index d5cfc02f..0a95c9e2 100644 --- a/src/GV/ch/gobi2.c +++ b/src/GV/ch/gobi2.c @@ -224,7 +224,7 @@ void chGobi2_update(Actor *this){ } if(this->state == 6){ - func_80326224(this); + actor_update_func_80326224(this); } if(this->state == 8){ diff --git a/src/GV/ch/gobi3.c b/src/GV/ch/gobi3.c index 51ad72bb..839889e9 100644 --- a/src/GV/ch/gobi3.c +++ b/src/GV/ch/gobi3.c @@ -143,7 +143,7 @@ void chGobi3_update(Actor *this){ } if(this->state == 4){ - func_80326224(this); + actor_update_func_80326224(this); if(timedFuncQueue_is_empty()) chGobi3_setState(this, 6); } diff --git a/src/GV/ch/gobirock.c b/src/GV/ch/gobirock.c index 4d16f707..1e275d4b 100644 --- a/src/GV/ch/gobirock.c +++ b/src/GV/ch/gobirock.c @@ -17,7 +17,7 @@ Actor *chGobiRock_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx /* .data */ ActorInfo chGobiRock = { MARKER_BE_GOBI_ROCK, ACTOR_130_GOBI_ROCK, ASSET_3E4_MODEL_GOBI_ROCK, 0, NULL, - chGobiRock_update, func_80326224, chGobiRock_draw, + chGobiRock_update, actor_update_func_80326224, chGobiRock_draw, 0, 0x533, 0.0f, 0 }; diff --git a/src/GV/ch/gobirope.c b/src/GV/ch/gobirope.c index 39863ddd..dea2be6d 100644 --- a/src/GV/ch/gobirope.c +++ b/src/GV/ch/gobirope.c @@ -8,7 +8,7 @@ void chGobiRope_update(Actor *this); /* .data */ ActorInfo chGobiRope = { MARKER_BD_GOBI_ROPE, ACTOR_12F_GOBI_ROPE, ASSET_3E3_MODEL_GOBI_ROPE, 0, NULL, - chGobiRope_update, func_80326224, actor_draw, + chGobiRope_update, actor_update_func_80326224, actor_draw, 0, 0x533, 0.0f, 0 }; diff --git a/src/GV/ch/histup.c b/src/GV/ch/histup.c index 7b2ad064..70342b4a 100644 --- a/src/GV/ch/histup.c +++ b/src/GV/ch/histup.c @@ -21,7 +21,7 @@ ActorAnimationInfo D_803912E0[] = { }; ActorInfo D_80391318 = { MARKER_AA_HISTUP, ACTOR_11C_HISTUP, ASSET_3DE_MODEL_HISTUP, 0x1, D_803912E0, - func_8038DBDC, func_80326224, func_8038DA18, + func_8038DBDC, actor_update_func_80326224, func_8038DA18, 2500, 0, 1.7f, 0 }; diff --git a/src/GV/ch/sarcophagus.c b/src/GV/ch/sarcophagus.c index dd203a9c..6af500e2 100644 --- a/src/GV/ch/sarcophagus.c +++ b/src/GV/ch/sarcophagus.c @@ -20,13 +20,13 @@ ActorAnimationInfo chSarcophagusAnimations[] = { ActorInfo chSarcophagus = { MARKER_A8_GV_MAZE_SARCOPHAGUS, ACTOR_11A_GV_MAZE_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS, 0x1, chSarcophagusAnimations, - chSarcophagus_update, func_80326224, actor_draw, + chSarcophagus_update, actor_update_func_80326224, actor_draw, 2500, 0, 0.0f, 0 }; ActorInfo chSNSSarcophagus = { MARKER_23B_GV_SNS_SARCOPHAGUS, ACTOR_244_GV_SNS_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS, 0x1, chSarcophagusAnimations, - chSarcophagus_updateSNS, func_80326224, actor_draw, + chSarcophagus_updateSNS, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/GV/ch/toots.c b/src/GV/ch/toots.c index 2153439b..dd8e87e9 100644 --- a/src/GV/ch/toots.c +++ b/src/GV/ch/toots.c @@ -14,7 +14,7 @@ ActorAnimationInfo chTootsAnimations[] = { ActorInfo chToots = { MARKER_1F4_TOOTS, ACTOR_1E4_TOOTS, ASSET_434_MODEL_TOOTS, 0x1, chTootsAnimations, - chtoots_update, func_80326224, actor_draw, + chtoots_update, actor_update_func_80326224, actor_draw, 2000, 0, 0.5f, 0 }; diff --git a/src/GV/code_2EE0.c b/src/GV/code_2EE0.c index b45c7f87..c7d6e8ec 100644 --- a/src/GV/code_2EE0.c +++ b/src/GV/code_2EE0.c @@ -13,7 +13,7 @@ extern ActorAnimationInfo D_80390DC0[]={ extern ActorInfo GV_D_80390DD0 = { MARKER_AF_MAGIC_CARPET_SHADOW, ACTOR_122_MAGIC_CARPET_SHADOW, ASSET_3E7_MODEL_MAGIC_CARPET_SHADOW, 0x1, D_80390DC0, - func_8038938C, func_80326224, func_803892D0, + func_8038938C, actor_update_func_80326224, func_803892D0, 2500, 0, 0.0f, 0 }; diff --git a/src/GV/code_3630.c b/src/GV/code_3630.c index 712f7ee2..0180d3d4 100644 --- a/src/GV/code_3630.c +++ b/src/GV/code_3630.c @@ -16,7 +16,7 @@ ActorAnimationInfo D_80390EA0[] = { ActorInfo D_80390ED0 = { MARKER_A9_RUBEE, ACTOR_11B_RUBEE, ASSET_3DD_MODEL_RUBEE, 0x2, D_80390EA0, - func_80389B1C, func_80326224, actor_draw, + func_80389B1C, actor_update_func_80326224, actor_draw, 2500, 0, 1.6f, 0 }; diff --git a/src/GV/code_3BB0.c b/src/GV/code_3BB0.c index 3c9bc7af..7e012b3f 100644 --- a/src/GV/code_3BB0.c +++ b/src/GV/code_3BB0.c @@ -8,11 +8,11 @@ void GV_func_8038A084(Actor *this); /* .data */ ActorInfo D_80390F40 = { 0x24F, 0x37C, 0x0, 0, NULL, - GV_func_8038A084, func_80326224, func_80325340, + GV_func_8038A084, actor_update_func_80326224, func_80325340, 2000, 0, 0.0f, 0 }; -struct40s D_80390F64 = { +ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80390F64 = { { {2.5f, 2.8f}, {4.0f, 5.0f}, {0.0f, 0.01f}, @@ -33,7 +33,7 @@ void func_80389FA0(f32 position[3]){ particleEmitter_setRGB(pCtrl, D_80390F94); particleEmitter_setAlpha(pCtrl, 100); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange( pCtrl, + particleEmitter_setSpawnPositionRange( pCtrl, -700.0f, 0.0f, -700.0f, 700.0f, 0.0f, 700.0f ); diff --git a/src/GV/code_4740.c b/src/GV/code_4740.c index ea1765d3..3ec5a757 100644 --- a/src/GV/code_4740.c +++ b/src/GV/code_4740.c @@ -22,12 +22,12 @@ ActorAnimationInfo D_80391040[] ={ ActorInfo D_80391098 = { MARKER_AD_SLAPPA, ACTOR_120_SLAPPA, ASSET_376_MODEL_SLAPPA, 0x1, D_80391040, - func_8038B124, func_80326224, actor_draw, + func_8038B124, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; s32 D_803910BC[3] = {175, 100, 0}; s32 D_803910C8[3] = {175, 140, 0}; -struct43s D_803910D4 = { +ParticleSettingsVelocityAccelerationPosition D_803910D4 = { {{-120.0f, 550.0f, -120.0f}, {120.0f, 950.0f, 120.0f}}, {{0.0f, -1400.0f, 0.0f}, {0.0f, -1400.0f, 0.0f}}, {{-100.0f, 0.0f, -100.0f}, {100.0f, 30.0f, 100.0f}} @@ -53,7 +53,7 @@ void func_8038AB30(ParticleEmitter *pCtrl, f32 position[3], s32 cnt){ void func_8038ABD8(f32 position[3], s32 cnt){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); func_8038AB30(pCtrl, position, cnt); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -40.0f, -5.0f, -40.0f, 60.0f, 20.0f, 60.0f ); @@ -71,7 +71,7 @@ void func_8038ABD8(f32 position[3], s32 cnt){ void func_8038ACEC(f32 pos[3], s32 cnt){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); func_8038AB30(pCtrl, pos, cnt); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -80.0f, 20.0f, -80.0f, 120.0f, 120.0f, 120.0f ); @@ -90,10 +90,10 @@ void func_8038ADFC(f32 pos[3], s32 cnt){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); particleEmitter_setModel(pCtrl, 0x389); particleEmitter_setPosition(pCtrl, pos); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803910D4); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803910D4); particleEmitter_setAngularVelocityRange(pCtrl, -500.0f, -500.0f, -500.0f, 500.0f, 500.0f, 500.0f); - func_802EF9F8(pCtrl, 0.6f); - func_802EFA18(pCtrl, 2); + particleEmitter_func_802EF9F8(pCtrl, 0.6f); + particleEmitter_func_802EFA18(pCtrl, 2); particleEmitter_setStartingScaleRange(pCtrl, 1.0f, 1.0f); particleEmitter_setDrawMode(pCtrl, 2); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); diff --git a/src/GV/code_5570.c b/src/GV/code_5570.c index 82fb1aeb..1f3b6770 100644 --- a/src/GV/code_5570.c +++ b/src/GV/code_5570.c @@ -26,7 +26,7 @@ ActorAnimationInfo D_80391120[] ={ ActorInfo D_80391158 = { MARKER_A6_GRABBA, ACTOR_118_GRABBA, ASSET_371_MODEL_GRABBA, 0x1, D_80391120, - GV_func_8038BEA0, func_80326224, actor_draw, + GV_func_8038BEA0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; @@ -122,7 +122,7 @@ void func_8038BBFC(ParticleEmitter *pCtrl, f32 position[3], s32 cnt){ void func_8038BC7C(f32 position[3], s32 cnt){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); func_8038BBFC(pCtrl, position, cnt); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -60.0f, 0.0f, -60.0f, 60.0f, 30.0f, 60.0f ); @@ -140,7 +140,7 @@ void func_8038BC7C(f32 position[3], s32 cnt){ void func_8038BD8C(f32 position[3], s32 cnt){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); func_8038BBFC(pCtrl, position, cnt); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -40.0f, 0.0f, -40.0f, 40.0f, 30.0f, 40.0f ); diff --git a/src/GV/code_61E0.c b/src/GV/code_61E0.c index 6e83aa3c..c7a9022f 100644 --- a/src/GV/code_61E0.c +++ b/src/GV/code_61E0.c @@ -17,7 +17,7 @@ ActorAnimationInfo D_80391190[] = { ActorInfo D_803911C0 = { 0xAC, 0x11E, 0x3E5, 0, D_80391190, - GV_func_8038C658, func_80326224, GV_func_8038C5D0, + GV_func_8038C658, actor_update_func_80326224, GV_func_8038C5D0, 0, 0, 0.0f, 0 }; diff --git a/src/GV/code_6370.c b/src/GV/code_6370.c index fce7a657..8125cfd8 100644 --- a/src/GV/code_6370.c +++ b/src/GV/code_6370.c @@ -24,19 +24,19 @@ Actor *func_8038CC40(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); u8 D_803911F0[3] = {0, 1, 2}; ActorInfo D_803911F4 = { 0xBB, 0x285, 0x3E6, 0, NULL, - func_8038CC98, func_80326224, func_8038CC40, + func_8038CC98, actor_update_func_80326224, func_8038CC40, 0, 0, 0.0f, 0 }; ActorInfo D_80391218 = { 0xBB, 0x286, 0x3E6, 0, NULL, - func_8038CC98, func_80326224, func_8038CC40, + func_8038CC98, actor_update_func_80326224, func_8038CC40, 0, 0, 0.0f, 0 }; ActorInfo D_8039123C = { 0xBB, 0x287, 0x3E6, 0, NULL, - func_8038CC98, func_80326224, func_8038CC40, + func_8038CC98, actor_update_func_80326224, func_8038CC40, 0, 0, 0.0f, 0 }; diff --git a/src/GV/code_7060.c b/src/GV/code_7060.c index 62affb7a..d65b7513 100644 --- a/src/GV/code_7060.c +++ b/src/GV/code_7060.c @@ -16,7 +16,7 @@ ActorAnimationInfo D_80391290[] = { }; ActorInfo D_803912B8 = { MARKER_F9_JINXY, ACTOR_1F7_JINXY, ASSET_422_MODEL_JINXY, 0x1, D_80391290, - func_8038D47C, func_80326224, actor_draw, + func_8038D47C, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/GV/code_7FC0.c b/src/GV/code_7FC0.c index cdeb2ec1..67ddd903 100644 --- a/src/GV/code_7FC0.c +++ b/src/GV/code_7FC0.c @@ -11,13 +11,13 @@ ActorAnimationInfo GV_D_80391380[] = { }; ActorInfo GV_D_80391390 = { 0xFA, 0x1F8, 0x423, 0x1, GV_D_80391380, - func_8038E3B0, func_80326224, actor_draw, + func_8038E3B0, actor_update_func_80326224, actor_draw, 0, 0x100, 0.0f, 0 }; ActorInfo D_803913B4 = { 0xFB, 0x1F9, 0x424, 0x1, GV_D_80391380, - func_8038E3B0, func_80326224, actor_draw, + func_8038E3B0, actor_update_func_80326224, actor_draw, 0, 0x100, 0.0f, 0 }; diff --git a/src/GV/code_7FF0.c b/src/GV/code_7FF0.c index 874c1844..b458937b 100644 --- a/src/GV/code_7FF0.c +++ b/src/GV/code_7FF0.c @@ -82,25 +82,25 @@ ActorAnimationInfo D_803913E0[] = { ActorInfo D_80391428 = { MARKER_EC_GV_SUN_SWITCH, ACTOR_13F_GV_SUN_SWITCH, ASSET_400_MODEL_SUN_SWITCH, 0x1, D_803913E0, - chSunSwitch_update, func_80326224, actor_draw, + chSunSwitch_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8039144C = { MARKER_F1_GV_STAR_SWITCH, ACTOR_144_GV_STAR_SWITCH, ASSET_3D7_MODEL_STAR_SWITCH, 0x1, D_803913E0, - chStarSwitch_update, func_80326224, actor_draw, + chStarSwitch_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; ActorInfo D_80391470 = { MARKER_F2_HONEYCOMB_SWITCH, ACTOR_145_HONEYCOMB_SWITCH, ASSET_438_MODEL_HONEYCOMB_SWITCH, 0x1, D_803913E0, - chHoneycombSwitch_update, func_80326224, actor_draw, + chHoneycombSwitch_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; ActorInfo D_80391494 = { MARKER_23C_GV_SNS_SWITCH, ACTOR_245_GV_SNS_SWITCH, ASSET_515_MODEL_GV_SNS_SWITCH, 0x1, D_803913E0, - func_8038EF14, func_80326224, actor_draw, + func_8038EF14, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; @@ -118,31 +118,31 @@ ActorInfo D_803914DC = { MARKER_ED_GV_SUN_DOOR, ACTOR_140_GV_SUN_DOOR, ASSET_3FF ActorInfo GV_D_80391500 = { MARKER_F0_GV_KAZOOIE_DOOR, ACTOR_143_GV_KAZOOIE_DOOR, ASSET_3D9_MODEL_GV_KAZOOIE_DOOR, 0x1, 0x0, - chKazooieDoor_update, func_80326224, func_80325F2C, + chKazooieDoor_update, actor_update_func_80326224, func_80325F2C, 0, 0, 0.0f, 0 }; ActorInfo GV_D_80391524 = { MARKER_EF_GV_STAR_HATCH, ACTOR_142_GV_STAR_HATCH, ASSET_3DB_MODEL_GV_STAR_HATCH, 0x1, 0x0, - func_8038E648, func_80326224, func_80325F2C, + func_8038E648, actor_update_func_80326224, func_80325F2C, 0, 0, 0.0f, 0 }; ActorInfo D_80391548 = { MARKER_F3_GV_KAZOOIE_TARGET, ACTOR_146_GV_KAZOOIE_TARGET, ASSET_3E2_MODEL_GV_KAZOOIE_TARGET, 0x1, 0x0, - chKazooieTarget_update, func_80326224, actor_drawFullDepth, + chKazooieTarget_update, actor_update_func_80326224, actor_drawFullDepth, 0, 0x400, 0.0f, 0 }; ActorInfo D_8039156C = { MARKER_F8_GV_KAZOOIE_DOOR, ACTOR_1F5_GV_KAZOOIE_DOOR, ASSET_3D9_MODEL_GV_KAZOOIE_DOOR, 0x1, 0x0, - func_8038E97C, func_80326224, func_80325F2C, + func_8038E97C, actor_update_func_80326224, func_80325F2C, 0, 0, 0.0f, 0 }; ActorInfo D_80391590 = { MARKER_23A_GV_SNS_CHAMBER_DOOR, ACTOR_243_GV_SNS_CHAMBER_DOOR, ASSET_514_MODEL_GV_SNS_CHAMBER_DOOR, 0x1, 0x0, - func_8038E914, func_80326224, func_80325F2C, + func_8038E914, actor_update_func_80326224, func_80325F2C, 0, 0, 0.0f, 0 }; diff --git a/src/MM/ch/chimpystump.c b/src/MM/ch/chimpystump.c index d2b2a29c..7266e0d2 100644 --- a/src/MM/ch/chimpystump.c +++ b/src/MM/ch/chimpystump.c @@ -23,7 +23,7 @@ enum chchimpystump_state_e { ActorInfo chchimpystump = { MARKER_95_CHIMPY_STUMP, ACTOR_C5_CHIMPY_STUMP, ASSET_3C8_MODEL_CHIMPY_STUMP, 1, NULL, - chchimpystump_update, func_80326224, actor_drawFullDepth, + chchimpystump_update, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; diff --git a/src/MM/ch/conga.c b/src/MM/ch/conga.c index 78f748fa..24659a85 100644 --- a/src/MM/ch/conga.c +++ b/src/MM/ch/conga.c @@ -46,7 +46,7 @@ ActorAnimationInfo chCongaAnimations[9] = { ActorInfo chcongaInfo = { MARKER_7_CONGA, ACTOR_8_CONGA, ASSET_35C_MODEL_CONGA, 1, chCongaAnimations, - func_803876D0, func_80326224, actor_draw, + func_803876D0, actor_update_func_80326224, actor_draw, 0, 0x333, 0.0f, 0 }; diff --git a/src/MM/ch/grublin.c b/src/MM/ch/grublin.c index 4cd2ea35..752cc8fd 100644 --- a/src/MM/ch/grublin.c +++ b/src/MM/ch/grublin.c @@ -42,7 +42,7 @@ ActorAnimationInfo chGrublinAnimations[11] = { ActorInfo chgrublinInfo = { MARKER_5_GRUBLIN, ACTOR_6_GRUBLIN, ASSET_3C5_MODEL_GRUBLIN, 1, chGrublinAnimations, - func_80388A80, func_80326224, actor_draw, + func_80388A80, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0 }; diff --git a/src/MM/ch/hut.c b/src/MM/ch/hut.c index 3992dda0..ec050d5f 100644 --- a/src/MM/ch/hut.c +++ b/src/MM/ch/hut.c @@ -117,6 +117,6 @@ void mm_resetHuts(void) { ActorInfo chhutInfo = { MARKER_51_MM_HUT, ACTOR_9_MM_HUT, ASSET_7D7_MODEL_MM_HUT, 0, chhutAnimations, - chhut_update, func_80326224, chhut_draw, + chhut_update, actor_update_func_80326224, chhut_draw, 0, 0x100, 0.0f, 0 }; diff --git a/src/MM/ch/juju.c b/src/MM/ch/juju.c index 544237b9..dcaf1f9b 100644 --- a/src/MM/ch/juju.c +++ b/src/MM/ch/juju.c @@ -34,7 +34,7 @@ enum chjuju_animation_state_e { ActorInfo chjujuInfo = { MARKER_67_JUJU, ACTOR_59_JUJU, ASSET_2E6_MODEL_JUJU, 0, NULL, - chjuju_update, func_80326224, chjuju_draw, + chjuju_update, actor_update_func_80326224, chjuju_draw, 0, 0, 0.0f, 0 }; diff --git a/src/MM/ch/jujuhitbox.c b/src/MM/ch/jujuhitbox.c index d04ad195..f9f15a40 100644 --- a/src/MM/ch/jujuhitbox.c +++ b/src/MM/ch/jujuhitbox.c @@ -24,7 +24,7 @@ void chjujuhitbox_setJuju(Actor *this, s32 slave_id, Actor *slavePtr); ActorInfo chjujuhitboxInfo = { MARKER_67_JUJU, ACTOR_11_JUJU_CTRL, 0, 3, NULL, - chjujuhitbox_update, func_80326224, chjujuhitbox_draw, + chjujuhitbox_update, actor_update_func_80326224, chjujuhitbox_draw, 0, 0, 0.0f, 0 }; diff --git a/src/MM/ch/orange.c b/src/MM/ch/orange.c index 62f54a49..ff0aa018 100644 --- a/src/MM/ch/orange.c +++ b/src/MM/ch/orange.c @@ -19,7 +19,7 @@ enum chorange_state_e { ActorInfo chorangeInfo = { MARKER_C_ORANGE_PROJECTILE, ACTOR_14_ORANGE_PROJECTILE, ASSET_2D2_MODEL_ORANGE, 1, NULL, - chorange_update, func_80326224, chorange_draw, + chorange_update, actor_update_func_80326224, chorange_draw, 0, 0, 0.6f, 0 }; diff --git a/src/MM/ch/orangepad.c b/src/MM/ch/orangepad.c index 0943cac0..30a4cc0c 100644 --- a/src/MM/ch/orangepad.c +++ b/src/MM/ch/orangepad.c @@ -3,7 +3,7 @@ #include "variables.h" /* extern functions */ -void func_80326224(Actor *); +void actor_update_func_80326224(Actor *); void func_80329904(ActorMarker *, s32, void *); extern void func_802EFA20(ParticleEmitter *, f32, f32); @@ -14,7 +14,7 @@ void chorangepad_update(Actor *); ActorInfo chorangepadInfo = { MARKER_66_ORANGE_PAD, ACTOR_57_ORANGE_PAD, ASSET_2EB_MODEL_ORANGE_PAD, 0, NULL, - chorangepad_update, func_80326224, actor_draw, + chorangepad_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; @@ -66,12 +66,12 @@ void func_80386444(ActorMarker *marker) { particleEmitter_setStartingScaleRange(p_ctrl, 0.09f, 0.19f); particleEmitter_setFinalScaleRange(p_ctrl, 0.0f, 0.0f); particleEmitter_setParticleVelocityRange(p_ctrl, -200.0f, 500.0f, -200.0f, 200.0f, 700.0f, 200.0f); - particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f); + particleEmitter_setAccelerationRange(p_ctrl, 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f); particleEmitter_setAngularVelocityRange(p_ctrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(p_ctrl, 4.0f, 4.0f); - func_802EF9F8(p_ctrl, 0.01f); - func_802EFA18(p_ctrl, 3); + particleEmitter_func_802EF9F8(p_ctrl, 0.01f); + particleEmitter_func_802EFA18(p_ctrl, 3); func_802EFA20(p_ctrl, 1.0f, 1.3f); particleEmitter_emitN(p_ctrl, 30); } diff --git a/src/MMM/ch/loggo.c b/src/MMM/ch/loggo.c index 5d0809b8..3690c7a6 100644 --- a/src/MMM/ch/loggo.c +++ b/src/MMM/ch/loggo.c @@ -16,7 +16,7 @@ ActorAnimationInfo chLoggoAnimations[] = { ActorInfo chLoggo = { MARKER_252_LOGGO, ACTOR_37F_LOGGO, ASSET_519_MODEL_LOGGO, 0x1, chLoggoAnimations, - chLoggo_update, func_80326224, actor_draw, + chLoggo_update, actor_update_func_80326224, actor_draw, 1000, 0, 0.0f, 0 }; diff --git a/src/MMM/ch/motzhand.c b/src/MMM/ch/motzhand.c index 667195a3..c366b1d5 100644 --- a/src/MMM/ch/motzhand.c +++ b/src/MMM/ch/motzhand.c @@ -17,7 +17,7 @@ Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); ActorInfo chMotzhand = { MARKER_49_MOTZHAND, ACTOR_3A_MOTZHAND, ASSET_88C_MODEL_MOTZHAND, 0x0, NULL, - chmotzhand_update, func_80326224, chMotzhand_draw, + chmotzhand_update, actor_update_func_80326224, chMotzhand_draw, 0, 0, 0.0f, 0 }; diff --git a/src/MMM/ch/napper.c b/src/MMM/ch/napper.c index fddf3edc..da82b62d 100644 --- a/src/MMM/ch/napper.c +++ b/src/MMM/ch/napper.c @@ -218,7 +218,7 @@ void chnapper_update(Actor *this){ }//L80387154 if(this->state == 4){ - func_80326224(this); + actor_update_func_80326224(this); if(0.99 <= this->unk48) marker_despawn(this->marker); } diff --git a/src/MMM/code_16B0.c b/src/MMM/code_16B0.c index 5b1371ef..669ff195 100644 --- a/src/MMM/code_16B0.c +++ b/src/MMM/code_16B0.c @@ -118,7 +118,7 @@ void func_80387D48(ActorMarker *marker){ void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) { static s32 D_8038BAF4[3] = {0xB4, 0xFF, 0x8C}; static ParticleScaleAndLifetimeRanges D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f}; - static struct43s D_8038BB28 = { + static ParticleSettingsVelocityAccelerationPosition D_8038BB28 = { {{-150.0f, 250.0f, -150.0f}, {150.0f, 300.0f, 150.0f}}, {{ 0.0f, -600.0f, 0.0f}, { 0.0f, -600.0f, 0.0f}}, {{ -50.0f, -50.0f, -50.0f}, { 50.0f, 50.0f, 50.0f}} @@ -129,14 +129,14 @@ void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) { particleEmitter_setRGB(pCtrl, D_8038BAF4); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB28); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038BB28); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038BB00); particleEmitter_emitN(pCtrl, count); } void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) { static ParticleScaleAndLifetimeRanges D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f}; - static struct43s D_8038BB98 = { + static ParticleSettingsVelocityAccelerationPosition D_8038BB98 = { {{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}}, {{-50.0f, 0.0f, -50.0f}, {50.0f, 50.0f, 50.0f}} @@ -146,10 +146,10 @@ void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) { pCtrl = partEmitMgr_newEmitter(count); particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB98); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038BB98); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); - func_802EF9F8(pCtrl, 0.4f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.4f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 1.0f, 1.3f); particleEmitter_setSfx(pCtrl, SFX_2F_ORANGE_SPLAT, 16000); particleEmitter_setDrawMode(pCtrl, 2); diff --git a/src/MMM/code_2040.c b/src/MMM/code_2040.c index 597967a1..d2b5a75a 100644 --- a/src/MMM/code_2040.c +++ b/src/MMM/code_2040.c @@ -63,98 +63,98 @@ ActorAnimationInfo D_8038BBE0[] = { ActorInfo D_8038BC28 = { 0x9C, 0x109, 0x3CD, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BC4C = { 0x9E, 0x10B, 0x3CF, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BC70 = { 0x9A, 0xCB, 0x3CC, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BC94 = { 0xA2, 0x114, 0x3D3, 0x1, NULL, - func_80388BDC, func_80326224, actor_drawFullDepth, + func_80388BDC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BCB8 = { 0xE7, 0x265, 0x4DA, 0x1, NULL, - func_80389004, func_80326224, actor_drawFullDepth, + func_80389004, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BCDC = { 0x9D, 0x10A, 0x3CE, 0x1, NULL, - func_80389004, func_80326224, actor_drawFullDepth, + func_80389004, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BD00 = { 0xD3, 0x191, 0x50B, 0x1, NULL, - func_80389060, func_80326224, actor_drawFullDepth, + func_80389060, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BD24 = { 0x123, 0x2E8, 0x4C0, 0x1, NULL, - func_803890B8, func_80326224, actor_drawFullDepth, + func_803890B8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BD48 = { 0x1F2, 0x2E9, 0x4C1, 0x1, NULL, - func_803890B8, func_80326224, actor_drawFullDepth, + func_803890B8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BD6C = { 0x1F3, 0x2EA, 0x4C2, 0x1, NULL, - func_803890B8, func_80326224, actor_drawFullDepth, + func_803890B8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038BD90 = { 0xFE, 0x1FD, 0x43D, 0x1, D_8038BBE0, - func_80388FE4, func_80326224, actor_draw, + func_80388FE4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; ActorInfo D_8038BDB4 = { 0x9F, 0x10C, 0x3D0, 0x1, NULL, - func_803888B8, func_80326224, func_80388994, + func_803888B8, actor_update_func_80326224, func_80388994, 0, 0, 0.0f, 0 }; ActorInfo D_8038BDD8 = { 0xA0, 0x10D, 0x3D1, 0x1, NULL, - func_803888B8, func_80326224, func_80388994, + func_803888B8, actor_update_func_80326224, func_80388994, 0, 0, 0.0f, 0 }; ActorInfo D_8038BDFC = { 0xFF, 0x1FE, 0x43E, 0x1, NULL, - func_803888B8, func_80326224, func_80388994, + func_803888B8, actor_update_func_80326224, func_80388994, 0, 0, 0.0f, 0 }; diff --git a/src/MMM/code_2F60.c b/src/MMM/code_2F60.c index 8b6d82d4..8c184381 100644 --- a/src/MMM/code_2F60.c +++ b/src/MMM/code_2F60.c @@ -15,42 +15,42 @@ ActorAnimationInfo D_8038BE30[] ={ ActorInfo D_8038BE48 = { MARKER_255_PORTRAIT_OF_GRUNTY, ACTOR_382_PORTRAIT_OF_GRUNTY, ASSET_522_MODEL_PORTRAIT_OF_GRUNTY, 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + func_803893A4, actor_update_func_80326224, func_80389350, 0, 0, 0.0f, 0 }; ActorInfo D_8038BE6C = { MARKER_257_PORTRAIT_OF_BLACKEYE, ACTOR_384_PORTRAIT_OF_BLACKEYE, ASSET_527_MODEL_PORTRAIT_OF_BLACKEYE, 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + func_803893A4, actor_update_func_80326224, func_80389350, 0, 0, 0.0f, 0 }; ActorInfo D_8038BE90 = { MARKER_258_PORTRAIT_OF_TOWER, ACTOR_385_PORTRAIT_OF_TOWER, ASSET_528_MODEL_PORTRAIT_OF_TOWER, 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + func_803893A4, actor_update_func_80326224, func_80389350, 0, 0, 0.0f, 0 }; ActorInfo D_8038BEB4 = { MARKER_259_PORTRAIT_OF_TREE_AND_MOON, ACTOR_386_PORTRAIT_OF_TREE_AND_MOON, ASSET_529_MODEL_PORTRAIT_OF_TREE_AND_MOON, 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + func_803893A4, actor_update_func_80326224, func_80389350, 0, 0, 0.0f, 0 }; ActorInfo D_8038BED8 = { MARKER_25A_PORTRAIT_OF_TEEHEE, ACTOR_387_PORTRAIT_OF_TEEHEE, ASSET_52A_MODEL_PORTRAIT_OF_TEEHEE, 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + func_803893A4, actor_update_func_80326224, func_80389350, 0, 0, 0.0f, 0 }; ActorInfo D_8038BEFC = { MARKER_25B_PORTRAIT_OF_MINION, ACTOR_388_PORTRAIT_OF_MINION, ASSET_52B_MODEL_PORTRAIT_OF_MINION, 0x1, D_8038BE30, - func_803893A4, func_80326224, func_80389350, + func_803893A4, actor_update_func_80326224, func_80389350, 0, 0, 0.0f, 0 }; diff --git a/src/MMM/code_DC0.c b/src/MMM/code_DC0.c index 866d26ea..f930839e 100644 --- a/src/MMM/code_DC0.c +++ b/src/MMM/code_DC0.c @@ -14,7 +14,7 @@ ActorAnimationInfo D_8038BA50[] = { ActorInfo D_8038BA68 = { MARKER_34_CEMETARY_POT, ACTOR_25_CEMETARY_POT, ASSET_3AE_MODEL_GRAVE_FLOWER_POT, 0x1, D_8038BA50, - func_80387280, func_80326224, actor_draw, + func_80387280, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/RBB/ch/boombox.c b/src/RBB/ch/boombox.c index 3eb592e8..3f79a4e9 100644 --- a/src/RBB/ch/boombox.c +++ b/src/RBB/ch/boombox.c @@ -80,7 +80,7 @@ void func_8038E998(Actor *this){ particleEmitter_setPosition(other, this->position); particleEmitter_setStartingScaleRange(other, 0.25f, 0.75f); particleEmitter_setFinalScaleRange(other, 0.75f, 1.75f); - particleEmitter_setParticleSpawnPositionRange(other, -50.0f, 25.0f, -50.0f, 50.0f, 25.0f, 50.0f); + particleEmitter_setSpawnPositionRange(other, -50.0f, 25.0f, -50.0f, 50.0f, 25.0f, 50.0f); particleEmitter_setParticleVelocityRange(other, -50.0f, 100.0f, -50.0f, 50.0f, 200.0f, 50.0f); particleEmitter_setParticleLifeTimeRange(other, 0.5f, 1.0f); particleEmitter_emitN(other, 2); @@ -95,7 +95,7 @@ void func_8038EAB4(Actor *this){ particleEmitter_setDrawMode(other, PART_EMIT_NO_LOOP); particleEmitter_setStartingFrameRange(other, 0, 0); particleEmitter_setParticleFramerateRange(other, 4.0f, 4.0f); - particleEmitter_setParticleSpawnPositionRange(other, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); + particleEmitter_setSpawnPositionRange(other, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); particleEmitter_setPosition(other, this->position); particleEmitter_setStartingScaleRange(other, 3.0f, 3.0f); particleEmitter_setFinalScaleRange(other, 8.0f, 8.0f); @@ -113,7 +113,7 @@ void func_8038EC14(Actor *this){ particleEmitter_setPosition(other, this->position); particleEmitter_setStartingScaleRange(other, 1.0f, 1.5f); particleEmitter_setFinalScaleRange(other, 2.0f, 3.0f); - particleEmitter_setParticleSpawnPositionRange(other, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f); + particleEmitter_setSpawnPositionRange(other, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f); particleEmitter_setParticleVelocityRange(other, -70.0f, 50.0f, -70.0f, 70.0f, 100.0f, 70.0f); particleEmitter_setRGB(other, &RBB_D_80390DD0); particleEmitter_setParticleLifeTimeRange(other, 3.0f, 4.0f); @@ -122,9 +122,9 @@ void func_8038EC14(Actor *this){ void func_8038ED3C(Actor * actor, s32 arg1){ ParticleEmitter *other = partEmitMgr_newEmitter(0xa); - particleEmitter_setParticleAccelerationRange(other, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); - func_802EF9F8(other, 0.6f); - func_802EFA18(other, 3); + particleEmitter_setAccelerationRange(other, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); + particleEmitter_func_802EF9F8(other, 0.6f); + particleEmitter_func_802EFA18(other, 3); particleEmitter_setModel(other, arg1); particleEmitter_setPosition(other, actor->position); particleEmitter_setStartingScaleRange(other, 0.05f, 0.4f); diff --git a/src/RBB/ch/bossboombox.c b/src/RBB/ch/bossboombox.c index f76ae9ef..b3204aa3 100644 --- a/src/RBB/ch/bossboombox.c +++ b/src/RBB/ch/bossboombox.c @@ -72,14 +72,14 @@ ActorInfo RBB_D_80390C3C = { s32 D_80390C60[3] = {0xDE, 0xA7, 0x71}; -struct41s D_80390C6C = { +ParticleSettingsVelocityAcceleration D_80390C6C = { { {-200.0f, 200.0f, -200.0f}, {200.0f, 500.0f, 200.0f} }, { {0.0f, -800.0f, 0.0f}, {0.0f, -800.0f, 0.0f} } }; s32 D_80390C9C[3] = {0xDE, 0xA7, 0x71}; -struct43s D_80390CA8 = { +ParticleSettingsVelocityAccelerationPosition D_80390CA8 = { { {-200.0f, 0.0f, -200.0f}, {200.0f, -50.0f, 200.0f} }, { {0.0f, 200.0f, 0.0f}, {0.0f, 400.0f, 0.0f} }, { {-10.0f, -10.0f, -10.0f}, {10.0f, 10.0f, 10.0f} } @@ -106,7 +106,7 @@ void func_8038C39C(Actor *this){ particleEmitter_setPosition(other, this->position); particleEmitter_setStartingScaleRange(other, local->unk0->unk4*1, local->unk0->unk4*3.0f); particleEmitter_setFinalScaleRange(other, 3.0f*local->unk0->unk4, local->unk0->unk4*7.0f); - particleEmitter_setParticleSpawnPositionRange(other, + particleEmitter_setSpawnPositionRange(other, local->unk0->unk4*-200.0f, local->unk0->unk4*100.0f, local->unk0->unk4*-200.0f, local->unk0->unk4*200.0f, local->unk0->unk4*100.0f, local->unk0->unk4*200.0f ); @@ -128,7 +128,7 @@ void RBB_func_8038C538(Actor *this){ particleEmitter_setPosition(other, this->position); particleEmitter_setStartingScaleRange(other, local->unk0->unk4*1, local->unk0->unk4*6.0f); particleEmitter_setFinalScaleRange(other, 0.5*local->unk0->unk4, local->unk0->unk4*3.0f); - particleEmitter_setParticleSpawnPositionRange(other, + particleEmitter_setSpawnPositionRange(other, local->unk0->unk4*-300.0f, local->unk0->unk4*100.0f, local->unk0->unk4*-300.0f, local->unk0->unk4*300.0f, local->unk0->unk4*300.0f, local->unk0->unk4*300.0f ); @@ -146,11 +146,11 @@ void RBB_func_8038C70C(Actor *this){ ActorLocal_RBB_5F80 *local = (ActorLocal_RBB_5F80 *) &this->local; ParticleEmitter *other = partEmitMgr_newEmitter(0xa); - func_802EF9F8(other, 0.6f); - func_802EFA18(other, 3); + particleEmitter_func_802EF9F8(other, 0.6f); + particleEmitter_func_802EFA18(other, 3); particleEmitter_setDrawMode(other, 4); particleEmitter_setModel(other, 0x427); - particleEmitter_setParticleSpawnPositionRange(other, + particleEmitter_setSpawnPositionRange(other, local->unk0->unk4 * -300.0f, local->unk0->unk4 * 100.0f, local->unk0->unk4 * -300.0f, local->unk0->unk4 * 300.0f, local->unk0->unk4 * 200.0f, local->unk0->unk4 * 300.0f ); @@ -183,7 +183,7 @@ void func_8038C8A8(Actor * this){ particleEmitter_setPosition(other, sp24); particleEmitter_setStartingScaleRange(other, local->unk0->unk4*1, local->unk0->unk4*3.0f); particleEmitter_setFinalScaleRange(other, local->unk0->unk4*3.0f, local->unk0->unk4*6.0f); - particleEmitter_setPositionVelocityAndAccelerationRanges(other, &D_80390CA8); + particleEmitter_setVelocityAccelerationAndPositionRanges(other, &D_80390CA8); particleEmitter_setParticleLifeTimeRange(other, 1.0f, 2.0f); particleEmitter_setRGB(other, &D_80390C9C); particleEmitter_emitN(other, 5); diff --git a/src/RBB/ch/dolphin.c b/src/RBB/ch/dolphin.c index 8024a7ef..5beca9cf 100644 --- a/src/RBB/ch/dolphin.c +++ b/src/RBB/ch/dolphin.c @@ -56,7 +56,7 @@ void func_8038B900(Actor *this){ other = func_802EDD8C(&sp48, 0.0f, -1300.0f); particleEmitter_setStartingScaleRange(other, 0.04f, 0.04f); particleEmitter_setFinalScaleRange(other, 0.18f, 0.18f); - particleEmitter_setParticleSpawnPositionRange(other, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f); + particleEmitter_setSpawnPositionRange(other, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f); particleEmitter_setParticleVelocityRange(other, 0.0f, 31.0f, 0.0f, 0.0f, 37.0f, 0.0f); particleEmitter_emitN(other, 1); } @@ -105,7 +105,7 @@ void func_8038B900(Actor *this){ } if(this->state == 3){ - func_80326224(this); + actor_update_func_80326224(this); if(0.99 < this->unk48){ mapSpecificFlags_set(4, FALSE); marker_despawn(this->marker); diff --git a/src/RBB/ch/whistle.c b/src/RBB/ch/whistle.c index 5344746c..310dab53 100644 --- a/src/RBB/ch/whistle.c +++ b/src/RBB/ch/whistle.c @@ -77,12 +77,12 @@ void RBB_func_8038B0B8(Actor *this, s32 arg1){ timed_playSfx(0.1f, local->unk0->unk14, 1.0f, 0x7d00); other = partEmitMgr_newEmitter(0xa); particleEmitter_setSprite(other, ASSET_70E_SPRITE_SMOKE_2); - particleEmitter_setParticleAccelerationRange(other, + particleEmitter_setAccelerationRange(other, 0.0f, 100.0f, 0.0f, 0.0f, 250.0f, 0.0f ); particleEmitter_setStartingFrameRange(other, 0, 7); - particleEmitter_setParticleSpawnPositionRange(other, + particleEmitter_setSpawnPositionRange(other, -5.0f, -5.0f, 0.0f, 5.0f, 5.0f, 0.0f ); diff --git a/src/RBB/code_1570.c b/src/RBB/code_1570.c index b873bc77..1c9b8609 100644 --- a/src/RBB/code_1570.c +++ b/src/RBB/code_1570.c @@ -38,7 +38,7 @@ ParticleScaleAndLifetimeRanges D_80390304 = { f32 D_8039032C[3] = {3700.0f, -300.0f, -300.0f}; f32 D_80390338[3] = {4500.0f, 100.0f, 400.0f}; -struct41s D_80390344= { +ParticleSettingsVelocityAcceleration D_80390344= { {{-700.0f, 200.0f, -700.0f}, {700.0f, 500.0f, 700.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}} }; @@ -149,8 +149,8 @@ void func_80387D80(void){ void func_80387E20(void){ ParticleEmitter *actor = partEmitMgr_newEmitter(0x19); - func_802EF9F8(actor, 0.6f); - func_802EFA18(actor, 3); + particleEmitter_func_802EF9F8(actor, 0.6f); + particleEmitter_func_802EFA18(actor, 3); particleEmitter_setModel(actor, 0x427); particleEmitter_setStartingScaleRange(actor, 0.05f, 0.4f); particleEmitter_setAngularVelocityRange(actor, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); diff --git a/src/RBB/code_640.c b/src/RBB/code_640.c index 240e7f38..2f361023 100644 --- a/src/RBB/code_640.c +++ b/src/RBB/code_640.c @@ -78,49 +78,49 @@ ActorAnimationInfo D_803900C0[4] = { ActorInfo D_803900E0 = { 0x107, 0x21D, 0x493, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_80390104 = { 0x108, 0x21C, 0x492, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_80390128 = { 0x22D, 0x266, 0x4BA, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8039014C = { 0x22E, 0x267, 0x4BB, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_80390170 = { 0x235, 0x23F, 0x4E2, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_80390194 = { 0x15F, 0x18F, 0x42F, 0x1, D_803900C0, - func_80386BF8, func_80326224, actor_draw, + func_80386BF8, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; ActorInfo D_803901B8 = { 0x22F, 0x263, 0x4DB, 0x1, NULL, - func_80386A7C, func_80326224, func_80386B9C, + func_80386A7C, actor_update_func_80326224, func_80386B9C, 0, 0, 0.0f, 0 }; ActorInfo D_803901DC = { 0x230, 0x264, 0x4DE, 0x1, NULL, - func_80386A7C, func_80326224, func_80386B9C, + func_80386A7C, actor_update_func_80326224, func_80386B9C, 0, 0, 0.0f, 0 }; diff --git a/src/SM/ch/attacktutorial.c b/src/SM/ch/attacktutorial.c index a2a1945a..da5f106f 100644 --- a/src/SM/ch/attacktutorial.c +++ b/src/SM/ch/attacktutorial.c @@ -17,7 +17,7 @@ void chAttackTutorial_update(Actor *); /* .data */ ActorInfo D_8038AC20 = { MARKER_12B_ATTACK_TUTORIAL, ACTOR_167_ATTACK_TUTORIAL, 0, 1, NULL, - chAttackTutorial_update, func_80326224, func_80325340, + chAttackTutorial_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/SM/ch/vegetables.c b/src/SM/ch/vegetables.c index b243ec3c..7e91ddbd 100644 --- a/src/SM/ch/vegetables.c +++ b/src/SM/ch/vegetables.c @@ -33,12 +33,12 @@ ActorAnimationInfo chCarrotAnimations[5] = { }; ActorInfo D_8038AC78 = { MARKER_12A_TOPPER_A, ACTOR_166_TOPPER_A, MODEL_TOPPER, 1, chCarrotAnimations, - func_80388080, func_80326224, func_80387DF4, + func_80388080, actor_update_func_80326224, func_80387DF4, 2000, 0, 1.0f, 0 }; ActorInfo D_8038AC9C = { MARKER_1E6_TOPPER_B, ACTOR_TOPPER_B, MODEL_TOPPER, 1, chCarrotAnimations, - func_80388080, func_80326224, func_80387DF4, + func_80388080, actor_update_func_80326224, func_80387DF4, 2000, 0, 1.0f, 0 }; @@ -51,12 +51,12 @@ ActorAnimationInfo chOnionAnimations[5] = { }; ActorInfo D_8038ACE8 = { MARKER_129_BAWL_A, ACTOR_165_BAWL_A, MODEL_BAWL, 1, chOnionAnimations, - func_80388080, func_80326224, func_80387DF4, + func_80388080, actor_update_func_80326224, func_80387DF4, 0, 0, 1.0f, 0 }; ActorInfo D_8038AD0C = { MARKER_1E7_BAWL_B, ACTOR_BAWL_B, MODEL_BAWL, 1, chOnionAnimations, - func_80388080, func_80326224, func_80387DF4, + func_80388080, actor_update_func_80326224, func_80387DF4, 0, 0, 1.0f, 0 }; @@ -69,12 +69,12 @@ ActorAnimationInfo chCauliflowerAnimations[5] = { }; ActorInfo D_8038AD58 = { MARKER_128_COLLYWOBBLE_A, ACTOR_164_COLLYWOBBLE_A, MODEL_COLLYWOBBLE, 1, chCauliflowerAnimations, - func_80388080, func_80326224, func_80387DF4, + func_80388080, actor_update_func_80326224, func_80387DF4, 0, 0, 2.0f, 0 }; ActorInfo D_8038AD7C = { MARKER_1E8_COLLYWOBBLE_B, ACTOR_COLLYWOBBLE_B, MODEL_COLLYWOBBLE, 1, chCauliflowerAnimations, - func_80388080, func_80326224, func_80387DF4, + func_80388080, actor_update_func_80326224, func_80387DF4, 0, 0, 2.0f, 0 }; @@ -88,7 +88,7 @@ ParticleScaleAndLifetimeRanges D_8038ADAC = { 0.0f, 0.01f, }; -struct42s D_8038ADD4 = { +ParticleSettingsVelocityPosition D_8038ADD4 = { {{-100.0f, -100.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}, {{-40.0f, -40.0f, -40.0f}, {40.0f, 40.0f, 40.0f}} }; @@ -101,7 +101,7 @@ ParticleScaleAndLifetimeRanges D_8038AE04 = { 0.0f, 0.2f }; -struct43s D_8038AE2C = { +ParticleSettingsVelocityAccelerationPosition D_8038AE2C = { {{-100.0f, 200.0f, -100.0f}, {100.0f, 400.0f, 100.0f}}, {{0.0f, -600.0f, 0.0f}, {0.0f, -600.0f, 0.0f}}, {{-80.0f, -80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}} @@ -115,7 +115,7 @@ ParticleScaleAndLifetimeRanges D_8038AE74 = { 0.0f, 0.5f }; -struct43s D_8038AE9C = { +ParticleSettingsVelocityAccelerationPosition D_8038AE9C = { {{-100.0f, 400.0f, -100.0f}, {100.0f, 600.0f, 100.0f}}, {{0.0f, -600.0f, 0.0f}, {0.0f, -600.0f, 0.0f}}, {{-20.0f, -20.0f, -20.0f}, {20.0f, 20.0f, 20.0f}} @@ -129,7 +129,7 @@ ParticleScaleAndLifetimeRanges D_8038AEE4 = { 0.0f, 0.5f }; -struct43s D_8038AF0C ={ +ParticleSettingsVelocityAccelerationPosition D_8038AF0C ={ {{-200.0f, 200.0f, -200.0f}, {200.0f, 600.0f, 200.0f}}, {{0.0f, -900.0f, 0.0f}, {0.0f, -900.0f, 0.0f}}, {{-100.0f, -100.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}, @@ -148,39 +148,39 @@ void func_80387910(ParticleEmitter *arg0, f32 *arg1, s32 arg2){ } void func_803879B8(ParticleEmitter *arg0, f32 *arg1, s32 arg2, enum asset_e model_id){ - func_802EF9F8(arg0, 0.6f); - func_802EFA18(arg0, 2); + particleEmitter_func_802EF9F8(arg0, 0.6f); + particleEmitter_func_802EFA18(arg0, 2); particleEmitter_setModel(arg0, model_id); particleEmitter_setPosition(arg0, arg1); particleEmitter_setDrawMode(arg0, 2); particleEmitter_setAngularVelocityRange(arg0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038AE04); - particleEmitter_setPositionVelocityAndAccelerationRanges(arg0, &D_8038AE2C); + particleEmitter_setVelocityAccelerationAndPositionRanges(arg0, &D_8038AE2C); particleEmitter_emitN(arg0, arg2); } void func_80387A80(ParticleEmitter *arg0, f32 *arg1, s32 arg2, enum asset_e model_id){ - func_802EF9F8(arg0, 0.6f); - func_802EFA18(arg0, 3); + particleEmitter_func_802EF9F8(arg0, 0.6f); + particleEmitter_func_802EFA18(arg0, 3); particleEmitter_setModel(arg0, model_id); particleEmitter_setPosition(arg0, arg1); particleEmitter_setDrawMode(arg0, 2); particleEmitter_setAngularVelocityRange(arg0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038AE74); - particleEmitter_setPositionVelocityAndAccelerationRanges(arg0, &D_8038AE9C); + particleEmitter_setVelocityAccelerationAndPositionRanges(arg0, &D_8038AE9C); particleEmitter_emitN(arg0, arg2); } void func_80387B48(ParticleEmitter *arg0, f32 arg1[3], s32 arg2, enum asset_e model_id){ - func_802EF9F8(arg0, 0.7f); - func_802EFA18(arg0, 4); + particleEmitter_func_802EF9F8(arg0, 0.7f); + particleEmitter_func_802EFA18(arg0, 4); particleEmitter_setModel(arg0, model_id); particleEmitter_setPosition(arg0, arg1); particleEmitter_setDrawMode(arg0, 2); particleEmitter_setAngularVelocityRange(arg0, 150.0f, -300.0f, -300.0f, 300.0f, 300.0f, -150.0f); particleEmitter_setSfx(arg0, SFX_1F_HITTING_AN_ENEMY_3, 8000); particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038AEE4); - particleEmitter_setPositionVelocityAndAccelerationRanges(arg0, &D_8038AF0C); + particleEmitter_setVelocityAccelerationAndPositionRanges(arg0, &D_8038AF0C); particleEmitter_emitN(arg0, arg2); } diff --git a/src/SM/code_2990.c b/src/SM/code_2990.c index c9ad4143..a09f6dfb 100644 --- a/src/SM/code_2990.c +++ b/src/SM/code_2990.c @@ -35,7 +35,7 @@ ActorAnimationInfo smMoleAnimations[6] = { ActorInfo chSmMole = { MARKER_B7_TUTORIAL_BOTTLES, ACTOR_12B_TUTORIAL_BOTTLES, ASSET_387_MODEL_BOTTLES, 1, smMoleAnimations, - chsmmole_Update, func_80326224, func_802D94B4, + chsmmole_Update, actor_update_func_80326224, func_802D94B4, 0, 0, 0.0f, 0 }; diff --git a/src/SM/code_3FC0.c b/src/SM/code_3FC0.c index 92dbfbfe..0ae84e97 100644 --- a/src/SM/code_3FC0.c +++ b/src/SM/code_3FC0.c @@ -17,7 +17,7 @@ ActorAnimationInfo D_8038AFF0[] = { ActorInfo D_8038B008 = { 0xE1, 0x198, 0x530, 2, D_8038AFF0, - func_8038A3B0, func_80326224, actor_draw, + func_8038A3B0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 };//chBanjosBed @@ -30,7 +30,7 @@ ActorAnimationInfo D_8038B02C[] = { ActorInfo D_8038B044 ={ 0xE2, 0x199, 0x52F, 2, D_8038B02C, - func_8038A3B0, func_80326224, actor_draw, + func_8038A3B0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 };//chBanjosChair @@ -43,7 +43,7 @@ ActorAnimationInfo D_8038B068[] = { ActorInfo D_8038B080 ={ 0xE3, 0x19A, 0x337, 2, D_8038B068, - func_8038A3B0, func_80326224, actor_draw, + func_8038A3B0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 };//chBanjosStove diff --git a/src/SM/code_4070.c b/src/SM/code_4070.c index 3794b1ae..8627496c 100644 --- a/src/SM/code_4070.c +++ b/src/SM/code_4070.c @@ -12,7 +12,7 @@ void func_8038A4DC(Actor *this, s32 arg1); /* .data */ ActorInfo D_8038B0B0 = { 0x1ED, 0x3B9, 0, 1, NULL, - SM_func_8038A5D8, func_80326224, func_80325340, + SM_func_8038A5D8, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/SM/code_44D0.c b/src/SM/code_44D0.c index 0cb02104..1e486a34 100644 --- a/src/SM/code_44D0.c +++ b/src/SM/code_44D0.c @@ -11,7 +11,7 @@ void func_8038A8F8(Actor *this); /* .data */ ActorInfo D_8038B0E0 = { 0x1F0, 0x3BD, 0, 0, NULL, - func_8038A8F8, func_80326224, func_80325340, + func_8038A8F8, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/SM/code_5B0.c b/src/SM/code_5B0.c index cc334c5a..6e9070e7 100644 --- a/src/SM/code_5B0.c +++ b/src/SM/code_5B0.c @@ -18,18 +18,18 @@ ActorAnimationInfo D_8038AAF0[] = { ActorInfo D_8038AB00 = { MARKER_135_QUARRIE, ACTOR_16F_QUARRIE, ASSET_42D_MODEL_QUARRIE, 1, NULL, - SM_func_80386EF4, func_80326224, actor_drawFullDepth, + SM_func_80386EF4, actor_update_func_80326224, actor_drawFullDepth, 2000, 0, 5.0f, 0 }; ActorInfo D_8038AB24 = { MARKER_29D_ROCK_TRAPPING_GRUNTY, ACTOR_3CA_ROCK_TRAPPING_GRUNTY, ASSET_47B_MODEL_ROCK, 1, D_8038AAF0, - SM_func_80386A00, func_80326224, actor_drawFullDepth, + SM_func_80386A00, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; -struct43s D_8038AB48 = { +ParticleSettingsVelocityAccelerationPosition D_8038AB48 = { {{-200.0f, 600.0f, -200.0f}, {200.0f, 800.0f, 200.0f}}, {{0.0f, -1800.0f, 0.0f}, {0.0f, -1800.0f, 0.0f}}, {{-100.0f, -100.0f, -100.0f}, {100.0f, 100.0f, 100.0f}} @@ -37,7 +37,7 @@ struct43s D_8038AB48 = { s32 D_8038AB90[3] = {0xFF, 0xFF, 0xFF}; -struct43s D_8038AB9C = { +ParticleSettingsVelocityAccelerationPosition D_8038AB9C = { {{-100.0f, -100.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}, {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, {{-100.0f, -100.0f, -100.0f}, {100.0f, 100.0f, 100.0f}} @@ -70,8 +70,8 @@ void SM_func_80386A00(Actor *this) { } void func_80386B04(ParticleEmitter *p_ctrl, f32 *arg1, s32 arg2, f32 arg3) { - func_802EF9F8(p_ctrl, 0.6f); - func_802EFA18(p_ctrl, 4); + particleEmitter_func_802EF9F8(p_ctrl, 0.6f); + particleEmitter_func_802EFA18(p_ctrl, 4); particleEmitter_setFade(p_ctrl, 0.00f, 0.75f); particleEmitter_setModel(p_ctrl, 0x42E); particleEmitter_setPosition(p_ctrl, arg1); @@ -81,7 +81,7 @@ void func_80386B04(ParticleEmitter *p_ctrl, f32 *arg1, s32 arg2, f32 arg3) { particleEmitter_setAngularVelocityRange(p_ctrl, -100.0f, -100.0f, -100.0f, 100.0f, 100.0f, 100.0f); particleEmitter_setSpawnIntervalRange(p_ctrl, 0.00f, 0.01f); particleEmitter_setParticleLifeTimeRange(p_ctrl, 2.0f, 2.0f); - particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_8038AB48); + particleEmitter_setVelocityAccelerationAndPositionRanges(p_ctrl, &D_8038AB48); particleEmitter_emitN(p_ctrl, arg2); } @@ -95,7 +95,7 @@ void func_80386C2C(ParticleEmitter *p_ctrl, f32 *arg1, s32 arg2, f32 arg3) { particleEmitter_setFinalScaleRange(p_ctrl, (arg3 * 1.5), (arg3 * 3.0)); particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(p_ctrl, 1.5f, 2.0f); - particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_8038AB9C); + particleEmitter_setVelocityAccelerationAndPositionRanges(p_ctrl, &D_8038AB9C); particleEmitter_emitN(p_ctrl, arg2); } diff --git a/src/SM/code_BF0.c b/src/SM/code_BF0.c index a8117b20..4da2b907 100644 --- a/src/SM/code_BF0.c +++ b/src/SM/code_BF0.c @@ -8,7 +8,7 @@ void SM_func_80386FE0(Actor *this); ActorInfo D_8038ABF0 = { 0x134, 0x16E, 0, 1, NULL, - SM_func_80386FE0, func_80326224, func_80325340, + SM_func_80386FE0, actor_update_func_80326224, func_80325340, 2000, 0, 0.0f, 0 }; diff --git a/src/TTC/ch/clam.c b/src/TTC/ch/clam.c index 0859b91b..c33fb2f9 100644 --- a/src/TTC/ch/clam.c +++ b/src/TTC/ch/clam.c @@ -19,7 +19,7 @@ ActorAnimationInfo chClamAnimations[] = { ActorInfo chClam = { MARKER_15_CLAM, ACTOR_69_CLAM, ASSET_351_MODEL_CLAM, 0x1, chClamAnimations, - chClam_update, func_80326224, actor_draw, + chClam_update, actor_update_func_80326224, actor_draw, 4500, 0x366, 1.6f, 0 }; @@ -134,8 +134,8 @@ bool __chClam_rotateTowardTarget(Actor *this, s32 arg1) { void __chClam_particalEmitterInit(ParticleEmitter *pCtrl, f32 position[3]){ particleEmitter_setPosition(pCtrl, position); - func_802EF9F8(pCtrl, 0.7f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.7f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 0.8f, 1.0f); particleEmitter_setSfx(pCtrl, SFX_1F_HITTING_AN_ENEMY_3, 10000); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); @@ -145,7 +145,7 @@ void __chClam_particalEmitterInit(ParticleEmitter *pCtrl, f32 position[3]){ } void __chClam_emitLargeShellParticles(f32 position[3], s32 count){ - static struct41s D_8038C3F4 = { + static ParticleSettingsVelocityAcceleration D_8038C3F4 = { {{-50.0f, 750.0f, -50.0f}, {120.0f, 900.0f, 120.0f}}, {{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}} }; @@ -161,7 +161,7 @@ void __chClam_emitLargeShellParticles(f32 position[3], s32 count){ } void __chClam_emitEyeParticles(f32 position[3], s32 count){ - static struct41s D_8038C424 = { + static ParticleSettingsVelocityAcceleration D_8038C424 = { {{-80.0f, 400.0f, -80.0f}, {160.0f, 860.0f, 160.0f}}, {{ 0.0f, -1400.0f, 0.0f}, { 0.0f, -1400.0f, 0.0f}} }; @@ -177,7 +177,7 @@ void __chClam_emitEyeParticles(f32 position[3], s32 count){ } void __chClam_emitSmallShellParticles(f32 position[3], s32 count){ - static struct41s D_8038C454 = { + static ParticleSettingsVelocityAcceleration D_8038C454 = { {{-200.0f, 850.0f, -200.0f}, {400.0f, 1000.0f, 400.0f}}, {{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}} }; @@ -201,7 +201,7 @@ void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite 0.0f, 0.5f }; - static struct41s D_8038C4AC = { + static ParticleSettingsVelocityAcceleration D_8038C4AC = { {{-340.0f, 100.0f, -340.0f}, {340.0f, 250.0f, 340.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}} }; diff --git a/src/TTC/ch/leaky.c b/src/TTC/ch/leaky.c index e8c715c3..7b2b99d9 100644 --- a/src/TTC/ch/leaky.c +++ b/src/TTC/ch/leaky.c @@ -18,7 +18,7 @@ ActorAnimationInfo D_8038C700[] = { ActorInfo D_8038C718 = { MARKER_33_LEAKY, ACTOR_1E_LEAKY, ASSET_51A_MODEL_LEAKY, 0x1, D_8038C700, - chLeaky_update, func_80326224, actor_draw, + chLeaky_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/TTC/ch/lockup.c b/src/TTC/ch/lockup.c index ae66bdde..b4c14a1a 100644 --- a/src/TTC/ch/lockup.c +++ b/src/TTC/ch/lockup.c @@ -25,21 +25,21 @@ ActorAnimationInfo D_8038C760[] ={ ActorInfo D_8038C790 = { MARKER_A4_LOCKUP_SLOW, ACTOR_151_LOCKUP_SLOW, ASSET_3D4_MODEL_LOCKUP, 1, D_8038C760, - func_80389600, func_80326224, func_803894C0, + func_80389600, actor_update_func_80326224, func_803894C0, 2500, 0x366, 0.0f, 0 }; ActorInfo D_8038C7B4 = { MARKER_F6_LOCKUP_MEDIUM, ACTOR_152_LOCKUP_MEDIUM, ASSET_3D4_MODEL_LOCKUP, 1, D_8038C760, - func_80389600, func_80326224, func_803894C0, + func_80389600, actor_update_func_80326224, func_803894C0, 2500, 0x366, 0.0f, 0 }; ActorInfo D_8038C7D8 = { MARKER_F7_LOCKUP_FAST, ACTOR_153_LOCKUP_FAST, ASSET_3D4_MODEL_LOCKUP, 1, D_8038C760, - func_80389600, func_80326224, func_803894C0, + func_80389600, actor_update_func_80326224, func_803894C0, 2500, 0x366, 0.0f, 0 }; diff --git a/src/TTC/ch/nipper.c b/src/TTC/ch/nipper.c index 279c44c9..3aebd7f9 100644 --- a/src/TTC/ch/nipper.c +++ b/src/TTC/ch/nipper.c @@ -21,7 +21,7 @@ ActorAnimationInfo D_8038C540[] = { ActorInfo D_8038C580 = { MARKER_A5_NIPPER, ACTOR_117_NIPPER, ASSET_3D5_MODEL_NIPPER, 0x1, D_8038C540, - func_80388434, func_80326224, func_80387EB0, + func_80388434, actor_update_func_80326224, func_80387EB0, 0, 0x299, 10.0f, 0 }; @@ -45,7 +45,7 @@ void func_80387DC0(f32 *position, s32 count) { particleEmitter_setRGB(pCtrl, D_8038C5A4); particleEmitter_setStartingFrameRange(pCtrl, 0, 7); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -10.0f, -5.0f, -10.0f, 10.0f, 10.0f, 10.0f ); diff --git a/src/TTC/ch/treasure.c b/src/TTC/ch/treasure.c index 7c51dd5b..2aa24368 100644 --- a/src/TTC/ch/treasure.c +++ b/src/TTC/ch/treasure.c @@ -15,7 +15,7 @@ ActorAnimationInfo gChTreasureAnim[]={ ActorInfo gChTreasureInfo = { MARKER_DB_BURIED_TREASURE, ACTOR_F4_BURIED_TREASURE, ASSET_42C_MODEL_BURIED_TREASURE, 1, gChTreasureAnim, - chtreasure_update, func_80326224, actor_draw, + chtreasure_update, actor_update_func_80326224, actor_draw, 0, 0, 1.7f, 0 }; diff --git a/src/TTC/ch/treasurehunt.c b/src/TTC/ch/treasurehunt.c index a8d7490f..66918f13 100644 --- a/src/TTC/ch/treasurehunt.c +++ b/src/TTC/ch/treasurehunt.c @@ -38,21 +38,21 @@ s32 D_8038C898[6] = { ActorInfo D_8038C8B0 = { MARKER_62_RED_ARROW, ACTOR_53_RED_ARROW, ASSET_3E9_MODEL_RED_ARROW, 0, NULL, - TTC_func_80389E90, func_80326224, func_8038A0D0, + TTC_func_80389E90, actor_update_func_80326224, func_8038A0D0, 0, 0x400, 0.0f, 0 }; ActorInfo D_8038C8D4 = { MARKER_63_RED_QUESTION_MARK, ACTOR_54_RED_QUESTION_MARK, ASSET_3EB_MODEL_RED_QUESTION_MARK, 0, NULL, - TTC_func_80389E90, func_80326224, func_8038A0D0, + TTC_func_80389E90, actor_update_func_80326224, func_8038A0D0, 0, 0x400, 0.0f, 0 }; ActorInfo D_8038C8F8 = { MARKER_64_RED_X, ACTOR_55_RED_X, ASSET_3EA_MODEL_RED_X, 0, NULL, - TTC_func_80389E90, func_80326224, func_8038A0D0, + TTC_func_80389E90, actor_update_func_80326224, func_8038A0D0, 0, 0x400, 0.0f, 0 }; @@ -65,7 +65,7 @@ ParticleScaleAndLifetimeRanges D_8038C928 = { 0.0f, 0.01f }; -struct42s D_8038C950 = { +ParticleSettingsVelocityPosition D_8038C950 = { {{-230.0f, 30.0f, -230.0f}, {230.0f, 110.0f, 230.0f}}, {{-60.0f, 0.0f, -60.0f}, {60.0f, 30.0f, 60.0f}}, }; diff --git a/src/TTC/code_26D0.c b/src/TTC/code_26D0.c index 9f8ab9ba..1775055d 100644 --- a/src/TTC/code_26D0.c +++ b/src/TTC/code_26D0.c @@ -35,56 +35,56 @@ void func_80388D8C(Actor *this); ActorInfo D_8038C5E0 = { 0xA1, 0x10E, 0x3D2, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C604 = { MARKER_EA_LIGHTHOUSE_DOOR, ACTOR_13E_LIGHTHOUSE_DOOR, ASSET_3D6_MODEL_LIGHTHOUSE_DOOR, 0x1, NULL, - func_802D3D54, func_80326224, actor_drawFullDepth, + func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C628 = { MARKER_167_SHARKFOOD_ISLAND, ACTOR_25C_SHARKFOOD_ISLAND, ASSET_50A_MODEL_SHARKFOOD_ISLAND, 0x1, NULL, - func_80388D8C, func_80326224, actor_drawFullDepth, + func_80388D8C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C64C = { 0x267, 0x2E2, 0x3BD, 0x1, NULL, - func_80388D34, func_80326224, actor_drawFullDepth, + func_80388D34, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C670 = { 0x26A, 0x2DF, 0x3BE, 0x1, NULL, - TTC_func_80388C78, func_80326224, actor_drawFullDepth, + TTC_func_80388C78, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C694 = { 0x268, 0x2E0, 0x3B6, 0x1, NULL, - TTC_func_80388C78, func_80326224, actor_drawFullDepth, + TTC_func_80388C78, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C6B8 = { 0x269, 0x2E1, 0x3B7, 0x1, NULL, - TTC_func_80388C78, func_80326224, actor_drawFullDepth, + TTC_func_80388C78, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; ActorInfo D_8038C6DC = { MARKER_1D5_PALM_TREE, ACTOR_31E_PALM_TREE, ASSET_3A9_MODEL_PALM_TREE, 0x1, NULL, - func_80388CB8, func_80326224, actor_drawFullDepth, + func_80388CB8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0 }; diff --git a/src/core2/bs/droneenter.c b/src/core2/bs/droneenter.c index dad86fc1..39980e8c 100644 --- a/src/core2/bs/droneenter.c +++ b/src/core2/bs/droneenter.c @@ -47,25 +47,25 @@ void __bsDroneEnter_emitParticles(void) { f32 plyr_pos[3]; player_getPosition(plyr_pos); - particleEmitter_setParticleAccelerationRange(bsDroneEnter.yellow_sparkle_emitter, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -5.0f, -45.0f, 45.0f, 10.0f, 45.0f); + particleEmitter_setAccelerationRange(bsDroneEnter.yellow_sparkle_emitter, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); + particleEmitter_setSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -5.0f, -45.0f, 45.0f, 10.0f, 45.0f); particleEmitter_setPosition(bsDroneEnter.yellow_sparkle_emitter, plyr_pos); particleEmitter_emitN(bsDroneEnter.yellow_sparkle_emitter, 1); - particleEmitter_setParticleAccelerationRange(bsDroneEnter.white_sparkle_emitter, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -5.0f, -45.0f, 45.0f, 10.0f, 45.0f); + particleEmitter_setAccelerationRange(bsDroneEnter.white_sparkle_emitter, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); + particleEmitter_setSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -5.0f, -45.0f, 45.0f, 10.0f, 45.0f); particleEmitter_setPosition(bsDroneEnter.white_sparkle_emitter, plyr_pos); particleEmitter_emitN(bsDroneEnter.white_sparkle_emitter, 1); player_getPosition(plyr_pos); plyr_pos[1] += 130.0f; - particleEmitter_setParticleAccelerationRange(bsDroneEnter.yellow_sparkle_emitter, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -10.0f, -45.0f, 45.0f, 10.0f, 45.0f); + particleEmitter_setAccelerationRange(bsDroneEnter.yellow_sparkle_emitter, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); + particleEmitter_setSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -10.0f, -45.0f, 45.0f, 10.0f, 45.0f); particleEmitter_setPosition(bsDroneEnter.yellow_sparkle_emitter, plyr_pos); particleEmitter_emitN(bsDroneEnter.yellow_sparkle_emitter, 1); - particleEmitter_setParticleAccelerationRange(bsDroneEnter.white_sparkle_emitter, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -10.0f, -45.0f, 45.0f, 10.0f, 45.0f); + particleEmitter_setAccelerationRange(bsDroneEnter.white_sparkle_emitter, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); + particleEmitter_setSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -10.0f, -45.0f, 45.0f, 10.0f, 45.0f); particleEmitter_setPosition(bsDroneEnter.white_sparkle_emitter, plyr_pos); particleEmitter_emitN(bsDroneEnter.white_sparkle_emitter, 1); } diff --git a/src/core2/bs/dronevanish.c b/src/core2/bs/dronevanish.c index df4c8d59..70baca01 100644 --- a/src/core2/bs/dronevanish.c +++ b/src/core2/bs/dronevanish.c @@ -40,17 +40,17 @@ void __bsDroneVanish_emitParticles(void) { f32 position[3]; player_getPosition(position); - particleEmitter_setParticleAccelerationRange(D_8037D450.unk4, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); + particleEmitter_setAccelerationRange(D_8037D450.unk4, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); particleEmitter_setPosition(D_8037D450.unk4, position); particleEmitter_emitN(D_8037D450.unk4, 1); - particleEmitter_setParticleAccelerationRange(D_8037D450.unk0, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); + particleEmitter_setAccelerationRange(D_8037D450.unk0, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f); particleEmitter_setPosition(D_8037D450.unk0, position); particleEmitter_emitN(D_8037D450.unk0, 1); position[1] += 130.0f; - particleEmitter_setParticleAccelerationRange(D_8037D450.unk4, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); + particleEmitter_setAccelerationRange(D_8037D450.unk4, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); particleEmitter_setPosition(D_8037D450.unk4, position); particleEmitter_emitN(D_8037D450.unk4, 1); - particleEmitter_setParticleAccelerationRange(D_8037D450.unk0, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); + particleEmitter_setAccelerationRange(D_8037D450.unk0, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f); particleEmitter_setPosition(D_8037D450.unk0, position); particleEmitter_emitN(D_8037D450.unk0, 1); } @@ -59,7 +59,7 @@ void __bsDroneVanish_particleEmitInit(ParticleEmitter *p_ctrl, enum asset_e spri particleEmitter_manualFree(); particleEmitter_setSprite(p_ctrl, sprite_id); particleEmitter_setFade(p_ctrl, 0.3f, 0.8f); - particleEmitter_setParticleSpawnPositionRange(p_ctrl, -45.0f, 0.0f, -45.0f, 45.0f, 0.0f, 45.0f); + particleEmitter_setSpawnPositionRange(p_ctrl, -45.0f, 0.0f, -45.0f, 45.0f, 0.0f, 45.0f); particleEmitter_setStartingScaleRange(p_ctrl, 0.15f, 0.22f); particleEmitter_setFinalScaleRange(p_ctrl, 0.03f, 0.05f); particleEmitter_setAngularVelocityRange(p_ctrl, 0.0f, 0.0f, 300.0f, 0.0f, 0.0f, 300.0f); diff --git a/src/core2/bs/dronexform.c b/src/core2/bs/dronexform.c index 42fcef7c..56fa28a8 100644 --- a/src/core2/bs/dronexform.c +++ b/src/core2/bs/dronexform.c @@ -36,7 +36,7 @@ struct { void func_802AF7A0(ParticleEmitter *arg0, enum asset_e arg1){ particleEmitter_manualFree(arg0); particleEmitter_setSprite(arg0, arg1); - particleEmitter_setParticleAccelerationRange(arg0, 0.0f, -50.0f, 0.0f, 0.0f, -50.0f, 0.0f); + particleEmitter_setAccelerationRange(arg0, 0.0f, -50.0f, 0.0f, 0.0f, -50.0f, 0.0f); particleEmitter_setFade(arg0, 0.4f, 0.8f); particleEmitter_setFinalScaleRange(arg0, 0.03f, 0.03f); particleEmitter_setAngularVelocityRange(arg0, 0.0f, 0.0f, 300.0f, 0.0f, 0.0f, 300.0f); @@ -116,31 +116,31 @@ void func_802AFBAC(f32 arg0){ } void func_802AFBB8(f32 arg0[3]){ - static struct41s D_80364BB0 = { + static ParticleSettingsVelocityAcceleration D_80364BB0 = { {{-150.0f, 10.0f, -150.0f}, { 150.0f, 50.0f, 150.0f}}, {{ 0.0f, -50.0f, 0.0f}, { 0.0f, -50.0f, 0.0f}} }; - static struct41s D_80364BE0 = { + static ParticleSettingsVelocityAcceleration D_80364BE0 = { {{-300.0f, 150.0f, -300.0f}, { 300.0f, 200.0f, 300.0f}}, {{ 0.0f, -150.0f, 0.0f}, { 0.0f, -150.0f, 0.0f}} }; - static struct41s D_80364C10 = { + static ParticleSettingsVelocityAcceleration D_80364C10 = { {{-100.0f, 10.0f, -100.0f}, { 100.0f, 15.0f, 100.0f}}, {{ 0.0f, -700.0f, 0.0f}, { 0.0f, -700.0f, 0.0f}} }; - static struct41s D_80364C40 = { + static ParticleSettingsVelocityAcceleration D_80364C40 = { {{ -50.0f, 60.0f, -50.0f}, { 50.0f, 150.0f, 50.0f}}, {{ 0.0f, -50.0f, 0.0f}, { 0.0f, -50.0f, 0.0f}} }; - static struct41s D_80364C70 = { + static ParticleSettingsVelocityAcceleration D_80364C70 = { {{-400.0f, 150.0f, -400.0f}, { 400.0f, 200.0f, 400.0f}}, {{ 0.0f, -200.0f, 0.0f}, { 0.0f, -200.0f, 0.0f}} }; - static struct41s D_80364CA0 = { + static ParticleSettingsVelocityAcceleration D_80364CA0 = { {{-200.0f, 10.0f, -200.0f}, { 200.0f, 20.0f, 200.0f}}, {{ 0.0f, -850.0f, 0.0f}, { 0.0f, -850.0f, 0.0f}} }; @@ -180,8 +180,8 @@ void func_802AFBB8(f32 arg0[3]){ particleEmitter_emitN(s0, 5); particleEmitter_setVelocityAndAccelerationRanges(s0, &D_80364C10); - func_802EF9F8(s0, 0.4f); - func_802EFA18(s0, 3); + particleEmitter_func_802EF9F8(s0, 0.4f); + particleEmitter_func_802EFA18(s0, 3); particleEmitter_emitN(s0, 4); s0 = partEmitMgr_newEmitter(0x11); @@ -200,8 +200,8 @@ void func_802AFBB8(f32 arg0[3]){ particleEmitter_emitN(s0, 5); particleEmitter_setVelocityAndAccelerationRanges(s0, &D_80364CA0); - func_802EF9F8(s0, 0.4f); - func_802EFA18(s0, 3); + particleEmitter_func_802EF9F8(s0, 0.4f); + particleEmitter_func_802EFA18(s0, 3); particleEmitter_emitN(s0, 4); } diff --git a/src/core2/ch/badShad.c b/src/core2/ch/badShad.c index 1a79894a..1a222c26 100644 --- a/src/core2/ch/badShad.c +++ b/src/core2/ch/badShad.c @@ -14,7 +14,7 @@ void func_802D729C(Actor *actor, f32 arg1); ActorInfo chBadShad = { 0x9B, 0x108, 0x3BF, 0x1, NULL, - chBadShad_update, func_80326224, chBadShad_draw, + chBadShad_update, actor_update_func_80326224, chBadShad_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/bat.c b/src/core2/ch/bat.c index 2787ed65..65726619 100644 --- a/src/core2/ch/bat.c +++ b/src/core2/ch/bat.c @@ -40,7 +40,7 @@ ActorAnimationInfo sChBatAnimations[] = { ActorInfo gChBat = { MARKER_127_BAT, ACTOR_163_BAT, ASSET_3CA_MODEL_BAT, CH_BAT_STATE_ROOSTING, sChBatAnimations, - chbat_update, func_80326224, actor_draw, + chbat_update, actor_update_func_80326224, actor_draw, 2500, 0, 0.9f, 0 }; diff --git a/src/core2/ch/beehive.c b/src/core2/ch/beehive.c index c3f60248..78df9245 100644 --- a/src/core2/ch/beehive.c +++ b/src/core2/ch/beehive.c @@ -19,7 +19,7 @@ ActorAnimationInfo chBeehiveAnimations[] ={ ActorInfo chBeehive = {MARKER_50_BEEHIVE, ACTOR_12_BEEHIVE, ASSET_364_MODEL_BEEHIVE, 1, chBeehiveAnimations, - chBeehive_update, func_80326224, actor_draw, + chBeehive_update, actor_update_func_80326224, actor_draw, 0, 0x333, 0.0f, 0 }; diff --git a/src/core2/ch/bigbutt.c b/src/core2/ch/bigbutt.c index e1b1baeb..ec0903ef 100644 --- a/src/core2/ch/bigbutt.c +++ b/src/core2/ch/bigbutt.c @@ -28,13 +28,13 @@ ActorAnimationInfo D_80366010[] ={ ActorInfo D_80366090 = {0x3, ACTOR_4_BIGBUTT, ASSET_353_MODEL_BIGBUTT, 1, D_80366010, - func_802C6240, func_80326224, func_802C6E84, + func_802C6240, actor_update_func_80326224, func_802C6E84, 3200, 0, 0.0f, 0 }; ActorInfo D_803660B4 = {0x9, ACTOR_E_BULL_INTRO, ASSET_354_MODEL_BULL_INTRO, 1, D_80366010, - func_802C6240, func_80326224, func_802C6E84, + func_802C6240, actor_update_func_80326224, func_802C6E84, 3200, 0, 0.0f, 0 }; diff --git a/src/core2/ch/bottlesbonus.c b/src/core2/ch/bottlesbonus.c index d82708b7..65333c30 100644 --- a/src/core2/ch/bottlesbonus.c +++ b/src/core2/ch/bottlesbonus.c @@ -94,7 +94,7 @@ f32 D_803682C4[3] = {0.0f, 0.0f, 0.0f}; ActorInfo chBottlesBonusDescription = { 0x179, 0x1E0, 0x46C, 0x1, chBottlesBonusAnimations, - chBottlesBonus_update, func_80326224, chBottlesBonus_draw, + chBottlesBonus_update, actor_update_func_80326224, chBottlesBonus_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/bottlesbonuscursor.c b/src/core2/ch/bottlesbonuscursor.c index 5665a41c..a9ab5bd3 100644 --- a/src/core2/ch/bottlesbonuscursor.c +++ b/src/core2/ch/bottlesbonuscursor.c @@ -57,7 +57,7 @@ f32 D_8036840C[3] = {-11.28f, 3.92f, -52.96f}; ActorInfo D_80368418 = { 0x17A, 0x2B4, 0x565, 0x1, D_803683B0, - chBottlesBonusCursor_update, func_80326224, func_80325340, + chBottlesBonusCursor_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/bubble.c b/src/core2/ch/bubble.c index 34c93d50..d2a35960 100644 --- a/src/core2/ch/bubble.c +++ b/src/core2/ch/bubble.c @@ -12,7 +12,7 @@ extern void func_802F32C4(s32, f32[3], f32, ActorMarker *, s32(*)(f32[3], f32, A /* .data */ ActorInfo chBubble = { MARKER_6B_GLOOPBUBBLE, ACTOR_E7_GLOOP_BUBBLE, ASSET_704_SPRITE_BUBBLE, - 0, NULL, chBubble_update, func_80326224, func_80325340, + 0, NULL, chBubble_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/climbBase.c b/src/core2/ch/climbBase.c index 6859a7b0..841f9900 100644 --- a/src/core2/ch/climbBase.c +++ b/src/core2/ch/climbBase.c @@ -16,7 +16,7 @@ typedef struct { ActorInfo D_80367B20 = { 0x35, 0x26, 0x0, 0x1, NULL, - func_802D77D4, func_80326224, func_80325340, + func_802D77D4, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/collectible.c b/src/core2/ch/collectible.c index 4c6cf982..1a2eef0e 100644 --- a/src/core2/ch/collectible.c +++ b/src/core2/ch/collectible.c @@ -14,21 +14,21 @@ void chCollectible_update(Actor *this); extern ActorInfo D_80367D00 = { MARKER_60_BLUE_EGG_COLLECTIBLE, ACTOR_52_BLUE_EGG, ASSET_36D_SPRITE_BLUE_EGG, 0, NULL, - chCollectible_update, func_80326224, chCollectible_draw, + chCollectible_update, actor_update_func_80326224, chCollectible_draw, 0, 0, 0.7f, 0 }; extern ActorInfo D_80367D24 = { MARKER_B5_RED_FEATHER_COLLECTIBLE, ACTOR_129_RED_FEATHER, ASSET_580_SPRITE_RED_FEATHER, 0, NULL, - chCollectible_update, func_80326224, chCollectible_draw, + chCollectible_update, actor_update_func_80326224, chCollectible_draw, 0, 0, 0.5f, 0 }; extern ActorInfo D_80367D48 = { MARKER_1E5_GOLD_FEATHER_COLLECTIBLE, ACTOR_370_GOLD_FEATHER, ASSET_6D1_SPRITE_GOLDFEATHTER, 0, NULL, - chCollectible_update, func_80326224, chCollectible_draw, + chCollectible_update, actor_update_func_80326224, chCollectible_draw, 0, 0, 0.5f, 0 }; diff --git a/src/core2/ch/crab.c b/src/core2/ch/crab.c index 85be3490..e3e56c21 100644 --- a/src/core2/ch/crab.c +++ b/src/core2/ch/crab.c @@ -94,8 +94,8 @@ void __chCrab_ow(ActorMarker *marker, ActorMarker *other) { void __chCrab_particleEmitterSetup(ParticleEmitter *p_ctrl, f32 position[3]) { particleEmitter_setPosition(p_ctrl, position); particleEmitter_setDrawMode(p_ctrl, 2); - func_802EF9F8(p_ctrl, 0.7f); - func_802EFA18(p_ctrl, 5); + particleEmitter_func_802EF9F8(p_ctrl, 0.7f); + particleEmitter_func_802EFA18(p_ctrl, 5); func_802EFA20(p_ctrl, 0.8f, 1.0f); particleEmitter_setSfx(p_ctrl, SFX_1F_HITTING_AN_ENEMY_3, 10000); particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f); @@ -106,7 +106,7 @@ void __chCrab_particleEmitterSetup(ParticleEmitter *p_ctrl, f32 position[3]) { void __chCrab_emitClawPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) { __chCrab_particleEmitterSetup(p_ctrl, position); - particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(p_ctrl, model_id); particleEmitter_setStartingScaleRange(p_ctrl, 0.5f, 0.8f); particleEmitter_setAngularVelocityRange(p_ctrl, -800.0f, -800.0f, -800.0f, 800.0f, 800.0f, 800.0f); @@ -116,7 +116,7 @@ void __chCrab_emitClawPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset void __chCrab_emitLegPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) { __chCrab_particleEmitterSetup(p_ctrl, position); - particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(p_ctrl, model_id); particleEmitter_setStartingScaleRange(p_ctrl, 0.5f, 0.8f); particleEmitter_setAngularVelocityRange(p_ctrl, -800.0f, -800.0f, -800.0f, 800.0f, 800.0f, 800.0f); @@ -126,7 +126,7 @@ void __chCrab_emitLegPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_ void __chCrab_emitHeadPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) { __chCrab_particleEmitterSetup(p_ctrl, position); - particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(p_ctrl, model_id); particleEmitter_setStartingScaleRange(p_ctrl, 1.0f, 1.0f); particleEmitter_setAngularVelocityRange(p_ctrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); @@ -399,6 +399,6 @@ void chCrab_update(Actor *this) { } /* .data */ -ActorInfo D_803670B8 = { MARKER_13_SNIPPET, ACTOR_67_SNIPPET, ASSET_358_SNIPPET, 0x1, chCrabAnimations, chCrab_update, func_80326224, actor_draw, 1900, 0, 0.8f, 0}; -ActorInfo D_803670DC = { MARKER_DD_BLACK_SNIPPET, ACTOR_F2_BLACK_SNIPPET, ASSET_566_MODEL_BLACK_SNIPPET, 0x1, chCrabAnimations, chCrab_update, func_80326224, actor_draw, 1900, 0, 0.8f, 0}; -ActorInfo D_80367100 = { MARKER_13_SNIPPET, ACTOR_F5_MUTIE_SNIPPET, ASSET_38F_MODEL_MUTIE_SNIPPET, 0x1, chCrabMutantAnimations, chCrab_update, func_80326224, actor_draw, 1900, 0, 0.8f, 0}; +ActorInfo D_803670B8 = { MARKER_13_SNIPPET, ACTOR_67_SNIPPET, ASSET_358_SNIPPET, 0x1, chCrabAnimations, chCrab_update, actor_update_func_80326224, actor_draw, 1900, 0, 0.8f, 0}; +ActorInfo D_803670DC = { MARKER_DD_BLACK_SNIPPET, ACTOR_F2_BLACK_SNIPPET, ASSET_566_MODEL_BLACK_SNIPPET, 0x1, chCrabAnimations, chCrab_update, actor_update_func_80326224, actor_draw, 1900, 0, 0.8f, 0}; +ActorInfo D_80367100 = { MARKER_13_SNIPPET, ACTOR_F5_MUTIE_SNIPPET, ASSET_38F_MODEL_MUTIE_SNIPPET, 0x1, chCrabMutantAnimations, chCrab_update, actor_update_func_80326224, actor_draw, 1900, 0, 0.8f, 0}; diff --git a/src/core2/ch/drips.c b/src/core2/ch/drips.c index 9e6cd4d0..1c276879 100644 --- a/src/core2/ch/drips.c +++ b/src/core2/ch/drips.c @@ -19,7 +19,7 @@ void chdrips_update(Actor *this); ActorInfo gChDripsInfo = { 0x246, ACTOR_354_DRIPS, 0, 0, NULL, - chdrips_update, func_80326224, func_80325340, + chdrips_update, actor_update_func_80326224, func_80325340, 5000, 0, 0.0f, 0 }; @@ -27,7 +27,7 @@ s32 D_80372AE4[3] = {0xff, 0xff, 0xfe}; struct_core2_D2AB0 D_80372AF0 = {0.0f, 0.0f, 1.0f, 1.4f}; -struct43s D_80372B00 = { +ParticleSettingsVelocityAccelerationPosition D_80372B00 = { {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, {{0.0f, -650.0f, 0.0f}, {0.0f, -650.0f, 0.0f}}, {{-400.0f, 0.0f, -400.0f}, {400.0f, 0.0f, 400.0f}} @@ -78,8 +78,8 @@ void chdrips_update(Actor *this){ pCtrl = partEmitMgr_newEmitter(1); particleEmitter_setModel(pCtrl, ASSET_8A0_SPRITE_WATER_DROP); particleEmitter_setPosition(pCtrl, this->position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80372B00); - func_802EFA18(pCtrl, 1); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80372B00); + particleEmitter_func_802EFA18(pCtrl, 1); particleEmitter_setParticleCallback(pCtrl, __chdrips_particleCallback); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(pCtrl, 7.0f, 7.0f); diff --git a/src/core2/ch/firefx.c b/src/core2/ch/firefx.c index bd0228f0..2da1186b 100644 --- a/src/core2/ch/firefx.c +++ b/src/core2/ch/firefx.c @@ -10,7 +10,7 @@ void chfirefx_update(Actor *this); ActorInfo gChFireFxInfo = { MARKER_256_FIRE_FX, ACTOR_383_FIRE_FX, ASSET_526_SPRITE_FIRE, 0, NULL, - chfirefx_update, func_80326224, actor_draw, + chfirefx_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; @@ -23,7 +23,7 @@ void __chfirefx_spawnSmoke(f32 position[3], f32 scale){ particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setAlpha(pCtrl, 0x23); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, 0.0f, 110.0f*scale, 0.0f, 0.0f, 110.0f*scale, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, 0.0f, 110.0f*scale, 0.0f, 0.0f, 110.0f*scale, 0.0f); particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 40.0f*scale, 0.0f, 0.0f, 90.0f*scale, 0.0f); particleEmitter_setStartingScaleRange(pCtrl, 2.6*scale, 3.2*scale); particleEmitter_setFinalScaleRange(pCtrl, 5.0*scale, 6.0*scale); @@ -41,9 +41,9 @@ void __chfirefx_spawnSpark(f32 position[3], f32 scale){ particleEmitter_setSprite(pCtrl, ASSET_713_SPRITE_SPARKLE_YELLOW); particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, 0.0f, 20.0f*scale, 0.0f, 0.0f, 20.0f*scale, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, 0.0f, 20.0f*scale, 0.0f, 0.0f, 20.0f*scale, 0.0f); particleEmitter_setParticleVelocityRange(pCtrl, -30.0f*scale, 120.0f*scale, -30.0f*scale, 60.0f*scale, 360.0f*scale, 60.0f*scale); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -50.0f, 0.0f, 0.0f, -90.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -50.0f, 0.0f, 0.0f, -90.0f, 0.0f); particleEmitter_setStartingScaleRange(pCtrl, 0.1*scale, 0.2*scale); particleEmitter_setFinalScaleRange(pCtrl, 0.2*scale, 0.4*scale); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); diff --git a/src/core2/ch/flotsam.c b/src/core2/ch/flotsam.c index ea0f1993..ca953359 100644 --- a/src/core2/ch/flotsam.c +++ b/src/core2/ch/flotsam.c @@ -37,7 +37,7 @@ ParticleScaleAndLifetimeRanges D_80372CA4 = { 0.1f, 0.5f }; -struct43s D_80372CCC = { +ParticleSettingsVelocityAccelerationPosition D_80372CCC = { {{-5.0f, 10.0f, -5.0f}, {5.0f, 50.0f, 5.0f}}, {{0.0f, 200.0f, 0.0f}, {0.0f, 1000.0f, 0.0f}}, {{-20.0f, -20.0f, -20.0f}, {20.0f, 20.0f, 20.0f}} @@ -182,7 +182,7 @@ void func_8035C080(Actor *this, s32 next_state){ particleEmitter_setSprite(local->pCtrl_8, ASSET_70E_SPRITE_SMOKE_2); particleEmitter_setStartingFrameRange(local->pCtrl_8, 0, 7); particleEmitter_setPosition(local->pCtrl_8, this->position); - particleEmitter_setPositionVelocityAndAccelerationRanges(local->pCtrl_8, &D_80372CCC); + particleEmitter_setVelocityAccelerationAndPositionRanges(local->pCtrl_8, &D_80372CCC); particleEmitter_setScaleAndLifetimeRanges(local->pCtrl_8, &D_80372CA4); particleEmitter_setSpawnInterval(local->pCtrl_8, 4); }//L8035C698 diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index 570c89cb..e48258cf 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -55,7 +55,7 @@ ActorAnimationInfo D_80365E28[] = { {0x24F, 0.6f}, {0x24D, 2.0f} }; -ActorInfo D_80365E58 = { 0xE4, 0x195, 0x532, 0x1, D_80365E28, func_802C5740, func_80326224, func_802C4464, 0, 0, 0.0f, 0}; +ActorInfo D_80365E58 = { 0xE4, 0x195, 0x532, 0x1, D_80365E28, func_802C5740, actor_update_func_80326224, func_802C4464, 0, 0, 0.0f, 0}; ActorAnimationInfo D_80365E7C[] = { {0x000, 0.0f}, @@ -65,7 +65,7 @@ ActorAnimationInfo D_80365E7C[] = { {0x252, 0.67f}, {0x250, 4.5f}, }; -ActorInfo D_80365EAC = { 0xE5, 0x196, 0x532, 0x1, D_80365E7C, func_802C4C14, func_80326224, func_802C4360, 0, 0, 0.0f, 0}; +ActorInfo D_80365EAC = { 0xE5, 0x196, 0x532, 0x1, D_80365E7C, func_802C4C14, actor_update_func_80326224, func_802C4360, 0, 0, 0.0f, 0}; ActorAnimationInfo D_80365ED0[] = { {0x000, 0.0f}, @@ -75,7 +75,7 @@ ActorAnimationInfo D_80365ED0[] = { {0x24C, 1.0f}, {0x24A, 1.0f} }; -ActorInfo D_80365F00 = { 0xE6, 0x197, 0x532, 0x1, D_80365ED0, func_802C4C14, func_80326224, func_802C4360, 0, 0, 0.0f, 0}; +ActorInfo D_80365F00 = { 0xE6, 0x197, 0x532, 0x1, D_80365ED0, func_802C4C14, actor_update_func_80326224, func_802C4360, 0, 0, 0.0f, 0}; /* .bss */ diff --git a/src/core2/ch/ghost.c b/src/core2/ch/ghost.c index f032faa7..df5d3eca 100644 --- a/src/core2/ch/ghost.c +++ b/src/core2/ch/ghost.c @@ -26,7 +26,7 @@ ActorAnimationInfo D_80372BE0[] ={ ActorInfo D_80372C18 = { //TEEHEE MARKER_99_TEEHEE, ACTOR_CA_TEEHEE, ASSET_3CB_MODEL_TEEHEE, 0x1, D_80372BE0, - func_8035B900, func_80326224, actor_draw, + func_8035B900, actor_update_func_80326224, actor_draw, 6500, 0, 0.9f, 0 }; @@ -48,11 +48,11 @@ void func_8035AFE0(f32 scale, f32 pos[3], s32 cnt, enum asset_e sprite_id, s32 a particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setRGB(pCtrl, arg4); particleEmitter_setPosition(pCtrl, pos); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -100.0f*scale, 20.0f*scale, -100.0f*scale, 100.0f*scale, 200.0f*scale, 100.0f*scale ); - particleEmitter_setParticleAccelerationRange(pCtrl, + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -10.0f*scale, 0.0f, 0.0f, -10.0f*scale, 0.0f ); diff --git a/src/core2/ch/gloop.c b/src/core2/ch/gloop.c index b6e30e7e..bd97fa88 100644 --- a/src/core2/ch/gloop.c +++ b/src/core2/ch/gloop.c @@ -50,7 +50,7 @@ void chgloop_update(Actor *this){ this->marker->propPtr->unk8_3 = TRUE; } - func_80326224(this); + actor_update_func_80326224(this); switch(this->state){ case 2://L802D14DC diff --git a/src/core2/ch/gravestone.c b/src/core2/ch/gravestone.c index d8aa765f..ee3de36f 100644 --- a/src/core2/ch/gravestone.c +++ b/src/core2/ch/gravestone.c @@ -28,14 +28,14 @@ ActorAnimationInfo D_80372F80[] = { ActorInfo D_80372FC0 = { MARKER_96_GRAVESTONE, ACTOR_C7_GRAVESTONE, ASSET_3C9_MODEL_GRAVESTONE, 0x1, D_80372F80, - func_8035F138, func_80326224, func_8035ECA0, + func_8035F138, actor_update_func_80326224, func_8035ECA0, 3500, 0, 1.2f, 0 }; ActorInfo D_80372FE4 = { MARKER_297_GIANT_GRAVESTONE, ACTOR_3C2_GIANT_GRAVESTONE, ASSET_3C9_MODEL_GRAVESTONE, 0x1, D_80372F80, - func_8035F138, func_80326224, func_8035ECA0, + func_8035F138, actor_update_func_80326224, func_8035ECA0, 14000, 0, 3.2f, 0 }; @@ -71,7 +71,7 @@ bool func_8035ED60(Actor *this) { void func_8035EDB0(f32 position[3], s32 count, enum asset_e sprite) { static s32 D_80373014[3] = {0xAA, 0xAA, 0xAA}; static ParticleScaleAndLifetimeRanges D_80373020 = {{0.4f, 0.8f}, {1.4f, 2.0f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01}; - static struct43s D_80373048 = { + static ParticleSettingsVelocityAccelerationPosition D_80373048 = { {{-200.0f, -200.0f, -200.0f}, { 200.0f, 200.0f, 200.0f}}, {{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}}, {{ -50.0f, 0.0f, -50.0f}, { 50.0f, 200.0f, 50.0f}} @@ -82,7 +82,7 @@ void func_8035EDB0(f32 position[3], s32 count, enum asset_e sprite) { particleEmitter_setRGB(p_ctrl, D_80373014); particleEmitter_setSprite(p_ctrl, sprite); particleEmitter_setPosition(p_ctrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_80373048); + particleEmitter_setVelocityAccelerationAndPositionRanges(p_ctrl, &D_80373048); particleEmitter_setScaleAndLifetimeRanges(p_ctrl, &D_80373020); particleEmitter_setDrawMode(p_ctrl, PART_EMIT_NO_DEPTH); particleEmitter_emitN(p_ctrl, count); diff --git a/src/core2/ch/icecube.c b/src/core2/ch/icecube.c index fd85fb48..21a55d2b 100644 --- a/src/core2/ch/icecube.c +++ b/src/core2/ch/icecube.c @@ -24,14 +24,14 @@ ActorAnimationInfo D_80372B50[] = { ActorInfo D_80372B80 = { MARKER_250_ICECUBE_A, ACTOR_37D_ICECUBE_A, ASSET_504_MODEL_ICECUBE, 1, D_80372B50, - chicecube_update, func_80326224, chicecube_draw, + chicecube_update, actor_update_func_80326224, chicecube_draw, 0, 0, 0.0f, 0 }; ActorInfo D_80372BA4 = { MARKER_25F_ICECUBE_B, ACTOR_3A0_ICECUBE_B, ASSET_504_MODEL_ICECUBE, 1, D_80372B50, - chicecube_update, func_80326224, chicecube_draw, + chicecube_update, actor_update_func_80326224, chicecube_draw, 0, 0, 0.0f, 0 }; @@ -110,8 +110,8 @@ void func_8035A04C(f32 position[3], s32 cnt, enum asset_e model_id, f32 scale){ particleEmitter_setModel(pCtrl, model_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -100.0f*scale, 0.0f, -100.0f*scale, 100.0f*scale, 200.0f*scale, 100.0f*scale); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, -100.0f*scale, 0.0f, -100.0f*scale, 100.0f*scale, 200.0f*scale, 100.0f*scale); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); particleEmitter_setParticleVelocityRange(pCtrl, -400.0f*scale, 450.0f*scale, -400.0f*scale, 400.0f*scale, 600.0f*scale, 400.0f*scale); particleEmitter_setAngularVelocityRange(pCtrl, 100.0f*scale, 100.0f*scale, 100.0f*scale, 250.0f*scale, 250.0f*scale, 250.0f*scale); particleEmitter_setStartingScaleRange(pCtrl, scale*0.2, scale*0.4); @@ -127,8 +127,8 @@ void func_8035A228(f32 position[3], s32 cnt, enum asset_e sprite_id, f32 scale){ particleEmitter_setRGB(pCtrl, D_80372BC8); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f*scale, 0.0f, -50.0f*scale, 50.0f*scale, 200.0f*scale, 50.0f*scale); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -10.0f, 0.0f, 0.0f, -10.0f, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, -50.0f*scale, 0.0f, -50.0f*scale, 50.0f*scale, 200.0f*scale, 50.0f*scale); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -10.0f, 0.0f, 0.0f, -10.0f, 0.0f); particleEmitter_setParticleVelocityRange(pCtrl, -280.0f*scale, 0.0f, -280.0f*scale, 280.0f*scale, 280.0f*scale, 280.0f*scale); particleEmitter_setStartingScaleRange(pCtrl, scale*0.6, scale*0.8); particleEmitter_setFinalScaleRange(pCtrl, scale*1.0, scale*1.4); @@ -144,7 +144,7 @@ void func_8035A3F8(f32 position[3], s32 cnt, enum asset_e sprite_id, f32 scale){ particleEmitter_setRGB(pCtrl, D_80372BD4); particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -10.0f, 0.0f, 0.0f, -10.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -10.0f, 0.0f, 0.0f, -10.0f, 0.0f); particleEmitter_setParticleVelocityRange(pCtrl, -60.0f*scale, 0.0f, -60.0f*scale, 60.0f*scale, 60.0f*scale, 60.0f*scale); particleEmitter_setStartingScaleRange(pCtrl, scale*0.4, scale*0.6); particleEmitter_setFinalScaleRange(pCtrl, scale*0.8, scale*1.2); diff --git a/src/core2/ch/jigsawdance.c b/src/core2/ch/jigsawdance.c index dd18cd9e..fe82f881 100644 --- a/src/core2/ch/jigsawdance.c +++ b/src/core2/ch/jigsawdance.c @@ -20,7 +20,7 @@ ActorAnimationInfo chJigsawDanceAnimations[] = { ActorInfo chJigsawDance = {MARKER_68_JIGSAW_DANCE, ACTOR_5A_JIGSAW_DANCE, ASSET_35E_MODEL_JIGSAW_DANCE, 1, chJigsawDanceAnimations, - __chJigsawDance_update, func_80326224, __chJigsawDance_draw, + __chJigsawDance_update, actor_update_func_80326224, __chJigsawDance_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/jinjo.c b/src/core2/ch/jinjo.c index f8fef90a..df850953 100644 --- a/src/core2/ch/jinjo.c +++ b/src/core2/ch/jinjo.c @@ -23,11 +23,11 @@ ActorAnimationInfo chJinjoAnimations[] = { {ASSET_31_ANIM_JINJO_JUMP, 0.75f} }; -ActorInfo chJinjoBlue = { MARKER_5A_JINJO_BLUE, ACTOR_60_JINJO_BLUE, ASSET_3C0_MODEL_JINJO_BLUE, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo chJinjoGreen = { MARKER_5B_JINJO_GREEN, ACTOR_62_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo chJinjoYellow = { MARKER_5E_JINJO_YELLOW, ACTOR_5E_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo chJinjoPink = { MARKER_5D_JINJO_PINK, ACTOR_61_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo chJinjoOrange = { MARKER_5C_JINJO_ORANGE, ACTOR_5F_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo chJinjoBlue = { MARKER_5A_JINJO_BLUE, ACTOR_60_JINJO_BLUE, ASSET_3C0_MODEL_JINJO_BLUE, 0x1, chJinjoAnimations, chJinjo_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo chJinjoGreen = { MARKER_5B_JINJO_GREEN, ACTOR_62_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN, 0x1, chJinjoAnimations, chJinjo_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo chJinjoYellow = { MARKER_5E_JINJO_YELLOW, ACTOR_5E_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW, 0x1, chJinjoAnimations, chJinjo_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo chJinjoPink = { MARKER_5D_JINJO_PINK, ACTOR_61_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK, 0x1, chJinjoAnimations, chJinjo_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo chJinjoOrange = { MARKER_5C_JINJO_ORANGE, ACTOR_5F_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE, 0x1, chJinjoAnimations, chJinjo_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; enum asset_e __chJinjo_getMeetDialogId(enum marker_e marker_id){ switch(marker_id){ diff --git a/src/core2/ch/mole.c b/src/core2/ch/mole.c index 50f4f2f3..bb0023ca 100644 --- a/src/core2/ch/mole.c +++ b/src/core2/ch/mole.c @@ -26,7 +26,7 @@ ActorAnimationInfo moleAnimations[]= { ActorInfo gChMole = { 0x1DF, ACTOR_37A_BOTTLES, ASSET_387_MODEL_BOTTLES, 1, moleAnimations, - chmole_update, func_80326224, func_802D94B4, + chmole_update, actor_update_func_80326224, func_802D94B4, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/molehill.c b/src/core2/ch/molehill.c index 92da0f72..83d78ce7 100644 --- a/src/core2/ch/molehill.c +++ b/src/core2/ch/molehill.c @@ -24,7 +24,7 @@ ActorAnimationInfo D_80367E00[] = { ActorInfo D_80367E20= { 0xB8, ACTOR_12C_MOLEHILL, ASSET_388_MODEL_MOLEHILL, 0, D_80367E00, - func_802DA740, func_80326224, func_802DA560, + func_802DA740, actor_update_func_80326224, func_802DA560, 0, 0, 0.0f, 0 }; @@ -54,14 +54,14 @@ Actor *func_802DA560(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ } void func_802DA634(ParticleEmitter *pCtrl, f32 arg1[3], s32 cnt){ - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -600.0f, 0.0f, 0.0f, -600.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -600.0f, 0.0f, 0.0f, -600.0f, 0.0f); particleEmitter_setModel(pCtrl, 0x344); particleEmitter_setPosition(pCtrl, arg1); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -150.0f, 150.0f, -150.0f, 150.0f, 360.0f, 150.0f); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80367E44); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_emitN(pCtrl, cnt); } diff --git a/src/core2/ch/musicnote.c b/src/core2/ch/musicnote.c index 4632e9ad..ed239dc2 100644 --- a/src/core2/ch/musicnote.c +++ b/src/core2/ch/musicnote.c @@ -7,7 +7,7 @@ void func_802C9C30(Actor* this); /* .data */ ActorInfo D_80366C50 = { MARKER_5F_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, ASSET_6D6_MODEL_MUSIC_NOTE, 0, NULL, - func_802C9C30, func_80326224, func_80325934, + func_802C9C30, actor_update_func_80326224, func_80325934, 0, 0, 0.6f, 0 }; diff --git a/src/core2/ch/overlaycopyright.c b/src/core2/ch/overlaycopyright.c index 1db011b6..1c7b3b52 100644 --- a/src/core2/ch/overlaycopyright.c +++ b/src/core2/ch/overlaycopyright.c @@ -9,7 +9,7 @@ f32 D_803680D0[3] = {0.0f, 0.0f, 0.0f}; ActorInfo chOverlayCopyrightDescription = { MARKER_176_COPYRIGHT_OVERLAY, ACTOR_1DD_COPYRIGHT_OVERLAY, ASSET_54E_MODEL_COPYRIGHT_OVERLAY, 0x1, NULL, - chOverlayCopyright_update, func_80326224, func_802DC7E0, + chOverlayCopyright_update, actor_update_func_80326224, func_802DC7E0, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/overlaynocontroller.c b/src/core2/ch/overlaynocontroller.c index 66637a77..3102ee81 100644 --- a/src/core2/ch/overlaynocontroller.c +++ b/src/core2/ch/overlaynocontroller.c @@ -21,7 +21,7 @@ f32 D_80368168[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_80368174 = { MARKER_178_NO_CONTROLLER_OVERLAY, ACTOR_1DF_NO_CONTROLLER_OVERLAY, ASSET_55D_MODEL_NO_CONTROLLER_OVERLAY, 0x0, D_80368150, - chOverlayNoController_update, func_80326224, chOverlayNoController_draw, + chOverlayNoController_update, actor_update_func_80326224, chOverlayNoController_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/overlaypressstart.c b/src/core2/ch/overlaypressstart.c index 0bddb180..d0601760 100644 --- a/src/core2/ch/overlaypressstart.c +++ b/src/core2/ch/overlaypressstart.c @@ -27,7 +27,7 @@ f32 D_80368118[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_80368124 = { MARKER_177_PRESS_START_OVERLAY, ACTOR_1DE_PRESS_START_OVERLAY, ASSET_55C_MODEL_PRESS_START_OVERLAY, 0x0, D_80368100, - chOverlayPressStart_update, func_80326224, chOverlayPressStart_draw, + chOverlayPressStart_update, actor_update_func_80326224, chOverlayPressStart_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/shrapnel.c b/src/core2/ch/shrapnel.c index 2c0c47da..290cfc03 100644 --- a/src/core2/ch/shrapnel.c +++ b/src/core2/ch/shrapnel.c @@ -63,7 +63,7 @@ void chShrapnel_emitExplosion(Actor *this) { particleEmitter_setDrawMode(temp_v0, PART_EMIT_NO_LOOP); particleEmitter_setStartingFrameRange(temp_v0, 0, 0); particleEmitter_setParticleFramerateRange(temp_v0, 4.0f, 4.0f); - particleEmitter_setParticleSpawnPositionRange(temp_v0, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); + particleEmitter_setSpawnPositionRange(temp_v0, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); particleEmitter_setPosition(temp_v0, this->position); particleEmitter_setStartingScaleRange(temp_v0, 3.0f, 3.0f); particleEmitter_setFinalScaleRange(temp_v0, 8.0f, 8.0f); @@ -83,7 +83,7 @@ void chShrapnel_emitSmoke(Actor *this) { particleEmitter_setPosition(temp_v0, this->position); particleEmitter_setStartingScaleRange(temp_v0, 1.0f, 1.5f); particleEmitter_setFinalScaleRange(temp_v0, 2.0f, 3.0f); - particleEmitter_setParticleSpawnPositionRange(temp_v0, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f); + particleEmitter_setSpawnPositionRange(temp_v0, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f); particleEmitter_setParticleVelocityRange(temp_v0, -70.0f, 50.0f, -70.0f, 70.0f, 100.0f, 70.0f); particleEmitter_setRGB(temp_v0, D_803673F8); particleEmitter_setParticleLifeTimeRange(temp_v0, 3.0f, 4.0f); @@ -94,9 +94,9 @@ void chShrapnel_emitBodyParts(Actor *this, enum asset_e model_id, s32 n) { ParticleEmitter *temp_v0; temp_v0 = partEmitMgr_newEmitter(n); - particleEmitter_setParticleAccelerationRange(temp_v0, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); - func_802EF9F8(temp_v0, 0.6f); - func_802EFA18(temp_v0, 1); + particleEmitter_setAccelerationRange(temp_v0, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); + particleEmitter_func_802EF9F8(temp_v0, 0.6f); + particleEmitter_func_802EFA18(temp_v0, 1); particleEmitter_setModel(temp_v0, model_id); particleEmitter_setPosition(temp_v0, this->position); particleEmitter_setStartingScaleRange(temp_v0, 0.05f, 2.0f); @@ -194,6 +194,6 @@ void chshrapnel_update(Actor *this) { ActorInfo chShrapnelDescription = { MARKER_65_SHRAPNEL, ACTOR_56_SHRAPNEL, ASSET_3EC_MODEL_SHRAPNEL, 0x1, chShrapnelAnimations, - chshrapnel_update, func_80326224, actor_draw, + chshrapnel_update, actor_update_func_80326224, actor_draw, 2500, 0x333, 0.0f, 0 }; diff --git a/src/core2/ch/snacker.c b/src/core2/ch/snacker.c index 39cbdf66..eef36918 100644 --- a/src/core2/ch/snacker.c +++ b/src/core2/ch/snacker.c @@ -52,7 +52,7 @@ ActorAnimationInfo sChSnackerAnimations[] ={ ActorInfo gChSnacker = { MARKER_14_SNACKER, ACTOR_68_SNACKER, ASSET_3B0_SNACKER, 0x1, sChSnackerAnimations, - chsnacker_update, func_80326224, actor_draw, + chsnacker_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/snowball.c b/src/core2/ch/snowball.c index 795c0b88..e1097313 100644 --- a/src/core2/ch/snowball.c +++ b/src/core2/ch/snowball.c @@ -19,7 +19,7 @@ void chSnowball_update(Actor *this); ActorInfo chSnowball = { MARKER_B2_SNOWBALL, ACTOR_125_SNOWBALL, ASSET_378_MODEL_SNOWBALL, 0x1, NULL, - chSnowball_update, func_80326224, chSnowball_draw, + chSnowball_update, actor_update_func_80326224, chSnowball_draw, 0, 0x800, 0.8f, 0 }; @@ -40,7 +40,7 @@ Actor *chSnowball_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { void __chSnowball_spawnPieces(f32 position[3]) { static ParticleScaleAndLifetimeRanges D_80368734 = {{0.65f, 1.1}, {0.0f, 0.0f}, {0.0f, 0.01f}, {0.8f, 0.8f}, 0.0f, 0.5f}; - static struct43s D_8036875C = { + static ParticleSettingsVelocityAccelerationPosition D_8036875C = { {{-220.0f, 210.0f, -220.0f}, {280.0f, 460.0f, 280.0f}}, {{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}}, {{ -20.0f, -20.0f, -20.0f}, { 20.0f, 20.0f, 20.0f}} @@ -51,7 +51,7 @@ void __chSnowball_spawnPieces(f32 position[3]) { pCtrl = partEmitMgr_newEmitter(8); particleEmitter_setModel(pCtrl, ASSET_37A_MODEL_TINY_SNOWBALL); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8036875C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8036875C); particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80368734); particleEmitter_emitN(pCtrl, 8); diff --git a/src/core2/ch/snowman.c b/src/core2/ch/snowman.c index 986ae9f6..34152ba3 100644 --- a/src/core2/ch/snowman.c +++ b/src/core2/ch/snowman.c @@ -38,7 +38,7 @@ enum chsnowman_state_e{ ActorInfo chSnowman = { MARKER_B1_SIR_SLUSH, ACTOR_124_SIR_SLUSH, ASSET_377_MODEL_SIR_SLUSH, CHSNOWMAN_STATE_1_IDLE, chSnowmanAnimations, - chSnowman_update, func_80326224, chSnowman_draw, + chSnowman_update, actor_update_func_80326224, chSnowman_draw, 0, 0x199, 0.0f, 0 }; @@ -111,7 +111,7 @@ void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){ {4.0f, 4.0f}, 0.0f, 0.3f }; - static struct43s D_803686BC = { + static ParticleSettingsVelocityAccelerationPosition D_803686BC = { {{-250.0f, 600.0f, -250.0f}, {350.0f, 960.0f, 350.0f}}, {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, {{-80.0f, 0.0f, -80.0f}, {80.0f, 200.0f, 80.0f}} @@ -121,10 +121,10 @@ void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){ particleEmitter_setModel(particleSpawner, ASSET_378_MODEL_SNOWBALL); particleEmitter_setPosition(particleSpawner, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(particleSpawner, &D_803686BC); + particleEmitter_setVelocityAccelerationAndPositionRanges(particleSpawner, &D_803686BC); particleEmitter_setAngularVelocityRange(particleSpawner, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); - func_802EF9F8(particleSpawner, 0.01f); - func_802EFA18(particleSpawner, 3); + particleEmitter_func_802EF9F8(particleSpawner, 0.01f); + particleEmitter_func_802EFA18(particleSpawner, 3); func_802EFA20(particleSpawner, 1.0f, 1.3f); particleEmitter_setSfx(particleSpawner, SFX_2F_ORANGE_SPLAT, 16000); particleEmitter_setScaleAndLifetimeRanges(particleSpawner, &D_80368694); diff --git a/src/core2/ch/snowmanhat.c b/src/core2/ch/snowmanhat.c index 3ed3d24b..128810bf 100644 --- a/src/core2/ch/snowmanhat.c +++ b/src/core2/ch/snowmanhat.c @@ -8,7 +8,7 @@ void chSnowmanHat_update(Actor *this); ActorInfo chSnowmanHat = { MARKER_B3_SIR_SLUSH_HAT, ACTOR_126_SIR_SLUSH_HAT, ASSET_379_MODEL_SIRSLUSH_HAT, 0x1, NULL, - chSnowmanHat_update, func_80326224, actor_draw, + chSnowmanHat_update, actor_update_func_80326224, actor_draw, 4500, 0, 1.0f, 0 }; diff --git a/src/core2/ch/termite.c b/src/core2/ch/termite.c index aa1c318a..a62e905e 100644 --- a/src/core2/ch/termite.c +++ b/src/core2/ch/termite.c @@ -73,8 +73,8 @@ void __chTermite_updateWalkSFX(Actor *this) { void __chTermite_setupParticleEmitter(ParticleEmitter *pCtrl, f32 position[3]){ particleEmitter_setPosition(pCtrl, position); particleEmitter_setDrawMode(pCtrl, 2); - func_802EF9F8(pCtrl, 0.7f); - func_802EFA18(pCtrl, 5); + particleEmitter_func_802EF9F8(pCtrl, 0.7f); + particleEmitter_func_802EFA18(pCtrl, 5); func_802EFA20(pCtrl, 0.8f, 1.0f); particleEmitter_setSfx(pCtrl, SFX_1F_HITTING_AN_ENEMY_3, 10000); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); @@ -84,7 +84,7 @@ void __chTermite_setupParticleEmitter(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitLegs(ParticleEmitter *pCtrl, f32 position[3]){ __chTermite_setupParticleEmitter(pCtrl, position); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(pCtrl, ASSET_393_MODEL_TERMITE_LEG); particleEmitter_setStartingScaleRange(pCtrl, 0.5f, 0.8f); particleEmitter_setAngularVelocityRange(pCtrl, -800.0f, -800.0f, -800.0f, 800.0f, 800.0f, 800.0f); @@ -94,7 +94,7 @@ void __chTermite_emitLegs(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitHead(ParticleEmitter *pCtrl, f32 position[3]){ __chTermite_setupParticleEmitter(pCtrl, position); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(pCtrl, ASSET_394_MODEL_TERMITE_HEAD); particleEmitter_setStartingScaleRange(pCtrl, 1.0f, 1.0f); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); @@ -104,7 +104,7 @@ void __chTermite_emitHead(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitBody(ParticleEmitter *pCtrl, f32 position[3]){ __chTermite_setupParticleEmitter(pCtrl, position); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(pCtrl, ASSET_395_MODEL_TERMITE_BODY); particleEmitter_setStartingScaleRange(pCtrl, 1.0f, 1.0f); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); @@ -114,7 +114,7 @@ void __chTermite_emitBody(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitEyes(ParticleEmitter *pCtrl, f32 position[3]){ __chTermite_setupParticleEmitter(pCtrl, position); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1400.0f, 0.0f, 0.0f, -1400.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1400.0f, 0.0f, 0.0f, -1400.0f, 0.0f); particleEmitter_setModel(pCtrl, ASSET_396_MODEL_TERMITE_EYES); particleEmitter_setStartingScaleRange(pCtrl, 1.0f, 1.0f); particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); @@ -242,6 +242,6 @@ void chTermite_update(Actor *this) { ActorInfo chTermite = { MARKER_4_TERMITE, ACTOR_5_TERMITE, ASSET_350_MODEL_TERMITE, 0x1, chTermiteAnimations, - chTermite_update, func_80326224, actor_draw, + chTermite_update, actor_update_func_80326224, actor_draw, 2000, 0, 0.0f, 0 }; diff --git a/src/core2/ch/trainers.c b/src/core2/ch/trainers.c index 91c950b0..7a901d0d 100644 --- a/src/core2/ch/trainers.c +++ b/src/core2/ch/trainers.c @@ -19,7 +19,7 @@ ActorAnimationInfo chTrainersAnimations[] = { ActorInfo chTrainers = { MARKER_38_TURBO_TALON_TRAINERS, ACTOR_2C_TURBO_TALON_TRAINERS, ASSET_367_MODEL_TURBO_TALON_TRAINERS, 0x0, chTrainersAnimations, - chtrainers_update, func_80326224, chtrainers_draw, + chtrainers_update, actor_update_func_80326224, chtrainers_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/wadingboots.c b/src/core2/ch/wadingboots.c index 8e4a93ab..a77083ea 100644 --- a/src/core2/ch/wadingboots.c +++ b/src/core2/ch/wadingboots.c @@ -19,7 +19,7 @@ ActorAnimationInfo D_80367A00[] = { ActorInfo D_80367A20 = { MARKER_11_WADING_BOOTS, ACTOR_65_WADING_BOOTS, ASSET_366_MODEL_WADING_BOOTS, 0x0, D_80367A00, - chwadingboots_update, func_80326224, chwadingboots_draw, + chwadingboots_update, actor_update_func_80326224, chwadingboots_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/ch/whipcrack.c b/src/core2/ch/whipcrack.c index 5fda668b..1bc11e76 100644 --- a/src/core2/ch/whipcrack.c +++ b/src/core2/ch/whipcrack.c @@ -18,16 +18,16 @@ s32 D_80373124[3] = {0xA0, 0x6B, 0x23}; void __chwhipcrack_spawnPieces(Actor *this, enum asset_e model_id, s32 cnt){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); - particleEmitter_setParticleAccelerationRange(pCtrl, + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f ); - func_802EF9F8(pCtrl, 0.7f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.7f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 0.5f, 1.0f); particleEmitter_setSfx(pCtrl, SFX_1F_HITTING_AN_ENEMY_3, 10000); particleEmitter_setModel(pCtrl, model_id); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -120.0f, 50.0f, -120.0f, 120.0f, 300.0f, 120.0f ); @@ -54,7 +54,7 @@ void __chwhipcrack_spawnSmoke(Actor *this, s32 cnt){ particleEmitter_setPosition(pCtrl, this->position); particleEmitter_setStartingScaleRange(pCtrl, 3.0f, 3.5f); particleEmitter_setFinalScaleRange(pCtrl, 4.5f, 5.5f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -50.0f, 50.0f, -50.0f, 50.0f, 200.0f, 50.0f ); diff --git a/src/core2/code_3EAD0.c b/src/core2/code_3EAD0.c index 99061426..164cada0 100644 --- a/src/core2/code_3EAD0.c +++ b/src/core2/code_3EAD0.c @@ -17,14 +17,14 @@ s32 D_80365F30[] = { ActorInfo D_80365F60 = { 0x58, 0x4E, ASSET_7DE_SPRITE_SHOE_SPARKLES, 0, NULL, - func_802C5A60, func_80326224, func_80325934, + func_802C5A60, actor_update_func_80326224, func_80325934, 0, 0, 0.0f, 0 }; ActorInfo D_80365F84 = { 0x59, 0x4F, ASSET_7DE_SPRITE_SHOE_SPARKLES, 0, NULL, - func_802C5A60, func_80326224, func_80325934, + func_802C5A60, actor_update_func_80326224, func_80325934, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_3EC30.c b/src/core2/code_3EC30.c index dfccd932..8a57069b 100644 --- a/src/core2/code_3EC30.c +++ b/src/core2/code_3EC30.c @@ -5,7 +5,7 @@ void func_802C5BC0(Actor *this); /* .data */ -ActorInfo D_80365FB0 = { 0x65, 0xF3, 0x0, 0x0, 0x0, func_802C5BC0, func_80326224, func_80325340, 0, 0, 0.0f, 0}; +ActorInfo D_80365FB0 = { 0x65, 0xF3, 0x0, 0x0, 0x0, func_802C5BC0, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0}; /* .code */ void func_802C5BC0(Actor *this){ diff --git a/src/core2/code_41460.c b/src/core2/code_41460.c index b82a3605..f148b882 100644 --- a/src/core2/code_41460.c +++ b/src/core2/code_41460.c @@ -32,12 +32,12 @@ f32 D_80366330 = 0.5f; f32 D_80366334 = 30.0f; f32 D_80366338 = 150.0f; f32 D_8036633C = 25.0f; -ActorInfo D_80366340 = { 0x56, 0x4A, 0x0, 0x2, 0x0, func_802C8C5C, func_80326224, func_802C8484, 0, 0, 0.0f, 0}; -ActorInfo D_80366364 = { 0x56, 0x4B, 0x0, 0x2, 0x0, func_802C8C5C, func_80326224, func_802C8484, 0, 0, 0.0f, 0}; -ActorInfo D_80366388 = { 0x56, 0xD, 0x0, 0x2, 0x0, func_802C8C5C, func_80326224, func_802C8484, 0, 0, 0.0f, 0}; -ActorInfo D_803663AC = { 0x56, 0x11F, 0x0, 0x2, 0x0, func_802C8C5C, func_80326224, func_802C8484, 0, 0, 0.0f, 0}; -ActorInfo D_803663D0 = { 0x56, 0x14F, 0x0, 0x2, 0x0, func_802C8C5C, func_80326224, func_802C8484, 0, 0, 0.0f, 0}; -ActorInfo D_803663F4 = { 0x56, 0x3AD, 0x0, 0x2, 0x0, func_802C8C5C, func_80326224, func_802C8484, 0, 0, 0.0f, 0}; +ActorInfo D_80366340 = { 0x56, 0x4A, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; +ActorInfo D_80366364 = { 0x56, 0x4B, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; +ActorInfo D_80366388 = { 0x56, 0xD, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; +ActorInfo D_803663AC = { 0x56, 0x11F, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; +ActorInfo D_803663D0 = { 0x56, 0x14F, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; +ActorInfo D_803663F4 = { 0x56, 0x3AD, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; s32 D_80366418[3] = {0,0,0}; /* .bss */ diff --git a/src/core2/code_41F30.c b/src/core2/code_41F30.c index bf53db7e..0ce9672c 100644 --- a/src/core2/code_41F30.c +++ b/src/core2/code_41F30.c @@ -6,7 +6,7 @@ void chextralife_update(Actor *this); ActorInfo chExtraLife = { MARKER_61_EXTRA_LIFE, ACTOR_49_EXTRA_LIFE, ASSET_36E_MODEL_EXTRA_LIFE, 0x0, NULL, - chextralife_update, func_80326224, func_80325934, + chextralife_update, actor_update_func_80326224, func_80325934, 0, 0, 0.7f, 0 }; diff --git a/src/core2/code_42CB0.c b/src/core2/code_42CB0.c index 3bdf2e7e..f2bebc72 100644 --- a/src/core2/code_42CB0.c +++ b/src/core2/code_42CB0.c @@ -14,13 +14,13 @@ void chHoneycomb_update(Actor *this); /* .data */ ActorInfo D_80366C80 = { MARKER_53_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, ASSET_361_MODEL_EMPTY_HONEYCOMB, 0, NULL, - chHoneycomb_update, func_80326224, actor_draw, + chHoneycomb_update, actor_update_func_80326224, actor_draw, 0, 0, 0.8f, 0 }; ActorInfo D_80366CA4 = { MARKER_55_HONEYCOMB, ACTOR_50_HONEYCOMB, ASSET_363_MODEL_HONEYCOMB, 0, NULL, - chHoneycomb_update, func_80326224, actor_draw, + chHoneycomb_update, actor_update_func_80326224, actor_draw, 0, 0, 0.8f, 0 }; diff --git a/src/core2/code_43250.c b/src/core2/code_43250.c index 2674bfe8..74fe715b 100644 --- a/src/core2/code_43250.c +++ b/src/core2/code_43250.c @@ -22,7 +22,7 @@ void func_802CA1E0(Actor *this); ActorInfo D_80366CD0 = { 0x3D, 0x183, 0, 0, NULL, - func_802CA1E0, func_80326224, func_80325340, + func_802CA1E0, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_43800.c b/src/core2/code_43800.c index 41cef4d5..11933b57 100644 --- a/src/core2/code_43800.c +++ b/src/core2/code_43800.c @@ -13,7 +13,7 @@ void func_802CA92C(Actor *this); ActorInfo D_80366EF0 = { MARKER_32_PLAYER_SHADOW, ACTOR_17_PLAYER_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, 0x0, - func_802CA92C, func_80326224, func_802CA7BC, + func_802CA92C, actor_update_func_80326224, func_802CA7BC, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_43A40.c b/src/core2/code_43A40.c index eaf0b64d..ae95f12c 100644 --- a/src/core2/code_43A40.c +++ b/src/core2/code_43A40.c @@ -10,21 +10,21 @@ void chFightFlightPad_update(Actor *this); extern ActorInfo chShockJump = { 0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD, 0, NULL, - chShockJump_update, func_80326224, actor_draw, + chShockJump_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; extern ActorInfo chFlightPad = { MARKER_45_FLIGHT_PAD, ACTOR_E4_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD, 0, NULL, - chFlightPad_update, func_80326224, actor_draw, + chFlightPad_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; extern ActorInfo chFightFlightPad = { MARKER_261_FIGHT_FLIGHT_PAD, ACTOR_39F_FIGHT_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD, 0, NULL, - chFightFlightPad_update, func_80326224, actor_draw, + chFightFlightPad_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; @@ -38,7 +38,7 @@ extern ParticleScaleAndLifetimeRanges chFightFlightPad_D_80366F8C = { }; -extern struct43s chFightFlightPad_D_80366FB4 = { +extern ParticleSettingsVelocityAccelerationPosition chFightFlightPad_D_80366FB4 = { {{-360.0f, 360.0f, -360.0}, {360.0f, 660.0f, 360.0f}}, {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}} @@ -84,9 +84,9 @@ void chFightFlightPad_emitSparklesAtPosition(f32 position[3]){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(0x18); particleEmitter_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED); particleEmitter_setPosition(pCtrl, position); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &chFightFlightPad_D_80366FB4); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &chFightFlightPad_D_80366FB4); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &chFightFlightPad_D_80366F8C); - func_802EFA78(pCtrl, 1); + particleEmitter_func_802EFA78(pCtrl, 1); particleEmitter_emitN(pCtrl, 0x18); } diff --git a/src/core2/code_47BD0.c b/src/core2/code_47BD0.c index 06bed9a5..1f27832b 100644 --- a/src/core2/code_47BD0.c +++ b/src/core2/code_47BD0.c @@ -279,14 +279,14 @@ void chBeeSwarm_802CF610(Actor *this, ParticleEmitter *p_ctrl, f32 position[3]) func_8030E6A4(SFX_66_BIRD_AUUGHH, randf2(1.75f, 1.85f), 15000); particleEmitter_setPosition(p_ctrl, position); particleEmitter_setDrawMode(p_ctrl, 2); - func_802EF9F8(p_ctrl, 0.5f); - func_802EFA18(p_ctrl, 3); + particleEmitter_func_802EF9F8(p_ctrl, 0.5f); + particleEmitter_func_802EFA18(p_ctrl, 3); func_802EFA20(p_ctrl, 0.8f, 1.0f); particleEmitter_setSfx(p_ctrl, SFX_1F_HITTING_AN_ENEMY_3, 10000); particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(p_ctrl, 2.0f, 2.5f); particleEmitter_setFade(p_ctrl, 0.0f, 0.65f); - particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setModel(p_ctrl,this->marker->modelId); particleEmitter_setStartingScaleRange(p_ctrl, 0.25f, 0.25f); particleEmitter_setAngularVelocityRange(p_ctrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); diff --git a/src/core2/code_4A6F0.c b/src/core2/code_4A6F0.c index b3ac781c..3d8a2403 100644 --- a/src/core2/code_4A6F0.c +++ b/src/core2/code_4A6F0.c @@ -28,7 +28,7 @@ ActorAnimationInfo D_80367490[] = { ActorInfo D_803674E0 = { MARKER_6_MUMBO, ACTOR_7_MUMBO, ASSET_3C6_MODEL_MUMBO, 0x1, D_80367490, - chMumbo_update, func_80326224, chMumbo_draw, + chMumbo_update, actor_update_func_80326224, chMumbo_draw, 0, 0, 0.0f, 0 }; s32 D_80367504[3] = {0.0f, 0.0f, 0.0f}; diff --git a/src/core2/code_4BD70.c b/src/core2/code_4BD70.c index a003a1dc..d10a9e10 100644 --- a/src/core2/code_4BD70.c +++ b/src/core2/code_4BD70.c @@ -5,11 +5,11 @@ void chMumboSign_update(Actor *this); /* .data */ -ActorInfo D_80367530 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_368_5_MUMBO_TOKEN_SIGN, ASSET_301_MODEL_5_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80367554 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36B_10_MUMBO_TOKEN_SIGN, ASSET_302_MODEL_10_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80367578 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36A_15_MUMBO_TOKEN_SIGN, ASSET_303_MODEL_15_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_8036759C = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_369_20_MUMBO_TOKEN_SIGN, ASSET_304_MODEL_20_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_803675C0 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36C_25_MUMBO_TOKEN_SIGN, ASSET_305_MODEL_25_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367530 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_368_5_MUMBO_TOKEN_SIGN, ASSET_301_MODEL_5_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367554 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36B_10_MUMBO_TOKEN_SIGN, ASSET_302_MODEL_10_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367578 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36A_15_MUMBO_TOKEN_SIGN, ASSET_303_MODEL_15_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8036759C = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_369_20_MUMBO_TOKEN_SIGN, ASSET_304_MODEL_20_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_803675C0 = { MARKER_1E9_MUMBO_COST_SIGN, ACTOR_36C_25_MUMBO_TOKEN_SIGN, ASSET_305_MODEL_25_MUMBO_TOKEN_SIGN, 0x0, 0x0, chMumboSign_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; void chMumboSign_update(Actor *this) { if (!this->volatile_initialized) { diff --git a/src/core2/code_4BE10.c b/src/core2/code_4BE10.c index 45559030..274d4e99 100644 --- a/src/core2/code_4BE10.c +++ b/src/core2/code_4BE10.c @@ -13,7 +13,7 @@ ActorInfo D_803675F0 = { }; s16 D_80367614[] = {3,2,3,4,3,5,3,0}; ParticleScaleAndLifetimeRanges D_80367624 = {{0.7f, 0.3f}, {0.01f, 0.01f}, {0.05f, 0.05f}, {0.2f, 0.2f}, 0.0f, 0.01f}; -struct42s D_8036764C = { +ParticleSettingsVelocityPosition D_8036764C = { {{-100.0f, 400.0f, -100.0f}, { 100.0f, 800.0f, 100.0f}}, {{-100.0f, 0.0f, -100.0f}, { 100.0f, 0.0f, 100.0f}} }; diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 28a92ae6..0dcd15b9 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -81,22 +81,22 @@ ActorAnimationInfo D_803676B0[] = { {0x217, 0.3f} }; -ActorInfo D_80367760 = { 0x26E, 0x2D9, 0x3B4, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80367784 = { 0x26F, 0x2DA, 0x3B5, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803677A8 = { MARKER_168_ICE_KEY, ACTOR_25D_ICE_KEY, ASSET_50C_MODEL_ICE_KEY, 0x1, NULL, func_802D4250, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803677CC = { 0x233, 0x23D, 0x4DD, 0x12, D_803676B0, func_802D4388, func_80326224, func_802D4588, 0, 0, 0.0f, 0}; +ActorInfo D_80367760 = { 0x26E, 0x2D9, 0x3B4, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80367784 = { 0x26F, 0x2DA, 0x3B5, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803677A8 = { MARKER_168_ICE_KEY, ACTOR_25D_ICE_KEY, ASSET_50C_MODEL_ICE_KEY, 0x1, NULL, func_802D4250, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803677CC = { 0x233, 0x23D, 0x4DD, 0x12, D_803676B0, func_802D4388, actor_update_func_80326224, func_802D4588, 0, 0, 0.0f, 0}; ActorInfo D_803677F0 = { 0x16A, 0x242, 0x0, 0x0, NULL, func_802D4680, NULL, func_80325340, 0, 0, 0.0f, 0}; ActorInfo D_80367814 = { MARKER_169_SNS_EGG, ACTOR_25E_SNS_EGG, ASSET_50D_MODEL_SNS_EGG, 0x1, NULL, func_802D3FD4, NULL, func_802D41C4, 0, 0, 0.0f, 0}; ActorInfo D_80367838 = { 0x265, 0x2E4, 0x55A, 0x1, NULL, func_802D3DA4, NULL, func_802D3F48, 0, 0, 0.0f, 0}; -ActorInfo D_8036785C = { MARKER_103_MM_WITCH_SWITCH, ACTOR_204_MM_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4B94, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80367880 = { MARKER_104_MMM_WITCH_SWITCH, ACTOR_206_MMM_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C34, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_803678A4 = { MARKER_105_TTC_WITCH_SWITCH, ACTOR_208_TTC_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C5C, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_803678C8 = { MARKER_106_RBB_WITCH_SWITCH, ACTOR_20B_RBB_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C84, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_803678EC = { MARKER_22A_CCW_WITCH_SWITCH, ACTOR_237_CCW_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4CAC, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80367910 = { MARKER_22B_FP_WITCH_SWITCH, ACTOR_239_FP_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4CD4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80367934 = { MARKER_166_CC_WITCH_SWITCH, ACTOR_25B_CC_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4BBC, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80367958 = { MARKER_162_BGS_WITCH_SWITCH, ACTOR_257_BGS_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4BE4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_8036797C = { MARKER_161_GV_WITCH_SWITCH, ACTOR_256_GV_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C0C, func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8036785C = { MARKER_103_MM_WITCH_SWITCH, ACTOR_204_MM_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4B94, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367880 = { MARKER_104_MMM_WITCH_SWITCH, ACTOR_206_MMM_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C34, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_803678A4 = { MARKER_105_TTC_WITCH_SWITCH, ACTOR_208_TTC_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C5C, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_803678C8 = { MARKER_106_RBB_WITCH_SWITCH, ACTOR_20B_RBB_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C84, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_803678EC = { MARKER_22A_CCW_WITCH_SWITCH, ACTOR_237_CCW_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4CAC, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367910 = { MARKER_22B_FP_WITCH_SWITCH, ACTOR_239_FP_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4CD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367934 = { MARKER_166_CC_WITCH_SWITCH, ACTOR_25B_CC_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4BBC, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80367958 = { MARKER_162_BGS_WITCH_SWITCH, ACTOR_257_BGS_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4BE4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_8036797C = { MARKER_161_GV_WITCH_SWITCH, ACTOR_256_GV_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C0C, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; s32 D_803679A0[4] = {0x87, 0x87, 0x87, 0xA0}; s16 D_803679B0[] = {0x5, 0x90, 0xA, 0x93, 0xF,0x92, 0x14, 0x91, 0x19, 0x94, -1}; diff --git a/src/core2/code_50490.c b/src/core2/code_50490.c index 90377607..9d576953 100644 --- a/src/core2/code_50490.c +++ b/src/core2/code_50490.c @@ -24,19 +24,19 @@ f32 D_80367AA4[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_80367AB0 = { 0x57, 0x4C, 0x0, 0, NULL, - func_802D766C, func_80326224, func_802D745C, + func_802D766C, actor_update_func_80326224, func_802D745C, 0, 0, 0.0f, 0 }; ActorInfo D_80367AD4 = { 0x57, 0x4D, 0x0, 0, NULL, - func_802D766C, func_80326224, func_802D745C, + func_802D766C, actor_update_func_80326224, func_802D745C, 0, 0, 0.0f, 0 }; ActorInfo D_80367AF8 = { 0x57, 0x58, 0x0, 0, NULL, - func_802D766C, func_80326224, func_802D745C, + func_802D766C, actor_update_func_80326224, func_802D745C, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_509D0.c b/src/core2/code_509D0.c index 1ce901a4..5ea6162b 100644 --- a/src/core2/code_509D0.c +++ b/src/core2/code_509D0.c @@ -21,35 +21,35 @@ ActorAnimationInfo D_80367B50[] = { ActorInfo D_80367B80 = { MARKER_36_ORANGE_COLLECTIBLE, ACTOR_29_ORANGE_COLLECTIBLE, ASSET_2D2_MODEL_ORANGE, 0x5, NULL, - chLevelCollectible_update, func_80326224, actor_draw, + chLevelCollectible_update, actor_update_func_80326224, actor_draw, 0, 0, 0.6f,0 }; ActorInfo D_80367BA4 = { MARKER_37_GOLD_BULLION, ACTOR_2A_GOLD_BULLION, ASSET_3C7_MODEL_GOLD_BULLION, 0x5, NULL, - chLevelCollectible_update, func_80326224, actor_draw, + chLevelCollectible_update, actor_update_func_80326224, actor_draw, 0, 0, 0.6f, 0 }; ActorInfo D_80367BC8 = { MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, ASSET_47F_MODEL_XMAS_GIFT_BLUE, 0x5, D_80367B50, - chLevelCollectible_update, func_80326224, actor_draw, + chLevelCollectible_update, actor_update_func_80326224, actor_draw, 0, 0, 1.8f, 0 }; ActorInfo D_80367BEC = { MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, ASSET_480_MODEL_XMAS_GIFT_GREEN, 0x5, D_80367B50, - chLevelCollectible_update, func_80326224, actor_draw, + chLevelCollectible_update, actor_update_func_80326224, actor_draw, 0, 0, 1.4f, 0 }; ActorInfo D_80367C10 = { MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, ASSET_481_MODEL_XMAS_GIFT_RED, 0x5, D_80367B50, - chLevelCollectible_update, func_80326224, actor_draw, + chLevelCollectible_update, actor_update_func_80326224, actor_draw, 0, 0, 1.4f, 0 }; @@ -62,8 +62,8 @@ void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_ particleEmitter_setSprite(p_emitter, sprite_id); particleEmitter_setStartingFrameRange(p_emitter, 0, 7); particleEmitter_setPosition(p_emitter, position); - particleEmitter_setParticleSpawnPositionRange(p_emitter, -40.0f, 0.0f, -40.0f, 40.0f, 60.0f, 40.0f); - particleEmitter_setParticleAccelerationRange(p_emitter, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); + particleEmitter_setSpawnPositionRange(p_emitter, -40.0f, 0.0f, -40.0f, 40.0f, 60.0f, 40.0f); + particleEmitter_setAccelerationRange(p_emitter, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); particleEmitter_setScaleAndLifetimeRanges(p_emitter, &D_80367C34); particleEmitter_emitN(p_emitter, 1); } @@ -74,7 +74,7 @@ void __chLevelCollectible_presentCollectEmitSparkles(f32 position[3], enum asset p_emitter = partEmitMgr_newEmitter(8); particleEmitter_setSprite(p_emitter, sprite_id); particleEmitter_setPosition(p_emitter, position); - particleEmitter_setParticleAccelerationRange(p_emitter, 0.0f, -250.0f, 0.0f, 0.0f, -250.0f, 0.0f); + particleEmitter_setAccelerationRange(p_emitter, 0.0f, -250.0f, 0.0f, 0.0f, -250.0f, 0.0f); particleEmitter_setParticleVelocityRange(p_emitter, -100.0f, 200.0f, -100.0f, 100.0f, 350.0f, 100.0f); particleEmitter_setAngularVelocityRange(p_emitter, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 240.0f); particleEmitter_setStartingScaleRange(p_emitter, 0.47f, 0.47f); diff --git a/src/core2/code_517A0.c b/src/core2/code_517A0.c index 630399fd..64c2f1c6 100644 --- a/src/core2/code_517A0.c +++ b/src/core2/code_517A0.c @@ -10,7 +10,7 @@ void func_802D8730(Actor *this); ActorInfo D_80367C60 = { 0x15E, 0x188, 0x0, 0, NULL, - func_802D8730, func_80326224, func_80325340, + func_802D8730, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; @@ -46,7 +46,7 @@ void func_802D8730(Actor *this) { this->velocity_y = 0.07f; pCtrl = func_802F4094(this->position, 40.0f); particleEmitter_setStartingScaleRange(pCtrl, 0.05f, 0.06f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -3400.0f, 0.0f, 0.0f, -3400.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -3400.0f, 0.0f, 0.0f, -3400.0f, 0.0f); particleEmitter_setRGB(pCtrl, D_80367C84); particleEmitter_setParticleVelocityRange(pCtrl, -180.0f, 200.0f, -180.0f, 180.0f, 400.0f, 180.0f); particleEmitter_emitN(pCtrl, 9); diff --git a/src/core2/code_51950.c b/src/core2/code_51950.c index fdce3c20..9ee04c4f 100644 --- a/src/core2/code_51950.c +++ b/src/core2/code_51950.c @@ -10,14 +10,14 @@ void func_802D88E0(Actor *this); ActorInfo D_80367C90 = { 0x100, 0x1FF, 0x580, 0x0, NULL, - func_802D88E0, func_80326224, func_80325934, + func_802D88E0, actor_update_func_80326224, func_80325934, 0, 0, 0.0f, 0 }; ActorInfo D_80367CB4 = { 0x101, 0x200, 0x6D1, 0x0, NULL, - func_802D88E0, func_80326224, func_80325934, + func_802D88E0, actor_update_func_80326224, func_80325934, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_53A10.c b/src/core2/code_53A10.c index e8a644fc..81c71dad 100644 --- a/src/core2/code_53A10.c +++ b/src/core2/code_53A10.c @@ -8,7 +8,7 @@ void func_802DAA14(Actor *this); ActorInfo D_80367E70= { 0x21B, 0x351, 0, 0, NULL, - func_802DAA14, func_80326224, func_80325340, + func_802DAA14, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; //000E0F00 diff --git a/src/core2/code_53C10.c b/src/core2/code_53C10.c index 3e1714a4..94cbc3a5 100644 --- a/src/core2/code_53C10.c +++ b/src/core2/code_53C10.c @@ -35,8 +35,8 @@ typedef struct { void func_802DABA0(ParticleEmitter *pCtrl, f32 position[3], f32 scale, enum asset_e model_id) { particleEmitter_setPosition(pCtrl, position); particleEmitter_setDrawMode(pCtrl, 2); - func_802EF9F8(pCtrl, 0.7f); - func_802EFA18(pCtrl, 5); + particleEmitter_func_802EF9F8(pCtrl, 0.7f); + particleEmitter_func_802EFA18(pCtrl, 5); func_802EFA20(pCtrl, 0.8f, 1.0f); particleEmitter_setSfx(pCtrl, SFX_1F_HITTING_AN_ENEMY_3, 6000); particleEmitter_setStartingScaleRange(pCtrl, scale, scale); @@ -47,7 +47,7 @@ void func_802DABA0(ParticleEmitter *pCtrl, f32 position[3], f32 scale, enum asse } void func_802DAC84(ParticleEmitter *pCtrl, Actor *this, enum asset_e model_id) { - static struct41s D_80367EA0 = { + static ParticleSettingsVelocityAcceleration D_80367EA0 = { {{-200.0f, 850.0f, -200.0f}, { 400.0f, 1000.0f, 400.0f}}, {{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}} }; @@ -59,7 +59,7 @@ void func_802DAC84(ParticleEmitter *pCtrl, Actor *this, enum asset_e model_id) { void func_802DAD08(ParticleEmitter *pCtrl, Actor *this, enum asset_e model_id) { - static struct41s D_80367ED0 = { + static ParticleSettingsVelocityAcceleration D_80367ED0 = { {{ -50.0f, 750.0f, -50.0f}, { 120.0f, 900.0f, 120.0f}}, {{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}} }; @@ -70,7 +70,7 @@ void func_802DAD08(ParticleEmitter *pCtrl, Actor *this, enum asset_e model_id) { } void func_802DAD8C(ParticleEmitter *pCtrl, Actor *this, enum asset_e model_id) { - static struct41s D_80367F00 = { + static ParticleSettingsVelocityAcceleration D_80367F00 = { {{ -80.0f, 400.0f, -80.0f}, { 160.0f, 860.0f, 160.0f}}, {{ 0.0f, -1400.0f, 0.0f}, { 0.0f, -1400.0f, 0.0f}} }; diff --git a/src/core2/code_54D50.c b/src/core2/code_54D50.c index 0b38e060..da7f1163 100644 --- a/src/core2/code_54D50.c +++ b/src/core2/code_54D50.c @@ -18,19 +18,19 @@ void func_802DC018(Actor *this); ActorInfo D_80367F30= { 0x1F5, 0x1E5, 0, 0, NULL, - func_802DC018, func_80326224, func_80325340, + func_802DC018, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; s32 D_80367F54[3] = {0xff, 0xff, 0xff}; -struct40s D_80367F60 = { +ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80367F60 = { { {0.1f, 0.5f}, {1.0f, 1.5f}, {0.0f, 0.01f}, {0.5f, 1.4f}, 0.0f, 0.01f }, 4, 1 }; -struct43s D_80367F90 ={ +ParticleSettingsVelocityAccelerationPosition D_80367F90 ={ {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, {{0.0f, -650.0f, 0.0f}, {0.0f, -650.0f, 0.0f}}, {{-200.0f, 0.0f, -200.0f}, {200.0f, 0.0f, 200.0f}} @@ -63,12 +63,12 @@ void func_802DBCE0(ParticleEmitter *pCtrl, f32 arg1[3]){ } void func_802DBE9C(Actor *this, ParticleEmitter *pCtrl){ - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80367F90); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80367F90); particleEmitter_setModel(pCtrl, 0x344); particleEmitter_setPosition(pCtrl, this->position); particleEmitter_setDrawMode(pCtrl, 4); particleEmitter_setAngularVelocityRange(pCtrl, -450.0f, -450.0f, -450.0f, 450.0f, 450.0f, 450.0f); - func_802EFA18(pCtrl, 1); + particleEmitter_func_802EFA18(pCtrl, 1); particleEmitter_setParticleCallback(pCtrl, func_802DBCE0); particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(pCtrl, 7.0f, 7.0f); diff --git a/src/core2/code_55180.c b/src/core2/code_55180.c index ed11ef7d..9fbc48df 100644 --- a/src/core2/code_55180.c +++ b/src/core2/code_55180.c @@ -10,11 +10,11 @@ void func_802DC208(Actor *this); ActorInfo D_80367FE0 = { 0x1F6, 0x1E6, 0, 0, NULL, - func_802DC208, func_80326224, func_80325340, + func_802DC208, actor_update_func_80326224, func_80325340, 3000, 0, 0.0f, 0 }; -struct40s D_80368004 = { +ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80368004 = { {{0.2f, 0.4f}, {0.8f, 1.0f}, {0.0f, 0.01f}, diff --git a/src/core2/code_55390.c b/src/core2/code_55390.c index 81401138..11b7e116 100644 --- a/src/core2/code_55390.c +++ b/src/core2/code_55390.c @@ -14,7 +14,7 @@ f32 D_80368040[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_8036804C = { MARKER_174_GAME_OVER, ACTOR_1DB_GAME_OVER, ASSET_54C_MODEL_GAME_OVER, 0x1, NULL, - func_802DC45C, func_80326224, func_802DC320, + func_802DC45C, actor_update_func_80326224, func_802DC320, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_556C0.c b/src/core2/code_556C0.c index ab3d2786..78965da3 100644 --- a/src/core2/code_556C0.c +++ b/src/core2/code_556C0.c @@ -10,7 +10,7 @@ f32 D_80368070[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_8036807C = { 0x17C, 0x19C, 0x56C, 0x1, NULL, - func_802DC67C, func_80326224, func_802DC320, + func_802DC67C, actor_update_func_80326224, func_802DC320, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_55850.c b/src/core2/code_55850.c index deb6e111..13c6384b 100644 --- a/src/core2/code_55850.c +++ b/src/core2/code_55850.c @@ -13,7 +13,7 @@ f32 D_803680A0[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_803680AC = { 0x175, 0x1DC, 0x54D, 0x1, NULL, - func_802DC900, func_80326224, func_802DC7E0, + func_802DC900, actor_update_func_80326224, func_802DC7E0, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_57C70.c b/src/core2/code_57C70.c index e778e9bc..2cb237e0 100644 --- a/src/core2/code_57C70.c +++ b/src/core2/code_57C70.c @@ -24,7 +24,7 @@ f32 D_80368330[3] = {0.0f, 0.0f, 0.0f}; ActorInfo D_8036833C = { 0x294, 0x19B, ASSET_56D_MUMBOS_HAND_WITH_PICTURE, 0x1, D_80368300, - func_802DEE1C, func_80326224, func_802DEC00, + func_802DEE1C, actor_update_func_80326224, func_802DEC00, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_581D0.c b/src/core2/code_581D0.c index f9b43274..b869ab63 100644 --- a/src/core2/code_581D0.c +++ b/src/core2/code_581D0.c @@ -13,7 +13,7 @@ s32 D_8036837C[4] = {0xFF, 0xFF, 0xFF, 0xFF}; ActorInfo D_8036838C = { 0x17B, 0x2B5, 0x472, 0, NULL, - func_802DF2C4, func_80326224, func_80325340, + func_802DF2C4, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_59780.c b/src/core2/code_59780.c index f1c3232f..aab5e542 100644 --- a/src/core2/code_59780.c +++ b/src/core2/code_59780.c @@ -19,7 +19,7 @@ ActorAnimationInfo D_80368440[] = { ActorInfo D_80368450 = { MARKER_72_FIRE_SPARKLE, ACTOR_A2_FIRE_SPARKLE, ASSET_3AD_FIRE_SPARKLE, 0x1, D_80368440, - func_802E08F0, func_80326224, actor_draw, + func_802E08F0, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_59A80.c b/src/core2/code_59A80.c index 8e3ea84a..7dbdb014 100644 --- a/src/core2/code_59A80.c +++ b/src/core2/code_59A80.c @@ -15,7 +15,7 @@ enum mumbotoken_e func_802E0CB0(Actor *this); ActorInfo D_803685A0 = { MARKER_39_MUMBO_TOKEN, ACTOR_2D_MUMBO_TOKEN, ASSET_41A_SPRITE_MUMBO_TOKEN, 0, NULL, - func_802E0B10, func_80326224, func_80325934, + func_802E0B10, actor_update_func_80326224, func_80325934, 2000, 0, 0.0f, 0 }; diff --git a/src/core2/code_66D90.c b/src/core2/code_66D90.c index e6744e58..a3aca744 100644 --- a/src/core2/code_66D90.c +++ b/src/core2/code_66D90.c @@ -31,16 +31,16 @@ ParticleEmitter *func_802EDD8C(f32 pos[3], f32 xz_range, f32 arg2){ particleEmitter_setSprite(pCtrl, ASSET_70A_SPRITE_BUBBLE_1); particleEmitter_setDrawMode(pCtrl, 4); particleEmitter_setAlpha(pCtrl, 0xff); - particleEmitter_setParticleAccelerationRange( pCtrl, + particleEmitter_setAccelerationRange( pCtrl, 0.0f, 150.0f, 0.0f, 0.0f, 150.0f, 0.0f ); - func_802EFA18(pCtrl, 1); + particleEmitter_func_802EFA18(pCtrl, 1); func_802EFA34(pCtrl, arg2); particleEmitter_setParticleCallback(pCtrl, func_802EDD68); particleEmitter_setFade(pCtrl, 0.0f, 0.8f); particleEmitter_setParticleLifeTimeRange(pCtrl, 4.0f, 4.0f); - particleEmitter_setParticleSpawnPositionRange( pCtrl, + particleEmitter_setSpawnPositionRange( pCtrl, -xz_range, 0.0f, -xz_range, xz_range, 0.0f, xz_range ); diff --git a/src/core2/code_66FB0.c b/src/core2/code_66FB0.c index 7741ab91..43cf98e8 100644 --- a/src/core2/code_66FB0.c +++ b/src/core2/code_66FB0.c @@ -61,13 +61,13 @@ void func_802EDF40(f32 pos[3], s32 arg1, s32 cnt, f32 arg3, f32 arg4, f32 arg5, particleEmitter_setAngularVelocityRange(pCtrl, 0, 0, 0, 0, 0, 0); func_802EFF9C(pCtrl, 0); }//L802EE0B4 - particleEmitter_setParticleAccelerationRange(pCtrl, + particleEmitter_setAccelerationRange(pCtrl, 0, -800.0f, 0, 0, -800.0f, 0 ); - func_802EF9F8(pCtrl, 0.6f); - func_802EFA18(pCtrl, 0); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_func_802EF9F8(pCtrl, 0.6f); + particleEmitter_func_802EFA18(pCtrl, 0); + particleEmitter_setSpawnPositionRange(pCtrl, -10.0f, -10.0f, -10.0f, 10.0f, 10.0f, 10.0f ); diff --git a/src/core2/code_67650.c b/src/core2/code_67650.c index 6442bc65..dcf2599e 100644 --- a/src/core2/code_67650.c +++ b/src/core2/code_67650.c @@ -57,7 +57,7 @@ void func_802EE6CC(f32 position[3], f32 velocity[3], s32 color[4], s32 arg3, f32 particleEmitter_setFade(p_ctrl, 0.075f, 0.4f); particleEmitter_setPosition(p_ctrl, position); particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.0f); - func_802EFA78(p_ctrl, 1); + particleEmitter_func_802EFA78(p_ctrl, 1); if (velocity != NULL) { ml_vec3f_scale_copy(sp40, velocity, 30.0f); } else { diff --git a/src/core2/code_6CD20.c b/src/core2/code_6CD20.c index c21bb34e..aaa72775 100644 --- a/src/core2/code_6CD20.c +++ b/src/core2/code_6CD20.c @@ -11,7 +11,7 @@ s16 D_80368D80[] = { ASSET_719_SPRITE_SPARKLE_GREEN_2, }; -struct43s D_80368D88 = { +ParticleSettingsVelocityAccelerationPosition D_80368D88 = { {{-300.0f, -300.0f, -300.0f}, {300.0f, 300.0f, 300.0f}}, {{0.0f, -100.0f, 0.0f}, {0.0f, -100.0f, 0.0f}}, {{-25.0f, -25.0f, -25.0f}, {25.0f, 25.0f, 25.0f}} @@ -45,7 +45,7 @@ void func_802F3CF8(f32 arg0[3], s32 arg1, s32 arg2){ particleEmitter_setStartingScaleRange(pCtrl, 0.1f, 0.2f); particleEmitter_setFinalScaleRange(pCtrl, 0.4f, 0.5f); particleEmitter_setParticleLifeTimeRange(pCtrl, 0.75f, 0.75f); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80368D88); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80368D88); if(arg1 == 0){ particleEmitter_setDrawMode(pCtrl, PART_EMIT_NO_DEPTH); } diff --git a/src/core2/code_6CEC0.c b/src/core2/code_6CEC0.c index 20dc7789..151106e6 100644 --- a/src/core2/code_6CEC0.c +++ b/src/core2/code_6CEC0.c @@ -19,7 +19,7 @@ ParticleEmitter *func_802F3E98(f32 pos[3], enum asset_e sprite_id){ this = func_802F0EF0(D_80380A80); particleEmitter_setSprite(this, sprite_id); - particleEmitter_setParticleAccelerationRange(this, + particleEmitter_setAccelerationRange(this, 0.0f, -250.0f, 0.0f, 0.0f, -250.0f, 0.0f ); diff --git a/src/core2/code_6D030.c b/src/core2/code_6D030.c index 3fbb4a54..645c8abd 100644 --- a/src/core2/code_6D030.c +++ b/src/core2/code_6D030.c @@ -39,15 +39,15 @@ ParticleEmitter *func_802F4094(f32 pos[3], f32 arg1){ pCtrl = func_802F0EF0(D_80380A90); particleEmitter_setSprite(pCtrl, ASSET_70B_SPRITE_BUBBLE_2); particleEmitter_setAlpha(pCtrl, 180); - particleEmitter_setParticleAccelerationRange(pCtrl, + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1300.0f, 0.0f, 0.0f, -1300.0f, 0.0f ); - func_802EFA18(pCtrl, 1); + particleEmitter_func_802EFA18(pCtrl, 1); func_802EFA04(pCtrl, pos[1]); particleEmitter_setParticleCallback(pCtrl, func_802F3FC0); particleEmitter_setFade(pCtrl, 0.0f, 0.8f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, + particleEmitter_setSpawnPositionRange(pCtrl, -arg1, 0.0f, -arg1, arg1, 0.0f, arg1 ); diff --git a/src/core2/code_935F0.c b/src/core2/code_935F0.c index 016f061e..b1b155ea 100644 --- a/src/core2/code_935F0.c +++ b/src/core2/code_935F0.c @@ -26,7 +26,7 @@ enum chminigame_state_e { ActorInfo chMinigame = { MARKER_1E1_FF_MINIGAME, ACTOR_376_FF_MINIGAME, 0x0, MINIGAME_STATE_1_INTRODUCE_GAME, NULL, - chMinigame_update, func_80326224, func_80325340, + chMinigame_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_9E370.c b/src/core2/code_9E370.c index 9805d8d1..525cb516 100644 --- a/src/core2/code_9E370.c +++ b/src/core2/code_9E370.c @@ -439,7 +439,7 @@ s32 func_80326218(void){ return D_8036E564; } -void func_80326224(Actor *this){ +void actor_update_func_80326224(Actor *this){ func_80343DEC(this); } diff --git a/src/core2/code_D0CA0.c b/src/core2/code_D0CA0.c index a4ac1157..4eac6687 100644 --- a/src/core2/code_D0CA0.c +++ b/src/core2/code_D0CA0.c @@ -239,7 +239,7 @@ void func_803584BC(Actor *this) { void func_80358524(f32 position[3], s32 count, enum asset_e model_id) { static ParticleScaleAndLifetimeRanges D_803728C4 = { {1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.01f}, {1.2f, 1.2f}, 0.0f, 0.1f}; - static struct43s D_803728EC = { + static ParticleSettingsVelocityAccelerationPosition D_803728EC = { {{-250.0f, 500.0f, -250.0f}, { 350.0f, 760.0f, 350.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}}, {{ -50.0f, 0.0f, -50.0f}, { 50.0f, 50.0f, 50.0f}} @@ -252,11 +252,11 @@ void func_80358524(f32 position[3], s32 count, enum asset_e model_id) { particleEmitter_setModel(temp_v0, model_id); particleEmitter_setPosition(p_ctrl, position); particleEmitter_setAngularVelocityRange(p_ctrl, -400.0f, -400.0f, -400.0f, 400.0f, 400.0f, 400.0f); - func_802EF9F8(p_ctrl, 0.01f); - func_802EFA18(p_ctrl, 3); + particleEmitter_func_802EF9F8(p_ctrl, 0.01f); + particleEmitter_func_802EFA18(p_ctrl, 3); func_802EFA20(p_ctrl, 1.0f, 1.3f); particleEmitter_setSfx(p_ctrl, SFX_2F_ORANGE_SPLAT, 16000); - particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_803728EC); + particleEmitter_setVelocityAccelerationAndPositionRanges(p_ctrl, &D_803728EC); particleEmitter_setScaleAndLifetimeRanges(p_ctrl, &D_803728C4); particleEmitter_emitN(p_ctrl, count); } diff --git a/src/core2/code_D5D10.c b/src/core2/code_D5D10.c index 7243542e..bdf09b01 100644 --- a/src/core2/code_D5D10.c +++ b/src/core2/code_D5D10.c @@ -50,14 +50,14 @@ ActorAnimationInfo D_80372D20[] = { ActorInfo D_80372D78 = { MARKER_218_LIMBO, ACTOR_34E_LIMBO, ASSET_4CC_MODEL_LIMBO, 0x1, D_80372D20, - chskeleton_update, func_80326224, actor_draw, + chskeleton_update, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0 }; /* .code */ void func_8035CCA0(ParticleEmitter *pCtrl, Actor *this, enum asset_e model_id) { func_802DABA0(pCtrl, this->position, this->scale, model_id); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -50.0f, 750.0f, -50.0f, 120.0f, 900.0f, 120.0f); particleEmitter_emitN(pCtrl, 4); diff --git a/src/core2/code_D5FD0.c b/src/core2/code_D5FD0.c index bdb2aa86..bd3e405b 100644 --- a/src/core2/code_D5FD0.c +++ b/src/core2/code_D5FD0.c @@ -51,7 +51,7 @@ ActorAnimationInfo D_80372DA0[] = { ActorInfo D_80372DF8 = { MARKER_21A_SEAMAN_GRUBLIN, ACTOR_350_SEAMAN_GRUBLIN, ASSET_49D_MODEL_SEAMAN_GRUBLIN, 0x1, D_80372DA0, - func_8035D058, func_80326224, actor_draw, + func_8035D058, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0 }; diff --git a/src/core2/code_D6180.c b/src/core2/code_D6180.c index c97d3ae2..c70c4237 100644 --- a/src/core2/code_D6180.c +++ b/src/core2/code_D6180.c @@ -48,14 +48,14 @@ ActorAnimationInfo D_80372E20[] = { ActorInfo D_80372E78 = { MARKER_219_MUMMUM, ACTOR_34F_MUMMUM, ASSET_4C7_MODEL_MUMMUM, 0x1, D_80372E20, - func_8035D3D8, func_80326224, actor_draw, + func_8035D3D8, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0 }; /* .code */ void func_8035D110(ParticleEmitter *p_emitter, Actor *this, enum asset_e model_id) { func_802DABA0(p_emitter, this->position, this->scale, model_id); - particleEmitter_setParticleAccelerationRange(p_emitter, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); + particleEmitter_setAccelerationRange(p_emitter, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setAngularVelocityRange(p_emitter, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(p_emitter, -50.0f, 750.0f, -50.0f, 120.0f, 900.0f, 120.0f); particleEmitter_emitN(p_emitter, 1); diff --git a/src/core2/code_D6600.c b/src/core2/code_D6600.c index f96794ed..66088b78 100644 --- a/src/core2/code_D6600.c +++ b/src/core2/code_D6600.c @@ -30,7 +30,7 @@ ActorAnimationInfo D_80372EA0[] = { ActorInfo D_80372EE0 = { MARKER_69_CHUMP_FISH, ACTOR_A_CHUMP_FISH, ASSET_36B_CHUMP_FISH, 0x2, D_80372EA0, - func_8035DA1C, func_80326224, actor_draw, + func_8035DA1C, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0 }; diff --git a/src/core2/code_DA3A0.c b/src/core2/code_DA3A0.c index 8bc8f90d..abbe6b1d 100644 --- a/src/core2/code_DA3A0.c +++ b/src/core2/code_DA3A0.c @@ -53,9 +53,9 @@ void func_80361330(Actor *this, s32 next_state){ ml_vec3f_roll_rotate_copy(sp40, sp40, this->roll); ml_vec3f_yaw_rotate_copy(sp40, sp40, this->yaw); particleEmitter_setSprite(pctrl, ASSET_70E_SPRITE_SMOKE_2); - particleEmitter_setParticleAccelerationRange(pctrl, 0.0f, 200.0f, 0.0f, 0.0f, 1000.0f, 0.0f); + particleEmitter_setAccelerationRange(pctrl, 0.0f, 200.0f, 0.0f, 0.0f, 1000.0f, 0.0f); particleEmitter_setStartingFrameRange(pctrl, 0, 7); - particleEmitter_setParticleSpawnPositionRange(pctrl, -20.0f, -20.0f, -20.0f, 20.0f, 20.0f, 20.0f); + particleEmitter_setSpawnPositionRange(pctrl, -20.0f, -20.0f, -20.0f, 20.0f, 20.0f, 20.0f); particleEmitter_setPosition(pctrl, this->position); particleEmitter_setScaleAndLifetimeRanges(pctrl, &D_8037317C); particleEmitter_setParticleVelocityRange(pctrl, diff --git a/src/core2/code_DA760.c b/src/core2/code_DA760.c index aec41812..b3074a5d 100644 --- a/src/core2/code_DA760.c +++ b/src/core2/code_DA760.c @@ -8,7 +8,7 @@ void func_80361870(Actor *this); ActorInfo D_803731B0 = { 0x1E4, 0x373, 0, 0, NULL, - func_80361870, func_80326224, func_80325340, + func_80361870, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/code_DB010.c b/src/core2/code_DB010.c index 4997fec8..cb7019a1 100644 --- a/src/core2/code_DB010.c +++ b/src/core2/code_DB010.c @@ -30,8 +30,8 @@ ActorInfo D_803732E0 = { /* .code */ void func_80361FA0(f32 arg0[3]) { - static struct40s D_80373304 = {{{0.4f, 1.4f}, {0.0f, 0.0f}, {0.0f, 0.01f}, {4.0f, 4.0f}, 0.5f, 0.7f}, 4.0f, 15.0f}; - static struct43s D_80373334 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373304 = {{{0.4f, 1.4f}, {0.0f, 0.0f}, {0.0f, 0.01f}, {4.0f, 4.0f}, 0.5f, 0.7f}, 4.0f, 15.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373334 = { {{-250.0f, 600.0f, -250.0f}, { 350.0f, 960.0f, 350.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}}, {{ -60.0f, -30.0f, -60.0f}, { 60.0f, 30.0f, 60.0f}} @@ -42,19 +42,19 @@ void func_80361FA0(f32 arg0[3]) { particleEmitter_setModel(pCtrl, 0x441); particleEmitter_setPosition(pCtrl, arg0); particleEmitter_setAngularVelocityRange(pCtrl, -200.0f, 200.0f, -200.0f, 200.0f, 200.0f, 200.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 1.0f, 1.3f); particleEmitter_setSfx(pCtrl, SFX_2F_ORANGE_SPLAT, 16000); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373334); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373334); func_802EFC28(pCtrl, &D_80373304); FUNC_8030E624(SFX_7C_CHEBOOF, 0.6f, 29000); } void func_80362084(f32 position[3]) { static s32 D_8037337C[3] = {50, 255, 50}; - static struct40s D_80373388 = {{{0.3f, 0.03f}, {0.5f, 0.5f}, {0.0f, 0.01f}, {1.5f, 2.0f}, 0.06f, 0.7f}, 4.0f, 1.0f}; - static struct42s D_803733B8 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373388 = {{{0.3f, 0.03f}, {0.5f, 0.5f}, {0.0f, 0.01f}, {1.5f, 2.0f}, 0.06f, 0.7f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_803733B8 = { {{ -5.0f, 100.0f, -5.0f}, { 5.0f, 100.0f, 5.0f}}, {{-60.0f, 0.0f, -60.0f}, { 60.0f, 5.0f, 60.0f}} }; @@ -77,8 +77,8 @@ void func_80362084(f32 position[3]) { void func_8036215C(f32 arg0[3]) { static s32 D_803733E8[3] = {0xb4, 0xe6, 0xff}; - static struct40s D_803733F4 = {{{1.0f, 1.8f}, {2.2f, 2.7f}, {0.0f, 0.01f}, {0.8f, 1.2f}, 0.41f, 0.73f}, 4.0f, 15.0f}; - static struct43s D_80373424 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803733F4 = {{{1.0f, 1.8f}, {2.2f, 2.7f}, {0.0f, 0.01f}, {0.8f, 1.2f}, 0.41f, 0.73f}, 4.0f, 15.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373424 = { {{-300.0f, 600.0f, -300.0f}, { 300.0f, 1000.0f, 300.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1600.0f, 0.0f}}, {{ -10.0f, 0.0f, -10.0f}, { 10.0f, 0.0f, 10.0f}} @@ -91,13 +91,13 @@ void func_8036215C(f32 arg0[3]) { particleEmitter_setRGB(pCtrl, D_803733E8); particleEmitter_setAlpha(pCtrl, 0x28); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373424); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373424); func_802EFC28(pCtrl, &D_803733F4); } void func_803621F0(f32 arg0[3]) { - static struct40s D_8037346C = {{{0.3f, 0.4f}, {0.5f, 0.5f}, {0.0f, 0.01f}, {0.8f, 1.2f}, 0.91f, 0.99f}, 4.0f, 18.0f}; - static struct43s D_8037349C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8037346C = {{{0.3f, 0.4f}, {0.5f, 0.5f}, {0.0f, 0.01f}, {0.8f, 1.2f}, 0.91f, 0.99f}, 4.0f, 18.0f}; + static ParticleSettingsVelocityAccelerationPosition D_8037349C = { {{-200.0f, 900.0f, -200.0f}, { 200.0f, 1400.0f, 200.0f}}, {{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -2400.0f, 0.0f}}, {{ -10.0f, -20.0f, -10.0f}, { 10.0f, -20.0f, 10.0f}} @@ -109,13 +109,13 @@ void func_803621F0(f32 arg0[3]) { particleEmitter_setStartingFrameRange(pCtrl, 3, 5); particleEmitter_setAlpha(pCtrl, 0xD2); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8037349C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8037349C); func_802EFC28(pCtrl, &D_8037346C); } void func_80362274(f32 arg0[3]) { - static struct40s D_803734E4 = {{{3.2f, 3.4f}, {0.0f, 0.0f}, {0.0f, 0.01f}, {2.0f, 2.0f}, 0.0f, 0.3f}, 4.0f, 15.0f}; - static struct43s D_80373514 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803734E4 = {{{3.2f, 3.4f}, {0.0f, 0.0f}, {0.0f, 0.01f}, {2.0f, 2.0f}, 0.0f, 0.3f}, 4.0f, 15.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373514 = { {{-950.0f, 800.0f, -250.0f}, {-550.0f, 1360.0f, 50.0f}}, {{-700.0f, -1700.0f, 0.0f}, {-900.0f, -1700.0f, 0.0f}}, {{ -60.0f, 0.0f, -60.0f}, { 60.0f, 30.0f, 60.0f}} @@ -126,16 +126,16 @@ void func_80362274(f32 arg0[3]) { particleEmitter_setModel(pCtrl, 0x89B); particleEmitter_setPosition(pCtrl, arg0); particleEmitter_setAngularVelocityRange(pCtrl, -400.0f, -200.0f, -400.0f, 400.0f, -400.0f, 400.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 1.0f, 1.3f); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373514); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373514); func_802EFC28(pCtrl, &D_803734E4); } void func_8036233C(f32 arg0[3]) { - static struct40s D_8037355C = {{{3.0f, 3.4f}, {0.0f, 0.0f}, {0.0f, 0.01f}, {4.0f, 4.0f}, 0.0f, 0.3f}, 4.0f, 15.0f}; - static struct43s D_8037358C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8037355C = {{{3.0f, 3.4f}, {0.0f, 0.0f}, {0.0f, 0.01f}, {4.0f, 4.0f}, 0.0f, 0.3f}, 4.0f, 15.0f}; + static ParticleSettingsVelocityAccelerationPosition D_8037358C = { {{-450.0f, 600.0f, -50.0f}, {-150.0f, 1100.0f, 50.0f}}, {{-700.0f, -1700.0f, 0.0f}, {-800.0f, -1700.0f, 0.0f}}, {{ -60.0f, 0.0f, -60.0f}, { 60.0f, 30.0f, 60.0f}} @@ -146,16 +146,16 @@ void func_8036233C(f32 arg0[3]) { particleEmitter_setModel(pCtrl, 0x89A); particleEmitter_setPosition(pCtrl, arg0); particleEmitter_setAngularVelocityRange(pCtrl, -200.0f, 200.0f, -200.0f, 200.0f, 200.0f, 200.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 1.0f, 1.3f); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8037358C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8037358C); func_802EFC28(pCtrl, &D_8037355C); } void func_80362404(f32 arg0[3]) { - static struct40s D_803735D4 = {{{1.1f, 1.1f}, {4.3f, 4.3f}, {0.0f, 0.05f}, {0.3f, 0.5f}, 0.06f, 0.3f}, 4.0f, 1.0f}; - static struct42s D_80373604 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803735D4 = {{{1.1f, 1.1f}, {4.3f, 4.3f}, {0.0f, 0.05f}, {0.3f, 0.5f}, 0.06f, 0.3f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_80373604 = { {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}} }; @@ -171,8 +171,8 @@ void func_80362404(f32 arg0[3]) { void func_8036247C(f32 arg0[3]) { static s32 D_80373634[3] = {0xA, 0xFF, 0xA}; - static struct40s D_80373640 = {{{2.0f, 2.0f}, {3.0f, 3.5f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.1f, 0.4}, 4.0f, 1.0f}; - static struct42s D_80373670 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373640 = {{{2.0f, 2.0f}, {3.0f, 3.5f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.1f, 0.4}, 4.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_80373670 = { {{ 0.0f, 40.0f, 0.0f}, { 0.0f, 90.0f, 0.0f}}, {{-400.0f, 0.0f, -400.0f}, { 400.0f, 0.0f, 400.0f}} }; @@ -190,7 +190,7 @@ void func_8036247C(f32 arg0[3]) { void func_80362510(Actor *actor) { static s32 D_803736A0[3] = {0xFF, 0xFF, 0xFF}; - static struct40s D_803736AC = {{{0.01f, 0.01f}, {1.5f, 1.6f}, {0.05f, 0.7f}, {0.7f, 1.3f}, 0.1f, 0.8f}, 4.0f, 25.0f}; + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803736AC = {{{0.01f, 0.01f}, {1.5f, 1.6f}, {0.05f, 0.7f}, {0.7f, 1.3f}, 0.1f, 0.8f}, 4.0f, 25.0f}; ParticleEmitter *pCtrl; f32 sp30[3]; @@ -201,7 +201,7 @@ void func_80362510(Actor *actor) { particleEmitter_setRGB(pCtrl, D_803736A0); particleEmitter_setAlpha(pCtrl, 0x1E); particleEmitter_setPosition(pCtrl, actor->position); - particleEmitter_setParticleSpawnPositionRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); sp30[0] = 1000.0f; sp30[1] = 100.0f; sp30[2] = 0.0f; @@ -216,8 +216,8 @@ void func_80362510(Actor *actor) { void func_80362680(f32 arg0[3]) { - static struct40s D_803736DC = {{{0.7f, 0.9f}, {0.4f, 0.5}, {0.0f, 0.01f}, {0.8f, 1.0f}, 0.15f, 0.3f}, 0.0f, 1.0f}; - static struct42s D_8037370C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803736DC = {{{0.7f, 0.9f}, {0.4f, 0.5}, {0.0f, 0.01f}, {0.8f, 1.0f}, 0.15f, 0.3f}, 0.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_8037370C = { {{-10.0f, -10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}}, {{ 0.0f, 30.0f, 0.0f}, { 0.0f, 30.0f, 0.0f}} }; @@ -232,8 +232,8 @@ void func_80362680(f32 arg0[3]) { } void func_803626F8(f32 arg0[3]) { - static struct40s D_8037373C = {{{0.05f, 0.1f}, {0.1f, 0.2f}, {0.0f, 0.01f}, {1.4f, 1.5f}, 0.01f, 0.7f}, 0.0f, 1.0f}; - static struct43s D_8037376C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8037373C = {{{0.05f, 0.1f}, {0.1f, 0.2f}, {0.0f, 0.01f}, {1.4f, 1.5f}, 0.01f, 0.7f}, 0.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_8037376C = { {{ -5.0f, -5.0f, -5.0f}, { 5.0f, 5.0f, 5.0f}}, {{ 0.0f, -50.0f, 0.0f}, { 0.0f, -90.0f, 0.0f}}, {{-30.0f, 30.0f, -30.0f}, { 30.0f, 60.0f, 30.0f}} @@ -244,15 +244,15 @@ void func_803626F8(f32 arg0[3]) { particleEmitter_setSprite(pCtrl, 0x713); particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8037376C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8037376C); func_802EFC28(pCtrl, &D_8037373C); } void func_80362770(f32 arg0[3]) { static s32 D_803737B4[3] = {0xFF, 0xFF, 00}; - static struct40s D_803737C0 = {{{0.1f, 0.3f}, {0.6f, 0.7f}, {0.0f, 0.01f}, {0.3f, 0.4f}, 0.01f, 0.3f}, 4.0f, 16.0f}; - static struct42s D_803737F0 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803737C0 = {{{0.1f, 0.3f}, {0.6f, 0.7f}, {0.0f, 0.01f}, {0.3f, 0.4f}, 0.01f, 0.3f}, 4.0f, 16.0f}; + static ParticleSettingsVelocityPosition D_803737F0 = { {{-600.0f, -600.0f, -600.0f}, { 600.0f, 600.0f, 600.0f}}, {{ 0.0f, 30.0f, 0.0f}, { 0.0f, 30.0f, 0.0f}}, }; @@ -269,8 +269,8 @@ void func_80362770(f32 arg0[3]) { void func_803627F8(f32 arg0[3]){ static s32 D_80373820[3] = {130, 155, 40}; - static struct40s D_8037382C = {{{3.3f, 3.3f}, {4.5f, 4.7f}, {0.0f, 0.01f}, {1.8f, 3.2f}, 0.31f, 0.73f}, 4.0f, 11.0f}; - static struct43s D_8037385C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8037382C = {{{3.3f, 3.3f}, {4.5f, 4.7f}, {0.0f, 0.01f}, {1.8f, 3.2f}, 0.31f, 0.73f}, 4.0f, 11.0f}; + static ParticleSettingsVelocityAccelerationPosition D_8037385C = { {{-200.0f, 120.0f, -200.0f}, { 200.0f, 130.0f, 200.0f}}, {{ 0.0f, -100.0f, 0.0f}, { 0.0f, -100.0f, 0.0f}}, {{ -30.0f, 0.0f, -30.0f}, { 30.0f, 0.0f, 30.0f}} @@ -283,14 +283,14 @@ void func_803627F8(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373820); particleEmitter_setAlpha(pCtrl, 120); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8037385C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8037385C); func_802EFC28(pCtrl, &D_8037382C); } void func_8036288C(f32 arg0[3]){ static s32 D_803738A4[3] = {91, 142, 0}; - static struct40s D_803738B0 = {{{0.2f, 0.9f}, {0.4f, 0.9f}, {0.0f, 0.01f}, {1.8f, 4.2f}, 0.31f, 0.73f}, 4.0f, 13.0f}; - static struct43s D_803738E0 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803738B0 = {{{0.2f, 0.9f}, {0.4f, 0.9f}, {0.0f, 0.01f}, {1.8f, 4.2f}, 0.31f, 0.73f}, 4.0f, 13.0f}; + static ParticleSettingsVelocityAccelerationPosition D_803738E0 = { {{-400.0f, 520.0f, -400.0f}, { 400.0f, 750.0f, 400.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1600.0f, 0.0f}}, {{ -30.0f, 0.0f, -30.0f}, { 30.0f, 0.0f, 30.0f}} @@ -303,14 +303,14 @@ void func_8036288C(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_803738A4); particleEmitter_setAlpha(pCtrl, 255); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803738E0); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803738E0); func_802EFC28(pCtrl, &D_803738B0); } void func_80362920(f32 arg0[3]){ static s32 D_80373928[3] = {0, 255, 0}; - static struct40s D_80373934 = {{{1.4f, 1.9f}, {2.4f, 2.9f}, {0.0f, 3.2f}, {8.8f, 9.2f}, 0.31f, 0.73f}, 4.0f, 13.0f}; - static struct43s D_80373964 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373934 = {{{1.4f, 1.9f}, {2.4f, 2.9f}, {0.0f, 3.2f}, {8.8f, 9.2f}, 0.31f, 0.73f}, 4.0f, 13.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373964 = { {{-60.0f, 100.0f, -60.0f}, { 60.0f, 170.0f, 60.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{-30.0f, 0.0f, -30.0f}, { 30.0f, 0.0f, 30.0f}} @@ -321,14 +321,14 @@ void func_80362920(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373928); particleEmitter_setAlpha(pCtrl, 60); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373964); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373964); func_802EFC28(pCtrl, &D_80373934); } void func_803629B4(f32 arg0[3]){ static s32 D_803739AC[3] = {255, 255, 255}; - static struct40s D_803739B8 = {{{0.2f, 0.9f}, {0.3f, 0.4f}, {0.0f, 0.2f}, {1.0f, 1.2f}, 0.31f, 0.73f}, 4.0f, 13.0f}; - static struct43s D_803739E8 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803739B8 = {{{0.2f, 0.9f}, {0.3f, 0.4f}, {0.0f, 0.2f}, {1.0f, 1.2f}, 0.31f, 0.73f}, 4.0f, 13.0f}; + static ParticleSettingsVelocityAccelerationPosition D_803739E8 = { {{-600.0f, 0.0f, -600.0f}, { 600.0f, 0.0f, 600.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{ 0.0f, 40.0f, 0.0f}, { 0.0f, 40.0f, 0.0f}} @@ -341,14 +341,14 @@ void func_803629B4(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_803739AC); particleEmitter_setAlpha(pCtrl, 255); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803739E8); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803739E8); func_802EFC28(pCtrl, &D_803739B8); } void func_80362A48(f32 arg0[3]){ static s32 D_80373A30[3] = {255, 255, 255}; - static struct40s D_80373A3C = {{{1.5f, 1.6f}, {2.5f, 2.9f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.1f, 0.4f}, 4.0f, 1.0f}; - static struct43s D_80373A6C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373A3C = {{{1.5f, 1.6f}, {2.5f, 2.9f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.1f, 0.4f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373A6C = { {{ 0.0f, 40.0f, 0.0f}, { 0.0f, 90.0f, 0.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{-5.0f, 0.0f, -5.0f}, { 5.0f, 0.0f, 5.0f}} @@ -361,14 +361,14 @@ void func_80362A48(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373A30); particleEmitter_setAlpha(pCtrl, 40); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373A6C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373A6C); func_802EFC28(pCtrl, &D_80373A3C); } void func_80362ADC(f32 arg0[3]){ static s32 D_80373AB4[3] = {30, 30, 30}; - static struct40s D_80373AC0 = {{{3.0f, 3.4f}, {3.9f, 4.1f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.3f, 0.5f}, 4.0f, 1.0f}; - static struct43s D_80373AF0 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373AC0 = {{{3.0f, 3.4f}, {3.9f, 4.1f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.3f, 0.5f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373AF0 = { {{100.0f, 40.0f, 100.0f}, {100.0f, 90.0f, 100.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{ -5.0f, 0.0f, -5.0f}, { 5.0f, 0.0f, 5.0f}} @@ -381,14 +381,14 @@ void func_80362ADC(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373AB4); particleEmitter_setAlpha(pCtrl, 40); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373AF0); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373AF0); func_802EFC28(pCtrl, &D_80373AC0); } void func_80362B70(f32 arg0[3]){ static s32 D_80373B38[3] = {130, 130, 130}; - static struct40s D_80373B44 = {{{2.0f, 2.4f}, {3.9f, 4.1f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.2f, 0.7f}, 4.0f, 1.0f}; - static struct43s D_80373B74 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373B44 = {{{2.0f, 2.4f}, {3.9f, 4.1f}, {0.0f, 0.01f}, {2.0f, 2.5f}, 0.2f, 0.7f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373B74 = { {{100.0f, 40.0f, 100.0f}, {100.0f, 90.0f, 100.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{ -5.0f, 0.0f, -5.0f}, { 5.0f, 0.0f, 5.0f}} @@ -399,14 +399,14 @@ void func_80362B70(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373B38); particleEmitter_setAlpha(pCtrl, 110); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373B74); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373B74); func_802EFC28(pCtrl, &D_80373B44); } void func_80362C04(f32 arg0[3]){ static s32 D_80373BBC[3] = {0xff, 0xff, 0xff}; - static struct40s D_80373BC8 = {{{0.5f, 0.6f}, {1.5f, 1.9f}, {0.0f, 0.01f}, {4.0f, 4.5f}, 0.1f, 0.8f,}, 0.0f, 1.0f}; - static struct43s D_80373BF8 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373BC8 = {{{0.5f, 0.6f}, {1.5f, 1.9f}, {0.0f, 0.01f}, {4.0f, 4.5f}, 0.1f, 0.8f,}, 0.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373BF8 = { {{ 0.0f, 40.0f, 0.0f}, { 0.0f, 90.0f, 0.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{-5.0f, 0.0f, -5.0f}, { 5.0f, 0.0f, 5.0f}} @@ -419,14 +419,14 @@ void func_80362C04(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373BBC); particleEmitter_setAlpha(pCtrl, 40); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373BF8); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373BF8); func_802EFC28(pCtrl, &D_80373BC8); } void func_80362C98(f32 arg0[3]){ static s32 D_80373C40[3] = {160, 170, 170}; - static struct40s D_80373C4C = {{{2.5f, 2.6f}, {3.5f, 3.9f}, {0.0f, 0.01f}, {0.3f, 0.5f}, 0.1f, 0.8f}, 4.0f, 1.0f}; - static struct43s D_80373C7C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373C4C = {{{2.5f, 2.6f}, {3.5f, 3.9f}, {0.0f, 0.01f}, {0.3f, 0.5f}, 0.1f, 0.8f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373C7C = { {{-60.0f, -60.0f, -60.0f}, { 60.0f, 60.0f, 60.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{-50.0f, -50.0f, -50.0f}, { 50.0f, 50.0f, 50.0f}} @@ -439,14 +439,14 @@ void func_80362C98(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373C40); particleEmitter_setAlpha(pCtrl, 140); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373C7C); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373C7C); func_802EFC28(pCtrl, &D_80373C4C); } void func_80362D2C(f32 arg0[3]){ static s32 D_80373CC4[] = {90, 90, 90}; - static struct40s D_80373CD0 = {{{1.5f, 1.6f}, {2.5f, 2.9f}, {0.0f, 0.01f}, {0.3f, 0.5f}, 0.1f, 0.8f}, 4.0f, 1.0f}; - static struct43s D_80373D00 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373CD0 = {{{1.5f, 1.6f}, {2.5f, 2.9f}, {0.0f, 0.01f}, {0.3f, 0.5f}, 0.1f, 0.8f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityAccelerationPosition D_80373D00 = { {{-60.0f, -60.0f, -60.0f}, {60.0f, 60.0f, 60.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, {{-50.0f, -50.0f, -50.0f}, {50.0f, 50.0f, 50.0f}} @@ -459,13 +459,13 @@ void func_80362D2C(f32 arg0[3]){ particleEmitter_setRGB(pCtrl, D_80373CC4); particleEmitter_setAlpha(pCtrl, 140); particleEmitter_setPosition(pCtrl, arg0); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373D00); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373D00); func_802EFC28(pCtrl, &D_80373CD0); } void func_80362DC0(f32 arg0[3]){ - static struct40s D_80373D48 = {{ {1.8f, 3.5f}, {1.8f, 3.5f}, {0.0f, 0.01f}, {5.0f, 5.0f}, 0.0f, 0.9f}, 4.0f, 15.0f }; - static struct43s D_80373D78 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80373D48 = {{ {1.8f, 3.5f}, {1.8f, 3.5f}, {0.0f, 0.01f}, {5.0f, 5.0f}, 0.0f, 0.9f}, 4.0f, 15.0f }; + static ParticleSettingsVelocityAccelerationPosition D_80373D78 = { {{-450.0f, 700.0f, -450.0f}, {450.0f, 1100.0f, 450.0f}}, {{ 0.0f, -900.0f, 0.0f}, { 0.0f, -900.0f, 0.0f}}, {{-150.0f, -100.0f, -150.0f}, {150.0f, 5.0f, 150.0f}} @@ -475,11 +475,11 @@ void func_80362DC0(f32 arg0[3]){ particleEmitter_setModel(pCtrl, ASSET_47B_MODEL_ROCK); particleEmitter_setPosition(pCtrl, arg0); particleEmitter_setAngularVelocityRange(pCtrl, -200.0f, 200.0f, -200.0f, 200.0f, 200.0f, 200.0f); - func_802EF9F8(pCtrl, 0.4f); - func_802EFA18(pCtrl, 3); + particleEmitter_func_802EF9F8(pCtrl, 0.4f); + particleEmitter_func_802EFA18(pCtrl, 3); func_802EFA20(pCtrl, 1.0f, 1.3f); particleEmitter_setDrawMode(pCtrl, 2); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80373D78); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80373D78); func_802EFC28(pCtrl, &D_80373D48); } diff --git a/src/core2/code_DC4B0.c b/src/core2/code_DC4B0.c index 96004b15..a4eac276 100644 --- a/src/core2/code_DC4B0.c +++ b/src/core2/code_DC4B0.c @@ -8,7 +8,7 @@ void func_80363500(Actor *this); ActorInfo D_80373DC0= { 0x1EE, ACTOR_3BA_UNKOWN, 0, 0, NULL, - func_80363500, func_80326224, func_80325340, + func_80363500, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0 }; diff --git a/src/core2/eggshatter.c b/src/core2/eggshatter.c index 73254933..19dfb5f7 100644 --- a/src/core2/eggshatter.c +++ b/src/core2/eggshatter.c @@ -3,7 +3,7 @@ #include "variables.h" /* .data */ -struct43s D_803637A0 = { +ParticleSettingsVelocityAccelerationPosition D_803637A0 = { {{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}}, {{0.0f, -800.0, 0.0f}, {0.0f, -800.0f, 0.0f}}, {{-10.0f, -10.0f, -10.0f}, {10.0f, 10.0f, 10.0f}} @@ -24,13 +24,13 @@ void eggShatter_free(void){ void eggShatter_init(void){ gEggShatter_controller = particleEmitter_new(20); particleEmitter_setModel(gEggShatter_controller, 0x360); - func_802EF9F8(gEggShatter_controller, 0.6f); - func_802EFA18(gEggShatter_controller, 0); + particleEmitter_func_802EF9F8(gEggShatter_controller, 0.6f); + particleEmitter_func_802EFA18(gEggShatter_controller, 0); particleEmitter_setStartingScaleRange(gEggShatter_controller, 0.8f, 1.0f); particleEmitter_setAngularVelocityRange(gEggShatter_controller, 400.0f, 400.0f, 400.0f, 800.0f, 800.0f, 800.0f); particleEmitter_setSpawnIntervalRange(gEggShatter_controller, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(gEggShatter_controller, 1.5f, 1.5f); - particleEmitter_setPositionVelocityAndAccelerationRanges(gEggShatter_controller, &D_803637A0); + particleEmitter_setVelocityAccelerationAndPositionRanges(gEggShatter_controller, &D_803637A0); } void eggShatter_update(void){ diff --git a/src/core2/fx/sparkle.c b/src/core2/fx/sparkle.c index 85ec66e0..5d0d0d4f 100644 --- a/src/core2/fx/sparkle.c +++ b/src/core2/fx/sparkle.c @@ -17,7 +17,7 @@ ParticleEmitter *__fxSparkle_create(s16 position[3], f32 height, enum asset_e sp } void fxSparkle_emptyHoneycomb(s16 position[3]){ - static struct42s D_80368BD0 = { + static ParticleSettingsVelocityPosition D_80368BD0 = { {{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}}, {{ -10.0f, 10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}} }; @@ -29,7 +29,7 @@ void fxSparkle_emptyHoneycomb(s16 position[3]){ } void fxSparkle_honeycomb(s16 position[3]){ - static struct42s D_80368C00 = { + static ParticleSettingsVelocityPosition D_80368C00 = { {{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}}, {{ -10.0f, 10.0f, -10.0f}, { 10.0f, 10.0f, 10.0f}} }; @@ -59,7 +59,7 @@ void fxSparkle_blueEgg(s16 position[3]){ } void fxSparkle_giantBlueEgg(s16 position[3]){ - static struct42s D_80368C30 = { + static ParticleSettingsVelocityPosition D_80368C30 = { {{-200.0f, 100.0f, -200.0f}, { 200.0f, 350.0f, 200.0f}}, /*position*/ {{ -30.0f, 100.0f, -30.0f}, { 30.0f, 100.0f, 30.0f}} /*velocity*/ }; @@ -81,7 +81,7 @@ void fxSparkle_redFeather(s16 position[3]){ } void fxSparkle_giantRedFeather(s16 position[3]){ - static struct42s D_80368C60 = { + static ParticleSettingsVelocityPosition D_80368C60 = { {{-125.0f, 100.0f, -125.0f}, { 125.0f, 250.0f, 125.0f}}, /*position*/ {{ -15.0f, 100.0f, -15.0f}, { 15.0f, 100.0f, 15.0f}} /*velocity*/ }; @@ -102,7 +102,7 @@ void fxSparkle_goldFeather(s16 position[3]){ } void fxSparkle_giantGoldFeather(s16 position[3]){ - static struct42s D_80368C90 = { + static ParticleSettingsVelocityPosition D_80368C90 = { {{-125.0f, 100.0f, -125.0f}, { 125.0f, 250.0f, 125.0f}}, /*position*/ {{ -15.0f, 100.0f, -15.0f}, { 15.0f, 100.0f, 15.0f}} /*velocity*/ }; @@ -113,7 +113,7 @@ void fxSparkle_giantGoldFeather(s16 position[3]){ } void fxSparkle_mumboToken(s16 position[3]){ - static struct42s D_80368CC0 = { + static ParticleSettingsVelocityPosition D_80368CC0 = { {{-100.0f, 100.0f, -100.0f}, { 100.0f, 250.0f, 100.0f}}, /*position*/ {{ -15.0f, 15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}} /*velocity*/ }; @@ -125,7 +125,7 @@ void fxSparkle_mumboToken(s16 position[3]){ } void fxSparkle_extraLife(s16 position[3]){ - static struct42s D_80368CF0 = { + static ParticleSettingsVelocityPosition D_80368CF0 = { {{ -75.0f, 100.0f, -75.0f}, { 75.0f, 250.0f, 75.0f}}, /*position*/ {{ -8.0f, 5.0f, -8.0f}, { -5.0f, 35.0f, 8.0f}} /*velocity*/ }; @@ -136,7 +136,7 @@ void fxSparkle_extraLife(s16 position[3]){ } void fxSparkle_brentilda(s16 position[3]){ - static struct42s D_80368D20 = { + static ParticleSettingsVelocityPosition D_80368D20 = { {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, /*position*/ {{ -15.0f, -15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}} /*velocity*/ }; @@ -147,7 +147,7 @@ void fxSparkle_brentilda(s16 position[3]){ } void fxSparkle_chTreasure(s16 position[3]){ - static struct42s D_80368D50 = { + static ParticleSettingsVelocityPosition D_80368D50 = { {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}}, /*position*/ {{ -25.0f, -5.0f, -25.0f}, { 25.0f, 5.0f, 25.0f}} /*velocity*/ }; diff --git a/src/core2/particle.c b/src/core2/particle.c index 76fd44b0..e0d3e72f 100644 --- a/src/core2/particle.c +++ b/src/core2/particle.c @@ -310,16 +310,16 @@ ParticleEmitter * particleEmitter_new(u32 capacity){ particleEmitter_setFade(this, 0.0f, 1.0f); particleEmitter_setDrawMode(this, 0); particleEmitter_setPosition(this, sp40); - particleEmitter_setParticleAccelerationRange(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + particleEmitter_setAccelerationRange(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); particleEmitter_setAlpha(this, 0xff); - particleEmitter_setParticleSpawnPositionRange(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + particleEmitter_setSpawnPositionRange(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); particleEmitter_setParticleVelocityRange(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); particleEmitter_setSfx(this, 0, 0); - func_802EF9F8(this, 0.9f); + particleEmitter_func_802EF9F8(this, 0.9f); func_802EFA04(this, -100000.0f); func_802EFA34(this, 100000.0f); particleEmitter_setParticleCallback(this, 0); - func_802EFA18(this, 0); + particleEmitter_func_802EFA18(this, 0); func_802EFA20(this, 1.0f, 1.0f); particleEmitter_setStartingFrameRange(this, 0, 0); particleEmitter_setParticleFramerateRange(this, 0.0f, 0.0f); @@ -348,7 +348,7 @@ void particleEmitter_setSprite(ParticleEmitter *this, enum asset_e sprite_id){ } } -void particleEmitter_setParticleAccelerationRange(ParticleEmitter *this, f32 min_x, f32 min_y, f32 min_z, f32 max_x, f32 max_y, f32 max_z){ +void particleEmitter_setAccelerationRange(ParticleEmitter *this, f32 min_x, f32 min_y, f32 min_z, f32 max_x, f32 max_y, f32 max_z){ this->particleAccerationRange_4C_min_x = min_x; this->particleAccerationRange_4C_min_y = min_y; this->particleAccerationRange_4C_min_z = min_z; @@ -366,7 +366,7 @@ void particleEmitter_setSfx(ParticleEmitter *this, enum sfx_e sfx_id, s32 arg2){ this->unk7C = arg2; } -void func_802EF9F8(ParticleEmitter *this, f32 arg1){ +void particleEmitter_func_802EF9F8(ParticleEmitter *this, f32 arg1){ this->unk68 = arg1; } @@ -378,7 +378,7 @@ void particleEmitter_setParticleCallback(ParticleEmitter *this, void (*arg1)(Par this->particleCallback_80 = arg1; } -void func_802EFA18(ParticleEmitter *this, s32 arg1){ +void particleEmitter_func_802EFA18(ParticleEmitter *this, s32 arg1){ this->unk64 = arg1; } @@ -406,7 +406,7 @@ void particleEmitter_setDrawMode(ParticleEmitter *this, s32 arg1){ this->draw_mode = arg1; } -void func_802EFA78(ParticleEmitter *this, s32 arg1){ +void particleEmitter_func_802EFA78(ParticleEmitter *this, s32 arg1){ this->unk0_16 = arg1; } @@ -434,7 +434,7 @@ void particleEmitter_setModel(ParticleEmitter *this, enum asset_e model_id){ } } -void particleEmitter_setParticleSpawnPositionRange(ParticleEmitter *this, f32 min_x, f32 min_y, f32 min_z, f32 max_x, f32 max_y, f32 max_z){ +void particleEmitter_setSpawnPositionRange(ParticleEmitter *this, f32 min_x, f32 min_y, f32 min_z, f32 max_x, f32 max_y, f32 max_z){ this->particleSpawnPositionRange_94_min_x = min_x; this->particleSpawnPositionRange_94_min_y = min_y; this->particleSpawnPositionRange_94_min_z = min_z; @@ -459,61 +459,68 @@ void particleEmitter_setFinalScaleRange(ParticleEmitter * this, f32 min, f32 max this->particleFinalScaleRange_B4_max = max; } -void particleEmitter_setScaleAndLifetimeRanges(ParticleEmitter *this, ParticleScaleAndLifetimeRanges *arg1){ - this->particleStartingScaleRange_AC_min = arg1->unk0[0]; - this->particleStartingScaleRange_AC_max = arg1->unk0[1]; - if(-1.0f != arg1->unk8[0]){ - this->particleFinalScaleRange_B4_min = arg1->unk8[0]; - this->particleFinalScaleRange_B4_max = arg1->unk8[1]; +void particleEmitter_setScaleAndLifetimeRanges(ParticleEmitter *this, ParticleScaleAndLifetimeRanges *settings) { + this->particleStartingScaleRange_AC_min = settings->unk0[0]; + this->particleStartingScaleRange_AC_max = settings->unk0[1]; + + if(-1.0f != settings->unk8[0]){ + this->particleFinalScaleRange_B4_min = settings->unk8[0]; + this->particleFinalScaleRange_B4_max = settings->unk8[1]; } - particleEmitter_setSpawnIntervalRange(this, arg1->unk10[0], arg1->unk10[1]); - this->particleLifeTimeRange[0] = arg1->unk18[0]; - this->particleLifeTimeRange[1] = arg1->unk18[1]; - this->fade_in = arg1->unk20; - this->fade_out = arg1->unk24; + + particleEmitter_setSpawnIntervalRange(this, settings->unk10[0], settings->unk10[1]); + + this->particleLifeTimeRange[0] = settings->unk18[0]; + this->particleLifeTimeRange[1] = settings->unk18[1]; + + this->fade_in = settings->unk20; + this->fade_out = settings->unk24; } -void func_802EFC28(ParticleEmitter *this, struct40s *arg1){ - particleEmitter_setScaleAndLifetimeRanges(this, &arg1->unk0); - particleEmitter_setDrawMode(this, (s32)arg1->unk28); - particleEmitter_emitN(this, (s32)arg1->unk2C); +void func_802EFC28(ParticleEmitter *this, ParticleSettingsScaleAndLifetimeDrawModeEmitCount *settings) { + particleEmitter_setScaleAndLifetimeRanges(this, &settings->scale_and_lifetime); + particleEmitter_setDrawMode(this, (s32)settings->drawmode); + particleEmitter_emitN(this, (s32)settings->count); } -void particleEmitter_setVelocityAndAccelerationRanges(ParticleEmitter *this, struct41s *arg1){ +void particleEmitter_setVelocityAndAccelerationRanges(ParticleEmitter *this, ParticleSettingsVelocityAcceleration *settings) { particleEmitter_setParticleVelocityRange(this, - arg1->unk0.unk0[0], arg1->unk0.unk0[1], arg1->unk0.unk0[2], - arg1->unk0.unkC[0], arg1->unk0.unkC[1], arg1->unk0.unkC[2] + settings->velocity.min[0], settings->velocity.min[1], settings->velocity.min[2], + settings->velocity.max[0], settings->velocity.max[1], settings->velocity.max[2] ); - particleEmitter_setParticleAccelerationRange(this, - arg1->unk18.unk0[0], arg1->unk18.unk0[1], arg1->unk18.unk0[2], - arg1->unk18.unkC[0], arg1->unk18.unkC[1], arg1->unk18.unkC[2] + + particleEmitter_setAccelerationRange(this, + settings->acceleration.min[0], settings->acceleration.min[1], settings->acceleration.min[2], + settings->acceleration.max[0], settings->acceleration.max[1], settings->acceleration.max[2] ); } -void particleEmitter_setPositionAndVelocityRanges(ParticleEmitter *this, struct42s *arg1){ +void particleEmitter_setPositionAndVelocityRanges(ParticleEmitter *this, ParticleSettingsVelocityPosition *settings) { particleEmitter_setParticleVelocityRange(this, - arg1->unk0.unk0[0], arg1->unk0.unk0[1], arg1->unk0.unk0[2], - arg1->unk0.unkC[0], arg1->unk0.unkC[1], arg1->unk0.unkC[2] + settings->velocity.min[0], settings->velocity.min[1], settings->velocity.min[2], + settings->velocity.max[0], settings->velocity.max[1], settings->velocity.max[2] ); - particleEmitter_setParticleSpawnPositionRange( this, - arg1->unk18.unk0[0], arg1->unk18.unk0[1], arg1->unk18.unk0[2], - arg1->unk18.unkC[0], arg1->unk18.unkC[1], arg1->unk18.unkC[2] + particleEmitter_setSpawnPositionRange( this, + settings->spawn_position.min[0], settings->spawn_position.min[1], settings->spawn_position.min[2], + settings->spawn_position.max[0], settings->spawn_position.max[1], settings->spawn_position.max[2] ); } -void particleEmitter_setPositionVelocityAndAccelerationRanges(ParticleEmitter *this, struct43s* arg1){ +void particleEmitter_setVelocityAccelerationAndPositionRanges(ParticleEmitter *this, ParticleSettingsVelocityAccelerationPosition *settings) { particleEmitter_setParticleVelocityRange(this, - arg1->unk0.unk0[0], arg1->unk0.unk0[1], arg1->unk0.unk0[2], - arg1->unk0.unkC[0], arg1->unk0.unkC[1], arg1->unk0.unkC[2] + settings->velocity.min[0], settings->velocity.min[1], settings->velocity.min[2], + settings->velocity.max[0], settings->velocity.max[1], settings->velocity.max[2] ); - particleEmitter_setParticleAccelerationRange(this, - arg1->unk18.unk0[0], arg1->unk18.unk0[1], arg1->unk18.unk0[2], - arg1->unk18.unkC[0], arg1->unk18.unkC[1], arg1->unk18.unkC[2] + + particleEmitter_setAccelerationRange(this, + settings->acceleration.min[0], settings->acceleration.min[1], settings->acceleration.min[2], + settings->acceleration.max[0], settings->acceleration.max[1], settings->acceleration.max[2] ); - particleEmitter_setParticleSpawnPositionRange( this, - arg1->unk30.unk0[0], arg1->unk30.unk0[1], arg1->unk30.unk0[2], - arg1->unk30.unkC[0], arg1->unk30.unkC[1], arg1->unk30.unkC[2] + + particleEmitter_setSpawnPositionRange( this, + settings->spawn_position.min[0], settings->spawn_position.min[1], settings->spawn_position.min[2], + settings->spawn_position.max[0], settings->spawn_position.max[1], settings->spawn_position.max[2] ); } @@ -710,7 +717,7 @@ void func_802F053C(ParticleEmitter *this, f32 arg1[3]){ particleEmitter_setRGB(this, D_803689B8); particleEmitter_setFade(this, 0.0f, 0.1f); particleEmitter_setStartingFrameRange(this, 0, 7); - particleEmitter_setParticleSpawnPositionRange(this, -80.0f, 0.0f, -80.0f, 80.0f, 60.0f, 80.0f); + particleEmitter_setSpawnPositionRange(this, -80.0f, 0.0f, -80.0f, 80.0f, 60.0f, 80.0f); particleEmitter_setPosition(this, arg1); particleEmitter_setStartingScaleRange(this, 1.0f, 1.0f); particleEmitter_setFinalScaleRange(this, 2.0f, 3.0f); @@ -720,11 +727,11 @@ void func_802F053C(ParticleEmitter *this, f32 arg1[3]){ } void func_802F066C(ParticleEmitter *this, f32 position[3]){ - particleEmitter_setParticleAccelerationRange(this, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); - func_802EF9F8(this, 0.6f); - func_802EFA18(this, 3); + particleEmitter_setAccelerationRange(this, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); + particleEmitter_func_802EF9F8(this, 0.6f); + particleEmitter_func_802EFA18(this, 3); particleEmitter_setModel(this, ASSET_896_MODEL_GOLD_ROCK); - particleEmitter_setParticleSpawnPositionRange(this, + particleEmitter_setSpawnPositionRange(this, -120.0f, -60.0f, -120.0f, 120.0f, 60.0f, 120.0f ); diff --git a/src/core2/spawnqueue.c b/src/core2/spawnqueue.c index 95c3318c..912d0b4c 100644 --- a/src/core2/spawnqueue.c +++ b/src/core2/spawnqueue.c @@ -356,7 +356,7 @@ void spawnQueue_reset(void){ lair_func_8038A0C4(); break; case OVERLAY_E_BATTLE: - fight_func_803863F0(); + fight_addSpawnableActors(); break; case OVERLAY_C_INTRO: cutscene_func_8038C4E0(); diff --git a/src/cutscenes/code_0.c b/src/cutscenes/code_0.c index 4e33d4b9..1b78d781 100644 --- a/src/cutscenes/code_0.c +++ b/src/cutscenes/code_0.c @@ -182,10 +182,10 @@ void func_80386AC8(s32 arg0) { particleEmitter_setModel(pCtrl, 0x47B); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -350.0f, -400.0f, -350.0f, 350.0f, 450.0f, 350.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1100.0f, 0.0f, 0.0f, -1100.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f, 600.0f, -50.0f, 50.0f, 600.0f, 50.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1100.0f, 0.0f, 0.0f, -1100.0f, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, -50.0f, 600.0f, -50.0f, 50.0f, 600.0f, 50.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D350); particleEmitter_emitN(pCtrl, 10); } @@ -203,10 +203,10 @@ void func_80386C34(s32 arg0) { particleEmitter_setModel(pCtrl, 0x47B); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -350.0f, -400.0f, -350.0f, 350.0f, 450.0f, 350.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1100.0f, 0.0f, 0.0f, -1100.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f, 600.0f, -50.0f, 50.0f, 600.0f, 50.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1100.0f, 0.0f, 0.0f, -1100.0f, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, -50.0f, 600.0f, -50.0f, 50.0f, 600.0f, 50.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D378); particleEmitter_emitN(pCtrl, 15); } @@ -224,10 +224,10 @@ void func_80386DA0(s32 arg0) { particleEmitter_setModel(pCtrl, 0x47B); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -700.0f, 0.0f, 0.0f, -700.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f, 1500.0f, -50.0f, 50.0f, 1500.0f, 50.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -700.0f, 0.0f, 0.0f, -700.0f, 0.0f); + particleEmitter_setSpawnPositionRange(pCtrl, -50.0f, 1500.0f, -50.0f, 50.0f, 1500.0f, 50.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D3A0); particleEmitter_emitN(pCtrl, 1); } @@ -245,9 +245,9 @@ void func_80386EF8(s32 arg0) { particleEmitter_setModel(pCtrl, 0x344); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -150.0f, 150.0f, -150.0f, 150.0f, 360.0f, 150.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -600.0f, 0.0f, 0.0f, -600.0f, 0.0f); - func_802EF9F8(pCtrl, 0.01f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -600.0f, 0.0f, 0.0f, -600.0f, 0.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.01f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D3C8); particleEmitter_emitN(pCtrl, 8); } @@ -266,9 +266,9 @@ void func_8038702C(s32 arg0) { particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -250.0f, 250.0f, -250.0f, 250.0f, 360.0f, 250.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); - func_802EF9F8(pCtrl, 0.4f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.4f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D3F0); particleEmitter_emitN(pCtrl, 8); } @@ -287,16 +287,16 @@ void func_80387170(s32 arg0) { particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -250.0f, 250.0f, -250.0f, 250.0f, 360.0f, 250.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); - func_802EF9F8(pCtrl, 0.4f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.4f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D418); particleEmitter_emitN(pCtrl, 8); } void func_803872B4(s32 arg0) { - static struct40s D_8038D440 = {{{1.8f, 1.8f}, {3.3f, 3.8f}, {0.0f, 0.01f}, {9.0f, 9.5f}, 0.1f, 0.4f}, 4.0f, 4.0f}; - static struct42s D_8038D470 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D440 = {{{1.8f, 1.8f}, {3.3f, 3.8f}, {0.0f, 0.01f}, {9.0f, 9.5f}, 0.1f, 0.4f}, 4.0f, 4.0f}; + static ParticleSettingsVelocityPosition D_8038D470 = { {{ 40.0f, 5.0f, -40.0f}, { 40.0f, 10.0f, -40.0f}}, {{-150.0f, 50.0f, -150.0f}, {150.0f, 50.0f, 150.0f}} }; @@ -312,14 +312,14 @@ void func_803872B4(s32 arg0) { func_8034A174((struct5Bs *)sp44->marker->unk44, 7, sp34); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D470); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D440.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D440.scale_and_lifetime); particleEmitter_emitN(pCtrl, 4); } void func_80387364(s32 arg0) { static s32 D_8038D4A0[3] = {0xA, 0xFF, 0xA}; - static struct40s D_8038D4AC = {{{2.8f, 2.8f}, {3.5f, 3.9f}, {0.0f, 0.01f}, {9.0f, 9.5f}, 0.2f, 0.8f}, 4.0f, 1.0f}; - static struct42s D_8038D4DC = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D4AC = {{{2.8f, 2.8f}, {3.5f, 3.9f}, {0.0f, 0.01f}, {9.0f, 9.5f}, 0.2f, 0.8f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_8038D4DC = { {{-40.0f, -30.0f, -40.0f}, {40.0f, 30.0f, 40.0f}}, {{-50.0f, 0.0f, -50.0f}, {50.0f, 100.0f, 50.0f}} }; @@ -336,7 +336,7 @@ void func_80387364(s32 arg0) { func_8034A174((struct5Bs *) sp34->marker->unk44, 8, sp24); particleEmitter_setPosition(pCtrl, sp24); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D4DC); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D4AC.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D4AC.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } @@ -356,7 +356,7 @@ void func_80387424(s32 arg0) { particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -30.0f, 130.0f, -30.0f, 130.0f, 45.0f, 30.0f); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D50C); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -300.0f, 0.0f, 0.0f, -300.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -300.0f, 0.0f, 0.0f, -300.0f, 0.0f); particleEmitter_emitN(pCtrl, 8); } @@ -374,7 +374,7 @@ void cutscenes_func_80387560(s32 arg0) { particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -30.0f, 130.0f, -30.0f, 130.0f, 45.0f, 30.0f); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D534); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -500.0f, 0.0f, 0.0f, -500.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -500.0f, 0.0f, 0.0f, -500.0f, 0.0f); particleEmitter_emitN(pCtrl, 11); } @@ -392,14 +392,14 @@ void func_80387680(s32 arg0) { particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setParticleVelocityRange(pCtrl, -30.0f, 130.0f, -30.0f, 130.0f, 45.0f, 30.0f); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D55C); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -500.0f, 0.0f, 0.0f, -500.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -500.0f, 0.0f, 0.0f, -500.0f, 0.0f); particleEmitter_emitN(pCtrl, 11); } void func_803877A0(s32 arg0) { static s32 D_8038D584[3] = {0xFF, 0xFF, 0xFF}; - static struct40s D_8038D590 = {{{0.15f, 0.15f}, {0.4f, 0.4f}, {0.0f, 0.01f}, {4.0f, 4.5f}, 0.2f, 0.8f}, 4.0f, 1.0f}; - static struct42s D_8038D5C0 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D590 = {{{0.15f, 0.15f}, {0.4f, 0.4f}, {0.0f, 0.01f}, {4.0f, 4.5f}, 0.2f, 0.8f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_8038D5C0 = { {{-20.0f, 100.0f, -20.0f}, {20.0f, 150.0f, 20.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}} }; @@ -419,7 +419,7 @@ void func_803877A0(s32 arg0) { func_8034A174((struct5Bs *) sp34->marker->unk44, 6, sp24); particleEmitter_setPosition(pCtrl, sp24); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D5C0); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D590.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D590.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } @@ -436,9 +436,9 @@ void func_803878A4(s32 arg0) { particleEmitter_setModel(pCtrl, 0x47A); particleEmitter_setAngularVelocityRange(pCtrl, -10.0f, -10.0f, -10.0f, 10.0f, 10.0f, 10.0f); particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); - func_802EF9F8(pCtrl, 0.3f); - func_802EFA18(pCtrl, 3); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.3f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setDrawMode(pCtrl, 2); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D5F0); particleEmitter_setSfx(pCtrl, SFX_21_EGG_BOUNCE_1, 15000); @@ -458,10 +458,10 @@ void cutscenes_func_803879E0(s32 arg0) { particleEmitter_setModel(pCtrl, 0x47A); particleEmitter_setAngularVelocityRange(pCtrl, -10.0f, -10.0f, -10.0f, 10.0f, 10.0f, 10.0f); particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - particleEmitter_setParticleSpawnPositionRange(pCtrl, -40.0f, 0.0f, -40.0f, 40.0f, 20.0f, 40.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); - func_802EF9F8(pCtrl, 0.3f); - func_802EFA18(pCtrl, 3); + particleEmitter_setSpawnPositionRange(pCtrl, -40.0f, 0.0f, -40.0f, 40.0f, 20.0f, 40.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.3f); + particleEmitter_func_802EFA18(pCtrl, 3); particleEmitter_setDrawMode(pCtrl, 2); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D618); particleEmitter_setSfx(pCtrl, SFX_21_EGG_BOUNCE_1, 15000); @@ -469,8 +469,8 @@ void cutscenes_func_803879E0(s32 arg0) { } void func_80387B58(s32 arg0) { - static struct40s D_8038D640 = {{{0.5f, 0.8f}, {3.2f, 3.8f}, {0.0f, 0.3f}, {0.5f, 0.6f}, 0.2f, 0.8f}, 4.0f, 4.0f }; - static struct42s D_8038D670 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D640 = {{{0.5f, 0.8f}, {3.2f, 3.8f}, {0.0f, 0.3f}, {0.5f, 0.6f}, 0.2f, 0.8f}, 4.0f, 4.0f }; + static ParticleSettingsVelocityPosition D_8038D670 = { {{ 0.0f, 100.0f, 0.0f}, { 0.0f, 100.0f, 0.0f}}, {{-20.0f, -20.0f, -20.0f}, {20.0f, 20.0f, 20.0f}} }; @@ -484,20 +484,20 @@ void func_80387B58(s32 arg0) { particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setAlpha(pCtrl, 0x3C); particleEmitter_setAngularVelocityRange(pCtrl, -60.0f, -60.0f, -60.0f, 60.0f, 60.0f, 60.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -290.0f, 0.0f, 0.0f, -290.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -290.0f, 0.0f, 0.0f, -290.0f, 0.0f); func_8034A174((struct5Bs *) sp44->marker->unk44, 5, sp34); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D670); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D640.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D640.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } void func_80387C64(s32 arg0) { static s32 D_8038D6A0[3] = {0x3C, 0x3C, 0xFF}; - static struct40s D_8038D6AC = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D6AC = { {{0.5f, 0.6f}, {1.4f, 1.6f}, {0.0f, 0.2f}, {0.9f, 1.2f}, 0.2f, 0.8f}, 4.0f, 4.0f }; - static struct42s D_8038D6DC ={ + static ParticleSettingsVelocityPosition D_8038D6DC ={ {{ 0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, {{-5.0f, -5.0f, -5.0f}, {5.0f, 5.0f, 5.0f}} }; @@ -514,17 +514,17 @@ void func_80387C64(s32 arg0) { particleEmitter_setRGB(pCtrl, D_8038D6A0); particleEmitter_setAlpha(pCtrl, 0x64); particleEmitter_setAngularVelocityRange(pCtrl, -60.0f, -60.0f, -60.0f, 60.0f, 60.0f, 60.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D6DC); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D6AC.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D6AC.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } } void func_80387D88(s32 arg0) { - static struct40s D_8038D70C = {{{0.2f, 0.2f}, {0.3f, 0.3f}, {0.0f, 0.2f}, {0.7f, 0.9f}, 0.2f, 0.8f}, 4.0f, 4.0f}; - static struct42s D_8038D73C = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D70C = {{{0.2f, 0.2f}, {0.3f, 0.3f}, {0.0f, 0.2f}, {0.7f, 0.9f}, 0.2f, 0.8f}, 4.0f, 4.0f}; + static ParticleSettingsVelocityPosition D_8038D73C = { {{-800.0f, -800.0f, -800.0f}, {800.0f, 800.0f, 800.0f}}, {{ -25.0f, -25.0f, -25.0f}, { 25.0f, 25.0f, 25.0f}} }; @@ -540,18 +540,18 @@ void func_80387D88(s32 arg0) { particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setAlpha(pCtrl, 0xFF); particleEmitter_setAngularVelocityRange(pCtrl, -60.0f, -60.0f, -60.0f, 60.0f, 60.0f, 60.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D73C); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D70C.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D70C.scale_and_lifetime); particleEmitter_emitN(pCtrl, 25); } } void func_80387E9C(s32 arg0) { static s32 D_8038D76C[3] = {0x32, 0xFF, 0x46}; - static struct40s D_8038D778 ={{{0.2f, 0.2f}, {3.3f, 3.3f}, {0.0f, 0.2f}, {0.6f, 0.7f}, 0.1f, 0.9f}, 4.0f, 4.0f}; - static struct42s D_8038D7A8 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D778 ={{{0.2f, 0.2f}, {3.3f, 3.3f}, {0.0f, 0.2f}, {0.6f, 0.7f}, 0.1f, 0.9f}, 4.0f, 4.0f}; + static ParticleSettingsVelocityPosition D_8038D7A8 = { {{0,0,0}, {0,0,0}}, {{0,0,0}, {0,0,0}} }; @@ -568,17 +568,17 @@ void func_80387E9C(s32 arg0) { particleEmitter_setAlpha(pCtrl, 0xC8); particleEmitter_setRGB(pCtrl, D_8038D76C); particleEmitter_setAngularVelocityRange(pCtrl, -60.0f, -60.0f, -60.0f, 60.0f, 60.0f, 60.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D7A8); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D778.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D778.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } } void func_80387FC0(s32 arg0) { - static struct40s D_8038D7D8 = {{{0.4f, 0.4f}, {3.7f, 3.8f}, {0.0f, 0.03f}, {0.6f, 0.6f}, 0.1f, 0.8f}, 4.0f, 4.0f}; - static struct42s D_8038D808 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D7D8 = {{{0.4f, 0.4f}, {3.7f, 3.8f}, {0.0f, 0.03f}, {0.6f, 0.6f}, 0.1f, 0.8f}, 4.0f, 4.0f}; + static ParticleSettingsVelocityPosition D_8038D808 = { {{0,0,0}, {0,0,0}}, {{0,0,0}, {0,0,0}} }; @@ -595,18 +595,18 @@ void func_80387FC0(s32 arg0) { particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setAlpha(pCtrl, 0x64); particleEmitter_setAngularVelocityRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D808); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D7D8.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D7D8.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } } void func_803880C8(s32 arg0) { static s32 D_8038D838[3] = {0xFF, 0xFF, 0XFF}; - static struct40s D_8038D844 = {{{0.15f, 0.15f}, {0.4f, 0.4f}, {0.0f, 0.01f}, {4.0f, 4.5f}, 0.2f, 0.8f}, 4.0f, 1.0f}; - static struct42s D_8038D874 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D844 = {{{0.15f, 0.15f}, {0.4f, 0.4f}, {0.0f, 0.01f}, {4.0f, 4.5f}, 0.2f, 0.8f}, 4.0f, 1.0f}; + static ParticleSettingsVelocityPosition D_8038D874 = { {{-20.0f, 70.0f, -20.0f}, {20.0f, 100.0f, 20.0f}}, {{ 0.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 0.0f}} }; @@ -626,13 +626,13 @@ void func_803880C8(s32 arg0) { func_8034A174((struct5Bs *) sp34->marker->unk44, 5, sp24); particleEmitter_setPosition(pCtrl, sp24); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D874); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D844.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D844.scale_and_lifetime); particleEmitter_emitN(pCtrl, 1); } void func_803881CC(s32 arg0) { - static struct40s D_8038D8A4 = {{{0.6f, 0.6f}, {3.0f, 3.4f}, {0.0f, 0.03f}, {1.0f, 1.3f}, 0.1f, 0.6f}, 4.0f, 4.0f}; - static struct42s D_8038D8D4 = { + static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_8038D8A4 = {{{0.6f, 0.6f}, {3.0f, 3.4f}, {0.0f, 0.03f}, {1.0f, 1.3f}, 0.1f, 0.6f}, 4.0f, 4.0f}; + static ParticleSettingsVelocityPosition D_8038D8D4 = { {{ 0.0f, 0.0f, -200.0f}, { 0.0f, 0.0f, -370.0f}}, /* position*/ {{-40.0f, -40.0f, -40.0f}, {40.0f, 40.0f, 40.0f}} /* velocity*/ }; @@ -648,10 +648,10 @@ void func_803881CC(s32 arg0) { particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setAlpha(pCtrl, 0x50); particleEmitter_setAngularVelocityRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, 100.0f, 0.0f, 0.0f, 300.0f, 0.0f); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, 100.0f, 0.0f, 0.0f, 300.0f, 0.0f); particleEmitter_setPosition(pCtrl, sp34); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D8D4); - particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D8A4.unk0); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D8A4.scale_and_lifetime); particleEmitter_emitN(pCtrl, 2); } } diff --git a/src/cutscenes/code_6730.c b/src/cutscenes/code_6730.c index 8002c806..b5959e81 100644 --- a/src/cutscenes/code_6730.c +++ b/src/cutscenes/code_6730.c @@ -19,7 +19,7 @@ extern ActorAnimationInfo D_8038E700[] ={ extern ActorInfo D_8038E718 = { 0x1F8, 0x1E8, 0x439, 1, D_8038E700, - func_8038CCA8, func_80326224, func_8038CBCC, + func_8038CCA8, actor_update_func_80326224, func_8038CBCC, 0, 0, 0.0f, 0 }; @@ -33,7 +33,7 @@ extern ParticleScaleAndLifetimeRanges D_8038E748 = { 0.05f, 0.9f }; -extern struct41s D_8038E770 ={ +extern ParticleSettingsVelocityAcceleration D_8038E770 ={ { {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f} }, { {0.0f, -200.0f, 0.0f}, {0.0f, -200.0f, 0.0f} } }; diff --git a/src/cutscenes/code_69F0.c b/src/cutscenes/code_69F0.c index 9eb9995a..65f69f57 100644 --- a/src/cutscenes/code_69F0.c +++ b/src/cutscenes/code_69F0.c @@ -27,7 +27,7 @@ ParticleScaleAndLifetimeRanges D_8038E7D0 = { 0.15f, 0.3f }; -struct42s D_8038E7F8 ={ +ParticleSettingsVelocityPosition D_8038E7F8 ={ { {-10.0f, -10.0f, -10.0f}, {10.0f, 10.0f, 10.0f} }, { {0.0f, 30.0f, 0.0f}, {0.0f, 30.0f, 0.0f} } }; @@ -42,7 +42,7 @@ ParticleScaleAndLifetimeRanges D_8038E834 = { 0.01f, 0.3f }; -struct42s D_8038E85C ={ +ParticleSettingsVelocityPosition D_8038E85C ={ { {-5.0f, -5.0f, -5.0f}, {5.0f, 5.0f, 5.0f} }, { {0.0f, 30.0f, 0.0f}, {0.0f, 30.0f, 0.0f} } }; @@ -56,7 +56,7 @@ void func_8038CDE0(ParticleEmitter *pCtrl){ particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f,-600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038E7F8); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038E7D0); - func_802EFA78(pCtrl, 1); + particleEmitter_func_802EFA78(pCtrl, 1); particleEmitter_setDrawMode(pCtrl, 4); particleEmitter_manualFree(pCtrl); } @@ -68,7 +68,7 @@ void func_8038CE98(ParticleEmitter *pCtrl){ particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f,-600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038E85C); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038E834); - func_802EFA78(pCtrl, 1); + particleEmitter_func_802EFA78(pCtrl, 1); particleEmitter_setDrawMode(pCtrl, 4); particleEmitter_manualFree(pCtrl); } diff --git a/src/cutscenes/code_6C90.c b/src/cutscenes/code_6C90.c index 24044c9b..8ecee87a 100644 --- a/src/cutscenes/code_6C90.c +++ b/src/cutscenes/code_6C90.c @@ -19,7 +19,7 @@ ActorAnimationInfo D_8038E890[] ={ ActorInfo D_8038E8A8 = { 0x212, 0x342, 0x45F, 1, D_8038E890, - func_8038D218, func_80326224, func_8038D13C, + func_8038D218, actor_update_func_80326224, func_8038D13C, 3000, 0, 0.0f, 0 }; @@ -33,7 +33,7 @@ ParticleScaleAndLifetimeRanges D_8038E8D8 = { 0.05f, 0.9f }; -struct41s D_8038E900 = { +ParticleSettingsVelocityAcceleration D_8038E900 = { { {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, { {0.0f, -30.0f, 0.0f}, {0.0f, -30.0f, 0.0f}} }; diff --git a/src/fight/chbossjinjo.c b/src/fight/chbossjinjo.c index 511b0bee..82075fc8 100644 --- a/src/fight/chbossjinjo.c +++ b/src/fight/chbossjinjo.c @@ -5,18 +5,10 @@ #include #include "core2/particle.h" -extern void subaddie_set_state_with_direction(Actor *, s32, f32, s32); -extern void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]); extern void func_80324CFC(f32, enum comusic_e, s32); -extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32); extern void func_80329904(ActorMarker*, s32, f32*); - -void chBossJinjo_update(Actor *this); -void chBossJinjo_func_8038D014(Actor *this); - -/* .data */ -ActorAnimationInfo chBossJinjoAnimations[] = { +ActorAnimationInfo chBossJinjoAnimationInfo[] = { {0, 0.0f}, {0x264, 1000000.0f}, {0x264, 2.26f}, @@ -25,159 +17,125 @@ ActorAnimationInfo chBossJinjoAnimations[] = { {0x262, 2.0f} }; -ActorInfo chBossJinjoOrange = { - MARKER_27B_BOSS_JINJO_ORANGE, ACTOR_3A5_BOSS_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE, - 0x1, chBossJinjoAnimations, - chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw, - 0, 0, 1.0f, 0 -}; +ActorInfo chBossJinjoOrange = { MARKER_27B_BOSS_JINJO_ORANGE, ACTOR_3A5_BOSS_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE, 1, chBossJinjoAnimationInfo, chBossJinjo_update, chBossJinjo_update2, actor_draw, 0, 0, 1.0f, 0 }; +ActorInfo chBossJinjoGreen = { MARKER_27C_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN, 1, chBossJinjoAnimationInfo, chBossJinjo_update, chBossJinjo_update2, actor_draw, 0, 0, 1.0f, 0 }; +ActorInfo chBossJinjoPink = { MARKER_27D_BOSS_JINJO_PINK, ACTOR_3A7_BOSS_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK, 1, chBossJinjoAnimationInfo, chBossJinjo_update, chBossJinjo_update2, actor_draw, 0, 0, 1.0f, 0 }; +ActorInfo chBossJinjoYellow = { MARKER_27E_BOSS_JINJO_YELLOW, ACTOR_3A8_BOSS_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW, 1, chBossJinjoAnimationInfo, chBossJinjo_update, chBossJinjo_update2, actor_draw, 0, 0, 1.0f, 0 }; -ActorInfo chBossJinjoGreen = { - MARKER_27C_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN, - 0x1, chBossJinjoAnimations, - chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw, - 0, 0, 1.0f, 0 -}; +ParticleSettingsVelocityAccelerationPosition chBossJinjoSpriteSettings1 = { { { -420.0f, 410.0f, -420.0f }, { 480.0f, 860.0f, 480.0f } }, { { 0.0f, -1200.0f, 0.0f }, { 0.0f, -1200.0f, 0.0f } }, { { 0.0f, -20.0f, 0.0f }, { 0.0f, 20.0f, 0.0f } } }; +ParticleSettingsVelocityPosition chBossJinjoSpriteSettings2 = { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }, { { -80.0f, -80.0f, -80.0f }, { 80.0f, 80.0f, 80.0f } } }; +f32 D_80391948[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; +f32 D_80391958[4] = { 0.33f, 0.33f, 0.33f, 1.0f }; +ParticleScaleAndLifetimeRanges sFightBlastParticleSettings = { { 0.1f, 0.1f }, { 10.0f, 10.0f }, { 0.0f, 0.01f }, { 0.8f, 0.8f }, 0.1f, 0.1f }; -ActorInfo chBossJinjoPink = { - MARKER_27D_BOSS_JINJO_PINK, ACTOR_3A7_BOSS_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK, - 0x1, chBossJinjoAnimations, - chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw, - 0, 0, 1.0f, 0 -}; - -ActorInfo chBossJinjoYellow = { - MARKER_27E_BOSS_JINJO_YELLOW, ACTOR_3A8_BOSS_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW, - 0x1, chBossJinjoAnimations, - chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw, - 0, 0, 1.0f, 0 -}; - -struct43s D_803918D0 = { - { {-420.0f, 410.0f, -420.0f}, {480.0f, 860.0f, 480.0f}}, - {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, - {{0.0f, -20.0f, 0.0f}, {0.0f, 20.0f, 0.0f}} -}; - -struct42s D_80391918 = { - { {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}, - { {-80.0f, -80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}} -}; - -f32 D_80391948[4] = {1.0f, 1.0f, 1.0f, 1.0f}; - -f32 D_80391958[4] = {0.33f, 0.33f, 0.33f, 1.0f}; - -ParticleScaleAndLifetimeRanges D_80391968 = { - {0.1f, 0.1f}, {10.0f, 10.0f}, {0.0f, 0.01f}, {0.8f, 0.8f}, 0.1f, 0.1f -}; - -/* .code */ -void fight_func_8038C2C0(f32 position[3], s32 count, enum asset_e id, f32 arg3){ - ParticleEmitter * temp_s0 = partEmitMgr_newEmitter(count); - f32 sp24; - - particleEmitter_setSprite(temp_s0, id); - particleEmitter_setStartingFrameRange(temp_s0, 1, 6); - particleEmitter_setPosition(temp_s0, position); - particleEmitter_setAngularVelocityRange(temp_s0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); - particleEmitter_setStartingScaleRange(temp_s0, arg3*0.35, arg3*0.65); - particleEmitter_setFinalScaleRange(temp_s0, 0.0f, 0.0f); - func_802EF9F8(temp_s0, 0.5f); - func_802EFA18(temp_s0, 3); - particleEmitter_setSpawnIntervalRange(temp_s0, 0.0f, 0.01f); - particleEmitter_setParticleLifeTimeRange(temp_s0, 3.0f, 3.3f); - particleEmitter_setFade(temp_s0, 0.0f, 0.35f); - particleEmitter_setPositionVelocityAndAccelerationRanges(temp_s0, &D_803918D0); - particleEmitter_setDrawMode(temp_s0, 4); - particleEmitter_emitN(temp_s0, count); +void chbossjinjo_createSpriteParticles(f32 position[3], s32 count, enum asset_e sprite_id, f32 scale) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, sprite_id); + particleEmitter_setStartingFrameRange(pCtrl, 1, 6); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); + particleEmitter_setStartingScaleRange(pCtrl, scale * 0.35, scale * 0.65); + particleEmitter_setFinalScaleRange(pCtrl, 0.0f, 0.0f); + particleEmitter_func_802EF9F8(pCtrl, 0.5f); + particleEmitter_func_802EFA18(pCtrl, 3); + particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); + particleEmitter_setParticleLifeTimeRange(pCtrl, 3.0f, 3.3f); + particleEmitter_setFade(pCtrl, 0.0f, 0.35f); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &chBossJinjoSpriteSettings1); + particleEmitter_setDrawMode(pCtrl, 4); + particleEmitter_emitN(pCtrl, count); } -void func_8038C424(f32 position[3], s32 count, enum asset_e id, f32 arg3){ - ParticleEmitter * temp_s0 = partEmitMgr_newEmitter(count); - f32 sp24; - - particleEmitter_setSprite(temp_s0, id); - particleEmitter_setStartingFrameRange(temp_s0, 0, 9); - particleEmitter_setParticleFramerateRange(temp_s0, 12.0f, 12.0f); - particleEmitter_setPosition(temp_s0, position); - particleEmitter_setPositionAndVelocityRanges(temp_s0, &D_80391918); - sp24 = arg3 * 5.0; - particleEmitter_setStartingScaleRange(temp_s0, sp24, sp24); - particleEmitter_setFinalScaleRange(temp_s0, sp24, sp24); - particleEmitter_setSpawnIntervalRange(temp_s0, 0.0f, 0.0f); - particleEmitter_setParticleLifeTimeRange(temp_s0, (arg3*0.5), (arg3*0.5)*1.5); - particleEmitter_setFade(temp_s0, 0.7f, 0.8f); - particleEmitter_setDrawMode(temp_s0, PART_EMIT_NO_DEPTH); - particleEmitter_emitN(temp_s0, count); +void chbossjinjo_createNonShrinkingSpriteParticles(f32 position[3], s32 count, enum asset_e sprite_id, f32 scale) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + f32 scale_adjusted = scale * 5.0; + particleEmitter_setSprite(pCtrl, sprite_id); + particleEmitter_setStartingFrameRange(pCtrl, 0, 9); + particleEmitter_setParticleFramerateRange(pCtrl, 12.0f, 12.0f); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setPositionAndVelocityRanges(pCtrl, &chBossJinjoSpriteSettings2); + particleEmitter_setStartingScaleRange(pCtrl, scale_adjusted, scale_adjusted); + particleEmitter_setFinalScaleRange(pCtrl, scale_adjusted, scale_adjusted); + particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.0f); + particleEmitter_setParticleLifeTimeRange(pCtrl, scale * 0.5, scale * 0.5 * 1.5); + particleEmitter_setFade(pCtrl, 0.7f, 0.8f); + particleEmitter_setDrawMode(pCtrl, PART_EMIT_NO_DEPTH); + particleEmitter_emitN(pCtrl, count); } -void fight_func_8038C588(void){ - func_80386654(1.0f, &D_80391958, &D_80391948); +void chbossjinjo_func_8038C588(void) { + chfinalboss_func_80386654(1.0f, D_80391958, D_80391948); } -void fight_func_8038C5BC(void){ - func_80386654(1.0f, &D_80391948, &D_80391958); +void chbossjinjo_func_8038C5BC(void) { + chfinalboss_func_80386654(1.0f, D_80391948, D_80391958); } -void chbossjinjo_spawnParticles(Actor *this, enum asset_e arg1, enum asset_e arg2, f32 arg3){ - f32 sp1C[3]; - fight_func_8038C0DC(&sp1C); - fight_func_8038C2C0(this->position, 0x20, arg1, arg3); - func_8038C424(this->position, 4, arg2, arg3); - timedFunc_set_0(0.0f, fight_func_8038C588); - timedFunc_set_0(0.3f, fight_func_8038C5BC); +void chbossjinjo_spawnParticlesAtFinalBoss(Actor *this, enum asset_e sprite1_id, enum asset_e sprite2_id, f32 scale) { + f32 position_finalboss[3]; + + chfinalboss_getPosition(position_finalboss); + chbossjinjo_createSpriteParticles(this->position, 32, sprite1_id, scale); + chbossjinjo_createNonShrinkingSpriteParticles(this->position, 4, sprite2_id, scale); + timedFunc_set_0(0.0f, chbossjinjo_func_8038C588); + timedFunc_set_0(0.3f, chbossjinjo_func_8038C5BC); } -void chbossjinjo_spawnAttackParticles(Actor *this){ +void chbossjinjo_spawnAttackParticles(Actor *this) { s32 sparkle_sprite_id; s32 smoke_sprite_id; - switch(this->marker->id){ + + switch (this->marker->id) { default: sparkle_sprite_id = ASSET_718_SPRITE_SPARKLE_WHITE_2; smoke_sprite_id = ASSET_6C2_SPRITE_SMOKE_WHITE; break; + case MARKER_27B_BOSS_JINJO_ORANGE: sparkle_sprite_id = ASSET_71B_SPRITE_SPARKLE_ORANGE_2; smoke_sprite_id = ASSET_6C5_SPRITE_SMOKE_ORANGE; break; + case MARKER_27C_BOSS_JINJO_GREEN: sparkle_sprite_id = ASSET_719_SPRITE_SPARKLE_GREEN_2; smoke_sprite_id = ASSET_6C3_SPRITE_SMOKE_GREEN; break; + case MARKER_27D_BOSS_JINJO_PINK: sparkle_sprite_id = ASSET_71A_SPRITE_SPARKLE_PINK_2; smoke_sprite_id = ASSET_6C6_SPRITE_SMOKE_PINK; break; + case MARKER_27E_BOSS_JINJO_YELLOW: sparkle_sprite_id = ASSET_717_SPRITE_SPARKLE_YELLOW_2; smoke_sprite_id = ASSET_6C4_SPRITE_SMOKE_YELLOW; break; } - chbossjinjo_spawnParticles(this, sparkle_sprite_id, smoke_sprite_id, 1.0f); + + chbossjinjo_spawnParticlesAtFinalBoss(this, sparkle_sprite_id, smoke_sprite_id, 1.0f); } +void chbossjinjo_rotateYaw(Actor *this, s16 angle) { + f32 old_yaw = this->yaw; -void fight_func_8038C6FC(Actor *this, s16 arg1){ - f32 temp_f2 = this->yaw; - f32 tick = time_getDelta(); - + old_yaw -= (time_getDelta() * angle) / 45.0; - temp_f2 -= (tick*arg1)/45.0; - if(360.0f <= temp_f2){ - temp_f2 -= 360.0f; + if (360.0f <= old_yaw) { + old_yaw -= 360.0f; } - else{ - if(temp_f2 < 0.0f) - temp_f2 += 360.0f; + else { + if (old_yaw < 0.0f) + old_yaw += 360.0f; } - this->yaw = temp_f2; + + this->yaw = old_yaw; } -void func_8038C79C(Actor *this){ +void chbossjinjo_func_8038C79C(Actor *this) { int i; - for(i = 0; i < 4; i++){ - if(randf() < 0.3){ + + for (i = 0; i < 4; i++) { + if (randf() < 0.3) { func_8033E73C(this->marker, i + 5, func_80329904); func_8033E3F0(8, this->marker->unk14_21); } @@ -185,227 +143,246 @@ void func_8038C79C(Actor *this){ } void chBossJinjo_update(Actor *this){ - f32 sp74 = time_getDelta(); + f32 time_delta = time_getDelta(); f32 sp68[3]; - f32 sp5C[3]; - f32 sp50[3]; - f32 sp4C; - int sp48; - s32 sp44; - s16 sp42; - s16 sp40; + f32 velocity_player[3]; + f32 position_finalboss[3]; + f32 yaw_delta; + bool inState3; + s32 pad; + s16 new_yaw; + s16 old_yaw; - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; func_80324CFC(0.0f, SFX_JINJO_STATUE_POWERUP, 32000); func_80324D2C(this->lifetime_value + 2.26, SFX_JINJO_STATUE_POWERUP); - }//L8038C8A4 + } + func_8028E964(sp68); - func_80257F18(this->position, sp68, &sp4C); - sp40 = (this->yaw * 182.04444); - sp42 = sp40 - (s16)(sp4C*182.04444); - switch(this->state){ - case 1: //8038C92C + func_80257F18(this->position, sp68, &yaw_delta); + old_yaw = (this->yaw * 182.04444); + new_yaw = old_yaw - (s16) (yaw_delta * 182.04444); + + switch (this->state) { + case BOSSJINJO_STATE_1_WAKE_UP: animctrl_setAnimTimer(this->animctrl, 0.0f); - if(this->lifetime_value < 0.0) - subaddie_set_state_with_direction(this, 2, 0.001f, 1); - else//L8038C974 - this->lifetime_value -= sp74; + + if (this->lifetime_value < 0.0) { + subaddie_set_state_with_direction(this, BOSSJINJO_STATE_2_YAWN, 0.001f, 1); + } else { + this->lifetime_value -= time_delta; + } break; - case 2: // 8038C980 - if(actor_animationIsAt(this, 0.44f)) + case BOSSJINJO_STATE_2_YAWN: + if (actor_animationIsAt(this, 0.44f)) { func_8030E878(SFX_105_EYRIE_YAWN, randf2(0.95f, 1.05f), 32000, this->position, 1000.0f, 5000.0f); + } - if(actor_animationIsAt(this, 0.999f)){ - subaddie_set_state_with_direction(this, 3, 0.001f, 1); + if (actor_animationIsAt(this, 0.999f)) { + subaddie_set_state_with_direction(this, BOSSJINJO_STATE_3_SPIN_UP, 0.001f, 1); func_8030E878(0x3ee, randf2(0.95f, 1.05f), 32000, this->position, 5000.0f, 12000.0f); } - break; - case 3: // 8038CA48 - case 4: // 8038CA48 - sp48 = (this->state == 3); - if(!sp48 || 0.1 < animctrl_getAnimTimer(this->animctrl)){//L8038CA7C - player_getVelocity(&sp5C); - sp5C[0] *= sp74 * 6.0f; - sp5C[1] *= sp74 * 6.0f; - sp5C[2] *= sp74 * 6.0f; + break; - sp5C[0] = sp5C[0] + sp68[0]; - sp5C[1] = sp5C[1] + sp68[1]; - sp5C[2] = sp5C[2] + sp68[2]; + case BOSSJINJO_STATE_3_SPIN_UP: + case BOSSJINJO_STATE_4_ATTACK: + inState3 = (this->state == BOSSJINJO_STATE_3_SPIN_UP); - sp5C[0] -= this->position_x; - sp5C[1] -= this->position_y; - sp5C[2] -= this->position_z; + if (!inState3 || 0.1 < animctrl_getAnimTimer(this->animctrl)) { + player_getVelocity(&velocity_player); - sp5C[0] *= sp74*3.0f; - sp5C[1] *= sp74*3.0f; - sp5C[2] *= sp74*3.0f; + velocity_player[0] *= time_delta * 6.0f; + velocity_player[1] *= time_delta * 6.0f; + velocity_player[2] *= time_delta * 6.0f; - this->position_x = sp5C[0] + this->position_x; - this->position_y = sp5C[1] + this->position_y; - this->position_z = sp5C[2] + this->position_z; - if(sp48 || animctrl_getAnimTimer(this->animctrl) < 0.8) - func_8038C79C(this); - }//L8038CB9C - if(sp48){ - if(animctrl_getAnimTimer(this->animctrl) < 0.2){ - fight_func_8038C6FC(this, sp42); + velocity_player[0] = velocity_player[0] + sp68[0]; + velocity_player[1] = velocity_player[1] + sp68[1]; + velocity_player[2] = velocity_player[2] + sp68[2]; + + velocity_player[0] -= this->position_x; + velocity_player[1] -= this->position_y; + velocity_player[2] -= this->position_z; + + velocity_player[0] *= time_delta * 3.0f; + velocity_player[1] *= time_delta * 3.0f; + velocity_player[2] *= time_delta * 3.0f; + + this->position_x = velocity_player[0] + this->position_x; + this->position_y = velocity_player[1] + this->position_y; + this->position_z = velocity_player[2] + this->position_z; + + if (inState3 || animctrl_getAnimTimer(this->animctrl) < 0.8) { + chbossjinjo_func_8038C79C(this); + } + } + + if (inState3) { + if(animctrl_getAnimTimer(this->animctrl) < 0.2) { + chbossjinjo_rotateYaw(this, new_yaw); } - if(actor_animationIsAt(this, 0.1f)){ + if (actor_animationIsAt(this, 0.1f)) { this->unk44_31 = func_8030ED2C(0x18, 3); func_8030E2C4(this->unk44_31); func_8025A6EC(COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7fff); FUNC_8030E8B4(SFX_C7_SHWOOP, 0.8f, 32750, this->position, 300, 2000); - }//L8038CC2C + } - if(actor_animationIsAt(this, 0.434f)){ + if (actor_animationIsAt(this, 0.434f)) { FUNC_8030E8B4(SFX_C7_SHWOOP, 0.9f, 32750, this->position, 300, 2000); - }//L8038CC58 + } - if(actor_animationIsAt(this, 0.811f)){ + if (actor_animationIsAt(this, 0.811f)) { FUNC_8030E8B4(SFX_C7_SHWOOP, 1.0f, 32750, this->position, 300, 2000); } - } - else{//L8038CC8C - if(actor_animationIsAt(this, 0.214f)){ + } else { + if (actor_animationIsAt(this, 0.214f)) { FUNC_8030E8B4(SFX_C7_SHWOOP, 1.1f, 32750, this->position, 300, 2000); - }//L8038CCB0 + } - if(actor_animationIsAt(this, 0.55f)){ + if (actor_animationIsAt(this, 0.55f)) { FUNC_8030E8B4(SFX_53_BANJO_HUIII, 1.5f, 32750, this->position, 300, 2000); - }//L8038CCDC + } - if(actor_animationIsAt(this, 0.85f)){ - if(func_8030E3FC(this->unk44_31)) + if (actor_animationIsAt(this, 0.85f)) { + if(func_8030E3FC(this->unk44_31)) { func_8030E394(this->unk44_31); + } + sfxsource_playHighPriority(SFX_19_BANJO_LANDING_08); func_8025A7DC(COMUSIC_43_ENTER_LEVEL_GLITTER); - }//L8038CD20 - } - - if(sp48){ - if(actor_animationIsAt(this, 0.96f)){ - subaddie_set_state_with_direction(this, 4, 0.0f, -1); - actor_playAnimationOnce(this); } } - else{//L8038CD68 - if(actor_animationIsAt(this, 0.9f)){ + + if (inState3) { + if (actor_animationIsAt(this, 0.96f)) { + subaddie_set_state_with_direction(this, BOSSJINJO_STATE_4_ATTACK, 0.0f, -1); + actor_playAnimationOnce(this); + } + } else { + if (actor_animationIsAt(this, 0.9f)) { animctrl_setSmoothTransition(this->animctrl, FALSE); - subaddie_set_state_with_direction(this, 5, 0.001f, 1); + subaddie_set_state_with_direction(this, BOSSJINJO_STATE_5_HIT, 0.001f, 1); FUNC_8030E8B4(SFX_135_CARTOONY_SPRING, 1.0f, 32000, this->position, 10000, 16000); func_80324D54(0.1f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f); func_8034A174(this->marker->unk44, 0x1f, this->position); - this->velocity_x = (this->position_x - this->unk1C[0])/ sp74; - this->velocity_y = (this->position_y - this->unk1C[1])/ sp74; - this->velocity_z = (this->position_z - this->unk1C[2])/ sp74; - } - else{//L8038CE50 + this->velocity_x = (this->position_x - this->unk1C[0])/ time_delta; + this->velocity_y = (this->position_y - this->unk1C[1])/ time_delta; + this->velocity_z = (this->position_z - this->unk1C[2])/ time_delta; + } else { func_8034A174(this->marker->unk44, 0x1f, this->unk1C); } } break; - case 5: // 8038CE68 - fight_func_8038C0DC(&sp50); - sp50[1] += 100.0f; - func_80387470(this, sp50, 1200.0f, 3840.0f, 200.0f, 2500.0f, 70.0f); - func_8038C79C(this); + + case BOSSJINJO_STATE_5_HIT: + chfinalboss_getPosition(position_finalboss); + position_finalboss[1] += 100.0f; + chfinalboss_func_80387470(this, position_finalboss, 1200.0f, 3840.0f, 200.0f, 2500.0f, 70.0f); + chbossjinjo_func_8038C79C(this); break; - }//L8038CEC8 + } } -void func_8038CED8(f32 arg0[3], enum asset_e model_id, f32 arg2, f32 arg3){ - ParticleEmitter *s0 = partEmitMgr_newEmitter(1); +void fight_createBlastParticle(f32 position[3], enum asset_e model_id, f32 scale_ratio, f32 fade_in) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1); f32 viewport[3]; - f32 sp34[3]; + f32 velocity[3]; - viewport_getPosition_vec3f(&viewport); - - sp34[0] = viewport[0] - arg0[0]; - sp34[1] = viewport[1] - arg0[1]; - sp34[2] = viewport[2] - arg0[2]; - ml_vec3f_set_length(sp34, 20.0f); + viewport_getPosition_vec3f(viewport); + velocity[0] = viewport[0] - position[0]; + velocity[1] = viewport[1] - position[1]; + velocity[2] = viewport[2] - position[2]; + ml_vec3f_set_length(velocity, 20.0f); - particleEmitter_setModel(s0, model_id); - particleEmitter_setPosition(s0, arg0); - particleEmitter_setParticleVelocityRange(s0, sp34[0], sp34[1], sp34[2], sp34[0], sp34[1], sp34[2]); - D_80391968.unk20 = arg3; - D_80391968.unk0[0] *= arg2; - D_80391968.unk24 = arg3; - D_80391968.unk0[1] *= arg2; - D_80391968.unk8[0] *= arg2; - D_80391968.unk8[1] *= arg2; - particleEmitter_setScaleAndLifetimeRanges(s0, &D_80391968); - particleEmitter_setDrawMode(s0, PART_EMIT_NO_DEPTH); - func_802EFA78(s0, 1); - particleEmitter_emitN(s0, 1); + particleEmitter_setModel(pCtrl, model_id); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setParticleVelocityRange(pCtrl, velocity[0], velocity[1], velocity[2], velocity[0], velocity[1], velocity[2]); + + sFightBlastParticleSettings.unk20 = fade_in; + sFightBlastParticleSettings.unk0[0] *= scale_ratio; + sFightBlastParticleSettings.unk24 = fade_in; + sFightBlastParticleSettings.unk0[1] *= scale_ratio; + sFightBlastParticleSettings.unk8[0] *= scale_ratio; + sFightBlastParticleSettings.unk8[1] *= scale_ratio; + + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &sFightBlastParticleSettings); + particleEmitter_setDrawMode(pCtrl, PART_EMIT_NO_DEPTH); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_emitN(pCtrl, 1); } -void chBossJinjo_func_8038D014(Actor *this){ - s32 temp_a1; +void chBossJinjo_update2(Actor *this) { + enum asset_e blast_asset; - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; this->marker->propPtr->unk8_3 = 0; actor_collisionOff(this); this->alpha_124_19 = 0x7d; actor_setOpacity(this, this->alpha_124_19); this->scale = (f64)this->scale + this->scale; - subaddie_set_state_with_direction(this, 5, 0.001f, 1); + subaddie_set_state_with_direction(this, BOSSJINJO_STATE_5_HIT, 0.001f, 1); func_80343DEC(this); - }//L8038D0B8 + } - if(!func_8038C298()){ + if (!chfinalboss_func_8038C298()) { this->unk58_0 = 0; - }else{//L8038D0DC + } else { this->unk58_0 = 1; func_80343DEC(this); - if(this->state == 5){ - if(this->marker->unk14_21) - func_8038C79C(this); - if(0.98 < this->unk48){ + if (this->state == BOSSJINJO_STATE_5_HIT) { + if(this->marker->unk14_21) { + chbossjinjo_func_8038C79C(this); + } + + if (0.98 < this->unk48) { func_8030E6A4(0x3ee, randf2(1.0f, 1.15f), 32000); timed_playSfx(0.1f, 0x416, 0.6f, 32000); marker_despawn(this->marker); - switch (this->marker->id) - { - case MARKER_27B_BOSS_JINJO_ORANGE: - temp_a1 = 0x557; - break; - case MARKER_27C_BOSS_JINJO_GREEN: - temp_a1 = 0x558; - break; - case MARKER_27D_BOSS_JINJO_PINK: - temp_a1 = 0x559; - break; - case MARKER_27E_BOSS_JINJO_YELLOW: - temp_a1 = 0x556; - break; - default: - temp_a1 = 0x556; - break; + + switch (this->marker->id) { + case MARKER_27B_BOSS_JINJO_ORANGE: + blast_asset = ASSET_557_MODEL_ORANGE_JINJO_BLAST; + break; + + case MARKER_27C_BOSS_JINJO_GREEN: + blast_asset = ASSET_558_MODEL_GREEN_JINJO_BLAST; + break; + + case MARKER_27D_BOSS_JINJO_PINK: + blast_asset = ASSET_559_MODEL_PINK_JINJO_BLAST; + break; + + case MARKER_27E_BOSS_JINJO_YELLOW: + blast_asset = ASSET_556_MODEL_YELLOW_JINJO_BLAST; + break; + + default: + blast_asset = ASSET_556_MODEL_YELLOW_JINJO_BLAST; + break; } - func_8038CED8(this->position, temp_a1, 1.0f, 0.1f); + + fight_createBlastParticle(this->position, blast_asset, 1.0f, 0.1f); func_802BB3DC(0, 12.0f, 0.4f); } } - }//L8038D200 + } } +void chbossjinjo_attack(ActorMarker *marker) { + Actor *actor_bossjinjo = marker_getActor(marker); -void chbossjinjo_attack(ActorMarker *marker){ - Actor *actor = marker_getActor(marker); - chbossjinjo_spawnAttackParticles(actor); - FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor->position, 1000, 6500); - marker_despawn(actor->marker); + chbossjinjo_spawnAttackParticles(actor_bossjinjo); + FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor_bossjinjo->position, 1000, 6500); + marker_despawn(actor_bossjinjo->marker); } -f32 chbossjinjo_8038D268(void){ +f32 chbossjinjo_getWakeUpTime(void) { return 2.26f; } diff --git a/src/fight/chbossjinjobase.c b/src/fight/chbossjinjobase.c index cb435728..d29096b1 100644 --- a/src/fight/chbossjinjobase.c +++ b/src/fight/chbossjinjobase.c @@ -5,113 +5,86 @@ typedef struct { u8 sfxsourceIdx; -}ActorLocal_BossJinjoBase; +} ActorLocal_BossJinjoBase; -enum chBossJinjoBase_states { - CHBOSSJINJOBASE_STATE_1_RAISE = 1, - CHBOSSJINJOBASE_STATE_2_DEFAULT = 2, - CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO = 3 -}; +ActorInfo chBossJinjoBase = { MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE, 1, NULL, chBossJinjoBase_update, actor_update_func_80326224, actor_draw, 0, 2048, 0.0f, 0 }; -void chBossJinjoBase_update(Actor *this); +s32 chBossJinjoBase_SmokeColor[3] = { 200, 200, 160 }; +ParticleScaleAndLifetimeRanges chBossJinjoBase_SmokeScaleAndLifetimeSettings = { {1.0f, 1.0f}, {1.7f, 2.7f}, {0.0f, 0.05f}, {2.6f, 3.4f}, 0.0f, 0.1f }; -/* .data */ -ActorInfo chBossJinjoBase = { - MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE, - 0x1, NULL, - chBossJinjoBase_update, func_80326224, actor_draw, - 0, 0x800, 0.0f, 0 -}; +void chbossjinjobase_spawnStoneJinjo(ActorMarker *marker) { + Actor *actor_bossjinjobase = marker_getActor(marker); + Actor *childactor_stonejinjo = spawn_child_actor(ACTOR_3A1_STONE_JINJO, &actor_bossjinjobase); -s32 chBossJinjoBase_smokeColor[3] = {0xC8, 0xC8, 0xA0}; - -ParticleScaleAndLifetimeRanges chBossJinjoBase_smokeSettings = { - {1.0f, 1.0f}, - {1.7f, 2.7f}, - {0.0f, 0.05f}, - {2.6f, 3.4f}, - 0.0f, 0.1f -}; - -/* .code */ -void chbossjinjobase_spawnStoneJinjo(ActorMarker *arg0) { - Actor *sp1C = marker_getActor(arg0); - Actor *temp_v0 = spawn_child_actor(ACTOR_3A1_STONE_JINJO, &sp1C); - - temp_v0->unkF4_8 = sp1C->unkF4_8; - temp_v0->position_y = temp_v0->position_y + 172.0f; - sp1C->unk100 = temp_v0->marker; + childactor_stonejinjo->unkF4_8 = actor_bossjinjobase->unkF4_8; + childactor_stonejinjo->position_y = childactor_stonejinjo->position_y + 172.0f; + actor_bossjinjobase->unk100 = childactor_stonejinjo->marker; } -void chBossJinjoBase_emitSmoke(f32 position[3], s32 count) { - ParticleEmitter *p = partEmitMgr_newEmitter(count); - - particleEmitter_setSprite(p, ASSET_70E_SPRITE_SMOKE_2); - particleEmitter_setRGB(p, chBossJinjoBase_smokeColor); - particleEmitter_setStartingFrameRange(p, 0, 7); - particleEmitter_setPosition(p, position); - particleEmitter_setParticleSpawnPositionRange(p, -90.0f, 0.0f, -80.0f, 80.0f, 60.0f, 80.0f); - particleEmitter_setParticleVelocityRange(p, -170.0f, 0.0f, -170.0f, 170.0f, 100.0f, 170.0f); - particleEmitter_setScaleAndLifetimeRanges(p, &chBossJinjoBase_smokeSettings); - particleEmitter_emitN(p, count); +void chBossJinjoBase_createSmokeParticles(f32 position[3], s32 count) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, ASSET_70E_SPRITE_SMOKE_2); + particleEmitter_setRGB(pCtrl, chBossJinjoBase_SmokeColor); + particleEmitter_setStartingFrameRange(pCtrl, 0, 7); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setSpawnPositionRange(pCtrl, -90.0f, 0.0f, -80.0f, 80.0f, 60.0f, 80.0f); + particleEmitter_setParticleVelocityRange(pCtrl, -170.0f, 0.0f, -170.0f, 170.0f, 100.0f, 170.0f); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &chBossJinjoBase_SmokeScaleAndLifetimeSettings); + particleEmitter_emitN(pCtrl, count); } -void func_8038D3DC(Actor* this, s32 arg1, f32 arg2, f32 arg3, f32 arg4){ +void chBossJinjoBase_func_8038D3DC(Actor *this, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { s32 tmp = func_8034C2C4(this->marker, arg1); - if(tmp){ + if (tmp) { func_8034DE60(tmp, arg2, arg3, arg4, 1); } } void chBossJinjoBase_getHitByEgg(ActorMarker *this, ActorMarker *other) { - Actor *actor_base; - Actor *actor_other; + Actor *actor_bossjinjobase = marker_getActor(this); - actor_base = marker_getActor(this); - - if (actor_base->state != CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO) { + if (actor_bossjinjobase->state != CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO) { comusic_playTrack(COMUSIC_2B_DING_B); - actor_base->unk38_31++; // hit count + actor_bossjinjobase->unk38_31++; - if (actor_base->unk38_31 >= 3) { // spawn Jjnjonator - subaddie_set_state(actor_base, CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO); - chstonejinjo_breakOpen(actor_base->unk100); - func_8038D3DC(actor_base, 0x19A, -100.0f, 0.0f, 1.2f); - func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, actor_base->position, 1000.0f, 2000.0f); + if (actor_bossjinjobase->unk38_31 >= 3) { + subaddie_set_state(actor_bossjinjobase, CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO); + chstonejinjo_breakOpen(actor_bossjinjobase->unk100); + chBossJinjoBase_func_8038D3DC(actor_bossjinjobase, 0x19A, -100.0f, 0.0f, 1.2f); + func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, actor_bossjinjobase->position, 1000.0f, 2000.0f); } } } -void fight_func_8038D510(Actor *arg0) { - ActorLocal_BossJinjoBase *sp18 = (ActorLocal_BossJinjoBase *)&arg0->local; +void chBossJinjoBase_free(Actor *this) { + ActorLocal_BossJinjoBase *local = (ActorLocal_BossJinjoBase *) &this->local; - if ((u8)arg0->unk44_31 != 0) { - func_8030DA44(arg0->unk44_31); - arg0->unk44_31 = 0; + if ((u8)this->unk44_31 != 0) { + func_8030DA44(this->unk44_31); + this->unk44_31 = 0; } - if (sp18->sfxsourceIdx != 0) { - func_8030DA44(sp18->sfxsourceIdx); - sp18->sfxsourceIdx = 0; + if (local->sfxsourceIdx != 0) { + func_8030DA44(local->sfxsourceIdx); + local->sfxsourceIdx = 0; } } void chBossJinjoBase_update(Actor *this) { - ActorLocal_BossJinjoBase *local = (ActorLocal_BossJinjoBase *)&this->local; - + ActorLocal_BossJinjoBase *local = (ActorLocal_BossJinjoBase *) &this->local; f32 delta_time = time_getDelta(); - u32 shake_noise = globalTimer_getTime() & 0xF; - Actor *actor_stone_jinjo; //sp40 + u32 rumbling = globalTimer_getTime() & 0xF; + Actor *actor_stonejinjo; f32 y_delta; f32 position_delta[3]; this->unkF4_29 = 0; marker_loadModelBin(this->marker); - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; marker_setCollisionScripts(this->marker, NULL, chBossJinjoBase_getHitByEgg, NULL); - marker_setFreeMethod(this->marker, fight_func_8038D510); + marker_setFreeMethod(this->marker, chBossJinjoBase_free); this->marker->propPtr->unk8_3 = 1; actor_collisionOn(this); this->unk38_31 = 0; @@ -120,29 +93,29 @@ void chBossJinjoBase_update(Actor *this) { func_8030DD14(this->unk44_31, 2); sfxsource_playSfxAtVolume(this->unk44_31, 1.4f); sfxsource_setSampleRate(this->unk44_31, 32000); - local->sfxsourceIdx = sfxsource_createSfxsourceAndReturnIndex(); sfxsource_setSfxId(local->sfxsourceIdx, SFX_405_UNKNOWN); func_8030DD14(local->sfxsourceIdx, 2); sfxsource_playSfxAtVolume(local->sfxsourceIdx, 0.7f); sfxsource_setSampleRate(local->sfxsourceIdx, 12000); FUNC_8030E624(SFX_3F6_RUBBING, 0.6f, 20000); - func_8038D3DC(this, 0x19a, 0.0f, -200.0f, 0.0f); + chBossJinjoBase_func_8038D3DC(this, 0x19a, 0.0f, -200.0f, 0.0f); TUPLE_COPY(this->unk1C, this->position); this->position_y = -400.0f; - if(0.0f != this->lifetime_value) - this->velocity_y = 400.0f/this->lifetime_value; + + if (0.0f != this->lifetime_value) + this->velocity_y = 400.0f / this->lifetime_value; else this->velocity_y = 100.0f; func_802BB3DC(0, 8.0f, 0.92f); - __spawnQueue_add_4((GenFunction_4)spawnQueue_actor_f32, 0x3ad, *(s32*)&this->unk1C[0], *(s32*)&this->unk1C[1], *(s32*)&this->unk1C[2]); - chBossJinjoBase_emitSmoke(this->unk1C, 0x10); + __spawnQueue_add_4((GenFunction_4)spawnQueue_actor_f32, ACTOR_3AD_JINJONATOR_STATUE_BASE_ACTIVATOR, *(s32*)&this->unk1C[0], *(s32*)&this->unk1C[1], *(s32*)&this->unk1C[2]); + chBossJinjoBase_createSmokeParticles(this->unk1C, 0x10); SPAWNQUEUE_ADD_1(chbossjinjobase_spawnStoneJinjo, this->marker); } - else{ + else { if(this->state == CHBOSSJINJOBASE_STATE_1_RAISE) { - actor_stone_jinjo = marker_getActor(this->unk100); + actor_stonejinjo = marker_getActor(this->unk100); y_delta = this->velocity_y * delta_time; if(this->position_y + y_delta < this->unk1C[1]) { @@ -151,9 +124,9 @@ void chBossJinjoBase_update(Actor *this) { func_8030E2C4(local->sfxsourceIdx); } - position_delta[0] = (shake_noise & 1) ? 3.0f : -3.0f; + position_delta[0] = (rumbling & 1) ? 3.0f : -3.0f; position_delta[1] = y_delta; - position_delta[2] = (shake_noise & 2) ? 3.0f : -3.0f; + position_delta[2] = (rumbling & 2) ? 3.0f : -3.0f; this->position_x = this->unk1C[0]; this->position_z = this->unk1C[2]; @@ -161,11 +134,11 @@ void chBossJinjoBase_update(Actor *this) { this->position_y = position_delta[1] + this->position_y; this->position_z = position_delta[2] + this->position_z; - actor_stone_jinjo->position_x = this->unk1C[0]; - actor_stone_jinjo->position_z = this->unk1C[2]; - actor_stone_jinjo->position_x = position_delta[0] + actor_stone_jinjo->position_x; - actor_stone_jinjo->position_y = position_delta[1] + actor_stone_jinjo->position_y; - actor_stone_jinjo->position_z = position_delta[2] + actor_stone_jinjo->position_z; + actor_stonejinjo->position_x = this->unk1C[0]; + actor_stonejinjo->position_z = this->unk1C[2]; + actor_stonejinjo->position_x = position_delta[0] + actor_stonejinjo->position_x; + actor_stonejinjo->position_y = position_delta[1] + actor_stonejinjo->position_y; + actor_stonejinjo->position_z = position_delta[2] + actor_stonejinjo->position_z; } else { subaddie_set_state(this, CHBOSSJINJOBASE_STATE_2_DEFAULT); @@ -174,9 +147,9 @@ void chBossJinjoBase_update(Actor *this) { func_8030DA44(local->sfxsourceIdx); local->sfxsourceIdx = 0; TUPLE_COPY(this->position, this->unk1C); - TUPLE_COPY(actor_stone_jinjo->position, this->unk1C); - actor_stone_jinjo->position_y += 172.0f; + TUPLE_COPY(actor_stonejinjo->position, this->unk1C); + actor_stonejinjo->position_y += 172.0f; } } - }//L8038D954 + } } diff --git a/src/fight/chbossshadow.c b/src/fight/chbossshadow.c index 6cc6b843..74915344 100644 --- a/src/fight/chbossshadow.c +++ b/src/fight/chbossshadow.c @@ -3,25 +3,21 @@ #include "variables.h" #include "fight.h" -ActorInfo chBossShadow = { - MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, NULL, - chBossShadow_update, func_80326224, chBossShadow_draw, - 0, 0, 0.0f, 0 -}; +ActorInfo chBossShadow = { MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 1, NULL, chBossShadow_update, actor_update_func_80326224, chBossShadow_draw, 0, 0, 0.0f, 0 }; -Actor *chBossShadow_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **vptr) { +Actor *chBossShadow_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { f32 rotation[3]; f32 scale; - Actor *actor; + Actor *actor_bossshadow; // unk1C[0] of ACTOR_3AF_GRUNTY_SHADOW is set in chfinalboss_update to the distance between Gruntilda and the floor triangle below her - actor = marker_getActorAndRotation(this, rotation); - scale = actor->scale * ml_map_f(actor->unk1C[0], 0.0f, 1000.0f, 1.75f, 0.9f); + actor_bossshadow = marker_getActorAndRotation(marker, rotation); + scale = actor_bossshadow->scale * ml_map_f(actor_bossshadow->unk1C[0], 0.0f, 1000.0f, 1.75f, 0.9f); modelRender_setDepthMode(MODEL_RENDER_DEPTH_COMPARE); - modelRender_draw(gdl, mptr, actor->position, rotation, scale, NULL, marker_loadModelBin(this)); + modelRender_draw(gfx, mtx, actor_bossshadow->position, rotation, scale, NULL, marker_loadModelBin(marker)); - return actor; + return actor_bossshadow; } void chBossShadow_update(Actor *this) { diff --git a/src/fight/chfinalboss.c b/src/fight/chfinalboss.c index b1f4b6cb..137434fc 100644 --- a/src/fight/chfinalboss.c +++ b/src/fight/chfinalboss.c @@ -4,20 +4,12 @@ #include "fight.h" extern f32 func_8025715C(f32, f32); -extern void func_8025727C(f32, f32, f32, f32, f32, f32, f32*, f32*); extern void func_8028F4B8(f32[3], f32, f32); extern void func_80320ED8(ActorMarker *, f32, s32); - -void func_80387110(ActorMarker *, f32[3], f32, s32); -void func_8038856C(Actor *actor, f32 *arg1); -void chfinalboss_update(Actor *this); -void bundle_setYaw(f32); s32 func_803297C8(Actor*, f32*); Actor *func_8032813C(); -void fight_func_803900DC(ActorMarker *, f32 *, f32, f32); extern Actor* func_80329958(ActorMarker *this, s32 arg1); extern void func_803298D8(); -void timed_exitStaticCamera(f32); extern void func_80324CFC(f32, enum comusic_e, s32); extern void sfxsource_setSampleRate(u8, s32); extern void func_80328FF0(Actor *arg0, f32 arg1); @@ -25,24 +17,16 @@ extern f32 func_80257204(f32, f32, f32, f32); extern void func_8028F85C(f32[3]); extern void player_setIdealRotation(f32[3]); extern f32 func_8033229C(ActorMarker *); +void func_8034DF30(Struct6Ds *, f32[3], f32[3], f32); -Actor *chfinalboss_draw(ActorMarker *arg0, Gfx **arg1, Mtx **arg2, Vtx **arg3); - -void chfinalboss_phase1_setState(Actor *arg0, s32 arg1); -void chfinalboss_phase5_setState(Actor *, s32); -void func_8038B780(); -void chbossjinjo_spawnParticles(Actor *, s32, s32, f32); -void chjinjonator_attack(ActorMarker *, s32 arg1, s32 arg2); -void chjinjonator_finalAttack(ActorMarker *); - -typedef struct ch_fight_180_s{ +typedef struct chfinalboss_s { u8 phase; u8 hits; u8 unk2; u8 unk3; u8 unk4; u8 unk5; - u8 unk6; + u8 player_hit_in_phase3; u8 mirror_phase5; u8 unk8; u8 unk9; @@ -52,7 +36,7 @@ typedef struct ch_fight_180_s{ u8 unkD; u8 unkE; u8 unkF; - s32 unk10; + s32 player_hit_in_phase1; f32 unk14; f32 unk18; f32 unk1C; @@ -60,12 +44,12 @@ typedef struct ch_fight_180_s{ u8 pad24[4]; f32 unk28; f32 unk2C; -}ActorLocal_fight_180; +} ActorLocal_FinalBoss; -/* .data */ -f32 fight_D_80391380[4] = {1.0f, 1.0f, 1.0f, 1.0f}; -f32 fight_D_80391390[4] = {0.33f, 0.33f, 0.33f, 1.0f}; -ActorAnimationInfo D_803913A0[] = { +f32 fight_D_80391380[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; +f32 fight_D_80391390[4] = { 0.33f, 0.33f, 0.33f, 1.0f }; + +ActorAnimationInfo chFinalBossAnimationInfo[] = { { 0, 0.0f}, { 0x1C5, 0.6f}, { 0x1C5, 0.6f}, @@ -112,69 +96,22 @@ ActorAnimationInfo D_803913A0[] = { { 0x266, 4.0f} }; -ActorInfo chFinalBoss = { - MARKER_25E_GRUNTILDA_FINAL_BOSS, ACTOR_38B_GRUNTILDA_FINAL_BOSS, ASSET_53D_MODEL_GRUNTILDA_FINAL_BOSS, - 1, D_803913A0, - chfinalboss_update, func_80326224, chfinalboss_draw, - 0, 0, 0.0f, 0 -}; +ActorInfo chFinalBoss = { MARKER_25E_GRUNTILDA_FINAL_BOSS, ACTOR_38B_GRUNTILDA_FINAL_BOSS, ASSET_53D_MODEL_GRUNTILDA_FINAL_BOSS, 1, chFinalBossAnimationInfo, chfinalboss_update, actor_update_func_80326224, chfinalboss_draw, 0, 0, 0.0f, 0 }; + f32 fight_D_80391524[3] = {0.0f, -8.0f, 400.0f}; - f32 D_80391530[3] = {0.0f, -8.0f, 0.0f}; - -ParticleScaleAndLifetimeRanges D_8039153C ={ - {1.0f, 1.0f}, - {1.0f, 1.0f}, - {0.0f, 0.01f}, - {2.8f, 3.2f}, - 0.5f, 0.7f -}; - -struct43s D_80391564 ={ - {{-300.0f, -300.0f, -300.0f}, {300.0f, 500.0f, 300.0f}}, - {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, - {{-100.0f, -20.0f, -100.0f},{100.0f, 100.0f, 100.0f}} -}; - -s32 D_803915AC[3] = {0x24, 0x24, 0x24}; - -struct42s D_803915B8 = { - {{-70.0f, -50.0f, -70.0f}, {70.0f, 50.0f, 70.0f}}, - {{-100.0f, -20.0f, -100.0f},{100.0f, 100.0f, 100.0f}} -}; - -struct40s D_803915E8 ={ - { - {1.8f, 2.1f}, - {1.3f, 1.4f}, - {0.0f, 0.01f}, - {1.1f, 1.3f}, - 0.15f, 0.3f - }, - 4.0f, 1.0f -}; - -struct42s D_80391618 = { - {{-10.0f, -10.0f, -10.0f}, {10.0f, 10.0f, 10.0f,}}, - {{0.0f, 30.0f, 0.0f}, {0.0f, 30.0f, 0.0f}} -}; - -struct40s D_80391648 = { - {{0.2f, 0.3f}, {0.5f, 0.6f}, {0.0f, 0.01f}, {1.1f, 1.3f}, 0.01, 0.7}, 4.0f, 1.0f -}; - -struct43s D_80391678 = { - {{-50, -50, -50}, {50, 50, 50}}, - {{0, -50, 0}, {0, -50, 0}}, - {{-60, 60, -60}, {60, 60, 60}} -}; - -s32 D_803916C0[3] = {0xff, 0xff, 0xff}; -s32 D_803916CC[3] = {0xff, 0, 0}; -s32 fight_D_803916D8[3] = {0x4B, 0x4B, 0x4B}; - +ParticleScaleAndLifetimeRanges D_8039153C = { { 1.0f, 1.0f }, { 1.0f, 1.0f }, { 0.0f, 0.01f }, { 2.8f, 3.2f }, 0.5f, 0.7f }; +ParticleSettingsVelocityAccelerationPosition D_80391564 = { { { -300.0f, -300.0f, -300.0f }, {300.0f, 500.0f, 300.0f } }, { { 0.0f, -1200.0f, 0.0f }, { 0.0f, -1200.0f, 0.0f } }, { { -100.0f, -20.0f, -100.0f }, { 100.0f, 100.0f, 100.0f } } }; +s32 D_803915AC[3] = { 36, 36, 36 }; +ParticleSettingsVelocityPosition D_803915B8 = { { {-70.0f, -50.0f, -70.0f }, { 70.0f, 50.0f, 70.0f } }, { {-100.0f, -20.0f, -100.0f },{ 100.0f, 100.0f, 100.0f } } }; +ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803915E8 = { { { 1.8f, 2.1f }, { 1.3f, 1.4f }, { 0.0f, 0.01f }, { 1.1f, 1.3f }, 0.15f, 0.3f }, 4.0f, 1.0f }; +ParticleSettingsVelocityPosition D_80391618 = { { {-10.0f, -10.0f, -10.0f }, { 10.0f, 10.0f, 10.0f } }, { {0.0f, 30.0f, 0.0f }, { 0.0f, 30.0f, 0.0f } } }; +ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80391648 = { { {0.2f, 0.3f }, { 0.5f, 0.6f }, { 0.0f, 0.01f }, { 1.1f, 1.3f }, 0.01, 0.7 }, 4.0f, 1.0f }; +ParticleSettingsVelocityAccelerationPosition D_80391678 = { { {-50, -50, -50 }, { 50, 50, 50 } }, { {0, -50, 0 }, {0, -50, 0} }, { {-60, 60, -60 }, { 60, 60, 60 } } }; +s32 sFinalBoss_ColorWhite[3] = { 255, 255, 255 }; +s32 sFinalBoss_ColorRed[3] = { 255, 0, 0 }; +s32 sFinalBoss_ColorDarkGrey[3] = { 75, 75, 75 }; f32 D_803916E4[4] = {0.1f, 0.2f, 1.9f, 3.9f}; - f32 D_803916F4[3] = {0.0f, 0.0f, 0.0f}; f32 D_80391700[3] = {0.0f, 0.0f, 0.0f}; s32 D_8039170C = 0; @@ -198,194 +135,179 @@ f32 D_803917EC[3] = {-827.0f, 793.0f, 1700.0f}; f32 D_803917F8[3] = {827.0f, 793.0f, -1700.0f}; f32 D_80391804[3] = {0.0f, 0.0f, 1350.0f}; - -/* .bss */ f32 D_80392750; f32 D_80392758[3]; f32 D_80392768[3]; f32 D_80392778[3]; -f32 D_80392788[3]; -f32 D_80392798[3]; +f32 chFinalBossPlayerPosition[3]; +f32 chFinalBossPosition[3]; ActorMarker *__chFinalBossShadowMarker; ActorMarker *__chFinalBossFlightPadMarker; ActorMarker *__chFinalBossJinjoStatueMarker[4]; f32 D_803927C0; -u8 D_803927C4; +u8 sFinalBossJinjoStatueActivated; u8 __chFinalBossSpellBarrierActive; u8 __chFinalBossJinjonatorHits; u8 D_803927C7; -u8 D_803927C8; -u8 D_803927C9; +u8 chFinalBossJinjoSpawned; +u8 chFinalBossJinjonatorSpawned; f32 D_803927D0[0x13][3]; f32 D_803928B8[3]; s32 D_803928C4; f32 D_803928C8[3]; -/* .code */ Actor *chfinalboss_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { - Actor *this; - ActorLocal_fight_180 *local; + Actor *this = marker_getActor(marker); + ActorLocal_FinalBoss *local = (ActorLocal_FinalBoss *)&this->local; - this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; func_8033A45C(3, local->unkD); func_8033A45C(4, local->unkE); func_8033A45C(5, local->unkC); - if (local->phase == 1) { - func_8033A25C(0); + + if (local->phase == FINALBOSS_PHASE_1_BROOMSTICK) { + func_8033A25C(FALSE); } + return actor_draw(marker, gfx, mtx, vtx); } -void func_80386600(ActorMarker *arg0, s32 arg1) { - Actor *this; - ActorLocal_fight_180 *local; +void chfinalboss_func_80386600(ActorMarker *marker, s32 arg1) { + Actor *this = marker_getActor(marker); + ActorLocal_FinalBoss *local = (ActorLocal_FinalBoss *)&this->local; - this = marker_getActor(arg0); - local = (ActorLocal_fight_180 *)&this->local; local->unkC = arg1; } -void func_80386628(ActorMarker *arg0, s32 arg1) { - Actor *temp_v0; - ActorLocal_fight_180 *local; +void chfinalboss_func_80386628(ActorMarker *marker, s32 arg1) { + Actor *this = marker_getActor(marker); + ActorLocal_FinalBoss *local = (ActorLocal_FinalBoss *)&this->local; - - temp_v0 = marker_getActor(arg0); - local = (ActorLocal_fight_180 *)&temp_v0->local; local->unkD = arg1; local->unkE = arg1; } -void func_8034DF30(Struct6Ds *, f32[3], f32[3], f32); +void chfinalboss_func_80386654(f32 arg0, f32 arg1[4], f32 arg2[4]) { + Struct6Ds *temp_v0 = func_8034C528(0x190); -void func_80386654(f32 arg0, f32 arg1[4], f32 arg2[4]) { - Struct6Ds *temp_v0; - - temp_v0 = func_8034C528(0x190); if (temp_v0 != NULL) { func_8034DF30(temp_v0, arg1, arg2, arg0); } } -void func_80386698(f32 arg0) { - Struct6Ds * temp_v0; +void chfinalboss_func_80386698(f32 arg0) { + Struct6Ds * temp_v0 = func_8034C528(0x19A); - temp_v0 = func_8034C528(0x19A); if (temp_v0 != NULL) { func_8034DDF0(temp_v0, fight_D_80391524, D_80391530, arg0, 1); } } -void chfinalboss_spawnBroomstickParticles(f32 position[3], enum asset_e model_id, s32 n) { - ParticleEmitter *temp_s0; - - temp_s0 = partEmitMgr_newEmitter(n); - particleEmitter_setModel(temp_s0, model_id); - particleEmitter_setPosition(temp_s0, position); - particleEmitter_setAngularVelocityRange(temp_s0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); - particleEmitter_setPositionVelocityAndAccelerationRanges(temp_s0, &D_80391564); - particleEmitter_setScaleAndLifetimeRanges(temp_s0, &D_8039153C); - func_802EFA78(temp_s0, 1); - particleEmitter_emitN(temp_s0, n); +void chfinalboss_createBroomstickParticles(f32 position[3], enum asset_e model_id, s32 count) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setModel(pCtrl, model_id); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80391564); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039153C); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_emitN(pCtrl, count); } -void func_8038679C(f32 arg0[3], s32 arg1, f32 arg2[4]) { - ParticleEmitter *temp_s0; - - temp_s0 = partEmitMgr_newEmitter(arg1); - particleEmitter_setSprite(temp_s0, ASSET_70E_SPRITE_SMOKE_2); - particleEmitter_setRGB(temp_s0, D_803915AC); - particleEmitter_setStartingFrameRange(temp_s0, 0, 7); - particleEmitter_setPosition(temp_s0, arg0); - particleEmitter_setPositionAndVelocityRanges(temp_s0, &D_803915B8); - particleEmitter_setStartingScaleRange(temp_s0, arg2[0], arg2[1]); - particleEmitter_setFinalScaleRange(temp_s0, arg2[2], arg2[3]); - particleEmitter_setSpawnIntervalRange(temp_s0, 0.0f, 0.01f); - particleEmitter_setParticleLifeTimeRange(temp_s0, 2.8f, 3.2f); - particleEmitter_setFade(temp_s0, 0.3f, 0.4f); - func_802EFA78(temp_s0, 1); - particleEmitter_emitN(temp_s0, arg1); +void chfinalboss_createSmokeParticles(f32 position[3], s32 count, f32 scale_ranges[4]) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, ASSET_70E_SPRITE_SMOKE_2); + particleEmitter_setRGB(pCtrl, D_803915AC); + particleEmitter_setStartingFrameRange(pCtrl, 0, 7); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_803915B8); + particleEmitter_setStartingScaleRange(pCtrl, scale_ranges[0], scale_ranges[1]); + particleEmitter_setFinalScaleRange(pCtrl, scale_ranges[2], scale_ranges[3]); + particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); + particleEmitter_setParticleLifeTimeRange(pCtrl, 2.8f, 3.2f); + particleEmitter_setFade(pCtrl, 0.3f, 0.4f); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_emitN(pCtrl, count); } -void func_803868A0(f32 arg0[3], s32 arg1[3]) { - ParticleEmitter * temp_s0; - - temp_s0 = partEmitMgr_newEmitter(1); - particleEmitter_setSprite(temp_s0, ASSET_45A_SPRITE_GREEN_GLOW); - particleEmitter_setStartingFrameRange(temp_s0, 2, 2); - particleEmitter_setRGB(temp_s0, arg1); - particleEmitter_setPosition(temp_s0, arg0); - func_802EFA78(temp_s0, 1); - particleEmitter_setPositionAndVelocityRanges(temp_s0, &D_80391618); - func_802EFC28(temp_s0, &D_803915E8); +void chfinalboss_createGreenGlowParticle(f32 position[3], s32 color[3]) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1); + particleEmitter_setSprite(pCtrl, ASSET_45A_SPRITE_GREEN_GLOW); + particleEmitter_setStartingFrameRange(pCtrl, 2, 2); + particleEmitter_setRGB(pCtrl, color); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_80391618); + func_802EFC28(pCtrl, &D_803915E8); } -void func_80386934(f32 position[3], enum asset_e sprite_id) { - ParticleEmitter * temp_s0; - - temp_s0 = partEmitMgr_newEmitter(1); - particleEmitter_setSprite(temp_s0, sprite_id); - particleEmitter_setStartingFrameRange(temp_s0, 1, 6); - particleEmitter_setPosition(temp_s0, position); - func_802EFA78(temp_s0, 1); - particleEmitter_setPositionVelocityAndAccelerationRanges(temp_s0, &D_80391678); - func_802EFC28(temp_s0, &D_80391648); +void chfinalboss_createSingleSpriteParticle(f32 position[3], enum asset_e sprite_id) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1); + particleEmitter_setSprite(pCtrl, sprite_id); + particleEmitter_setStartingFrameRange(pCtrl, 1, 6); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80391678); + func_802EFC28(pCtrl, &D_80391648); } -void func_803869BC(Actor *this) { - s32 sp3C; - s32 sp30[3]; - s32 sp2C; - f32 sp20[3]; - u32 temp_t3; +void chfinalboss_spawnBroomstickGlowParticles(Actor *this) { + s32 time_delta; + s32 color[3]; + enum asset_e sprite_id; + f32 position[3]; + u32 state; if (this->marker->unk14_21) { - sp3C = globalTimer_getTime(); - temp_t3 = (u32) this->state; - if ((temp_t3 == 6) || (temp_t3 == 7)) { - sp30[0] = D_803916CC[0]; - sp30[1] = D_803916CC[1]; - sp30[2] = D_803916CC[2]; - sp2C = 0x715; - } else if ((temp_t3 == 8) || (temp_t3 == 9)) { - sp30[0] = fight_D_803916D8[0]; - sp30[1] = fight_D_803916D8[1]; - sp30[2] = fight_D_803916D8[2]; - sp2C = 0x000; + time_delta = globalTimer_getTime(); + state = this->state; + + if ((state == 6) || (state == 7)) { + color[0] = sFinalBoss_ColorRed[0]; + color[1] = sFinalBoss_ColorRed[1]; + color[2] = sFinalBoss_ColorRed[2]; + sprite_id = ASSET_715_SPRITE_SPARKLE_RED; + } else if ((state == 8) || (state == 9)) { + color[0] = sFinalBoss_ColorDarkGrey[0]; + color[1] = sFinalBoss_ColorDarkGrey[1]; + color[2] = sFinalBoss_ColorDarkGrey[2]; + sprite_id = 0; } else { - sp30[0] = D_803916C0[0]; - sp30[1] = D_803916C0[1]; - sp30[2] = D_803916C0[2]; - sp2C = 0x713; + color[0] = sFinalBoss_ColorWhite[0]; + color[1] = sFinalBoss_ColorWhite[1]; + color[2] = sFinalBoss_ColorWhite[2]; + sprite_id = ASSET_713_SPRITE_SPARKLE_YELLOW; } - func_8034A174(this->marker->unk44, 7, sp20); - if (((sp2C == 0x715) && ((sp3C & 1) != 0)) || ((sp2C == 0x713) && ((sp3C & 3) == 0))) { - func_803868A0(sp20, sp30); + + func_8034A174(this->marker->unk44, 7, position); + + if (((sprite_id == ASSET_715_SPRITE_SPARKLE_RED) && ((time_delta & 1) != 0)) || ((sprite_id == ASSET_713_SPRITE_SPARKLE_YELLOW) && ((time_delta & 3) == 0))) { + chfinalboss_createGreenGlowParticle(position, color); } - if (sp2C == 0) { - func_8038856C(this, D_803916E4); + + if (sprite_id == 0) { + chfinalboss_func_8038856C(this, D_803916E4); } - if ((sp2C != 0) && ((sp2C == 0x715) || (sp2C = sp2C, (randf() < 0.62)))) { - func_80386934(sp20, sp2C); + + if ((sprite_id != 0) && ((sprite_id == ASSET_715_SPRITE_SPARKLE_RED) || (sprite_id = sprite_id, (randf() < 0.62)))) { + chfinalboss_createSingleSpriteParticle(position, sprite_id); } } } -void fight_func_80386B54(f32 *arg0, f32 arg1) { - f32 sp34; - f32 sp28[3]; +void chfinalboss_func_80386B54(f32 *arg0, f32 arg1) { + f32 delta_time = time_getDelta(); + f32 player_position[3]; s32 i; - sp34 = time_getDelta(); - player_getPosition(sp28); - for(i = 0; i < 3; i++){ - arg0[i] = (i == 1) ? sp28[i] : sp28[i] + ((sp28[i] - D_80392788[i]) * arg1) / sp34; + player_getPosition(player_position); + + for (i = 0; i < 3; i++) { + arg0[i] = (i == 1) ? player_position[i] : player_position[i] + ((player_position[i] - chFinalBossPlayerPosition[i]) * arg1) / delta_time; } } -bool fight_func_80386BEC(Actor *this, f32 arg1) { +bool chfinalboss_func_80386BEC(Actor *this, f32 arg1) { this->yaw_ideal = (f32) func_80329784(this); func_80328FB0(this, arg1); if ((this->yaw_ideal < (this->yaw + arg1)) && ((this->yaw - arg1) < this->yaw_ideal)) { @@ -394,10 +316,10 @@ bool fight_func_80386BEC(Actor *this, f32 arg1) { return FALSE; } -bool func_80386C68(Actor *this, f32 arg1) { +bool chfinalboss_func_80386C68(Actor *this, f32 arg1) { f32 sp2C[3]; - chjinjonator_8039129C(&sp2C); + chjinjonator_8039129C(sp2C); this->yaw_ideal = (f32) func_803297C8(this, sp2C); func_80328FB0(this, arg1); @@ -407,7 +329,7 @@ bool func_80386C68(Actor *this, f32 arg1) { return FALSE; } -void fight_func_80386CF8(Actor *actor) { +void chfinalboss_func_80386CF8(Actor *actor) { f32 sp4C[3]; f32 sp40[3]; f32 sp34[3]; @@ -430,10 +352,8 @@ void fight_func_80386CF8(Actor *actor) { ncStaticCamera_setPositionAndRotation(sp4C, sp40); } -void __chfinalboss_dropHealth(ActorMarker *arg0) { - Actor *actor; - - actor = marker_getActor(arg0); +void __chfinalboss_dropHealth(ActorMarker *marker) { + Actor *actor = marker_getActor(marker); bundle_setYaw(func_803297C8(actor, D_803916F4)); bundle_spawn_f32(0x14, actor->position); } @@ -453,55 +373,55 @@ void chfinalboss_spawnFlightPad(s32 arg0) { __chFinalBossFlightPadMarker = flight_pad->marker; } -void func_80386EC0(s32 arg0) { +void chfinalboss_func_80386EC0(s32 arg0) { ActorMarker *marker; marker = actor_spawnWithYaw_f32(0x38A, D_80392758, 0)->marker; func_8030E878(SFX_147_GRUNTY_SPELL_ATTACK_2, randf2(0.95f, 1.05f), 32000, D_80392758, 5000.0f, 12000.0f); - fight_func_803900DC(marker, D_80392758, D_80392768[1], D_80392768[2]); + chGreenBlast_func_803900DC(marker, D_80392758, D_80392768[1], D_80392768[2]); } -void func_80386F5C(ActorMarker * arg0, f32 arg1[3], f32 arg2, f32 arg3) { +void chfinalboss_func_80386F5C(ActorMarker * arg0, f32 arg1[3], f32 arg2, f32 arg3) { arg1[1] += 100.0f; D_80392758[0] = (f32) arg1[0]; D_80392758[1] = (f32) arg1[1]; D_80392758[2] = (f32) arg1[2]; D_80392768[1] = arg2; D_80392768[2] = arg3; - SPAWNQUEUE_ADD_1(func_80386EC0, arg0); + SPAWNQUEUE_ADD_1(chfinalboss_func_80386EC0, arg0); } -void func_80386FD8(s32 arg0) { +void chfinalboss_func_80386FD8(s32 arg0) { ActorMarker *marker; marker = actor_spawnWithYaw_f32(0x389, D_80392758, 0)->marker; func_8030E878(SFX_146_GRUNTY_SPELL_ATTACK_1, randf2(0.95f, 1.05f), 32000, D_80392758, 5000.0f, 12000.0f); - fight_func_8038FB84(marker, D_80392758, D_80392768, D_80392778); + chSpellFireball_func_8038FB84(marker, D_80392758, D_80392768, D_80392778); } -void func_80387074(s32 arg0) { +void chfinalboss_func_80387074(s32 arg0) { ActorMarker *marker; marker = actor_spawnWithYaw_f32(0x3AA, D_80392758, 0)->marker; func_8030E878(SFX_146_GRUNTY_SPELL_ATTACK_1, randf2(0.95f, 1.05f), 32000, D_80392758, 5000.0f, 12000.0f); - fight_func_8038FB84(marker, D_80392758, D_80392768, D_80392778); + chSpellFireball_func_8038FB84(marker, D_80392758, D_80392768, D_80392778); } -void func_80387110(ActorMarker *marker, f32 arg1[3], f32 arg2, s32 arg3) { +void chfinalboss_func_80387110(ActorMarker *marker, f32 arg1[3], f32 arg2, s32 arg3) { Actor *temp_v0; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 sp2C[3]; s32 i; temp_v0 = (Actor*) marker_getActor(marker); - local = (ActorLocal_fight_180 *)&temp_v0->local; + local = (ActorLocal_FinalBoss *)&temp_v0->local; D_80392758[0] = arg1[0]; D_80392758[1] = arg1[1]; D_80392758[2] = arg1[2]; D_80392758[1] += 80.0f; if (arg3 == 0) { - fight_func_80386B54(sp2C, arg2); + chfinalboss_func_80386B54(sp2C, arg2); } else if (local->mirror_phase5 == 0) { sp2C[0] = D_80391710[0]; sp2C[1] = D_80391710[1]; @@ -520,21 +440,21 @@ void func_80387110(ActorMarker *marker, f32 arg1[3], f32 arg2, s32 arg3) { D_80392768[i] = (sp2C[i] - arg1[i]) / arg2 - (D_80392778[i] * arg2 / 2); } if (arg3 == 0) { - SPAWNQUEUE_ADD_1(func_80386FD8, marker); + SPAWNQUEUE_ADD_1(chfinalboss_func_80386FD8, marker); } else{ - SPAWNQUEUE_ADD_1(func_80387074, marker); + SPAWNQUEUE_ADD_1(chfinalboss_func_80387074, marker); } } -void func_803872F8(Actor *arg0) { +void chfinalboss_func_803872F8(Actor *arg0) { f32 vec[3]; func_8034A174(arg0->marker->unk44, 0xA, vec); - func_80387110(arg0->marker, vec, 3.0f, 1); + chfinalboss_func_80387110(arg0->marker, vec, 3.0f, 1); } -s32 fight_func_80387340(Actor *this, f32 arg1) { +s32 chfinalboss_func_80387340(Actor *this, f32 arg1) { f32 sp24[3]; if (actor_animationIsAt(this, 0.50f) != 0) { @@ -545,13 +465,13 @@ s32 fight_func_80387340(Actor *this, f32 arg1) { sp24[1] = this->position_y; sp24[2] = this->position_z; } - func_80387110(this->marker, sp24, arg1, 0); + chfinalboss_func_80387110(this->marker, sp24, arg1, 0); return 1; } return 0; } -void func_803873DC(Actor *actor, f32 arg1, f32 arg2) { +void chfinalboss_func_803873DC(Actor *actor, f32 arg1, f32 arg2) { f32 vec[3]; ActorMarker *marker; @@ -564,11 +484,11 @@ void func_803873DC(Actor *actor, f32 arg1, f32 arg2) { vec[1] = actor->position[1]; vec[2] = actor->position[2]; } - func_80386F5C(actor->marker, vec, arg1, arg2); + chfinalboss_func_80386F5C(actor->marker, vec, arg1, arg2); } } -bool func_80387470(Actor *this, f32 arg1[3], f32 v_max, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { +bool chfinalboss_func_80387470(Actor *this, f32 arg1[3], f32 v_max, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { f32 dt; f32 diff[3]; TUPLE(f32, pos) temp; @@ -615,46 +535,46 @@ bool func_80387470(Actor *this, f32 arg1[3], f32 v_max, f32 arg3, f32 arg4, f32 return FALSE; } -void func_8038770C(Actor *actor) { - ActorLocal_fight_180 *local; +void chfinalboss_func_8038770C(Actor *actor) { + ActorLocal_FinalBoss *local; - local = (ActorLocal_fight_180 *)&actor->local; + local = (ActorLocal_FinalBoss *)&actor->local; local->hits = 0; local->unk2 = 0; local->unk3 = 0; local->unk4 = 0; - local->unk6 = 0; + local->player_hit_in_phase3 = 0; local->unkA = 0; } -void chfinalboss_setPhase(ActorMarker *this, u32 phase_id) +void chfinalboss_setPhase(ActorMarker *this, enum ch_finalboss_phase_e phase_id) { Actor *actor = marker_getActor(this); - ActorLocal_fight_180 *local = (ActorLocal_fight_180 *) &actor->local; + ActorLocal_FinalBoss *local = (ActorLocal_FinalBoss *) &actor->local; local->phase = phase_id; - func_8038770C(actor); - func_80386600(actor->marker, 0); - func_80386628(actor->marker, 1); + chfinalboss_func_8038770C(actor); + chfinalboss_func_80386600(actor->marker, 0); + chfinalboss_func_80386628(actor->marker, 1); switch(phase_id) { - case 0: + case FINALBOSS_PHASE_0_INTRO: subaddie_set_state_with_direction(actor, 1, 0.0001f, 1); timed_setStaticCameraToNode(0.0f, 0); timed_exitStaticCamera(2.0f); timed_setStaticCameraToNode(2.0f, 1); - timedFunc_set_1(2.0f, (GenFunction_1)func_8038B780, reinterpret_cast(s32, actor->marker)); - return; + timedFunc_set_1(2.0f, (GenFunction_1)chfinalboss_func_8038B780, reinterpret_cast(s32, actor->marker)); + break; - case 1: + case FINALBOSS_PHASE_1_BROOMSTICK: subaddie_set_state_with_direction(actor, 2, 0.0001f, 1); func_8030E878(SFX_EA_GRUNTY_LAUGH_1, randf2(0.95f, 1.05f), 32000, actor->position, 5000.0f, 12000.0f); local->unk5 = 0x0; actor->unk1C_x = D_803927D0[(local->unk5)][0]; actor->unk1C_y = D_803927D0[(local->unk5)][1]; actor->unk1C_z = D_803927D0[(local->unk5)][2]; - local->unk10 = 0; + local->player_hit_in_phase1 = 0; if (actor->unk44_31 == 0) { actor->unk44_31 = (u8)sfxsource_createSfxsourceAndReturnIndex(); @@ -663,9 +583,9 @@ void chfinalboss_setPhase(ActorMarker *this, u32 phase_id) sfxsource_playSfxAtVolume(actor->unk44_31, 1.0f); sfxsource_setSampleRate(actor->unk44_31, 32000); } - return; + break; - case 2: + case FINALBOSS_PHASE_2_AIR: subaddie_set_state_with_direction(actor, 0xE, 0.0001f, 1); local->unk5 = 0x8; actor->unk1C_x = D_803927D0[(local->unk5)][0]; @@ -675,42 +595,43 @@ void chfinalboss_setPhase(ActorMarker *this, u32 phase_id) return; - case 3: + case FINALBOSS_PHASE_3_FLIGHT: subaddie_set_state_with_direction(actor, 0x15, 0.0001f, 1); local->unk5 = 0xC; actor->unk1C_x = D_803927D0[(local->unk5)][0]; actor->unk1C_y = D_803927D0[(local->unk5)][1]; actor->unk1C_z = D_803927D0[(local->unk5)][2]; actor->lifetime_value = 15.0f; - return; + break; - case 4: + case FINALBOSS_PHASE_4_JINJOS: subaddie_set_state_with_direction(actor, 0x1C, 0.0001f, 1); local->unk5 = 0x10; actor->unk1C_x = D_803927D0[(local->unk5)][0]; actor->unk1C_y = D_803927D0[(local->unk5)][1]; actor->unk1C_z = D_803927D0[(local->unk5)][2]; - return; + break; - case 5: - func_80386628(actor->marker, 0); + case FINALBOSS_PHASE_5_JINJONATOR: + chfinalboss_func_80386628(actor->marker, 0); chfinalboss_phase5_setState(actor, 0x24); actor_loopAnimation(actor); + break; } } -void func_80387ACC(Actor *arg0, f32 arg1) { +void chfinalboss_func_80387ACC(Actor *arg0, f32 arg1) { func_80328CA8(arg0, 0); func_80328FF0(arg0, arg1); } -void func_80387B00(Actor *this) { - ActorLocal_fight_180 *local; +void chfinalboss_func_80387B00(Actor *this) { + ActorLocal_FinalBoss *local; f32 sp28[3]; - local = (ActorLocal_fight_180 *) this->local; + local = (ActorLocal_FinalBoss *) this->local; - fight_func_80386B54(sp28, 0.80f); + chfinalboss_func_80386B54(sp28, 0.80f); this->unk1C_x = sp28[0]; this->unk1C_y = sp28[1]; this->unk1C_z = sp28[2]; @@ -735,14 +656,14 @@ void func_80387B00(Actor *this) { local->unk20 = local->unk14; } -void func_80387BFC(Actor *this, f32 arg1) { - ActorLocal_fight_180 *local; +void chfinalboss_func_80387BFC(Actor *this, f32 arg1) { + ActorLocal_FinalBoss *local; f32 sp58; f32 sp54; f32 sp50; f32 sp44[3]; - local = (ActorLocal_fight_180 *) this->local; + local = (ActorLocal_FinalBoss *) this->local; sp58 = local->unk14 * local->unk14; sp54 = local->unk20 * local->unk20; sp50 = local->unk18 - local->unk1C; @@ -761,11 +682,11 @@ void func_80387BFC(Actor *this, f32 arg1) { sp44[2] *= this->actor_specific_1_f; } -void fight_func_80387D4C(Actor *actor) { - ActorLocal_fight_180 *local; +void chfinalboss_func_80387D4C(Actor *actor) { + ActorLocal_FinalBoss *local; f32 sp20[3]; - local = (ActorLocal_fight_180 *) actor->local; + local = (ActorLocal_FinalBoss *) actor->local; actor->position[0] = actor->unk1C[0] + actor->velocity[0] * local->unk20; actor->position[2] = actor->unk1C[2] + actor->velocity[2] * local->unk20; @@ -781,15 +702,15 @@ void fight_func_80387D4C(Actor *actor) { sp20[2] = sp20[2] * actor->actor_specific_1_f; } -void func_80387E1C(Actor *this, f32 arg1[3]) { - ActorLocal_fight_180 *local; +void chfinalboss_func_80387E1C(Actor *this, f32 arg1[3]) { + ActorLocal_FinalBoss *local; f32 dz; f32 distance; f32 dx; f32 min_distance; s32 i; - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; min_distance = 1e+8f; for(i = 0; i < 8; i++){ dx = D_803927D0[i][0] - this->position[0]; @@ -807,12 +728,12 @@ void func_80387E1C(Actor *this, f32 arg1[3]) { -void func_80387F70(Actor *actor, f32 *arg1, f32 arg2) { - ActorLocal_fight_180 *temp_v0; +void chfinalboss_func_80387F70(Actor *actor, f32 *arg1, f32 arg2) { + ActorLocal_FinalBoss *temp_v0; f32 vec[3]; f32 playerPos[3]; - temp_v0 = (ActorLocal_fight_180 *) &actor->local; + temp_v0 = (ActorLocal_FinalBoss *) &actor->local; player_getPosition(playerPos); vec[0] = D_803927D0[temp_v0->unk5][0] - playerPos[0]; vec[1] = D_803927D0[temp_v0->unk5][1] - playerPos[1]; @@ -823,41 +744,41 @@ void func_80387F70(Actor *actor, f32 *arg1, f32 arg2) { arg1[2] = D_803927D0[temp_v0->unk5][2] + (arg2 * vec[2]); } -void func_803880A0(Actor *actor, f32 arg1) { +void chfinalboss_func_803880A0(Actor *actor, f32 arg1) { actor->velocity[2] = arg1; actor->velocity[1] = 0.0f; actor->velocity[0] = 0.0f; ml_vec3f_yaw_rotate_copy(actor->velocity, actor->velocity, actor->yaw); } -void func_803880E0(ActorMarker *marker, enum asset_e text_id, s32 arg2) { +void chfinalboss_func_803880E0(ActorMarker *marker, enum asset_e text_id, s32 arg2) { chfinalboss_phase1_setState(marker_getActor(marker), 0xC); } -void func_80388110(ActorMarker *marker, enum asset_e text_id, s32 arg2) { +void chfinalboss_func_80388110(ActorMarker *marker, enum asset_e text_id, s32 arg2) { Actor *actor; - ActorLocal_fight_180 *actorLocal; + ActorLocal_FinalBoss *actorLocal; actor = marker_getActor(marker); - actorLocal = (ActorLocal_fight_180 *)&actor->local; + actorLocal = (ActorLocal_FinalBoss *)&actor->local; ncStaticCamera_exit(); - gcdialog_showText(randi2(0, 5) + 0x1101, 4, NULL, actor->marker, func_803880E0, NULL); + gcdialog_showText(randi2(0, 5) + 0x1101, 4, NULL, actor->marker, chfinalboss_func_803880E0, NULL); actorLocal->unk9 = (u8)1; } void chfinalboss_phase1_setState(Actor *this, s32 next_state) { - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; s32 sp40; f32 sp3C; f32 temp_f12; - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp40 = globalTimer_getTime(); sp3C = animctrl_getAnimTimer(this->animctrl); - local->phase = 1; + local->phase = FINALBOSS_PHASE_1_BROOMSTICK; subaddie_set_state_with_direction(this, next_state, 0.0001f, 1); actor_loopAnimation(this); - func_80386600(this->marker, 0); + chfinalboss_func_80386600(this->marker, 0); if (next_state != 9) { if (func_8030E3FC(this->unk44_31)) { func_8030E394(this->unk44_31); @@ -867,7 +788,7 @@ void chfinalboss_phase1_setState(Actor *this, s32 next_state) { } switch (next_state) { case 2: - func_80387E1C(this, this->unk1C); + chfinalboss_func_80387E1C(this, this->unk1C); break; case 5: if ((sp40 & 1) == 0) { @@ -880,10 +801,10 @@ void chfinalboss_phase1_setState(Actor *this, s32 next_state) { break; case 6: local = local; - func_80386600(this->marker, 1); + chfinalboss_func_80386600(this->marker, 1); func_80324D54(0.4f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f); this->actor_specific_1_f = 0.0f; - func_80387B00(this); + chfinalboss_func_80387B00(this); local->unkA = 0; break; case 7: @@ -891,7 +812,7 @@ void chfinalboss_phase1_setState(Actor *this, s32 next_state) { local->unk14 = (local->unk14 < 2700.0f) ? local->unk14 : 2700.0f; local->unk18 = 400.0f; local->unk28 = (-this->actor_specific_1_f * this->actor_specific_1_f) / (2.0 * local->unk14); - func_80386600(this->marker, 1); + chfinalboss_func_80386600(this->marker, 1); animctrl_setAnimTimer(this->animctrl, sp3C); break; case 8: @@ -913,14 +834,14 @@ void chfinalboss_phase1_setState(Actor *this, s32 next_state) { func_8030E878(SFX_131_GRUNTY_WEEEGH, randf2(0.95f, 1.05f), 32000, this->position, 5000.0f, 12000.0f); if ((s32) local->hits >= 4) { SPAWNQUEUE_ADD_1(__chfinalboss_dropHealth, this->marker); - func_80388110(this->marker, 0, 0); + chfinalboss_func_80388110(this->marker, 0, 0); } break; } } -void func_8038856C(Actor *actor, f32 *arg1) { +void chfinalboss_func_8038856C(Actor *actor, f32 *arg1) { f32 vec[3]; ActorMarker *marker; @@ -932,17 +853,17 @@ void func_8038856C(Actor *actor, f32 *arg1) { vec[1] = actor->position[1]; vec[2] = actor->position[2]; } - func_8038679C(vec, 2, arg1); + chfinalboss_createSmokeParticles(vec, 2, arg1); } -void func_803885DC(Actor *this) { +void chfinalboss_func_803885DC(Actor *this) { s32 sp24 = globalTimer_getTime(); if (func_8030E3FC(this->unk44_31) == 0) { func_8030E2C4(this->unk44_31); } if (((sp24 & 7) == 0) && (randf() < 0.5)) { - func_8038856C(this, D_80391728); + chfinalboss_func_8038856C(this, D_80391728); } if ((actor_animationIsAt(this, 0.30f) != 0) || (actor_animationIsAt(this, 0.78f) != 0)) { FUNC_8030E8B4(SFX_1E_HITTING_AN_ENEMY_2, 1.0f, 25000, this->position, 2000, 10000); @@ -955,7 +876,7 @@ void func_803885DC(Actor *this) { } } -s32 func_8038871C(Actor *arg0, f32 arg1, f32 arg2) { +s32 chfinalboss_func_8038871C(Actor *arg0, f32 arg1, f32 arg2) { if (arg0->position[1] + arg2 > arg1) { arg0->position[1] = arg1; return 1; @@ -969,22 +890,22 @@ s32 func_8038871C(Actor *arg0, f32 arg1, f32 arg2) { void chfinalboss_phase1_update(ActorMarker *marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 sp54; f32 sp50; s32 var_a0; f32 sp40[3]; this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp54 = time_getDelta(); switch (this->state) { case 2: - func_80386600(this->marker, 0); - func_803869BC(this); - func_80387ACC(this, 60.0f * sp54); - func_80387F70(this, this->unk1C, 950.0f); - if (func_80387470(this, this->unk1C, 1000.0f, 1800.0f, 200.0f, 1000.0f, 600.0f)) { + chfinalboss_func_80386600(this->marker, 0); + chfinalboss_spawnBroomstickGlowParticles(this); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + chfinalboss_func_80387F70(this, this->unk1C, 950.0f); + if (chfinalboss_func_80387470(this, this->unk1C, 1000.0f, 1800.0f, 200.0f, 1000.0f, 600.0f)) { chfinalboss_phase1_setState(this, 3); this->unk1C[0] = D_803927D0[local->unk5][0]; this->unk1C[1] = D_803927D0[local->unk5][1]; @@ -992,25 +913,25 @@ void chfinalboss_phase1_update(ActorMarker *marker) { } break; case 3: - func_80386600(this->marker, 0); - func_803869BC(this); + chfinalboss_func_80386600(this->marker, 0); + chfinalboss_spawnBroomstickGlowParticles(this); sp50 = ml_map_f(ml_distance_vec3f(this->position, this->unk1C), 300.0f, 1000.0f, 100.0f, 1000.0f); - func_80387ACC(this, 60.0f * sp54); - if (func_80387470(this, this->unk1C, sp50, 1800.0f, 200.0f, 500.0f, 300.0f)) { + chfinalboss_func_80387ACC(this, 60.0f * sp54); + if (chfinalboss_func_80387470(this, this->unk1C, sp50, 1800.0f, 200.0f, 500.0f, 300.0f)) { chfinalboss_phase1_setState(this, 4); } break; case 4: - func_80386600(this->marker, 0); - func_803869BC(this); - func_80387ACC(this, 60.0f * sp54); - if (fight_func_80386BEC(this, 240.0f * sp54)) { + chfinalboss_func_80386600(this->marker, 0); + chfinalboss_spawnBroomstickGlowParticles(this); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + if (chfinalboss_func_80386BEC(this, 240.0f * sp54)) { chfinalboss_phase1_setState(this, 5); - func_80386654(1.0f, fight_D_80391380, fight_D_80391390); + chfinalboss_func_80386654(1.0f, fight_D_80391380, fight_D_80391390); } break; case 5: - func_80387B00(this); + chfinalboss_func_80387B00(this); this->lifetime_value += sp54; if (this->lifetime_value < 0.3333333333333333) { this->actor_specific_1_f += 3300.0 * sp54; @@ -1018,28 +939,28 @@ void chfinalboss_phase1_update(ActorMarker *marker) { this->actor_specific_1_f -= 3300.0 * sp54; } local->unk20 += this->actor_specific_1_f * sp54; - func_80387BFC(this, 45.0f * sp54); + chfinalboss_func_80387BFC(this, 45.0f * sp54); func_80328FB0(this, 30.0f * sp54); if (this->lifetime_value > 1.0) { chfinalboss_phase1_setState(this, 6); } break; case 6: - func_803869BC(this); + chfinalboss_spawnBroomstickGlowParticles(this); if (local->unk4 >= (local->hits + 1)) { this->actor_specific_1_f += (D_80391738[local->hits] * sp54) * 0.66; } else { this->actor_specific_1_f += D_80391738[local->hits] * sp54; } local->unk20 -= this->actor_specific_1_f * sp54; - func_80387BFC(this, 180.0f * sp54); + chfinalboss_func_80387BFC(this, 180.0f * sp54); func_80328FB0(this, 30.0f * sp54); if ((local->unkA == 0) && (local->unk20 < (local->unk14 * 0.65))) { local->unkA = 1U; FUNC_8030E8B4(SFX_C4_TWINKLY_MUNCHER_GRR, 0.6f, 28000, this->position, 2000, 10000); } if ((local->unk14 * 0.75) < local->unk20) { - fight_func_80386B54(sp40, 0); + chfinalboss_func_80386B54(sp40, 0); this->unk1C[0] = sp40[0]; this->unk1C[1] = sp40[1]; this->unk1C[2] = sp40[2]; @@ -1064,73 +985,73 @@ void chfinalboss_phase1_update(ActorMarker *marker) { } break; case 7: - func_803869BC(this); + chfinalboss_spawnBroomstickGlowParticles(this); this->actor_specific_1_f = this->actor_specific_1_f + local->unk28 * sp54; local->unk20 = local->unk20 - this->actor_specific_1_f * sp54; - func_80387BFC(this, 180.0f * sp54); + chfinalboss_func_80387BFC(this, 180.0f * sp54); func_80328FB0(this, 30.0f * sp54); if (this->actor_specific_1_f < 0) { chfinalboss_phase1_setState(this, 4); - func_80386654(1.5f, fight_D_80391390, fight_D_80391380); + chfinalboss_func_80386654(1.5f, fight_D_80391390, fight_D_80391380); } break; case 8: - func_803885DC(this); - func_803869BC(this); + chfinalboss_func_803885DC(this); + chfinalboss_spawnBroomstickGlowParticles(this); this->actor_specific_1_f = this->actor_specific_1_f + local->unk28 * sp54; local->unk20 = local->unk20 - this->actor_specific_1_f * sp54; - func_80387ACC(this, 60.0f * sp54); - fight_func_80387D4C(this); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + chfinalboss_func_80387D4C(this); func_80328FB0(this, 30.0f * sp54); if (this->actor_specific_1_f < 0) { chfinalboss_phase1_setState(this, 9); - func_80386654(2.0f, fight_D_80391390, fight_D_80391380); + chfinalboss_func_80386654(2.0f, fight_D_80391390, fight_D_80391380); this->lifetime_value = 4.0f; } break; case 9: - func_803885DC(this); + chfinalboss_func_803885DC(this); if (this->lifetime_value > 0.0) { this->lifetime_value -= sp54; } else{ if (actor_animationIsAt(this, 0.9999f)) { chfinalboss_phase1_setState(this, 2); - func_803880A0(this, 2000.0f); + chfinalboss_func_803880A0(this, 2000.0f); } } break; case 10: - func_80387ACC(this, 60.0f * sp54); - fight_func_80386BEC(this, 30.0f); - func_8038871C(this, 460.0f, 400.0f * sp54); - fight_func_80387340(this, 1.0f); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + chfinalboss_func_80386BEC(this, 30.0f); + chfinalboss_func_8038871C(this, 460.0f, 400.0f * sp54); + chfinalboss_func_80387340(this, 1.0f); if (actor_animationIsAt(this, 0.9999f)) { chfinalboss_phase1_setState(this, 2); - func_803880A0(this, 2000.0f); + chfinalboss_func_803880A0(this, 2000.0f); } break; case 11: - func_80387ACC(this, 60.0f * sp54); - fight_func_80386BEC(this, 30.0f); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + chfinalboss_func_80386BEC(this, 30.0f); if (local->unk9) { - func_8038871C(this, 460.0f, 400.0f * sp54); + chfinalboss_func_8038871C(this, 460.0f, 400.0f * sp54); } break; case 12: - func_80387ACC(this, 60.0f * sp54); - fight_func_80386BEC(this, 30.0f); - func_8038871C(this, 460.0f, 400.0f * sp54); - func_803873DC(this, 600.0f, 2000.0f); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + chfinalboss_func_80386BEC(this, 30.0f); + chfinalboss_func_8038871C(this, 460.0f, 400.0f * sp54); + chfinalboss_func_803873DC(this, 600.0f, 2000.0f); if (actor_animationIsAt(this, 0.9999f)) { func_8030DA44(this->unk44_31); this->unk44_31 = 0U; - chfinalboss_setPhase(this->marker, 2); + chfinalboss_setPhase(this->marker, FINALBOSS_PHASE_2_AIR); } break; case 13: - func_80387ACC(this, 60.0f * sp54); - fight_func_80386BEC(this, 30.0f); + chfinalboss_func_80387ACC(this, 60.0f * sp54); + chfinalboss_func_80386BEC(this, 30.0f); if (actor_animationIsAt(this, 0.9999f)) { if (local->hits >= 4) { chfinalboss_phase1_setState(this, 0xB); @@ -1144,10 +1065,10 @@ void chfinalboss_phase1_update(ActorMarker *marker) { } void chfinalboss_phase2_setState(Actor *this, s32 arg1){ - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; s32 sp28; - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp28 = globalTimer_getTime(); local->phase = 2; subaddie_set_state_with_direction(this, arg1, 0.0001f, 1); @@ -1184,32 +1105,32 @@ void chfinalboss_phase2_endTextCallback(ActorMarker *marker, enum asset_e text_i void chfinalboss_phase2_update(ActorMarker *marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 sp4C; s32 sp48; this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp4C = time_getDelta(); sp48 = local->hits; switch (this->state) { case 14: - func_803869BC(this); - func_80387ACC(this, 30.0f * sp4C); - if (func_80387470(this, this->unk1C, ml_map_f(ml_distance_vec3f(this->position, this->unk1C), 70.0f, 1000.0f, 100.0f, D_80391758[sp48]), D_80391758[sp48] * 2, 160.0f, 500.0f, 70.0f)) { + chfinalboss_spawnBroomstickGlowParticles(this); + chfinalboss_func_80387ACC(this, 30.0f * sp4C); + if (chfinalboss_func_80387470(this, this->unk1C, ml_map_f(ml_distance_vec3f(this->position, this->unk1C), 70.0f, 1000.0f, 100.0f, D_80391758[sp48]), D_80391758[sp48] * 2, 160.0f, 500.0f, 70.0f)) { local->unkA = 1; chfinalboss_phase2_setState(this, 0xF); } break; case 15: - if (fight_func_80386BEC(this, 9.0f)) { + if (chfinalboss_func_80386BEC(this, 9.0f)) { chfinalboss_phase2_setState(this, 0x10); } break; case 16: - fight_func_80386BEC(this, 3.0f); - fight_func_80387340(this, 1.3f); + chfinalboss_func_80386BEC(this, 3.0f); + chfinalboss_func_80387340(this, 1.3f); if (actor_animationIsAt(this, 0.9999f)) { chfinalboss_phase2_setState(this, 0x12); local->unk3++; @@ -1223,19 +1144,19 @@ void chfinalboss_phase2_update(ActorMarker *marker) { } break; case 17: - fight_func_80386BEC(this, 3.0f); - func_803873DC(this, 1200.0f, 2400.0f); + chfinalboss_func_80386BEC(this, 3.0f); + chfinalboss_func_803873DC(this, 1200.0f, 2400.0f); if (actor_animationIsAt(this, 0.9999f)) { - chfinalboss_setPhase(this->marker, 3); + chfinalboss_setPhase(this->marker, FINALBOSS_PHASE_3_FLIGHT); } break; case 18: - fight_func_80386BEC(this, 3.0f); + chfinalboss_func_80386BEC(this, 3.0f); if (this->lifetime_value > 0.0) { this->lifetime_value = this->lifetime_value - sp4C; break; } - if (fight_func_80386BEC(this, 3.0f)) { + if (chfinalboss_func_80386BEC(this, 3.0f)) { chfinalboss_phase2_setState(this, 0x10); } break; @@ -1253,48 +1174,48 @@ void chfinalboss_phase2_update(ActorMarker *marker) { } else{ chfinalboss_phase2_setState(this, 0xE); - func_803880A0(this, 2000.0f); + chfinalboss_func_803880A0(this, 2000.0f); } } break; } } -void __chfinalboss_spawnStatue(enum bossjinjo_e statue_id) { +void __chfinalboss_spawnStatue(enum ch_bossjinjo_e statue_id) { s32 pad24_A; f32* D_80392750_ptr = &D_80392750; Actor *sp1C; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; - local = (ActorLocal_fight_180 *)&actorArray_findActorFromActorId(ACTOR_38B_GRUNTILDA_FINAL_BOSS)->local; + local = (ActorLocal_FinalBoss *)&actorArray_findActorFromActorId(ACTOR_38B_GRUNTILDA_FINAL_BOSS)->local; switch (statue_id) { - case BOSSJINJO_ORANGE: + case BOSSJINJO_1_ORANGE: sp1C = actor_spawnWithYaw_f32(ACTOR_3A2_JINJO_STATUE_BASE, D_80391768, 135); __chFinalBossJinjoStatueMarker[0] = sp1C->marker; break; - case BOSSJINJO_GREEN: + case BOSSJINJO_2_GREEN: sp1C = actor_spawnWithYaw_f32(ACTOR_3A2_JINJO_STATUE_BASE, D_80391774, 45); __chFinalBossJinjoStatueMarker[1] = sp1C->marker; break; - case BOSSJINJO_PINK: + case BOSSJINJO_3_PINK: sp1C = actor_spawnWithYaw_f32(ACTOR_3A2_JINJO_STATUE_BASE, D_80391780, 315); __chFinalBossJinjoStatueMarker[2] = sp1C->marker; break; - case BOSSJINJO_YELLOW: + case BOSSJINJO_4_YELLOW: sp1C = actor_spawnWithYaw_f32(ACTOR_3A2_JINJO_STATUE_BASE, D_8039178C, 225); __chFinalBossJinjoStatueMarker[3] = sp1C->marker; break; - case BOSSJINJO_JINJONATOR: + case BOSSJINJO_5_JINJONATOR: *D_80392750_ptr = ((local->mirror_phase5) ? 0.0f : 180.0f); sp1C = actor_spawnWithYaw_f32(ACTOR_3A9_JINJONATOR_STATUE_BASE, D_80391798, (s32)*D_80392750_ptr); break; } - sp1C->lifetime_value = (statue_id == BOSSJINJO_JINJONATOR) ? 5.25f : 1.54f; + sp1C->lifetime_value = (statue_id == BOSSJINJO_5_JINJONATOR) ? 5.25f : 1.54f; sp1C->unkF4_8 = statue_id; } @@ -1320,14 +1241,14 @@ void chfinalboss_phase3_endTextCallback(ActorMarker *marker, enum asset_e text_i actor = marker_getActor(marker); ncStaticCamera_exit(); func_80324E38(0, 0); - chfinalboss_setPhase(actor->marker, 4); + chfinalboss_setPhase(actor->marker, FINALBOSS_PHASE_4_JINJOS); } void chfinalboss_phase3_setState(Actor *this, s32 arg1) { - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; s32 i; - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; local->phase = 3; subaddie_set_state_with_direction(this, arg1, 0.0001f, 1); switch (arg1) { @@ -1351,7 +1272,7 @@ void chfinalboss_phase3_setState(Actor *this, s32 arg1) { FUNC_8030E8B4(SFX_131_GRUNTY_WEEEGH, 1.0f, 32000, this->position, 5000, 12000); break; case 26: - fight_func_80386CF8(this); + chfinalboss_func_80386CF8(this); func_80324E38(0.0f, 1); gcdialog_showText(randi2(0, 5) + 0x112C, 0xA8, NULL, this->marker, chfinalboss_phase3_endTextCallback, NULL); break; @@ -1364,7 +1285,7 @@ void chfinalboss_dropHealth(ActorMarker *marker) { void chfinalboss_phase3_update(ActorMarker *marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 sp3C; s32 sp38; f32 sp34; @@ -1375,13 +1296,13 @@ void chfinalboss_phase3_update(ActorMarker *marker) { u8 temp_v0_2; this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp3C = time_getDelta(); sp38 = local->hits; sp34 = animctrl_getAnimTimer(this->animctrl); switch (this->state) { case 21: - func_803869BC(this); + chfinalboss_spawnBroomstickGlowParticles(this); this->lifetime_value -= sp3C; if (this->lifetime_value < 0.0) { if (local->unkA) { @@ -1393,7 +1314,7 @@ void chfinalboss_phase3_update(ActorMarker *marker) { local->unkA = NOT(local->unkA); break; } - if (func_80387470(this, this->unk1C, D_803917A4[sp38], D_803917A4[sp38], 120.0f, 520.0f, 350.0f)) { + if (chfinalboss_func_80387470(this, this->unk1C, D_803917A4[sp38], D_803917A4[sp38], 120.0f, 520.0f, 350.0f)) { chfinalboss_phase3_setState(this, 0x15); if (local->unkB == 0) { local->unkB = 1; @@ -1409,13 +1330,13 @@ void chfinalboss_phase3_update(ActorMarker *marker) { } break; case 23: - if (fight_func_80386BEC(this, 9.0f) && (func_80297C6C() != 3)) { + if (chfinalboss_func_80386BEC(this, 9.0f) && (func_80297C6C() != 3)) { chfinalboss_phase3_setState(this, 0x18); } break; case 24: - fight_func_80386BEC(this, 3.0f); - if (fight_func_80387340(this, 1.3f)) { + chfinalboss_func_80386BEC(this, 3.0f); + if (chfinalboss_func_80387340(this, 1.3f)) { local->unk3++; } if (actor_animationIsAt(this, 0.9999f)) { @@ -1441,9 +1362,9 @@ void chfinalboss_phase3_update(ActorMarker *marker) { } if ((0.1 < sp34) && (sp34 < 0.8)) { func_8034A174(this->marker->unk44, 8, D_803928B8); - func_80386934(D_803928B8, 0x716); + chfinalboss_createSingleSpriteParticle(D_803928B8, 0x716); func_8034A174(this->marker->unk44, 9, D_803928B8); - func_80386934(D_803928B8, 0x716); + chfinalboss_createSingleSpriteParticle(D_803928B8, 0x716); } if (actor_animationIsAt(this, 0.38f) ) { chfinalboss_spawnSpellBarrier(this->marker); @@ -1460,13 +1381,13 @@ void chfinalboss_phase3_update(ActorMarker *marker) { } -void func_80389F54(void) { +void chfinalboss_func_80389F54(void) { fileProgressFlag_set(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE); - D_803927C4 = (u8)0; + sFinalBossJinjoStatueActivated = (u8)0; } void chfinalboss_phase4_setState(Actor *this, s32 arg1) { - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 sp48; f32 sp3C[3]; // TODO this union is only needed to avoid making D_803928C4 a function static. @@ -1478,7 +1399,7 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) { s32 *D_803928C4_ptr; } iter; - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp48 = animctrl_getAnimTimer(this->animctrl); local->phase = 4; subaddie_set_state_with_direction(this, arg1, 0.0001f, 1); @@ -1493,25 +1414,25 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) { case 30: if ((local->unk3 == 2) && (local->unkA == 0)) { iter.D_803928C4_ptr = &D_803928C4; - D_803927C8 = 1; + chFinalBossJinjoSpawned = TRUE; gcdialog_showText(randi2(0, 5) + 0x1136, 4, NULL, NULL, NULL, NULL); if ( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) ) { local->unkA = 1U; - D_803927C4 = 1; + sFinalBossJinjoStatueActivated = 1; func_80324E38(0.0f, 1); - timedFunc_set_1(0.0f, chfinalboss_spawnStatue, BOSSJINJO_ORANGE); + timedFunc_set_1(0.0f, chfinalboss_spawnStatue, BOSSJINJO_1_ORANGE); timed_setStaticCameraToNode(0.0f, 4); timed_exitStaticCamera(2.2f); - timedFunc_set_1(2.2f, chfinalboss_spawnStatue, BOSSJINJO_GREEN); + timedFunc_set_1(2.2f, chfinalboss_spawnStatue, BOSSJINJO_2_GREEN); timed_setStaticCameraToNode(2.2f, 5); timed_exitStaticCamera(4.4f); - timedFunc_set_1(4.4f, chfinalboss_spawnStatue, BOSSJINJO_PINK); + timedFunc_set_1(4.4f, chfinalboss_spawnStatue, BOSSJINJO_3_PINK); timed_setStaticCameraToNode(4.4f, 6); timed_exitStaticCamera(6.6f); - timedFunc_set_1(6.6f, chfinalboss_spawnStatue, BOSSJINJO_YELLOW); + timedFunc_set_1(6.6f, chfinalboss_spawnStatue, BOSSJINJO_4_YELLOW); timed_setStaticCameraToNode(6.6f, 7); timed_exitStaticCamera(8.8f); - timedFunc_set_0(8.8f, func_80389F54); + timedFunc_set_0(8.8f, chfinalboss_func_80389F54); func_80324E38(8.8f, 0); break; } @@ -1531,11 +1452,11 @@ void chfinalboss_phase4_setState(Actor *this, s32 arg1) { timed_playSfx(0.6f, SFX_61_CARTOONY_FALL, 1.0f, 32000); SPAWNQUEUE_ADD_1(__chfinalboss_dropHealth, this->marker); FUNC_8030E624(SFX_D9_WOODEN_CRATE_BREAKING_1, 1.0f, 32000); - func_80386628(this->marker, 0); - chfinalboss_spawnBroomstickParticles(this->position, ASSET_552_MODEL_BROOMSTICK_PIECE_HEAD, 1); - chfinalboss_spawnBroomstickParticles(this->position, ASSET_553_MODEL_BROOMSTICK_PIECE_SHORT, 12); - chfinalboss_spawnBroomstickParticles(this->position, ASSET_554_MODEL_BROOMSTICK_PIECE_LONG, 20); - chfinalboss_spawnBroomstickParticles(this->position, ASSET_555_MODEL_BROOMSTICK_PIECE_EYE, 2); + chfinalboss_func_80386628(this->marker, 0); + chfinalboss_createBroomstickParticles(this->position, ASSET_552_MODEL_BROOMSTICK_PIECE_HEAD, 1); + chfinalboss_createBroomstickParticles(this->position, ASSET_553_MODEL_BROOMSTICK_PIECE_SHORT, 12); + chfinalboss_createBroomstickParticles(this->position, ASSET_554_MODEL_BROOMSTICK_PIECE_LONG, 20); + chfinalboss_createBroomstickParticles(this->position, ASSET_555_MODEL_BROOMSTICK_PIECE_EYE, 2); sp3C[0] = D_803927D0[local->mirror_phase5 + 0x11][0] - this->position[0]; sp3C[1] = D_803927D0[local->mirror_phase5 + 0x11][1] - this->position[1]; sp3C[2] = D_803927D0[local->mirror_phase5 + 0x11][2] - this->position[2]; @@ -1605,7 +1526,7 @@ ActorMarker *chfinalboss_findCollidingJinjo(Actor *this, f32 arg1) { void chfinalboss_phase4_update(ActorMarker *marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 sp74; s32 sp70; ActorMarker *sp6C; @@ -1617,7 +1538,7 @@ void chfinalboss_phase4_update(ActorMarker *marker) { u8 var_v1; this = marker_getActor(marker); - local = (ActorLocal_fight_180 *) &this->local; + local = (ActorLocal_FinalBoss *) &this->local; sp74 = time_getDelta(); sp70 = local->hits; sp6C = chfinalboss_findCollidingJinjo(this, func_8033229C(this->marker)); @@ -1625,7 +1546,7 @@ void chfinalboss_phase4_update(ActorMarker *marker) { chbossjinjo_attack(sp6C); if (!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT)) { fileProgressFlag_set(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT, TRUE); - D_803927C4 = 0; + sFinalBossJinjoStatueActivated = 0; timed_exitStaticCamera(1.0f); func_80324E38(1.0f, 0); } @@ -1649,22 +1570,22 @@ void chfinalboss_phase4_update(ActorMarker *marker) { } switch (this->state) { case 28: - func_803869BC(this); - if (func_80387470(this, this->unk1C, 500.0f, 1000.0f, 140.0f, 500.0f, 120.0f)) { + chfinalboss_spawnBroomstickGlowParticles(this); + if (chfinalboss_func_80387470(this, this->unk1C, 500.0f, 1000.0f, 140.0f, 500.0f, 120.0f)) { chfinalboss_phase4_setState(this, 0x1D); } break; case 29: - if ((fight_func_80386BEC(this, 9.0f)) && (func_80297C6C() != 3) && (D_803927C4 == 0)) { + if ((chfinalboss_func_80386BEC(this, 9.0f)) && (func_80297C6C() != 3) && (sFinalBossJinjoStatueActivated == 0)) { chfinalboss_phase4_setState(this, 0x1E); } break; case 30: - fight_func_80386BEC(this, 3.0f); - if (D_803927C4 == 0) { - fight_func_80387340(this, 1.0f); + chfinalboss_func_80386BEC(this, 3.0f); + if (sFinalBossJinjoStatueActivated == 0) { + chfinalboss_func_80387340(this, 1.0f); if (actor_animationIsAt(this, 0.9999f)) { local->unk3++; chfinalboss_phase4_setState(this, 0x1F); @@ -1676,12 +1597,12 @@ void chfinalboss_phase4_update(ActorMarker *marker) { break; case 31: - fight_func_80386BEC(this, 3.0f); + chfinalboss_func_80386BEC(this, 3.0f); if (this->lifetime_value > 0.0) { this->lifetime_value -= sp74; break; } - if (fight_func_80386BEC(this, 3.0f)) { + if (chfinalboss_func_80386BEC(this, 3.0f)) { chfinalboss_phase4_setState(this, 0x1E); } break; @@ -1693,7 +1614,7 @@ void chfinalboss_phase4_update(ActorMarker *marker) { break; case 33: - fight_func_80386BEC(this, 3.0f); + chfinalboss_func_80386BEC(this, 3.0f); sp5C[0] = this->position[0] + (this->velocity[0] * sp74); sp5C[1] = this->position[1] + (this->velocity[1] * sp74); sp5C[2] = this->position[2] + (this->velocity[2] * sp74); @@ -1735,7 +1656,7 @@ void chfinalboss_phase4_update(ActorMarker *marker) { else if (actor_animationIsAt(this, 0.9999f)) { timed_exitStaticCamera(0.0f); func_80324E38(0.0f, 0); - chfinalboss_setPhase(this->marker, 5); + chfinalboss_setPhase(this->marker, FINALBOSS_PHASE_5_JINJONATOR); func_8030DA44(this->unk44_31); this->unk44_31 = 0U; } @@ -1743,20 +1664,19 @@ void chfinalboss_phase4_update(ActorMarker *marker) { } } -void subaddie_set_state_with_direction(Actor *, s32, f32, s32); -void func_8038AC50(ActorMarker *arg0) { +void chfinalboss_func_8038AC50(ActorMarker *arg0) { subaddie_set_state_with_direction(marker_getActor(arg0), 0x24, 0.0001f, 1); } void chfinalboss_phase5_setState(Actor *this, s32 next_state) { - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; s32 sp28; u8 temp_v0; u8 temp_v0_2; - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; sp28 = 0x12; local->phase = 5; subaddie_set_state_with_direction(this, next_state, 0.0001f, 1); @@ -1770,12 +1690,12 @@ void chfinalboss_phase5_setState(Actor *this, s32 next_state) { timedFunc_set_1(0.0f, chfinalboss_spawnStatue, 5); timed_setStaticCameraToNode(0.0f, sp28); timed_exitStaticCamera(7.5f); - timedFunc_set_1(7.5f, (GenFunction_1)func_8038AC50, (s32) this->marker); + timedFunc_set_1(7.5f, (GenFunction_1)chfinalboss_func_8038AC50, (s32) this->marker); func_80324E38(7.5f, 0); break; case 36: - func_8038AC50(this->marker); + chfinalboss_func_8038AC50(this->marker); break; case 37: @@ -1825,18 +1745,18 @@ void chfinalboss_phase5_setState(Actor *this, s32 next_state) { } } -void func_8038AF84(ActorMarker *arg0) { +void chfinalboss_func_8038AF84(ActorMarker *arg0) { chfinalboss_phase5_setState(marker_getActor(arg0), 0x29); } -void func_8038AFB0(void) { +void chfinalboss_func_8038AFB0(void) { func_802E4078(MAP_87_CS_SPIRAL_MOUNTAIN_5, 0, 1); } void chfinalboss_phase5_update(ActorMarker *marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; f32 dt; s32 sp38; f32 sp34; @@ -1846,7 +1766,7 @@ void chfinalboss_phase5_update(ActorMarker *marker) { this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; dt = time_getDelta(); sp38 = 0x14; sp34 = animctrl_getAnimTimer(this->animctrl); @@ -1866,7 +1786,7 @@ void chfinalboss_phase5_update(ActorMarker *marker) { if (__chFinalBossJinjonatorHits == 9) { sp2C = 0x16; if(local->mirror_phase5) sp2C = 0x25; - timedFunc_set_1(2.4f, (GenFunction_1)func_8038AF84, (s32) this->marker); + timedFunc_set_1(2.4f, (GenFunction_1)chfinalboss_func_8038AF84, (s32) this->marker); timed_setStaticCameraToNode(2.4f, sp2C); timed_exitStaticCamera(4.4f); timed_setStaticCameraToNode(4.4f, sp38 + 3 + __chFinalBossJinjonatorHits); @@ -1892,22 +1812,22 @@ void chfinalboss_phase5_update(ActorMarker *marker) { } switch (this->state) { case 35: - fight_func_80386BEC(this, 3.0f); + chfinalboss_func_80386BEC(this, 3.0f); break; case 36: - if (fight_func_80386BEC(this, 9.0f) && (func_80297C6C() != 3)) { + if (chfinalboss_func_80386BEC(this, 9.0f) && (func_80297C6C() != 3)) { chfinalboss_phase5_setState(this, 0x25); } break; case 37: - fight_func_80386BEC(this, 3.0f); + chfinalboss_func_80386BEC(this, 3.0f); if (func_80297C6C() == 3) { chfinalboss_phase5_setState(this, 0x24); break; } - if (fight_func_80387340(this, 1.0f)) { + if (chfinalboss_func_80387340(this, 1.0f)) { local->unk3++; } if ((actor_animationIsAt(this, 0.9999f)) && (local->unk3 >= 5)) { @@ -1916,8 +1836,8 @@ void chfinalboss_phase5_update(ActorMarker *marker) { break; case 38: - fight_func_80386BEC(this, 3.0f); - func_803873DC(this, 700.0f, 2400.0f); + chfinalboss_func_80386BEC(this, 3.0f); + chfinalboss_func_803873DC(this, 700.0f, 2400.0f); if (actor_animationIsAt(this, 0.9999f)) { chfinalboss_phase5_setState(this, 0x27); this->lifetime_value = 4.0f; @@ -1926,17 +1846,17 @@ void chfinalboss_phase5_update(ActorMarker *marker) { case 39: if (local->unk8) { - func_80386C68(this, 4.5f); + chfinalboss_func_80386C68(this, 4.5f); } else { - fight_func_80386BEC(this, 3.0f); + chfinalboss_func_80386BEC(this, 3.0f); } if (this->lifetime_value > 0.0) { this->lifetime_value -= dt; break; } if (local->unk8 == 0) { - if (!D_803927C9) { - D_803927C9 = TRUE; + if (!chFinalBossJinjonatorSpawned) { + chFinalBossJinjonatorSpawned = TRUE; chfinalboss_phase5_setState(this, 0x23); } else{ @@ -1983,7 +1903,7 @@ void chfinalboss_phase5_update(ActorMarker *marker) { case 43: if ((actor_animationIsAt(this, 0.1f)) || (actor_animationIsAt(this, 0.24f))) { - chbossjinjo_spawnParticles(this, 0x718, 0x6C2, 2.0f); + chbossjinjo_spawnParticlesAtFinalBoss(this, 0x718, 0x6C2, 2.0f); } if (actor_animationIsAt(this, 0.3f)) { FUNC_8030E624(SFX_164_EH, 1.0f, 25000); @@ -2001,7 +1921,7 @@ void chfinalboss_phase5_update(ActorMarker *marker) { FUNC_8030E624(SFX_130_GRUNTY_ECHOING_CRY, 1.0f, 32000); } if (actor_animationIsAt(this, 0.85f)) { - func_803872F8(this); + chfinalboss_func_803872F8(this); } if (actor_animationIsAt(this, 0.9f)) { ncStaticCamera_exit(); @@ -2010,8 +1930,8 @@ void chfinalboss_phase5_update(ActorMarker *marker) { } else { ncStaticCamera_setPositionAndTarget(D_803917F8, this->position); } - func_8038FC2C(1); - timedFunc_set_0(4.8, func_8038AFB0); + chSpellFireball_setLastSpellFired(1); + timedFunc_set_0(4.8, chfinalboss_func_8038AFB0); } if (actor_animationIsAt(this, 0.9999f)) { marker_despawn(this->marker); @@ -2027,10 +1947,10 @@ void chfinalboss_phase0_endTextCallback(ActorMarker *marker, enum asset_e text_i func_802BE720(); timed_exitStaticCamera(0); func_8028F784(0); - chfinalboss_setPhase(sp1C->marker, 1); + chfinalboss_setPhase(sp1C->marker, FINALBOSS_PHASE_1_BROOMSTICK); } -void func_8038B780(ActorMarker *marker) { +void chfinalboss_func_8038B780(ActorMarker *marker) { Actor *sp24; sp24 = marker_getActor(marker); @@ -2043,51 +1963,60 @@ void func_8038B780(ActorMarker *marker) { } } -void chfinalboss_phase0_update(ActorMarker *marker) { return; } +void chfinalboss_phase0_update(ActorMarker *marker) { + return; +} -bool func_8038B834(ActorMarker *marker, ActorMarker * arg1) { +bool chfinalboss_func_8038B834(ActorMarker *marker, ActorMarker *other_marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; + switch (local->phase) { - case 1: - if ((this->state == 6) || (this->state == 7)) { - marker->id = 0x260; - } else { - marker->id = 0x25E; - } - break; - case 2: - if (local->unkA == 0) { - marker->id = 0x260; - } else { - marker->id = 0x281; - } - break; - case 3: - marker->id = 0x282; - break; - case 4: - marker->id = 0x283; - break; - case 5: - marker->id = 0x283; - break; - default: - marker->id = 0x25E; - break; + case FINALBOSS_PHASE_1_BROOMSTICK: + if ((this->state == 6) || (this->state == 7)) { + marker->id = 0x260; + } else { + marker->id = 0x25E; + } + break; + + case FINALBOSS_PHASE_2_AIR: + if (local->unkA == 0) { + marker->id = 0x260; + } else { + marker->id = 0x281; + } + break; + + case FINALBOSS_PHASE_3_FLIGHT: + marker->id = 0x282; + break; + + case FINALBOSS_PHASE_4_JINJOS: + marker->id = 0x283; + break; + + case FINALBOSS_PHASE_5_JINJONATOR: + marker->id = 0x283; + break; + + default: + marker->id = MARKER_25E_GRUNTILDA_FINAL_BOSS; + break; } + return TRUE; } -void func_8038B9AC(ActorMarker *marker, ActorMarker *other_marker) { +void chfinalboss_collisionPassive(ActorMarker *marker, ActorMarker *other_marker) { Actor *this; - ActorLocal_fight_180 *local; + ActorLocal_FinalBoss *local; this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; + local = (ActorLocal_FinalBoss *)&this->local; switch (local->phase) { case 1: if (local->hits == 0) { @@ -2132,39 +2061,35 @@ void func_8038B9AC(ActorMarker *marker, ActorMarker *other_marker) { } } -void func_8038BB8C(ActorMarker *marker, ActorMarker *other_marker) { - Actor *this; - ActorLocal_fight_180 *local; - u8 temp_v0_2; +void chfinalboss_collisionActive(ActorMarker *marker, ActorMarker *other_marker) { + Actor *this = marker_getActor(marker); + ActorLocal_FinalBoss *local = (ActorLocal_FinalBoss *)&this->local; - this = marker_getActor(marker); - local = (ActorLocal_fight_180 *)&this->local; - if (local->phase == 1) { + if (local->phase == FINALBOSS_PHASE_1_BROOMSTICK) { func_8030E878(SFX_EA_GRUNTY_LAUGH_1, randf2(0.95f, 1.05f), 32000, this->position, 5000.0f, 12000.0f); - if (local->unk10 == 0) { - if (gcdialog_showText(randi2(0, 5) + 0x10ED, 0, NULL, NULL, NULL, NULL)) { - local->unk10++; + + if (local->player_hit_in_phase1 == 0) { + if (gcdialog_showText(randi2(0, 5) + ASSET_10ED_TEXT_FINALBOSS_PHASE_1_HIT_PLAYER_OPTION_1, 0, NULL, NULL, NULL, NULL)) { + local->player_hit_in_phase1++; } } } - if (local->phase == 3) { - temp_v0_2 = local->unk6; - if ((local->unk6 == 0) && (this->state != 0x1A)) { - local->unk6++; - gcdialog_showText(randi2(0, 5) + 0x111D, 0, NULL, NULL, NULL, NULL); + + if (local->phase == FINALBOSS_PHASE_3_FLIGHT) { + if ((local->player_hit_in_phase3 == 0) && (this->state != 0x1A)) { + local->player_hit_in_phase3++; + gcdialog_showText(randi2(0, 5) + ASSET_111D_TEXT_FINALBOSS_PHASE_2_HIT_PLAYER_OPTION_1, 0, NULL, NULL, NULL, NULL); } } } void chfinalboss_spawnShadow(ActorMarker *marker) { - Actor *sp1C; - - sp1C = marker_getActor(marker); - __chFinalBossShadowMarker = spawn_child_actor(ACTOR_3AF_GRUNTY_SHADOW, &sp1C)->marker; + Actor *actor = marker_getActor(marker); + __chFinalBossShadowMarker = spawn_child_actor(ACTOR_3AF_GRUNTY_SHADOW, &actor)->marker; } void chfinalboss_update(Actor *this){ - ActorLocal_fight_180 *local = (ActorLocal_fight_180 *) &this->local; + ActorLocal_FinalBoss *local = (ActorLocal_FinalBoss *) &this->local; s32 i; s32 tmp_s0; Actor *shadow; @@ -2172,10 +2097,10 @@ void chfinalboss_update(Actor *this){ f32 sp40[3]; f32 sp34[3]; - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; - func_803300C0(this->marker, func_8038B834); - marker_setCollisionScripts(this->marker, func_8038BB8C, func_8038B9AC, NULL); + func_803300C0(this->marker, chfinalboss_func_8038B834); + marker_setCollisionScripts(this->marker, chfinalboss_collisionActive, chfinalboss_collisionPassive, NULL); this->marker->propPtr->unk8_3 = 0; actor_collisionOn(this); for(i = 0x38C; i < 0x39F; i++){ @@ -2183,12 +2108,12 @@ void chfinalboss_update(Actor *this){ } __chFinalBossFlightPadMarker = NULL; __chFinalBossShadowMarker = NULL; - D_803927C4 = 0; + sFinalBossJinjoStatueActivated = 0; __chFinalBossSpellBarrierActive = FALSE; __chFinalBossJinjonatorHits = 0; - D_803927C7 = 0; - D_803927C8 = 0; - D_803927C9 = 0; + D_803927C7 = FALSE; + chFinalBossJinjoSpawned = FALSE; + chFinalBossJinjonatorSpawned = FALSE; local->unk8 = 0; local->unk9 = 0; @@ -2199,68 +2124,76 @@ void chfinalboss_update(Actor *this){ } __spawnQueue_add_1((GenFunction_1) chfinalboss_spawnShadow, (s32) this->marker); - chfinalboss_setPhase(this->marker, 0); + chfinalboss_setPhase(this->marker, FINALBOSS_PHASE_0_INTRO); local->hits = 0; - func_80386600(this->marker, 0); - func_80386628(this->marker, 1); - func_8038FC00(); + chfinalboss_func_80386600(this->marker, 0); + chfinalboss_func_80386628(this->marker, 1); + chSpellFireball_resetSpellHits(); - func_80386654(1.0f, fight_D_80391380, fight_D_80391390); + chfinalboss_func_80386654(1.0f, fight_D_80391380, fight_D_80391390); func_8028F784(1); func_8028F4B8(D_80391804, 2000.0f, -2800.0f); func_8028FA14(0x93, 2); func_8034C9B0(0); - func_80386698(2.0f); + chfinalboss_func_80386698(2.0f); tmp_s0 = func_802F9AA8(SFX_9A_MECHANICAL_CLOSING); func_802F9DB8(tmp_s0, 0.6f, 0.6f, 0.0f); func_802F9FD0(tmp_s0, 0.0f, 2.0f, 0.0f); func_802FA060(tmp_s0, 25000, 25000, 0); timed_playSfx(2.0f, SFX_7F_HEAVYDOOR_SLAM, 1.0f, 32000); }//L8038BF0C - switch(local->phase){ - case 0: + + switch(local->phase) { + case FINALBOSS_PHASE_0_INTRO: chfinalboss_phase0_update(this->marker); break; - case 1: + + case FINALBOSS_PHASE_1_BROOMSTICK: chfinalboss_phase1_update(this->marker); break; - case 2: + + case FINALBOSS_PHASE_2_AIR: chfinalboss_phase2_update(this->marker); break; - case 3: + + case FINALBOSS_PHASE_3_FLIGHT: chfinalboss_phase3_update(this->marker); break; - case 4: + + case FINALBOSS_PHASE_4_JINJOS: chfinalboss_phase4_update(this->marker); break; - case 5: + + case FINALBOSS_PHASE_5_JINJONATOR: chfinalboss_phase5_update(this->marker); break; } + volatileFlag_setN(VOLATILE_FLAG_23_FINAL_BOSS_PHASE, local->phase, 3); - player_getPosition(D_80392788); - D_80392798[0] = this->position[0]; - D_80392798[1] = this->position[1]; - D_80392798[2] = this->position[2]; + player_getPosition(chFinalBossPlayerPosition); + chFinalBossPosition[0] = this->position[0]; + chFinalBossPosition[1] = this->position[1]; + chFinalBossPosition[2] = this->position[2]; + if(this->unk100 != NULL && __chFinalBossSpellBarrierActive){ - func_8038EB90(this->unk100, this->position); + fight_setPositionWithDisplacement(this->unk100, this->position); } if(__chFinalBossShadowMarker != NULL){ shadow = marker_getActor(__chFinalBossShadowMarker); - sp4C[0] = this->position[0];\ - sp4C[1] = this->position[1];\ + sp4C[0] = this->position[0]; + sp4C[1] = this->position[1]; sp4C[2] = this->position[2]; sp4C[1] = 200.0f; - sp34[0] = this->position[0];\ - sp34[1] = this->position[1];\ + sp34[0] = this->position[0]; + sp34[1] = this->position[1]; sp34[2] = this->position[2]; sp34[1] = -50.0f; if(func_80309B48(sp4C, sp34, sp40, 0)){ sp34[1] += 6.0f; - shadow->position[0] = sp34[0];\ - shadow->position[1] = sp34[1];\ + shadow->position[0] = sp34[0]; + shadow->position[1] = sp34[1]; shadow->position[2] = sp34[2]; shadow->unk1C[0] = this->position_y - sp34[1]; shadow->scale = this->scale; @@ -2272,32 +2205,27 @@ void chfinalboss_update(Actor *this){ }//L8038C0C8 } -void fight_func_8038C0DC(f32 (*arg0)[3]) { - (*arg0)[0] = D_80392798[0]; - (*arg0)[1] = D_80392798[1]; - (*arg0)[2] = D_80392798[2]; +void chfinalboss_getPosition(f32 position[3]) { + position[0] = chFinalBossPosition[0]; + position[1] = chFinalBossPosition[1]; + position[2] = chFinalBossPosition[2]; } void chfinalboss_spellBarrierInactive() { __chFinalBossSpellBarrierActive = FALSE; } -void func_8038C10C(s32 arg0) { +void chfinalboss_func_8038C10C(s32 arg0) { chfinalboss_phase5_setState(marker_getActor((ActorMarker*)arg0), 0x28); } -void func_8038C138() { - D_803927C7 = 1; +void chfinalboss_func_8038C138() { + D_803927C7 = TRUE; } -f32 chjinjonator_80391234(); -f32 func_8038DFA0(); -void timed_exitStaticCamera(f32); -f32 chjinjonator_80391240(); - -void func_8038C148(void) { +void chfinalboss_setBossDefeated(void) { Actor *sp4C; - ActorLocal_fight_180 *sp48; + ActorLocal_FinalBoss *sp48; f32 temp_f20; f32 sp40; f32 temp_f12; @@ -2305,8 +2233,8 @@ void func_8038C148(void) { f32 sp34; sp4C = actorArray_findActorFromActorId(ACTOR_38B_GRUNTILDA_FINAL_BOSS); - sp48 = (ActorLocal_fight_180 *)&sp4C->local; - sp34 = func_8038DFA0(); + sp48 = (ActorLocal_FinalBoss *)&sp4C->local; + sp34 = chstonejinjo_getBreakUpTime(); temp_f20 = sp34 + chjinjonator_80391234(); sp40 = chjinjonator_80391240(); camera_node = 0x14; @@ -2319,34 +2247,34 @@ void func_8038C148(void) { func_80324E38(0, 1); timed_setStaticCameraToNode(0, camera_node); timed_exitStaticCamera(temp_f20); - timedFunc_set_0(temp_f20 * 0.08, &func_8038C138); + timedFunc_set_0(temp_f20 * 0.08, &chfinalboss_func_8038C138); timed_setStaticCameraToNode(temp_f20, camera_node + 1); timed_exitStaticCamera(temp_f20 + sp40); - timedFunc_set_1(temp_f20 + sp40, func_8038C10C, (s32)sp4C->marker); + timedFunc_set_1(temp_f20 + sp40, chfinalboss_func_8038C10C, (s32)sp4C->marker); timed_setStaticCameraToNode(temp_f20 + sp40, camera_node + 2); timed_exitStaticCamera(temp_f20 + sp40 + 2.88f); timed_setStaticCameraToNode(temp_f20 + sp40 + 2.88f, camera_node + 3); } -void func_8038C27C(s32 arg0) { - D_803927C4 = arg0; +void chfinalboss_setJinjoStatueActivated(bool state) { + sFinalBossJinjoStatueActivated = state; } -f32 func_8038C288() { +f32 chfinalboss_getScreamTime() { return 3.0f; } -s32 func_8038C298() { +s32 chfinalboss_func_8038C298() { return D_803927C7; } -s32 func_8038C2A4() { - return D_803927C8; +bool chfinalboss_isJinjoSpawned() { + return chFinalBossJinjoSpawned; } -s32 func_8038C2B0() { - return D_803927C9; +bool chfinalboss_isJinjonatorSpawned() { + return chFinalBossJinjonatorSpawned; } diff --git a/src/fight/chgreenblast.c b/src/fight/chgreenblast.c index 9821a476..4cefedf8 100644 --- a/src/fight/chgreenblast.c +++ b/src/fight/chgreenblast.c @@ -3,20 +3,9 @@ #include "variables.h" #include "fight.h" -extern void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]); -extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32); extern Actor *func_80325CAC(ActorMarker *, Gfx **, Mtx **, Vtx**); -void chGreenBlast_update(Actor *this); -Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3); - -/* .data */ -ActorInfo chGreenBlast = { - MARKER_25D_GREEN_BLAST, ACTOR_38A_GREEN_BLAST, ASSET_6C7_GREEN_BLAST, - 0x1, NULL, - chGreenBlast_update, func_80326224, chGreenBlast_draw, - 0, 0, 1.0f, 0 -}; +ActorInfo chGreenBlast = { MARKER_25D_GREEN_BLAST, ACTOR_38A_GREEN_BLAST, ASSET_6C7_GREEN_BLAST, 1, NULL, chGreenBlast_update, actor_update_func_80326224, chGreenBlast_draw, 0, 0, 1.0f, 0 }; f32 D_80391DE4[4] = {0.6f, 1.0f, 1.0f, 1.0f}; f32 D_80391DF4[4] = {0.3f, 0.3f, 0.3f, 1.0f}; @@ -48,19 +37,18 @@ f32 chGreenBlastSparklesScaleRange[4] = {0.15f, 0.3f, 0.0f, 0.0f}; f32 chGreenBlastSparklesLifetimeRange[4] = {0.0f, 0.01f, 0.7f, 0.8f}; f32 chGreenBlastSparklesFade[2] = {0.0f, 0.65f}; -/* .code */ -Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){ +Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { Actor *actor = marker_getActor(marker); func_80344C2C(1); - return func_80325CAC(marker, gdl, mptr, arg3); + return func_80325CAC(marker, gfx, mtx, vtx); } -void func_8038FC88(void){ - func_80386654(1.0f, &D_80391DF4, &D_80391DE4); +void chGreenBlast_func_8038FC88(void){ + chfinalboss_func_80386654(1.0f, D_80391DF4, D_80391DE4); } -void func_8038FCBC(void){ - func_80386654(1.0f, &D_80391DE4, &D_80391DF4); +void chGreenBlast_func_8038FCBC(void){ + chfinalboss_func_80386654(1.0f, D_80391DE4, D_80391DF4); } void chGreenBlast_collisionDie(ActorMarker *marker, ActorMarker *other_marker){ @@ -73,30 +61,18 @@ void chGreenBlast_collisionDie(ActorMarker *marker, ActorMarker *other_marker){ explosion_position[1] += 160.0f; FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor->position, 1000, 3500); - timedFunc_set_0(0.0f, func_8038FC88); - timedFunc_set_0(0.3f, func_8038FCBC); + timedFunc_set_0(0.0f, chGreenBlast_func_8038FC88); + timedFunc_set_0(0.3f, chGreenBlast_func_8038FCBC); - chSpellFireball_emitSparkles(actor->position, 4, ASSET_710_SPRITE_SPARKLE_PURPLE, - chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange, - chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade - ); - - chSpellFireball_emitSparkles(actor->position, 4, ASSET_711_SPRITE_SPARKLE_DARK_BLUE, - chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange, - chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade - ); - - chSpellFireball_emitSmoke(actor->position, 3, chGreenBlastSmokeLifetime); - - chSpellFireball_emitExplosion(&explosion_position, 0x6C8, 3, - chGreenBlastExplosionStartFrameRange, chGreenBlastExplosionPositionRange, - chGreenBlastExplosionScaleRange, chGreenBlastExplosionLifetimeRange, chGreenBlastExplosionFade - ); + fight_createSpriteParticles(actor->position, 4, ASSET_710_SPRITE_SPARKLE_PURPLE, chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange, chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade); + fight_createSpriteParticles(actor->position, 4, ASSET_711_SPRITE_SPARKLE_DARK_BLUE, chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange, chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade); + fight_createSmokeParticles(actor->position, 3, chGreenBlastSmokeLifetime); + fight_createAnimatedSpriteParticles(explosion_position, 0x6C8, 3, chGreenBlastExplosionStartFrameRange, chGreenBlastExplosionPositionRange, chGreenBlastExplosionScaleRange, chGreenBlastExplosionLifetimeRange, chGreenBlastExplosionFade); marker_despawn(actor->marker); } -void chGreenBlast_update(Actor *this){ +void chGreenBlast_update(Actor *this) { f32 delta_time = time_getDelta(); f32 target_position[3]; @@ -113,42 +89,33 @@ void chGreenBlast_update(Actor *this){ if (globalTimer_getTime() % 4 == 1) { if (randf() < 0.5) { - chSpellFireball_emitSparkles(this->position, 4, ASSET_718_SPRITE_SPARKLE_WHITE_2, - chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange, - chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade - ); - } - else { - chSpellFireball_emitSparkles(this->position, 4, ASSET_719_SPRITE_SPARKLE_GREEN_2, - chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange, - chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade - ); + fight_createSpriteParticles(this->position, 4, ASSET_718_SPRITE_SPARKLE_WHITE_2, chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange, chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade); + } else { + fight_createSpriteParticles(this->position, 4, ASSET_719_SPRITE_SPARKLE_GREEN_2, chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange, chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade); } } player_getPosition(target_position); target_position[1] += 50.0f; - func_80387470(this, target_position, this->unk1C[0], this->unk1C[1], 0.0f, 1400.0f, 70.0f); + chfinalboss_func_80387470(this, target_position, this->unk1C[0], this->unk1C[1], 0.0f, 1400.0f, 70.0f); if (func_8028F25C()) { chGreenBlast_collisionDie(this->marker, 0); - } - else { - if(0.0 <= this->lifetime_value) { + } else { + if (0.0 <= this->lifetime_value) { this->lifetime_value -= delta_time; - } - else { + } else { chGreenBlast_collisionDie(this->marker, 0); } } } -void fight_func_803900DC(ActorMarker *marker, f32 (*arg1)[3], f32 arg2, f32 arg3){ +void chGreenBlast_func_803900DC(ActorMarker *marker, f32 position[3], f32 arg2, f32 arg3) { Actor *actor = marker_getActor(marker); - actor->position_x = (*arg1)[0]; - actor->position_y = (*arg1)[1]; - actor->position_z = (*arg1)[2]; + actor->position_x = position[0]; + actor->position_y = position[1]; + actor->position_z = position[2]; actor->unk1C[0] = arg2; actor->unk1C[1] = arg3; } diff --git a/src/fight/chjinjonator.c b/src/fight/chjinjonator.c index 29afc50a..733844a5 100644 --- a/src/fight/chjinjonator.c +++ b/src/fight/chjinjonator.c @@ -3,33 +3,22 @@ #include "variables.h" #include "fight.h" -extern f32 func_8038C288(void); -extern void subaddie_set_state_with_direction(Actor *, s32, f32, s32); extern void func_80324CFC(f32, s32, s32); extern void func_802F9E44(s32, f32, f32, f32, f32); -extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32); -extern void fight_func_8038C0DC(f32[3]); -extern void chbossjinjo_spawnParticles(Actor *, enum asset_e, enum asset_e, f32); +typedef struct { + f32 velocity_move_up; + f32 boss_scream_time; + f32 position_finalboss[3]; + f32 sfx_volume; + f32 sfx_volume_adjust; + f32 boss_claw_sfx_volume; + s32 final_attack_countdown; + s32 hit_count; + s32 attack_timer; +} ActorLocal_Jinjonator; -typedef struct{ - f32 unk0; - f32 unk4; - f32 unk8[3]; - f32 unk14; - f32 unk18; - f32 unk1C; - s32 unk20; - s32 unk24; - s32 unk28; -}ActorLocal_fight_9850; - -void chjinjonator_update(Actor *this); - -/* .data */ - -//BBC0 -ActorAnimationInfo D_80391FB0[] = { +ActorAnimationInfo chJinjonatorAnimationInfo[] = { {0x000, 00000000}, {0x275, 1000000.0f}, {0x275, 3.3f}, @@ -45,15 +34,10 @@ ActorAnimationInfo D_80391FB0[] = { {0x280, 0.4f} }; -ActorInfo chJinjonator = { - MARKER_285_JINJONATOR, ACTOR_3AC_JINJONATOR, ASSET_551_MODEL_JINJONATOR, - 0x1, D_80391FB0, - chjinjonator_update, func_80326224, actor_draw, - 0, 0, 1.0f, 0 -}; +ActorInfo chJinjonator = { MARKER_285_JINJONATOR, ACTOR_3AC_JINJONATOR, ASSET_551_MODEL_JINJONATOR, 1, chJinjonatorAnimationInfo, chjinjonator_update, actor_update_func_80326224, actor_draw, 0, 0, 1.0f, 0 }; -s32 D_8039203C[] = {0xDC, 0x96, 0x82, 0xB4, 0xD2, 0xAA, 0xC8, 0x96, 0xB4}; -s32 D_80392060[] = { +s32 chJinjonatorHitYawValue[] = { 220, 150, 130, 180, 210, 170, 200, 150, 180 }; +s32 chJinjonatorHitSounds[] = { COMUSIC_9A_JINJONATOR_HITS_GRUNTY_A, COMUSIC_9B_JINJONATOR_HITS_GRUNTY_B, COMUSIC_9C_JINJONATOR_HITS_GRUNTY_C, @@ -65,199 +49,207 @@ s32 D_80392060[] = { COMUSIC_A2_JINJONATOR_HITS_GRUNTY_I }; -/* .bss */ f32 D_80392920[3]; -/* .code */ -void chjinjonator_80390130(f32 position[3], int count, enum asset_e sprite_id){ - ParticleEmitter *s0 = partEmitMgr_newEmitter(count); - particleEmitter_setSprite(s0, sprite_id); - particleEmitter_setStartingFrameRange(s0, 1, 6); - particleEmitter_setPosition(s0, position); - particleEmitter_setParticleAccelerationRange(s0, 0.0f, -200.0f, 0.0f, 0.0f, -200.0f, 0.0f); - particleEmitter_setParticleVelocityRange(s0, -100.0f, -100.0f, -100.0f, 100.0f, 100.0f, 100.0f); - particleEmitter_setStartingScaleRange(s0, 0.5f, 0.65f); - particleEmitter_setFinalScaleRange(s0, 0.0f, 0.0f); - particleEmitter_setSpawnIntervalRange(s0, 0.0f, 0.01f); - particleEmitter_setParticleLifeTimeRange(s0, 0.65f, 0.85f); - particleEmitter_setFade(s0, 0.0f, 0.35f); - func_802EFA78(s0, 1); - particleEmitter_setDrawMode(s0, 4); - particleEmitter_emitN(s0, count); +void chjinjonator_createSpriteParticles(f32 position[3], s32 count, enum asset_e sprite_id) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, sprite_id); + particleEmitter_setStartingFrameRange(pCtrl, 1, 6); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setAccelerationRange(pCtrl, 0.0f, -200.0f, 0.0f, 0.0f, -200.0f, 0.0f); + particleEmitter_setParticleVelocityRange(pCtrl, -100.0f, -100.0f, -100.0f, 100.0f, 100.0f, 100.0f); + particleEmitter_setStartingScaleRange(pCtrl, 0.5f, 0.65f); + particleEmitter_setFinalScaleRange(pCtrl, 0.0f, 0.0f); + particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f); + particleEmitter_setParticleLifeTimeRange(pCtrl, 0.65f, 0.85f); + particleEmitter_setFade(pCtrl, 0.0f, 0.35f); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_setDrawMode(pCtrl, 4); + particleEmitter_emitN(pCtrl, count); } -void chjinjonator_80390278(Actor *this){ - f32 sp34[3]; +void chjinjonator_spawnSparkleParticles(Actor *this) { + f32 position[3]; int i; - for(i = 0; i < 4; i++){ - if(randf() < 0.3){ - func_8034A174(this->marker->unk44, i + 5, sp34); - chjinjonator_80390130(sp34, 1, ASSET_718_SPRITE_SPARKLE_WHITE_2); + + for (i = 0; i < 4; i++) { + if (randf() < 0.3) { + func_8034A174(this->marker->unk44, i + 5, position); + chjinjonator_createSpriteParticles(position, 1, ASSET_718_SPRITE_SPARKLE_WHITE_2); } } } -void chjinjonator_spawnAttackParticles(Actor *this, s32 arg1){ - s32 sp1C; - s32 sp18; +void chjinjonator_spawnAttackParticles(Actor *this, s32 hit_id){ + s32 sparkle_sprite_id; + s32 smoke_sprite_id; - switch(arg1){ + switch (hit_id) { case 1: case 5: - sp1C = ASSET_71B_SPRITE_SPARKLE_ORANGE_2; - sp18 = ASSET_6C5_SPRITE_SMOKE_ORANGE; + sparkle_sprite_id = ASSET_71B_SPRITE_SPARKLE_ORANGE_2; + smoke_sprite_id = ASSET_6C5_SPRITE_SMOKE_ORANGE; break; + case 2: case 6: - sp1C = ASSET_719_SPRITE_SPARKLE_GREEN_2; - sp18 = ASSET_6C3_SPRITE_SMOKE_GREEN; + sparkle_sprite_id = ASSET_719_SPRITE_SPARKLE_GREEN_2; + smoke_sprite_id = ASSET_6C3_SPRITE_SMOKE_GREEN; break; + case 3: case 7: - sp1C = ASSET_71A_SPRITE_SPARKLE_PINK_2; - sp18 = ASSET_6C6_SPRITE_SMOKE_PINK; + sparkle_sprite_id = ASSET_71A_SPRITE_SPARKLE_PINK_2; + smoke_sprite_id = ASSET_6C6_SPRITE_SMOKE_PINK; break; + case 4: case 8: - sp1C = ASSET_717_SPRITE_SPARKLE_YELLOW_2; - sp18 = ASSET_6C4_SPRITE_SMOKE_YELLOW; + sparkle_sprite_id = ASSET_717_SPRITE_SPARKLE_YELLOW_2; + smoke_sprite_id = ASSET_6C4_SPRITE_SMOKE_YELLOW; break; + case 9: case 10: - sp1C = ASSET_718_SPRITE_SPARKLE_WHITE_2; - sp18 = ASSET_6C2_SPRITE_SMOKE_WHITE; + sparkle_sprite_id = ASSET_718_SPRITE_SPARKLE_WHITE_2; + smoke_sprite_id = ASSET_6C2_SPRITE_SMOKE_WHITE; break; } - chbossjinjo_spawnParticles(this, sp1C, sp18, 2.0f); + chbossjinjo_spawnParticlesAtFinalBoss(this, sparkle_sprite_id, smoke_sprite_id, 2.0f); } -void chjinjonator_803903C4(Actor *this){ +void chjinjonator_803903C4(Actor *this) { animctrl_setSmoothTransition(this->animctrl, FALSE); - subaddie_set_state_with_direction(this, 7, 0.001f, 1); + subaddie_set_state_with_direction(this, JINJONATOR_STATE_7_ATTACK_END, 0.001f, 1); actor_loopAnimation(this); } -void chjinjonator_8039040C(Actor *this){ - ActorLocal_fight_9850 *local = (ActorLocal_fight_9850 *)&this->local; +void chjinjonator_8039040C(Actor *this) { + ActorLocal_Jinjonator *local = (ActorLocal_Jinjonator *) &this->local; f32 tick = time_getDelta(); - local->unk14 = MIN(1.99, local->unk14 + local->unk18*tick); - sfxsource_playSfxAtVolume(this->unk44_31, local->unk14); - if(func_8030E3FC(this->unk44_31) == 0) + local->sfx_volume = MIN(1.99, local->sfx_volume + local->sfx_volume_adjust * tick); + sfxsource_playSfxAtVolume(this->unk44_31, local->sfx_volume); + + if (func_8030E3FC(this->unk44_31) == 0) func_8030E2C4(this->unk44_31); } void chjinjonator_update(Actor *this){ - ActorLocal_fight_9850 *local = (ActorLocal_fight_9850 *)&this->local; - f32 sp58; - f32 sp54; + ActorLocal_Jinjonator *local = (ActorLocal_Jinjonator *) &this->local; + f32 time_delta = time_getDelta(); + f32 sp54 = animctrl_getDuration(this->animctrl); f32 sp50; s32 sp4C; f32 sp48; - - sp58 = time_getDelta(); - sp54 = animctrl_getDuration(this->animctrl); - - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; - local->unk18 = 0.40000000000000013 / (this->lifetime_value + 3.3); - local->unk14 = 0.7f; + local->sfx_volume_adjust = 0.40000000000000013 / (this->lifetime_value + 3.3); + local->sfx_volume = 0.7f; func_8025A6EC(JINGLE_MENACING_GRUNTILDA_B, 20000); func_8025A58C(0, 0x7fff); this->unk44_31 = func_8030ED2C(SFX_17A_SHIPHORN, 3); sfxsource_setSampleRate(this->unk44_31, 25000); - sfxsource_playSfxAtVolume(this->unk44_31, local->unk14); + sfxsource_playSfxAtVolume(this->unk44_31, local->sfx_volume); func_8030E2C4(this->unk44_31); - local->unk28 = 0xC; - }//L80390574 + local->attack_timer = 12; + } - if(0.0 < local->unk4){ - local->unk4 -= sp58; + if (0.0 < local->boss_scream_time) { + local->boss_scream_time -= time_delta; return; } - - - switch(this->state){ - case 1: //803905D4 + + switch (this->state) { + case JINJONATOR_STATE_1_RELEASE: chjinjonator_8039040C(this); animctrl_setAnimTimer(this->animctrl, 0.0f); - this->lifetime_value -= sp58; - if(this->lifetime_value < 0.0){ - subaddie_set_state_with_direction(this, 2, 0.001f, 1); + this->lifetime_value -= time_delta; + + if (this->lifetime_value < 0.0) { + subaddie_set_state_with_direction(this, JINJONATOR_STATE_2_WAKE_UP, 0.001f, 1); actor_playAnimationOnce(this); } + break; - case 2: //80390648 + case JINJONATOR_STATE_2_WAKE_UP: chjinjonator_8039040C(this); - if(actor_animationIsAt(this, 0.27f)) + + if (actor_animationIsAt(this, 0.27f)) FUNC_8030E624(SFX_D0_GRIMLET_SQUEAK, 0.7f, 29000); - if(actor_animationIsAt(this, 0.44f)){ + if (actor_animationIsAt(this, 0.44f)) { FUNC_8030E624(SFX_176_JINJONATOR_JINJOOO_1, 1.0f, 25000); timed_playSfx(0.66f, SFX_176_JINJONATOR_JINJOOO_1, 0.9f, 25000); } - if(actor_animationIsAt(this, 0.999f)){ - subaddie_set_state_with_direction(this, 3, 0.001f, 1); + if (actor_animationIsAt(this, 0.999f)) { + subaddie_set_state_with_direction(this, JINJONATOR_STATE_3_MOVE_UPWARD, 0.001f, 1); actor_playAnimationOnce(this); func_8030E394(this->unk44_31); func_8030DA44(this->unk44_31); this->unk44_31 = 0; - local->unk0 = (320.0f - this->position_y) * 0.5; + local->velocity_move_up = (320.0f - this->position_y) * 0.5; func_80324CFC(0.0f, COMUSIC_8C_JINJONATOR_POWERUP, 32000); } + break; - case 3: //8039073C - chjinjonator_80390278(this); - if(this->position_y < 320.0f){ - this->position_y = MIN(320.0f, this->position_y + local->unk0*sp58); - }//L803907A0 + case JINJONATOR_STATE_3_MOVE_UPWARD: + chjinjonator_spawnSparkleParticles(this); - if(320.0f == this->position_y){ - subaddie_set_state_with_direction(this, 4, 0.001f, 1); - actor_loopAnimation(this); - local->unk4 = func_8038C288(); + if (this->position_y < 320.0f) { + this->position_y = MIN(320.0f, this->position_y + local->velocity_move_up * time_delta); } + + if (320.0f == this->position_y) { + subaddie_set_state_with_direction(this, JINJONATOR_STATE_4_PREPARE_SPIN_UP, 0.001f, 1); + actor_loopAnimation(this); + local->boss_scream_time = chfinalboss_getScreamTime(); + } + break; - case 4: //803907D4 - chjinjonator_80390278(this); - subaddie_set_state_with_direction(this, 5, 0.001f, 1); + case JINJONATOR_STATE_4_PREPARE_SPIN_UP: + chjinjonator_spawnSparkleParticles(this); + subaddie_set_state_with_direction(this, JINJONATOR_STATE_5_SPIN_UP, 0.001f, 1); actor_playAnimationOnce(this); break; - case 5: //80390804 - chjinjonator_80390278(this); - if(actor_animationIsAt(this, 0.998f)){ + case JINJONATOR_STATE_5_SPIN_UP: + chjinjonator_spawnSparkleParticles(this); + + if (actor_animationIsAt(this, 0.998f)) { animctrl_setSmoothTransition(this->animctrl, FALSE); - subaddie_set_state_with_direction(this, 6, 0.0001f, 1); + subaddie_set_state_with_direction(this, JINJONATOR_STATE_6_ATTACK, 0.0001f, 1); actor_loopAnimation(this); - if(this->unk44_31 == 0){ - local->unk18 = 0.1f; - local->unk14 = 0.4f; + + if (this->unk44_31 == 0) { + local->sfx_volume_adjust = 0.1f; + local->sfx_volume = 0.4f; this->unk44_31 = func_8030ED2C(0x416, 3); sfxsource_setSampleRate(this->unk44_31, 26000); - sfxsource_playSfxAtVolume(this->unk44_31, local->unk14); + sfxsource_playSfxAtVolume(this->unk44_31, local->sfx_volume); func_8030E2C4(this->unk44_31); - }//L803908AC - local->unk1C = 0.5f; + } + + local->boss_claw_sfx_volume = 0.5f; } break; - case 6: //803908BC - this->position[1] = MIN(1e+8f, this->position[1] + 80.0f*sp58); - animctrl_setDuration(this->animctrl, MAX(0.4, sp54 - (0.5*sp58))); - chjinjonator_80390278(this); + case JINJONATOR_STATE_6_ATTACK: + this->position[1] = MIN(1e+8f, this->position[1] + 80.0f * time_delta); + animctrl_setDuration(this->animctrl, MAX(0.4, sp54 - (0.5 * time_delta))); + chjinjonator_spawnSparkleParticles(this); if(actor_animationIsAt(this, 0.25f) || actor_animationIsAt(this, 0.75f)){ - FUNC_8030E624(SFX_2_CLAW_SWIPE, local->unk1C, 26000); - local->unk1C += 0.04; - }//L80390A4C + FUNC_8030E624(SFX_2_CLAW_SWIPE, local->boss_claw_sfx_volume, 26000); + local->boss_claw_sfx_volume += 0.04; + } chjinjonator_8039040C(this); if(actor_animationIsAt(this, 0.5f)){ - if(--local->unk28 <= 0){ + if(--local->attack_timer <= 0){ chjinjonator_803903C4(this); FUNC_8030E8B4(SFX_135_CARTOONY_SPRING, 1.0f, 32000, this->position, 10000, 16000); func_80324D54(0.1f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f); @@ -268,24 +260,26 @@ void chjinjonator_update(Actor *this){ } func_80324D2C(0.0f, COMUSIC_8C_JINJONATOR_POWERUP); func_8034A174(this->marker->unk44, 0x1f, this->position); - this->velocity[0] = (this->position[0] - this->unk1C[0]) / sp58; - this->velocity[1] = (this->position[1] - this->unk1C[1]) / sp58; - this->velocity[2] = (this->position[2] - this->unk1C[2]) / sp58; + this->velocity[0] = (this->position[0] - this->unk1C[0]) / time_delta; + this->velocity[1] = (this->position[1] - this->unk1C[1]) / time_delta; + this->velocity[2] = (this->position[2] - this->unk1C[2]) / time_delta; } - }//L80390B60 + } else{ func_8034A174(this->marker->unk44, 0x1f, this->unk1C); } break; - case 7: //80390B78 - sp50 = local->unk24*0.11 + 1.0; - chjinjonator_80390278(this); - fight_func_8038C0DC(local->unk8); - local->unk8[1] += 100.0f; - func_80387470(this, local->unk8, sp50*2400.0f, sp50*2400.0f*4.2, 170.0f, sp50*2500.0f, 0.0f); + + case JINJONATOR_STATE_7_ATTACK_END: + sp50 = local->hit_count*0.11 + 1.0; + chjinjonator_spawnSparkleParticles(this); + chfinalboss_getPosition(local->position_finalboss); + local->position_finalboss[1] += 100.0f; + chfinalboss_func_80387470(this, local->position_finalboss, sp50*2400.0f, sp50*2400.0f*4.2, 170.0f, sp50*2500.0f, 0.0f); break; - case 8: //80390C48 + + case JINJONATOR_STATE_8: if(actor_animationIsAt(this, 0.16f) || actor_animationIsAt(this, 0.47f)) FUNC_8030E624(SFX_2_CLAW_SWIPE, 1.0f, 28000); @@ -297,129 +291,134 @@ void chjinjonator_update(Actor *this){ this->velocity[2] = 0.0f; this->velocity[1] = 0.0f; this->velocity[0] = 0.0f; - } break; - case 9: //80390D20 - if(actor_animationIsAt(this, 0.16f) || actor_animationIsAt(this, 0.47f)) + case JINJONATOR_STATE_9_FINAL_ATTACK_POWER_UP: + if (actor_animationIsAt(this, 0.16f) || actor_animationIsAt(this, 0.47f)) { FUNC_8030E624(SFX_2_CLAW_SWIPE, 1.0f, 28000); + } - if(actor_animationIsAt(this, 0.8f)){ + if (actor_animationIsAt(this, 0.8f)) { sp4C = func_802F9AA8(SFX_141_MECHANICAL_WINCH); func_802F9F80(sp4C, 0.0f, 5.92f, 0.0f); func_802F9E44(sp4C, 0.1f, 5.92f, 0.3f, 1.0f); func_802FA060(sp4C, 32000, 32000, 0.0f); } - if(actor_animationIsAt(this, 0.999f)){ - subaddie_set_state_with_direction(this, 0xA, 0.001f, 1); + if (actor_animationIsAt(this, 0.999f)) { + subaddie_set_state_with_direction(this, JINJONATOR_STATE_10_FINAL_ATTACK_PREPARE, 0.001f, 1); actor_loopAnimation(this); - local->unk20 = 0xE; + local->final_attack_countdown = 14; } break; - case 10: //80390E1C - if(actor_animationIsAt(this, 0.999f)){ - local->unk20--; + case JINJONATOR_STATE_10_FINAL_ATTACK_PREPARE: + if (actor_animationIsAt(this, 0.999f)) { + local->final_attack_countdown--; } - if(local->unk20 == 2 && actor_animationIsAt(this, 0.1f)){ + if (local->final_attack_countdown == 2 && actor_animationIsAt(this, 0.1f)) { FUNC_8030E624(SFX_176_JINJONATOR_JINJOOO_1, 1.0f, 32000); timed_playSfx(0.66f, SFX_176_JINJONATOR_JINJOOO_1, 0.9f, 32000); - }//L80390E90 + } - if(local->unk20 <= 0){ + if (local->final_attack_countdown <= 0) { s32 text_id; - subaddie_set_state_with_direction(this, 0xB, 0.001f, 1); + subaddie_set_state_with_direction(this, JINJONATOR_STATE_11_FINAL_ATTACK, 0.001f, 1); actor_playAnimationOnce(this); func_802BB41C(0); text_id = 0x115e + randi2(0,5); gcdialog_showText(text_id, 0x20, 0, 0, 0, 0); } break; - case 11: //80390EF8 - if(actor_animationIsAt(this, 0.999f)){ + + case JINJONATOR_STATE_11_FINAL_ATTACK: + if (actor_animationIsAt(this, 0.999f)) { func_8034A174(this->marker->unk44, 0x1f, this->position); FUNC_8030E624(SFX_17B_AIRPLANE_FALLING, 1.0f, 32000); FUNC_8030E624(SFX_147_GRUNTY_SPELL_ATTACK_2, 1.0f, 32000); animctrl_setSmoothTransition(this->animctrl, 0); - subaddie_set_state_with_direction(this, 0xC, 0.001f, 1); + subaddie_set_state_with_direction(this, JINJONATOR_STATE_12_FINAL_ATTACK_END, 0.001f, 1); actor_playAnimationOnce(this); this->velocity[2] = 0.0f; this->velocity[1] = 0.0f; this->velocity[0] = 0.0f; - } + break; - case 12: //80390F7C - sp48 = local->unk24*0.11 + 1.0; - chjinjonator_80390278(this); - fight_func_8038C0DC(local->unk8); - local->unk8[1] += 100.0f; - func_80387470(this, local->unk8, sp48*2400.0f, sp48*2400.0f*4.2, 170.0f, sp48*2500.0f, 0.0f); + + case JINJONATOR_STATE_12_FINAL_ATTACK_END: + sp48 = local->hit_count * 0.11 + 1.0; + chjinjonator_spawnSparkleParticles(this); + chfinalboss_getPosition(local->position_finalboss); + local->position_finalboss[1] += 100.0f; + chfinalboss_func_80387470(this, local->position_finalboss, sp48*2400.0f, sp48*2400.0f*4.2, 170.0f, sp48*2500.0f, 0.0f); break; - }//L80391044 + } + func_8034A174(this->marker->unk44, 0x1f, D_80392920); } void chjinjonator_attack(ActorMarker *marker, s32 hit_count, bool mirrored) { - Actor *temp_s0; - ActorLocal_fight_9850 *local; + Actor *actor_jinjonator = marker_getActor(marker); + ActorLocal_Jinjonator *local = (ActorLocal_Jinjonator *) &actor_jinjonator->local; s32 pad; - - temp_s0 = marker_getActor(marker); - local = (ActorLocal_fight_9850 *)&temp_s0->local; - func_8025A6EC(D_80392060[hit_count-1], 20000); + func_8025A6EC(chJinjonatorHitSounds[hit_count - 1], 20000); - chjinjonator_spawnAttackParticles(temp_s0, hit_count); - FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, temp_s0->position, 1000, 6500); + chjinjonator_spawnAttackParticles(actor_jinjonator, hit_count); + FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor_jinjonator->position, 1000, 6500); - temp_s0->velocity[2] = 0.0f; - temp_s0->velocity[1] = 0.0f; - temp_s0->velocity[0] = 0.0f; + actor_jinjonator->velocity[2] = 0.0f; + actor_jinjonator->velocity[1] = 0.0f; + actor_jinjonator->velocity[0] = 0.0f; - temp_s0->yaw = (f32)D_8039203C[hit_count-1]; + actor_jinjonator->yaw = (f32)chJinjonatorHitYawValue[hit_count - 1]; if (mirrored) { - temp_s0->yaw = (f32) (temp_s0->yaw + 180.0f); + actor_jinjonator->yaw = (f32) (actor_jinjonator->yaw + 180.0f); } - local->unk24 = hit_count; - animctrl_setSmoothTransition(temp_s0->animctrl, 1); - actor_playAnimationOnce(temp_s0); - if (&D_8039203C[hit_count] >= D_80392060) { - subaddie_set_state_with_direction(temp_s0, 9, 0.001f, 1); + + local->hit_count = hit_count; + animctrl_setSmoothTransition(actor_jinjonator->animctrl, 1); + actor_playAnimationOnce(actor_jinjonator); + + if (&chJinjonatorHitYawValue[hit_count] >= chJinjonatorHitSounds) { + subaddie_set_state_with_direction(actor_jinjonator, JINJONATOR_STATE_9_FINAL_ATTACK_POWER_UP, 0.001f, 1); return; } - subaddie_set_state_with_direction(temp_s0, 8, 0.001f, 1); - animctrl_setDuration(temp_s0->animctrl, (f32) (1.75 - 0.11 * local->unk24)); + + subaddie_set_state_with_direction(actor_jinjonator, JINJONATOR_STATE_8, 0.001f, 1); + animctrl_setDuration(actor_jinjonator->animctrl, (f32) (1.75 - 0.11 * local->hit_count)); } -void chjinjonator_finalAttack(ActorMarker *marker){ +void chjinjonator_finalAttack(ActorMarker *marker) { Actor *actor = marker_getActor(marker); - chjinjonator_spawnAttackParticles(actor, 0xa); + chjinjonator_spawnAttackParticles(actor, 10); marker_despawn(actor->marker); } -f32 chjinjonator_80391234(void){ +f32 chjinjonator_80391234(void) { return 3.3f; } -f32 chjinjonator_80391240(void){ +f32 chjinjonator_80391240(void) { return 2.0; } -f32 chjinjonator_80391250(void){ +f32 chjinjonator_80391250(void) { return 4.62f; } -bool chjinjonator_8039125C(ActorMarker *marker){ +bool chjinjonator_8039125C(ActorMarker *marker) { u32 state = (u32) (marker_getActor(marker))->state; - if (state == 0x7 || state == 0xC) { + + if (state == JINJONATOR_STATE_7_ATTACK_END || state == JINJONATOR_STATE_12_FINAL_ATTACK_END) { return TRUE; } + return FALSE; } diff --git a/src/fight/chjinjonatorbase.c b/src/fight/chjinjonatorbase.c index 594645ea..0a7e9f68 100644 --- a/src/fight/chjinjonatorbase.c +++ b/src/fight/chjinjonatorbase.c @@ -4,61 +4,36 @@ #include "fight.h" typedef struct { - u8 unk0[4]; -}ActorLocal_fight_7BE0; + u8 egg_hits[4]; +} ActorLocal_BossJinjonatorBase; -void chjinjonatorbase_update(Actor *); +ActorInfo chJinjonatorBase = { MARKER_27F_JINJONATOR_STATUE_BASE, ACTOR_3A9_JINJONATOR_STATUE_BASE, ASSET_544_MODEL_JINJONATOR_STATUE_BASE, 1, NULL, chjinjonatorbase_update, actor_update_func_80326224, actor_draw, 0, 2048, 0.0f, 0 }; -/* .data */ -ActorInfo chJinjonatorBase = { - MARKER_27F_JINJONATOR_STATUE_BASE, ACTOR_3A9_JINJONATOR_STATUE_BASE, ASSET_544_MODEL_JINJONATOR_STATUE_BASE, - 0x1, NULL, - chjinjonatorbase_update, func_80326224, actor_draw, - 0, 0x800, 0.0f, 0 -}; +s32 chJinjonatorBase_SmokeColor[3] = { 200, 200, 160 }; +ParticleScaleAndLifetimeRanges chJinjonatorBase_SmokeScaleAndLifetimeSettings = { {1.0f, 1.0f}, {1.7f, 2.7f}, {0.0f, 0.05f}, {2.6f, 3.4f}, 0.0f, 0.1f }; +ParticleSettingsVelocityPosition chJinjonatorBase_SmokeVelocityPositionSettings = { { {-170.0f, 0.0f, -170.0f}, {170.0f, 100.0f, 170.0f} }, { {-90.0f, 0.0f, -80.0f}, {80.0f, 60.0f, 80.0f} } }; -s32 D_80391A64[3] = {0xC8, 0xC8, 0xA0}; - -ParticleScaleAndLifetimeRanges fight_D_80391A70 = { - {1.0f, 1.0f}, - {1.7f, 2.7f}, - {0.0f, 0.05f}, - {2.6f, 3.4f}, - 0.0f, 0.1f -}; - -struct42s D_80391A98 = { - { {-170.0f, 0.0f, -170.0f}, {170.0f, 100.0f, 170.0f}}, - { {-90.0f, 0.0f, -80.0f}, - {80.0f, 60.0f, 80.0f} - } -}; - -/* .code */ void chjinjonatorbase_spawnStoneJinjo(ActorMarker *marker) { - Actor *this; - Actor *stone_jinjo; + Actor *actor_jinjonatorbase = marker_getActor(marker); + Actor *actor_stonejinjo = spawn_child_actor(ACTOR_3A1_STONE_JINJO, &actor_jinjonatorbase); - this = marker_getActor(marker); - stone_jinjo = spawn_child_actor(ACTOR_3A1_STONE_JINJO, &this); - stone_jinjo->unkF4_8 = this->unkF4_8; - stone_jinjo->position_y = stone_jinjo->position_y + 155.0f; - this->unk100 = stone_jinjo->marker; + actor_stonejinjo->unkF4_8 = actor_jinjonatorbase->unkF4_8; + actor_stonejinjo->position_y = actor_stonejinjo->position_y + 155.0f; + actor_jinjonatorbase->unk100 = actor_stonejinjo->marker; } -void func_8038E03C(f32 arg0[3], u32 arg1) { - ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg1); - - particleEmitter_setSprite(temp_v0, ASSET_70E_SPRITE_SMOKE_2); - particleEmitter_setRGB(temp_v0, D_80391A64); - particleEmitter_setStartingFrameRange(temp_v0, 0, 7); - particleEmitter_setPosition(temp_v0, arg0); - particleEmitter_setPositionAndVelocityRanges(temp_v0, &D_80391A98); - particleEmitter_setScaleAndLifetimeRanges(temp_v0, &fight_D_80391A70); - particleEmitter_emitN(temp_v0, arg1); +void chjinjonatorbase_createSmokeParticles(f32 position[3], s32 count) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, ASSET_70E_SPRITE_SMOKE_2); + particleEmitter_setRGB(pCtrl, chJinjonatorBase_SmokeColor); + particleEmitter_setStartingFrameRange(pCtrl, 0, 7); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setPositionAndVelocityRanges(pCtrl, &chJinjonatorBase_SmokeVelocityPositionSettings); + particleEmitter_setScaleAndLifetimeRanges(pCtrl, &chJinjonatorBase_SmokeScaleAndLifetimeSettings); + particleEmitter_emitN(pCtrl, count); } -void func_8038E0D4(Actor *arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { +void chjinjonatorbase_func_8038E0D4(Actor *arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { s32 temp_v0 = func_8034C2C4(arg0->marker, arg1); if (temp_v0) { @@ -66,67 +41,70 @@ void func_8038E0D4(Actor *arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } -void func_8038E120(ActorMarker * marker, ActorMarker *arg1){ - Actor *actor = marker_getActor(marker); - ActorLocal_fight_7BE0 * local = (ActorLocal_fight_7BE0 *)&actor->local; - int indx; - s32 remaining; - f32 pad; - +void chjinjonatorbase_getHitByEgg(ActorMarker *this, ActorMarker *other) { + Actor *actor_jinjonatorbase = marker_getActor(this); + ActorLocal_BossJinjonatorBase *local = (ActorLocal_BossJinjonatorBase *) &actor_jinjonatorbase->local; + int indx = this->unk40_31 - 1; + s32 remaining_hits; + f32 pad; - indx = marker->unk40_31 - 1; - if(actor->state != 3){ - if(local->unk0[indx]){ - local->unk0[indx]--; + if (actor_jinjonatorbase->state != CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO) { + if (local->egg_hits[indx]) { + local->egg_hits[indx]--; comusic_playTrack(COMUSIC_2B_DING_B); - if(local->unk0[indx] <= 0){ - func_8038E0D4(actor, indx + 0x19a, -100.0f, 0.0f, 1.2f); - func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, actor->position, 1000.0f, 2000.0f); + + if (local->egg_hits[indx] <= 0) { + chjinjonatorbase_func_8038E0D4(actor_jinjonatorbase, indx + 0x19a, -100.0f, 0.0f, 1.2f); + func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, actor_jinjonatorbase->position, 1000.0f, 2000.0f); } - }//L8038E210 - remaining = local->unk0[0] + local->unk0[1] + local->unk0[2] + local->unk0[3]; - if( remaining <= 0){ - func_8038C148(); - subaddie_set_state(actor, 3); - chstonejinjo_breakOpen(actor->unk100); } - }//L8038E24C + + remaining_hits = local->egg_hits[0] + local->egg_hits[1] + local->egg_hits[2] + local->egg_hits[3]; + + if (remaining_hits <= 0) { + chfinalboss_setBossDefeated(); + subaddie_set_state(actor_jinjonatorbase, CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO); + chstonejinjo_breakOpen(actor_jinjonatorbase->unk100); + } + } } -void func_8038E260(ActorMarker *arg0) { - Actor *sp24 = marker_getActor(arg0); +void chjinjonatorbase_spawnActivator(ActorMarker *marker) { + Actor *sp24 = marker_getActor(marker); func_802BB3DC(0, 18.0f, 0.92f); - __spawnQueue_add_4((GenFunction_4) spawnQueue_actor_f32, 0x3AD, *(u32 *)(&sp24->unk1C_x), *(u32 *)(&sp24->unk1C_y), *(u32 *)(&sp24->unk1C_z)); - func_8038E03C(sp24->unk1C, 0x10); + __spawnQueue_add_4((GenFunction_4) spawnQueue_actor_f32, ACTOR_3AD_JINJONATOR_STATUE_BASE_ACTIVATOR, *(u32 *)(&sp24->unk1C_x), *(u32 *)(&sp24->unk1C_y), *(u32 *)(&sp24->unk1C_z)); + chjinjonatorbase_createSmokeParticles(sp24->unk1C, 16); } -void func_8038E2CC(ActorMarker *arg0) { - func_8032BB88(marker_getActor(arg0), -1, 0x7FFF); +void chjinjonatorbase_func_8038E2CC(ActorMarker *marker) { + func_8032BB88(marker_getActor(marker), -1, 0x7FFF); } void chjinjonatorbase_update(Actor *this){ - ActorLocal_fight_7BE0 *local = (ActorLocal_fight_7BE0 *)&this->local; - f32 sp58 = time_getDelta(); - s32 temp_s1 = globalTimer_getTime() & 0xf; + ActorLocal_BossJinjonatorBase *local = (ActorLocal_BossJinjonatorBase *) &this->local; + f32 delta_time = time_getDelta(); + s32 rumbling = globalTimer_getTime() & 0x0F; s32 temp_s0; int i; - Actor *other; - f32 temp_f20; - f32 sp38[3]; - + Actor *actor_jinjonator; + f32 y_delta; + f32 position_delta[3]; marker_loadModelBin(this->marker); - if(!this->volatile_initialized){ + + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; - marker_setCollisionScripts(this->marker, NULL, func_8038E120, NULL); + marker_setCollisionScripts(this->marker, NULL, chjinjonatorbase_getHitByEgg, NULL); this->marker->propPtr->unk8_3 = 1; actor_collisionOn(this); - for(i = 0; i < 4; i++){ - local->unk0[i] = 5; - func_8038E0D4(this, 0x19a + i, 0.0f, -300.0f, 0.0f); + + for (i = 0; i < 4; i++) { + local->egg_hits[i] = 5; + chjinjonatorbase_func_8038E0D4(this, 0x19a + i, 0.0f, -300.0f, 0.0f); } + this->unk44_31 = sfxsource_createSfxsourceAndReturnIndex(); sfxsource_setSfxId(this->unk44_31, 0x3f9); func_8030DD14(this->unk44_31, 3); @@ -140,70 +118,70 @@ void chjinjonatorbase_update(Actor *this){ func_802FA060(temp_s0, 17000, 17000, 0.0f); func_8025A6EC(JINGLE_MENACING_GRUNTILDA_A, 15000); func_8032BB88(this, 0, 0x7fff); - timedFunc_set_1(8.0f, (GenFunction_1)func_8038E2CC, reinterpret_cast(s32,this->marker)); + timedFunc_set_1(8.0f, (GenFunction_1)chjinjonatorbase_func_8038E2CC, reinterpret_cast(s32,this->marker)); this->unk1C[0] = this->position_x; this->unk1C[1] = this->position_y; this->unk1C[2] = this->position_z; this->position_y = -600.0f; FUNC_8030E624(SFX_3F6_RUBBING, 0.6f, 25000); - if(0.0f != this->lifetime_value){ + + if (0.0f != this->lifetime_value){ this->velocity_y = 600.0f/this->lifetime_value; - }else{ + } else { this->velocity_y = 100.0f; } - timedFunc_set_1(this->lifetime_value* 0.05, (GenFunction_1)func_8038E260, reinterpret_cast(s32,this->marker)); - timedFunc_set_1(this->lifetime_value* 0.28, (GenFunction_1) func_8038E260, reinterpret_cast(s32,this->marker)); - timedFunc_set_1(this->lifetime_value* 0.46, (GenFunction_1) func_8038E260, reinterpret_cast(s32,this->marker)); - timedFunc_set_1(this->lifetime_value* 0.58, (GenFunction_1) func_8038E260, reinterpret_cast(s32,this->marker)); + + timedFunc_set_1(this->lifetime_value* 0.05, (GenFunction_1)chjinjonatorbase_spawnActivator, reinterpret_cast(s32,this->marker)); + timedFunc_set_1(this->lifetime_value* 0.28, (GenFunction_1) chjinjonatorbase_spawnActivator, reinterpret_cast(s32,this->marker)); + timedFunc_set_1(this->lifetime_value* 0.46, (GenFunction_1) chjinjonatorbase_spawnActivator, reinterpret_cast(s32,this->marker)); + timedFunc_set_1(this->lifetime_value* 0.58, (GenFunction_1) chjinjonatorbase_spawnActivator, reinterpret_cast(s32,this->marker)); SPAWNQUEUE_ADD_1(chjinjonatorbase_spawnStoneJinjo, this->marker); - } - else{//L8038E5CC - if(this->state == 1){ - other = marker_getActor(this->unk100); - temp_f20 = this->velocity_y * sp58; - if(this->position_y + temp_f20 < this->unk1C[1]){ - if(!func_8030E3FC(this->unk44_31)){ + else { + if(this->state == CHBOSSJINJOBASE_STATE_1_RAISE) { + actor_jinjonator = marker_getActor(this->unk100); + y_delta = this->velocity_y * delta_time; + + if(this->position_y + y_delta < this->unk1C[1]) { + if (!func_8030E3FC(this->unk44_31)) { func_8030E2C4(this->unk44_31); } - sp38[0] = (temp_s1 & 1) ? 3.0f : -3.0f; - sp38[1] = temp_f20; - sp38[2] = (temp_s1 & 2) ? 3.0f : -3.0f; + position_delta[0] = (rumbling & 1) ? 3.0f : -3.0f; + position_delta[1] = y_delta; + position_delta[2] = (rumbling & 2) ? 3.0f : -3.0f; this->position_x = this->unk1C[0]; this->position_z = this->unk1C[2]; - this->position_x = sp38[0] + this->position_x; - this->position_y = sp38[1] + this->position_y; - this->position_z = sp38[2] + this->position_z; + this->position_x = position_delta[0] + this->position_x; + this->position_y = position_delta[1] + this->position_y; + this->position_z = position_delta[2] + this->position_z; - other->position_x = this->unk1C[0]; - other->position_z = this->unk1C[2]; + actor_jinjonator->position_x = this->unk1C[0]; + actor_jinjonator->position_z = this->unk1C[2]; - other->position_x = sp38[0] + other->position_x; - other->position_y = sp38[1] + other->position_y; - other->position_z = sp38[2] + other->position_z; + actor_jinjonator->position_x = position_delta[0] + actor_jinjonator->position_x; + actor_jinjonator->position_y = position_delta[1] + actor_jinjonator->position_y; + actor_jinjonator->position_z = position_delta[2] + actor_jinjonator->position_z; } - else{//L8038E6FC - subaddie_set_state(this, 2); + else { + subaddie_set_state(this, CHBOSSJINJOBASE_STATE_2_DEFAULT); + FUNC_8030E624(SFX_7F_HEAVYDOOR_SLAM, 0.8f, 32000); func_8030E394(this->unk44_31); func_8030DA44(this->unk44_31); this->unk44_31 = 0; + this->position_x = this->unk1C[0]; this->position_y = this->unk1C[1]; this->position_z = this->unk1C[2]; - other->position_x = this->unk1C[0]; - other->position_y = this->unk1C[1]; - other->position_z = this->unk1C[2]; - - other->position_y += 155.0f; - + actor_jinjonator->position_x = this->unk1C[0]; + actor_jinjonator->position_y = this->unk1C[1]; + actor_jinjonator->position_z = this->unk1C[2]; + actor_jinjonator->position_y += 155.0f; } } - }//L8038E768 + } } - - diff --git a/src/fight/chspellbarrier.c b/src/fight/chspellbarrier.c index 849dfb63..ad12941b 100644 --- a/src/fight/chspellbarrier.c +++ b/src/fight/chspellbarrier.c @@ -3,10 +3,7 @@ #include "variables.h" #include "fight.h" -extern ActorMarker *chfinalboss_findCollidingJinjo(Actor*, f32); -void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]); - -typedef struct { +typedef struct chspellbarrier_s { s32 unk0; u8 unk4; u8 unk5; @@ -21,57 +18,49 @@ typedef struct { u8 unkE; u8 unkF; u8 sfxsourceIdx; -} ActorLocal_fight_8390; +} ActorLocal_SpellBarrier; -void chspellbarrier_update(Actor *this); +ActorInfo chSpellBarrier = { MARKER_284_GRUNTY_SPELL_BARRIER, ACTOR_3AB_GRUNTY_SPELL_BARRIER, ASSET_546_MODEL_GRUNTY_SPELL_BARRIER, 1, NULL, chspellbarrier_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0 }; -/* .data */ -ActorInfo chSpellBarrier = { - MARKER_284_GRUNTY_SPELL_BARRIER, ACTOR_3AB_GRUNTY_SPELL_BARRIER, ASSET_546_MODEL_GRUNTY_SPELL_BARRIER, - 0x1, NULL, - chspellbarrier_update, func_80326224, actor_draw, - 0, 0, 0.0f, 0 -}; +void chspellbarrier_collisionPassive(ActorMarker *this, ActorMarker *other) { + Actor *actor_spellbarrier = marker_getActor(this); + ActorLocal_SpellBarrier *local = (ActorLocal_SpellBarrier *) &actor_spellbarrier->local; -/* .code */ -void func_8038E780(ActorMarker *arg0, ActorMarker *arg1) { - Actor *sp1C; - ActorLocal_fight_8390 *sp18; + local->unk0 = 0xFF; + local->unk4 = 0; - sp1C = marker_getActor(arg0); - sp18 = (ActorLocal_fight_8390 *) &sp1C->local; - sp18->unk0 = 0xFF; - sp18->unk4 = 0; - if (func_8030E3FC(sp18->sfxsourceIdx) == 0) { - func_8030E2C4(sp18->sfxsourceIdx); + if (func_8030E3FC(local->sfxsourceIdx) == 0) { + func_8030E2C4(local->sfxsourceIdx); } - if (func_8030E3FC(sp1C->unk44_31) == 0) { - func_8030E2C4(sp1C->unk44_31); + + if (func_8030E3FC(actor_spellbarrier->unk44_31) == 0) { + func_8030E2C4(actor_spellbarrier->unk44_31); } } -void func_8038E7EC(Actor *arg0) { - ActorLocal_fight_8390 *local = (ActorLocal_fight_8390 *)&arg0->local; +void chspellbarrier_free(Actor *this) { + ActorLocal_SpellBarrier *local = (ActorLocal_SpellBarrier *) &this->local; - if ((u8)arg0->unk44_31) { - func_8030DA44(arg0->unk44_31); - arg0->unk44_31 = 0; + if ((u8) this->unk44_31) { + func_8030DA44(this->unk44_31); + this->unk44_31 = 0; } + if (local->sfxsourceIdx != 0) { func_8030DA44(local->sfxsourceIdx); - local->sfxsourceIdx = (u8)0; + local->sfxsourceIdx = 0; } } -void chspellbarrier_update(Actor *this){ - ActorLocal_fight_8390 *local = (ActorLocal_fight_8390 *)&this->local; - f32 sp38 = time_getDelta(); +void chspellbarrier_update(Actor *this) { + ActorLocal_SpellBarrier *local = (ActorLocal_SpellBarrier *) &this->local; + f32 delta_time = time_getDelta(); ActorMarker *jinjo_marker; - if(!this->volatile_initialized){ + if (!this->volatile_initialized){ this->volatile_initialized = TRUE; - marker_setCollisionScripts(this->marker, NULL, func_8038E780, NULL); - marker_setFreeMethod(this->marker, func_8038E7EC); + marker_setCollisionScripts(this->marker, NULL, chspellbarrier_collisionPassive, NULL); + marker_setFreeMethod(this->marker, chspellbarrier_free); this->marker->propPtr->unk8_3 = 0; actor_collisionOn(this); local->unk0 = 0; @@ -85,51 +74,54 @@ void chspellbarrier_update(Actor *this){ func_8030DB04(local->sfxsourceIdx, 32000, this->position, 4000.0f, 12000.0f); sfxsource_playSfxAtVolume(local->sfxsourceIdx, 1.0f); FUNC_8030E8B4(SFX_416, 0.8f, 32000, this->position, 10000, 25000); - }//L8038E97C + } + jinjo_marker = chfinalboss_findCollidingJinjo(this, 600.0f); - if(jinjo_marker){ - if(jinjo_marker->id == MARKER_285_JINJONATOR){ + + if (jinjo_marker) { + if (jinjo_marker->id == MARKER_285_JINJONATOR) { marker_despawn(this->marker); chfinalboss_spellBarrierInactive(); return; - } - else{ + } else { local->unk0 = 0; local->unk4 = 1; actor_setOpacity(this, 0); this->unk58_0 = 0; - this->lifetime_value = 2.0f; + this->lifetime_value = 2.0f; } - } //L8038E9F4 - if(this->state == 1){ - this->yaw += 30.0f*sp38; - if(this->scale < 1.0){ - this->scale = MIN(1.0, this->scale + ((f64)sp38 + (f64)sp38)); - }//L8038EA68 + } - if(0.0 < this->lifetime_value){ - this->unk58_0 = 0; - this->lifetime_value -= sp38; + if (this->state == 1) { + this->yaw += 30.0f * delta_time; + if (this->scale < 1.0) { + this->scale = MIN(1.0, this->scale + ((f64)delta_time + (f64)delta_time)); } - else{ //L8038EAA4 + + if (0.0 < this->lifetime_value) { + this->unk58_0 = 0; + this->lifetime_value -= delta_time; + } else { this->unk58_0 = 1; - if(local->unk4){ - local->unk0 = MIN(0x64, local->unk0 + (s32)(60.0f*sp38)); + + if (local->unk4) { + local->unk0 = MIN(0x64, local->unk0 + (s32)(60.0f * delta_time)); + if(local->unk0 >= 0x64){ local->unk0 = 0x64; local->unk4 = 0; } - } - else{//L8038EB20 - local->unk0 = MAX(0, local->unk0 - (s32)(60.0f*sp38)); - if(local->unk0 <= 0){ + } else { + local->unk0 = MAX(0, local->unk0 - (s32)(60.0f*delta_time)); + + if (local->unk0 <= 0) { local->unk0 = 0; local->unk4 = 1; this->lifetime_value = 0.25f; } - }//L8038EB74 + } + actor_setOpacity(this, local->unk0); } } - //L8038EB80 } diff --git a/src/fight/chspellfireball.c b/src/fight/chspellfireball.c index 25def0c1..3b4bcc8e 100644 --- a/src/fight/chspellfireball.c +++ b/src/fight/chspellfireball.c @@ -5,405 +5,361 @@ #include "core2/particle.h" extern void func_80324CFC(f32, s32, s32); -extern void func_80386654(f32 arg0, f32 arg1[4], f32 arg2[4]); -extern void func_8038E03C(f32*, u32); extern Actor *func_80325CAC(ActorMarker*, Gfx**, Mtx**, Vtx **); bool func_80320C94(f32 [3], f32[3], f32, f32[3], s32, u32); f32 func_8033229C(ActorMarker *); -void func_8038CED8(f32 [3], s32, f32, f32); -void chbossjinjo_spawnParticles(Actor *, s32, s32, f32); -typedef struct { - f32 unk0; -}ActorLocal_fight_87A0; - -void func_8038F620(Actor *this); +typedef struct chspellfireball_s { + f32 explosion_lifetime; +} ActorLocal_SpellFireball; /* .data */ -ActorInfo chSpellFireball = { - MARKER_25C_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL, ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK, - 0x1, NULL, - func_8038F620, func_80326224, actor_draw, - 0, 0, 1.0f, 0 -}; +ActorInfo chSpellFireball = { MARKER_25C_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL, ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK, 1, NULL, chSpellFireball_update, actor_update_func_80326224, actor_draw, 0, 0, 1.0f, 0 }; +ActorInfo chSpellGreen = { MARKER_280_GRUNTY_SPELL_GREEN_ATTACK, ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1, NULL, chSpellFireball_update, actor_update_func_80326224, func_80325CAC, 0, 0, 1.0f, 0 }; -ActorInfo chSpellGreen = { - MARKER_280_GRUNTY_SPELL_GREEN_ATTACK, ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, - 0x1, NULL, - func_8038F620, func_80326224, func_80325CAC, - 0, 0, 1.0f, 0 -}; +static s32 sFightSmokeColor[3] = { 186, 186, 186 }; +ParticleSettingsVelocityPosition sFightSmokeVelocityPosition = { { { -70.0f, 50.0f, -70.0f }, { 70.0f, 100.0f, 70.0f } }, { { -55.0f, 0.0f, -55.0f }, { 55.0f, 20.0f, 55.0f } } }; +static f32 D_80391B84[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; +static f32 D_80391B94[4] = { 0.3f, 0.3f, 0.3f, 1.0f }; +static s32 sFightExplosionStartFrameRange[2] = { 1, 9 }; +static f32 sFightExplosionScaleRange[4] = { 4.5f, 4.5f, 4.5f, 4.5f }; +static f32 sFightExplosionLifetimeRange[4] = { 0.0f, 0.0f, 1.0f, 1.0f }; +static f32 D_80391BCC[4] = { 0.0f, 0.0f, 0.85f, 1.35f }; +static f32 sFightExplosionFadeRange[2] = { 0.6f, 0.7f }; +static f32 sFightExplosionSpawnPositionRange[6] = { -130.0f, 0.0f, -130.0f, 130.0f, 0.0f, 130.0f }; +static f32 D_80391BFC[4] = { 1.1f, 1.1f, 4.0f, 5.4f }; +static f32 D_80391C0C[6] = { -20.0f, 0.0f, -20.0f, 20.0f, 40.0f, 20.0f }; +static f32 D_80391C24[6] = { 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f }; +static f32 D_80391C3C[6] = { -420.0f, 410.0f, -420.0f, 480.0f, 860.0f, 480.0f }; +static f32 D_80391C54[4] = { 0.35f, 0.65f, 0.0f, 0.0f }; +static f32 D_80391C64[4] = { 0.0f, 0.01f, 2.0f, 2.3f }; +static f32 D_80391C74[2] = { 0.0f, 0.35f }; +static f32 D_80391C7C[6] = { 0.0f, 50.0f, 0.0f, 0.0f, 50.0f, 0.0f }; +static f32 D_80391C94[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; +static f32 D_80391CA4[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; +static f32 D_80391CB4[2] = { 0.0f, 0.0f }; +static f32 D_80391CBC[4] = { 0.0f, 0.0f, 0.2f, 0.25f }; +static f32 D_80391DCC[2] = { 2.3f, 2.5f }; +static f32 D_80391DD4[6] = { 0.0f, 0.0f, 0.34f, 0.34f, 0.7f, 0.8f }; +static s32 sFightExplosionStartFrameRange2[2] = { 2, 15 }; +static f32 D_80391CF4[4] = { 2.0f, 2.0f, 0.4f, 0.4f }; +static f32 D_80391D04[4] = { 0.0f, 0.0f, 0.24f, 0.24f }; +static f32 D_80391D14[2] = { 0.1f, 0.2f }; +static f32 D_80391D1C[4] = { 0.0f, 0.0f, 0.44f, 0.44f }; +static f32 D_80391D2C[2] = { 0.4f, 0.5f }; +static f32 D_80391D34[6] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; +static f32 sFightUnused1[6] = { -50.0f, -50.0f, -50.0f, 50.0f, 50.0f, 50.0f }; +static f32 sFightUnused2[6] = { 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f }; +static f32 sFightUnused3[6] = { -260.0f, -260.0f, -260.0f, 260.0f, 260.0f, 260.0f }; +static f32 sFightUnused4[4] = { 0.15f, 0.3f, 0.0f, 0.0f }; +static f32 sFightUnused5[4] = { 0.0f, 0.01f, 0.7f, 0.8f }; +static f32 sFightUnused6[2] = { 0.0f, 0.65f }; +static u8 sFightPlayerHitBySpellInPhase1; +static u8 sFightPlayerHitBySpellInPhase2; +static u8 sFightPlayerHitBySpellInPhase3; +static u8 sFightPlayerHitBySpellInPhase4; +static u8 sFightPlayerHitBySpellInPhase5; +static u8 sFightLastSpellFired; // The big green spell that Gruntilda fires before she falls off the tower -s32 D_80391B48[3] = {0xBA, 0xBA, 0xBA}; -struct42s D_80391B54 = { - { {-70.0f, 50.0f, -70.0f}, {70.0f, 100.0f, 70.0f}}, - { {-55.0f, 0.0f, -55.0f}, {55.0f, 20.0f, 55.0f}} -}; -f32 D_80391B84[4] = {1.0f, 1.0f, 1.0f, 1.0f}; -f32 D_80391B94[4] = {0.3f, 0.3f, 0.3f, 1.0f}; -s32 D_80391BA4[2] = {1, 9}; -f32 D_80391BAC[4] = {4.5f, 4.5f, 4.5f, 4.5f}; -f32 D_80391BBC[4] = {0.0f, 0.0f, 1.0f, 1.0f}; -f32 D_80391BCC[4] = {0.0f, 0.0f, 0.85f, 1.35f}; -f32 D_80391BDC[2] = {0.6f, 0.7f}; -f32 D_80391BE4[6] = {-130.0f, 0.0f, -130.0f, 130.0f, 0.0f, 130.0f}; -f32 D_80391BFC[4] = {1.1f, 1.1f, 4.0f, 5.4f}; +void fight_setPositionWithDisplacement(ActorMarker *marker, f32 *position) { + Actor *actor; -f32 D_80391C0C[6] = {-20.0f, 0.0f, -20.0f, 20.0f, 40.0f, 20.0f}; -f32 D_80391C24[6] = {0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f}; -f32 D_80391C3C[6] = {-420.0f, 410.0f, -420.0f, 480.0f, 860.0f, 480.0f}; -f32 D_80391C54[4] = {0.35f, 0.65f, 0.0f, 0.0f}; -f32 D_80391C64[4] = {0.0f, 0.01f, 2.0f, 2.3f}; -f32 D_80391C74[2] = {0.0f, 0.35f}; - -f32 D_80391C7C[6] = {0.0f, 50.0f, 0.0f, 0.0f, 50.0f, 0.0f}; -f32 D_80391C94[4] = {0.0f, 0.0f, 0.0f, 0.0f}; -f32 D_80391CA4[4] = {0.0f, 0.0f, 0.0f, 0.0f}; -f32 D_80391CB4[2] = {0.0f, 0.0f}; -f32 D_80391CBC[4] = {0.0f, 0.0f, 0.2f, 0.25f}; -f32 D_80391DCC[2] = {2.3f, 2.5f}; -f32 D_80391DD4[6] = {0.0f, 0.0f, 0.34f, 0.34f, 0.7f, 0.8f}; - -s32 D_80391CEC[2] = {2, 0xf}; -f32 D_80391CF4[4] = {2.0f, 2.0f, 0.4f, 0.4f}; -f32 D_80391D04[4] = {0.0f, 0.0f, 0.24f, 0.24f}; -f32 D_80391D14[2] = {0.1f, 0.2f}; -f32 D_80391D1C[4] = {0.0f, 0.0f, 0.44f, 0.44f}; -f32 D_80391D2C[2] = {0.4f, 0.5f}; -f32 D_80391D34[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; - -f32 D_80391D4C[6] = {-50.0f, -50.0f, -50.0f, 50.0f, 50.0f, 50.0f}; -f32 D_80391D64[6] = {0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f}; -f32 D_80391D7C[6] = {-260.0f, -260.0f, -260.0f, 260.0f, 260.0f, 260.0f}; -f32 fight_D_80391D94[4] = {0.15f, 0.3f, 0.0f, 0.0f}; -f32 D_80391DA4[4] = {0.0f, 0.01f, 0.7f, 0.8f}; -f32 D_80391DB4[2] = {0.0f, 0.65f}; - -/* .bss */ -// u8 pad[0x180]; //TODO!!!! define other file .bss sections -u8 fight_D_803928E0; -u8 D_803928E1; -u8 D_803928E2; -u8 D_803928E3; -u8 D_803928E4; -u8 D_803928E5; - -/* .code */ -void func_8038EB90(ActorMarker *arg0, f32 *arg1) { - Actor *temp_v0; - - temp_v0 = marker_getActor(arg0); - temp_v0->position_x = arg1[0]; - temp_v0->position_y = arg1[1]; - temp_v0->position_z = arg1[2]; - temp_v0->position_y = temp_v0->position_y + 210.0f; + actor = marker_getActor(marker); + actor->position_x = position[0]; + actor->position_y = position[1]; + actor->position_z = position[2]; + actor->position_y = actor->position_y + 210.0f; } -void chSpellFireball_emitSparkles(f32 position[3], u32 count, enum asset_e sprite, f32 position_range[6], f32 acceleration_range[6], f32 velocity_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) { - ParticleEmitter *pe = partEmitMgr_newEmitter(count); - - particleEmitter_setSprite(pe, sprite); - particleEmitter_setStartingFrameRange(pe, 1, 6); - particleEmitter_setPosition(pe, position); - particleEmitter_setParticleSpawnPositionRange(pe, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]); - particleEmitter_setParticleAccelerationRange(pe, acceleration_range[0], acceleration_range[1], acceleration_range[2], acceleration_range[3], acceleration_range[4], acceleration_range[5]); - particleEmitter_setParticleVelocityRange(pe, velocity_range[0], velocity_range[1], velocity_range[2], velocity_range[3], velocity_range[4], velocity_range[5]); - particleEmitter_setAngularVelocityRange(pe, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); - particleEmitter_setStartingScaleRange(pe, scale_range[0], scale_range[1]); - particleEmitter_setFinalScaleRange(pe, scale_range[2], scale_range[3]); - func_802EF9F8(pe, 0.5f); - func_802EFA18(pe, 3); - particleEmitter_setSpawnIntervalRange(pe, lifetime_range[0], lifetime_range[1]); - particleEmitter_setParticleLifeTimeRange(pe, lifetime_range[2], lifetime_range[3]); - particleEmitter_setFade(pe, fade[0], fade[1]); - func_802EFA78(pe, 1); - particleEmitter_setDrawMode(pe, 4); - particleEmitter_emitN(pe, count); +void fight_createSpriteParticles(f32 position[3], s32 count, enum asset_e sprite, f32 position_range[6], f32 acceleration_range[6], f32 velocity_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, sprite); + particleEmitter_setStartingFrameRange(pCtrl, 1, 6); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setSpawnPositionRange(pCtrl, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]); + particleEmitter_setAccelerationRange(pCtrl, acceleration_range[0], acceleration_range[1], acceleration_range[2], acceleration_range[3], acceleration_range[4], acceleration_range[5]); + particleEmitter_setParticleVelocityRange(pCtrl, velocity_range[0], velocity_range[1], velocity_range[2], velocity_range[3], velocity_range[4], velocity_range[5]); + particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); + particleEmitter_setStartingScaleRange(pCtrl, scale_range[0], scale_range[1]); + particleEmitter_setFinalScaleRange(pCtrl, scale_range[2], scale_range[3]); + particleEmitter_func_802EF9F8(pCtrl, 0.5f); + particleEmitter_func_802EFA18(pCtrl, 3); + particleEmitter_setSpawnIntervalRange(pCtrl, lifetime_range[0], lifetime_range[1]); + particleEmitter_setParticleLifeTimeRange(pCtrl, lifetime_range[2], lifetime_range[3]); + particleEmitter_setFade(pCtrl, fade[0], fade[1]); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_setDrawMode(pCtrl, 4); + particleEmitter_emitN(pCtrl, count); } -void chSpellFireball_emitExplosion(f32 position[3], enum asset_e sprite, s32 count, s32 staring_frame_range[2], f32 position_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) { - ParticleEmitter *pe = partEmitMgr_newEmitter(count); - - particleEmitter_setSprite(pe, sprite); - particleEmitter_setStartingFrameRange(pe, staring_frame_range[0], staring_frame_range[1]); - particleEmitter_setParticleFramerateRange(pe, 8.0f, 8.0f); - particleEmitter_setPosition(pe, position); - particleEmitter_setParticleSpawnPositionRange(pe, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]); - particleEmitter_setParticleVelocityRange(pe, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - particleEmitter_setStartingScaleRange(pe, scale_range[0], scale_range[1]); - particleEmitter_setFinalScaleRange(pe, scale_range[2], scale_range[3]); - particleEmitter_setSpawnIntervalRange(pe, lifetime_range[0], lifetime_range[1]); - particleEmitter_setParticleLifeTimeRange(pe, lifetime_range[2], lifetime_range[3]); - particleEmitter_setFade(pe, fade[0], fade[1]); - particleEmitter_setDrawMode(pe, PART_EMIT_NO_DEPTH); - func_802EFA78(pe, 1); - particleEmitter_emitN(pe, count); +void fight_createAnimatedSpriteParticles(f32 position[3], enum asset_e sprite, s32 count, s32 staring_frame_range[2], f32 position_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, sprite); + particleEmitter_setStartingFrameRange(pCtrl, staring_frame_range[0], staring_frame_range[1]); + particleEmitter_setParticleFramerateRange(pCtrl, 8.0f, 8.0f); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setSpawnPositionRange(pCtrl, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]); + particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + particleEmitter_setStartingScaleRange(pCtrl, scale_range[0], scale_range[1]); + particleEmitter_setFinalScaleRange(pCtrl, scale_range[2], scale_range[3]); + particleEmitter_setSpawnIntervalRange(pCtrl, lifetime_range[0], lifetime_range[1]); + particleEmitter_setParticleLifeTimeRange(pCtrl, lifetime_range[2], lifetime_range[3]); + particleEmitter_setFade(pCtrl, fade[0], fade[1]); + particleEmitter_setDrawMode(pCtrl, PART_EMIT_NO_DEPTH); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_emitN(pCtrl, count); } -void chSpellFireball_emitSmoke(f32 position[3], u32 count, f32 *lifetime_and_spawn_range) { - ParticleEmitter *pe = partEmitMgr_newEmitter(count); - - particleEmitter_setSprite(pe, ASSET_70E_SPRITE_SMOKE_2); - particleEmitter_setRGB(pe, D_80391B48); - particleEmitter_setAlpha(pe, 0xEB); - particleEmitter_setStartingFrameRange(pe, 0, 7); - particleEmitter_setPosition(pe, position); - particleEmitter_setPositionAndVelocityRanges(pe, &D_80391B54); - particleEmitter_setStartingScaleRange(pe, 0.1f, 0.2f); - particleEmitter_setFinalScaleRange(pe, 3.6f, 4.6f); - particleEmitter_setSpawnIntervalRange(pe, lifetime_and_spawn_range[0], lifetime_and_spawn_range[1]); - particleEmitter_setParticleLifeTimeRange(pe, lifetime_and_spawn_range[2], lifetime_and_spawn_range[3]); - particleEmitter_setFade(pe, 0.05f, 0.1f); - particleEmitter_setDrawMode(pe, PART_EMIT_NO_DEPTH); - func_802EFA78(pe, 1); - particleEmitter_emitN(pe, count); +void fight_createSmokeParticles(f32 position[3], s32 count, f32 *lifetime_and_spawn_range) { + ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count); + particleEmitter_setSprite(pCtrl, ASSET_70E_SPRITE_SMOKE_2); + particleEmitter_setRGB(pCtrl, sFightSmokeColor); + particleEmitter_setAlpha(pCtrl, 235); + particleEmitter_setStartingFrameRange(pCtrl, 0, 7); + particleEmitter_setPosition(pCtrl, position); + particleEmitter_setPositionAndVelocityRanges(pCtrl, &sFightSmokeVelocityPosition); + particleEmitter_setStartingScaleRange(pCtrl, 0.1f, 0.2f); + particleEmitter_setFinalScaleRange(pCtrl, 3.6f, 4.6f); + particleEmitter_setSpawnIntervalRange(pCtrl, lifetime_and_spawn_range[0], lifetime_and_spawn_range[1]); + particleEmitter_setParticleLifeTimeRange(pCtrl, lifetime_and_spawn_range[2], lifetime_and_spawn_range[3]); + particleEmitter_setFade(pCtrl, 0.05f, 0.1f); + particleEmitter_setDrawMode(pCtrl, PART_EMIT_NO_DEPTH); + particleEmitter_func_802EFA78(pCtrl, 1); + particleEmitter_emitN(pCtrl, count); } -void func_8038F01C(void) { - func_80386654(1.0f, D_80391B94, D_80391B84); +void chSpellFireball_func_8038F01C(void) { + chfinalboss_func_80386654(1.0f, D_80391B94, D_80391B84); } -void func_8038F050(void) { - func_80386654(1.0f, D_80391B84, D_80391B94); +void chSpellFireball_func_8038F050(void) { + chfinalboss_func_80386654(1.0f, D_80391B84, D_80391B94); } -void func_8038F084(ActorMarker *marker){ - static f32 D_803928E8[3]; +void chSpellFireball_createExplosionParticles(ActorMarker *marker) { + static f32 position[3]; Actor *actor = marker_getActor(marker); - ActorLocal_fight_87A0 *local = (ActorLocal_fight_87A0 *)&actor->local; + ActorLocal_SpellFireball *local = (ActorLocal_SpellFireball *) &actor->local; - D_803928E8[0] = actor->position_x; - D_803928E8[1] = actor->position_y; - D_803928E8[2] = actor->position_z; - - D_803928E8[1] += 120.0f; + position[0] = actor->position_x; + position[1] = actor->position_y; + position[2] = actor->position_z; + position[1] += 120.0f; - if(actor->state != 2){//L8038F39C + if (actor->state != SPELLFIREBALL_STATE_2_DESPAWN) { FUNC_8030E8B4(SFX_148_GRUNTY_SPELL_LANDING, 1.0f, 32000, actor->position, 1000, 3500); - timedFunc_set_0(0.0f, func_8038F01C); - timedFunc_set_0(0.3f, func_8038F050); + timedFunc_set_0(0.0f, chSpellFireball_func_8038F01C); + timedFunc_set_0(0.3f, chSpellFireball_func_8038F050); actor->unk58_0 = 0; - actor->scale *= 1.6; - if(actor->marker->id != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){ - chSpellFireball_emitSparkles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW, - D_80391C0C, D_80391C24, D_80391C3C, - D_80391C54, D_80391C64, D_80391C74 - ); - chSpellFireball_emitSparkles(actor->position, 4, ASSET_715_SPRITE_SPARKLE_RED, - D_80391C0C, D_80391C24, D_80391C3C, - D_80391C54, D_80391C64, D_80391C74 - ); - chSpellFireball_emitSmoke(actor->position, 3, D_80391BFC); - chSpellFireball_emitExplosion(D_803928E8, ASSET_4A0_SPRITE_EXPLOSION, 1, D_80391BA4, D_80391BE4, - D_80391BAC, D_80391BBC, D_80391BDC - - ); - D_803928E8[1] -= 50.0f; - chSpellFireball_emitExplosion(D_803928E8, ASSET_6C1_SPRITE_SMOKE, 2, D_80391BA4, D_80391BE4, - D_80391BAC, D_80391BBC, D_80391BDC - - ); - } - else{//L8038F304 - chSpellFireball_emitSparkles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW, - D_80391C0C, D_80391C24, D_80391C3C, - D_80391C54, D_80391BCC, D_80391C74 - ); - chSpellFireball_emitSmoke(actor->position, 3, D_80391BFC); - func_8038CED8(actor->position, 0x558, 0.15f, 0.5f); + actor->scale *= 1.6; + if (actor->marker->id != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK) { + fight_createSpriteParticles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW, D_80391C0C, D_80391C24, D_80391C3C, D_80391C54, D_80391C64, D_80391C74); + fight_createSpriteParticles(actor->position, 4, ASSET_715_SPRITE_SPARKLE_RED, D_80391C0C, D_80391C24, D_80391C3C, D_80391C54, D_80391C64, D_80391C74); + fight_createSmokeParticles(actor->position, 3, D_80391BFC); + fight_createAnimatedSpriteParticles(position, ASSET_4A0_SPRITE_EXPLOSION, 1, sFightExplosionStartFrameRange, sFightExplosionSpawnPositionRange, sFightExplosionScaleRange, sFightExplosionLifetimeRange, sFightExplosionFadeRange); + position[1] -= 50.0f; + fight_createAnimatedSpriteParticles(position, ASSET_6C1_SPRITE_SMOKE, 2, sFightExplosionStartFrameRange, sFightExplosionSpawnPositionRange, sFightExplosionScaleRange, sFightExplosionLifetimeRange, sFightExplosionFadeRange); + } else { + fight_createSpriteParticles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW, D_80391C0C, D_80391C24, D_80391C3C, D_80391C54, D_80391BCC, D_80391C74); + fight_createSmokeParticles(actor->position, 3, D_80391BFC); + fight_createBlastParticle(actor->position, ASSET_558_MODEL_GREEN_JINJO_BLAST, 0.15f, 0.5f); actor->position_y += 260.0f; - chbossjinjo_spawnParticles(actor, 0x712, ASSET_6C3_SPRITE_SMOKE_GREEN, 1.6f); + chbossjinjo_spawnParticlesAtFinalBoss(actor, 0x712, ASSET_6C3_SPRITE_SMOKE_GREEN, 1.6f); } - local->unk0 = 0.66f; - subaddie_set_state(actor, 2); - }//L8038F39C -} - -void func_8038F3B4(ActorMarker *marker, ActorMarker *other){ - if( other->id == 0x276 - || other->id == 0x27A - || other->id == 0x27F - ) return; - - func_8038F084(marker); - switch(volatileFlag_getN(VOLATILE_FLAG_23_FINAL_BOSS_PHASE, 3)){ - case 1: //8038F41C - if(!fight_D_803928E0 && gcdialog_showText(randi2(0, 5) + 0x10f2, 0, 0, 0, 0, 0)) - fight_D_803928E0 = 1; - break; - case 2: //8038F468 - if(!D_803928E1 && gcdialog_showText(randi2(0, 5) + 0x110b, 0, 0, 0, 0, 0)) - D_803928E1 = 1; - break; - case 3: //8038F4B4 - if(!D_803928E2 && gcdialog_showText(randi2(0, 5) + 0x1122, 0, 0, 0, 0, 0)) - D_803928E2 = 1; - break; - case 4: //8038F500 - if( !D_803928E3 - && func_8038C2A4() - && gcdialog_showText(randi2(0, 5) + 0x113b, 0, 0, 0, 0, 0) - ) - D_803928E3 = 1; - break; - case 5: - if( !D_803928E4 - && func_8038C2B0() - && gcdialog_showText(randi2(0, 5) + 0x1154, 0, 0, 0, 0, 0) - ) - D_803928E4 = 1; - break; - }//L8038F5B0 - -} - -s32 func_8038F5BC(f32 *arg0, f32 arg1) { - if (((arg0[0] * arg0[0]) + (arg0[2] * arg0[2])) < arg1) { - return 1; + + local->explosion_lifetime = 0.66f; + subaddie_set_state(actor, SPELLFIREBALL_STATE_2_DESPAWN); } - return 0; } -void func_8038F5F8(Actor *arg0) { +void chSpellFireball_collisionDie(ActorMarker *marker, ActorMarker *other) { + if ((other->id == MARKER_276_STONE_JINJO) || + (other->id == MARKER_27A_JINJO_STATUE_BASE) || + (other->id == MARKER_27F_JINJONATOR_STATUE_BASE)) + { + return; + } + + chSpellFireball_createExplosionParticles(marker); + + switch(volatileFlag_getN(VOLATILE_FLAG_23_FINAL_BOSS_PHASE, 3)) { + case FINALBOSS_PHASE_1_BROOMSTICK: + if (!sFightPlayerHitBySpellInPhase1 && gcdialog_showText(randi2(0, 5) + ASSET_10F2_TEXT_FINALBOSS_PHASE_1_OPTION_1, 0, 0, 0, 0, 0)) + { + sFightPlayerHitBySpellInPhase1 = TRUE; + } + break; + + case FINALBOSS_PHASE_2_AIR: + if (!sFightPlayerHitBySpellInPhase2 && gcdialog_showText(randi2(0, 5) + ASSET_110B_TEXT_FINALBOSS_PHASE_2_OPTION_1, 0, 0, 0, 0, 0)) + { + sFightPlayerHitBySpellInPhase2 = TRUE; + } + break; + + case FINALBOSS_PHASE_3_FLIGHT: + if (!sFightPlayerHitBySpellInPhase3 && gcdialog_showText(randi2(0, 5) + ASSET_1122_TEXT_FINALBOSS_PHASE_3_OPTION_1, 0, 0, 0, 0, 0)) + { + sFightPlayerHitBySpellInPhase3 = TRUE; + } + break; + + case FINALBOSS_PHASE_4_JINJOS: + if (!sFightPlayerHitBySpellInPhase4 && + chfinalboss_isJinjoSpawned() && + gcdialog_showText(randi2(0, 5) + ASSET_113B_TEXT_FINALBOSS_PHASE_4_OPTION_1, 0, 0, 0, 0, 0)) + { + sFightPlayerHitBySpellInPhase4 = TRUE; + } + break; + + case FINALBOSS_PHASE_5_JINJONATOR: + if (!sFightPlayerHitBySpellInPhase5 && + chfinalboss_isJinjonatorSpawned() && + gcdialog_showText(randi2(0, 5) + ASSET_1154_TEXT_FINALBOSS_PHASE_5_OPTION_1, 0, 0, 0, 0, 0)) + { + sFightPlayerHitBySpellInPhase5 = TRUE; + } + break; + } +} + +bool chSpellFireball_isPositionOverThreshold(f32 *position, f32 distance) { + if (((position[0] * position[0]) + (position[2] * position[2])) < distance) { + return TRUE; + } + + return FALSE; +} + +void chSpellFireball_free(Actor *this) { func_80324D2C(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER); } -void func_8038F620(Actor *this){ - static f32 D_803928F8[3]; +void chSpellFireball_update(Actor *this) { + static f32 old_position[3]; static f32 D_80392908[3]; - static f32 D_80392914; + static f32 scale_ratio; - ActorLocal_fight_87A0 * local = (ActorLocal_fight_87A0 *)&this->local; - f32 sp40 = time_getDelta(); + ActorLocal_SpellFireball *local = (ActorLocal_SpellFireball *)&this->local; + f32 time_delta = time_getDelta(); - if(!this->volatile_initialized){ + if (!this->volatile_initialized) { this->volatile_initialized = TRUE; - marker_setCollisionScripts(this->marker, NULL, NULL, func_8038F3B4); + marker_setCollisionScripts(this->marker, NULL, NULL, chSpellFireball_collisionDie); this->marker->propPtr->unk8_3 = 0; actor_collisionOn(this); this->lifetime_value = 8.0f; this->scale = 0.1f; - if( this->marker->id == MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){ + + if (this->marker->id == MARKER_280_GRUNTY_SPELL_GREEN_ATTACK) { actor_collisionOff(this); - marker_setFreeMethod(this->marker, func_8038F5F8); + marker_setFreeMethod(this->marker, chSpellFireball_free); func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 32000); timed_playSfx(0.0f, SFX_113_PAD_APPEARS, 1.0f, 32000); timed_playSfx(0.75f, 0x415, 1.0f, 32000); timed_playSfx(2.0f, 0x415, 1.0f, 32000); - - + } else { + func_80324D54(0.26f, SFX_14F_FIREWORK_WHISTLING, 1.0f, 0x61A8, this->position, 1000.0f, 7500.0f); + func_80324D54(0.4f, SFX_14E_SOFT_EXPLOSION, 1.0f, 0x61A8, this->position, 500.0f, 4500.0f); } - else{//L8038F738 - func_80324D54(0.26f, SFX_14F_FIREWORK_WHISTLING, 1.0f, 0x61A8, - this->position, 1000.0f, 7500.0f - ); + } - func_80324D54(0.4f, SFX_14E_SOFT_EXPLOSION, 1.0f, 0x61A8, - this->position, 500.0f, 4500.0f - ); - } - }//L8038F79C - if(D_803928E5 && this->marker->id == MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){ + if (sFightLastSpellFired && this->marker->id == MARKER_280_GRUNTY_SPELL_GREEN_ATTACK) { ncStaticCamera_rotateToTarget(this->position); - }//L8038F7D4 + } - switch(this->state){ - case 1://L8038F7F8 - D_80392914 = sp40*1.4; - this->scale = (this->scale + D_80392914 < 1.0) ? this->scale + D_80392914 : 1.0f; + switch(this->state) { + case SPELLFIREBALL_STATE_1_ACTIVE: + scale_ratio = time_delta * 1.4; + this->scale = (this->scale + scale_ratio < 1.0) ? this->scale + scale_ratio : 1.0f; - switch(this->marker->id){ - case MARKER_25C_GRUNTY_SPELL_FIREBALL://L8038F8AC - chSpellFireball_emitExplosion(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1, - D_80391CEC, D_80391D34, - D_80391CF4, D_80391D04, D_80391D14 - ); + switch (this->marker->id) { + case MARKER_25C_GRUNTY_SPELL_FIREBALL: + fight_createAnimatedSpriteParticles(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1, sFightExplosionStartFrameRange2, D_80391D34, D_80391CF4, D_80391D04, D_80391D14); break; - case MARKER_280_GRUNTY_SPELL_GREEN_ATTACK://L8038F8C8 - chSpellFireball_emitExplosion(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1, - D_80391CEC, D_80391D34, - D_80391CF4, D_80391D1C, D_80391D2C - ); + + case MARKER_280_GRUNTY_SPELL_GREEN_ATTACK: + fight_createAnimatedSpriteParticles(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1, sFightExplosionStartFrameRange2, D_80391D34, D_80391CF4, D_80391D1C, D_80391D2C); globalTimer_getTime(); break; - }//L8038F918 - D_803928F8[0] = this->position[0]; - D_803928F8[1] = this->position[1]; - D_803928F8[2] = this->position[2]; - - this->position[0] += this->velocity_x*sp40; - this->position[1] += this->velocity_y*sp40; - this->position[2] += this->velocity_z*sp40; - - this->velocity[0] += this->unk1C[0]*sp40; - this->velocity[1] += this->unk1C[1]*sp40; - this->velocity[2] += this->unk1C[2]*sp40; - - this->pitch += 200.0f*sp40; - this->yaw += 200.0f*sp40; - - if( this->position_y < -2500.0f - || 5000.0f < this->position_y - || !func_8038F5BC(this->position, 100000000.0f) - ){ - marker_despawn(this->marker); } - else{ - if(this->position_y < 300.0f - && func_8038F5BC(this->position, 16000000.0f) - ){ - if(func_80320C94(D_803928F8, this->position, func_8033229C(this->marker), D_80392908, 8, 0x40000000)){ - func_8038F084(this->marker); - return; - } + + old_position[0] = this->position[0]; + old_position[1] = this->position[1]; + old_position[2] = this->position[2]; + + this->position[0] += this->velocity_x * time_delta; + this->position[1] += this->velocity_y * time_delta; + this->position[2] += this->velocity_z * time_delta; + + this->velocity[0] += this->unk1C[0] * time_delta; + this->velocity[1] += this->unk1C[1] * time_delta; + this->velocity[2] += this->unk1C[2] * time_delta; + + this->pitch += 200.0f * time_delta; + this->yaw += 200.0f * time_delta; + + if ((this->position_y < -2500.0f) || + (5000.0f < this->position_y) || + (!chSpellFireball_isPositionOverThreshold(this->position, 100000000.0f))) + { + marker_despawn(this->marker); + } else { + if ((this->position_y < 300.0f) && + (chSpellFireball_isPositionOverThreshold(this->position, 16000000.0f)) && + (func_80320C94(old_position, this->position, func_8033229C(this->marker), D_80392908, 8, 0x40000000))) + { + chSpellFireball_createExplosionParticles(this->marker); + return; } } - // L8038FABC - if( this->marker->id != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK - && func_8028F25C() - ){ - func_8038F084(this->marker); - } - else { - if(0.0 <= this->lifetime_value){ - this->lifetime_value -= sp40; - }else{ - func_8038F084(this->marker); + + if ((this->marker->id != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK) && func_8028F25C()) { + chSpellFireball_createExplosionParticles(this->marker); + } else { + if (0.0 <= this->lifetime_value) { + this->lifetime_value -= time_delta; + } else { + chSpellFireball_createExplosionParticles(this->marker); } } + break; - case 2://L8038FB34 - if(local->unk0 < 0.0){ + + case SPELLFIREBALL_STATE_2_DESPAWN: + if (local->explosion_lifetime < 0.0) { marker_despawn(this->marker); - }else{ - local->unk0 -= sp40; + } else { + local->explosion_lifetime -= time_delta; } + break; - }//L8038FB74 + } } -void fight_func_8038FB84(ActorMarker *arg0, f32 *arg1, f32 *arg2, f32 *arg3) { - Actor *temp_v0 = marker_getActor(arg0); +void chSpellFireball_func_8038FB84(ActorMarker *marker, f32 *position, f32 *velocity, f32 *arg3) { + Actor *actor = marker_getActor(marker); - temp_v0->position_x = arg1[0]; - temp_v0->position_y = arg1[1]; - temp_v0->position_z = arg1[2]; - temp_v0->velocity_x = arg2[0]; - temp_v0->velocity_y = arg2[1]; - temp_v0->velocity_z = arg2[2]; - temp_v0->unk1C_x = arg3[0]; - temp_v0->unk1C_y = arg3[1]; - temp_v0->unk1C_z = arg3[2]; + actor->position_x = position[0]; + actor->position_y = position[1]; + actor->position_z = position[2]; + actor->velocity_x = velocity[0]; + actor->velocity_y = velocity[1]; + actor->velocity_z = velocity[2]; + actor->unk1C_x = arg3[0]; + actor->unk1C_y = arg3[1]; + actor->unk1C_z = arg3[2]; } -void func_8038FC00(void) { - fight_D_803928E0 = (u8)0; - D_803928E1 = (u8)0; - D_803928E2 = (u8)0; - D_803928E3 = (u8)0; - D_803928E4 = (u8)0; +void chSpellFireball_resetSpellHits(void) { + sFightPlayerHitBySpellInPhase1 = FALSE; + sFightPlayerHitBySpellInPhase2 = FALSE; + sFightPlayerHitBySpellInPhase3 = FALSE; + sFightPlayerHitBySpellInPhase4 = FALSE; + sFightPlayerHitBySpellInPhase5 = FALSE; } -void func_8038FC2C(s32 arg0) { - D_803928E5 = arg0; +void chSpellFireball_setLastSpellFired(bool value) { + sFightLastSpellFired = value; } diff --git a/src/fight/chstonejinjo.c b/src/fight/chstonejinjo.c index 5dd8469d..30eff85e 100644 --- a/src/fight/chstonejinjo.c +++ b/src/fight/chstonejinjo.c @@ -3,40 +3,28 @@ #include "variables.h" #include "fight.h" -extern Actor *actorArray_findActorFromActorId(); -extern void subaddie_set_state_with_direction(Actor*, s32, f32, s32); -extern f32 chbossjinjo_8038D268(void); - -void chstonejinjo_update(Actor *); - -/* .data */ -ActorAnimationInfo chStoneJinjo_AnimationInfo[] ={ +ActorAnimationInfo chStoneJinjoAnimationInfo[] = { {0, 0.0f}, {0x265, 1e+8f}, {0x265, 1e+8f}, {0x265, 1e+8f}, }; -ActorInfo chStoneJinjo = { - MARKER_276_STONE_JINJO, ACTOR_3A1_STONE_JINJO, ASSET_545_MODEL_STONE_JINJO, - 0x1, chStoneJinjo_AnimationInfo, - chstonejinjo_update, func_80326224, actor_draw, - 0, 0x800, 1.0f, 0 -}; -/* .code */ +ActorInfo chStoneJinjo = { MARKER_276_STONE_JINJO, ACTOR_3A1_STONE_JINJO, ASSET_545_MODEL_STONE_JINJO, 1, chStoneJinjoAnimationInfo, chstonejinjo_update, actor_update_func_80326224, actor_draw, 0, 2048, 1.0f, 0 }; + void chstonejinjo_spawnJinjo(ActorMarker *marker) { - Actor *this; - Actor *jinjo; + Actor *actor_stonejinjo = marker_getActor(marker); + Actor *actor_jinjo; - this = marker_getActor(marker); - if (this->unkF4_8 == BOSSJINJO_JINJONATOR) { - jinjo = spawn_child_actor(ACTOR_3AC_JINJONATOR, &this); + if (actor_stonejinjo->unkF4_8 == BOSSJINJO_5_JINJONATOR) { + actor_jinjo = spawn_child_actor(ACTOR_3AC_JINJONATOR, &actor_stonejinjo); } else { - jinjo = spawn_child_actor((this->unkF4_8) + 0x3A4, &this); + actor_jinjo = spawn_child_actor(ACTOR_3A4_BOSS_JINJO_BASE_IDX + actor_stonejinjo->unkF4_8, &actor_stonejinjo); } - jinjo->unkF4_8 = this->unkF4_8; - jinjo->lifetime_value = this->unk1C[0]; - jinjo->scale = this->scale; + + actor_jinjo->unkF4_8 = actor_stonejinjo->unkF4_8; + actor_jinjo->lifetime_value = actor_stonejinjo->unk1C[0]; + actor_jinjo->scale = actor_stonejinjo->scale; } void chstonejinjo_update(Actor *this) { @@ -44,7 +32,8 @@ void chstonejinjo_update(Actor *this) { this->volatile_initialized = TRUE; this->marker->propPtr->unk8_3 = TRUE; actor_collisionOff(this); - if (this->unkF4_8 == BOSSJINJO_JINJONATOR) { + + if (this->unkF4_8 == BOSSJINJO_5_JINJONATOR) { this->marker->unk40_23 = TRUE; this->marker->unk40_20 = TRUE; this->unk1C[0] = 6.0f; @@ -54,86 +43,95 @@ void chstonejinjo_update(Actor *this) { this->scale *= 1.8; } } + switch (this->state) { - case 1: - animctrl_setAnimTimer(this->animctrl, 0.0f); - break; - case 2: - if (this->unkF4_8 != BOSSJINJO_JINJONATOR) { - if (actor_animationIsAt(this, 0.001f)) { - FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.2f, 25000, this->position, 1000, 5000); - func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.6f, 0.8f), 20000, this->position, 1000.0f, 5000.0f); + case STONEJINJO_STATE_1_IDLE: + animctrl_setAnimTimer(this->animctrl, 0.0f); + break; + + case STONEJINJO_STATE_2_BREAK_OPEN: + if (this->unkF4_8 != BOSSJINJO_5_JINJONATOR) { + if (actor_animationIsAt(this, 0.001f)) { + FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.2f, 25000, this->position, 1000, 5000); + func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.6f, 0.8f), 20000, this->position, 1000.0f, 5000.0f); + } + + if (actor_animationIsAt(this, 0.26f) || + actor_animationIsAt(this, 0.43f) || + actor_animationIsAt(this, 0.55f) || + actor_animationIsAt(this, 0.62f) || + actor_animationIsAt(this, 0.77f)) + { + func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.6f, 0.8f), 20000, this->position, 1000.0f, 5000.0f); + } + } else { + if (actor_animationIsAt(this, 0.001f)) + { + FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.2f, 25000, this->position, 1000, 5000); + func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.4f, 0.6f), 20000, this->position, 1000.0f, 5000.0f); + } + + if (actor_animationIsAt(this, 0.26f) || + actor_animationIsAt(this, 0.43f) || + actor_animationIsAt(this, 0.55f) || + actor_animationIsAt(this, 0.62f) || + actor_animationIsAt(this, 0.77f)) + { + func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.4f, 0.6f), 20000, this->position, 1000.0f, 5000.0f); + } + + if (actor_animationIsAt(this, 0.1f) || + actor_animationIsAt(this, 0.23f) || + actor_animationIsAt(this, 0.34f) || + actor_animationIsAt(this, 0.45f) || + actor_animationIsAt(this, 0.55f) || + actor_animationIsAt(this, 0.65f) || + actor_animationIsAt(this, 0.78f) || + actor_animationIsAt(this, 0.83f) || + actor_animationIsAt(this, 0.9f) || + actor_animationIsAt(this, 0.98f)) + { + func_8030E6A4(SFX_3_DULL_CANNON_SHOT, randf2(1.2f, 1.4f), 20000); + } } - if( actor_animationIsAt(this, 0.26f) - || actor_animationIsAt(this, 0.43f) - || actor_animationIsAt(this, 0.55f) - || actor_animationIsAt(this, 0.62f) - || actor_animationIsAt(this, 0.77f) - ) { - func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.6f, 0.8f), 20000, this->position, 1000.0f, 5000.0f); + + if (actor_animationIsAt(this, 0.999f)) { + subaddie_set_state_with_direction(this, STONEJINJO_STATE_3_OPEN, 0.99999f, 1); + actor_playAnimationOnce(this); + func_80326310(this); } - } else { - if (actor_animationIsAt(this, 0.001f)) { - FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.2f, 25000, this->position, 1000, 5000); - func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.4f, 0.6f), 20000, this->position, 1000.0f, 5000.0f); - } - if( actor_animationIsAt(this, 0.26f) - || actor_animationIsAt(this, 0.43f) - || actor_animationIsAt(this, 0.55f) - || actor_animationIsAt(this, 0.62f) - || actor_animationIsAt(this, 0.77f) - ) { - func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.4f, 0.6f), 20000, this->position, 1000.0f, 5000.0f); - } - if( actor_animationIsAt(this, 0.1f) - || actor_animationIsAt(this, 0.23f) - || actor_animationIsAt(this, 0.34f) - || actor_animationIsAt(this, 0.45f) - || actor_animationIsAt(this, 0.55f) - || actor_animationIsAt(this, 0.65f) - || actor_animationIsAt(this, 0.78f) - || actor_animationIsAt(this, 0.83f) - || actor_animationIsAt(this, 0.9f) - || actor_animationIsAt(this, 0.98f) - ) { - func_8030E6A4(SFX_3_DULL_CANNON_SHOT, randf2(1.2f, 1.4f), 20000); - } - } - if (actor_animationIsAt(this, 0.999f)) { - subaddie_set_state_with_direction(this, 3, 0.99999f, 1); - actor_playAnimationOnce(this); - func_80326310(this); - } - break; + + break; } } -void chstonejinjo_breakOpen(ActorMarker *marker){ - Actor *actor = marker_getActor(marker); - s32 sp38; - f32 sp34; - f32 sp30; - f32 sp24[3]; +void chstonejinjo_breakOpen(ActorMarker *marker) { + Actor *actor_stonejinjo = marker_getActor(marker); + s32 camera_node; + f32 bossjinjo_wakeup_time; + f32 camera_duration_time; + f32 position_finalboss[3]; - if(actor->state != 2){ - subaddie_set_state_with_direction(actor, 2, 0.0f, 1); - actor_playAnimationOnce(actor); - animctrl_setDuration(actor->animctrl, actor->unk1C[0]); - SPAWNQUEUE_ADD_1(chstonejinjo_spawnJinjo, actor->marker); - if(!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor->unkF4_8 != BOSSJINJO_JINJONATOR){ - sp38 = 0x30 + actor->unkF4_8*2; - sp34 = chbossjinjo_8038D268(); - sp30 = actor->unk1C[0] + sp34; - fight_func_8038C0DC(&sp24); - func_8028F94C(2, &sp24); - func_8038C27C(1); - timed_setStaticCameraToNode(0 * sp30, sp38); - timed_exitStaticCamera(1 * sp30); - timed_setStaticCameraToNode(1 * sp30, sp38 + 1); + if (actor_stonejinjo->state != STONEJINJO_STATE_2_BREAK_OPEN) { + subaddie_set_state_with_direction(actor_stonejinjo, STONEJINJO_STATE_2_BREAK_OPEN, 0.0f, 1); + actor_playAnimationOnce(actor_stonejinjo); + animctrl_setDuration(actor_stonejinjo->animctrl, actor_stonejinjo->unk1C[0]); + SPAWNQUEUE_ADD_1(chstonejinjo_spawnJinjo, actor_stonejinjo->marker); + + if (!fileProgressFlag_get(FILEPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor_stonejinjo->unkF4_8 != BOSSJINJO_5_JINJONATOR) { + camera_node = 48 + actor_stonejinjo->unkF4_8 * 2; + bossjinjo_wakeup_time = chbossjinjo_getWakeUpTime(); + camera_duration_time = actor_stonejinjo->unk1C[0] + bossjinjo_wakeup_time; + chfinalboss_getPosition(position_finalboss); + func_8028F94C(2, &position_finalboss); + chfinalboss_setJinjoStatueActivated(TRUE); + timed_setStaticCameraToNode(0 * camera_duration_time, camera_node); + timed_exitStaticCamera(1 * camera_duration_time); + timed_setStaticCameraToNode(1 * camera_duration_time, camera_node + 1); } - }//L8038DF8C + } } -f32 func_8038DFA0(void) { - return actorArray_findActorFromActorId(ACTOR_3A1_STONE_JINJO)->unk1C_x; +f32 chstonejinjo_getBreakUpTime(void) { + return actorArray_findActorFromActorId(ACTOR_3A1_STONE_JINJO)->unk1C[0]; } diff --git a/src/fight/code_0.c b/src/fight/fight.c similarity index 97% rename from src/fight/code_0.c rename to src/fight/fight.c index 03421b13..d4967e2f 100644 --- a/src/fight/code_0.c +++ b/src/fight/fight.c @@ -5,9 +5,9 @@ #include "fight.h" #include "actor.h" -u8 pad_fight_80392740[0x10]; +u8 sFightPadding[0x10]; -void fight_func_803863F0(void) +void fight_addSpawnableActors(void) { spawnableActorList_add(&chSpellFireball, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15 | ACTOR_FLAG_UNKNOWN_20); spawnableActorList_add(&chGreenBlast, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15 | ACTOR_FLAG_UNKNOWN_20); diff --git a/src/fight/fight.h b/src/fight/fight.h index c2f8d511..4c6e5688 100644 --- a/src/fight/fight.h +++ b/src/fight/fight.h @@ -1,12 +1,71 @@ #ifndef _FIGHT_INTERNAL_H_ #define _FIGHT_INTERNAL_H_ -enum bossjinjo_e{ - BOSSJINJO_ORANGE = 1, - BOSSJINJO_GREEN, - BOSSJINJO_PINK, - BOSSJINJO_YELLOW, - BOSSJINJO_JINJONATOR +enum ch_bossjinjo_e { + BOSSJINJO_0_UNKNOWN, + BOSSJINJO_1_ORANGE, + BOSSJINJO_2_GREEN, + BOSSJINJO_3_PINK, + BOSSJINJO_4_YELLOW, + BOSSJINJO_5_JINJONATOR +}; + +enum chBossJinjoBase_state_e { + CHBOSSJINJOBASE_STATE_1_RAISE = 1, + CHBOSSJINJOBASE_STATE_2_DEFAULT = 2, + CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO = 3 +}; + +enum ch_stonejinjo_state_e { + STONEJINJO_STATE_0_UNKNOWN, + STONEJINJO_STATE_1_IDLE, + STONEJINJO_STATE_2_BREAK_OPEN, + STONEJINJO_STATE_3_OPEN +}; + +enum ch_bossjinjo_state_e { + BOSSJINJO_STATE_0_UNKNOWN, + BOSSJINJO_STATE_1_WAKE_UP, + BOSSJINJO_STATE_2_YAWN, + BOSSJINJO_STATE_3_SPIN_UP, + BOSSJINJO_STATE_4_ATTACK, + BOSSJINJO_STATE_5_HIT +}; + +enum ch_jinjonator_state_e { + JINJONATOR_STATE_0_UNKNOWN, + JINJONATOR_STATE_1_RELEASE, + JINJONATOR_STATE_2_WAKE_UP, + JINJONATOR_STATE_3_MOVE_UPWARD, + JINJONATOR_STATE_4_PREPARE_SPIN_UP, + JINJONATOR_STATE_5_SPIN_UP, + JINJONATOR_STATE_6_ATTACK, + JINJONATOR_STATE_7_ATTACK_END, + JINJONATOR_STATE_8, + JINJONATOR_STATE_9_FINAL_ATTACK_POWER_UP, + JINJONATOR_STATE_10_FINAL_ATTACK_PREPARE, + JINJONATOR_STATE_11_FINAL_ATTACK, + JINJONATOR_STATE_12_FINAL_ATTACK_END +}; + +enum ch_finalboss_phase_e { + FINALBOSS_PHASE_0_INTRO, + FINALBOSS_PHASE_1_BROOMSTICK, + FINALBOSS_PHASE_2_AIR, + FINALBOSS_PHASE_3_FLIGHT, + FINALBOSS_PHASE_4_JINJOS, + FINALBOSS_PHASE_5_JINJONATOR +}; + +enum ch_spellbarrier_state_e { + SPELLBARRIER_STATE_0_UNKNOWN, + SPELLBARRIER_STATE_1_UNKNOWN +}; + +enum ch_spellfireball_state_e { + SPELLFIREBALL_STATE_0_UNKNOWN, + SPELLFIREBALL_STATE_1_ACTIVE, + SPELLFIREBALL_STATE_2_DESPAWN }; extern ActorInfo chFightFlightPad; @@ -25,9 +84,175 @@ extern ActorInfo chGreenBlast; extern ActorInfo chJinjonator; extern ActorInfo chBossShadow; -extern void fight_func_803863F0(void); +// fight.c +extern void fight_addSpawnableActors(void); -extern Actor *chBossShadow_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **vptr); +// chfinalboss.c +extern Actor *chfinalboss_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); +extern void chfinalboss_func_80386600(ActorMarker *marker, s32 arg1); +extern void chfinalboss_func_80386628(ActorMarker *marker, s32 arg1); +extern void chfinalboss_func_80386654(f32 arg0, f32 arg1[4], f32 arg2[4]); +extern void chfinalboss_func_80386698(f32 arg0); +extern void chfinalboss_createBroomstickParticles(f32 position[3], enum asset_e model_id, s32 count); +extern void chfinalboss_createSmokeParticles(f32 position[3], s32 count, f32 scale_ranges[4]); +extern void chfinalboss_createGreenGlowParticle(f32 position[3], s32 color[3]); +extern void chfinalboss_createSingleSpriteParticle(f32 position[3], enum asset_e sprite_id); +extern void chfinalboss_spawnBroomstickGlowParticles(Actor *this); +extern void chfinalboss_func_80386B54(f32 *arg0, f32 arg1); +extern bool chfinalboss_func_80386BEC(Actor *this, f32 arg1); +extern bool chfinalboss_func_80386C68(Actor *this, f32 arg1); +extern void chfinalboss_func_80386CF8(Actor *actor); +extern void __chfinalboss_dropHealth(ActorMarker *arg0); +extern void chfinalboss_despawnFlightPad(void); +extern void chfinalboss_spawnFlightPad(s32 arg0); +extern void chfinalboss_func_80386EC0(s32 arg0); +extern void chfinalboss_func_80386F5C(ActorMarker * arg0, f32 arg1[3], f32 arg2, f32 arg3); +extern void chfinalboss_func_80386FD8(s32 arg0); +extern void chfinalboss_func_80387074(s32 arg0); +extern void chfinalboss_func_80387110(ActorMarker *marker, f32 arg1[3], f32 arg2, s32 arg3); +extern void chfinalboss_func_803872F8(Actor *arg0); +extern s32 chfinalboss_func_80387340(Actor *this, f32 arg1); +extern void chfinalboss_func_803873DC(Actor *actor, f32 arg1, f32 arg2); +extern bool chfinalboss_func_80387470(Actor *this, f32 arg1[3], f32 v_max, f32 arg3, f32 arg4, f32 arg5, f32 arg6); +extern void chfinalboss_func_8038770C(Actor *actor); +extern void chfinalboss_setPhase(ActorMarker *this, enum ch_finalboss_phase_e phase_id); +extern void chfinalboss_func_80387ACC(Actor *arg0, f32 arg1); +extern void chfinalboss_func_80387B00(Actor *this); +extern void chfinalboss_func_80387BFC(Actor *this, f32 arg1); +extern void chfinalboss_func_80387D4C(Actor *actor); +extern void chfinalboss_func_80387E1C(Actor *this, f32 arg1[3]); +extern void chfinalboss_func_80387F70(Actor *actor, f32 *arg1, f32 arg2); +extern void chfinalboss_func_803880A0(Actor *actor, f32 arg1); +extern void chfinalboss_func_803880E0(ActorMarker *marker, enum asset_e text_id, s32 arg2); +extern void chfinalboss_func_80388110(ActorMarker *marker, enum asset_e text_id, s32 arg2); +extern void chfinalboss_phase1_setState(Actor *this, s32 next_state); +extern void chfinalboss_func_8038856C(Actor *actor, f32 *arg1); +extern void chfinalboss_func_803885DC(Actor *this); +extern s32 chfinalboss_func_8038871C(Actor *arg0, f32 arg1, f32 arg2); +extern void chfinalboss_phase1_update(ActorMarker *marker); +extern void chfinalboss_phase2_setState(Actor *this, s32 arg1); +extern void chfinalboss_phase2_endTextCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2); +extern void chfinalboss_phase2_update(ActorMarker *marker); +extern void __chfinalboss_spawnStatue(enum ch_bossjinjo_e statue_id); +extern void chfinalboss_spawnStatue(s32 statue_id); +extern void __chfinalboss_spawnSpellBarrier(ActorMarker *marker); +extern void chfinalboss_spawnSpellBarrier(ActorMarker *arg0); +extern void chfinalboss_phase3_endTextCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2); +extern void chfinalboss_phase3_setState(Actor *this, s32 arg1); +extern void chfinalboss_dropHealth(ActorMarker *marker); +extern void chfinalboss_phase3_update(ActorMarker *marker); +extern void chfinalboss_func_80389F54(void); +extern void chfinalboss_phase4_setState(Actor *this, s32 arg1); +extern ActorMarker *chfinalboss_findCollidingJinjo(Actor *this, f32 arg1); +extern void chfinalboss_phase4_update(ActorMarker *marker); +extern void chfinalboss_func_8038AC50(ActorMarker *arg0); +extern void chfinalboss_phase5_setState(Actor *this, s32 next_state); +extern void chfinalboss_func_8038AF84(ActorMarker *arg0); +extern void chfinalboss_func_8038AFB0(void); +extern void chfinalboss_phase5_update(ActorMarker *marker); +extern void chfinalboss_phase0_endTextCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2); +extern void chfinalboss_func_8038B780(ActorMarker *marker); +extern void chfinalboss_phase0_update(ActorMarker *marker); +extern bool chfinalboss_func_8038B834(ActorMarker *marker, ActorMarker *other_marker); +extern void chfinalboss_collisionPassive(ActorMarker *marker, ActorMarker *other_marker); +extern void chfinalboss_collisionActive(ActorMarker *marker, ActorMarker *other_marker); +extern void chfinalboss_spawnShadow(ActorMarker *marker); +extern void chfinalboss_update(Actor *this); +extern void chfinalboss_getPosition(f32 position[3]); +extern void chfinalboss_spellBarrierInactive(); +extern void chfinalboss_func_8038C10C(s32 arg0); +extern void chfinalboss_func_8038C138(); +extern void chfinalboss_setBossDefeated(void); +extern void chfinalboss_setJinjoStatueActivated(bool state); +extern f32 chfinalboss_getScreamTime(); +extern s32 chfinalboss_func_8038C298(); +extern bool chfinalboss_isJinjoSpawned(); +extern bool chfinalboss_isJinjonatorSpawned(); + +// chbossjinfo.c +extern void chbossjinjo_createSpriteParticles(f32 position[3], s32 count, enum asset_e sprite_id, f32 scale); +extern void chbossjinjo_createNonShrinkingSpriteParticles(f32 position[3], s32 count, enum asset_e sprite_id, f32 scale); +extern void chbossjinjo_func_8038C588(void); +extern void chbossjinjo_func_8038C5BC(void); +extern void chbossjinjo_spawnParticlesAtFinalBoss(Actor *this, enum asset_e sprite1_id, enum asset_e sprite2_id, f32 scale); +extern void chbossjinjo_spawnAttackParticles(Actor *this); +extern void chbossjinjo_rotateYaw(Actor *this, s16 angle); +extern void chbossjinjo_func_8038C79C(Actor *this); +extern void chBossJinjo_update(Actor *this); +extern void fight_createBlastParticle(f32 position[3], enum asset_e model_id, f32 scale_ratio, f32 fade_in); +extern void chBossJinjo_update2(Actor *this); +extern void chbossjinjo_attack(ActorMarker *marker); +extern f32 chbossjinjo_getWakeUpTime(void); + +// chbossjinjobase.c +extern void chbossjinjobase_spawnStoneJinjo(ActorMarker *marker); +extern void chBossJinjoBase_createSmokeParticles(f32 position[3], s32 count); +extern void chBossJinjoBase_func_8038D3DC(Actor *this, s32 arg1, f32 arg2, f32 arg3, f32 arg4); +extern void chBossJinjoBase_getHitByEgg(ActorMarker *this, ActorMarker *other); +extern void chBossJinjoBase_free(Actor *this); +extern void chBossJinjoBase_update(Actor *this); + +// chstonejinjo.c +extern void chstonejinjo_spawnJinjo(ActorMarker *marker); +extern void chstonejinjo_update(Actor *this); +extern void chstonejinjo_breakOpen(ActorMarker *marker); +extern f32 chstonejinjo_getBreakUpTime(void); + +// chjinjonatorbase.c +extern void chjinjonatorbase_spawnStoneJinjo(ActorMarker *marker); +extern void chjinjonatorbase_createSmokeParticles(f32 position[3], s32 count); +extern void chjinjonatorbase_func_8038E0D4(Actor *arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4); +extern void chjinjonatorbase_getHitByEgg(ActorMarker *this, ActorMarker *other); +extern void chjinjonatorbase_spawnActivator(ActorMarker *marker); +extern void chjinjonatorbase_func_8038E2CC(ActorMarker *marker); +extern void chjinjonatorbase_update(Actor *this); + +// chspellbarrier.c +extern void chspellbarrier_collisionPassive(ActorMarker *this, ActorMarker *other); +extern void chspellbarrier_free(Actor *this); +extern void chspellbarrier_update(Actor *this); + +// chspellfireball.c +extern void fight_setPositionWithDisplacement(ActorMarker *marker, f32 *position); +extern void fight_createSpriteParticles(f32 position[3], s32 count, enum asset_e sprite, f32 position_range[6], f32 acceleration_range[6], f32 velocity_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]); +extern void fight_createAnimatedSpriteParticles(f32 position[3], enum asset_e sprite, s32 count, s32 staring_frame_range[2], f32 position_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]); +extern void fight_createSmokeParticles(f32 position[3], s32 count, f32 *lifetime_and_spawn_range); +extern void chSpellFireball_func_8038F01C(void); +extern void chSpellFireball_func_8038F050(void); +extern void chSpellFireball_createExplosionParticles(ActorMarker *marker); +extern void chSpellFireball_collisionDie(ActorMarker *marker, ActorMarker *other); +extern bool chSpellFireball_isPositionOverThreshold(f32 *position, f32 distance); +extern void chSpellFireball_free(Actor *this); +extern void chSpellFireball_update(Actor *this); +extern void chSpellFireball_func_8038FB84(ActorMarker *marker, f32 *position, f32 *velocity, f32 *arg3); +extern void chSpellFireball_resetSpellHits(void); +extern void chSpellFireball_setLastSpellFired(bool value); + +// chgreenblast.c +extern Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); +extern void chGreenBlast_func_8038FC88(void); +extern void chGreenBlast_func_8038FCBC(void); +extern void chGreenBlast_collisionDie(ActorMarker *marker, ActorMarker *other_marker); +extern void chGreenBlast_update(Actor *this); +extern void chGreenBlast_func_803900DC(ActorMarker *marker, f32 position[3], f32 arg2, f32 arg3); + +// chjinjonator.c +extern void chjinjonator_createSpriteParticles(f32 position[3], s32 count, enum asset_e sprite_id); +extern void chjinjonator_spawnSparkleParticles(Actor *this); +extern void chjinjonator_spawnAttackParticles(Actor *this, s32 hit_id); +extern void chjinjonator_803903C4(Actor *this); +extern void chjinjonator_8039040C(Actor *this); +extern void chjinjonator_update(Actor *this); +extern void chjinjonator_attack(ActorMarker *marker, s32 hit_count, bool mirrored); +extern void chjinjonator_finalAttack(ActorMarker *marker); +extern f32 chjinjonator_80391234(void); +extern f32 chjinjonator_80391240(void); +extern f32 chjinjonator_80391250(void); +extern bool chjinjonator_8039125C(ActorMarker *marker); +extern void chjinjonator_8039129C(f32 arg0[3]); + +// chbossshadow.c +extern Actor *chBossShadow_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); extern void chBossShadow_update(Actor *this); #endif diff --git a/src/lair/ch/brentilda.c b/src/lair/ch/brentilda.c index 072330f2..5d145952 100644 --- a/src/lair/ch/brentilda.c +++ b/src/lair/ch/brentilda.c @@ -17,7 +17,7 @@ ActorAnimationInfo chBrentildaAnimations[] ={ {0x26C, 4.0f}, {0x26B, 4.0f}, }; -ActorInfo chBrentilda = { 0x1E0, 0x348, 0x539, 0x1, chBrentildaAnimations, chBrentilda_update, func_80326224, actor_draw, 2000, 0, 2.0f, 0}; +ActorInfo chBrentilda = { 0x1E0, 0x348, 0x539, 0x1, chBrentildaAnimations, chBrentilda_update, actor_update_func_80326224, actor_draw, 2000, 0, 2.0f, 0}; /* .code */ void func_8038BA30(ActorMarker *marker, enum asset_e text_id, s32 arg2){ diff --git a/src/lair/ch/cauldron.c b/src/lair/ch/cauldron.c index bfe7a2b8..e8200e6d 100644 --- a/src/lair/ch/cauldron.c +++ b/src/lair/ch/cauldron.c @@ -33,8 +33,8 @@ ActorAnimationInfo D_80393520[] = { {0x28F, 5.167f}, {0x290, 6.26f} }; -ActorInfo D_80393560 = { MARKER_231_WARP_CAULDRON, ACTOR_23B_WARP_CAULDRON, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; -ActorInfo D_80393584 = { MARKER_244_DINGPOT, ACTOR_2DB_DINGPOT, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; +ActorInfo D_80393560 = { MARKER_231_WARP_CAULDRON, ACTOR_23B_WARP_CAULDRON, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, actor_update_func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; +ActorInfo D_80393584 = { MARKER_244_DINGPOT, ACTOR_2DB_DINGPOT, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, actor_update_func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0}; f32 D_803935A8[][2][3] = { {{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}}, {{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}}, diff --git a/src/lair/code_0.c b/src/lair/code_0.c index 4901b5b3..5f9a0c9b 100644 --- a/src/lair/code_0.c +++ b/src/lair/code_0.c @@ -114,53 +114,53 @@ ActorAnimationInfo D_80392CB0[] = { {0x271, 3.0f}, {0x271, 1e+08f} }; -ActorInfo lair_D_80392D90 = { 0x270, 0x2D8, 0x3B2, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392DB4 = { 0x110, 0x214, 0x4AB, 0x1, D_80392CB0, func_803896D4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392DD8 = { 0x113, 0x217, 0x4A9, 0x1, D_80392CB0, func_803896F4, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392DFC = { 0x115, 0x219, 0x4AA, 0x1, D_80392CB0, func_80389714, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392E20 = { 0x11B, 0x221, 0x4B5, 0x1, D_80392CB0, func_80389734, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392E44 = { 0x11C, 0x222, 0x4B2, 0x1, D_80392CB0, func_8038975C, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392EF8 = { MARKER_109_BREAKABLE_BRICK_WALL, ACTOR_20D_BREAKABLE_BRICK_WALL, ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL, 0x1, D_80392CB0, lair_func_80386550, func_80326224, actor_draw, 0, 0, 0.0f, 0x85}; -ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80392F40 = { MARKER_224_BREAKABLE_FLOOR_COBWEB, ACTOR_230_BREAKABLE_FLOOR_COBWEB, ASSET_4BF_MODEL_FLOOR_COBWEB, 0xB, D_80392CB0, chFloorCobweb_update, func_80326224, actor_draw, 0, 0, 0.0f, 0x88}; -ActorInfo D_80392F64 = { MARKER_225_BREAKABLE_WALL_COBWEB, ACTOR_231_BREAKABLE_WALL_COBWEB, ASSET_4D5_MODEL_WALL_COBWEB, 0xE, D_80392CB0, chWallCobweb_update, func_80326224, actor_draw, 0, 0, 0.0f, 0x88}; -ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80392FF4 = { 0x10D, 0x211, 0x4A3, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80393018 = { 0x22C, 0x23A, 0x4D9, 0x1, NULL, func_803882B0, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_8039303C = { 0x164, 0x259, 0x507, 0x1, NULL, func_803880BC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80393060 = { 0x165, 0x25A, 0x508, 0x1, NULL, func_8038824C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80393084 = { MARKER_240_LAIR_SWITCH_FLIGHT_PAD, 0x247, 0x48A, 0x1, NULL, func_80386D78, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803930A8 = { 0x242, 0x249, 0x2DD, 0x1, NULL, func_803867A8, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803930CC = { 0x11F, 0x225, 0x4B3, 0x1, NULL, func_8038A064, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803930F0 = { 0x10A, 0x20E, 0x4A2, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_80393114 = { 0x11A, 0x220, 0x4B7, 0x1, NULL, func_80389FF4, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x91}; -ActorInfo D_80393138 = { 0x11E, 0x224, 0x4AF, 0x1, NULL, func_8038A014, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x83}; -ActorInfo D_8039315C = { 0x227, 0x234, 0x4D6, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x93}; -ActorInfo D_80393180 = { 0x228, 0x235, 0x4D7, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8B}; -ActorInfo D_803931A4 = { 0x229, 0x236, 0x4D8, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8B}; -ActorInfo D_803931C8 = { MARKER_121_GLASS_EYE, ACTOR_227_GLASS_EYE, ASSET_4BD_MODEL_GLASS_EYE, 0x1, NULL, func_8038A034, func_80326224, actor_draw, 0, 0, 0.0f, 0x89}; -ActorInfo D_803931EC = { 0x116, 0x21A, 0x4AC, 0x1, NULL, func_803893B8, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x82}; -ActorInfo D_80393210 = { 0x117, 0x21B, 0x4AD, 0x1, NULL, lair_func_803894B0, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x82}; -ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x90}; -ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x84}; -ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x7F}; -ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x87}; -ActorInfo D_803932C4 = { 0x122, ACTOR_228_MMM_ENTRANCE_DOOR, 0x4BE, 0x1, NULL, func_80388524, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8C}; -ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x80}; -ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8F}; -ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x92}; -ActorInfo D_80393354 = { 0x266, 0x2E3, 0x563, 0x1, NULL, func_803870DC, func_80326224, lair_func_80387560, 0, 0, 0.0f, 0}; -ActorInfo D_80393378 = { 0x17D, 0x1E1, 0x517, 0x1, NULL, func_80389D08, func_80326224, func_80389E10, 0, 0, 0.0f, 0x8D}; -ActorInfo D_8039339C = { 0x234, 0x23E, 0x4E1, 0x12, D_80392CB0, func_8038982C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; -ActorInfo D_803933C0 = { 0x163, 0x258, 0x511, 0x12, D_80392CB0, func_80389898, func_80326224, func_8038664C, 0, 0, 0.0f, 0x8E}; -ActorInfo D_803933E4 = { 0x160, 0x255, 0x509, 0x15, D_80392CB0, func_80389934, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_80393408 = { 0x102, 0x203, 0x491, 0x1, D_80392CB0, func_80387730, func_80326224, func_80387DA8, 0, 0, 0.0f, 0}; +ActorInfo lair_D_80392D90 = { 0x270, 0x2D8, 0x3B2, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392DB4 = { 0x110, 0x214, 0x4AB, 0x1, D_80392CB0, func_803896D4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392DD8 = { 0x113, 0x217, 0x4A9, 0x1, D_80392CB0, func_803896F4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392DFC = { 0x115, 0x219, 0x4AA, 0x1, D_80392CB0, func_80389714, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392E20 = { 0x11B, 0x221, 0x4B5, 0x1, D_80392CB0, func_80389734, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392E44 = { 0x11C, 0x222, 0x4B2, 0x1, D_80392CB0, func_8038975C, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392EF8 = { MARKER_109_BREAKABLE_BRICK_WALL, ACTOR_20D_BREAKABLE_BRICK_WALL, ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL, 0x1, D_80392CB0, lair_func_80386550, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0x85}; +ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80392F40 = { MARKER_224_BREAKABLE_FLOOR_COBWEB, ACTOR_230_BREAKABLE_FLOOR_COBWEB, ASSET_4BF_MODEL_FLOOR_COBWEB, 0xB, D_80392CB0, chFloorCobweb_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0x88}; +ActorInfo D_80392F64 = { MARKER_225_BREAKABLE_WALL_COBWEB, ACTOR_231_BREAKABLE_WALL_COBWEB, ASSET_4D5_MODEL_WALL_COBWEB, 0xE, D_80392CB0, chWallCobweb_update, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0x88}; +ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80392FF4 = { 0x10D, 0x211, 0x4A3, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80393018 = { 0x22C, 0x23A, 0x4D9, 0x1, NULL, func_803882B0, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_8039303C = { 0x164, 0x259, 0x507, 0x1, NULL, func_803880BC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80393060 = { 0x165, 0x25A, 0x508, 0x1, NULL, func_8038824C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80393084 = { MARKER_240_LAIR_SWITCH_FLIGHT_PAD, 0x247, 0x48A, 0x1, NULL, func_80386D78, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803930A8 = { 0x242, 0x249, 0x2DD, 0x1, NULL, func_803867A8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803930CC = { 0x11F, 0x225, 0x4B3, 0x1, NULL, func_8038A064, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803930F0 = { 0x10A, 0x20E, 0x4A2, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_80393114 = { 0x11A, 0x220, 0x4B7, 0x1, NULL, func_80389FF4, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x91}; +ActorInfo D_80393138 = { 0x11E, 0x224, 0x4AF, 0x1, NULL, func_8038A014, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x83}; +ActorInfo D_8039315C = { 0x227, 0x234, 0x4D6, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x93}; +ActorInfo D_80393180 = { 0x228, 0x235, 0x4D7, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8B}; +ActorInfo D_803931A4 = { 0x229, 0x236, 0x4D8, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8B}; +ActorInfo D_803931C8 = { MARKER_121_GLASS_EYE, ACTOR_227_GLASS_EYE, ASSET_4BD_MODEL_GLASS_EYE, 0x1, NULL, func_8038A034, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0x89}; +ActorInfo D_803931EC = { 0x116, 0x21A, 0x4AC, 0x1, NULL, func_803893B8, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x82}; +ActorInfo D_80393210 = { 0x117, 0x21B, 0x4AD, 0x1, NULL, lair_func_803894B0, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x82}; +ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x90}; +ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x84}; +ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x7F}; +ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x87}; +ActorInfo D_803932C4 = { 0x122, ACTOR_228_MMM_ENTRANCE_DOOR, 0x4BE, 0x1, NULL, func_80388524, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8C}; +ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x80}; +ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x8F}; +ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0x92}; +ActorInfo D_80393354 = { 0x266, 0x2E3, 0x563, 0x1, NULL, func_803870DC, actor_update_func_80326224, lair_func_80387560, 0, 0, 0.0f, 0}; +ActorInfo D_80393378 = { 0x17D, 0x1E1, 0x517, 0x1, NULL, func_80389D08, actor_update_func_80326224, func_80389E10, 0, 0, 0.0f, 0x8D}; +ActorInfo D_8039339C = { 0x234, 0x23E, 0x4E1, 0x12, D_80392CB0, func_8038982C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0}; +ActorInfo D_803933C0 = { 0x163, 0x258, 0x511, 0x12, D_80392CB0, func_80389898, actor_update_func_80326224, func_8038664C, 0, 0, 0.0f, 0x8E}; +ActorInfo D_803933E4 = { 0x160, 0x255, 0x509, 0x15, D_80392CB0, func_80389934, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_80393408 = { 0x102, 0x203, 0x491, 0x1, D_80392CB0, func_80387730, actor_update_func_80326224, func_80387DA8, 0, 0, 0.0f, 0}; ParticleScaleAndLifetimeRanges D_8039342C = { {0.31f, 0.37f}, {0.17f, 0.22f}, @@ -205,7 +205,7 @@ ParticleScaleAndLifetimeRanges D_803934AC = { {3.8f, 5.0f}, 0.31f, 0.93f }; -struct42s D_803934D4 = { +ParticleSettingsVelocityPosition D_803934D4 = { {{-80.0f, 30.0f, -80.0f}, {80.0f, 270.0f, 80.0f}}, {{40.0f, 0.0f, -50.0f}, {100.0f, 200.0f, 50.0f}}, }; @@ -417,9 +417,9 @@ void func_803867A8(Actor *this) { sp50[0] = this->unk1C[0] + sp5C[0]; sp50[2] = this->unk1C[2] + sp5C[2]; particleEmitter_setPosition(sp44, sp50); - particleEmitter_setParticleSpawnPositionRange(sp44, -25.0f, 0.0f, -25.0f, 25.0f, 6.0f, 25.0f); + particleEmitter_setSpawnPositionRange(sp44, -25.0f, 0.0f, -25.0f, 25.0f, 6.0f, 25.0f); particleEmitter_emitN(sp44, 1); - particleEmitter_setParticleSpawnPositionRange(sp44, -75.0f, 0.0f, -75.0f, 75.0f, 6.0f, 75.0f); + particleEmitter_setSpawnPositionRange(sp44, -75.0f, 0.0f, -75.0f, 75.0f, 6.0f, 75.0f); particleEmitter_emitN(sp44, 1); } } @@ -565,7 +565,7 @@ void func_803870DC(Actor *this) { particleEmitter_setSprite(temp_s5, ASSET_710_SPRITE_SPARKLE_PURPLE); particleEmitter_setStartingScaleRange(temp_s5, 0.13f, 0.18f); particleEmitter_setFinalScaleRange(temp_s5, 0.08f, 0.13f); - particleEmitter_setParticleAccelerationRange(temp_s5, -500.0f, -1800.0f, -500.0f, 500.0f, 1800.0f, 500.0f); + particleEmitter_setAccelerationRange(temp_s5, -500.0f, -1800.0f, -500.0f, 500.0f, 1800.0f, 500.0f); particleEmitter_setSpawnIntervalRange(temp_s5, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(temp_s5, 0.9f, 0.9f); particleEmitter_setParticleVelocityRange(temp_s5, -400.0f, 400.0f, -400.0f, 400.0f, -400.0f, 400.0f); @@ -723,7 +723,7 @@ void func_80387730(Actor *this) { particleEmitter_setSprite(temp_s5, ASSET_710_SPRITE_SPARKLE_PURPLE); particleEmitter_setStartingScaleRange(temp_s5, 0.13f, 0.18f); particleEmitter_setFinalScaleRange(temp_s5, 0.08f, 0.13f); - particleEmitter_setParticleAccelerationRange(temp_s5, -10.0f, 0.0f, -10.0f, 10.0f, 1600.0f, 10.0f); + particleEmitter_setAccelerationRange(temp_s5, -10.0f, 0.0f, -10.0f, 10.0f, 1600.0f, 10.0f); particleEmitter_setSpawnIntervalRange(temp_s5, 0.0f, 0.01f); particleEmitter_setParticleLifeTimeRange(temp_s5, 1.4f, 1.4f); particleEmitter_setParticleVelocityRange(temp_s5, -100.0f, 100.0f, -100.0f, 100.0f, 0.0f, 100.0f); diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index 9905582d..30404a91 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -25,8 +25,8 @@ void func_8038F350(Actor *this, s32 next_state); void lair_func_8038F924(Actor *this); /* .data */ -ActorInfo D_803947B0 = { 0x1EB, 0x3B7, 0x48B, 0x1, NULL, lair_func_8038F924, func_80326224, actor_draw, 0, 0, 0.0f, 0}; -ActorInfo D_803947D4 = { 0x1EB, 0x3BC, 0x538, 0x1, NULL, lair_func_8038F924, func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_803947B0 = { 0x1EB, 0x3B7, 0x48B, 0x1, NULL, lair_func_8038F924, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; +ActorInfo D_803947D4 = { 0x1EB, 0x3BC, 0x538, 0x1, NULL, lair_func_8038F924, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0}; Struct_lair_86F0_0 D_803947F8[0xb] ={ { 1, 0x1, FILEPROG_5D_MM_PUZZLE_PIECES_PLACED}, { 2, 0x2, FILEPROG_5E_TCC_PUZZLE_PIECES_PLACED}, @@ -464,7 +464,7 @@ void lair_func_8038F924(Actor *this) { particleEmitter_setPosition(sp54, this->position); sp58[2] = randf() * 255.0f; particleEmitter_setRGB(sp54, sp58); - particleEmitter_setParticleSpawnPositionRange(sp54, -30.0f, -40.0f, -30.0f, 30.0f, 20.0f, 30.0f); + particleEmitter_setSpawnPositionRange(sp54, -30.0f, -40.0f, -30.0f, 30.0f, 20.0f, 30.0f); particleEmitter_emitN(sp54, 6); } } diff --git a/src/lair/code_9C40.c b/src/lair/code_9C40.c index 24959a29..095bf18b 100644 --- a/src/lair/code_9C40.c +++ b/src/lair/code_9C40.c @@ -12,9 +12,9 @@ ActorAnimationInfo D_80394860[] = { {0, 0.0f}, {0x272, 0.8f} }; -ActorInfo D_80394870 = { 0x16D, 0x1D5, 0x54F, 0x1, D_80394860, func_803902B8, func_80326224, func_80390030, 2500, 0, 1.2f, 0}; -ActorInfo D_80394894 = { 0x16E, 0x1D6, 0x54F, 0x1, D_80394860, func_803902B8, func_80326224, func_80390030, 2500, 0, 1.2f, 0}; -ActorInfo D_803948B8 = { 0x16F, 0x1D7, 0x54F, 0x1, D_80394860, func_803902B8, func_80326224, func_80390030, 2500, 0, 1.2f, 0}; +ActorInfo D_80394870 = { 0x16D, 0x1D5, 0x54F, 0x1, D_80394860, func_803902B8, actor_update_func_80326224, func_80390030, 2500, 0, 1.2f, 0}; +ActorInfo D_80394894 = { 0x16E, 0x1D6, 0x54F, 0x1, D_80394860, func_803902B8, actor_update_func_80326224, func_80390030, 2500, 0, 1.2f, 0}; +ActorInfo D_803948B8 = { 0x16F, 0x1D7, 0x54F, 0x1, D_80394860, func_803902B8, actor_update_func_80326224, func_80390030, 2500, 0, 1.2f, 0}; /* .code */ Actor *func_80390030(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ diff --git a/src/lair/code_A170.c b/src/lair/code_A170.c index 1beb16a4..e413f49f 100644 --- a/src/lair/code_A170.c +++ b/src/lair/code_A170.c @@ -20,9 +20,9 @@ ActorAnimationInfo D_80394900[] = { {0, 0.0f}, {0x26A, 1.6f}, }; -ActorInfo D_80394910 = { 0x170, 0x1D8, 0x547, 0x1, D_803948E0, func_803906A0, func_80326224, func_80390560, 0, 0, 0.7f, 0}; -ActorInfo D_80394934 = { 0x171, 0x1D9, 0x548, 0x1, D_803948F0, func_803906A0, func_80326224, func_80390560, 0, 0, 0.5f, 0}; -ActorInfo D_80394958 = { 0x172, 0x1DA, 0x549, 0x1, D_80394900, func_803906A0, func_80326224, func_80390560, 0, 0, 0.5f, 0}; +ActorInfo D_80394910 = { 0x170, 0x1D8, 0x547, 0x1, D_803948E0, func_803906A0, actor_update_func_80326224, func_80390560, 0, 0, 0.7f, 0}; +ActorInfo D_80394934 = { 0x171, 0x1D9, 0x548, 0x1, D_803948F0, func_803906A0, actor_update_func_80326224, func_80390560, 0, 0, 0.5f, 0}; +ActorInfo D_80394958 = { 0x172, 0x1DA, 0x549, 0x1, D_80394900, func_803906A0, actor_update_func_80326224, func_80390560, 0, 0, 0.5f, 0}; /* .code */ Actor *func_80390560(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ diff --git a/src/lair/code_A430.c b/src/lair/code_A430.c index bf2c0ace..29445e1d 100644 --- a/src/lair/code_A430.c +++ b/src/lair/code_A430.c @@ -5,7 +5,7 @@ void func_80390820(Actor *this); /* .data */ -ActorInfo D_80394980 = { 0x299, 0x3C3, 0x0, 0x0, NULL, func_80390820, func_80326224, func_80325340, 0, 0, 0.0f, 0}; +ActorInfo D_80394980 = { 0x299, 0x3C3, 0x0, 0x0, NULL, func_80390820, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0}; /* .code */ void func_80390820(Actor *this) diff --git a/src/lair/code_A4A0.c b/src/lair/code_A4A0.c index 9affb57a..640004a8 100644 --- a/src/lair/code_A4A0.c +++ b/src/lair/code_A4A0.c @@ -40,9 +40,9 @@ ActorAnimationInfo D_803949B0[] ={ {0x26D, 1000000.0f}, {0x26D, 1000000.0f}, }; -ActorInfo D_80394A08 = { MARKER_1EA_GRUNTLING_RED, ACTOR_367_GRUNTLING_RED, ASSET_54A_MODEL_GRUNTLING_RED, 0x1, D_803949B0, func_80390AE8, func_80326224, actor_draw, 2500, 0, 1.0f, 0}; -ActorInfo D_80394A2C = { MARKER_295_GRUNTLING_BLUE, ACTOR_3BF_GRUNTLING_BLUE, ASSET_561_MODEL_GRUNTLING_BLUE, 0x1, D_803949B0, func_80390AE8, func_80326224, actor_draw, 2500, 0, 1.0f, 0}; -ActorInfo D_80394A50 = { MARKER_1F1_GRUNTLING_BLACK, ACTOR_3C0_GRUNTLING_BLACK, ASSET_562_MODEL_GRUNTLING_BLACK, 0x1, D_803949B0, func_80390AE8, func_80326224, actor_draw, 2500, 0, 1.0f, 0}; +ActorInfo D_80394A08 = { MARKER_1EA_GRUNTLING_RED, ACTOR_367_GRUNTLING_RED, ASSET_54A_MODEL_GRUNTLING_RED, 0x1, D_803949B0, func_80390AE8, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0}; +ActorInfo D_80394A2C = { MARKER_295_GRUNTLING_BLUE, ACTOR_3BF_GRUNTLING_BLUE, ASSET_561_MODEL_GRUNTLING_BLUE, 0x1, D_803949B0, func_80390AE8, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0}; +ActorInfo D_80394A50 = { MARKER_1F1_GRUNTLING_BLACK, ACTOR_3C0_GRUNTLING_BLACK, ASSET_562_MODEL_GRUNTLING_BLACK, 0x1, D_803949B0, func_80390AE8, actor_update_func_80326224, actor_draw, 2500, 0, 1.0f, 0}; /* .code */ void func_80390890(ActorMarker *marker, ActorMarker *other_marker) { diff --git a/src/lair/code_A810.c b/src/lair/code_A810.c index 5f558d25..64bfe284 100644 --- a/src/lair/code_A810.c +++ b/src/lair/code_A810.c @@ -12,7 +12,7 @@ typedef struct { void func_80390E28(Actor *this); /* .data */ -ActorInfo D_80394A80 = { 0x1EC, 0x377, 0x0, 0x0, NULL, func_80390E28, func_80326224, func_80325340, 3000, 0, 0.0f, 0}; +ActorInfo D_80394A80 = { 0x1EC, 0x377, 0x0, 0x0, NULL, func_80390E28, actor_update_func_80326224, func_80325340, 3000, 0, 0.0f, 0}; /* .bss */ f32 D_80395370[0x14][3]; diff --git a/src/lair/code_AD70.c b/src/lair/code_AD70.c index f183cf97..5fc77a21 100644 --- a/src/lair/code_AD70.c +++ b/src/lair/code_AD70.c @@ -18,7 +18,7 @@ typedef struct { void func_80391B04(Actor *this); /* .data */ -ActorInfo D_80394AB0 = { 0x1EF, 0x3BB, 0x54B, 0x1, NULL, func_80391B04, func_80326224, func_80325340, 0, 0, 0.0f, 0}; +ActorInfo D_80394AB0 = { 0x1EF, 0x3BB, 0x54B, 0x1, NULL, func_80391B04, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0}; s32 D_80394AD4[3] = {0xBA, 0xBA, 0xBA}; ParticleScaleAndLifetimeRanges D_80394AE0 = { {0.1f, 0.2f}, @@ -36,13 +36,13 @@ ParticleScaleAndLifetimeRanges D_80394B08 = { 0.4f, 0.6f, }; -struct43s D_80394B30 = { +ParticleSettingsVelocityAccelerationPosition D_80394B30 = { {{-400.0f, 400.0f, -400.0f}, {400.0f, 800.0f, 400.0f}}, {{0.0f, -1000.0f, 0.0f}, {0.0f, -1000.0f, 0.0f}}, {{-20.0f, -20.0f, -20.0f}, {20.0f, 20.0f, 20.0f}} }; -struct43s D_80394B78 = { +ParticleSettingsVelocityAccelerationPosition D_80394B78 = { {{-50.0f, 200.0f, -50.0f}, {50.0f, 400.0f, 50.0f}}, {{0.0f, -500.0f, 0.0f}, {0.0f, -500.0f, 0.0f}}, {{-40.0f, -40.0f, -40.0f}, {40.0f, 40.0f, 40.0f}} @@ -60,7 +60,7 @@ void func_80391160(f32 pos[3], u32 count) particleEmitter_setAlpha(p, 0xEB); particleEmitter_setStartingFrameRange(p, 0, 7); particleEmitter_setPosition(p, pos); - particleEmitter_setParticleSpawnPositionRange(p, -55, -55, -55, 55, 55, 55); + particleEmitter_setSpawnPositionRange(p, -55, -55, -55, 55, 55, 55); particleEmitter_setParticleVelocityRange(p, -70, -70, -70, 70, 70, 70); particleEmitter_setScaleAndLifetimeRanges(p, &D_80394AE0); particleEmitter_emitN(p, count); @@ -73,7 +73,7 @@ void lair_func_80391254(f32 pos[3], u32 count, enum asset_e sprite) particleEmitter_setDrawMode(p, PART_EMIT_NO_LOOP); particleEmitter_setStartingFrameRange(p, 0, 2); particleEmitter_setParticleFramerateRange(p, 4, 6); - particleEmitter_setParticleSpawnPositionRange(p, -80, 0, -80, 80, 0, 80); + particleEmitter_setSpawnPositionRange(p, -80, 0, -80, 80, 0, 80); particleEmitter_setPosition(p, pos); particleEmitter_setFade(p, 0.6f, 0.7f); particleEmitter_setStartingScaleRange(p, 3, 3); @@ -87,10 +87,10 @@ void func_8039137C(f32 pos[3], u32 count, enum asset_e sprite) ParticleEmitter *p = partEmitMgr_newEmitter(count); particleEmitter_setSprite(p, sprite); particleEmitter_setPosition(p, pos); - func_802EF9F8(p, 0.3f); - func_802EFA18(p, 3); + particleEmitter_func_802EF9F8(p, 0.3f); + particleEmitter_func_802EFA18(p, 3); particleEmitter_setAngularVelocityRange(p, 0, 0, 600, 0, 0, 900); - particleEmitter_setPositionVelocityAndAccelerationRanges(p, &D_80394B30); + particleEmitter_setVelocityAccelerationAndPositionRanges(p, &D_80394B30); particleEmitter_setScaleAndLifetimeRanges(p, &D_80394B08); particleEmitter_setDrawMode(p, 2); particleEmitter_emitN(p, count); @@ -101,14 +101,14 @@ void func_8039144C(f32 pos[3], u32 count) ParticleEmitter *p = partEmitMgr_newEmitter(count); particleEmitter_setSprite(p, 0x713); particleEmitter_setPosition(p, pos); - particleEmitter_setParticleSpawnPositionRange(p, -40, -40, -40, 40, 40, 40); + particleEmitter_setSpawnPositionRange(p, -40, -40, -40, 40, 40, 40); particleEmitter_setDrawMode(p, 4); particleEmitter_setAngularVelocityRange(p, 0, 0, 200, 0, 0, 300); particleEmitter_setFade(p, 0.1f, 0.2f); particleEmitter_setParticleLifeTimeRange(p, 0.75f, 0.75f); particleEmitter_setStartingScaleRange(p, 0.5f, 0.5f); particleEmitter_setFinalScaleRange(p, 0.2f, 0.2f); - particleEmitter_setParticleAccelerationRange(p, 0, -50, 0, 0, -100, 0); + particleEmitter_setAccelerationRange(p, 0, -50, 0, 0, -100, 0); particleEmitter_emitN(p, count); } @@ -139,7 +139,7 @@ void func_803916BC(f32 position[3], s32 cnt){ particleEmitter_setStartingScaleRange(pCtrl, 2.0f, 2.0f); particleEmitter_setFinalScaleRange(pCtrl, 4.0f, 4.0f); particleEmitter_setParticleLifeTimeRange(pCtrl, 1.0f, 1.5f); - particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80394B78); + particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80394B78); particleEmitter_emitN(pCtrl, cnt); } diff --git a/src/lair/code_BBD0.c b/src/lair/code_BBD0.c index 7d1afd44..58dc23e2 100644 --- a/src/lair/code_BBD0.c +++ b/src/lair/code_BBD0.c @@ -21,22 +21,22 @@ ActorAnimationInfo D_80394BE0[] = { }; ActorInfo D_80394C28 = { MARKER_29A_FF_PRIZE, ACTOR_3C4_FF_PRIZE_WASHING_CAULDRON, ASSET_55F_MODEL_FF_PRIZE_WASHING_CAULDRON, 0x1, D_80394BE0, - func_8039217C, func_80326224, actor_draw, + func_8039217C, actor_update_func_80326224, actor_draw, 0, 0, 3.0f, 0 }; ActorInfo D_80394C4C = { MARKER_29A_FF_PRIZE, ACTOR_3C7_FF_PRIZE_GRUNTY_DOLL, ASSET_560_MODEL_FF_PRIZE_GRUNTY_DOLL, 0x3, D_80394BE0, - func_8039217C, func_80326224, actor_draw, + func_8039217C, actor_update_func_80326224, actor_draw, 0, 0, 1.0f, 0 }; ActorInfo D_80394C70 = { MARKER_29A_FF_PRIZE, 0x3C6, 0x34C, 0x0, D_80394BE0, - func_8039217C, func_80326224, actor_draw, + func_8039217C, actor_update_func_80326224, actor_draw, 0, 0, 3.0f, 0 }; ActorInfo D_80394C94 = { MARKER_29A_FF_PRIZE, ACTOR_3C8_FF_PRIZE_TOOTY, ASSET_35B_FF_PRIZE_TOOTY, 0x5, D_80394BE0, - func_8039217C, func_80326224, func_80391FC0, + func_8039217C, actor_update_func_80326224, func_80391FC0, 0, 0, 1.0f, 0 }; diff --git a/src/lair/code_C1C0.c b/src/lair/code_C1C0.c index a1bf66c3..336fcf32 100644 --- a/src/lair/code_C1C0.c +++ b/src/lair/code_C1C0.c @@ -103,7 +103,7 @@ void func_80392918(Actor *this) { } return; } - func_80326224(this); + actor_update_func_80326224(this); if ((this->unk48 > 0.5) && !this->has_met_before) { this->has_met_before = TRUE; ncStaticCamera_setToNode(0x1E); diff --git a/src/lair/code_C6C0.c b/src/lair/code_C6C0.c index d54dc109..7d965c81 100644 --- a/src/lair/code_C6C0.c +++ b/src/lair/code_C6C0.c @@ -7,7 +7,7 @@ extern void func_8028F3D8(f32[3], f32, void(*)(ActorMarker *), ActorMarker *); void func_80392B6C(Actor *this); /* .data */ -ActorInfo D_80394D20 = { 0x29C, 0x3C9, 0x0, 0x0, NULL, func_80392B6C, func_80326224, func_80325340, 0, 0, 0.0f, 0}; +ActorInfo D_80394D20 = { 0x29C, 0x3C9, 0x0, 0x0, NULL, func_80392B6C, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0}; /* .code */ void func_80392AB0(ActorMarker *marker, enum asset_e text_id, s32 arg2){ From ea6b1e529136da2d0f25dadc6600f8761e3db0eb Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Tue, 8 Oct 2024 06:07:42 +0000 Subject: [PATCH 16/16] Document level specific flags --- include/enums.h | 57 +++++++++++++++++++++++++++++++++++- src/CC/code_BF0.c | 2 +- src/CCW/code_0.c | 5 ++-- src/CCW/code_6620.c | 7 +++-- src/CCW/code_6AC0.c | 7 +++-- src/CCW/code_6EC0.c | 5 ++-- src/CCW/code_7120.c | 10 ++++--- src/CCW/code_76C0.c | 3 +- src/FP/ch/bearcub.c | 12 ++++---- src/FP/ch/boggy3.c | 15 +++++----- src/FP/ch/cavewozza.c | 20 ++++++------- src/FP/ch/wozza.c | 2 +- src/FP/ch/wozzasjig.c | 2 +- src/FP/ch/xmastree.c | 5 ++-- src/FP/ch/xmastreeice.c | 14 ++++----- src/FP/ch/xmastreeswitch.c | 2 +- src/GV/ch/mazectrl.c | 18 +++++++----- src/GV/code_9C10.c | 5 ++-- src/GV/waterctrl.c | 2 +- src/MMM/ch/loggo.c | 7 +++-- src/MMM/code_2040.c | 7 +++-- src/MMM/code_3120.c | 5 ++-- src/MMM/code_3D50.c | 6 ++-- src/RBB/ch/anchorctrl.c | 7 +++-- src/RBB/ch/anchorswitch.c | 2 +- src/RBB/ch/engineparts.c | 4 +-- src/RBB/ch/propellor.c | 16 ++++++---- src/RBB/ch/propellorswitch.c | 4 +-- src/RBB/code_1570.c | 8 +++-- src/RBB/propellorctrl.c | 10 ++++--- src/TTC/ch/leaky.c | 23 +++++++++------ src/TTC/code_3E30.c | 11 +++---- src/core1/code_CE60.c | 2 +- src/core2/bs/jig.c | 2 +- src/core2/ch/clucker.c | 4 +-- src/core2/ch/crab.c | 12 ++++---- src/core2/ch/jiggy.c | 6 ++-- src/core2/ch/mole.c | 8 ++--- src/core2/ch/termite.c | 16 +++++----- src/core2/ch/trainers.c | 5 ++-- src/core2/ch/wadingboots.c | 5 ++-- src/core2/code_4A6F0.c | 4 +-- src/core2/code_4C020.c | 54 ++++++++++++++++++---------------- src/core2/code_509D0.c | 14 ++++----- src/core2/code_BEF20.c | 8 ++--- src/core2/mapModel.c | 2 +- src/lair/code_86F0.c | 2 +- 47 files changed, 274 insertions(+), 173 deletions(-) diff --git a/include/enums.h b/include/enums.h index 543185ca..15503fa9 100644 --- a/include/enums.h +++ b/include/enums.h @@ -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 diff --git a/src/CC/code_BF0.c b/src/CC/code_BF0.c index 5ea52781..ef7840cc 100644 --- a/src/CC/code_BF0.c +++ b/src/CC/code_BF0.c @@ -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; diff --git a/src/CCW/code_0.c b/src/CCW/code_0.c index 4080093a..3cb0b8ca 100644 --- a/src/CCW/code_0.c +++ b/src/CCW/code_0.c @@ -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); } } diff --git a/src/CCW/code_6620.c b/src/CCW/code_6620.c index 12c63c00..48c457d7 100644 --- a/src/CCW/code_6620.c +++ b/src/CCW/code_6620.c @@ -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; } diff --git a/src/CCW/code_6AC0.c b/src/CCW/code_6AC0.c index b8fd4e2f..d76a6576 100644 --- a/src/CCW/code_6AC0.c +++ b/src/CCW/code_6AC0.c @@ -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); } } diff --git a/src/CCW/code_6EC0.c b/src/CCW/code_6EC0.c index dead429e..8b18e347 100644 --- a/src/CCW/code_6EC0.c +++ b/src/CCW/code_6EC0.c @@ -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; } diff --git a/src/CCW/code_7120.c b/src/CCW/code_7120.c index fa9debbc..d13ba884 100644 --- a/src/CCW/code_7120.c +++ b/src/CCW/code_7120.c @@ -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; diff --git a/src/CCW/code_76C0.c b/src/CCW/code_76C0.c index 0196ba88..da2199c2 100644 --- a/src/CCW/code_76C0.c +++ b/src/CCW/code_76C0.c @@ -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); } } diff --git a/src/FP/ch/bearcub.c b/src/FP/ch/bearcub.c index 373b6792..6f27b68e 100644 --- a/src/FP/ch/bearcub.c +++ b/src/FP/ch/bearcub.c @@ -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); } } } diff --git a/src/FP/ch/boggy3.c b/src/FP/ch/boggy3.c index 6e245409..ca1933a3 100644 --- a/src/FP/ch/boggy3.c +++ b/src/FP/ch/boggy3.c @@ -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; diff --git a/src/FP/ch/cavewozza.c b/src/FP/ch/cavewozza.c index 627f30f4..07060bd7 100644 --- a/src/FP/ch/cavewozza.c +++ b/src/FP/ch/cavewozza.c @@ -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); } } } diff --git a/src/FP/ch/wozza.c b/src/FP/ch/wozza.c index 1441708f..3a995c29 100644 --- a/src/FP/ch/wozza.c +++ b/src/FP/ch/wozza.c @@ -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(); } diff --git a/src/FP/ch/wozzasjig.c b/src/FP/ch/wozzasjig.c index c8dc588a..953954f7 100644 --- a/src/FP/ch/wozzasjig.c +++ b/src/FP/ch/wozzasjig.c @@ -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 diff --git a/src/FP/ch/xmastree.c b/src/FP/ch/xmastree.c index 9d5aea68..5255dd38 100644 --- a/src/FP/ch/xmastree.c +++ b/src/FP/ch/xmastree.c @@ -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; } diff --git a/src/FP/ch/xmastreeice.c b/src/FP/ch/xmastreeice.c index 62c5553d..b7f54f3e 100644 --- a/src/FP/ch/xmastreeice.c +++ b/src/FP/ch/xmastreeice.c @@ -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); } } } diff --git a/src/FP/ch/xmastreeswitch.c b/src/FP/ch/xmastreeswitch.c index 42a323b3..5f642af7 100644 --- a/src/FP/ch/xmastreeswitch.c +++ b/src/FP/ch/xmastreeswitch.c @@ -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); diff --git a/src/GV/ch/mazectrl.c b/src/GV/ch/mazectrl.c index 09479e43..6c54201e 100644 --- a/src/GV/ch/mazectrl.c +++ b/src/GV/ch/mazectrl.c @@ -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 diff --git a/src/GV/code_9C10.c b/src/GV/code_9C10.c index 14e4fbf4..5389e16e 100644 --- a/src/GV/code_9C10.c +++ b/src/GV/code_9C10.c @@ -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); } } diff --git a/src/GV/waterctrl.c b/src/GV/waterctrl.c index 19b0a3d7..2c5e913a 100644 --- a/src/GV/waterctrl.c +++ b/src/GV/waterctrl.c @@ -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); diff --git a/src/MMM/ch/loggo.c b/src/MMM/ch/loggo.c index 5d0809b8..2488a549 100644 --- a/src/MMM/ch/loggo.c +++ b/src/MMM/ch/loggo.c @@ -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); } diff --git a/src/MMM/code_2040.c b/src/MMM/code_2040.c index 597967a1..2f5355dd 100644 --- a/src/MMM/code_2040.c +++ b/src/MMM/code_2040.c @@ -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); + } } } diff --git a/src/MMM/code_3120.c b/src/MMM/code_3120.c index b3d0f8b1..849a960a 100644 --- a/src/MMM/code_3120.c +++ b/src/MMM/code_3120.c @@ -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); } } } diff --git a/src/MMM/code_3D50.c b/src/MMM/code_3D50.c index c1b327ed..a3978e6c 100644 --- a/src/MMM/code_3D50.c +++ b/src/MMM/code_3D50.c @@ -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); } } diff --git a/src/RBB/ch/anchorctrl.c b/src/RBB/ch/anchorctrl.c index 81de593e..e8b6c19c 100644 --- a/src/RBB/ch/anchorctrl.c +++ b/src/RBB/ch/anchorctrl.c @@ -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); diff --git a/src/RBB/ch/anchorswitch.c b/src/RBB/ch/anchorswitch.c index 1ff37622..352a75a4 100644 --- a/src/RBB/ch/anchorswitch.c +++ b/src/RBB/ch/anchorswitch.c @@ -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); diff --git a/src/RBB/ch/engineparts.c b/src/RBB/ch/engineparts.c index 64128dae..af6da76c 100644 --- a/src/RBB/ch/engineparts.c +++ b/src/RBB/ch/engineparts.c @@ -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){ diff --git a/src/RBB/ch/propellor.c b/src/RBB/ch/propellor.c index 68c70d41..7d6ba8d7 100644 --- a/src/RBB/ch/propellor.c +++ b/src/RBB/ch/propellor.c @@ -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; diff --git a/src/RBB/ch/propellorswitch.c b/src/RBB/ch/propellorswitch.c index 085aed5b..508100ab 100644 --- a/src/RBB/ch/propellorswitch.c +++ b/src/RBB/ch/propellorswitch.c @@ -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); } diff --git a/src/RBB/code_1570.c b/src/RBB/code_1570.c index b873bc77..291e21ae 100644 --- a/src/RBB/code_1570.c +++ b/src/RBB/code_1570.c @@ -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); diff --git a/src/RBB/propellorctrl.c b/src/RBB/propellorctrl.c index 27047fb8..d8fd9e65 100644 --- a/src/RBB/propellorctrl.c +++ b/src/RBB/propellorctrl.c @@ -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())) diff --git a/src/TTC/ch/leaky.c b/src/TTC/ch/leaky.c index e8c715c3..f1e48cbc 100644 --- a/src/TTC/ch/leaky.c +++ b/src/TTC/ch/leaky.c @@ -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; } diff --git a/src/TTC/code_3E30.c b/src/TTC/code_3E30.c index 97e2cf1e..23bb11b5 100644 --- a/src/TTC/code_3E30.c +++ b/src/TTC/code_3E30.c @@ -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() ) { diff --git a/src/core1/code_CE60.c b/src/core1/code_CE60.c index ac11456e..630010d9 100644 --- a/src/core1/code_CE60.c +++ b/src/core1/code_CE60.c @@ -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; } diff --git a/src/core2/bs/jig.c b/src/core2/bs/jig.c index 89eaef6d..7f183e11 100644 --- a/src/core2/bs/jig.c +++ b/src/core2/bs/jig.c @@ -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; } diff --git a/src/core2/ch/clucker.c b/src/core2/ch/clucker.c index cb9f727d..27911f4b 100644 --- a/src/core2/ch/clucker.c +++ b/src/core2/ch/clucker.c @@ -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); diff --git a/src/core2/ch/crab.c b/src/core2/ch/crab.c index 85be3490..b4d66acf 100644 --- a/src/core2/ch/crab.c +++ b/src/core2/ch/crab.c @@ -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; diff --git a/src/core2/ch/jiggy.c b/src/core2/ch/jiggy.c index d3fed8d4..b78d7d79 100644 --- a/src/core2/ch/jiggy.c +++ b/src/core2/ch/jiggy.c @@ -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; diff --git a/src/core2/ch/mole.c b/src/core2/ch/mole.c index 50f4f2f3..9cd38c64 100644 --- a/src/core2/ch/mole.c +++ b/src/core2/ch/mole.c @@ -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 diff --git a/src/core2/ch/termite.c b/src/core2/ch/termite.c index aa1c318a..5da51334 100644 --- a/src/core2/ch/termite.c +++ b/src/core2/ch/termite.c @@ -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) { diff --git a/src/core2/ch/trainers.c b/src/core2/ch/trainers.c index 91c950b0..3143da22 100644 --- a/src/core2/ch/trainers.c +++ b/src/core2/ch/trainers.c @@ -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; } diff --git a/src/core2/ch/wadingboots.c b/src/core2/ch/wadingboots.c index 8e4a93ab..6635b01a 100644 --- a/src/core2/ch/wadingboots.c +++ b/src/core2/ch/wadingboots.c @@ -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; } diff --git a/src/core2/code_4A6F0.c b/src/core2/code_4A6F0.c index b3ac781c..d6dba3e7 100644 --- a/src/core2/code_4A6F0.c +++ b/src/core2/code_4A6F0.c @@ -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); } } } diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 28a92ae6..f9d3ae7e 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -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); diff --git a/src/core2/code_509D0.c b/src/core2/code_509D0.c index 1ce901a4..a6989d3b 100644 --- a/src/core2/code_509D0.c +++ b/src/core2/code_509D0.c @@ -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; } } diff --git a/src/core2/code_BEF20.c b/src/core2/code_BEF20.c index 49149ff5..32275ece 100644 --- a/src/core2/code_BEF20.c +++ b/src/core2/code_BEF20.c @@ -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); diff --git a/src/core2/mapModel.c b/src/core2/mapModel.c index cd16b567..d4c7a404 100644 --- a/src/core2/mapModel.c +++ b/src/core2/mapModel.c @@ -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; diff --git a/src/lair/code_86F0.c b/src/lair/code_86F0.c index 9905582d..6f929d7d 100644 --- a/src/lair/code_86F0.c +++ b/src/lair/code_86F0.c @@ -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) {