document ba/carry, ba/drone and ba/falldamage
This commit is contained in:
parent
092de6aae3
commit
4c7da41508
|
@ -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]
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef __BA_CARRY_H__
|
||||
#define __BA_CARRY_H__
|
||||
|
||||
#include <ultra64.h>
|
||||
#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
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef __BA_DRONE_H__
|
||||
#define __BA_DRONE_H__
|
||||
|
||||
#include <ultra64.h>
|
||||
#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
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
#include <ultra64.h>
|
||||
#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);
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
#include <ultra64.h>
|
||||
#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);
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include <ultra64.h>
|
||||
#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));
|
||||
}
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#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);
|
||||
}
|
|
@ -1,142 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#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);
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#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;
|
||||
}
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue