From e05358d82f08809f9f336d7ca1edf0e1eef17966 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Tue, 31 Jan 2023 13:47:47 -0600 Subject: [PATCH] label TTC actors --- decompressed.us.v10.yaml | 26 ++-- include/core2/yaw.h | 23 ++++ include/enums.h | 2 + include/functions.h | 6 +- src/TTC/{code_10A0.c => ch/blubber.c} | 0 src/TTC/{code_2B80.c => ch/leaky.c} | 14 +-- src/TTC/{code_19D0.c => ch/nipper.c} | 0 src/TTC/{code_35D0.c => ch/treasurehunt.c} | 0 src/core1/code_18350.c | 8 +- src/core2/ba/marker.c | 2 +- src/core2/bs/ant.c | 15 +-- src/core2/bs/bEggAss.c | 2 +- src/core2/bs/bEggHead.c | 4 +- src/core2/bs/bFlip.c | 4 +- src/core2/bs/bFly.c | 10 +- src/core2/bs/bPeck.c | 5 +- src/core2/bs/bSwim.c | 6 +- src/core2/bs/bTrot.c | 2 +- src/core2/bs/beeFly.c | 8 +- src/core2/bs/climb.c | 6 +- src/core2/bs/crouch.c | 4 +- src/core2/bs/die.c | 2 +- src/core2/bs/jump.c | 4 +- src/core2/bs/stand.c | 8 +- src/core2/bs/swim.c | 20 ++-- src/core2/bs/talk.c | 2 +- src/core2/bs/throw.c | 2 +- src/core2/bs/turn.c | 2 +- src/core2/bs/twirl.c | 2 +- src/core2/code_12360.c | 10 +- src/core2/code_14420.c | 5 +- src/core2/code_356B0.c | 2 +- src/core2/code_CC1E0.c | 2 +- src/core2/fx/lifescore.c | 2 +- src/core2/pitch.c | 46 ++++---- src/core2/yaw.c | 131 +++++++++++---------- 36 files changed, 208 insertions(+), 179 deletions(-) create mode 100644 include/core2/yaw.h rename src/TTC/{code_10A0.c => ch/blubber.c} (100%) rename src/TTC/{code_2B80.c => ch/leaky.c} (88%) rename src/TTC/{code_19D0.c => ch/nipper.c} (100%) rename src/TTC/{code_35D0.c => ch/treasurehunt.c} (100%) diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index 37332817..31397d0f 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -1805,36 +1805,36 @@ segments: exclusive_ram_id: overlay subsegments: - [0x105D7E0, c, ch/clam] #DONE - - [0x105E880, c, code_10A0] #DONE - - [0x105F1B0, c, code_19D0] #DONE + - [0x105E880, c, ch/blubber] #DONE + - [0x105F1B0, c, ch/nipper] #DONE - [0x105FEB0, c, code_26D0] #DONE - - [0x1060360, c, code_2B80] #DONE + - [0x1060360, c, ch/leaky] #DONE - [0x1060820, c, code_3040] #DONE - [0x10608B0, c, ch/lockup] #DONE - - [0x1060DB0, c, code_35D0] #DONE + - [0x1060DB0, c, ch/treasurehunt] #DONE - [0x1061610, c, code_3E30] #DONE - [0x10633B0, c, ch/treasure] #DONE - [0x10637A0, .data, ch/clam] - - [0x10638D0, .data, code_10A0] - - [0x1063930, .data, code_19D0] + - [0x10638D0, .data, ch/blubber] + - [0x1063930, .data, ch/nipper] - [0x10639D0, .data, code_26D0] - - [0x1063AF0, .data, code_2B80] + - [0x1063AF0, .data, ch/leaky] - [0x1063B40, .data, code_3040] - [0x1063B50, .data, ch/lockup] - - [0x1063C10, .data, code_35D0] + - [0x1063C10, .data, ch/treasurehunt] - [0x1063D70, .data, code_3E30] - [0x1064080, .data, ch/treasure] - [0x10640D0, .rodata, ch/clam] - - [0x1064130, .rodata, code_10A0] - - [0x1064160, .rodata, code_19D0] + - [0x1064130, .rodata, ch/blubber] + - [0x1064160, .rodata, ch/nipper] - [0x1064180, .rodata, code_26D0] - - [0x10641C0, .rodata, code_2B80] + - [0x10641C0, .rodata, ch/leaky] - [0x10641E0, .rodata, ch/lockup] - - [0x1064210, .rodata, code_35D0] + - [0x1064210, .rodata, ch/treasurehunt] - [0x1064240, .rodata, code_3E30] - [0x1064A90, .rodata, ch/treasure] - [0x1064AE0, .bss, code_3040] - - [0x1064AE0, .bss, code_35D0] + - [0x1064AE0, .bss, ch/treasurehunt] - [0x1064AE0, .bss, code_3E30] - name: MM dir: MM diff --git a/include/core2/yaw.h b/include/core2/yaw.h new file mode 100644 index 00000000..82015cab --- /dev/null +++ b/include/core2/yaw.h @@ -0,0 +1,23 @@ +#ifndef _YAW_H_ +#define _YAW_H_ + +enum yaw_state_e{ + YAW_STATE_0_NONE, + YAW_STATE_1_DEFAULT, + YAW_STATE_2_UNBOUNDED, + YAW_STATE_3_BOUNDED, +}; + +void yaw_init(void); +void yaw_update(void); +void yaw_setUpdateState(s32); +void yaw_setIdeal(f32 arg0); +void yaw_set(f32 arg0); +void yaw_applyIdeal(void); +s32 yaw_getUpdateState(void); +f32 yaw_get(void); +f32 yaw_getIdeal(void); +void yaw_setVelocityBounded(f32 arg0, f32 arg1); +void yaw_setVelocityUnbounded(f32 arg0); +void yaw_rotateTimed(f32 time_sec); +#endif diff --git a/include/enums.h b/include/enums.h index 16ab02c3..e99c193f 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3659,6 +3659,8 @@ enum asset_e ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED = 0xa17, + ASSET_A28_TEXT_LEAKY_DONE = 0xA28, + ASSET_A6F_TEXT_CHARMER_MEET = 0xA6F, ASSET_A70_TEXT_CHARMER_HELPED, ASSET_A71_TEXT_TRUNKER_MEET, diff --git a/include/functions.h b/include/functions.h index 84dc3111..afa8ae28 100644 --- a/include/functions.h +++ b/include/functions.h @@ -264,7 +264,7 @@ void func_80256E24(f32[3], f32, f32, f32, f32, f32); void func_8025727C(f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 z2, f32 *o1, f32 *o2); f32 func_80257A44(f32, f32); f32 ml_interpolate_f(f32, f32, f32); -f32 func_80257D30(f32, f32, f32, f32, f32); +f32 ml_mapRange_f(f32, f32, f32, f32, f32); int func_80257F18(f32 src[3], f32 target[3], f32 *yaw); bool func_8025801C(f32[3], f32*); @@ -353,8 +353,8 @@ void roll_setIdeal(f32); void roll_setAngularVelocity(f32, f32); void yaw_set(f32); void yaw_applyIdeal(void); -void func_80299234(f32, f32); -void func_80299254(f32); +void yaw_setVelocityBounded(f32, f32); +void yaw_rotateTimed(f32); void func_8029932C(f32); void func_80299594(s32, f32); void func_80299628(s32); diff --git a/src/TTC/code_10A0.c b/src/TTC/ch/blubber.c similarity index 100% rename from src/TTC/code_10A0.c rename to src/TTC/ch/blubber.c diff --git a/src/TTC/code_2B80.c b/src/TTC/ch/leaky.c similarity index 88% rename from src/TTC/code_2B80.c rename to src/TTC/ch/leaky.c index 736cfb5d..862bde74 100644 --- a/src/TTC/code_2B80.c +++ b/src/TTC/ch/leaky.c @@ -6,7 +6,7 @@ extern void func_8028E668(f32 [3], f32, f32, f32); extern void func_8028F9DC(s32); extern void func_803272D0(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *)); -void func_80388FBC(Actor *this); +void chLeaky_update(Actor *this); /* .data */ ActorAnimationInfo D_8038C700[] = { @@ -18,13 +18,13 @@ ActorAnimationInfo D_8038C700[] = { ActorInfo D_8038C718 = { MARKER_33_LEAKY, ACTOR_1E_LEAKY, ASSET_51A_MODEL_LEAKY, 0x1, D_8038C700, - func_80388FBC, func_80326224, func_80325888, + chLeaky_update, func_80326224, func_80325888, 0, 0, 0.0f, 0 }; /* .code */ bool TTC_func_80388F70(Actor *this){ - return this->modelCacheIndex == 0x56; + return this->modelCacheIndex == ACTOR_56_SHRAPNEL; } void func_80388F88(void){ @@ -32,7 +32,7 @@ void func_80388F88(void){ func_803272D0(D_8038C73C, 2000.0f, 2, TTC_func_80388F70); } -void func_80388FBC(Actor *this) { +void chLeaky_update(Actor *this) { void *temp_v0_2; func_8028E668(this->position, 100.0f, -20.0f, 100.0f); @@ -80,7 +80,7 @@ void func_80388FBC(Actor *this) { } } -void func_80389288(ActorMarker *caller, enum asset_e text_id, s32 arg2){ +void __chLeaky_startCutscene(ActorMarker *caller, enum asset_e text_id, s32 arg2){ Actor *this = marker_getActor(caller); Struct73s *temp_v0; func_80328A84(this, 2); @@ -98,7 +98,7 @@ void func_80389288(ActorMarker *caller, enum asset_e text_id, s32 arg2){ func_803228D8(); } -bool func_80389364(ActorMarker *marker){ +bool chLeaky_eggCollision(ActorMarker *marker){ Actor *this = marker_getActor(marker); if(levelSpecificFlags_get(2)) @@ -111,6 +111,6 @@ bool func_80389364(ActorMarker *marker){ levelSpecificFlags_set(2, TRUE); levelSpecificFlags_set(5, TRUE); - func_80311480(0xa28, 0x2a, this->position, this->marker, func_80389288, NULL); + func_80311480(ASSET_A28_TEXT_LEAKY_DONE, 0x2a, this->position, this->marker, __chLeaky_startCutscene, NULL); return TRUE; } diff --git a/src/TTC/code_19D0.c b/src/TTC/ch/nipper.c similarity index 100% rename from src/TTC/code_19D0.c rename to src/TTC/ch/nipper.c diff --git a/src/TTC/code_35D0.c b/src/TTC/ch/treasurehunt.c similarity index 100% rename from src/TTC/code_35D0.c rename to src/TTC/ch/treasurehunt.c diff --git a/src/core1/code_18350.c b/src/core1/code_18350.c index 34e780e2..4e2ec73d 100644 --- a/src/core1/code_18350.c +++ b/src/core1/code_18350.c @@ -790,12 +790,12 @@ f32 func_80257CF8(f32 a, f32 b, f32 c, f32 d, f32 e) return func_80257C60(a, b, c, d, e, func_80257658); } -f32 func_80257D30(f32 a, f32 b, f32 c, f32 d, f32 e) +f32 ml_mapRange_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max) { - if (a < 0) - return ml_map_f(a, -b, -c, -d, -e); + if (val < 0) + return ml_map_f(val, -in_min, -in_max, -out_min, -out_max); else - return ml_map_f(a, b, c, d, e); + return ml_map_f(val, in_min, in_max, out_min, out_max); } void func_80257DB0(f32 arg0[3], f32 arg1[3], f32 arg2[3]) diff --git a/src/core2/ba/marker.c b/src/core2/ba/marker.c index c2576756..4edb689f 100644 --- a/src/core2/ba/marker.c +++ b/src/core2/ba/marker.c @@ -103,7 +103,7 @@ s32 *__baMarker_8028B750(void){ void __baMarker_8028B7F4(void){ yaw_setIdeal(func_8029B41C()); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_802978DC(2); func_80297970(0.0f); diff --git a/src/core2/bs/ant.c b/src/core2/bs/ant.c index 1bee9995..c3e36f20 100644 --- a/src/core2/bs/ant.c +++ b/src/core2/bs/ant.c @@ -1,6 +1,7 @@ #include #include "functions.h" #include "variables.h" +#include "core2/yaw.h" void func_80293D48(f32,f32); @@ -77,7 +78,7 @@ int bsant_inSet(s32 move_indx){ void bsant_idle_init(void){ func_8029E554(); func_8028A010(ASSET_5E_ANIM_BSANT_IDLE, 1.2f); - func_8029C7F4(1,1,1,2); + func_8029C7F4(1,YAW_STATE_1_DEFAULT,1,2); func_80297970(0.0f); pitch_setAngVel(1000.0f, 12.0f); roll_setAngularVelocity(1000.0f, 12.0f); @@ -113,7 +114,7 @@ void bsant_idle_end(void){ void bsant_walk_init(void){ func_8029E554(); func_8028A010(ASSET_5F_ANIM_BSANT_WALK, 0.8f); - func_8029C7F4(2,1,1,2); + func_8029C7F4(2,YAW_STATE_1_DEFAULT,1,2); func_80289EC8(D_80364960, D_80364964, D_80364968, D_8036496C); func_802900B4(); } @@ -159,7 +160,7 @@ void bsant_jump_init(void){ animctrl_setSubRange(aCtrl, 0.0f, 0.4423f); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); func_802875AC(aCtrl, "bsant.c", 0x17c); - func_8029C7F4(1,1,3,6); + func_8029C7F4(1,YAW_STATE_1_DEFAULT,3,6); if(func_8029B2E8() != 0.0f) yaw_setIdeal(func_8029B33C()); func_8029797C(yaw_getIdeal()); @@ -237,7 +238,7 @@ void bsant_fall_init(void){ func_8028774C(aCtrl, 0.4423f); animctrl_setPlaybackType(aCtrl, ANIMCTRL_STOPPED); func_802875AC(aCtrl, "bsant.c", 0x208); - func_8029C7F4(1,1,3,6); + func_8029C7F4(1,YAW_STATE_1_DEFAULT,3,6); D_8037D294 = 0; } @@ -301,7 +302,7 @@ static void __bsant_recoil_init(int take_damage){ func_80297970(200.0f); func_8029797C(sp38); func_802979AC(sp38, func_80297A64()); - func_8029C7F4(1,1,2,3); + func_8029C7F4(1,YAW_STATE_1_DEFAULT,2,3); player_setYVelocity(510.0f); gravity_set(-1200.0f); baMarker_collisionOff(); @@ -388,7 +389,7 @@ void bsant_die_init(void){ func_80297970(D_8037D290); func_8029797C(sp38); func_802979AC(sp38, func_80297A64()); - func_8029C7F4(1,1,2,3); + func_8029C7F4(1,YAW_STATE_1_DEFAULT,2,3); player_setYVelocity(510.0f); gravity_set(-1200.0f); pitch_setAngVel(1000.0f, 12.0f); @@ -448,7 +449,7 @@ void bsant_die_end(void){ void func_8029F398(void){ func_8029E554(); func_8028A010(ASSET_5E_ANIM_BSANT_IDLE, 2.0f); - func_8029C7F4(1,1,3,2); + func_8029C7F4(1,YAW_STATE_1_DEFAULT,3,2); func_80297970(0.0f); func_8029C674(); func_802B3A50(); diff --git a/src/core2/bs/bEggAss.c b/src/core2/bs/bEggAss.c index 8add8c1f..e485b8ab 100644 --- a/src/core2/bs/bEggAss.c +++ b/src/core2/bs/bEggAss.c @@ -10,7 +10,7 @@ u8 D_8037D2E1; void bseggass_init(void){ func_8028A274(ASSET_2B_ANIM_BSEGGASS, 1.0f); func_8029C7F4(1,3,1,3); - func_80299234(350.0f, 14.0f); + yaw_setVelocityBounded(350.0f, 14.0f); func_80297970(0.0f); func_8029E058(1); D_8037D2E0 = (D_8037D2E1 = 1); diff --git a/src/core2/bs/bEggHead.c b/src/core2/bs/bEggHead.c index b56c9e7d..ba1ceaef 100644 --- a/src/core2/bs/bEggHead.c +++ b/src/core2/bs/bEggHead.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -void func_80299234(f32, f32); +void yaw_setVelocityBounded(f32, f32); void func_802875AC(AnimCtrl *, char*, s32); /* .bss */ @@ -13,7 +13,7 @@ u8 D_8037D2F1; void bsegghead_init(void){ func_8028A274(ASSET_2A_ANIM_BSEGGHEAD, 1.0f); func_8029C7F4(1,3,1,3); - func_80299234(350.0f, 14.0f); + yaw_setVelocityBounded(350.0f, 14.0f); func_80297970(0.0f); func_8029E070(1); D_8037D2F0 = (D_8037D2F1 = 1); diff --git a/src/core2/bs/bFlip.c b/src/core2/bs/bFlip.c index 4f60c2bc..9881a22f 100644 --- a/src/core2/bs/bFlip.c +++ b/src/core2/bs/bFlip.c @@ -73,12 +73,12 @@ void bsbflip_update(void){ case 0://L802A2FD4 if(animctrl_isAt(aCtrl, 0.1837f)){ if(func_8029B2E8() != 0.0f){ - func_802991A8(2); + yaw_setUpdateState(2); func_8029957C(3); if(func_8029B2E8){ //!!! BUG !!! yaw_setIdeal(func_8029B33C()); } - func_80299254(1.0f); + yaw_rotateTimed(1.0f); func_802978DC(6); func_8029797C(yaw_getIdeal()); func_80297970(200.0f); diff --git a/src/core2/bs/bFly.c b/src/core2/bs/bFly.c index 7c025828..ede3d6ad 100644 --- a/src/core2/bs/bFly.c +++ b/src/core2/bs/bFly.c @@ -48,8 +48,8 @@ void func_802A3404(void){ void func_802A3430(void){ baModel_setYDisplacement(60.0f); - func_802991A8(3); - func_80299234(500.0f, 2.0f); + yaw_setUpdateState(3); + yaw_setVelocityBounded(500.0f, 2.0f); roll_setAngularVelocity(500.0f, 2.0f); func_802A33D8(); func_80293D48(60.0f, 45.0f); @@ -65,7 +65,7 @@ void func_802A34C8(void){ func_8029E070(0); baModel_setYDisplacement(0.0f); func_8029CB84(); - func_802991A8(1); + yaw_setUpdateState(1); func_80291548(); func_80293D74(); func_80294378(1); @@ -80,12 +80,12 @@ void func_802A354C(void){ sp2C = func_8029B2D0(); if(button_held(BUTTON_R)){ - func_80299234(500.0f, 30.0f); + yaw_setVelocityBounded(500.0f, 30.0f); yaw_range = 6.0f; roll_range = 85.0f; } else{ - func_80299234(500.0f, 2.0f); + yaw_setVelocityBounded(500.0f, 2.0f); yaw_range = 3.0f; roll_range = 75.0f; } diff --git a/src/core2/bs/bPeck.c b/src/core2/bs/bPeck.c index ca43dd84..0c622c1b 100644 --- a/src/core2/bs/bPeck.c +++ b/src/core2/bs/bPeck.c @@ -1,6 +1,7 @@ #include #include "functions.h" #include "variables.h" +#include "core2/yaw.h" void baModel_80292048(s32, f32, f32, f32); void func_802875AC(AnimCtrl *, char *, s32); @@ -37,8 +38,8 @@ void bsbpeck_init(void){ func_80293240(2); func_8028A274(ASSET_1A_ANIM_BSBPECK, 0.2f); - func_8029C7F4(1,3,1,6); - func_80299234(1200.0f, 10.0f); + func_8029C7F4(1,YAW_STATE_3_BOUNDED, 1, 6); + yaw_setVelocityBounded(1200.0f, 10.0f); func_8029E070(1); gravity_set(D_80364A60); player_setYVelocity(D_80364A64); diff --git a/src/core2/bs/bSwim.c b/src/core2/bs/bSwim.c index e32213d8..1565d740 100644 --- a/src/core2/bs/bSwim.c +++ b/src/core2/bs/bSwim.c @@ -37,11 +37,11 @@ void func_802A71D8(void) { if (button_held(BUTTON_R)) { roll_range = 45.0f; yaw_range = 4.3f; - func_80299234(250.0f, 20.0f); + yaw_setVelocityBounded(250.0f, 20.0f); } else { roll_range = 35.0f; yaw_range = ml_interpolate_f(sp38, 3.1f, 2.4f); - func_80299234(90.0f, ml_interpolate_f(sp38, 3.8f, 2.2f)); + yaw_setVelocityBounded(90.0f, ml_interpolate_f(sp38, 3.8f, 2.2f)); } roll_setIdeal(ml_map_f(sp30, -1.0f, 1.0f, -roll_range, roll_range)); yaw_setIdeal(mlNormalizeAngle(yaw_getIdeal() + ml_map_f(sp30, -1.0f, 1.0f, yaw_range, -yaw_range))); @@ -332,7 +332,7 @@ void func_802A7DAC(void) { ability_use(ABILITY_3_CAMERA_CONTROL); func_8028A180(0x3C, 1.0f); func_802A7140(); - func_80299234(500.0f, 5.0f); + yaw_setVelocityBounded(500.0f, 5.0f); func_80297930(0); func_802A744C(); pitch_setAngVel(200.0f, 2.5f); diff --git a/src/core2/bs/bTrot.c b/src/core2/bs/bTrot.c index c64866e0..58d320ed 100644 --- a/src/core2/bs/bTrot.c +++ b/src/core2/bs/bTrot.c @@ -351,7 +351,7 @@ void bsbtrot_jump_init(void){ func_802875AC(aCtrl, "bsbtrot.c", 0x272); func_802A8A40(); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_802978DC(6); if(func_8029B2E8() != 0.0f) diff --git a/src/core2/bs/beeFly.c b/src/core2/bs/beeFly.c index 511ea34d..6fef7ab7 100644 --- a/src/core2/bs/beeFly.c +++ b/src/core2/bs/beeFly.c @@ -11,7 +11,7 @@ void func_80297970(f32); void baModel_setYDisplacement(f32); void func_80297BF8(f32); void func_802BFE50(f32, f32, f32); -void func_80299234(f32, f32); +void yaw_setVelocityBounded(f32, f32); f32 func_8029B2D0(void); f32 func_8029B2DC(void); f32 func_80297A64(void); @@ -108,7 +108,7 @@ void func_802A07F8(void){ if(bsBeeFly_inSet(bs_getPrevState())) return; baModel_setYDisplacement(65.0f); - func_802991A8(3); + yaw_setUpdateState(3); roll_setAngularVelocity(500.0f, 2.0f); func_802A0724(); gravity_set(-300.0f); @@ -125,12 +125,12 @@ void _bsBeeFly_updateYaw(void){ stickX = func_8029B2D0(); func_802BFE50(2.0f, 2000.0f, 350.0f); if(button_held(BUTTON_R)){ - func_80299234(500.0f, 30.0f); + yaw_setVelocityBounded(500.0f, 30.0f); sp34 = 6.0f; sp30 = 85.0f; } else{ - func_80299234(500.0f, 2.0f); + yaw_setVelocityBounded(500.0f, 2.0f); sp34 = 3.0f; sp30 = 65.0f; } diff --git a/src/core2/bs/climb.c b/src/core2/bs/climb.c index 78f5dec5..c3c8ff80 100644 --- a/src/core2/bs/climb.c +++ b/src/core2/bs/climb.c @@ -18,7 +18,7 @@ void func_802AB5C0(void){ f2 = 0.0f; } else{ - f2 = func_80257D30(sp28, 0.03f, 1.0f, 100.0f, 300.0f); + f2 = ml_mapRange_f(sp28, 0.03f, 1.0f, 100.0f, 300.0f); } sp2C[0] = 0.0f; sp2C[1] = f2; @@ -28,8 +28,8 @@ void func_802AB5C0(void){ void func_802AB654(void){ func_8029957C(6); - func_802991A8(3); - func_80299234(500.0f, 15.0f); + yaw_setUpdateState(3); + yaw_setVelocityBounded(500.0f, 15.0f); func_8029B324(0, 0.03f); func_8029B324(1, 1.0f); func_802978DC(0xA); diff --git a/src/core2/bs/crouch.c b/src/core2/bs/crouch.c index 66596377..8950f400 100644 --- a/src/core2/bs/crouch.c +++ b/src/core2/bs/crouch.c @@ -57,8 +57,8 @@ void bscrouch_init(void){ func_8028774C(aCtrl, sp24); func_802875AC(aCtrl, "bscrouch.c", 0xa0); func_80289F10(1); - func_802991A8(3); - func_80299234(350.0f, 14.0f); + yaw_setUpdateState(3); + yaw_setVelocityBounded(350.0f, 14.0f); func_8029957C(7); func_8029932C(8.0f); func_802978DC(3); diff --git a/src/core2/bs/die.c b/src/core2/bs/die.c index 252c7295..9cda39c5 100644 --- a/src/core2/bs/die.c +++ b/src/core2/bs/die.c @@ -44,7 +44,7 @@ void bsdie_init(void){ func_8029797C(sp38); func_802979AC(sp38, func_80297A64()); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(2); func_802978DC(3); player_setYVelocity(510.0f); diff --git a/src/core2/bs/jump.c b/src/core2/bs/jump.c index 711a4a0e..42cfac7f 100644 --- a/src/core2/bs/jump.c +++ b/src/core2/bs/jump.c @@ -261,7 +261,7 @@ void func_802B1928(void) { animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE); func_802875AC(anim_ctrl, "bsjump.c", 0x201); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_802978DC(3); func_8029797C(yaw_getIdeal()); @@ -342,7 +342,7 @@ void func_802B1BF4(void) { func_802875AC(anim_ctrl, "bsjump.c", 0x298); yaw_setIdeal(func_8029B41C()); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_802978DC(6); func_80297970(0.0f); diff --git a/src/core2/bs/stand.c b/src/core2/bs/stand.c index b859797c..05252b13 100644 --- a/src/core2/bs/stand.c +++ b/src/core2/bs/stand.c @@ -4,7 +4,7 @@ #include "bsint.h" extern f32 func_8029B2E8(void); -void func_80299234(f32, f32); +void yaw_setVelocityBounded(f32, f32); void func_802875AC(AnimCtrl *, char*, s32); @@ -189,14 +189,14 @@ void bsstand_update(void) { anim_ctrl = _player_getAnimCtrlPtr(); if ((func_8029B300() == 0) && (func_8029B2E8() > 0.0f)) { D_8037D544 = 1; - func_802991A8(3); - func_80299234(200.0f, 14.0f); + yaw_setUpdateState(3); + yaw_setVelocityBounded(200.0f, 14.0f); } else { if (D_8037D544 != 0) { yaw_setIdeal(yaw_get()); } D_8037D544 = 0; - func_802991A8(1); + yaw_setUpdateState(1); } next_state = func_802B488C(0); sp18 = D_80364D20[D_8037D540]; diff --git a/src/core2/bs/swim.c b/src/core2/bs/swim.c index 66488c31..23d8ea10 100644 --- a/src/core2/bs/swim.c +++ b/src/core2/bs/swim.c @@ -12,14 +12,14 @@ f32 D_80364D44 = 300.0f; f32 D_80364D48 = 1.2f; f32 D_80364D4C = 0.7f; s16 D_80364D50[10] = { - 0x57, - 0x57, - 0x57, + ASSET_57_ANIM_BSSWIM_IDLE, + ASSET_57_ANIM_BSSWIM_IDLE, + ASSET_57_ANIM_BSSWIM_IDLE, 0x58, - 0x57, + ASSET_57_ANIM_BSSWIM_IDLE, 0x58, - 0x57, - 0x57, + ASSET_57_ANIM_BSSWIM_IDLE, + ASSET_57_ANIM_BSSWIM_IDLE, 0x58, 0x58 }; @@ -137,7 +137,7 @@ void func_802B5774(void) { func_802875AC(anim_ctrl, "bsswim.c", 0xFD); } func_8029C7F4(1, 3, 3, 2); - func_80299234(500.0f, 5.0f); + yaw_setVelocityBounded(500.0f, 5.0f); func_80297970(0.0f); func_802B563C(); D_8037D550 = 0; @@ -207,8 +207,8 @@ void func_802B5B18(void) { func_80289F10(2); func_80289EA8(0.3f, 1.5f); func_80289EC8(D_80364D40, D_80364D44, D_80364D48, D_80364D4C); - func_802991A8(3); - func_80299234(500.0f, 5.0f); + yaw_setUpdateState(3); + yaw_setVelocityBounded(500.0f, 5.0f); func_8029957C(1); func_802978DC(2); } @@ -279,7 +279,7 @@ void func_802B5E30(void) { void func_802B5E8C(void) { func_8028A010(0x57, 1.2f); func_8029C7F4(1, 3, 3, 2); - func_80299234(500.0f, 5.0f); + yaw_setVelocityBounded(500.0f, 5.0f); func_80297970(0.0f); func_802B563C(); func_802B5E30(); diff --git a/src/core2/bs/talk.c b/src/core2/bs/talk.c index 9554ef43..15a78a7c 100644 --- a/src/core2/bs/talk.c +++ b/src/core2/bs/talk.c @@ -22,7 +22,7 @@ void bstalk_init(void){ func_80257F18(plyr_pos, target_pos, &yaw); yaw_setIdeal(yaw); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_802978DC(2); func_80297970(0.0f); diff --git a/src/core2/bs/throw.c b/src/core2/bs/throw.c index eec0c210..41fa06c1 100644 --- a/src/core2/bs/throw.c +++ b/src/core2/bs/throw.c @@ -18,7 +18,7 @@ void bsthrow_init(void){ func_802875AC(aCtrl, "bsthrow.c", 0x2e); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_802978DC(3); func_80297970(0.0f); diff --git a/src/core2/bs/turn.c b/src/core2/bs/turn.c index 312bebbd..3ef2efdc 100644 --- a/src/core2/bs/turn.c +++ b/src/core2/bs/turn.c @@ -18,7 +18,7 @@ void bsturn_init(void){ animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); func_802875AC(aCtrl, "bsturn.c", 0x37); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(2); func_802978DC(3); _get_velocity(&sp28); diff --git a/src/core2/bs/twirl.c b/src/core2/bs/twirl.c index a6e15077..752a353e 100644 --- a/src/core2/bs/twirl.c +++ b/src/core2/bs/twirl.c @@ -22,7 +22,7 @@ void bstwirl_init(void){ animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); func_802875AC(aCtrl, "bstwirl.c", 0x46); func_80289F10(1); - func_802991A8(1); + yaw_setUpdateState(1); func_8029957C(3); func_8029797C(yaw_getIdeal()); func_802979AC(yaw_getIdeal(), func_80297A64()); diff --git a/src/core2/code_12360.c b/src/core2/code_12360.c index b2ebbf86..a30284ee 100644 --- a/src/core2/code_12360.c +++ b/src/core2/code_12360.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -extern f32 func_80257D30(f32, f32, f32, f32, f32); +extern f32 ml_mapRange_f(f32, f32, f32, f32, f32); extern void func_8025901C(f32, f32 *, f32 *, f32); extern f32 func_8029B2D0(void); @@ -14,7 +14,7 @@ f32 D_8037C6B4; /* .code */ void func_802992F0(void){ - func_802990B4(); + yaw_init(); D_8037C6B4 = 0.0f; D_8037C6B0 = 0; func_8029957C(1); @@ -26,9 +26,9 @@ void func_8029932C(f32 arg0){ void func_80299338(void){ f32 stickX = func_8029B2D0(); - f32 sp20; - sp20 =(0.03 < (f64)mlAbsF(stickX)) ? func_80257D30(stickX, 0.0f, 1.0f, 1.0f, 6.0f) : 0.0f; - yaw_setIdeal(yaw_getIdeal() + sp20); + f32 d_yaw_deg; + d_yaw_deg =(0.03 < (f64)mlAbsF(stickX)) ? ml_mapRange_f(stickX, 0.0f, 1.0f, 1.0f, 6.0f) : 0.0f; + yaw_setIdeal(yaw_getIdeal() + d_yaw_deg); } void func_802993C8(void){ diff --git a/src/core2/code_14420.c b/src/core2/code_14420.c index b7a8fc7a..d1ca82cc 100644 --- a/src/core2/code_14420.c +++ b/src/core2/code_14420.c @@ -1,6 +1,7 @@ #include #include "functions.h" #include "variables.h" +#include "core2/yaw.h" f32 func_8024DDD8(f32[3], f32); extern void func_8024E71C(s32, f32*); @@ -761,9 +762,9 @@ enum bs_e func_8029C780(void){ return BS_5_JUMP; } -void func_8029C7F4(s32 arg0, s32 arg1, s32 arg2, s32 arg3){ +void func_8029C7F4(s32 arg0, enum yaw_state_e yaw_state, s32 arg2, s32 arg3){ func_80289F10(arg0); - func_802991A8(arg1); + yaw_setUpdateState(yaw_state); func_8029957C(arg2); func_802978DC(arg3); } diff --git a/src/core2/code_356B0.c b/src/core2/code_356B0.c index 180e468a..716fbe1e 100644 --- a/src/core2/code_356B0.c +++ b/src/core2/code_356B0.c @@ -707,7 +707,7 @@ void func_802BDB30(f32 arg0, f32 *arg1, f32 *arg2, f32 arg3, f32 arg4, f32 arg5) sp30 = time_getDelta(); sp38 = mlDiffDegF(arg0, *arg1); if (mlAbsF(sp38) < arg5) { - *arg2 = func_80257D30(sp38, 0.0f, arg5, 10.0f, arg4); + *arg2 = ml_mapRange_f(sp38, 0.0f, arg5, 10.0f, arg4); } else { phi_f0 = arg3 * sp30; if (sp38 < 0.0f) { diff --git a/src/core2/code_CC1E0.c b/src/core2/code_CC1E0.c index b57756ee..3db3a750 100644 --- a/src/core2/code_CC1E0.c +++ b/src/core2/code_CC1E0.c @@ -83,7 +83,7 @@ s32 func_803531C8(u8 projectile_indx, s32 arg1){ break; case MARKER_33_LEAKY: //L80353350 - if(func_802458A8(sp40, other_marker, 0x32) && func_80389364(other_marker)){ + if(func_802458A8(sp40, other_marker, 0x32) && chLeaky_eggCollision(other_marker)){ func_8033E984(); } break; diff --git a/src/core2/fx/lifescore.c b/src/core2/fx/lifescore.c index f2942824..d0db5bac 100644 --- a/src/core2/fx/lifescore.c +++ b/src/core2/fx/lifescore.c @@ -34,7 +34,7 @@ s32 func_802FFDE0(s32 arg0){ s32 func_802FFE04(void){ s32 v1; - v1 = (5 < itemPrint_getValue(ITEM_14_HEALTH)) ? 5 : itemPrint_getValue(ITEM_14_HEALTH); + v1 = MIN(5 , itemPrint_getValue(ITEM_14_HEALTH)); return (5 - v1)*4; } diff --git a/src/core2/pitch.c b/src/core2/pitch.c index 6d8f6571..531a6f55 100644 --- a/src/core2/pitch.c +++ b/src/core2/pitch.c @@ -3,68 +3,68 @@ #include "variables.h" /* .bss */ -f32 D_8037C540; //pitch degrees -f32 D_8037C544; //idealPitch degrees -f32 D_8037C548; //pitchAngularVelocityLimit -f32 D_8037C54C; //PitchAngularVelocity +static f32 pitch_degree; +static f32 idealPitch_degree; +static f32 pitchVelocityLimit_degreePerSec; +static f32 pitchVelocity_degreePerSec; /* .code */ static void __pitch_update(f32 limit, f32 angVel){ f32 diff; f32 val; - f32 tick = time_getDelta(); + f32 dt = time_getDelta(); f32 max; - max = limit*tick; - diff = D_8037C544 - D_8037C540; + max = limit*dt; + diff = idealPitch_degree - pitch_degree; if(180.0f < mlAbsF(diff)){ diff += (diff < 0.0f)? 360.0: -360.0; } - val = diff * angVel * tick; + val = diff * angVel * dt; val = (val < 0) ? ml_clamp_f(val, -max, -0.1f) : ml_clamp_f(val, 0.1f, max); - D_8037C540 =( mlAbsF(val) <= mlAbsF(diff)) ? D_8037C540 + val : D_8037C544; + pitch_degree =( mlAbsF(val) <= mlAbsF(diff)) ? pitch_degree + val : idealPitch_degree; - if(D_8037C540 < 360.0){ - if(D_8037C540 < 0.0) - D_8037C540 += 360.0; + if(pitch_degree < 360.0){ + if(pitch_degree < 0.0) + pitch_degree += 360.0; } else - D_8037C540 -= 360.0; + pitch_degree -= 360.0; } void pitch_reset(void){ - D_8037C540 = 0.0f; - D_8037C544 = 0.0f; + pitch_degree = 0.0f; + idealPitch_degree = 0.0f; pitch_setAngVel(500.0f, 0.8f); } void pitch_update(void){ - __pitch_update(D_8037C548, D_8037C54C); + __pitch_update(pitchVelocityLimit_degreePerSec, pitchVelocity_degreePerSec); } void pitch_setIdeal(f32 ideal_pitch_deg){ - D_8037C544 = mlNormalizeAngle(ideal_pitch_deg); + idealPitch_degree = mlNormalizeAngle(ideal_pitch_deg); } void pitch_set(f32 pitch_deg){ - D_8037C540 = mlNormalizeAngle(pitch_deg); + pitch_degree = mlNormalizeAngle(pitch_deg); } void pitch_applyIdeal(void){ - D_8037C540 = D_8037C544; + pitch_degree = idealPitch_degree; } f32 pitch_get(void){ - return D_8037C540; + return pitch_degree; } f32 pitch_getIdeal(void){ - return D_8037C544; + return idealPitch_degree; } void pitch_setAngVel(f32 limit, f32 angVel){ - D_8037C548 = limit; - D_8037C54C = angVel; + pitchVelocityLimit_degreePerSec = limit; + pitchVelocity_degreePerSec = angVel; } diff --git a/src/core2/yaw.c b/src/core2/yaw.c index 8e742b5f..1c53dd07 100644 --- a/src/core2/yaw.c +++ b/src/core2/yaw.c @@ -1,136 +1,137 @@ #include #include "functions.h" #include "variables.h" +#include "core2/yaw.h" -void func_80299248(f32); -void func_802991A8(s32); -f32 D_8037C690; //yaw -f32 D_8037C694; //yaw_ideal -s32 D_8037C698; //yaw_update_type + +f32 yaw_deg; //yaw +f32 yawIdeal_deg; //yaw_ideal +s32 yawUpdateState; //yaw_update_type f32 D_8037C69C; //yaw_update2_angular_velocity f32 D_8037C6A0; //yaw_update3_angular_velocity_limit f32 D_8037C6A4; //yaw_update3_angular_velocity_percentage -void func_80298D70(f32 arg0) { - f32 sp24; + +void __yaw_update_limitless(f32 arg0) { + f32 dYaw_deg; f32 sp20; arg0 *= time_getDelta(); - sp24 = D_8037C694 - D_8037C690; - if (mlAbsF(sp24) > 180.0f) { - sp24 += (sp24 < 0.0f) ? 360.0 : -360.0; + dYaw_deg = yawIdeal_deg - yaw_deg; + if (mlAbsF(dYaw_deg) > 180.0f) { + dYaw_deg += (dYaw_deg < 0.0f) ? 360.0 : -360.0; } - sp20 = (mlAbsF(sp24) > 180.0f) ? arg0 : ((sp24 < 0.0f)? -arg0: arg0); + sp20 = (mlAbsF(dYaw_deg) > 180.0f) ? arg0 : ((dYaw_deg < 0.0f)? -arg0: arg0); - if(mlAbsF(sp20) <= mlAbsF(sp24)) - D_8037C690 += sp20; + if(mlAbsF(sp20) <= mlAbsF(dYaw_deg)) + yaw_deg += sp20; else - D_8037C690 = D_8037C694; + yaw_deg = yawIdeal_deg; - if (D_8037C690 < 360.0) { - if (D_8037C690 < 0.0) { - D_8037C690 = (f32) (D_8037C690 + 360.0); + if (yaw_deg < 360.0) { + if (yaw_deg < 0.0) { + yaw_deg = (f32) (yaw_deg + 360.0); } } else { - D_8037C690 = (f32) (D_8037C690 - 360.0); + yaw_deg = (f32) (yaw_deg - 360.0); } } -static void func_80298F14(f32 limit, f32 step_percent){ - f32 diff; - f32 val; - f32 tick = time_getDelta(); - f32 max; +static void __yaw_update_limited(f32 limit_degPerSec, f32 step_percent){ + f32 dyaw_deg; + f32 val_deg; + f32 dt_s = time_getDelta(); + f32 max_deg; - max = limit*tick; - diff = D_8037C694 - D_8037C690; - if(180.0f < mlAbsF(diff)){ - diff += (diff < 0.0f)? 360.0: -360.0; + max_deg = limit_degPerSec*dt_s; + dyaw_deg = yawIdeal_deg - yaw_deg; + if(180.0f < mlAbsF(dyaw_deg)){ + dyaw_deg += (dyaw_deg < 0.0f)? 360.0: -360.0; } - val = diff * step_percent * tick; - val = (val < 0) ? ml_clamp_f(val, -max, -0.1f) : ml_clamp_f(val, 0.1f, max); + val_deg = dyaw_deg * step_percent * dt_s; + val_deg = (val_deg < 0) ? ml_clamp_f(val_deg, -max_deg, -0.1f) : ml_clamp_f(val_deg, 0.1f, max_deg); - D_8037C690 =( mlAbsF(val) <= mlAbsF(diff)) ? D_8037C690 + val : D_8037C694; + yaw_deg =( mlAbsF(val_deg) <= mlAbsF(dyaw_deg)) ? yaw_deg + val_deg : yawIdeal_deg; - if(D_8037C690 < 360.0){ - if(D_8037C690 < 0.0) - D_8037C690 += 360.0; + if(yaw_deg < 360.0){ + if(yaw_deg < 0.0) + yaw_deg += 360.0; } else - D_8037C690 -= 360.0; + yaw_deg -= 360.0; } -void func_802990B4(void){ - D_8037C690 = 0.0f; - D_8037C694 = 0.0f; - func_80299234(700.0f, 7.5f); - func_80299248(360.0f); - D_8037C698 = 0; - func_802991A8(1); +void yaw_init(void){ + yaw_deg = 0.0f; + yawIdeal_deg = 0.0f; + yaw_setVelocityBounded(700.0f, 7.5f); + yaw_setVelocityUnbounded(360.0f); + yawUpdateState = 0; + yaw_setUpdateState(YAW_STATE_1_DEFAULT); } void yaw_update(void){ - switch(D_8037C698){ - case 0: + switch(yawUpdateState){ + case YAW_STATE_0_NONE: break; - case 1: - func_80298F14(700.0f, 7.5f); + case YAW_STATE_1_DEFAULT: + __yaw_update_limited(700.0f, 7.5f); break; - case 2: - func_80298D70(D_8037C69C); + case YAW_STATE_2_UNBOUNDED: + __yaw_update_limitless(D_8037C69C); break; - case 3: - func_80298F14(D_8037C6A0, D_8037C6A4); + case YAW_STATE_3_BOUNDED: + __yaw_update_limited(D_8037C6A0, D_8037C6A4); break; } } -void func_802991A8(s32 arg0){ - D_8037C698 = arg0; +void yaw_setUpdateState(s32 arg0){ + yawUpdateState = arg0; } void yaw_setIdeal(f32 arg0){ - D_8037C694 = mlNormalizeAngle(arg0); + yawIdeal_deg = mlNormalizeAngle(arg0); } void yaw_set(f32 arg0){ - D_8037C690 = mlNormalizeAngle(arg0); + yaw_deg = mlNormalizeAngle(arg0); } void yaw_applyIdeal(void){ - D_8037C690 = D_8037C694; + yaw_deg = yawIdeal_deg; } -s32 func_80299210(void){ - return D_8037C698; +s32 yaw_getUpdateState(void){ + return yawUpdateState; } f32 yaw_get(void){ - return D_8037C690; + return yaw_deg; } f32 yaw_getIdeal(void){ - return D_8037C694; + return yawIdeal_deg; } -void func_80299234(f32 arg0, f32 arg1){ +void yaw_setVelocityBounded(f32 arg0, f32 arg1){ D_8037C6A0 = arg0; D_8037C6A4 = arg1; } -void func_80299248(f32 arg0){ +void yaw_setVelocityUnbounded(f32 arg0){ D_8037C69C = arg0; } -void func_80299254(f32 arg0){ - f32 diff = D_8037C694 - D_8037C690; - if(180.0f < mlAbsF(diff)){ - diff += (diff < 0.0f)? 360.0: -360.0; +void yaw_rotateTimed(f32 time_sec){ + f32 dyaw_deg = yawIdeal_deg - yaw_deg; + if(180.0f < mlAbsF(dyaw_deg)){ + dyaw_deg += (dyaw_deg < 0.0f)? 360.0: -360.0; } - D_8037C69C = mlAbsF(diff/arg0); + D_8037C69C = mlAbsF(dyaw_deg/time_sec); }