Document core2/batimer.c functions

This commit is contained in:
banjo.decomp
2024-10-27 22:46:37 -05:00
parent 37ec5e39c8
commit aa181c3bd9
29 changed files with 231 additions and 197 deletions

View File

@@ -565,7 +565,7 @@ segments:
# - [0xF6B880, c, code_15F20] #DONE # - [0xF6B880, c, code_15F20] #DONE
# - [0xF6B970, c, code_16010] #DONE # - [0xF6B970, c, code_16010] #DONE
# - [0xF6C5C0, c, code_16C60] #DONE # - [0xF6C5C0, c, code_16C60] #DONE
# - [0xF6CB50, c, code_171F0] #DONE # - [0xF6CB50, c, batimer] #DONE
# - [0xF6CDB0, c, bs/ant] #DONE # - [0xF6CDB0, c, bs/ant] #DONE
# - [0xF6DEB0, c, bs/bBarge] #DONE # - [0xF6DEB0, c, bs/bBarge] #DONE
# - [0xF6E4F0, c, bs/bbuster] #DONE # - [0xF6E4F0, c, bs/bbuster] #DONE
@@ -1429,7 +1429,7 @@ segments:
# - [0x0106C980, .bss, code_15F20] # - [0x0106C980, .bss, code_15F20]
# - [0x0106C980, .bss, code_16010] # - [0x0106C980, .bss, code_16010]
# - [0x0106C980, .bss, code_16C60] # - [0x0106C980, .bss, code_16C60]
# - [0x0106C980, .bss, code_171F0] # - [0x0106C980, .bss, batimer]
# - [0x0106C980, .bss, bs/ant] # - [0x0106C980, .bss, bs/ant]
# - [0x0106C980, .bss, bs/bBarge] # - [0x0106C980, .bss, bs/bBarge]
# - [0x0106C980, .bss, bs/bbuster] # - [0x0106C980, .bss, bs/bbuster]

View File

@@ -565,7 +565,7 @@ segments:
- [0xF6B880, c, code_15F20] - [0xF6B880, c, code_15F20]
- [0xF6B970, c, code_16010] - [0xF6B970, c, code_16010]
- [0xF6C5C0, c, code_16C60] - [0xF6C5C0, c, code_16C60]
- [0xF6CB50, c, code_171F0] - [0xF6CB50, c, batimer]
- [0xF6CDB0, c, bs/ant] - [0xF6CDB0, c, bs/ant]
- [0xF6DEB0, c, bs/bBarge] - [0xF6DEB0, c, bs/bBarge]
- [0xF6E4F0, c, bs/bbuster] - [0xF6E4F0, c, bs/bbuster]
@@ -1427,7 +1427,7 @@ segments:
- [0x1048560, .bss, code_15F20] - [0x1048560, .bss, code_15F20]
- [0x1048560, .bss, code_16010] - [0x1048560, .bss, code_16010]
- [0x1048560, .bss, code_16C60] - [0x1048560, .bss, code_16C60]
- [0x1048560, .bss, code_171F0] - [0x1048560, .bss, batimer]
- [0x1048560, .bss, bs/ant] - [0x1048560, .bss, bs/ant]
- [0x1048560, .bss, bs/bBarge] - [0x1048560, .bss, bs/bBarge]
- [0x1048560, .bss, bs/bbuster] - [0x1048560, .bss, bs/bbuster]

16
include/core2/ba/timer.h Normal file
View File

@@ -0,0 +1,16 @@
#ifndef __BA_TIMER_H__
#define __BA_TIMER_H__
#include <ultra64.h>
void batimer_incrementBy(s32 id, f32 inc_value_sec);
int batimer_decrement(s32 id);
void batimer_increment(s32 id);
f32 batimer_get(s32 id);
int batimer_isAt(s32 id, f32 value_sec);
int batimer_isLessThan(s32 id, f32 value_sec);
int batimer_isGreaterThan(s32 id, f32 value_sec);
int batimer_isNonzero(s32 id);
int batimer_isZero(s32 id);
void batimer_set(s32 id, f32 value_sec);
#endif

View File

@@ -21,6 +21,8 @@
#include "enums.h" #include "enums.h"
#include "core2/ba/timer.h"
extern f32 fabsf(f32); extern f32 fabsf(f32);
#pragma intrinsic (fabsf) #pragma intrinsic (fabsf)
@@ -297,9 +299,6 @@ f32 func_8029DFD4(void);
void func_8029E090(bool, f32); void func_8029E090(bool, f32);
void func_8029E0C4(f32); void func_8029E0C4(f32);
void func_8029E0D0(f32); void func_8029E0D0(f32);
void func_8029E180(s32, f32);
void func_8029E3C0(s32, f32);
f32 func_8029E270(s32);
void func_802BD8A4(f32, f32, f32); void func_802BD8A4(f32, f32, f32);
f32 func_802BD8D4(void); f32 func_802BD8D4(void);
void func_802BE244(f32, f32); void func_802BE244(f32, f32);

60
src/core2/batimer.c Normal file
View File

@@ -0,0 +1,60 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
/* .bss */
struct {
f32 value[0x8];
f32 last[0x8];
} s_batimer;
/* .code*/
void batimer_incrementBy(s32 id, f32 inc_value_sec){
s_batimer.last[id] = s_batimer.value[id];
s_batimer.value[id] += inc_value_sec;
}
int batimer_decrement(s32 id){
s_batimer.last[id] = s_batimer.value[id];
if(0.0f == s_batimer.value[id]){
return 0;
}
s_batimer.value[id] = ml_max_f(0.0f, s_batimer.value[id] - time_getDelta());
return s_batimer.value[id] == 0.0f;
}
void batimer_increment(s32 id){
s_batimer.last[id] = s_batimer.value[id];
s_batimer.value[id] += time_getDelta();
}
f32 batimer_get(s32 id){
return s_batimer.value[id];
}
int batimer_isAt(s32 id, f32 value_sec){
return s_batimer.last[id] <= value_sec
&& value_sec < s_batimer.value[id];
}
int batimer_isLessThan(s32 id, f32 value_sec){
return s_batimer.value[id] < value_sec;
}
int batimer_isGreaterThan(s32 id, f32 value_sec){
return value_sec < s_batimer.value[id];
}
int batimer_isNonzero(s32 id){
return (0.0 != s_batimer.value[id]);
}
int batimer_isZero(s32 id){
return (0.0 == s_batimer.value[id]);
}
void batimer_set(s32 id, f32 value_sec){
s_batimer.last[id] = value_sec;
s_batimer.value[id] = value_sec;
}

View File

