179 lines
4.1 KiB
C
179 lines
4.1 KiB
C
#include <ultra64.h>
|
|
#include "functions.h"
|
|
#include "variables.h"
|
|
#include "core2/ba/physics.h"
|
|
|
|
extern void func_802F494C(void *, f32);
|
|
extern void func_802F4884(void *, s32, f32);
|
|
extern f32 func_80294500(void);
|
|
|
|
|
|
void func_8029AE74(s32 arg0);
|
|
void func_8029AEE4(s32 arg0);
|
|
|
|
/* .bss */
|
|
Struct5Ds *D_8037D190;
|
|
u8 D_8037D194;
|
|
|
|
/* .code */
|
|
void func_8029A990(void){
|
|
f32 plyr_pos[3];
|
|
ParticleEmitter *pCtrl;
|
|
|
|
if(map_get() == MAP_2C_MMM_BATHROOM)
|
|
func_8029C304(0);
|
|
else
|
|
func_8029C304(1);
|
|
|
|
_player_getPosition(plyr_pos);
|
|
plyr_pos[1] = func_80294500();
|
|
pCtrl = func_802F4094(plyr_pos, 25.0f);
|
|
particleEmitter_setParticleVelocityRange(pCtrl,
|
|
-350.0f, 300.0f, -350.0f,
|
|
350.0f, 500.0f, 350.0f
|
|
);
|
|
particleEmitter_emitN(pCtrl, 10);
|
|
}
|
|
|
|
void func_8029AA3C(void){
|
|
f32 sp34[3];
|
|
f32 sp30;
|
|
ParticleEmitter *pCtrl;
|
|
if(map_get() == MAP_2C_MMM_BATHROOM)
|
|
func_8029C304(0);
|
|
else
|
|
func_8029C304(2);
|
|
|
|
sp30 = ml_map_f(baphysics_get_horizontal_velocity(), 0.0f, 500.0f, 70.0f, 250.0f);
|
|
func_8028E9C4(D_8037D194, sp34);
|
|
sp34[1] = func_80294500();
|
|
pCtrl = func_802F4094(sp34, 8.0f);
|
|
particleEmitter_setParticleVelocityRange(pCtrl,
|
|
-sp30, 300.0f, -sp30,
|
|
sp30, 350.0f,sp30
|
|
);
|
|
particleEmitter_emitN(pCtrl, 5);
|
|
}
|
|
|
|
void func_8029AB14(s32 arg0, s32 arg1){
|
|
int sp24 = (arg1 == 4) || (arg1 == 0xb);
|
|
int sp20 = player_inWater();
|
|
if(sp24){
|
|
func_8029AA3C();
|
|
}
|
|
|
|
switch(player_getTransformation()){
|
|
case TRANSFORM_3_PUMPKIN: //L8029AB9C
|
|
if(arg1 == 7){
|
|
func_802F4900(arg0, arg1);
|
|
}
|
|
if(sp24 || sp20){
|
|
func_802F4900(arg0, 0xe);
|
|
}
|
|
else{
|
|
func_802F4900(arg0, 0xd);
|
|
}
|
|
break;
|
|
case TRANSFORM_4_WALRUS://L8029ABEC
|
|
if(sp24){
|
|
func_802F4900(arg0, 0x4);
|
|
}
|
|
else if(sp20){
|
|
func_802F4900(arg0, 0xf);
|
|
}
|
|
else{
|
|
func_802F4900(arg0, 0xd);
|
|
}
|
|
break;
|
|
default: //L8029AC28
|
|
break;
|
|
}
|
|
}
|
|
|
|
void func_8029AC34(s32 arg0, s32 arg1){
|
|
int sp1C;
|
|
sp1C = (arg1 == 4) || (arg1 == 0xb || player_inWater());
|
|
if(sp1C){
|
|
func_8029A990();
|
|
}
|
|
|
|
switch(player_getTransformation()){
|
|
case TRANSFORM_3_PUMPKIN:
|
|
case TRANSFORM_4_WALRUS:
|
|
case TRANSFORM_5_CROC:
|
|
if(sp1C)
|
|
FUNC_8030E624(SFX_10_BANJO_LANDING_07, 0.9f, 13000);
|
|
else
|
|
FUNC_8030E624(SFX_2F_ORANGE_SPLAT, 1.4f, 8000);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void func_8029ACD4(void){
|
|
f32 plyr_pos[3];
|
|
|
|
_player_getPosition(plyr_pos);
|
|
func_802F4894(D_8037D190, plyr_pos);
|
|
func_802F4884( D_8037D190, func_80294660(), func_80294500());
|
|
}
|
|
|
|
void func_8029AD28(f32 arg0, s32 arg1){
|
|
AnimCtrl *plyr_animCtrl = baanim_getAnimCtrlPtr();
|
|
if(anctrl_isAt(plyr_animCtrl, arg0)){
|
|
func_8029AE74(arg1);
|
|
}
|
|
}
|
|
|
|
|
|
void func_8029AD68(f32 arg0, s32 arg1){
|
|
AnimCtrl *plyr_animCtrl = baanim_getAnimCtrlPtr();
|
|
if(anctrl_isAt(plyr_animCtrl, arg0)){
|
|
func_8029AEE4(arg1);
|
|
}
|
|
}
|
|
|
|
void func_8029ADA8(void){
|
|
func_802F4798(D_8037D190);
|
|
}
|
|
|
|
void func_8029ADCC(void){
|
|
D_8037D190 = func_802F47D0();
|
|
func_802F487C(D_8037D190, func_8029AC34);
|
|
func_802F48B4(D_8037D190, func_8029AB14);
|
|
}
|
|
|
|
void func_8029AE1C(void){
|
|
func_8029ACD4();
|
|
func_802F48BC(D_8037D190);
|
|
}
|
|
|
|
void func_8029AE48(void){
|
|
func_8029ACD4();
|
|
func_802F48E0(D_8037D190);
|
|
}
|
|
|
|
void func_8029AE74(s32 arg0){
|
|
s32 tmp_v0;
|
|
func_8029ACD4();
|
|
D_8037D194 = arg0;
|
|
tmp_v0 = func_8028ECAC();
|
|
if(tmp_v0 == BSGROUP_6_TURBO_TALON_TRAINERS || tmp_v0 == BSGROUP_8_TROT || tmp_v0 == BSGROUP_9_LONG_LEG){
|
|
func_802F494C(D_8037D190, 0.2f);
|
|
}
|
|
else{
|
|
func_802F4924(D_8037D190);
|
|
}
|
|
}
|
|
|
|
void func_8029AEE4(s32 arg0){
|
|
func_8029ACD4();
|
|
D_8037D194 = arg0;
|
|
func_802F4978(D_8037D190);
|
|
}
|
|
|
|
void func_8029AF1C(void){
|
|
D_8037D190 = func_802F499C(D_8037D190);
|
|
}
|