The first commit
This commit is contained in:
132
src/core2/bs/die.c
Normal file
132
src/core2/bs/die.c
Normal file
@@ -0,0 +1,132 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
/* .bss */
|
||||
f32 D_8037D410;
|
||||
s32 D_8037D414;
|
||||
|
||||
/* .code */
|
||||
int _bsdie_802ADE00(void){
|
||||
return func_8028B2E8();
|
||||
}
|
||||
|
||||
void _bsdie_802ADE20(void){
|
||||
f32 i;
|
||||
|
||||
for(i = 0.0f; i < 360.0f; i += 45.0f){
|
||||
func_80292900(i, 230.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void bsdie_init(void){
|
||||
AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
|
||||
f32 sp38;
|
||||
f32 sp2C[3];
|
||||
f32 sp20[3];
|
||||
|
||||
animctrl_reset(aCtrl);
|
||||
animctrl_setSmoothTransition(aCtrl, 0);
|
||||
animctrl_setIndex(aCtrl, ASSET_9_ANIM_BANJO_DIE);
|
||||
animctrl_setSubRange(aCtrl, 0.0f, 0.3356f);
|
||||
animctrl_setDuration(aCtrl, 2.0f);
|
||||
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
|
||||
func_802875AC(aCtrl, "bsdie.c", 0x7e);
|
||||
func_8029B930();
|
||||
func_8030E58C(SFX_36_BANJO_DOH, 1.0f);
|
||||
_player_getPosition(sp2C);
|
||||
func_80294980(sp20);
|
||||
func_80257F18(sp20, sp2C, &sp38);
|
||||
D_8037D410 = 250.0f;
|
||||
yaw_setIdeal(mlNormalizeAngle(sp38 + 180.0f));
|
||||
yaw_applyIdeal();
|
||||
func_80297970(D_8037D410);
|
||||
func_8029797C(sp38);
|
||||
func_802979AC(sp38, func_80297A64());
|
||||
func_80289F10(1);
|
||||
func_802991A8(1);
|
||||
func_8029957C(2);
|
||||
func_802978DC(3);
|
||||
player_setYVelocity(510.0f);
|
||||
gravity_set(-1400.0f);
|
||||
pitch_setAngVel(1000.0f, 12.0f);
|
||||
func_8029E070(1);
|
||||
func_8029151C(0xd);
|
||||
func_802BF2C0(30.0f);
|
||||
func_8029C984();
|
||||
func_8029E3C0(0,2.9f);
|
||||
D_8037D414 = 0;
|
||||
func_8028D5DC();
|
||||
func_80292E48();
|
||||
}
|
||||
|
||||
void bsdie_update(void){
|
||||
AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
|
||||
enum bs_e sp28 = 0;
|
||||
func_80297970(D_8037D410);
|
||||
func_80299628(0);
|
||||
switch(D_8037D414){
|
||||
case 0://L802AE0B8
|
||||
if(_bsdie_802ADE00()){
|
||||
animctrl_setSubRange(aCtrl, 0.0f, 1.0f);
|
||||
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
|
||||
player_setYVelocity(400.0f);
|
||||
func_80299DB8();
|
||||
FUNC_8030E624(SFX_39_BANJO_AYE_2, 1.0f, 18000);
|
||||
func_80250D94(1.0f, 1.0f, 0.4f);
|
||||
_bsdie_802ADE20();
|
||||
D_8037D414 = 1;
|
||||
}
|
||||
break;
|
||||
case 1://L802AE134
|
||||
if(_bsdie_802ADE00()){
|
||||
func_80299E00();
|
||||
FUNC_8030E624(SFX_38_BANJO_AYE_1, 1.0f, 18000);
|
||||
func_80250D94(1.0f, 0.5f, 0.4f);
|
||||
D_8037D414 = 2;
|
||||
}
|
||||
break;
|
||||
case 2://L802AE184
|
||||
D_8037D410 = max_f(D_8037D410 - 12.0f, 0.0f);
|
||||
if(140.0f < D_8037D410)
|
||||
func_802929F8();
|
||||
|
||||
if(animctrl_isAt(aCtrl, 0.6538f))
|
||||
animctrl_setDuration(aCtrl, 4.0f);
|
||||
|
||||
if(animctrl_isStopped(aCtrl)){
|
||||
D_8037D410 = 0.0f;
|
||||
D_8037D414 = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}//L802AE218
|
||||
if(func_8029E1A8(0))
|
||||
func_8029B890();
|
||||
|
||||
if( func_8029E270(0) != 0.0f
|
||||
&& func_80294574()
|
||||
&& ( D_8037D414
|
||||
|| ( animctrl_isStopped(aCtrl)
|
||||
&& ( player_getYPosition() < (func_80294500() - 150.0f))
|
||||
)
|
||||
)
|
||||
&& player_inWater()
|
||||
&& 100.0f < (func_80294500() - func_80294438())
|
||||
){
|
||||
sp28 = BS_54_SWIM_DIE;
|
||||
}
|
||||
|
||||
bs_setState(sp28);
|
||||
}
|
||||
|
||||
void bsdie_end(void){
|
||||
func_8024BD08(0);
|
||||
gravity_reset();
|
||||
func_8029E070(0);
|
||||
pitch_setIdeal(0.0f);
|
||||
roll_setIdeal(0.0f);
|
||||
func_80291548();
|
||||
func_80292EA4();
|
||||
}
|
Reference in New Issue
Block a user