Files
banjo-kazooie/src/RBB/propellorctrl.c
Banjo Kazooie 2f858b790b label RBB files
2023-01-31 14:43:12 -06:00

69 lines
1.7 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
s32 pad_803912C0[2];
u8 __propellorCtrlState;
void __propellorCtrl_setState(s32 arg0){
static f32 __propellorTimer;
__propellorTimer = 0.0f;
if(arg0 == 1)
__propellorTimer = 6.5f;
if(arg0 == 2){
item_set(ITEM_3_PROPELLOR_TIMER, 3900 - 1);
item_set(ITEM_9_PROPELLOR, 1);
}
if(arg0 == 3 || arg0 == 4){
levelSpecificFlags_set(0x27, FALSE);
levelSpecificFlags_set(0x28, FALSE);
item_set(ITEM_9_PROPELLOR,0);
if(arg0 == 3 && !jiggyscore_isCollected(JIGGY_57_RBB_PROPELLOR)){
timedFunc_set_1(0.5f, (GenMethod_1)func_802FAD64, 3);
func_80324DBC(1.0f, 0xb9d, 4, NULL, NULL, NULL, NULL);
}
else{
func_802FAD64(3);
}
}//L8038FED4
__propellorCtrlState = arg0;
}
void rbb_propellorCtrl_stop(void){
if(__propellorCtrlState == 2)
__propellorCtrl_setState(4);
}
void rbb_propellorCtrl_reset(void){
__propellorCtrlState = 0;
__propellorCtrl_setState(0);
}
void rbb_propellorCtrl_start(void){
if(__propellorCtrlState == 2)
__propellorCtrl_setState(2);
}
void rbb_propellorCtrl_update(void){
extern f32 __propellorTimer;
if( __propellorCtrlState == 0)
if(levelSpecificFlags_get(0x27) && levelSpecificFlags_get(0x28))
__propellorCtrl_setState(1);
if(__propellorCtrlState == 1)
if(ml_timer_update(&__propellorTimer,time_getDelta()))
__propellorCtrl_setState(2);
if(__propellorCtrlState == 2)
if(item_getCount(ITEM_3_PROPELLOR_TIMER) == 0)
__propellorCtrl_setState(3);
if(__propellorCtrlState == 3)
__propellorCtrl_setState(0);
}