52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
#include <ultra64.h>
|
|
#include "functions.h"
|
|
#include "variables.h"
|
|
|
|
/* .bss */
|
|
bool bsTalkStayInState;
|
|
|
|
/* .code */
|
|
void bstalk_init(void){
|
|
AnimCtrl *player_anim_ctrl;
|
|
f32 yaw;
|
|
f32 plyr_pos[3];
|
|
f32 target_pos[3];
|
|
|
|
player_anim_ctrl = _player_getAnimCtrlPtr();
|
|
animctrl_reset(player_anim_ctrl);
|
|
func_8029C848(player_anim_ctrl);
|
|
animctrl_setPlaybackType(player_anim_ctrl, ANIMCTRL_LOOP);
|
|
func_802875AC(player_anim_ctrl, "bstalk.c", 0x38);
|
|
_player_getPosition(plyr_pos);
|
|
func_802949F8(target_pos);
|
|
func_80257F18(plyr_pos, target_pos, &yaw);
|
|
yaw_setIdeal(yaw);
|
|
func_80289F10(1);
|
|
func_802991A8(1);
|
|
func_8029957C(3);
|
|
func_802978DC(2);
|
|
func_80297970(0.0f);
|
|
bsTalkStayInState = TRUE;
|
|
}
|
|
|
|
void bstalk_update(void){
|
|
enum bs_e next_state = BS_0_NONE;
|
|
|
|
if (!bsTalkStayInState)
|
|
next_state = BS_1_IDLE;
|
|
bsTalkStayInState = FALSE;
|
|
bs_setState(next_state);
|
|
}
|
|
|
|
void bstalk_end(void){}
|
|
|
|
void bstalk_interrupt(void){
|
|
if(bs_getInterruptType() == BS_INTR_8){
|
|
bsTalkStayInState = TRUE;
|
|
func_8029A86C(2);
|
|
}
|
|
else{
|
|
func_80296608();
|
|
}
|
|
}
|