69 lines
1.7 KiB
C
69 lines
1.7 KiB
C
#include <ultra64.h>
|
|
#include "functions.h"
|
|
#include "variables.h"
|
|
|
|
s32 pad_803912C0[2];
|
|
u8 __propellorCtrlState;
|
|
f32 __propellorTimer;
|
|
|
|
void __propellorCtrl_setState(s32 arg0){
|
|
f32* timerPtr = &__propellorTimer;
|
|
|
|
*timerPtr = 0.0f;
|
|
|
|
if(arg0 == 1) {
|
|
*timerPtr = 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, (GenFunction_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){
|
|
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);
|
|
}
|