document ba/carry, ba/drone and ba/falldamage

This commit is contained in:
Banjo Kazooie
2024-06-17 01:10:20 -05:00
parent 092de6aae3
commit 4c7da41508
41 changed files with 476 additions and 435 deletions

View File

@@ -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

View File

@@ -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{

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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();
}
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;