@@ -4,6 +4,7 @@
#include "core2/yaw.h" #include "core2/yaw.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
void func_80293D48(f32,f32); void func_80293D48(f32,f32);
@@ -401,7 +402,7 @@ void bsant_die_init(void){
bsant_substate = 0; bsant_substate = 0;
baMarker_collisionOff(); baMarker_collisionOff();
func_80292E48(); func_80292E48();
func_8029E3C0(0, 2.9f); batimer_set(0, 2.9f);
} }
void bsant_die_update(void){ void bsant_die_update(void){
@@ -433,7 +434,7 @@ void bsant_die_update(void){
break; break;
} }
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_8029B890(); func_8029B890();
bs_setState(0); bs_setState(0);

View File

@@ -2,11 +2,10 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
s32 func_8029E2E0(s32, f32);
void func_80292864(f32, f32); void func_80292864(f32, f32);
void func_8029E3C0(s32, f32);
/* .bss */ /* .bss */
@@ -23,9 +22,9 @@ s32 func_8029F4E0(Actor * arg0){
void func_8029F4F0(void){ void func_8029F4F0(void){
u8 val; u8 val;
f32 tmp_f; f32 tmp_f;
if(func_8029E1A8(2)){ if(batimer_decrement(2)){
func_8029AE74(0); func_8029AE74(0);
func_8029E3C0(2, 0.12f); batimer_set(2, 0.12f);
} }
if( (++D_8037D2A4) >= 3) if( (++D_8037D2A4) >= 3)
D_8037D2A4 = 0; D_8037D2A4 = 0;
@@ -79,7 +78,7 @@ void bsbarge_init(void){
miscFlag_clear(MISC_FLAG_A); miscFlag_clear(MISC_FLAG_A);
miscFlag_clear(MISC_FLAG_B); miscFlag_clear(MISC_FLAG_B);
miscFlag_clear(MISC_FLAG_C); miscFlag_clear(MISC_FLAG_C);
func_8029E3C0(2, 0.01f); batimer_set(2, 0.01f);
} }
@@ -105,12 +104,12 @@ void bsbarge_update(void){
}else{ }else{
D_8037D2A0 = 500.0f; D_8037D2A0 = 500.0f;
} }
func_8029E3C0(1, 0.01f); batimer_set(1, 0.01f);
D_8037D2A5 = 1; D_8037D2A5 = 1;
break; break;
case 1: case 1:
func_8029E1A8(1); batimer_decrement(1);
if(miscFlag_isFalse(MISC_FLAG_B) && func_8029E2E0(1, 0.1f)){ if(miscFlag_isFalse(MISC_FLAG_B) && batimer_isLessThan(1, 0.1f)){
if(miscFlag_isTrue(MISC_FLAG_C)){ if(miscFlag_isTrue(MISC_FLAG_C)){
func_8030E560(SFX_4_KAZOOIE_RUUUUUH, 30000); func_8030E560(SFX_4_KAZOOIE_RUUUUUH, 30000);
}else{ }else{
@@ -118,7 +117,7 @@ void bsbarge_update(void){
} }
miscFlag_set(MISC_FLAG_B); miscFlag_set(MISC_FLAG_B);
} }
if(!func_8029E384(1)) if(!batimer_isZero(1))
break; break;
animctrl_setDuration(plyrMvmnt, 1.0f); animctrl_setDuration(plyrMvmnt, 1.0f);
@@ -135,14 +134,14 @@ void bsbarge_update(void){
if(animctrl_isStopped(plyrMvmnt)){ if(animctrl_isStopped(plyrMvmnt)){
animctrl_setDuration(plyrMvmnt, 2.0f); animctrl_setDuration(plyrMvmnt, 2.0f);
baanim_setEnd(0.6f); baanim_setEnd(0.6f);
func_8029E3C0(0, 0.1f); batimer_set(0, 0.1f);
D_8037D2A5 = 3; D_8037D2A5 = 3;
} }
func_8029F4F0(); func_8029F4F0();
break; break;
case 3: case 3:
func_8029E1A8(0); batimer_decrement(0);
if(miscFlag_isFalse(MISC_FLAG_C) || func_8029E384(0)){ if(miscFlag_isFalse(MISC_FLAG_C) || batimer_isZero(0)){
D_8037D2A0 -= 80.0f; D_8037D2A0 -= 80.0f;
} }
baphysics_set_target_horizontal_velocity(D_8037D2A0); baphysics_set_target_horizontal_velocity(D_8037D2A0);

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
f32 func_802A2858(void); f32 func_802A2858(void);
@@ -31,7 +32,7 @@ void bsbflap_init(void) {
baphysics_set_gravity(D_80364A14); baphysics_set_gravity(D_80364A14);
func_8029E070(1); func_8029E070(1);
miscFlag_set(MISC_FLAG_12_HAS_FLAPPED); miscFlag_set(MISC_FLAG_12_HAS_FLAPPED);
func_8029E3C0(0, 2.5f); batimer_set(0, 2.5f);
D_8037D30C = sfxsource_createSfxsourceAndReturnIndex(); D_8037D30C = sfxsource_createSfxsourceAndReturnIndex();
func_80299BD4(); func_80299BD4();
D_8037D301 = 0; D_8037D301 = 0;
@@ -173,8 +174,8 @@ void bsbflap_update(void){
sp1c = BS_3D_FALL_TUMBLING; sp1c = BS_3D_FALL_TUMBLING;
break; break;
}//L802A2C94 }//L802A2C94
func_8029E1A8(0); batimer_decrement(0);
if(func_8029E384(0)) if(batimer_isZero(0))
sp1c = BS_2F_FALL; sp1c = BS_2F_FALL;
if(should_beak_bust()) if(should_beak_bust())

View File

@@ -4,6 +4,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/flap.h" #include "core2/ba/flap.h"
#include "core2/ba/timer.h"
extern void baModel_setYDisplacement(f32); extern void baModel_setYDisplacement(f32);
extern f32 func_8029B2D0(void); extern f32 func_8029B2D0(void);
@@ -577,7 +578,7 @@ void func_802A48B4(void) {
func_8029151C(0xD); func_8029151C(0xD);
ncDynamicCamD_func_802BF2C0(30.0f); ncDynamicCamD_func_802BF2C0(30.0f);
func_8029B930(); func_8029B930();
func_8029E3C0(0, 2.5f); batimer_set(0, 2.5f);
D_8037D344 = 2; D_8037D344 = 2;
} }
} else if (animctrl_isAt(sp18, 0.92f)) { } else if (animctrl_isAt(sp18, 0.92f)) {
@@ -601,7 +602,7 @@ void func_802A48B4(void) {
break; break;
case 2: case 2:
func_802A47E0(); func_802A47E0();
if (func_8029E1A8(0)) { if (batimer_decrement(0)) {
func_8029B890(); func_8029B890();
} }
break; break;

View File

@@ -5,6 +5,7 @@
#include "core2/statetimer.h" #include "core2/statetimer.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
/* .data */ /* .data */
@@ -88,7 +89,7 @@ void func_802A5404(void){
stateTimer_clear(STATE_TIMER_2_LONGLEG); stateTimer_clear(STATE_TIMER_2_LONGLEG);
func_803219F4(1); func_803219F4(1);
miscFlag_clear(MISC_FLAG_3); miscFlag_clear(MISC_FLAG_3);
func_8029E180(4, 0.5f); batimer_incrementBy(4, 0.5f);
func_802A531C(); func_802A531C();
} }

View File

@@ -4,12 +4,11 @@
#include "core2/ba/model.h" #include "core2/ba/model.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
extern f32 func_8029494C(void); extern f32 func_8029494C(void);
extern f32 func_8029B2D0(void); extern f32 func_8029B2D0(void);
extern bool func_8029E284(s32, f32);
extern bool func_8029E314(s32, f32);
/* .bss */ /* .bss */
f32 D_8037D390; f32 D_8037D390;
@@ -360,12 +359,12 @@ void func_802A7E2C(void) {
sp30 = yaw_get(); sp30 = yaw_get();
func_80256E24(sp24, sp34, sp30, 0.0f, 0.0f, 800.0f); func_80256E24(sp24, sp34, sp30, 0.0f, 0.0f, 800.0f);
baphysics_set_velocity(sp24); baphysics_set_velocity(sp24);
func_8029E3C0(1, 0.8f); batimer_set(1, 0.8f);
D_8037D396 = TRUE; D_8037D396 = TRUE;
} }
break; break;
case 1: case 1:
if (func_8029E1A8(1)) { if (batimer_decrement(1)) {
next_state = BS_2B_DIVE_IDLE; next_state = BS_2B_DIVE_IDLE;
} }
break; break;
@@ -403,8 +402,8 @@ void func_802A7F6C(void) {
roll_setIdeal(0.0f); roll_setIdeal(0.0f);
D_8037D396 = 0; D_8037D396 = 0;
baMarker_collisionOff(); baMarker_collisionOff();
func_8029E3C0(0, 0.0f); batimer_set(0, 0.0f);
func_8029E3C0(1, 0.0f); batimer_set(1, 0.0f);
func_802906A4(3); func_802906A4(3);
func_80299CF4(SFX_CA_BANJO_DROWNING_1, 1.0f, 24000); func_80299CF4(SFX_CA_BANJO_DROWNING_1, 1.0f, 24000);
} }
@@ -419,10 +418,10 @@ void func_802A8098(void) {
func_80256E24(sp40, -90.0f, 0.0f, 0.0f, 0.0f, 100.0f); func_80256E24(sp40, -90.0f, 0.0f, 0.0f, 0.0f, 100.0f);
baphysics_set_target_velocity(sp40); baphysics_set_target_velocity(sp40);
baphysics_set_velocity(sp40); baphysics_set_velocity(sp40);
func_8029E22C(1); batimer_increment(1);
if( func_8029E284(1, 0.2f) if( batimer_isAt(1, 0.2f)
|| func_8029E284(1, 0.8f) || batimer_isAt(1, 0.8f)
|| func_8029E284(1, 1.4f) || batimer_isAt(1, 1.4f)
) { ) {
func_80299CF4(SFX_CB_BANJO_DROWNING_2, 1.0f, 24000); func_80299CF4(SFX_CB_BANJO_DROWNING_2, 1.0f, 24000);
} }
@@ -435,27 +434,27 @@ void func_802A8098(void) {
particleEmitter_setParticleVelocityRange(p_ctrl, -60.0f, -50.0f, -60.0f, 60.0f, 100.0f, 60.0f); particleEmitter_setParticleVelocityRange(p_ctrl, -60.0f, -50.0f, -60.0f, 60.0f, 100.0f, 60.0f);
particleEmitter_emitN(p_ctrl, 1); particleEmitter_emitN(p_ctrl, 1);
} }
if (func_8029E270(1) < 1.8 && func_802A73BC() && D_8037D395) { if (batimer_get(1) < 1.8 && func_802A73BC() && D_8037D395) {
next_state = BS_2D_SWIM_IDLE; next_state = BS_2D_SWIM_IDLE;
} }
if (func_8029E314(1, 1.55f)) { if (batimer_isGreaterThan(1, 1.55f)) {
baphysics_set_vertical_velocity(-50.0f); baphysics_set_vertical_velocity(-50.0f);
} }
if (func_8029E284(1, 1.9f)) { if (batimer_isAt(1, 1.9f)) {
func_802914CC(0xD); func_802914CC(0xD);
ncDynamicCamD_func_802BF2C0(80.0f); ncDynamicCamD_func_802BF2C0(80.0f);
if (D_8037D394) { if (D_8037D394) {
func_8029E3C0(0, 0.5f); batimer_set(0, 0.5f);
} else { } else {
func_8029C984(); func_8029C984();
func_8029E3C0(0, 2.75f); batimer_set(0, 2.75f);
} }
} }
break; break;
case 1: case 1:
break; break;
} }
if (func_8029E1A8(0)) { if (batimer_decrement(0)) {
func_8029B890(); func_8029B890();
} }
bs_setState(next_state); bs_setState(next_state);

