pal: match up to core2/bsrest.c

This commit is contained in:
Banjo Kazooie
2025-09-10 20:41:54 -05:00
parent 351ca1580c
commit c45dd154f1
9 changed files with 237 additions and 520 deletions

View File

@@ -13,7 +13,7 @@ extern void baModel_setYDisplacement(f32);
extern f32 bastick_getX(void);
extern void ncDynamicCam4_func_802BFE50(f32, f32, f32);
extern void func_80354030(f32[3], f32);
extern BKCollisionTri *func_8029463C(void);
/* .data */
@@ -477,8 +477,8 @@ void func_802A4430(void){
void func_802A4548(void){
s32 next_state = 0;
f32 sp20[3];
baphysics_get_velocity(sp20);
f32 velocity[3];
baphysics_get_velocity(velocity);
switch(D_8037D344){
case 0://L802A457C
if(func_8028B254(0x5A)){
@@ -567,15 +567,15 @@ void func_802A47E0(void) {
void func_802A48B4(void) {
s32 next_state;
AnimCtrl *sp18;
AnimCtrl *p_anim;
next_state = 0;
sp18 = baanim_getAnimCtrlPtr();
p_anim = baanim_getAnimCtrlPtr();
func_80299628(0);
switch (D_8037D344) {
case 0:
func_802A47E0();
if (anctrl_isAt(sp18, 0.2f) != 0) {
if (anctrl_isAt(p_anim, 0.2f) != 0) {
if (item_getCount(ITEM_14_HEALTH) == 0) {
func_8029C984();
func_8029151C(0xD);
@@ -584,19 +584,19 @@ void func_802A48B4(void) {
batimer_set(0, 2.5f);
D_8037D344 = 2;
}
} else if (anctrl_isAt(sp18, 0.92f)) {
} else if (anctrl_isAt(p_anim, 0.92f)) {
baanim_playForDuration_once(ASSET_D2_ANIM_BSSPLAT, 2.25f);
D_8037D344 = 1;
}
break;
case 1:
if (anctrl_isAt(sp18, 0.219f)) {
if (anctrl_isAt(p_anim, 0.219f)) {
basfx_80299CF4(SFX_36_BANJO_DOH, 1.0f, 16000);
}
if (anctrl_isAt(sp18, 0.63f)) {
if (anctrl_isAt(p_anim, 0.63f)) {
next_state = BS_20_LANDING;
}
if (anctrl_isStopped(sp18)) {
if (anctrl_isStopped(p_anim)) {
next_state = BS_1_IDLE;
}
if (player_shouldFall()) {
@@ -624,17 +624,17 @@ void func_802A4A40(void) {
void func_802A4A78(s32 arg0) {
f32 sp3C[3];
f32 sp30[3];
f32 sp2C;
f32 gravity;
f32 sp28;
f32 pad24;
f32 sp20;
f32 velocity;
if (arg0 == 0) {
sp2C = -2200.0f;
sp20 = 800.0f;
gravity = -2200.0f;
velocity = 800.0f;
} else {
sp2C = -1200.0f;
sp20 = 400.0f;
gravity = -1200.0f;
velocity = 400.0f;
}
func_802BB3DC(2, 100.0f, 0.85f);
baanim_playForDuration_onceSmooth(ASSET_D3_ANIM_BSBFLY_BEAKBOMB_REBOUND, 1.2f);
@@ -645,7 +645,7 @@ void func_802A4A78(s32 arg0) {
func_80257F18(sp30, sp3C, &sp28);
yaw_setIdeal(mlNormalizeAngle(sp28 + 180.0f));
yaw_applyIdeal();
baphysics_set_target_horizontal_velocity(sp20);
baphysics_set_target_horizontal_velocity(velocity);
baphysics_set_target_yaw(sp28);
baphysics_set_horizontal_velocity(sp28, baphysics_get_target_horizontal_velocity());
if ((arg0 == 1) && (map_get() == MAP_90_GL_BATTLEMENTS)) {
@@ -654,7 +654,7 @@ void func_802A4A78(s32 arg0) {
}
func_8029C7F4(1, 1, 2, BA_PHYSICS_LOCKED_ROTATION);
baphysics_set_vertical_velocity(800.0f);
baphysics_set_gravity(sp2C);
baphysics_set_gravity(gravity);
baphysics_set_terminal_velocity(-4000.0f);
func_8029E070(1);
func_802914CC(4);
@@ -739,14 +739,14 @@ void func_802A4D90(void) {
void func_802A4EC8(void) {
s32 next_state;
AnimCtrl *sp18;
AnimCtrl *p_anim;
next_state = 0;
sp18 = baanim_getAnimCtrlPtr();
p_anim = baanim_getAnimCtrlPtr();
if (player_isStable()) {
next_state = BS_20_LANDING;
}
if (anctrl_isStopped(sp18) && (player_shouldFall() || func_80294530())) {
if (anctrl_isStopped(p_anim) && (player_shouldFall() || func_80294530())) {
D_8037D346 = 1;
next_state = BS_24_FLY;
}

View File

@@ -31,7 +31,7 @@ void *D_8037D3E8;
u8 D_8037D3EC;
f32 D_8037D3F0;
u8 D_8037D3F4;
u8 D_8037D3F5;
u8 s_ate_wrong;
/* .code */
f32 __bscroc_getMaxVelocity(void){
@@ -47,7 +47,7 @@ void __bscroc_jumpSfx(void){
bsCrocJumpSfxIndex = 0;
}
void func_802ABE70(void){
void __bscroc_update_turbo_talon_trainers(void){
f32 sp1C = stateTimer_get(STATE_TIMER_3_TURBO_TALON);
basfx_updateClockSfxSource(stateTimer_getPrevious(STATE_TIMER_3_TURBO_TALON), sp1C);
if(baflag_isTrue(BA_FLAG_10_TOUCHING_TURBO_TRAINERS) && bs_getState() != BS_17_BTROT_EXIT){
@@ -67,7 +67,7 @@ void func_802ABE70(void){
}
}
void func_802ABF54(void){
void __bscroc_update_velocity(void){
f32 sp1C = bastick_getZonePosition();
if(bastick_getZone() == 0){
baphysics_set_target_horizontal_velocity(0.0f);
@@ -77,7 +77,7 @@ void func_802ABF54(void){
}
}
void func_802ABFBC(void){
void __bscroc_end(void){
if(!bscroc_inSet(bs_getNextState())){
bastick_resetZones();
func_8029E070(0);
@@ -117,7 +117,7 @@ void bscroc_idle_init(void){
void bscroc_idle_update(void){
enum bs_e next_state = 0;
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
func_80299628(0);
if(player_shouldFall())
next_state = BS_61_CROC_FALL;
@@ -140,7 +140,7 @@ void bscroc_idle_update(void){
}
void bscroc_idle_end(void){
func_802ABFBC();
__bscroc_end();
func_802900FC();
}
@@ -154,9 +154,9 @@ void bscroc_walk_init(void){
void bscroc_walk_update(void){
enum bs_e next_state = 0;
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
func_80299628(0);
func_802ABF54();
__bscroc_update_velocity();
func_8029AD28(0.1f, 4);
func_8029AD28(0.6f, 3);
@@ -176,7 +176,7 @@ void bscroc_walk_update(void){
}
void bscroc_walk_end(void){
func_802ABFBC();
__bscroc_end();
func_802900FC();
}
@@ -196,7 +196,7 @@ void bscroc_jump_init(void){
yaw_setIdeal(bastick_getAngleRelativeToBanjo());
}
baphysics_set_target_yaw(yaw_getIdeal());
func_802ABF54();
__bscroc_update_velocity();
baphysics_set_horizontal_velocity(yaw_getIdeal(), baphysics_get_target_horizontal_velocity());
baphysics_set_vertical_velocity(bsCrocInitialJumpVelocity);
baphysics_set_gravity(bsCrocGravity);
@@ -209,8 +209,8 @@ void bscroc_jump_update(void){
AnimCtrl *aCtrl = baanim_getAnimCtrlPtr();
f32 player_velocity[3];
func_802ABE70();
func_802ABF54();
__bscroc_update_turbo_talon_trainers();
__bscroc_update_velocity();
baphysics_get_velocity(player_velocity);
if(bakey_released(BUTTON_A) && 0.0f < player_velocity[1])
baphysics_reset_gravity();
@@ -267,7 +267,7 @@ void bscroc_jump_update(void){
void bscroc_jump_end(void){
baphysics_reset_gravity();
func_802ABFBC();
__bscroc_end();
}
void bscroc_fall_init(void){
@@ -288,9 +288,9 @@ void bscroc_fall_update(void){
AnimCtrl * aCtrl = baanim_getAnimCtrlPtr();
f32 player_velocity[3];
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
func_80299628(0);
func_802ABF54();
__bscroc_update_velocity();
baphysics_get_velocity(player_velocity);
switch(D_8037D3EC){
@@ -325,7 +325,7 @@ void bscroc_fall_update(void){
}
void bscroc_fall_end(void){
func_802ABFBC();
__bscroc_end();
}
static void __bscroc_recoil_init(s32 damage){
@@ -363,7 +363,7 @@ static void __bscroc_recoil_init(s32 damage){
static void __bscroc_recoil_update(void){
enum bs_e next_state = 0;
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
if(baanim_isAt(0.5f))
baeyes_open();
@@ -388,7 +388,7 @@ void __bscroc_recoil_end(void){
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();
func_802ABFBC();
__bscroc_end();
}
void bscroc_ow_init(void){
@@ -454,7 +454,7 @@ void bscroc_die_init(void){
void bscroc_die_update(void){
enum bs_e next_state = 0;
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
baphysics_set_target_horizontal_velocity(D_8037D3E0);
func_80299628(0);
switch(D_8037D3EC){
@@ -524,7 +524,7 @@ void bscroc_bite_update(void){
enum bs_e next_state = 0;
AnimCtrl *aCtrl = baanim_getAnimCtrlPtr();
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
func_80299628(0);
if(anctrl_isAt(aCtrl, 0.99f)){
switch(++D_8037D3F4){
@@ -558,7 +558,7 @@ void bscroc_bite_update(void){
void bscroc_bite_end(void){
_bscrocHitboxActive = FALSE;
func_802ABFBC();
__bscroc_end();
}
void bscroc_eat_bad_init(void){
@@ -571,7 +571,7 @@ void bscroc_eat_bad_update(void){
enum bs_e next_state = 0;
AnimCtrl *aCtrl = baanim_getAnimCtrlPtr();
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
func_80299628(0);
if(anctrl_isAt(aCtrl, 0.3518f)){
func_8030E58C(SFX_A0_COUGHING, 0.9f);
@@ -593,7 +593,7 @@ void bscroc_eat_bad_update(void){
}
void bscroc_eat_bad_end(void){
func_802ABFBC();
__bscroc_end();
}
@@ -608,8 +608,8 @@ void func_802AD2A8(Gfx **gdl, Mtx **mPtr, void *arg2){
}
void func_802AD318(void){
D_8037D3F5 = 1;
void bscroc_set_ate_wrong_thing(void){
s_ate_wrong = 1;
}
void bscroc_eat_good_init(void){
@@ -618,22 +618,22 @@ void bscroc_eat_good_init(void){
baModel_setPostDraw(func_802AD2A8);
D_8037D3E8 = assetcache_get(func_80294974());
D_8037D3F0 = 1.0f;
D_8037D3F5 = 0;
s_ate_wrong = 0;
D_8037D3F4 = 0;
}
int func_802AD3A0(void){
return D_8037D3F5;
int bscroc_ate_wrong_thing(void){
return s_ate_wrong;
}
void bscroc_eat_good_update(void){
enum bs_e next_state = 0;
AnimCtrl *aCtrl = baanim_getAnimCtrlPtr();
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
D_8037D3F0 = ml_max_f(0.1f, D_8037D3F0 - 0.05);
func_80299628(0);
func_802ABF54();
__bscroc_update_velocity();
if(anctrl_isAt(aCtrl, 0.99f)){
switch(++D_8037D3F4){
case 1:
@@ -644,7 +644,7 @@ void bscroc_eat_good_update(void){
anctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
break;
case 3:
if(D_8037D3F5)
if(s_ate_wrong)
next_state = BS_CROC_EAT_BAD;
else
next_state = BS_5E_CROC_IDLE;
@@ -662,13 +662,13 @@ void bscroc_eat_good_update(void){
}
void bscroc_eat_good_end(void){
D_8037D3F5 = 0;
s_ate_wrong = 0;
assetcache_release(D_8037D3E8);
baModel_setPostDraw(0);
func_802ABFBC();
__bscroc_end();
}
void func_802AD56C(void){
void bscroc_locked_enter(void){
baanim_playForDuration_loopSmooth(ASSET_E1_ANIM_BSCROC_IDLE, 1.0f);
func_8029C7F4(1,1,3, BA_PHYSICS_NORMAL);
baphysics_set_target_horizontal_velocity(0.0f);
@@ -676,9 +676,9 @@ void func_802AD56C(void){
func_802B3A50();
}
void func_802AD5C0(void){
void bscroc_locked_update(void){
enum bs_e next_state = 0;
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
func_802B3A50();
func_80299628(0);
func_8029C6D0();
@@ -689,11 +689,11 @@ void func_802AD5C0(void){
bs_setState(next_state);
}
void func_802AD614(void){
void bscroc_locked_end(void){
pitch_setIdeal(0.0f);
roll_setIdeal(0.0f);
func_8029C748();
func_802ABFBC();
__bscroc_end();
}
void bscroc_drone_init(void){
@@ -701,11 +701,11 @@ void bscroc_drone_init(void){
}
void bscroc_drone_update(void){
func_802ABE70();
__bscroc_update_turbo_talon_trainers();
bsdrone_update();
}
void bscroc_drone_end(void){
bsdrone_end();
func_802ABFBC();
__bscroc_end();
}

View File

@@ -119,17 +119,17 @@ void bsjig_jiggy_end(void){
if( jiggyscore_total() == 2
&& map_get() == MAP_2_MM_MUMBOS_MOUNTAIN
){
sp2C = 0xb51;
sp2C = VER_SELECT(0xb51, 0x96f, 0, 0);
sp28 = 0xe;
}
else{//L802B0E34
switch(sp24){
case 0x13:
sp2C = 0xa16;
sp2C = VER_SELECT(0xa16, 0x916, 0, 0);
break;
case 0x17:
if(!levelSpecificFlags_get(LEVEL_FLAG_0_CC_TOKEN_TOOTH_OPEN) || !levelSpecificFlags_get(LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN))
sp2C = 0xd2d;
sp2C = VER_SELECT(0xd2d, 0xa00, 0, 0);
break;
}
}//L802B0E88
@@ -141,8 +141,14 @@ void bsjig_jiggy_end(void){
}
void bsjig_jiggy_interrupt(void){
if(bs_getInterruptType() == BS_INTR_26)
if(bs_getInterruptType() == BS_INTR_26) {
func_80296608();
}
#if VERSION != VERSION_USA_1_0
else {
func_80296590();
}
#endif
}
void bsjig_notedoor_end(void){
@@ -169,7 +175,7 @@ void bsjig_notedoor_init(void){
anctrl_setIndex(aCtrl, ASSET_282_ANIM_BSJIG_NOTEDOOR);
anctrl_setDuration(aCtrl, 3.6f);
anctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
anctrl_start(aCtrl, "bsjig.c", 0x14d);
anctrl_start(aCtrl, "bsjig.c", VER_SELECT(0x14d, 0x14f, 0, 0));
yaw_setIdeal(func_8029B41C());
func_8029C7F4(1,1,3, BA_PHYSICS_NORMAL);
baphysics_set_target_horizontal_velocity(0.0f);

View File

@@ -494,7 +494,7 @@ enum bsgroup_e player_movementGroup(void) {
case BS_6E_CROC_BITE://L8028EE38
case BS_70_CROC_EAT_GOOD://L8028EE38
if(func_802AD3A0())
if(bscroc_ate_wrong_thing())
return BSGROUP_0_NONE;
return BSGROUP_7_CROC_ATTACK;

View File

@@ -139,7 +139,7 @@ bsMap D_80363824[] ={
{BS_BEE_DIE, bsbeemain_die_init, func_802A1DD8, func_802A1F2C, func_80296590},
{0x0000008B, func_802A0590, func_802A0630, func_802A0704, func_802B5350},
{BS_BEE_FLY, bsbeefly_enter, bsbeefly_update, bsbeefly_end, func_802B5350},
{BS_8D_CROC_LOCKED, func_802AD56C, func_802AD5C0, func_802AD614, func_802B5350},
{BS_8D_CROC_LOCKED, bscroc_locked_enter, bscroc_locked_update, bscroc_locked_end, func_802B5350},
{0x0000008E, func_8029F398, func_8029F3F4, func_8029F440, func_802B5350},
{BS_8F_PUMPKIN_LOCKED, func_802B34A0, func_802B34F8, func_802B353C, func_802B5350},
{BS_FLY_OW, func_802A4D30, func_802A4D50, func_802A4D70, func_802A505C},

View File

@@ -299,7 +299,7 @@ void func_80296608(void){
current_state = bs_getState();
switch(bs_getInterruptType()){
case BS_INTR_18_CROC_ATE_WRONG: //L80296654
func_802AD318();
bscroc_set_ate_wrong_thing();
sp2C = 2;
break;
case BS_INTR_A: //L8029666C