174 lines
4.2 KiB
C
174 lines
4.2 KiB
C
#include <ultra64.h>
|
|
#include "functions.h"
|
|
#include "variables.h"
|
|
|
|
#include "core2/ba/physics.h"
|
|
|
|
void func_802B3A50(void) {
|
|
f32 sp34;
|
|
f32 plyr_pos[3];
|
|
f32 sp1C[3];
|
|
|
|
if (func_80298850()) {
|
|
_player_getPosition(plyr_pos);
|
|
if (func_80298800(sp1C) && func_80257F18(plyr_pos, sp1C, &sp34)) {
|
|
yaw_setIdeal(sp34);
|
|
}
|
|
}
|
|
}
|
|
|
|
void func_802B3AAC(enum asset_e anim_id, f32 anim_duration) {
|
|
AnimCtrl *anim_ctrl;
|
|
|
|
anim_ctrl = baanim_getAnimCtrlPtr();
|
|
if (anim_id == ASSET_14A_ANIM_BSREST_LISTEN) {
|
|
func_8029E070(1);
|
|
switch (anctrl_getIndex(baanim_getAnimCtrlPtr())) {
|
|
case ASSET_14A_ANIM_BSREST_LISTEN:
|
|
baanim_playForDuration_loopSmooth(anim_id, anim_duration);
|
|
break;
|
|
case ASSET_167_ANIM_BSREST_MOVE:
|
|
anctrl_reset(anim_ctrl);
|
|
anctrl_setIndex(anim_ctrl, ASSET_167_ANIM_BSREST_MOVE);
|
|
anctrl_setDuration(anim_ctrl, 0.4f);
|
|
anctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE);
|
|
break;
|
|
default:
|
|
baanim_playForDuration_once(ASSET_167_ANIM_BSREST_MOVE, 0.5f);
|
|
anctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE);
|
|
break;
|
|
}
|
|
} else {
|
|
baanim_playForDuration_loopSmooth(anim_id, anim_duration);
|
|
}
|
|
func_8029C7F4(1, 1, 3, BA_PHYSICS_NORMAL);
|
|
baphysics_set_target_horizontal_velocity(0.0f);
|
|
func_802B3A50();
|
|
}
|
|
|
|
|
|
bool func_802B3BB0(void) {
|
|
AnimCtrl *anim_ctrl;
|
|
bool sp20;
|
|
|
|
anim_ctrl = baanim_getAnimCtrlPtr();
|
|
func_802B3A50();
|
|
sp20 = FALSE;
|
|
switch(anctrl_getIndex(anim_ctrl)){
|
|
case ASSET_167_ANIM_BSREST_MOVE:
|
|
if (baanim_isStopped() != 0) {
|
|
if (anctrl_isPlayedForwards(anim_ctrl) != 0) {
|
|
baanim_playForDuration_loopSmooth(ASSET_14A_ANIM_BSREST_LISTEN, 11.4f);
|
|
} else if (func_80298850() == 0) {
|
|
sp20 = TRUE;
|
|
}
|
|
}
|
|
break;
|
|
case ASSET_14A_ANIM_BSREST_LISTEN:
|
|
if (func_80298850() == 0) {
|
|
anctrl_reset(anim_ctrl);
|
|
anctrl_setDirection(anim_ctrl, 0);
|
|
anctrl_setIndex(anim_ctrl, 0x167);
|
|
anctrl_setStart(anim_ctrl, 1.0f);
|
|
anctrl_setDuration(anim_ctrl, 0.5f);
|
|
anctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE);
|
|
anctrl_start(anim_ctrl, "bsrest.c", 0xA3);
|
|
}
|
|
break;
|
|
default:
|
|
if (func_80298850() == 0) {
|
|
sp20 = TRUE;
|
|
}
|
|
break;
|
|
}
|
|
return sp20;
|
|
}
|
|
|
|
void func_802B3CCC(void){
|
|
func_8029E070(0);
|
|
}
|
|
|
|
void func_802B3CEC(void){
|
|
enum asset_e anim_id;
|
|
f32 anim_duration;
|
|
|
|
func_8029BE10(&anim_id, &anim_duration);
|
|
func_802B3AAC(anim_id, anim_duration);
|
|
}
|
|
|
|
void func_802B3D1C(void) {
|
|
enum bs_e next_state;
|
|
|
|
next_state = 0;
|
|
if (player_inWater() != 0) {
|
|
next_state = BS_77_SWIM_LOCKED;
|
|
}
|
|
if (func_802B3BB0() != 0) {
|
|
next_state = bs_getIdleState();
|
|
}
|
|
bs_setState(next_state);
|
|
}
|
|
|
|
void func_802B3D6C(void){
|
|
func_802B3CCC();
|
|
}
|
|
|
|
void func_802B3D8C(void){
|
|
enum asset_e anim_id;
|
|
f32 anim_duration;
|
|
|
|
func_8029BF00(&anim_id, &anim_duration);
|
|
func_802B3AAC(anim_id, anim_duration);
|
|
}
|
|
|
|
|
|
void func_802B3DBC(void) {
|
|
enum bs_e next_state;
|
|
|
|
next_state = 0;
|
|
if (player_inWater() != 0) {
|
|
next_state = BS_77_SWIM_LOCKED;
|
|
}
|
|
if (func_802B3BB0() != 0) {
|
|
next_state = bs_getIdleState();
|
|
}
|
|
bs_setState(next_state);
|
|
}
|
|
|
|
|
|
void func_802B3E0C(void){
|
|
func_802B3CCC();
|
|
}
|
|
|
|
void func_802B3E2C(void){
|
|
enum asset_e anim_id;
|
|
f32 anim_duration;
|
|
|
|
func_8029BE88(&anim_id, &anim_duration);
|
|
func_802B3AAC(anim_id, anim_duration);
|
|
func_8029C674();
|
|
}
|
|
|
|
void func_802B3E64(void) {
|
|
s32 next_state;
|
|
|
|
next_state = 0;
|
|
func_8029C6D0();
|
|
if (player_inWater()) {
|
|
next_state = BS_77_SWIM_LOCKED;
|
|
}
|
|
if (func_802B3BB0()) {
|
|
next_state = bs_getIdleState();
|
|
}
|
|
if (map_get() == MAP_27_FP_FREEZEEZY_PEAK && miscFlag_isTrue(MISC_FLAG_14_LOSE_BOGGY_RACE)) {
|
|
next_state = func_8029CA94(next_state);
|
|
}
|
|
bs_setState(next_state);
|
|
}
|
|
|
|
|
|
void func_802B3EF4(void){
|
|
func_802B3CCC();
|
|
func_8029C748();
|
|
}
|