#include #include "functions.h" #include "variables.h" #include "bsint.h" #include "bs_funcs.h" #include "core2/statetimer.h" u8 D_80363820 = 0; bsMap D_80363824[] ={ {BS_1_IDLE, bsstand_init, bsstand_update, bsstand_end, func_802B5350}, {BS_2_WALK_SLOW, bswalk_slow_init, bswalk_slow_upate, NULL, func_802B5350}, {BS_WALK, bswalk_init, bswalk_update, NULL, func_802B5350}, {BS_4_WALK_FAST, bswalk_fast_init, bswalk_fast_update, bswalk_fast_end, func_802B5350}, {BS_5_JUMP, bsjump_init, bsjump_update, bsjump_end, func_80296608}, {BS_CLAW, bsclaw_init, bsclaw_update, bsclaw_end, func_80296608}, {BS_CROUCH, bscrouch_init, bscrouch_update, bscrouch_end, func_802B5350}, {BS_8_BTROT_JUMP, bsbtrot_jump_init, bsbtrot_jump_update,bsbtrot_jump_end, func_802B5350}, {BS_SKID, bsturn_init, bsturn_update, bsturn_end, func_802B5350}, {BS_D_TIMEOUT, func_802B63F8, func_802B64D0, func_802B6500, func_80296590}, {BS_E_OW, bsow_init, bsow_update, bsow_end, func_80296590}, {BS_F_BBUSTER, bsbbuster_init, bsbbuster_update, bsbbuster_end, func_80296608}, {BS_BFLAP, bsbflap_init, bsbflap_update, bsbflap_end, func_80296608}, {BS_11_BPECK, bsbpeck_init, bsbpeck_update, bsbpeck_end, func_80296608}, {BS_12_BFLIP, bsbflip_init, bsbflip_update, bsbflip_end, func_80296608}, {BS_BBARGE, bsbarge_init, bsbarge_update, bsbarge_end, func_80296608}, {BS_14_BTROT_ENTER, bsbtrot_enter_init, bsbtrot_enter_update, bsbtrot_enter_end, func_802B5350}, {BS_15_BTROT_IDLE, bsbtrot_stand_init, bsbtrot_stand_update, bsbtrot_stand_end, func_802B5350}, {BS_16_BTROT_WALK, bsbtrot_walk_init, bsbtrot_walk_update, bsbtrot_walk_end, func_802B5350}, {BS_17_BTROT_EXIT, bsbtrot_exit_init, bsbtrot_exit_update, bsbtrot_exit_end, func_802B5350}, {BS_18_FLY_KNOCKBACK, func_802A4D90, func_802A4EC8, func_802A4F44, func_80296608}, {BS_1A_WONDERWING_ENTER, bsbwhirl_enter_init, bsbwhirl_enter_update, bsbwhirl_enter_end, func_80296608}, {BS_1B_WONDERWING_IDLE, bsbwhirl_stand_init, bsbwhirl_stand_update, bsbwhirl_stand_end, func_80296608}, {BS_1C_WONDERWING_WALK, bsbwhirl_walk_init, bsbwhirl_walk_update, bsbwhirl_walk_end, func_80296608}, {BS_1D_WONDERWING_JUMP, bsbwhirl_jump_init, bsbwhirl_jump_update, bsbwhirl_jump_end, func_80296608}, {BS_1E_WONDERWING_EXIT, bsbwhirl_exit_init, bsbwhirl_exit_update, bsbwhirl_exit_end, func_80296608}, {BS_9_EGG_HEAD, bsegghead_init, bsegghead_update, bsegghead_end, func_802B5350}, {BS_A_EGG_ASS, bseggass_init, bseggass_update, bseggass_end, func_802B5350}, {BS_WALK_CREEP, bswalk_creep_init, bswalk_creep_update, NULL, func_802B5350}, {BS_20_LANDING, bsstand_landing_init, bsstand_landing_update, NULL, func_802B5350}, {BS_BSHOCK_CHARGE, bsbshock_charge_init, bsbshock_charge_update, bsbshock_charge_end, func_80296608}, {BS_BSHOCK_JUMP, bsbshock_init, bsbshock_update, bsbshock_end, func_80296608}, {BS_23_FLY_ENTER, bsbfly_enter_init, bsbfly_enter_update, bsbfly_enter_end, func_802A505C}, {BS_24_FLY, bsbfly_init, bsbfly_update, func_802A3F70, func_802A505C}, {BS_25_LONGLEG_ENTER, bsblongleg_enter_init, bsblongleg_enter_update, bsblongleg_enter_end, func_802B5350}, {BS_26_LONGLEG_IDLE, bsblongleg_stand_enter, bsblongleg_stand_update, bsblongleg_stand_end, func_802B5350}, {BS_LONGLEG_WALK, bsblongleg_walk_init, bsblongleg_walk_update, bsblongleg_walk_end, func_802B5350}, {BS_LONGLEG_JUMP, bsblongleg_jump_init, bsblongleg_jump_update, bsblongleg_jump_end, func_80296608}, {BS_LONGLEG_EXIT, bsblongleg_exit_init, bsblongleg_exit_update, bsblongleg_exit_end, func_802B5350}, {BS_BOMB, func_802A3F9C, func_802A411C, func_802A4404, func_802A505C}, {BS_2B_DIVE_IDLE, func_802A762C, func_802A7674, func_802A7718, func_80296608}, {BS_2C_DIVE_B, func_802A7738, func_802A7838, func_802A7A2C, func_80296608}, {BS_2D_SWIM_IDLE, func_802B5774, func_802B5950, func_802B5AF8, func_80296608}, {BS_2E_SWIM, func_802B5B18, func_802B5C40, func_802B5E10, func_80296608}, {BS_2F_FALL, bsjump_fall_init, bsjump_fall_update, bsjump_fall_end, func_80296608}, {BS_30_DIVE_ENTER, bsSwim_dive_init, func_802A7E2C, func_802A7F4C, func_80296608}, {BS_ROLL, bstwirl_init, bstwirl_update, bstwirl_end, func_802B5350}, {BS_SLIDE, bsslide_init, bsslide_update, bsslide_end, func_802B5350}, {0x33, func_802B9ACC, func_802B9B14, func_802B9AAC, func_802B9D00}, {BS_34_JIG_NOTEDOOR, bsjig_notedoor_init, bsjig_notedoor_update, bsjig_notedoor_end, func_80296590}, {BS_35_ANT_IDLE, bsant_idle_init, bsant_idle_update, bsant_idle_end, func_802B5350}, {BS_ANT_WALK, bsant_walk_init, bsant_walk_update, bsant_walk_end, func_802B5350}, {BS_ANT_JUMP, bsant_jump_init, bsant_jump_update, bsant_jump_end, func_802B5350}, {BS_39_DIVE_A, func_802A7A54, func_802A7AB0, func_802A7BA8, func_80296608}, {BS_3A_CARRY_IDLE, bscarry_idle_init, bscarry_idle_update, bscarry_idle_end, bscarry_interrupt}, {BS_3B_CARRY_WALK, bscarry_walk_init, bscarry_walk_update, bscarry_walk_end, bscarry_interrupt}, {BS_3C_TALK, bstalk_init, bstalk_update, bstalk_end, bstalk_interrupt}, {BS_3D_FALL_TUMBLING, bsjump_tumble_init, bsjump_tumble_update, bsjump_tumble_end, func_80296608}, {BS_38_ANT_FALL, bsant_fall_init, bsant_fall_update, bsant_fall_end, func_80296590}, {BS_3E_ANT_OW, bsant_ow_init, bsant_ow_update, bsant_ow_end, func_80296590}, {0x3F, func_802B1BF4, func_802B1CF8, func_802B1DA4, func_80296590}, {BS_40_PUMPKIN_FLUSH, func_802B2BF0, func_802B2C58, func_802B2D50, func_80296590}, {BS_41_DIE, bsdie_init, bsdie_update, bsdie_end, func_80296590}, {BS_42_DINGPOT, func_802A5120, func_802A5190, func_802A51C0, func_80296590}, {BS_43_ANT_DIE, bsant_die_init, bsant_die_update, bsant_die_end, func_80296590}, {BS_44_JIG_JIGGY, bsjig_jiggy_init, bsjig_jiggy_update, bsjig_jiggy_end, bsjig_jiggy_interrupt}, {BS_45_BTROT_SLIDE, bsbtrot_slide_init, bsbtrot_slide_update, bsbtrot_slide_end, func_802B5350}, {0x46, func_802A2098, func_802A2130, func_802A2054, func_80296590}, {BS_48_PUMPKIN_IDLE, bspumpkin_idle_init, bspumpkin_idle_update, bspumpkin_idle_end, func_802B5350}, {BS_49_PUMPKIN_WALK, bspumpkin_walk_init, bspumpkin_walk_update, bspumpkin_walk_end, func_802B5350}, {BS_4A_PUMPKIN_JUMP, bspumpkin_jump_init, bspumpkin_jump_update, bspumpkin_jump_end, func_802B5350}, {BS_4B_PUMPKIN_FALL, bspumpkin_fall_init, bspumpkin_fall_update, bspumpkin_fall_end, func_802B5350}, {BS_4C_LANDING_IN_WATER, func_802A846C, func_802A85EC, func_802A872C, func_80296608}, {BS_4D_PUMPKIN_OW, __bspumpkin_ow_init, __bspumpkin_ow_update, __bspumpkin_ow_end, func_80296590}, {BS_4E_PUMPKIN_DIE, bspumpkin_die_init, bspumpkin_die_update, bspumpkin_die_end, func_80296590}, {BS_4F_CLIMB_IDLE, bsclimb_idle_init, bsclimb_idle_update, bsclimb_idle_end, func_802ABD60}, {BS_50_CLIMB_MOVE, bsclimb_move_init, bsclimb_move_update, bsclimb_move_end, func_802ABD60}, {BS_51_CLIMB_EXIT, func_802B1928, func_802B1A54, func_802B1BCC, func_80296608}, {0x52, func_802B5FD0, func_802B6064, func_802B60D0, func_802B60D8}, {BS_53_TIMEOUT, func_802B6270, func_802B6314, func_802B63C8, func_80296590}, {BS_LONGLEG_SLIDE, bsblongleg_slide_init, bsblongleg_slide_update, bsblongleg_slide_end, func_802B5350}, {BS_56_RECOIL, func_802B3868, func_802B3954, func_802B3A20, func_80296590}, {BS_57_BOMB_END, func_802A4430, func_802A4548, func_802A4664, func_802A505C}, {BS_58_BEAKBOMB_CRASH, bsbfly_beakbomb_crash_init, func_802A48B4, func_802A4A40, func_80296590}, {0x59, func_802A4CD0, func_802A4CF0, func_802A4D10, func_802A505C}, {BS_54_SWIM_DIE, func_802A7F6C, func_802A8098, func_802A82D4, func_80296590}, {BS_CARRY_THROW, bsthrow_init, bsthrow_update, bsthrow_end, bsthrow_interrupt}, {BS_5E_CROC_IDLE, bscroc_idle_init, bscroc_idle_update, bscroc_idle_end, func_802B5350}, {BS_CROC_WALK, bscroc_walk_init, bscroc_walk_update, bscroc_walk_end, func_802B5350}, {BS_CROC_JUMP, bscroc_jump_init, bscroc_jump_update, bscroc_jump_end, func_802B5350}, {BS_61_CROC_FALL, bscroc_fall_init, bscroc_fall_update, bscroc_fall_end, func_802B5350}, {BS_62_LONGLEG_LOCKED, func_802A6394, func_802A63F0, func_802A6450, func_80296608}, {BS_CROC_OW, bscroc_ow_init, bscroc_ow_update, bscroc_ow_end, func_80296590}, {BS_CROC_DIE, bscroc_die_init, bscroc_die_update, bscroc_die_end, func_80296590}, {BS_67_WALRUS_IDLE, bswalrus_idle_init, bswalrus_idle_update, bswalrus_idle_end, func_802B5350}, {BS_WALRUS_WALK, bswalrus_walk_init, bswalrus_walk_update, bswalrus_walk_end, func_802B5350}, {BS_WALRUS_JUMP, bswalrus_jump_init, bswalrus_jump_update, bswalrus_jump_end, func_802B5350}, {BS_6A_WALRUS_FALL, bswalrus_fall_init, bswalrus_fall_update, bswalrus_fall_end, func_802B5350}, {0x6B, func_802A1F6C, func_802A1FC8, func_802A2014, func_80296608}, {BS_WALRUS_OW, bswalrus_ow_init, bswalrus_ow_update, bswalrus_ow_end, func_80296590}, {BS_WALRUS_DIE, bswalrus_die_init, bswalrus_die_update, bswalrus_die_end, func_80296590}, {BS_6E_CROC_BITE, bscroc_bite_init, bscroc_bite_update, bscroc_bite_end, func_802B5350}, {BS_CROC_EAT_BAD, bscroc_eat_bad_init, bscroc_eat_bad_update, bscroc_eat_bad_end, func_802B5350}, {BS_70_CROC_EAT_GOOD, bscroc_eat_good_init, bscroc_eat_good_update, bscroc_eat_good_end, func_802B5350}, {BS_71_BTROT_FALL, bsbtrot_fall_init, bsbtrot_fall_update, bsbtrot_fall_end, func_80296608}, {BS_SPLAT, bssplat_init, bssplat_update, bssplat_end, func_80296590}, {0x00000073, func_802B3CEC, func_802B3D1C, func_802B3D6C, func_80296608}, {0x00000074, func_802B3E2C, func_802B3E64, func_802B3EF4, func_80296608}, {0x00000075, func_802B3D8C, func_802B3DBC, func_802B3E0C, func_80296608}, {0x00000076, func_802A4F74, func_802A4FC8, func_802A503C, func_80296608}, {0x00000077, func_802B5E8C, func_802B5EFC, func_802B5F38, func_80296608}, {0x00000078, func_802A83C0, func_802A8410, func_802A844C, func_80296608}, {0x00000079, bsbtrot_unk79_init, bsbtrot_unk79_update, bsbtrot_unk79_end, func_80296608}, {BS_WALK_MUD, bswalk_mud_init, bswalk_mud_update, NULL, func_80296608}, {BS_BTROT_OW, bsbtrot_ow_init, bsbtrot_ow_update, bsbtrot_ow_end, func_80296590}, {BS_7C_SLED, bssled_init, bssled_update, bssled_end, bssled_interrupt}, {BS_7D_WALRUS_SLED, bswalrus_sled_init, bswalrus_sled_update, bswalrus_sled_end, func_802B98C0}, {BS_7E_WALRUS_SLED, bswalrus_sled_jump_init, bswalrus_sled_jump_update, bswalrus_sled_jump_end, func_802B98C0}, {BS_7F_DIVE_OW, func_802A7BD0, func_802A7CA8, func_802A7D74, func_80296590}, {0x00000080, bswalrus_timeout_init, func_802B9830, func_802B9880, func_80296590}, {0x00000081, func_802B90D0, func_802B9130, func_802B917C, func_802B98C0}, {0x00000082, func_802B95A0, func_802B963C, func_802B976C, func_802B98C0}, {BS_85_BEE_IDLE, func_802A1080, func_802A10D4, func_802A117C, func_802B5350}, {BS_BEE_WALK, func_802A11A4, func_802A1214, func_802A12D4, func_802B5350}, {BS_BEE_JUMP, func_802A12FC, func_802A1438, func_802A163C, func_802B5350}, {BS_88_BEE_FALL, func_802A1664, func_802A170C, func_802A18C8, func_802B5350}, {BS_BEE_OW, func_802A1B68, func_802A1B88, func_802A1BA8, func_802B5350}, {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}, {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}, {BS_92_ANT_DRONE, bsant_drone_init, bsant_drone_update, bsant_drone_end, bsdrone_interrupt}, {BS_93_PUMPKIN_DRONE, bspumpkin_drone_init, bspumpkin_drone_update, bspumpkin_drone_end, bsdrone_interrupt}, {BS_94_CROC_DRONE, bscroc_drone_init, bscroc_drone_update, bscroc_drone_end, bsdrone_interrupt}, {BS_95_WALRUS_DRONE, bswalrus_drone_init, bswalrus_drone_update, bswalrus_drone_end, bsdrone_interrupt}, {BS_96_SWIM_LOCKED, func_802B5F58, func_802B5F80, func_802B5FA0, bsdrone_interrupt}, {BS_97_DIVE_LOCKED, func_802A874C, func_802A8774, func_802A8794, bsdrone_interrupt}, {BS_98_WALK_DRONE, bswalk_drone_init, bswalk_drone_update, bswalk_drone_end, bsdrone_interrupt}, {0x00000099, func_802A50B0, func_802A50D8, func_802A50F8, bsdrone_interrupt}, {BS_9A_BTROT_DRONE, bsbtrot_drone_init, bsbtrot_drone_update, bsbtrot_drone_end, bsdrone_interrupt}, {BS_9B_LONGLEG_DRONE, bsblongleg_drone_init, bsblongleg_drone_update, bsblongleg_drone_end, bsdrone_interrupt}, {0x0000009C, bswalrus_sled_drone_init, bswalrus_sled_drone_update, bswalrus_sled_drone_end, bsdrone_interrupt}, {BS_9D_BEE_DRONE, bsbee_drone_init, bsbee_drone_update, bsbee_drone_end, bsdrone_interrupt}, {0x0000009E, func_802ABCCC, func_802ABD0C, func_802ABD40, func_802ABD60}, {BS_ANT_BOUNCE, bsant_bounce_init, bsant_bounce_update, bsant_bounce_end, func_80296590}, {BS_PUMPKIN_BOUNCE, bspumpkin_rebound_init, bspumpkin_rebound_update, bspumpkin_rebound_end, func_80296590}, {BS_CROC_BOUNCE, bscroc_bounce_init, bscroc_bounce_update, bscroc_bounce_end, func_80296590}, {BS_WALRUS_BOUNCE, bswalrus_bounce_init, bswalrus_bounce_update, bswalrus_bounce_end, func_80296590}, {BS_BEE_BOUNCE, func_802A1BC8, func_802A1BE8, func_802A1C08, func_80296590}, {BS_A4_WONDERWING_DRONE, bsbwhirl_drone_init, bsbwhirl_drone_update, bsbwhirl_drone_end, func_80296608}, {BS_A5_WONDERWING_UNKA5, func_802AADBC, func_802AAE08, func_802AAE4C, func_80296608}, {0} }; /* .bss */ void (*D_8037C3B0)(); /* .code */ void func_802958A0(void){ s32 i; bsMap *iPtr; for(i = 0; D_80363824[i].uid != 0; i++){ bsList_setInitMethod(D_80363824[i].uid, D_80363824[i].behavior.init_func); bsList_setUpdateMethod(D_80363824[i].uid, D_80363824[i].behavior.update_func); bsList_setEndMethod(D_80363824[i].uid, D_80363824[i].behavior.end_func); bsList_setInterruptMethod(D_80363824[i].uid, D_80363824[i].behavior.interrupt_func); } } void func_80295914(void){ D_80363820 = 1; D_8037C3B0 = NULL; update_void_return_Location(); func_802983F0(); snacker_reset(); func_80291910(); func_8029279C(); func_802932AC(); miscflag_clearAll(); func_8028B6FC(); func_80291590(); func_802953A0(); func_8029B11C(); func_8029528C(); bsList_clearAll(); bs_clearState(); func_80295DD0(); func_80296C30(); func_802976E4(); func_80297C78(); pitch_reset(); climbClear(); func_8029887C(); roll_reset(); func_802992F0(); func_80294DD8(); func_8029CF6C(); func_8029DFF8(); func_80290B6C(); func_80292D88(); func_80290070(); func_80290664(); stateTimer_init(); eggShatter_init(); func_80294790(); func_80293DA4(); baAnim_init(); baModel_reset(); baMarker_init(); func_80299900(); func_8029A4D0(); func_8029ADCC(); func_8029D01C(); func_802958A0(); } 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()); else bs_setState(bs_getIdleState()); } void func_80295B04(void){ f32 sp24; enum bs_e sp20 = bs_getState(); bool is_in_talon_trot; sp24 = (bslongleg_inSet(sp20)) ? stateTimer_get(STATE_TIMER_2_LONGLEG) : 0.0f; bsStoredState_setLongLegTimer(sp24); sp24 = 0.0f; is_in_talon_trot = FALSE; if(bsbtrot_inSet(sp20)){ sp24 = stateTimer_get(STATE_TIMER_3_TURBO_TALON); is_in_talon_trot = TRUE; } bsStoredState_setTrot(is_in_talon_trot); bsStoredState_setTurboTimer(sp24); bs_setState(BS_5A_LOADZONE); baMarker_free(); func_8029065C(); stateTimer_free(); eggShatter_free(); baModel_free(); baAnim_free(); func_80293E88(); func_802947C4(); func_80299A20(); func_8029A54C(); func_8029ADA8(); func_8029CFF8(); D_80363820 = 0; } void func_80295C08(void (* arg0)(void)){ D_8037C3B0 = arg0; } void func_80295C14(void){ func_802964B8(); func_80298A84(); stateTimer_update(); func_8029E100(); pfsManager_update();//controller_update func_8023E06C(); func_80295448(); func_8029B174(); func_8029533C(); //dive_cooldown_update bs_updateState(); func_80297744(); func_8029858C(); func_802932EC(); func_80293F0C(); pitch_update(); roll_update(); func_802993C8();//yaw update func_802906D8(); baAnim_update(); func_8029A554(); func_80298344(); //climb_cooldown_update func_80290108(); eggShatter_update(); func_80292EDC(); baModel_update(); func_8029842C(); baMarker_update(); func_80294890(); func_8028A8D0(); func_8028B71C(); func_8029D968(); func_80297CF8(); func_80294E60(); cameraMode_update(); func_802919A0(); if(D_8037C3B0){ D_8037C3B0(); D_8037C3B0 = NULL; } func_80299A8C(); func_80295E74();//voidOut_update } void func_80295D74(void){ if(D_80363820){ baAnim_defrag(); baModel_defrag(); eggShatter_defrag(); func_80294750(); func_8029AF1C(); } }