label FP files
This commit is contained in:
105
src/GV/waterctrl.c
Normal file
105
src/GV/waterctrl.c
Normal file
@@ -0,0 +1,105 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
/* .bss */
|
||||
struct {
|
||||
u8 state;
|
||||
f32 unk4;
|
||||
}GV_D_80391B00;
|
||||
|
||||
/* .code */
|
||||
void func_80390880(void){
|
||||
void *tmp_v0;
|
||||
|
||||
tmp_v0 = func_8034C5AC(300);
|
||||
if(tmp_v0){
|
||||
func_8034E7B8(tmp_v0, -1460, 20.0f, 2, 20.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void __waterCtrl_setState(s32 arg0){
|
||||
void *tmp_v0;
|
||||
GV_D_80391B00.state = arg0;
|
||||
if(GV_D_80391B00.state == 2){
|
||||
func_80324E38(0.0f, 3);
|
||||
timed_setCameraToNode(0.0f, 0);
|
||||
timedFunc_set_0(3.0f, func_80390880);
|
||||
timed_setCameraToNode(3.0f, 1);
|
||||
func_80324E38(6.0f, 0);
|
||||
tmp_v0 = func_8034C528(400);
|
||||
if(tmp_v0){
|
||||
func_8030E760(SFX_3F6_UNKNOWN, 0.7f, 28000);
|
||||
func_8030E760(SFX_3F6_UNKNOWN, 0.9f, 29000);
|
||||
func_8030E760(SFX_3F6_UNKNOWN, 1.0f, 30000);
|
||||
func_8034DE60(tmp_v0, 0.0f, 400.0f, 2.5f, 1);
|
||||
}
|
||||
}
|
||||
|
||||
if(GV_D_80391B00.state == 3){
|
||||
levelSpecificFlags_set(6, TRUE);
|
||||
func_803228D8();
|
||||
func_803204E4(0xe, 1);
|
||||
func_802E4078(MAP_12_GV_GOBIS_VALLEY, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void gv_waterCtrl_end(void){}
|
||||
|
||||
void gv_waterCtrl_init(void){
|
||||
void *tmp_v0;
|
||||
void *tmp_v0_2;
|
||||
|
||||
|
||||
GV_D_80391B00.state = 0;
|
||||
if(map_get() != MAP_15_GV_WATER_PYRAMID) return;
|
||||
|
||||
if(jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID)){
|
||||
tmp_v0 = func_8034C528(400);
|
||||
if(tmp_v0)
|
||||
func_8034DE60(tmp_v0, 0.0f, 400.0f, 0.0f, 2);
|
||||
|
||||
tmp_v0_2 = func_8034C5AC(300);
|
||||
if(tmp_v0_2)
|
||||
func_8034E71C(tmp_v0_2, -1460, 0.0f);
|
||||
}
|
||||
else{
|
||||
GV_D_80391B00.unk4 = 0.0f;
|
||||
__waterCtrl_setState(1);
|
||||
}
|
||||
}
|
||||
|
||||
void gv_waterCtrl_update(void){
|
||||
f32 time_delta;
|
||||
void *tmp_v0;
|
||||
|
||||
time_delta = time_getDelta();
|
||||
|
||||
if(GV_D_80391B00.state == 0) return;
|
||||
|
||||
if(GV_D_80391B00.state == 1){
|
||||
if(0.0f < GV_D_80391B00.unk4){
|
||||
GV_D_80391B00.unk4 -= time_delta;
|
||||
if(GV_D_80391B00.unk4 <= 0.0f){
|
||||
__waterCtrl_setState(2);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID)){
|
||||
GV_D_80391B00.unk4 = 0.01f;
|
||||
}
|
||||
}
|
||||
}//L80390B34
|
||||
|
||||
if(GV_D_80391B00.state == 2){
|
||||
tmp_v0 = func_8034C528(0x190);
|
||||
if(tmp_v0 && func_8034DC78(tmp_v0) == 1){
|
||||
func_8030E760(SFX_7F_HEAVYDOOR_SLAM, 0.8f, 0x7fd0);
|
||||
func_8030E760(SFX_7F_HEAVYDOOR_SLAM, 0.9f, 0x7fc6);
|
||||
func_8030E760(SFX_7F_HEAVYDOOR_SLAM, 1.0f, 0x7fc6);
|
||||
func_8034E264(tmp_v0, 2);
|
||||
}
|
||||
if(timedFuncQueue_is_empty())
|
||||
__waterCtrl_setState(3);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user