View File

@@ -3,9 +3,9 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
f32 func_8029B41C(void); f32 func_8029B41C(void);
void func_8029E3C0(s32, f32);
void func_80299628(s32); void func_80299628(s32);
void yaw_applyIdeal(void); void yaw_applyIdeal(void);
void ncDynamicCamD_func_802BF2C0(f32); void ncDynamicCamD_func_802BF2C0(f32);
@@ -426,7 +426,7 @@ void bsbeemain_die_init(void){
ncDynamicCamD_func_802BF2C0(30.0f); ncDynamicCamD_func_802BF2C0(30.0f);
func_8029C984(); func_8029C984();
func_8030E58C(SFX_36_BANJO_DOH, 1.8f); func_8030E58C(SFX_36_BANJO_DOH, 1.8f);
func_8029E3C0(0, 2.9f); batimer_set(0, 2.9f);
D_8037D2D4 = 0; D_8037D2D4 = 0;
} }
@@ -460,7 +460,7 @@ void func_802A1DD8(void){
} }
break; break;
}//L802A1EFC }//L802A1EFC
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_8029B890(); func_8029B890();
bs_setState(0); bs_setState(0);
@@ -523,12 +523,12 @@ void func_802A2098(void){
func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1); func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
func_8029151C(0xC); func_8029151C(0xC);
baMarker_collisionOff(); baMarker_collisionOff();
func_8029E3C0(0, 3.0f); batimer_set(0, 3.0f);
} }
void func_802A2130(void){ void func_802A2130(void){
s32 next = 0; s32 next = 0;
if(func_8029E1A8(0)){ if(batimer_decrement(0)){
next = BS_85_BEE_IDLE; next = BS_85_BEE_IDLE;
} }
bs_setState(next); bs_setState(next);

View File

@@ -4,6 +4,7 @@
#include "core2/statetimer.h" #include "core2/statetimer.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
int bscroc_inSet(enum bs_e state); int bscroc_inSet(enum bs_e state);
@@ -447,7 +448,7 @@ void bscroc_die_init(void){
ncDynamicCamD_func_802BF2C0(30.0f); ncDynamicCamD_func_802BF2C0(30.0f);
func_8029C984(); func_8029C984();
func_8030E58C(SFX_36_BANJO_DOH, 1.8f); func_8030E58C(SFX_36_BANJO_DOH, 1.8f);
func_8029E3C0(0, 2.9f); batimer_set(0, 2.9f);
D_8037D3EC = 0; D_8037D3EC = 0;
} }
@@ -483,7 +484,7 @@ void bscroc_die_update(void){
break; break;
}//L802ACECC }//L802ACECC
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_8029B890(); func_8029B890();
bs_setState(next_state); bs_setState(next_state);

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
/* .bss */ /* .bss */
f32 D_8037D400; f32 D_8037D400;
@@ -23,7 +24,7 @@ void func_802AD6FC(void){
void func_802AD728(void){ void func_802AD728(void){
baanim_playForDuration_onceStartingAt(ASSET_10C_ANIM_BSCROUCH_IDLE, 0.5f, 0.9999f); baanim_playForDuration_onceStartingAt(ASSET_10C_ANIM_BSCROUCH_IDLE, 0.5f, 0.9999f);
func_8029E3C0(2, 2.0f); batimer_set(2, 2.0f);
D_8037D404 = 1; D_8037D404 = 1;
} }
@@ -64,8 +65,8 @@ void bscrouch_init(void){
func_8029957C(7); func_8029957C(7);
func_8029932C(8.0f); func_8029932C(8.0f);
baphysics_set_type(BA_PHYSICS_LOCKED_ROTATION); baphysics_set_type(BA_PHYSICS_LOCKED_ROTATION);
func_8029E3C0(0, 0.7f); batimer_set(0, 0.7f);
func_8029E3C0(1, 0.2f); batimer_set(1, 0.2f);
baphysics_get_velocity(sp28); baphysics_get_velocity(sp28);
D_8037D400 = gu_sqrtf(sp28[0]*sp28[0] + sp28[2]*sp28[2]); D_8037D400 = gu_sqrtf(sp28[0]*sp28[0] + sp28[2]*sp28[2]);
if(140.0f < D_8037D400) if(140.0f < D_8037D400)
@@ -85,10 +86,10 @@ void bscrouch_update(void){
f32 pad; f32 pad;
f32 sp20; f32 sp20;
func_8029E1A8(0); batimer_decrement(0);
func_8029E1A8(1); batimer_decrement(1);
sp30 = ml_map_f(func_8029E270(0), 0.0f, 0.3f, 0.0f, D_8037D400); sp30 = ml_map_f(batimer_get(0), 0.0f, 0.3f, 0.0f, D_8037D400);
baphysics_set_target_horizontal_velocity(sp30); baphysics_set_target_horizontal_velocity(sp30);
if(220.0f < sp30) if(220.0f < sp30)
func_802929F8(); func_802929F8();
@@ -101,7 +102,7 @@ void bscrouch_update(void){
case 0://802ADA64 case 0://802ADA64
if(sp30 != 0.0f) if(sp30 != 0.0f)
break; break;
func_8029E3C0(2, 2.0f); batimer_set(2, 2.0f);
D_8037D404 = 1; D_8037D404 = 1;
break; break;
@@ -110,8 +111,8 @@ void bscrouch_update(void){
func_802AD6D0(); func_802AD6D0();
} }
else{ else{
func_8029E1A8(2); batimer_decrement(2);
if(func_8029E384(2)) if(batimer_isZero(2))
func_802AD6FC(); func_802AD6FC();
} }
break; break;
@@ -164,7 +165,7 @@ void bscrouch_update(void){
sp34 = BS_2F_FALL; sp34 = BS_2F_FALL;
sp34 = func_802ADCD4(sp34); sp34 = func_802ADCD4(sp34);
if(sp34 == BS_1_IDLE && func_8029E348(1)) if(sp34 == BS_1_IDLE && batimer_isNonzero(1))
sp34 = 0; sp34 = 0;
if(player_inWater()) if(player_inWater())

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
/* .bss */ /* .bss */
f32 D_8037D410; f32 D_8037D410;
@@ -56,7 +57,7 @@ void bsdie_init(void){
func_8029151C(0xd); func_8029151C(0xd);
ncDynamicCamD_func_802BF2C0(30.0f); ncDynamicCamD_func_802BF2C0(30.0f);
func_8029C984(); func_8029C984();
func_8029E3C0(0,2.9f); batimer_set(0,2.9f);
D_8037D414 = 0; D_8037D414 = 0;
baMarker_collisionOff(); baMarker_collisionOff();
func_80292E48(); func_80292E48();
@@ -104,10 +105,10 @@ void bsdie_update(void){
case 3: case 3:
break; break;
}//L802AE218 }//L802AE218
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_8029B890(); func_8029B890();
if( func_8029E270(0) != 0.0f if( batimer_get(0) != 0.0f
&& func_80294574() && func_80294574()
&& ( D_8037D414 && ( D_8037D414
|| ( animctrl_isStopped(aCtrl) || ( animctrl_isStopped(aCtrl)

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
enum bsdroneenter_state_e{ enum bsdroneenter_state_e{
@@ -26,18 +27,18 @@ u8 bsDroneEnterSubstate;
void __bsDroneEnter_setSubstate(enum bsdroneenter_state_e arg0) { void __bsDroneEnter_setSubstate(enum bsdroneenter_state_e arg0) {
switch (arg0) { switch (arg0) {
case 1: case 1:
func_8029E3C0(0, 0.2f); batimer_set(0, 0.2f);
break; break;
case 2: case 2:
func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000); func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER); func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
func_8029E3C0(0, 0.4f); batimer_set(0, 0.4f);
baModel_setEnvAlpha(0); baModel_setEnvAlpha(0);
baModel_updateModel(); baModel_updateModel();
break; break;
case 3: case 3:
comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000); comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000);
func_8029E3C0(0, 0.55f); batimer_set(0, 0.55f);
break; break;
} }
bsDroneEnterSubstate = arg0; bsDroneEnterSubstate = arg0;
@@ -126,20 +127,20 @@ void bsDroneEnter_update(void) {
switch (bsDroneEnterSubstate) { switch (bsDroneEnterSubstate) {
case BSDRONEENTER_SUBSTATE_1: case BSDRONEENTER_SUBSTATE_1:
func_802AE914(); func_802AE914();
if (func_8029E1A8(0)) { if (batimer_decrement(0)) {
__bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_2); __bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_2);
} }
break; break;
case BSDRONEENTER_SUBSTATE_2: case BSDRONEENTER_SUBSTATE_2:
func_802AE914(); func_802AE914();
sp20 = func_8029E1A8(0); sp20 = batimer_decrement(0);
baModel_setEnvAlpha((s32) ml_map_f(func_8029E270(0), 0.0f, 0.4f, 255.0f, 0.0f)); baModel_setEnvAlpha((s32) ml_map_f(batimer_get(0), 0.0f, 0.4f, 255.0f, 0.0f));
if (sp20) { if (sp20) {
__bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_3); __bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_3);
} }
break; break;
case BSDRONEENTER_SUBSTATE_3: case BSDRONEENTER_SUBSTATE_3:
if (func_8029E1A8(0)) { if (batimer_decrement(0)) {
next_state = bs_getIdleState(); next_state = bs_getIdleState();
} }
break; break;

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
/* .bss */ /* .bss */
struct { struct {
@@ -19,18 +20,18 @@ u8 D_8037D468;
void __bsDroneVanish_setSubstate(s32 next_state) { void __bsDroneVanish_setSubstate(s32 next_state) {
switch (next_state) { switch (next_state) {
case 1: case 1:
func_8029E3C0(0, 0.3f); batimer_set(0, 0.3f);
break; break;
case 2: case 2:
func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000); func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER); func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
func_8029E3C0(0, 0.4f); batimer_set(0, 0.4f);
break; break;
case 3: case 3:
gcpausemenu_returnToLair(); gcpausemenu_returnToLair();
baModel_setVisible(FALSE); baModel_setVisible(FALSE);
comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000); comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000);
func_8029E3C0(0, 2.0f); batimer_set(0, 2.0f);
break; break;
} }
D_8037D468 = next_state; D_8037D468 = next_state;
@@ -111,20 +112,20 @@ void bsDroneVanish_update(void) {
switch (D_8037D468) { switch (D_8037D468) {
case 1: case 1:
__bsDroneVanish_update(); __bsDroneVanish_update();
if (func_8029E1A8(0)) { if (batimer_decrement(0)) {
__bsDroneVanish_setSubstate(2); __bsDroneVanish_setSubstate(2);
} }
break; break;
case 2: case 2:
__bsDroneVanish_update(); __bsDroneVanish_update();
sp20 = func_8029E1A8(0); sp20 = batimer_decrement(0);
baModel_setEnvAlpha((s32) ml_map_f(func_8029E270(0), 0.0f, 0.4f, 0.0f, 255.0f)); baModel_setEnvAlpha((s32) ml_map_f(batimer_get(0), 0.0f, 0.4f, 0.0f, 255.0f));
if (sp20) { if (sp20) {
__bsDroneVanish_setSubstate(3); __bsDroneVanish_setSubstate(3);
} }
break; break;
case 3: case 3:
if (func_8029E1A8(0)) { if (batimer_decrement(0)) {
next_state = bs_getIdleState(); next_state = bs_getIdleState();
} }
break; break;

View File

@@ -3,6 +3,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
extern void player_setYPosition(f32); extern void player_setYPosition(f32);
@@ -260,21 +261,21 @@ static void __bsdronexform_setState(int next_state){
func_802AFBAC(0.04f); func_802AFBAC(0.04f);
func_802B01B0(0.05f); func_802B01B0(0.05f);
baphysics_set_type(BA_PHYSICS_FREEZE); baphysics_set_type(BA_PHYSICS_FREEZE);
func_8029E3C0(0, 2.8f); batimer_set(0, 2.8f);
FUNC_8030E624(SFX_17E_MUMBO_TRANSFORMATION_01, 1.0f, 15000); FUNC_8030E624(SFX_17E_MUMBO_TRANSFORMATION_01, 1.0f, 15000);
break; break;
case 2:// 802B02A8 case 2:// 802B02A8
func_8029E3C0(0, 0.5f); batimer_set(0, 0.5f);
baphysics_set_type(BA_PHYSICS_TRANSFORM); baphysics_set_type(BA_PHYSICS_TRANSFORM);
break; break;
case 3:// 802B02C4 case 3:// 802B02C4
func_8029E3C0(0, 0.05f); batimer_set(0, 0.05f);
break; break;
case 4:// 802B02DC case 4:// 802B02DC
func_8029E3C0(0, 0.8f); batimer_set(0, 0.8f);
break; break;
case 5:// 802B02F4 case 5:// 802B02F4
@@ -282,7 +283,7 @@ static void __bsdronexform_setState(int next_state){
sp24[1] += 30.0f; sp24[1] += 30.0f;
viewport_adjustPointDistance(sp24, 80.0f); viewport_adjustPointDistance(sp24, 80.0f);
func_802AFBB8(sp24); func_802AFBB8(sp24);
func_8029E3C0(0, 0.1f); batimer_set(0, 0.1f);
break; break;
case 6: // 802B033C case 6: // 802B033C
@@ -296,23 +297,23 @@ static void __bsdronexform_setState(int next_state){
baModel_updateModel(); //update player model baModel_updateModel(); //update player model
func_8029BD44(&sp34, &sp30); func_8029BD44(&sp34, &sp30);
baanim_playForDuration_loopSmooth(sp34, sp30); baanim_playForDuration_loopSmooth(sp34, sp30);
func_8029E3C0(0, 0.1f); batimer_set(0, 0.1f);
break; break;
case 7: // 802B03E4 case 7: // 802B03E4
func_8029E3C0(0, 0.8f); batimer_set(0, 0.8f);
break; break;
case 8: // 802B03FC case 8: // 802B03FC
if(D_8037D470.room_transformation == TRANSFORM_1_BANJO && D_8037D470.player_transformation == TRANSFORM_1_BANJO){ if(D_8037D470.room_transformation == TRANSFORM_1_BANJO && D_8037D470.player_transformation == TRANSFORM_1_BANJO){
func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 28000); func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 28000);
} }
func_8029E3C0(0, 1.0f); batimer_set(0, 1.0f);
break; break;
case 9:// 802B0438 case 9:// 802B0438
D_8037D470.unk1C = 0; D_8037D470.unk1C = 0;
func_8029E3C0(0, 0.7f); batimer_set(0, 0.7f);
baphysics_set_type(BA_PHYSICS_FREEZE); baphysics_set_type(BA_PHYSICS_FREEZE);
break; break;
} }
@@ -339,7 +340,7 @@ void bsdronexform_init(void){
} }
f32 func_802B051C(s32 arg0, f32 arg1, f32 arg2, f32 arg3){ f32 func_802B051C(s32 arg0, f32 arg1, f32 arg2, f32 arg3){
return ml_map_f(func_8029E270(arg0), arg1, 0.0f, arg2, arg3); return ml_map_f(batimer_get(arg0), arg1, 0.0f, arg2, arg3);
} }
void bsdronexform_update(void){ void bsdronexform_update(void){
@@ -350,7 +351,7 @@ void bsdronexform_update(void){
func_802B01C8(); func_802B01C8();
switch(D_8037D470.state){ switch(D_8037D470.state){
case 1: case 1:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
player_setYPosition(func_802B051C(0, 2.8f, 0.0f, 90.0f) + D_8037D470.unk2C); player_setYPosition(func_802B051C(0, 2.8f, 0.0f, 90.0f) + D_8037D470.unk2C);
func_802AFB94(func_802B051C(0, 2.8f, 0.28f, 1.0f)); func_802AFB94(func_802B051C(0, 2.8f, 0.28f, 1.0f));
func_802AFBA0(func_802B051C(0, 2.8f, 180.0f, 55.0f)); func_802AFBA0(func_802B051C(0, 2.8f, 180.0f, 55.0f));
@@ -369,40 +370,40 @@ void bsdronexform_update(void){
break; break;
case 2: case 2:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
func_802B01B0(func_802B051C(0, 0.5f, 0.4f, 0.6f)); func_802B01B0(func_802B051C(0, 0.5f, 0.4f, 0.6f));
if(sp24) if(sp24)
__bsdronexform_setState(3); __bsdronexform_setState(3);
break; break;
case 3: case 3:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
func_802B01BC(func_802B051C(0, 0.05f, 0.8f, 1.2f)); func_802B01BC(func_802B051C(0, 0.05f, 0.8f, 1.2f));
if(sp24) if(sp24)
__bsdronexform_setState(4); __bsdronexform_setState(4);
break; break;
case 4: case 4:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
func_802B01BC(func_802B051C(0, 0.8f, 1.2f, 0.09f)); func_802B01BC(func_802B051C(0, 0.8f, 1.2f, 0.09f));
if(sp24) if(sp24)
__bsdronexform_setState(5); __bsdronexform_setState(5);
break; break;
case 5: case 5:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
if(sp24) if(sp24)
__bsdronexform_setState(6); __bsdronexform_setState(6);
break; break;
case 6: case 6:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
if(sp24) if(sp24)
__bsdronexform_setState(7); __bsdronexform_setState(7);
break; break;
case 7: case 7:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
func_802B01BC(func_802B051C(0, 0.8f, 0.09f, 1.0f)); func_802B01BC(func_802B051C(0, 0.8f, 0.09f, 1.0f));
if(sp24) if(sp24)
__bsdronexform_setState(8); __bsdronexform_setState(8);
@@ -416,7 +417,7 @@ void bsdronexform_update(void){
(s32)func_802B051C(0, 1.0f, 80.0f, 255.0f), (s32)func_802B051C(0, 1.0f, 80.0f, 255.0f),
(s32)func_802B051C(0, 1.0f, 80.0f, 255.0f) (s32)func_802B051C(0, 1.0f, 80.0f, 255.0f)
); );
if(func_8029E1A8(0)){ if(batimer_decrement(0)){
if(player_getTransformation() == TRANSFORM_7_WISHWASHY){ if(player_getTransformation() == TRANSFORM_7_WISHWASHY){
bs_setState(0x33); bs_setState(0x33);
}else{ }else{
@@ -426,7 +427,7 @@ void bsdronexform_update(void){
break; break;
case 9: case 9:
sp24 = func_8029E1A8(0); sp24 = batimer_decrement(0);
player_setYPosition(func_802B051C(0, 0.7f, 90.0f, 0.0f) + D_8037D470.unk2C); player_setYPosition(func_802B051C(0, 0.7f, 90.0f, 0.0f) + D_8037D470.unk2C);
if(sp24) if(sp24)
bs_setState(bs_getIdleState()); bs_setState(bs_getIdleState());

View File

@@ -6,6 +6,7 @@
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
f32 func_80294438(void); f32 func_80294438(void);
void func_80299B58(f32, f32); void func_80299B58(f32, f32);
@@ -390,27 +391,27 @@ void bsjump_tumble_init(void){
func_8029C7F4(1,1,3, BA_PHYSICS_AIRBORN); func_8029C7F4(1,1,3, BA_PHYSICS_AIRBORN);
baModel_setYDisplacement(60.0f); baModel_setYDisplacement(60.0f);
if(bafalldamage_get_state() == 1){ if(bafalldamage_get_state() == 1){
func_8029E3C0(0, 0.5f); batimer_set(0, 0.5f);
func_8029E3C0(1, 0.41f); batimer_set(1, 0.41f);
func_80299CF4(SFX_52_BANJO_YAH_OH, 1.0f, 22000); func_80299CF4(SFX_52_BANJO_YAH_OH, 1.0f, 22000);
}else{ }else{
func_8029E3C0(0, 0.0f); batimer_set(0, 0.0f);
func_8029E3C0(1, 0.01f); batimer_set(1, 0.01f);
} }
D_8037D4C0 = 0; D_8037D4C0 = 0;
} }
void bsjump_tumble_update(void){ void bsjump_tumble_update(void){
enum bs_e sp1C = 0; enum bs_e sp1C = 0;
if(func_8029E1A8(1)) if(batimer_decrement(1))
func_80299CF4(SFX_63_BANJO_UWAAAAOOH, 1.0f, 32000); func_80299CF4(SFX_63_BANJO_UWAAAAOOH, 1.0f, 32000);
func_8029E1A8(0); batimer_decrement(0);
func_802B6FA8(); func_802B6FA8();
if(func_8029E384(1)){ if(batimer_isZero(1)){
pitch_setIdeal(pitch_getIdeal() + 20.0f); pitch_setIdeal(pitch_getIdeal() + 20.0f);
} }
if(func_8029E348(0)){ if(batimer_isNonzero(0)){
if(should_feathery_flap()) if(should_feathery_flap())
sp1C = BS_BFLAP; sp1C = BS_BFLAP;

View File

@@ -309,7 +309,7 @@ void func_802B2BF0(void) {
baanim_playForDuration_loop(ASSET_A0_ANIM_BSPUMPKIN_WALK, 0.8f); baanim_playForDuration_loop(ASSET_A0_ANIM_BSPUMPKIN_WALK, 0.8f);
func_8029C7F4(1, 1, 2, BA_PHYSICS_FREEZE); func_8029C7F4(1, 1, 2, BA_PHYSICS_FREEZE);
func_80294378(6); func_80294378(6);
func_8029E3C0(0, 0.0f); batimer_set(0, 0.0f);
} }
void func_802B2C58(void) { void func_802B2C58(void) {
@@ -318,8 +318,8 @@ void func_802B2C58(void) {
f32 sp34; f32 sp34;
f32 sp28[3]; f32 sp28[3];
func_8029E22C(0); batimer_increment(0);
sp34 = func_8029E270(0); sp34 = batimer_get(0);
sp38 = yaw_getIdeal(); sp38 = yaw_getIdeal();
sp3C = ml_map_f(sp34, 0.0f, 2.3f, 0.0f, 45.0f); sp3C = ml_map_f(sp34, 0.0f, 2.3f, 0.0f, 45.0f);
yaw_setIdeal(mlNormalizeAngle(sp38 + sp3C)); yaw_setIdeal(mlNormalizeAngle(sp38 + sp3C));
@@ -459,7 +459,7 @@ void bspumpkin_die_init(void) {
func_8029C984(); func_8029C984();
baMarker_collisionOff(); baMarker_collisionOff();
func_80292E48(); func_80292E48();
func_8029E3C0(1, 2.9f); batimer_set(1, 2.9f);
D_8037D4E0 = 0; D_8037D4E0 = 0;
} }
@@ -516,7 +516,7 @@ void bspumpkin_die_update(void){
break; break;
} }
if (func_8029E1A8(1) != 0) { if (batimer_decrement(1) != 0) {
func_8029B890(); func_8029B890();
} }
bs_setState(0); bs_setState(0);

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
extern f32 func_80296548(void); extern f32 func_80296548(void);
extern f32 func_8029653C(void); extern f32 func_8029653C(void);
@@ -50,7 +51,7 @@ void func_802B360C(void) {
sp44[2] /= sp24; sp44[2] /= sp24;
sp44[1] = sp20; sp44[1] = sp20;
baphysics_set_velocity(sp44); baphysics_set_velocity(sp44);
func_8029E3C0(6, sp24); batimer_set(6, sp24);
} else { } else {
func_802B35D0(0); func_802B35D0(0);
func_80298760(sp1C); func_80298760(sp1C);
@@ -72,7 +73,7 @@ void func_802B37DC(void) {
f32 velocity[3]; f32 velocity[3];
if (D_8037D500 != 0) { if (D_8037D500 != 0) {
if ((D_8037D500 == 1) && func_8029E1A8(6)) { if ((D_8037D500 == 1) && batimer_decrement(6)) {
baphysics_get_velocity(velocity); baphysics_get_velocity(velocity);
velocity[0] = 0.0f; velocity[0] = 0.0f;
velocity[2] = 0.0f; velocity[2] = 0.0f;
@@ -103,7 +104,7 @@ void func_802B3868(void) {
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE);
animctrl_start(anim_ctrl, "bsrebound.c", 0xC6); animctrl_start(anim_ctrl, "bsrebound.c", 0xC6);
func_8030E58C(SFX_56_BANJO_HUI, 1.0f); func_8030E58C(SFX_56_BANJO_HUI, 1.0f);
func_8029E3C0(0, 1.5f); batimer_set(0, 1.5f);
baMarker_collisionOff(); baMarker_collisionOff();
} }
@@ -114,7 +115,7 @@ void func_802B3954(void) {
next_state = 0; next_state = 0;
anim_ctrl = baanim_getAnimCtrlPtr(); anim_ctrl = baanim_getAnimCtrlPtr();
if (func_8029E1A8(0) && map_get() == MAP_93_GL_DINGPOT) { if (batimer_decrement(0) && map_get() == MAP_93_GL_DINGPOT) {
baMarker_collisionOn(); baMarker_collisionOn();
} }
func_802B37DC(); func_802B37DC();

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
void func_80292E80(s32, f32); void func_80292E80(s32, f32);
@@ -60,11 +61,11 @@ void func_802B63F8(void){
comusic_playTrack(COMUSIC_3C_MINIGAME_LOSS); comusic_playTrack(COMUSIC_3C_MINIGAME_LOSS);
core1_ce60_incOrDecCounter(FALSE); core1_ce60_incOrDecCounter(FALSE);
baMarker_collisionOff(); baMarker_collisionOff();
func_8029E3C0(0, 2.9f); batimer_set(0, 2.9f);
} }
void func_802B64D0(void){ void func_802B64D0(void){
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_8029B6F0(); func_8029B6F0();
} }

View File

@@ -3,6 +3,8 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
/* .bss */ /* .bss */
f32 D_8037D5A0; f32 D_8037D5A0;
u8 D_8037D5A4; u8 D_8037D5A4;
@@ -32,7 +34,7 @@ void bstwirl_init(void){
baphysics_set_target_horizontal_velocity(600.0f); baphysics_set_target_horizontal_velocity(600.0f);
func_80299CF4(SFX_32_BANJO_EGHEE, 1.0f, 0x6590); func_80299CF4(SFX_32_BANJO_EGHEE, 1.0f, 0x6590);
_bstwirlHitboxActive = TRUE; _bstwirlHitboxActive = TRUE;
func_8029E3C0(0, 0.01f); batimer_set(0, 0.01f);
D_8037D5A4 = 0; D_8037D5A4 = 0;
} }
@@ -48,9 +50,9 @@ void bstwirl_update(void){
D_8037D5A4 = 2; D_8037D5A4 = 2;
break; break;
case 2: case 2:
if(func_8029E1A8(0)){ if(batimer_decrement(0)){
func_8029AE74(0); func_8029AE74(0);
func_8029E3C0(0, 0.12f); batimer_set(0, 0.12f);
} }
if(animctrl_isAt(aCtrl, 0.8011f)){ if(animctrl_isAt(aCtrl, 0.8011f)){
animctrl_setDuration(aCtrl, 2.5f); animctrl_setDuration(aCtrl, 2.5f);

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/anim.h" #include "core2/ba/anim.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
extern void func_8029AD68(f32, s32); extern void func_8029AD68(f32, s32);
@@ -470,7 +471,7 @@ void bswalrus_die_init(void){
comusic_playTrack(0x1A); comusic_playTrack(0x1A);
baMarker_collisionOff(); baMarker_collisionOff();
func_80292E48(); func_80292E48();
func_8029E3C0(0, 1.5f); batimer_set(0, 1.5f);
func_802B8110(); func_802B8110();
D_8037D5C8 = 0; D_8037D5C8 = 0;
} }
@@ -500,7 +501,7 @@ void bswalrus_die_update(void){
break; break;
}//L802B8FE0 }//L802B8FE0
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_8029B890(); func_8029B890();
bs_setState(next_state); bs_setState(next_state);
@@ -733,7 +734,7 @@ void bswalrus_timeout_init(void) {
comusic_playTrack(COMUSIC_3C_MINIGAME_LOSS); comusic_playTrack(COMUSIC_3C_MINIGAME_LOSS);
core1_ce60_incOrDecCounter(FALSE); core1_ce60_incOrDecCounter(FALSE);
baMarker_collisionOff(); baMarker_collisionOff();
func_8029E3C0(0, 2.9f); batimer_set(0, 2.9f);
func_802B813C(); func_802B813C();
func_80292E48(); func_80292E48();
} }
@@ -741,7 +742,7 @@ void bswalrus_timeout_init(void) {
void func_802B9830(void) { void func_802B9830(void) {
yaw_setIdeal(func_8029B41C() + 35.0f); yaw_setIdeal(func_8029B41C() + 35.0f);
func_80299628(0); func_80299628(0);
if (func_8029E1A8(0) != 0) { if (batimer_decrement(0) != 0) {
func_8029B6F0(); func_8029B6F0();
} }
} }

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
/* .bss */ /* .bss */
u8 D_8037D5D0; u8 D_8037D5D0;
@@ -23,18 +24,18 @@ void func_802B9980(s32 arg0){
baphysics_set_vertical_velocity(300.0f); baphysics_set_vertical_velocity(300.0f);
break; break;
case 3: //L802B9A20 case 3: //L802B9A20
func_8029E3C0(0, 0.01f); batimer_set(0, 0.01f);
break; break;
case 4: //L802B9A38 case 4: //L802B9A38
FUNC_8030E624(SFX_3EB_UNKNOWN, 0.7f, 25000); FUNC_8030E624(SFX_3EB_UNKNOWN, 0.7f, 25000);
func_8029E3C0(0, 0.25f); batimer_set(0, 0.25f);
break; break;
case 5: //L802B9A58 case 5: //L802B9A58
func_8030E58C(SFX_D0_GRIMLET_SQUEAK, 0.9f); func_8030E58C(SFX_D0_GRIMLET_SQUEAK, 0.9f);
animctrl_setDuration(plyr_anim, 2.2f); animctrl_setDuration(plyr_anim, 2.2f);
break; break;
case 6: //L802B9A84 case 6: //L802B9A84
func_8029E3C0(0, 0.01f); batimer_set(0, 0.01f);
case 0: //L802B9A94 case 0: //L802B9A94
break; break;
} }
@@ -70,11 +71,11 @@ void func_802B9B14(void){
func_802B9980(3); func_802B9980(3);
break; break;
case 3: // L802B9BA8 case 3: // L802B9BA8
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_802B9980(4); func_802B9980(4);
break; break;
case 4: // L802B9BC8 case 4: // L802B9BC8
if(func_8029E1A8(0)) if(batimer_decrement(0))
func_802B9980(5); func_802B9980(5);
break; break;
case 5: // L802B9BE8 case 5: // L802B9BE8
@@ -86,12 +87,12 @@ void func_802B9B14(void){
} }
break; break;
case 6: // L802B9C20 case 6: // L802B9C20
if(func_8029E1A8(0)){ if(batimer_decrement(0)){
sp18 = func_802F9AA8(SFX_12B_BOILING_AND_BUBBLING); sp18 = func_802F9AA8(SFX_12B_BOILING_AND_BUBBLING);
func_802F9DB8(sp18, 1.0f, 1.2f, 0.0f); func_802F9DB8(sp18, 1.0f, 1.2f, 0.0f);
func_802F9F80(sp18, 0.05f, 0.05 + randf()*0.4, 0.1f); func_802F9F80(sp18, 0.05f, 0.05 + randf()*0.4, 0.1f);
func_802FA060(sp18, 28000, 32000, 0.0f); func_802FA060(sp18, 28000, 32000, 0.0f);
func_8029E3C0(0, 0.8 + randf()*0.7); batimer_set(0, 0.8 + randf()*0.7);
} }
break; break;
} }

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/timer.h"
#include "core2/statetimer.h" #include "core2/statetimer.h"
/* .bss */ /* .bss */
@@ -261,7 +262,7 @@ void func_8029D968(void){
}//L8029DA18 }//L8029DA18
sp24 = func_8029D7B4(); sp24 = func_8029D7B4();
func_8029E1A8(4); batimer_decrement(4);
if(sp24){ if(sp24){
if(map_get() == MAP_8E_GL_FURNACE_FUN){ if(map_get() == MAP_8E_GL_FURNACE_FUN){
if(bs_checkInterrupt(BS_INTR_13)){ if(bs_checkInterrupt(BS_INTR_13)){
@@ -270,8 +271,8 @@ void func_8029D968(void){
} }
else{//L8029DA6C else{//L8029DA6C
if(func_8029E384(4)){ if(batimer_isZero(4)){
func_8029E3C0(4, 4.0f); batimer_set(4, 4.0f);
if(func_8028F504(0xD)){ if(func_8028F504(0xD)){
func_8029D230(); func_8029D230();
rumbleManager_80250D94(1.0f, 0.5f, 0.4f); rumbleManager_80250D94(1.0f, 0.5f, 0.4f);

View File

@@ -1,59 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
/* .bss */
struct {
f32 unk0[0x8];
f32 unk20[0x8];
} D_8037D250;
/* .code*/
void func_8029E180(s32 arg0, f32 arg1){
D_8037D250.unk20[arg0] = D_8037D250.unk0[arg0];
D_8037D250.unk0[arg0] += arg1;
}
int func_8029E1A8(s32 arg0){
D_8037D250.unk20[arg0] = D_8037D250.unk0[arg0];
if(0.0f == D_8037D250.unk0[arg0]){
return 0;
}
D_8037D250.unk0[arg0] = ml_max_f(0.0f, D_8037D250.unk0[arg0] - time_getDelta());
return D_8037D250.unk0[arg0] == 0.0f;
}
void func_8029E22C(s32 arg0){
D_8037D250.unk20[arg0] = D_8037D250.unk0[arg0];
D_8037D250.unk0[arg0] += time_getDelta();
}
f32 func_8029E270(s32 arg0){
return D_8037D250.unk0[arg0];
}
int func_8029E284(s32 arg0, f32 arg1){
return D_8037D250.unk20[arg0] <= arg1
&& arg1 < D_8037D250.unk0[arg0];
}
int func_8029E2E0(s32 arg0, f32 arg1){
return D_8037D250.unk0[arg0] < arg1;
}
int func_8029E314(s32 arg0, f32 arg1){
return arg1 < D_8037D250.unk0[arg0];
}
int func_8029E348(s32 arg0){
return (0.0 != D_8037D250.unk0[arg0]);
}
int func_8029E384(s32 arg0){
return (0.0 == D_8037D250.unk0[arg0]);
}
void func_8029E3C0(s32 arg0, f32 arg1){
D_8037D250.unk20[arg0] = arg1;
D_8037D250.unk0[arg0] = arg1;
}

View File

@@ -1,6 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/timer.h"
void func_80291488(s32 arg0); void func_80291488(s32 arg0);
void func_802914CC(s32 arg0); void func_802914CC(s32 arg0);
@@ -31,7 +32,7 @@ void func_80290B6C(void){
D_8037C062 = 0; D_8037C062 = 0;
func_80291488(2); func_80291488(2);
func_80290B60(2); func_80290B60(2);
func_8029E3C0(7, 0.5f); batimer_set(7, 0.5f);
} }
void func_80290BC0(s32 arg0){ void func_80290BC0(s32 arg0){
@@ -119,7 +120,7 @@ int func_80290E8C(void){
void func_80290F14(void){ void func_80290F14(void){
if( !func_80298850() if( !func_80298850()
&& func_8028ECAC() != 4 && func_8028ECAC() != 4
&& func_8029E270(7) == 0.0f && batimer_get(7) == 0.0f
&& should_zoom_out_camera() && should_zoom_out_camera()
){ ){
switch(D_8037C061){ switch(D_8037C061){
@@ -142,7 +143,7 @@ void func_80290F14(void){
func_80290B60(1); func_80290B60(1);
break; break;
} }
func_8029E3C0(0x7, 0.4f); batimer_set(0x7, 0.4f);
} }
} }
@@ -239,7 +240,7 @@ void func_80291328(void){
/* camera update */ /* camera update */
void cameraMode_update(void){ void cameraMode_update(void){
func_8029E1A8(7); batimer_decrement(7);
func_80290298(); func_80290298();
func_8029028C(0); func_8029028C(0);
switch(D_8037C062){ switch(D_8037C062){

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/physics.h" #include "core2/ba/physics.h"
#include "core2/ba/timer.h"
void codeA960_forceLoadzone(s32); void codeA960_forceLoadzone(s32);
@@ -17,7 +18,7 @@ void codeA960_forceLoadzone(s32 arg0){
if(!isLoadzoneFlagSet()){ if(!isLoadzoneFlagSet()){
miscFlag_set(MISC_FLAG_15_LOADZONE); miscFlag_set(MISC_FLAG_15_LOADZONE);
if(arg0){ if(arg0){
func_8029E3C0(5, 2.0f); batimer_set(5, 2.0f);
func_8029C984(); func_8029C984();
bs_setState(BS_5A_LOADZONE); bs_setState(BS_5A_LOADZONE);
baModel_setVisible(FALSE); baModel_setVisible(FALSE);
@@ -28,7 +29,7 @@ void codeA960_forceLoadzone(s32 arg0){
} }
void func_802919A0(void){ void func_802919A0(void){
if(isLoadzoneFlagSet() && func_8029E1A8(5)){ if(isLoadzoneFlagSet() && batimer_decrement(5)){
func_8029B890(); func_8029B890();
codeA960_forceLoadzone(0); codeA960_forceLoadzone(0);
} }