diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index a80a139d..cc6df50a 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -522,14 +522,14 @@ segments: - [0xF60040, c, statetimer] #DONE - [0xF602C0, c, code_A960] #DONE - [0xF603C0, c, ba/model] #DONE - - [0xF60FB0, c, code_B650] #DONE + - [0xF60FB0, c, ba/drone] #DONE - [0xF611B0, c, code_B850] #DONE - [0xF614B0, c, eggshatter] #DONE - [0xF61680, c, code_BD20] #DONE - - [0xF61A40, c, code_C0E0] #DONE + - [0xF61A40, c, ba/falldamage] #DONE - [0xF61D50, c, code_C3F0] #DONE - [0xF61E10, c, code_C4B0] - - [0xF63160, c, code_D800] #DONE + - [0xF63160, c, ba/carry] #DONE - [0xF63310, c, code_D9B0] #DONE - [0xF638D0, c, code_DF70] #DONE - [0xF63D70, c, code_E410] #DONE @@ -904,7 +904,7 @@ segments: - [0x1032150, .data, ba/model] - [0x1032150, .data, code_B850] - [0x1032170, .data, eggshatter] - - [0x10321C0, .data, code_C0E0] + - [0x10321C0, .data, ba/falldamage] - [0x10321F0, .data, code_E910] - [0x1032E10, .data, ba/physics] - [0x1032E20, .data, code_117D0] @@ -1128,10 +1128,10 @@ segments: - [0x1042FC0, .rodata, code_9900] - [0x1042FD0, .rodata, code_9BD0] - [0x1043010, .rodata, ba/model] - - [0x10430C0, .rodata, code_B650] + - [0x10430C0, .rodata, ba/drone] - [0x10430D0, .rodata, code_B850] - [0x10430F0, .rodata, code_BD20] - - [0x1043110, .rodata, code_C0E0] + - [0x1043110, .rodata, ba/falldamage] - [0x1043130, .rodata, code_C4B0] - [0x1043170, .rodata, code_D9B0] - [0x1043180, .rodata, code_E680] @@ -1385,13 +1385,13 @@ segments: - [0x1048560, .bss, code_A600] - [0x1048560, .bss, statetimer] - [0x1048560, .bss, ba/model] - - [0x1048560, .bss, code_B650] + - [0x1048560, .bss, ba/drone] - [0x1048560, .bss, eggshatter] - [0x1048560, .bss, code_BD20] - - [0x1048560, .bss, code_C0E0] + - [0x1048560, .bss, ba/falldamage] - [0x1048560, .bss, code_C3F0] - [0x1048560, .bss, code_C4B0] - - [0x1048560, .bss, code_D800] + - [0x1048560, .bss, ba/carry] - [0x1048560, .bss, code_D9B0] - [0x1048560, .bss, code_DF70] - [0x1048560, .bss, code_E410] diff --git a/include/bs_funcs.h b/include/bs_funcs.h index 0c71258f..0e4c04d6 100644 --- a/include/bs_funcs.h +++ b/include/bs_funcs.h @@ -696,9 +696,9 @@ void func_802AADBC(void); void func_802AAE08(void); void func_802AAE4C(void); -void func_802AEDE8(void); -void func_802AEE48(void); -void func_802AEE9C(void); +void bsDroneGoTo_init(void); +void bsDroneGoTo_update(void); +void bsDroneGoTo_end(void); void bsDroneLook_init(void); void bsDroneLook_update(void); void bsDroneLook_end(void); diff --git a/include/core2/ba/carry.h b/include/core2/ba/carry.h new file mode 100644 index 00000000..5c74db27 --- /dev/null +++ b/include/core2/ba/carry.h @@ -0,0 +1,17 @@ +#ifndef __BA_CARRY_H__ +#define __BA_CARRY_H__ + +#include +#include "prop.h" + +void bacarry_init(void); +void bacarry_end(void); +void bacarry_update(void); + +void bacarry_reset_marker(void); +ActorMarker *bacarry_get_marker(void); +void bacarry_set_marker(ActorMarker *arg0); +void bacarry_set_offsets(f32 height, f32 rotation); + + +#endif diff --git a/include/core2/ba/drone.h b/include/core2/ba/drone.h new file mode 100644 index 00000000..5f0e7442 --- /dev/null +++ b/include/core2/ba/drone.h @@ -0,0 +1,24 @@ +#ifndef __BA_DRONE_H__ +#define __BA_DRONE_H__ + +#include +#include "prop.h" + +typedef enum ba_drone_type_e{ + BA_DRONE_NONE, + BA_DRONE_GOTO, + BA_DRONE_LOOK, + BA_DRONE_UNKNOWN_3, + BA_DRONE_TRANSFORM, + BA_DRONE_ENTER, + BA_DRONE_VANISH +} BaDroneType; + +void badrone_set_type(BaDroneType type); +BaDroneType badrone_get_type(void); +void badrone_get_position_and_duration(f32 position[3], f32 *duration); + +enum bs_e badrone_enter(void); +enum bs_e badrone_goto(f32 position[3], f32 duration, void (*arg2)(ActorMarker *), ActorMarker *arg3); + +#endif diff --git a/include/functions.h b/include/functions.h index c51b59da..13ab48d5 100644 --- a/include/functions.h +++ b/include/functions.h @@ -309,7 +309,7 @@ void func_80292974(f32, f32, f32); void func_80292900(f32, f32); void func_80292E80(s32, f32); -void func_80293350(void); +void bafalldamage_start(void); void func_80293D48(f32, f32); f32 func_80294438(void); f32 func_80294500(void); diff --git a/src/FP/ch/bearcub.c b/src/FP/ch/bearcub.c index 0ce6bb61..82298626 100644 --- a/src/FP/ch/bearcub.c +++ b/src/FP/ch/bearcub.c @@ -51,7 +51,7 @@ void func_8038A1F0(Actor **this_ptr, enum marker_e carried_obj_marker_id, enum a func_8028F31C((*this_ptr)->position, 600.0f, actor_id, this_ptr); if(!func_80329530(*this_ptr, 400)) return; - if(carriedObj_getMarkerId() != carried_obj_marker_id) return; + if(bacarry_get_markerId() != carried_obj_marker_id) return; if(!func_8028FC34()) return; func_8028FA34(arg3, *this_ptr); diff --git a/src/MM/ch/lmonkey.c b/src/MM/ch/lmonkey.c index 23db90e1..50313885 100644 --- a/src/MM/ch/lmonkey.c +++ b/src/MM/ch/lmonkey.c @@ -33,7 +33,7 @@ ActorInfo chlmonkeyInfo = { MARKER_A_CHIMPY, ACTOR_F_CHIMPY, ASSET_35D_MODEL_CHI void func_80388300(Actor **arg0){ func_8028F31C((*arg0)->position, 800.0f, ACTOR_29_ORANGE_COLLECTIBLE, arg0); if( func_80329530(*arg0, 345) - && carriedObj_getMarkerId() == MARKER_36_ORANGE_COLLECTIBLE + && bacarry_get_markerId() == MARKER_36_ORANGE_COLLECTIBLE && func_8028FC34() ){ func_8028FA34(0xc6, *arg0); diff --git a/src/TTC/ch/blubber.c b/src/TTC/ch/blubber.c index e6cfa225..f004dfa5 100644 --- a/src/TTC/ch/blubber.c +++ b/src/TTC/ch/blubber.c @@ -113,7 +113,7 @@ void func_80387774(Actor **this_ptr){ func_8028F364(local->throw_target_position, local->throw_target_radius, 100.0f, ACTOR_2A_GOLD_BULLION, this_ptr); if( func_80329530(*this_ptr, 200) - && carriedObj_getMarkerId() == MARKER_37_GOLD_BULLION + && bacarry_get_markerId() == MARKER_37_GOLD_BULLION && func_8028FC34() ){ func_8028FA34(!mapSpecificFlags_get(0)? 0x149 : 0x14a, *this_ptr); diff --git a/src/core2/ba/carry.c b/src/core2/ba/carry.c new file mode 100644 index 00000000..3f71a39a --- /dev/null +++ b/src/core2/ba/carry.c @@ -0,0 +1,77 @@ +#include "functions.h" + +#include "core2/ba/carry.h" + + +void bacarry_set_offsets(f32 arg0, f32 arg1); + +/* .bss */ +struct { + f32 height; + f32 rotation; +} bacarry_offsets; +ActorMarker* baCarry_marker; +u8 bacarry_active; + +/* .code */ +void bacarry_init(void){ + baCarry_marker = NULL; + bacarry_active = 0; + bacarry_set_offsets(0.0f, 0.0f); +} + +void bacarry_end(void){} + +void __bacarry_set_position_and_rotation(ActorMarker *marker, f32 arg1[3], f32 arg2[3]){ + Actor * actor = marker_getActor(marker); + if(actor->unk138_22){ + actor->position_x = arg1[0]; + actor->position_y = arg1[1]; + actor->position_z = arg1[2]; + + actor->yaw = arg2[1]; + } +} + +void __bacarry_update(void){ + f32 banjoPos[3]; + f32 banjoRot[3]; + + + player_getRotation(banjoRot); + baModel_getPosition(banjoPos); + banjoRot[1] = mlNormalizeAngle(banjoRot[1] + bacarry_offsets.rotation); + banjoPos[1] += bacarry_offsets.height; + __bacarry_set_position_and_rotation(baCarry_marker, banjoPos, banjoRot); +} + +void bacarry_update(void){ + if(baCarry_marker != NULL){ + if(bacarry_active == 0){ + baCarry_marker = NULL; + } + else{ + __bacarry_update(); + bacarry_active = 0; + } + } +} + +void bacarry_reset_marker(void){ + baCarry_marker = NULL; +} + +ActorMarker *bacarry_get_marker(void){ + return baCarry_marker; +} + +void bacarry_set_marker(ActorMarker *arg0){ + baCarry_marker = arg0; + __bacarry_update(); + bacarry_active = 1; +} + +void bacarry_set_offsets(f32 height, f32 rotation){ + bacarry_offsets.height = height; + bacarry_offsets.rotation = rotation; +} diff --git a/src/core2/ba/drone.c b/src/core2/ba/drone.c new file mode 100644 index 00000000..a5a0177a --- /dev/null +++ b/src/core2/ba/drone.c @@ -0,0 +1,76 @@ +#include +#include "functions.h" + +#include "core2/ba/drone.h" + +/* .bss */ +struct { + u8 type; + // u8 pad1[3]; + f32 duration; + f32 position[3]; + void (*unk14)(ActorMarker *); + ActorMarker *unk18; +}badrone; + +/* .code */ +void badrone_set_type(BaDroneType type){ + badrone.type = type; +} + +BaDroneType badrone_get_type(void){ + return badrone.type; +} + +void badrone_get_position_and_duration(f32 position[3], f32 *duration){ + ml_vec3f_copy(position, badrone.position); + *duration = badrone.duration; +} + +enum bs_e badrone_enter(void){ + badrone_set_type(BA_DRONE_ENTER); + return func_8029BD90(); +} + +enum bs_e badrone_goto(f32 position[3], f32 duration, void (*arg2)(ActorMarker *), ActorMarker *arg3){ + ml_vec3f_copy(badrone.position, position); + badrone.duration = duration; + badrone.unk14 = arg2; + badrone.unk18 = arg3; + badrone_set_type(BA_DRONE_GOTO); + return func_8029BD90(); +} + +enum bs_e badrone_look(void){ + badrone_set_type(BA_DRONE_LOOK); + return func_8029BD90(); +} + +enum bs_e badrone_802926E8(void){ + badrone_set_type(BA_DRONE_UNKNOWN_3); + return func_8029BD90(); +} + +enum bs_e badrone_vanish(void){ + badrone_set_type(BA_DRONE_VANISH); + return func_8029BD90(); +} + +enum bs_e badrone_transform(void){ + miscflag_clear(0x19); + badrone_set_type(BA_DRONE_TRANSFORM); + return func_8029BD90(); +} + +void badrone_goto_end(void){ + if(badrone.unk14){ + badrone.unk14(badrone.unk18); + } +} + +void badrone_init(void){ + badrone.type = 0; + badrone.unk14 = NULL; + badrone.duration = 0.1f; + ml_vec3f_clear(badrone.position); +} diff --git a/src/core2/ba/falldamage.c b/src/core2/ba/falldamage.c new file mode 100644 index 00000000..2c1c4307 --- /dev/null +++ b/src/core2/ba/falldamage.c @@ -0,0 +1,139 @@ +#include +#include "functions.h" +#include "variables.h" + +typedef struct { + s32 damage; + s32 state; +} struct_C0E0; + +typedef struct{ + s16 height; + u8 damage; + u8 state; +} struct_C0E0_1; + +typedef struct{ + u8 pad0[0xC]; + struct_C0E0_1 unkC[]; +} struct_C0E0_2; + +void bafalldamage_start(void); + +/* .data */ +struct_C0E0_1 bafalldamage_lookup_table[]={ + {1000, 0, 0}, + {1500, 0, 0}, + {2000, 0, 0}, + {7000, 8, 2}, + {6000, 7, 1}, + {5000, 6, 1}, + {4000, 5, 1}, + {3000, 4, 1}, + {2000, 3, 1}, + {1000, 2, 1}, + {0, 1, 1}, + {-1, 0, 0} +}; + +/* .bss */ +f32 bafalldamage_start_position[3]; +u8 bafalldamage_state; +struct_C0E0 D_8037C1C0; + +/* .code */ +s32 __bafalldamage_lookup(struct_C0E0 *arg0, s32 height, struct_C0E0_1 *arg2){ + struct_C0E0_1 *iPtr; + for(iPtr = &arg2[3]; iPtr->height >= 0; iPtr++){ + if(iPtr->height + 1000 < height){ + arg0->damage = iPtr->damage; + return iPtr->state; + } + } + return 0; +} + +s32 __bafalldamage_get_damage(struct_C0E0 *arg0, s32 height){ + arg0->damage = 0; + if(height < 0) + return 0; + else{ + switch(bsStoredState_getTransformation()){ + case TRANSFORM_2_TERMITE: //L80293110 + return __bafalldamage_lookup(arg0, height, bafalldamage_lookup_table); + case TRANSFORM_3_PUMPKIN: //L80293124 + return __bafalldamage_lookup(arg0, height, bafalldamage_lookup_table); + case TRANSFORM_5_CROC: //L80293138 + return __bafalldamage_lookup(arg0, height, bafalldamage_lookup_table); + case TRANSFORM_4_WALRUS: //L8029314C + return __bafalldamage_lookup(arg0, height, bafalldamage_lookup_table); + case TRANSFORM_6_BEE: //L80293160 + return __bafalldamage_lookup(arg0, height, bafalldamage_lookup_table); + default: + return __bafalldamage_lookup(arg0, height, bafalldamage_lookup_table); + break; + } + } +} + +void __bafalldamage_update(void){ + f32 player_position[3]; + s32 height; + + player_getPosition(player_position); + height = bafalldamage_start_position[1] - player_position[1]; + D_8037C1C0.state = __bafalldamage_get_damage(&D_8037C1C0, height); +} + +s32 bafalldamage_get_damage(s32 *damage){ + *damage = D_8037C1C0.damage; + return D_8037C1C0.state; +} + +f32 bafalldamage_get_distance_fallen(void){ + f32 player_position[3]; + s32 temp_v0; + + player_getPosition(player_position); + temp_v0 = bafalldamage_start_position[1] - player_position[1]; + return temp_v0; +} + +s32 bafalldamage_get_state(void){ + return bafalldamage_state; +} + +void bafalldamage_set_state(s32 arg0){ + bafalldamage_state = arg0; + if(bafalldamage_state == 2 || bafalldamage_state == 3) + bafalldamage_start(); +} + +void bafalldamage_set_start_position(f32 arg0[3]){ + ml_vec3f_copy(bafalldamage_start_position, arg0); +} + +void bafalldamage_init(void){ + _player_getPosition(bafalldamage_start_position); + bafalldamage_state = 0; + bafalldamage_set_state(1); + D_8037C1C0.damage = 0; + D_8037C1C0.state = 0; +} + +void bafalldamage_update(void){ + s32 player_position; + player_position = func_8028ECAC(); + if(func_8028B2E8() || (func_8028EE84() != BSWATERGROUP_0_NONE) || player_position == BSGROUP_A_FLYING){ + bafalldamage_start(); + bafalldamage_set_state(1); + } + __bafalldamage_update(); +} + +void bafalldamage_start(void){ + f32 player_position[3]; + + _player_getPosition(player_position); + bafalldamage_set_start_position(player_position); +} diff --git a/src/core2/bs/ant.c b/src/core2/bs/ant.c index 697f9557..b4b4f01d 100644 --- a/src/core2/bs/ant.c +++ b/src/core2/bs/ant.c @@ -23,7 +23,7 @@ s16 D_8036497C[3] = { /* .bss */ f32 D_8037D290; -u8 D_8037D294; +u8 bsant_substate; s32 D_8037D298; /* .code */ @@ -97,7 +97,7 @@ void bsant_idle_update(void){ new_state = BS_38_ANT_FALL; if(func_80294F78()) - new_state = func_802926C0(); + new_state = badrone_look(); if(func_8029B300() > 0) new_state = BS_ANT_WALK; @@ -171,7 +171,7 @@ void bsant_jump_init(void){ baphysics_set_vertical_velocity(D_80364970); baphysics_set_gravity(D_80364974); func_8029E3E0(); - D_8037D294 = 0; + bsant_substate = 0; } void bsant_jump_update(void){ @@ -186,26 +186,26 @@ void bsant_jump_update(void){ if(button_released(BUTTON_A) && 0.0f < sp1C[1]) baphysics_reset_gravity(); - switch(D_8037D294){ + switch(bsant_substate){ case 0://L8029EA88 if(animctrl_isStopped(aCtrl)){ animctrl_setDuration(aCtrl, 5.0f); baanim_setEnd(0.5026f); - D_8037D294 = 1; + bsant_substate = 1; } break; case 1://L8029EABC if(func_8028B254(0x82)){ animctrl_setDuration(aCtrl, 1.0f); baanim_setEnd(1.0f); - D_8037D294 = 2; + bsant_substate = 2; } break; case 2://L8029EAF4 func_80299628(0); if(func_8028B2E8()){ func_8029C5E8(); - D_8037D294 = 3; + bsant_substate = 3; } break; case 3://L8029EB24 @@ -241,7 +241,7 @@ void bsant_fall_init(void){ animctrl_setPlaybackType(aCtrl, ANIMCTRL_STOPPED); animctrl_start(aCtrl, "bsant.c", 0x208); func_8029C7F4(1, YAW_STATE_1_DEFAULT, 3, BA_PHYSICS_AIRBORN); - D_8037D294 = 0; + bsant_substate = 0; } void bsant_fall_update(void){ @@ -254,12 +254,12 @@ void bsant_fall_update(void){ func_8029E48C(); baphysics_get_velocity(sp1C); - switch(D_8037D294){ + switch(bsant_substate){ case 0: if(func_8028B254(0x5A)){ animctrl_setDuration(aCtrl, 2.0f); baanim_setEnd(1.0f); - D_8037D294 = 1; + bsant_substate = 1; } break; case 1: @@ -267,7 +267,7 @@ void bsant_fall_update(void){ } if(func_8028B2E8()){ if(miscflag_isTrue(0x19)) - sp2C = func_80292738(); + sp2C = badrone_transform(); else sp2C = BS_35_ANT_IDLE; } @@ -309,7 +309,7 @@ static void __bsant_recoil_init(int take_damage){ baphysics_set_gravity(-1200.0f); baMarker_collisionOff(); func_80292E48(); - D_8037D294 = 0; + bsant_substate = 0; } static void __bsant_recoil_update(void){ @@ -318,11 +318,11 @@ static void __bsant_recoil_update(void){ if(baanim_isAt(0.5f)) func_80292EA4(); - switch(D_8037D294){ + switch(bsant_substate){ case 0: if(func_8028B254(0x5a)){ baanim_setEnd(1.0f); - D_8037D294 = 1; + bsant_substate = 1; } break; case 1: @@ -398,7 +398,7 @@ void bsant_die_init(void){ func_802914CC(0xd); ncDynamicCamD_func_802BF2C0(30.0f); func_8029C984(); - D_8037D294 = 0; + bsant_substate = 0; baMarker_collisionOff(); func_80292E48(); func_8029E3C0(0, 2.9f); @@ -409,20 +409,20 @@ void bsant_die_update(void){ baphysics_set_target_horizontal_velocity(D_8037D290); func_80299628(0); - switch(D_8037D294){ + switch(bsant_substate){ case 0://L8029F270 if(func_8028B2E8()){ baanim_setEnd(1.0f); FUNC_8030E624(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 18000); FUNC_8030E624(SFX_39_BANJO_AYE_2, 1.8f, 18000); D_8037D290 = 0.0f; - D_8037D294 = 1; + bsant_substate = 1; } break; case 1://L8029F2C0 if(animctrl_isAt(aCtrl, 0.72f)){ D_8037D290 = 0.0f; - D_8037D294 = 2; + bsant_substate = 2; } break; case 2://L8029F2F0 diff --git a/src/core2/bs/bFlap.c b/src/core2/bs/bFlap.c index 62fed1b6..2146616c 100644 --- a/src/core2/bs/bFlap.c +++ b/src/core2/bs/bFlap.c @@ -110,7 +110,7 @@ void bsbflap_update(void){ func_802B6FA8(); switch(D_8037D300){ case 0: - func_80293350(); + bafalldamage_start(); func_802A2900(); func_802A298C(); if(animctrl_isAt(sp18, 0.9f)){ @@ -127,7 +127,7 @@ void bsbflap_update(void){ } break; case 1: - func_80293350(); + bafalldamage_start(); func_802A2900(); func_802A2810(); func_802A28CC(); @@ -137,7 +137,7 @@ void bsbflap_update(void){ } break; case 2: - func_80293350(); + bafalldamage_start(); func_802A2900(); func_802A2810(); func_802A28CC(); @@ -152,7 +152,7 @@ void bsbflap_update(void){ } break; case 3: - func_80293350(); + bafalldamage_start(); func_802A2900(); func_802A2810(); func_802A28CC(); @@ -161,7 +161,7 @@ void bsbflap_update(void){ baphysics_reset_gravity(); baphysics_reset_terminal_velocity(); animctrl_setDuration(sp18, 1.0f); - func_80293240(2); + bafalldamage_set_state(2); D_8037D300 = 4; } else{ diff --git a/src/core2/bs/bLongLeg.c b/src/core2/bs/bLongLeg.c index c2c0bd94..1019024c 100644 --- a/src/core2/bs/bLongLeg.c +++ b/src/core2/bs/bLongLeg.c @@ -168,7 +168,7 @@ void bsblongleg_stand_update(void){ func_802A531C(); func_80299594(1, 0.5f); if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(button_pressed(BUTTON_B)) stateTimer_clear(STATE_TIMER_2_LONGLEG); diff --git a/src/core2/bs/bPeck.c b/src/core2/bs/bPeck.c index 18e27bf3..ffa13b5b 100644 --- a/src/core2/bs/bPeck.c +++ b/src/core2/bs/bPeck.c @@ -36,8 +36,8 @@ void bsbpeck_init(void){ case BS_57_BOMB_END: break; } - if(func_80293234() == 1) - func_80293240(2); + if(bafalldamage_get_state() == 1) + bafalldamage_set_state(2); baanim_playForDuration_onceSmooth(ASSET_1A_ANIM_BSBPECK, 0.2f); func_8029C7F4(1,YAW_STATE_3_BOUNDED, 1, BA_PHYSICS_AIRBORN); diff --git a/src/core2/bs/bSwim.c b/src/core2/bs/bSwim.c index 82d47f8a..42235ea2 100644 --- a/src/core2/bs/bSwim.c +++ b/src/core2/bs/bSwim.c @@ -128,7 +128,7 @@ void func_802A7674() { func_802A7304(); if (func_80294F78()) { - state_id = func_802926C0(); + state_id = badrone_look(); } if (button_held(BUTTON_A)) { state_id = BS_39_DIVE_A; diff --git a/src/core2/bs/bTrot.c b/src/core2/bs/bTrot.c index 3a1f7bc8..e1a95d78 100644 --- a/src/core2/bs/bTrot.c +++ b/src/core2/bs/bTrot.c @@ -191,7 +191,7 @@ enum bs_e func_802A8D84(enum bs_e arg0){ arg0 = BS_16_BTROT_WALK; if(func_80294F78()) - arg0 = func_802926C0(); + arg0 = badrone_look(); if(func_8028B094()) arg0 = BS_71_BTROT_FALL; diff --git a/src/core2/bs/bbuster.c b/src/core2/bs/bbuster.c index 0aece6cd..b30876b5 100644 --- a/src/core2/bs/bbuster.c +++ b/src/core2/bs/bbuster.c @@ -148,7 +148,7 @@ void bsbbuster_update(void){ D_8037D2BA = 3; _player_getPosition(player_position); func_8032728C(player_position, 150.0f, 2, func_8029FB20); - if(func_802931DC(&sp3C)){ + if(bafalldamage_get_damage(&sp3C)){ sp44 = BS_SPLAT; } } diff --git a/src/core2/bs/beeMain.c b/src/core2/bs/beeMain.c index 016e2567..c0ab228b 100644 --- a/src/core2/bs/beeMain.c +++ b/src/core2/bs/beeMain.c @@ -74,7 +74,7 @@ void func_802A10D4(void){ s0 = 0x88; if(func_80294F78()) - s0 = func_802926C0(); + s0 = badrone_look(); if(func_8029B300() > 0) s0 = BS_BEE_WALK; @@ -276,7 +276,7 @@ void func_802A170C(void){ } if(func_8028B2E8()){ if(miscflag_isTrue(0x19)){ - sp2c = func_80292738(); + sp2c = badrone_transform(); }else{ if(func_8029B300() > 0) sp2c = BS_BEE_WALK; diff --git a/src/core2/bs/carry.c b/src/core2/bs/carry.c index 726ef183..1afceec4 100644 --- a/src/core2/bs/carry.c +++ b/src/core2/bs/carry.c @@ -47,7 +47,7 @@ void bscarry_idle_update(void){ if(func_8029B300() > 0) sp1C = BS_3B_CARRY_WALK; - if(carriedobj_getMarker() == NULL) + if(bacarry_get_marker() == NULL) sp1C = BS_1_IDLE; bs_setState(sp1C); @@ -76,7 +76,7 @@ void bscarry_walk_update(void){ if(func_8029B300() == 0 && baphysics_is_slower_than(1.0f)) sp1C = BS_3A_CARRY_IDLE; - if(carriedobj_getMarker() == NULL) + if(bacarry_get_marker() == NULL) sp1C = BS_1_IDLE; bs_setState(sp1C); @@ -94,7 +94,7 @@ int bscarry_inSet(enum bs_e state){ void bscarry_interrupt(void){ switch(bs_getInterruptType()){ case 7: - func_802948F8(baMarker_8028D688()); + bacarry_set_marker(baMarker_8028D688()); break; case 8: func_8029A86C(2); @@ -113,7 +113,7 @@ void bscarry_interrupt(void){ } break; default://L802AB260 - func_802948E0(); + bacarry_reset_marker(); func_80296608(); break; } diff --git a/src/core2/bs/climb.c b/src/core2/bs/climb.c index 322fc9a1..a75cc573 100644 --- a/src/core2/bs/climb.c +++ b/src/core2/bs/climb.c @@ -91,7 +91,7 @@ void bsclimb_idle_init(void){ void bsclimb_idle_update(void){ s32 next_state = 0; AnimCtrl *anim_ctrl = baanim_getAnimCtrlPtr(); - func_80293350(); + bafalldamage_start(); switch(D_8037D3D0){ case 0: D_8037D3D4 -= time_getDelta(); @@ -139,7 +139,7 @@ void bsclimb_move_update(void){ f32 plyr_pos[3]; s32 map; - func_80293350(); + bafalldamage_start(); func_802AB5C0(); map = map_get(); diff --git a/src/core2/bs/croc.c b/src/core2/bs/croc.c index 1999a6ee..68905985 100644 --- a/src/core2/bs/croc.c +++ b/src/core2/bs/croc.c @@ -122,7 +122,7 @@ void bscroc_idle_update(void){ next_state = BS_61_CROC_FALL; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(func_8029B300() > 0) next_state = BS_CROC_WALK; @@ -313,7 +313,7 @@ void bscroc_fall_update(void){ if(func_8028B2E8()){ if(func_8029B300() > 0 || (D_8037D3EC == 2 && animctrl_isStopped(aCtrl))){ if(miscflag_isTrue(0x19)){ - next_state = func_80292738(); + next_state = badrone_transform(); }else{ next_state = BS_5E_CROC_IDLE; } diff --git a/src/core2/bs/drone.c b/src/core2/bs/drone.c index 88c05e8c..6a683962 100644 --- a/src/core2/bs/drone.c +++ b/src/core2/bs/drone.c @@ -3,17 +3,20 @@ #include "variables.h" #include "bsint.h" +#include "core2/ba/drone.h" + typedef struct{ - u8 unk0; + u8 type; bsState behavior; } struct_drone; struct_drone D_80364B30[] = { - {01, {func_802AEDE8, func_802AEE48, func_802AEE9C, NULL}}, - {02, {bsDroneLook_init, bsDroneLook_update, bsDroneLook_end, func_80296608}}, - {04, {bsdronexform_init, bsdronexform_update, bsdronexform_end, bsdronexform_interrupt}}, - {05, {bsDroneEnter_init, bsDroneEnter_update, bsDroneEnter_end, NULL}}, - {06, {bsDroneVanish_init, bsDroneVanish_update, bsDroneVanish_end, NULL}}, + {BA_DRONE_GOTO, {bsDroneGoTo_init, bsDroneGoTo_update, bsDroneGoTo_end, NULL}}, + {BA_DRONE_LOOK, {bsDroneLook_init, bsDroneLook_update, bsDroneLook_end, func_80296608}}, + // {BA_DRONE_UNKNOWN_3, {NULL, NULL, NULL, NULL}}, //unused drone type? + {BA_DRONE_TRANSFORM, {bsdronexform_init, bsdronexform_update, bsdronexform_end, bsdronexform_interrupt}}, + {BA_DRONE_ENTER, {bsDroneEnter_init, bsDroneEnter_update, bsDroneEnter_end, NULL}}, + {BA_DRONE_VANISH, {bsDroneVanish_init, bsDroneVanish_update, bsDroneVanish_end, NULL}}, {0} }; @@ -21,9 +24,9 @@ struct_drone D_80364B30[] = { static int __bsdrone_getIndex(void){ int i; - int val = func_802925EC(); - for(i = 0; D_80364B30[i].unk0 != 0; i++){ - if(val == D_80364B30[i].unk0) + int val = badrone_get_type(); + for(i = 0; D_80364B30[i].type != 0; i++){ + if(val == D_80364B30[i].type) return i; } return 0; diff --git a/src/core2/bs/dronegoto.c b/src/core2/bs/dronegoto.c index 7cbf5cac..faca4847 100644 --- a/src/core2/bs/dronegoto.c +++ b/src/core2/bs/dronegoto.c @@ -6,7 +6,7 @@ /* .bss */ -u8 D_8037D440; +u8 bsdronetogo_substate; u8 D_8037D441; void func_802AEC08(void); @@ -14,8 +14,8 @@ void func_802AEC70(void); void func_802AEC78(void); void func_802AEDC8(void); -void func_802AEB60(s32 arg0){ - switch(D_8037D440){ +static void __bsDroneGoTo_set_substate(s32 arg0){ + switch(bsdronetogo_substate){ case 1: func_802AEC70(); break; @@ -23,7 +23,7 @@ void func_802AEB60(s32 arg0){ func_802AEDC8(); break; } - switch(D_8037D440 = arg0){ + switch(bsdronetogo_substate = arg0){ case 1: func_802AEC08(); break; @@ -41,20 +41,20 @@ void func_802AEC08(void){ void func_802AEC28(void){ baphysics_reset_horizontal_velocity(); if(func_8028B2E8() || player_inWater()) - func_802AEB60(2); + __bsDroneGoTo_set_substate(2); } void func_802AEC70(void){} void func_802AEC78(void){ - f32 sp2C; - f32 sp20[3]; - s32 sp1C; - func_8029BC60(&sp1C, &sp2C); - baanim_playForDuration_loopSmooth(sp1C, sp2C); - func_802925F8(&sp20, &sp2C); - baphysics_set_goto_position(&sp20); - baphysics_set_goto_duration(sp2C); + f32 duration_s; + f32 target_position[3]; + s32 anim_id; + func_8029BC60(&anim_id, &duration_s); + baanim_playForDuration_loopSmooth(anim_id, duration_s); + badrone_get_position_and_duration(target_position, &duration_s); + baphysics_set_goto_position(target_position); + baphysics_set_goto_duration(duration_s); func_8029C7F4(1,1,3,BA_PHYSICS_GOTO); func_8029436C(1); D_8037D441 = 0; @@ -80,7 +80,7 @@ void func_802AECE4(void){ if(baphysics_goto_done() && D_8037D441 == 0){ D_8037D441++; - func_80292768(); + badrone_goto_end(); } } @@ -88,19 +88,19 @@ void func_802AEDC8(void){ func_8029436C(0); } -void func_802AEDE8(void){ - D_8037D440 = 0; +void bsDroneGoTo_init(void){ + bsdronetogo_substate = 0; func_8031F9F4(1); if( !func_8028B2E8() && func_8029BDE8()){ - func_802AEB60(1); + __bsDroneGoTo_set_substate(1); }else{ - func_802AEB60(2); + __bsDroneGoTo_set_substate(2); } } -void func_802AEE48(void){ - switch(D_8037D440){ +void bsDroneGoTo_update(void){ + switch(bsdronetogo_substate){ case 1: func_802AEC28(); break; @@ -110,7 +110,7 @@ void func_802AEE48(void){ } } -void func_802AEE9C(void){ - func_802AEB60(0); +void bsDroneGoTo_end(void){ + __bsDroneGoTo_set_substate(0); func_8031F9F4(0); } diff --git a/src/core2/bs/jump.c b/src/core2/bs/jump.c index 9906d298..b288a322 100644 --- a/src/core2/bs/jump.c +++ b/src/core2/bs/jump.c @@ -389,7 +389,7 @@ void bsjump_tumble_init(void){ baanim_playForDuration_loop(ASSET_68_ANIM_BSJUMP_TUMBLE, 0.35f); func_8029C7F4(1,1,3, BA_PHYSICS_AIRBORN); baModel_setYDisplacement(60.0f); - if(func_80293234() == 1){ + if(bafalldamage_get_state() == 1){ func_8029E3C0(0, 0.5f); func_8029E3C0(1, 0.41f); func_80299CF4(SFX_52_BANJO_YAH_OH, 1.0f, 22000); @@ -436,7 +436,7 @@ void bsjump_tumble_end(void){ || next_state == BS_BFLAP || next_state == BS_11_BPECK ){ - func_80293240(3); + bafalldamage_set_state(3); } func_8029CB84(); baModel_setYDisplacement(0.0f); diff --git a/src/core2/bs/pumpkin.c b/src/core2/bs/pumpkin.c index e87df0ec..df5712d0 100644 --- a/src/core2/bs/pumpkin.c +++ b/src/core2/bs/pumpkin.c @@ -93,7 +93,7 @@ void bspumpkin_idle_update(void) { next_state = BS_4B_PUMPKIN_FALL; } if (func_80294F78()) { - next_state = func_802926C0(); + next_state = badrone_look(); } if (func_8029B300() > 0) { next_state = BS_49_PUMPKIN_WALK; @@ -291,7 +291,7 @@ void bspumpkin_fall_update(void) { } if (func_8028B2E8() && ((func_8029B300() > 0) || (D_8037D4E0 == 2 && animctrl_isStopped(anim_ctrl)))) { if (miscflag_isTrue(0x19)) { - next_state = func_80292738(); + next_state = badrone_transform(); } else { next_state = BS_48_PUMPKIN_IDLE; } diff --git a/src/core2/bs/splat.c b/src/core2/bs/splat.c index e63de900..f01eeb6c 100644 --- a/src/core2/bs/splat.c +++ b/src/core2/bs/splat.c @@ -24,7 +24,7 @@ void bssplat_init(void){ s32 sp1C; baanim_playForDuration_onceSmooth(ASSET_149_ANIM_BSSPLAT, 1.1f); func_8029C7F4(1,1,3, BA_PHYSICS_LOCKED_ROTATION); - func_802931DC(&sp1C); + bafalldamage_get_damage(&sp1C); func_803463D4(ITEM_14_HEALTH, -sp1C); if(func_8029CEB0() == 4){ FUNC_8030E624(SFX_116_DEAF_RUSTLING, 0.7f, 32000); diff --git a/src/core2/bs/stand.c b/src/core2/bs/stand.c index ae3c4fc3..0165ef3c 100644 --- a/src/core2/bs/stand.c +++ b/src/core2/bs/stand.c @@ -74,7 +74,7 @@ s32 func_802B488C(s32 arg0){ retVal = func_8029C780(); if(func_80294F78()) - retVal = func_802926C0(); + retVal = badrone_look(); if(player_isSliding()) retVal = BS_SLIDE; @@ -317,7 +317,7 @@ void func_802B5350(void){ if(bsStoredState_getTransformation() != TRANSFORM_1_BANJO) func_8029A86C(1); else{ - func_802948F8(baMarker_8028D688()); + bacarry_set_marker(baMarker_8028D688()); bs_setState(BS_3A_CARRY_IDLE); } } @@ -332,7 +332,7 @@ void func_802B5350(void){ func_8029A86C(2); bs_setState(BS_3C_TALK); }else{ - func_802948E0(); + bacarry_reset_marker(); func_80296608(); } } diff --git a/src/core2/bs/swim.c b/src/core2/bs/swim.c index b0f693d0..b78e61a7 100644 --- a/src/core2/bs/swim.c +++ b/src/core2/bs/swim.c @@ -171,7 +171,7 @@ void func_802B5950(void) { next_state = BS_1_IDLE; } if (func_80294F78()) { - next_state = func_802926C0(); + next_state = badrone_look(); } if (should_dive()) { next_state = BS_30_DIVE_ENTER; diff --git a/src/core2/bs/throw.c b/src/core2/bs/throw.c index c6e7f429..34e28950 100644 --- a/src/core2/bs/throw.c +++ b/src/core2/bs/throw.c @@ -5,7 +5,7 @@ #include "core2/ba/anim.h" #include "core2/ba/physics.h" -extern ActorMarker *carriedobj_getMarker(void); +extern ActorMarker *bacarry_get_marker(void); /* .bss */ u8 D_8037D580; @@ -35,10 +35,10 @@ void bsthrow_update(void){ f32 sp34[3]; f32 player_position[3]; f32 sp24; - ActorMarker *sp20 = carriedobj_getMarker(); + ActorMarker *sp20 = bacarry_get_marker(); if(D_8037D580 == 0 && sp20 != NULL) - func_802948F8(sp20); + bacarry_set_marker(sp20); _player_getPosition(player_position); get_throw_target_position(sp34); diff --git a/src/core2/bs/walk.c b/src/core2/bs/walk.c index 161b85ec..e60fb26c 100644 --- a/src/core2/bs/walk.c +++ b/src/core2/bs/walk.c @@ -163,7 +163,7 @@ void bswalk_creep_update(void){ next_state = BS_WALK_MUD; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(func_8028B094()) next_state = BS_2F_FALL; @@ -236,7 +236,7 @@ void bswalk_slow_upate(void){ next_state = BS_WALK_MUD; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(func_8028B094()) next_state = BS_2F_FALL; @@ -312,7 +312,7 @@ void bswalk_update(void){ } if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(func_8028B094()) next_state = BS_2F_FALL; @@ -387,7 +387,7 @@ void bswalk_fast_update(void){ next_state = BS_1_IDLE; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); break; case 1: @@ -396,7 +396,7 @@ void bswalk_fast_update(void){ next_state = BS_2_WALK_SLOW; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); break; case 3://L802B7A60 @@ -404,7 +404,7 @@ void bswalk_fast_update(void){ next_state = BS_WALK; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); break; }//L802B7AA4 if(func_8028B128()) @@ -461,7 +461,7 @@ void bswalk_mud_update(void){ next_state = BS_1_IDLE; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(func_8028B094()) next_state = BS_2F_FALL; diff --git a/src/core2/bs/walrus.c b/src/core2/bs/walrus.c index 593e1109..b63e5319 100644 --- a/src/core2/bs/walrus.c +++ b/src/core2/bs/walrus.c @@ -163,7 +163,7 @@ void bswalrus_idle_update(void){ next_state = BS_6A_WALRUS_FALL; if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(func_8029B300() > 0) next_state = BS_WALRUS_WALK; @@ -353,7 +353,7 @@ void bswalrus_fall_update(void){ || (D_8037D5C8 == 2 && animctrl_isStopped(aCtrl)) ){ if(miscflag_isTrue(0x19)) - next_state = func_80292738(); + next_state = badrone_transform(); else next_state = BS_67_WALRUS_IDLE; } @@ -579,7 +579,7 @@ void bswalrus_sled_update(void){ func_80299628(0); func_802B7F28(); if(func_80294F78()) - next_state = func_802926C0(); + next_state = badrone_look(); if(button_pressed(BUTTON_A)) next_state = BS_7E_WALRUS_SLED; diff --git a/src/core2/code_14420.c b/src/core2/code_14420.c index 1c38e6b5..d0de9d82 100644 --- a/src/core2/code_14420.c +++ b/src/core2/code_14420.c @@ -37,7 +37,7 @@ enum bs_14420_e{ BS14420_A_WALRUS_SLED, BS14420_B_BEE, BS14420_C_CLIMB, - BS14420_D_WONDERWING, + BS14420_D_WONDERWING }; /* .data */ @@ -505,6 +505,7 @@ enum bs_e func_8029BD90(void) { return D_80364650[func_8029BAF0()].state_id; } +//drone_look_exit_state enum bs_e func_8029BDBC(void) { return D_80364624[func_8029BAF0()]; } @@ -839,7 +840,7 @@ s32 func_8029C9C0(s32 arg0){ arg0 = BS_BBARGE; if(func_80294F78()) - arg0 = func_802926C0(); + arg0 = badrone_look(); if(player_isSliding()) arg0 = BS_SLIDE; @@ -849,7 +850,7 @@ s32 func_8029C9C0(s32 arg0){ s32 func_8029CA94(s32 arg0){ if(miscflag_isTrue(0x19)) - arg0 = func_80292738(); + arg0 = badrone_transform(); if(miscflag_isTrue(0x1A)) arg0 = (player_getTransformation() == TRANSFORM_6_BEE) ? 0x46 : BS_34_JIG_NOTEDOOR; diff --git a/src/core2/code_39D0.c b/src/core2/code_39D0.c index bd29d94a..bf12a816 100644 --- a/src/core2/code_39D0.c +++ b/src/core2/code_39D0.c @@ -238,7 +238,7 @@ bool func_8028B424(void){ if (func_8028B2E8()) { return FALSE; } - if (!func_802931DC(&sp1C)) { + if (!bafalldamage_get_damage(&sp1C)) { return FALSE; } return TRUE; diff --git a/src/core2/code_6B30.c b/src/core2/code_6B30.c index 0c0d2bff..1a4e242a 100644 --- a/src/core2/code_6B30.c +++ b/src/core2/code_6B30.c @@ -1,6 +1,7 @@ #include #include "functions.h" #include "variables.h" +#include "core2/ba/carry.h" #include "core2/ba/physics.h" extern Actor *func_8032813C(enum actor_e, f32[3], s32); @@ -94,7 +95,7 @@ bool func_8028DD60(enum actor_e actor_id, Actor **arg1){ Actor *actor; m1 = (*arg1)->marker; - m2 = carriedobj_getMarker(); + m2 = bacarry_get_marker(); if(m2){ actor = marker_getActor(m2); } @@ -117,7 +118,7 @@ void func_8028DE0C(enum actor_e actor_id){ baModel_getPosition(sp20); actor = func_8032813C(actor_id, sp20, (s32) yaw_get()); actor->unk138_22 = TRUE; - func_802948F8(actor->marker); + bacarry_set_marker(actor->marker); bs_setState(BS_3A_CARRY_IDLE); } @@ -125,13 +126,13 @@ void func_8028DE6C(enum actor_e actor_id){ ActorMarker *marker; Actor *actor; - marker = carriedobj_getMarker(); + marker = bacarry_get_marker(); if(marker){ actor = marker_getActor(marker); } if(marker && actor->modelCacheIndex == actor_id){ - func_802948F8(marker); + bacarry_set_marker(marker); } else{ __spawnQueue_add_1((GenFunction_1)func_8028DE0C, baMarker_getCarriedObjectActorId()); @@ -153,12 +154,12 @@ void func_8028DF48(enum actor_e actor_id){ ActorMarker *marker; Actor* actor; - marker = carriedobj_getMarker(); + marker = bacarry_get_marker(); if(marker) actor = marker_getActor(marker); if(marker && actor->modelCacheIndex == actor_id){ - func_802948E0(); + bacarry_reset_marker(); } item_dec(carriedobj_actorId2ItemId(actor_id)); } diff --git a/src/core2/code_7060.c b/src/core2/code_7060.c index 98a2388d..5da4b72a 100644 --- a/src/core2/code_7060.c +++ b/src/core2/code_7060.c @@ -5,14 +5,13 @@ #include "prop.h" #include "enums.h" +#include "core2/ba/carry.h" +#include "core2/ba/drone.h" #include "core2/ba/physics.h" - extern bool player_isInHorizontalRadius(f32[3], f32); extern bool player_isInVerticalRange(f32[3], f32); -extern enum bs_e func_80292658(f32 arg0[3], f32 arg1, void(*arg2)(ActorMarker *), ActorMarker *arg3); extern void miscflag_clear(s32); -extern void func_80294924(f32, f32); extern void func_80295A8C(void); extern void climbSet(f32[3], f32[3], f32, u32); extern void func_80296C90(f32); @@ -148,7 +147,7 @@ void func_8028E0F0(s32 arg0, s32 arg1[3]) { func_8028E060(arg0, &sp6C); yaw_setIdeal((f32) sp6C); yaw_applyIdeal(); - bs_setState(func_80292658(&sp7C, 1.0f, func_8028E0B0, NULL)); + bs_setState(badrone_goto(sp7C, 1.0f, func_8028E0B0, NULL)); return; } func_8028F85C(&sp7C); @@ -285,13 +284,13 @@ void func_8028E84C(f32 arg0[3]){ } ActorMarker *func_8028E86C(void){ - return carriedobj_getMarker(); + return bacarry_get_marker(); } -enum marker_e carriedObj_getMarkerId(void){ +enum marker_e bacarry_get_markerId(void){ ActorMarker *marker; - marker = carriedobj_getMarker(); + marker = bacarry_get_marker(); if(marker){ return marker->unk14_20; } @@ -302,7 +301,7 @@ enum actor_e carriedObj_getActorId(void){ ActorMarker *marker; Actor *actor; - marker = carriedobj_getMarker(); + marker = bacarry_get_marker(); if(marker != NULL){ actor = marker_getActor(marker); @@ -680,7 +679,7 @@ void ability_unlock(enum ability_e uid){ } void func_8028F3D8(f32 arg0[3], f32 arg1, void(*arg2)(ActorMarker *), ActorMarker *arg3){ - bs_setState(func_80292658(arg0, arg1, arg2, arg3)); + bs_setState(badrone_goto(arg0, arg1, arg2, arg3)); } void func_8028F408(f32 arg0[3]){ @@ -801,7 +800,7 @@ void func_8028F7C8(bool arg0){ } void func_8028F7D4(f32 arg0, f32 arg1){ - func_80294924(arg0, arg1); + bacarry_set_offsets(arg0, arg1); } void func_8028F7F4(s32 arg0, s32 arg1){} @@ -904,7 +903,7 @@ void func_8028FAEC(f32 rotation[3]){ } void func_8028FB28(void){ - func_802948E0(); + bacarry_reset_marker(); } void func_8028FB48(u32 mask){ diff --git a/src/core2/code_B650.c b/src/core2/code_B650.c deleted file mode 100644 index 3821af4e..00000000 --- a/src/core2/code_B650.c +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include "functions.h" -#include "variables.h" - -/* .bss */ -struct { - u8 unk0; - u8 pad1[3]; - f32 unk4; - f32 unk8[3]; - void (*unk14)(ActorMarker *); - ActorMarker *unk18; -}D_8037C160; - -/* .code */ -void func_802925E0(s32 arg0){ - D_8037C160.unk0 = arg0; -} - -s32 func_802925EC(void){ - return D_8037C160.unk0; -} - -void func_802925F8(f32 arg0[3], f32 *arg1){ - ml_vec3f_copy(arg0, D_8037C160.unk8); - *arg1 = D_8037C160.unk4; -} - -enum bs_e func_80292630(void){ - func_802925E0(5); - return func_8029BD90(); -} - -enum bs_e func_80292658(f32 arg0[3], f32 arg1, void (*arg2)(ActorMarker *), ActorMarker *arg3){ - ml_vec3f_copy(D_8037C160.unk8, arg0); - D_8037C160.unk4 = arg1; - D_8037C160.unk14 = arg2; - D_8037C160.unk18 = arg3; - func_802925E0(1); - return func_8029BD90(); -} - -enum bs_e func_802926C0(void){ - func_802925E0(2); - return func_8029BD90(); -} - -enum bs_e func_802926E8(void){ - func_802925E0(0x3); - return func_8029BD90(); -} - -enum bs_e func_80292710(void){ - func_802925E0(0x6); - return func_8029BD90(); -} - -enum bs_e func_80292738(void){ - miscflag_clear(0x19); - func_802925E0(0x4); - return func_8029BD90(); -} - -void func_80292768(void){ - if(D_8037C160.unk14){ - D_8037C160.unk14(D_8037C160.unk18); - } -} - -void func_8029279C(void){ - D_8037C160.unk0 = 0; - D_8037C160.unk14 = 0; - D_8037C160.unk4 = 0.1f; - ml_vec3f_clear(D_8037C160.unk8); -} diff --git a/src/core2/code_C0E0.c b/src/core2/code_C0E0.c deleted file mode 100644 index 3598af51..00000000 --- a/src/core2/code_C0E0.c +++ /dev/null @@ -1,142 +0,0 @@ -#include -#include "functions.h" -#include "variables.h" - -typedef struct { - s32 unk0; - s32 unk4; -} struct_C0E0; - -typedef struct{ - s16 unk0; - u8 unk2; - u8 unk3; -} struct_C0E0_1; - -typedef struct{ - u8 pad0[0xC]; - struct_C0E0_1 unkC[]; -} struct_C0E0_2; - -void func_80293350(void); - -/* .data */ -struct_C0E0_2 D_803637F0 ={ - { 0x03, 0xE8, 0x00, 0x00, - 0x05, 0xDC, 0x00, 0x00, - 0x07, 0xD0, 0x00, 0x00 - }, - { - {7000, 8, 2}, - {6000, 7, 1}, - {5000, 6, 1}, - {4000, 5, 1}, - {3000, 4, 1}, - {2000, 3, 1}, - {1000, 2, 1}, - {0, 1, 1}, - {-1, 0, 0} - }, -}; - -/* .bss */ -f32 D_8037C1B0[3]; -u8 D_8037C1BC; -struct_C0E0 D_8037C1C0; - -/* .code */ -s32 func_80293070(struct_C0E0 *arg0, s32 arg1, struct_C0E0_2 *arg2){ - struct_C0E0_1 *iPtr; - for(iPtr = arg2->unkC; iPtr->unk0 >= 0; iPtr++){ - if(iPtr->unk0 + 1000 < arg1){ - arg0->unk0 = iPtr->unk2; - return iPtr->unk3; - } - } - return 0; -} - -s32 func_802930C0(struct_C0E0 *arg0, s32 arg1){ - arg0->unk0 = 0; - if(arg1 < 0) - return 0; - else{ - switch(bsStoredState_getTransformation()){ - case TRANSFORM_2_TERMITE: //L80293110 - return func_80293070(arg0, arg1, &D_803637F0); - case TRANSFORM_3_PUMPKIN: //L80293124 - return func_80293070(arg0, arg1, &D_803637F0); - case TRANSFORM_5_CROC: //L80293138 - return func_80293070(arg0, arg1, &D_803637F0); - case TRANSFORM_4_WALRUS: //L8029314C - return func_80293070(arg0, arg1, &D_803637F0); - case TRANSFORM_6_BEE: //L80293160 - return func_80293070(arg0, arg1, &D_803637F0); - default: - return func_80293070(arg0, arg1, &D_803637F0); - break; - } - } -} - -void func_80293190(void){ - f32 sp1C[3]; - s32 temp_a1; - - player_getPosition(sp1C); - temp_a1 = D_8037C1B0[1] - sp1C[1]; - D_8037C1C0.unk4 = func_802930C0(&D_8037C1C0, temp_a1); -} - -s32 func_802931DC(s32 *arg0){ - *arg0 = D_8037C1C0.unk0; - return D_8037C1C0.unk4; -} - -f32 func_802931F4(void){ - f32 sp1C[3]; - s32 temp_v0; - - player_getPosition(sp1C); - temp_v0 = D_8037C1B0[1] - sp1C[1]; - return temp_v0; -} - -s32 func_80293234(void){ - return D_8037C1BC; -} - -void func_80293240(s32 arg0){ - D_8037C1BC = arg0; - if(D_8037C1BC == 2 || D_8037C1BC == 3) - func_80293350(); -} - -void func_80293284(f32 arg0[3]){ - ml_vec3f_copy(D_8037C1B0, arg0); -} - -void func_802932AC(void){ - _player_getPosition(D_8037C1B0); - D_8037C1BC = 0; - func_80293240(1); - D_8037C1C0.unk0 = 0; - D_8037C1C0.unk4 = 0; -} - -void func_802932EC(void){ - s32 sp1C; - sp1C = func_8028ECAC(); - if(func_8028B2E8() || (func_8028EE84() != BSWATERGROUP_0_NONE) || sp1C == BSGROUP_A_FLYING){ - func_80293350(); - func_80293240(1); - } - func_80293190(); -} - -void func_80293350(void){ - f32 sp1C[3]; - - _player_getPosition(sp1C); - func_80293284(sp1C); -} diff --git a/src/core2/code_D800.c b/src/core2/code_D800.c deleted file mode 100644 index 1d3024ac..00000000 --- a/src/core2/code_D800.c +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include "functions.h" -#include "variables.h" - -#include "prop.h" - - -void func_80294924(f32 arg0, f32 arg1); - -/* .bss */ -struct { - f32 unk0; - f32 unk4; -} D_8037C290; -ActorMarker* D_8037C298; -u8 D_8037C29C; - -/* .code */ -void func_80294790(void){ - D_8037C298 = NULL; - D_8037C29C = 0; - func_80294924(0.0f, 0.0f); -} - -void func_802947C4(void){} - -void func_802947CC(ActorMarker *marker, f32 arg1[3], f32 arg2[3]){ - Actor * actor = marker_getActor(marker); - if(actor->unk138_22){ - actor->position_x = arg1[0]; - actor->position_y = arg1[1]; - actor->position_z = arg1[2]; - - actor->yaw = arg2[1]; - } -} - -void func_80294828(void){ - f32 banjoPos[3]; - f32 banjoRot[3]; - - - player_getRotation(banjoRot); - baModel_getPosition(banjoPos); - banjoRot[1] = mlNormalizeAngle(banjoRot[1] + D_8037C290.unk4); - banjoPos[1] += D_8037C290.unk0; - func_802947CC(D_8037C298, banjoPos, banjoRot); -} - -int func_80294890(void){ - if(D_8037C298){ - if(D_8037C29C == 0){ - D_8037C298 = NULL; - } - else{ - func_80294828(); - D_8037C29C = 0; - } - } -} - -void func_802948E0(void){ - D_8037C298 = NULL; -} - -ActorMarker *carriedobj_getMarker(void){ - return D_8037C298; -} - -void func_802948F8(ActorMarker *arg0){ - D_8037C298 = arg0; - func_80294828(); - D_8037C29C = 1; -} - -void func_80294924(f32 arg0, f32 arg1){ - D_8037C290.unk0 = arg0; - D_8037C290.unk4 = arg1; -} diff --git a/src/core2/code_E910.c b/src/core2/code_E910.c index 6ecde024..7fb7d534 100644 --- a/src/core2/code_E910.c +++ b/src/core2/code_E910.c @@ -189,8 +189,8 @@ void func_80295914(void){ func_802983F0(); snacker_reset(); func_80291910(); - func_8029279C(); - func_802932AC(); + badrone_init(); + bafalldamage_init(); miscflag_clearAll(); func_8028B6FC(); func_80291590(); @@ -217,7 +217,7 @@ void func_80295914(void){ func_80290664(); stateTimer_init(); eggShatter_init(); - func_80294790(); + bacarry_init(); func_80293DA4(); baAnim_init(); baModel_reset(); @@ -234,7 +234,7 @@ void func_80295A8C(void){ stateTimer_set(STATE_TIMER_2_LONGLEG, bsStoredState_getLongLegTimer()); stateTimer_set(STATE_TIMER_3_TURBO_TALON, bsStoredState_getTurboTimer()); if(func_8028ADB4()) - bs_setState(func_80292630()); + bs_setState(badrone_enter()); else bs_setState(bs_getIdleState()); @@ -264,7 +264,7 @@ void func_80295B04(void){ baModel_free(); baAnim_free(); func_80293E88(); - func_802947C4(); + bacarry_end(); func_80299A20(); func_8029A54C(); func_8029ADA8(); @@ -289,7 +289,7 @@ void func_80295C14(void){ bs_updateState(); baphysics_update(); func_8029858C(); - func_802932EC(); + bafalldamage_update(); func_80293F0C(); pitch_update(); roll_update(); @@ -304,7 +304,7 @@ void func_80295C14(void){ baModel_update(); func_8029842C(); baMarker_update(); - func_80294890(); + bacarry_update(); func_8028A8D0(); func_8028B71C(); func_8029D968(); diff --git a/src/core2/code_EF50.c b/src/core2/code_EF50.c index e344f9bf..62337482 100644 --- a/src/core2/code_EF50.c +++ b/src/core2/code_EF50.c @@ -301,7 +301,7 @@ void func_80296608(void){ case BS_INTR_A: //L8029666C sp2C = 2; if(func_8028B2E8()){ - next_state = func_80292738(); + next_state = badrone_transform(); } else{ miscflag_set(0x19); @@ -429,7 +429,7 @@ void func_80296608(void){ sp2C = 2; break; case BS_INTR_34: //L802969A4 - next_state = func_802926E8(); + next_state = badrone_802926E8(); sp2C = 2; break; case BS_INTR_27_BANJO_SLED: //L802969BC @@ -509,7 +509,7 @@ void func_80296608(void){ sp2C = 2; break; case BS_INTR_37: //L80296BB4 - next_state = func_80292710(); + next_state = badrone_vanish(); sp2C = 2; break; case BS_INTR_2A: //L80296BCC