summaryrefslogtreecommitdiff
path: root/src/Z2AudioLib/Z2EnvSeMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Z2AudioLib/Z2EnvSeMgr.cpp')
-rw-r--r--src/Z2AudioLib/Z2EnvSeMgr.cpp754
1 files changed, 454 insertions, 300 deletions
diff --git a/src/Z2AudioLib/Z2EnvSeMgr.cpp b/src/Z2AudioLib/Z2EnvSeMgr.cpp
index f996afc50a..11917dda9c 100644
--- a/src/Z2AudioLib/Z2EnvSeMgr.cpp
+++ b/src/Z2AudioLib/Z2EnvSeMgr.cpp
@@ -1,23 +1,98 @@
-//
-// Generated By: dol2asm
-// Translation Unit: Z2EnvSeMgr
-//
-
#include "Z2AudioLib/Z2EnvSeMgr.h"
#include "Z2AudioLib/Z2Calc.h"
#include "JSystem/JAudio2/JASCalc.h"
-#include "Z2AudioLib/Z2Creature.h"
#include "d/d_save.h"
#include "d/d_com_inf_game.h"
#ifdef DEBUG
-// Should be in data section
-static char sSpotName[144] = {0};
+static const char* sSpotName[] = {
+ "F_SP00",
+ "F_SP103",
+ "R_SP01",
+ "F_SP104",
+ "R_SP107",
+ "F_SP108",
+ "R_SP108",
+ "F_SP117",
+ "F_SP109",
+ "R_SP109",
+ "R_SP209",
+ "F_SP110",
+ "R_SP110",
+ "F_SP111",
+ "F_SP128",
+ "R_SP128",
+ "F_SP115",
+ "F_SP112",
+ "F_SP126",
+ "F_SP127",
+ "R_SP127",
+ "F_SP113",
+ "F_SP116",
+ "R_SP116",
+ "R_SP160",
+ "R_SP161",
+ "F_SP114",
+ "F_SP118",
+ "F_SP124",
+ "F_SP125",
+ "F_SP121",
+ "F_SP122",
+ "F_SP123",
+ "F_SP200",
+ "F_SP102",
+ "",
+ "R_SP300",
+ "R_SP301",
+ "T_ENEMY",
+ "D_MN54",
+ "D_MN05",
+ "D_MN05B",
+ "D_MN05A",
+ "D_MN04",
+ "D_MN04B",
+ "D_MN04A",
+ "D_MN01",
+ "D_MN01B",
+ "D_MN01A",
+ "D_MN10",
+ "D_MN10B",
+ "D_MN10A",
+ "D_MN11",
+ "D_MN11B",
+ "D_MN11A",
+ "D_MN06",
+ "D_MN06B",
+ "D_MN06A",
+ "D_MN07",
+ "D_MN07B",
+ "D_MN07A",
+ "D_MN08",
+ "D_MN08B",
+ "D_MN08C",
+ "D_MN08A",
+ "D_MN08D",
+ "D_MN09",
+ "D_MN09A",
+ "D_MN09B",
+ "D_MN09C",
+ "D_SB00",
+ "D_SB01",
+ "D_SB02",
+ "D_SB03",
+ "D_SB04",
+ "D_SB05",
+ "D_SB06",
+ "D_SB07",
+ "D_SB08",
+ "D_SB09",
+ "D_SB10",
+};
#endif
/* 802C589C-802C58AC 2C01DC 0010+00 3/3 0/0 0/0 .text __ct__11Z2EnvSeBaseFP3Vec */
-Z2EnvSeBase::Z2EnvSeBase(Vec* param_0) {
- mPos = param_0;
+Z2EnvSeBase::Z2EnvSeBase(Vec* posPtr) {
+ mPos = posPtr;
}
/* 802C58AC-802C5908 2C01EC 005C+00 3/3 0/0 0/0 .text __dt__11Z2EnvSeBaseFv */
@@ -25,22 +100,22 @@ Z2EnvSeBase::~Z2EnvSeBase() {}
/* 802C5908-802C5AB4 2C0248 01AC+00 2/2 0/0 0/0 .text
* startEnvSe__11Z2EnvSeBaseF10JAISoundIDfffffUl */
-bool Z2EnvSeBase::startEnvSe(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5,
- f32 param_6, u32 param_7) {
+bool Z2EnvSeBase::startEnvSe(JAISoundID soundID, f32 fxMix, f32 volume, f32 pan, f32 dolby, f32 pitch, u32 moveSteps) {
if (Z2GetStatusMgr()->isPaused()) {
- param_3 *= 0.33f;
+ volume *= 0.33f;
}
+
f32 dVar16 = 1.0f;
- bool uStack_44 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f;
- f32 fVar1 = uStack_44;
+ f32 fVar1 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f;
if (fVar1) {
dVar16 = Z2Calc::getParamByExp(
fVar1, 1500.0f, 0.0f,
0.1f, 0.0f,
- dVar16, Z2Calc::CURVE_SIGN_0);
- param_3 *= dVar16;
+ 1.0f, Z2Calc::CURVE_NEGATIVE);
+ volume *= dVar16;
}
- bool rv = Z2GetSoundStarter()->startSound(param_1, &mHandle, (JGeometry::TVec3<f32>*)mPos, 0, param_2, param_6, param_3, param_4, param_5, param_7);
+
+ bool rv = Z2GetSoundStarter()->startSound(soundID, &mHandle, (JGeometry::TVec3<f32>*)mPos, 0, fxMix, pitch, volume, pan, dolby, moveSteps);
if (mHandle) {
if (dVar16 < 1.0f) {
Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[64]);
@@ -48,27 +123,29 @@ bool Z2EnvSeBase::startEnvSe(JAISoundID param_1, f32 param_2, f32 param_3, f32 p
Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[127]);
}
}
+
return rv;
}
/* 802C5AB4-802C5C9C 2C03F4 01E8+00 9/9 0/0 0/0 .text
* startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl */
-bool Z2EnvSeBase::startEnvSeLevel(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4,
- f32 param_5, f32 param_6, u32 param_7) {
+bool Z2EnvSeBase::startEnvSeLevel(JAISoundID soundID, f32 fxMix, f32 volume, f32 pan,
+ f32 dolby, f32 pitch, u32 moveSteps) {
if (Z2GetStatusMgr()->isPaused()) {
- param_3 *= 0.33f;
+ volume *= 0.33f;
}
+
f32 dVar16 = 1.0f;
- bool uStack_44 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f;
- f32 fVar1 = uStack_44;
+ f32 fVar1 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f;
if (fVar1) {
dVar16 = Z2Calc::getParamByExp(
fVar1, 1500.0f, 0.0f,
0.1f, 0.0f,
- dVar16, Z2Calc::CURVE_SIGN_0);
- param_3 *= dVar16;
+ 1.0f, Z2Calc::CURVE_NEGATIVE);
+ volume *= dVar16;
}
- bool rv = Z2GetSoundStarter()->startLevelSound(param_1, &mHandle, (JGeometry::TVec3<f32>*)mPos);
+
+ bool rv = Z2GetSoundStarter()->startLevelSound(soundID, &mHandle, (JGeometry::TVec3<f32>*)mPos);
if (mHandle) {
if (dVar16 < 1.0f) {
Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[64]);
@@ -76,21 +153,23 @@ bool Z2EnvSeBase::startEnvSeLevel(JAISoundID param_1, f32 param_2, f32 param_3,
Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[127]);
}
- mHandle->getAuxiliary().moveVolume(param_3, param_7);
- mHandle->getAuxiliary().movePan(param_4, param_7);
- mHandle->getAuxiliary().moveDolby(param_5, param_7);
- mHandle->getAuxiliary().moveFxMix(param_2, param_7);
- mHandle->getAuxiliary().movePitch(param_6, param_7);
+ mHandle->getAuxiliary().moveVolume(volume, moveSteps);
+ mHandle->getAuxiliary().movePan(pan, moveSteps);
+ mHandle->getAuxiliary().moveDolby(dolby, moveSteps);
+ mHandle->getAuxiliary().moveFxMix(fxMix, moveSteps);
+ mHandle->getAuxiliary().movePitch(pitch, moveSteps);
}
+
return rv;
}
/* 802C5C9C-802C5D1C 2C05DC 0080+00 1/1 0/0 0/0 .text __ct__10Z2EnvSeDirFP3Vec */
-Z2EnvSeDir::Z2EnvSeDir(Vec* param_0) {
- field_0x8 = 0.5f;
- field_0xc = 0.5f;
- if (param_0) {
- setPanDir(param_0);
+Z2EnvSeDir::Z2EnvSeDir(Vec* dir) {
+ mPan = 0.5f;
+ mDolby = 0.5f;
+
+ if (dir) {
+ setPanDir(dir);
} else {
mPanDir = Z2Calc::cNullVec;
}
@@ -101,6 +180,7 @@ Z2EnvSeDir::~Z2EnvSeDir() {}
/* 802C5D70-802C5D9C 2C06B0 002C+00 2/2 0/0 0/0 .text setPanDir__10Z2EnvSeDirFP3Vec */
void Z2EnvSeDir::setPanDir(Vec* dir) {
+ JUT_ASSERT(249, dir);
mPanDir.x = dir->x * -1000.0f;
mPanDir.y = dir->y * -1000.0f;
mPanDir.z = dir->z * -1000.0f;
@@ -114,25 +194,28 @@ void Z2EnvSeDir::calcPan(f32 param_0) {
(*getHandle())->getAuxiliary().moveDolby(0.5f, 0);
} else {
Z2GetAudience()->convertAbsToRel(mPanDir, &mPanDir, 0);
- JMAFastVECNormalize(&mPanDir, &mPanDir);
- field_0x8 = Z2GetAudience()->calcRelPosPan(mPanDir, 0);
- field_0xc = Z2GetAudience()->calcRelPosDolby(mPanDir, 0);
- (*getHandle())->getAuxiliary().movePan(field_0x8, 0);
- (*getHandle())->getAuxiliary().moveDolby(field_0xc, 0);
+ JMath::fastVECNormalize(&mPanDir, &mPanDir);
+
+ mPan = Z2GetAudience()->calcRelPosPan(mPanDir, 0);
+ mDolby = Z2GetAudience()->calcRelPosDolby(mPanDir, 0);
+
+ (*getHandle())->getAuxiliary().movePan(mPan, 0);
+ (*getHandle())->getAuxiliary().moveDolby(mDolby, 0);
}
}
}
/* 802C5E90-802C5ECC 2C07D0 003C+00 1/1 0/0 0/0 .text
* startEnvSeDirLevel__10Z2EnvSeDirF10JAISoundIDff */
-bool Z2EnvSeDir::startEnvSeDirLevel(JAISoundID param_1, f32 param_2, f32 param_3) {
- return Z2EnvSeBase::startEnvSeLevel(param_1, param_2, param_3, field_0x8, field_0xc, 1.0f, 0);
+bool Z2EnvSeDir::startEnvSeDirLevel(JAISoundID soundID, f32 fxMix, f32 volume) {
+ f32 var_f31 = mDolby;
+ return Z2EnvSeBase::startEnvSeLevel(soundID, fxMix, volume, mPan, mDolby, 1.0f, 0);
}
/* 802C5ECC-802C5F28 2C080C 005C+00 1/1 0/0 0/0 .text __ct__14Z2EnvSeAutoPanFv */
Z2EnvSeAutoPan::Z2EnvSeAutoPan() {
- field_0x8 = 0.5f;
- field_0xc = 0.5f;
+ mPan = 0.5f;
+ mDolby = 0.5f;
field_0x10 = 0.0018554000416770577f;
field_0x14 = 0.0008553999941796064f;
field_0x18 = 1;
@@ -143,10 +226,10 @@ Z2EnvSeAutoPan::Z2EnvSeAutoPan() {
Z2EnvSeAutoPan::~Z2EnvSeAutoPan() {}
/* 802C5F7C-802C5F98 2C08BC 001C+00 2/2 0/0 0/0 .text setPanParam__14Z2EnvSeAutoPanFffbbff */
-void Z2EnvSeAutoPan::setPanParam(f32 param_1, f32 param_2, bool param_3, bool param_4, f32 param_5,
+void Z2EnvSeAutoPan::setPanParam(f32 pan, f32 dolby, bool param_3, bool param_4, f32 param_5,
f32 param_6) {
- field_0x8 = param_1;
- field_0xc = param_2;
+ mPan = pan;
+ mDolby = dolby;
field_0x10 = param_5;
field_0x14 = param_6;
field_0x18 = param_3;
@@ -156,54 +239,57 @@ void Z2EnvSeAutoPan::setPanParam(f32 param_1, f32 param_2, bool param_3, bool pa
/* 802C5F98-802C60E0 2C08D8 0148+00 2/2 0/0 0/0 .text calcPan__14Z2EnvSeAutoPanFv */
void Z2EnvSeAutoPan::calcPan() {
if (field_0x18) {
- field_0x8 += field_0x10;
- if (field_0x8 > 1.0f) {
- field_0x8 = 2.0f - field_0x8;
+ mPan += field_0x10;
+ if (mPan > 1.0f) {
+ mPan = 2.0f - mPan;
field_0x18 = false;
}
} else {
- field_0x8 = field_0x8 - field_0x10;
- if (field_0x8 < 0.0f) {
- field_0x8 *= -1.0f;
+ mPan -= field_0x10;
+ if (mPan < 0.0f) {
+ mPan *= -1.0f;
field_0x18 = true;
}
}
+
if (field_0x19) {
- field_0xc = field_0xc + field_0x14;
- if (field_0xc > 1.0f) {
- field_0xc = 2.0f - field_0xc;
+ mDolby += field_0x14;
+ if (mDolby > 1.0f) {
+ mDolby = 2.0f - mDolby;
field_0x19 = false;
}
} else {
- field_0xc = field_0xc - field_0x14;
- if (field_0xc < 0.0f) {
- field_0xc *= -1.0f;
+ mDolby -= field_0x14;
+ if (mDolby < 0.0f) {
+ mDolby *= -1.0f;
field_0x19 = true;
}
}
+
if (*getHandle()) {
- (*getHandle())->getAuxiliary().movePan(field_0x8, 0);
- (*getHandle())->getAuxiliary().moveDolby(field_0xc, 0);
+ (*getHandle())->getAuxiliary().movePan(mPan, 0);
+ (*getHandle())->getAuxiliary().moveDolby(mDolby, 0);
}
}
/* 802C60E0-802C611C 2C0A20 003C+00 2/2 0/0 0/0 .text
* startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff */
-bool Z2EnvSeAutoPan::startEnvSeAutoPanLevel(JAISoundID param_1, f32 param_2, f32 param_3,
- f32 param_4) {
- return Z2EnvSeBase::startEnvSeLevel(param_1, param_2, param_3, field_0x8, field_0xc, param_4,
- 0);
+bool Z2EnvSeAutoPan::startEnvSeAutoPanLevel(JAISoundID soundID, f32 fxMix, f32 volume,
+ f32 pitch) {
+ f32 var_f31 = mDolby;
+ return Z2EnvSeBase::startEnvSeLevel(soundID, fxMix, volume, mPan, mDolby, pitch, 0);
}
/* 802C611C-802C6540 2C0A5C 0424+00 0/0 1/1 0/0 .text __ct__10Z2EnvSeMgrFv */
Z2EnvSeMgr::Z2EnvSeMgr()
- : JASGlobalInstance<Z2EnvSeMgr>(this), field_0x38(), field_0x48(1.0f), field_0x4c(1.0f),
+ : JASGlobalInstance<Z2EnvSeMgr>(true), field_0x38(), field_0x48(1.0f), field_0x4c(1.0f),
field_0x50(1.0f), field_0x140(), mSnowPower(), mWindType(), field_0x188(), field_0x1ac(1.0f),
field_0x1b0(1.0f), field_0x1b4(1.0f), field_0x1b8(), field_0x1e0(), field_0x1e4(1.0f),
field_0x1e8(1.0f), field_0x1ec(1.0f), field_0x214(), field_0x218(1.0f), field_0x21c(1.0f),
field_0x220(1.0f), field_0x248(), field_0x24c(1.0f), field_0x250(1.0f), field_0x254(1.0f),
field_0x27c(), field_0x280(1.0f), field_0x284(1.0f), field_0x288(1.0f), field_0x2b0(),
- field_0x2b4(1.0f), field_0x2b8(1.0f), field_0x2bc(1.0f), field_0x2e4(), mFogDensity() {
+ field_0x2b4(1.0f), field_0x2b8(1.0f), field_0x2bc(1.0f), field_0x2e4(), mFogDensity()
+{
field_0x3c.x = 0.0f;
field_0x3c.y = 0.0f;
field_0x3c.z = 0.0f;
@@ -243,51 +329,58 @@ void Z2EnvSeMgr::framework() {
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250])))
{
int lVar12 = 0;
- if (sceneNum == 0x17 || sceneNum == 0x18 || (sceneNum == 0x19)) {
+ if (sceneNum == Z2SCENE_CASTLE_TOWN_INTERIOR || sceneNum == Z2SCENE_CASTLE_TOWN_SHOPS || (sceneNum == Z2SCENE_STAR_TENT)) {
lVar12 = 1;
}
startRainSe(lVar12, 100);
}
+
field_0x64.resetMultiSePos();
}
- if (sceneNum == 0x2e) {
+
+ if (sceneNum == Z2SCENE_LAKEBED_TEMPLE) {
startLv3WaterSe(-1);
field_0x140 = 0;
}
+
if (Z2GetSceneMgr()->isSceneExist()) {
playSceneEnvSe();
if (field_0x140 > 0 && mSnowPower == 0) {
- JAISoundHandle* pJVar8 = field_0x80.getHandle();
- if (*pJVar8) {
- (*pJVar8)->updateLifeTime(field_0x140);
+ JAISoundHandle* handle = field_0x80.getHandle();
+ if (*handle) {
+ (*handle)->updateLifeTime(field_0x140);
}
- pJVar8 = field_0x88.getHandle();
- if (*pJVar8) {
- (*pJVar8)->updateLifeTime(field_0x140);
+ handle = field_0x88.getHandle();
+ if (*handle) {
+ (*handle)->updateLifeTime(field_0x140);
}
field_0x140 = 0;
}
}
- if (mFogDensity > 0.0f)
- {
+
+ if (mFogDensity > 0.0f) {
mFogDensity -= 0.01f;
if (mFogDensity < 0.0f) {
mFogDensity = 0.0f;
}
}
+
if (field_0x1b8 > 0 && field_0x1b8 < 100) {
field_0x1b8++;
} else if (field_0x1b8 < 0 && field_0x1b8 > -100) {
field_0x1b8--;
}
+
if (mSnowPower > 0) {
mSnowPower--;
}
+
if (Z2GetLink() != NULL) {
- if (Z2GetLink()->isWolfSmellOpen() != 0) {
- if (field_0x2e4 < 0x1e) {
+ if (Z2GetLink()->isWolfSmellOpen()) {
+ if (field_0x2e4 < 30) {
field_0x2e4++;
}
+
if (mWolfSmellSeMgr.getPosCount() >= 0) {
f32 maxVolume = mWolfSmellSeMgr.getMaxVolume();
field_0x2dc.startEnvSeLevel(Z2SE_ENV_SCENT_GRAVE, 0.0f,
@@ -297,15 +390,14 @@ void Z2EnvSeMgr::framework() {
return;
}
}
+
if (field_0x2e4 != 0) {
field_0x2e4--;
}
}
/* 802C6998-802C699C 2C12D8 0004+00 0/0 1/1 0/0 .text resetScene__10Z2EnvSeMgrFv */
-void Z2EnvSeMgr::resetScene() {
- /* empty function */
-}
+void Z2EnvSeMgr::resetScene() {}
/* 802C699C-802C6AC0 2C12DC 0124+00 0/0 1/1 0/0 .text resetSceneInner__10Z2EnvSeMgrFv */
void Z2EnvSeMgr::resetSceneInner() {
@@ -322,6 +414,7 @@ void Z2EnvSeMgr::resetSceneInner() {
field_0x3c.y = 0.0f;
field_0x3c.z = 0.0f;
}
+
field_0x140 = 0;
mWindType = WIND_TYPE_0;
field_0x188 = 0;
@@ -349,6 +442,7 @@ void Z2EnvSeMgr::resetSceneInner() {
field_0x2b4 = 1.0f;
field_0x2b8 = 1.0f;
field_0x2bc = 1.0f;
+
mRiverSeMgr.resetMultiSePos();
mFallSeMgr.resetMultiSePos();
mEtcSeMgr.resetMultiSePos();
@@ -361,50 +455,52 @@ void Z2EnvSeMgr::resetSceneInner() {
/* 802C6AC0-802C6C1C 2C1400 015C+00 0/0 1/1 0/0 .text initSceneEnvSe__10Z2EnvSeMgrFlScf
*/
-void Z2EnvSeMgr::initSceneEnvSe(s32 param_1, s8 param_2, f32 param_3) {
+void Z2EnvSeMgr::initSceneEnvSe(s32 sceneID, s8 room, f32 param_3) {
field_0x60 = -1.0f;
if (-1.0f == param_3) {
return;
}
+
u8 r6 = 100.0f * param_3;
u8 uVar3 = 0;
- switch(param_1) {
- case 0x1e:
- switch(param_2) {
- case 0xd:
+
+ switch(sceneID) {
+ case Z2SCENE_HYRULE_FIELD:
+ switch(room) {
+ case 13:
uVar3 = 10;
break;
case 7:
case 9:
- case 0xb:
- case 0xc:
+ case 11:
+ case 12:
uVar3 = 2;
break;
case 8:
- case 0xa:
+ case 10:
default:
uVar3 = 6;
break;
}
break;
- case 0x1f:
- switch(param_2) {
+ case Z2SCENE_CASTLE_TOWN_GATES:
+ switch(room) {
case 8:
- case 0x10:
+ case 16:
uVar3 = 6;
break;
- case 0x11:
+ case 17:
uVar3 = 10;
break;
}
break;
- case 0x20:
+ case Z2SCENE_HYLIA_BRIDGE_BATTLE:
uVar3 = 10;
break;
- case 0x22:
+ case Z2SCENE_ELDIN_BRIDGE_BATTLE:
uVar3 = 6;
break;
- case 0x45:
+ case Z2SCENE_FINAL_BATTLE_CUTSCENE:
uVar3 = 7;
break;
}
@@ -429,23 +525,27 @@ void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
f32 dVar7;
f32 dVar6;
f32 fVar1;
+
if (-1.0f == field_0x60) {
if (param_2 >= 100) {
dVar7 = 1.0f;
} else {
dVar7 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
dVar6 = 1.0f;
} else {
dVar6 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
fVar1 = 0.0f;
} else {
field_0x3c = *param_5;
fVar1 = 0.1f * param_4;
}
+
if (field_0x38 != 0 && field_0x38 == param_1) {
field_0x39 = 100;
if (dVar7 != field_0x48) {
@@ -455,6 +555,7 @@ void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
field_0x48 = dVar7;
field_0x54 = 0.0f;
}
+
if (dVar6 != field_0x4c) {
field_0x58 =
(dVar6 - field_0x4c) / 100.0f;
@@ -462,6 +563,7 @@ void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
field_0x4c = dVar6;
field_0x58 = 0.0f;
}
+
if (fVar1 != field_0x50) {
field_0x5c =
(fVar1 - field_0x50) / 100.0f;
@@ -477,6 +579,7 @@ void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
field_0x58 = 0.0f;
field_0x5c = 0.0f;
}
+
switch (param_1) {
case 1:
field_0x0.setPanParam(
@@ -561,15 +664,17 @@ void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
1.0f, false, true, 0.0018554000416770577f,
0.0008553999941796064f);
}
+
field_0x38 = param_1;
}
}
/* 802C70C8-802C780C 2C1A08 0744+00 2/1 1/1 0/0 .text startStaticEnvSe__10Z2EnvSeMgrFSc
*/
-bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
+bool Z2EnvSeMgr::startStaticEnvSe(s8 reverb) {
field_0x1b8 = 100;
- f32 local_90 = param_1 / 127.0f;
+
+ f32 local_90 = reverb / 127.0f;
if (field_0x39 != 0) {
field_0x48 += field_0x54;
field_0x4c += field_0x58;
@@ -581,26 +686,30 @@ bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
field_0x5c = 0.0f;
}
}
+
field_0x0.calcPan();
field_0x1c.calcPan();
+
JAISoundID aJStack_94;
- JAISoundID aJStack_98 = 0xffffffff;
+ JAISoundID aJStack_98 = 0xFFFFFFFF;
f32 local_9c = 1.0f;
if (0.0f != field_0x50) {
Vec VStack_8c;
Z2GetAudience()->convertAbsToRel(field_0x3c, &VStack_8c, 0);
local_9c = Z2GetAudience()->calcRelPosVolume(VStack_8c, field_0x50, 0);
}
+
f32 dVar22 = field_0x48 * local_9c;
f32 dVar21 = field_0x48 * local_9c;
f32 dVar20 = field_0x4c;
f32 dVar18 = field_0x4c;
- u8 bVar15 = Z2GetStatusMgr()->getHour();
+ u8 hour = Z2GetStatusMgr()->getHour();
+
switch (field_0x38) {
case 0:
return false;
case 1:
- if (bVar15 >= 6 && bVar15 <= 18) {
+ if (hour >= 6 && hour <= 18) {
aJStack_94 = Z2SE_ENV_FOREST_DAY;
aJStack_98 = Z2SE_ENV_FORESTWIND;
dVar21 *= 0.7f;
@@ -610,7 +719,7 @@ bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
}
break;
case 2:
- if (bVar15 >= 6 && bVar15 <= 18) {
+ if (hour >= 6 && hour <= 18) {
dVar22 *= 0.7f;
dVar21 *= 0.7f;
}
@@ -630,36 +739,36 @@ bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
dVar22 *= Z2Calc::getParamByExp(mSnowPower,
64.0f, 127.0f,
0.4f, 0.35f,
- 1.0f, Z2Calc::CURVE_SIGN_1);
+ 1.0f, Z2Calc::CURVE_POSITIVE);
dVar20 *= Z2Calc::getParamByExp(mSnowPower,
64.0f, 127.0f,
0.4f, 1.15f,
- 1.6f, Z2Calc::CURVE_SIGN_1);
+ 1.6f, Z2Calc::CURVE_POSITIVE);
dVar21 *= Z2Calc::getParamByExp(mSnowPower,
64.0f, 127.0f,
0.3f, 0.2f,
- 1.0f, Z2Calc::CURVE_SIGN_1);
+ 1.0f, Z2Calc::CURVE_POSITIVE);
dVar18 *= Z2Calc::getParamByExp(mSnowPower,
127.0f, 64.0f,
0.4f, 0.65f,
- 0.9f, Z2Calc::CURVE_SIGN_0);
+ 0.9f, Z2Calc::CURVE_NEGATIVE);
} else {
dVar22 *= Z2Calc::getParamByExp(mSnowPower,
0.0f, 64.0f,
0.4f, 0.2f,
- 0.35f, Z2Calc::CURVE_SIGN_0);
+ 0.35f, Z2Calc::CURVE_NEGATIVE);
dVar20 *= Z2Calc::getParamByExp(mSnowPower,
0.0f, 64.0f,
0.3f, 1.0f,
- 1.15f, Z2Calc::CURVE_SIGN_0);
+ 1.15f, Z2Calc::CURVE_NEGATIVE);
dVar21 *= Z2Calc::getParamByExp(mSnowPower,
0.0f, 64.0f,
0.3f, 0.1f,
- 0.2f, Z2Calc::CURVE_SIGN_0);
+ 0.2f, Z2Calc::CURVE_NEGATIVE);
dVar18 *= ::Z2Calc::getParamByExp(mSnowPower,
64.0f, 0.0f,
0.4f, 0.9f,
- 1.0f, Z2Calc::CURVE_SIGN_1);
+ 1.0f, Z2Calc::CURVE_POSITIVE);
}
break;
case 11:
@@ -670,7 +779,7 @@ bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
aJStack_98 = Z2SE_ENV_WINDTAG_SLOW;
break;
case 6:
- if (bVar15 >= 6 && bVar15 <= 18) {
+ if (hour >= 6 && hour <= 18) {
dVar22 *= 0.1f;
dVar21 *= 0.12f;
} else {
@@ -681,7 +790,7 @@ bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
aJStack_98 = Z2SE_ENV_FIELD_WIND_R;
break;
case 10:
- if (bVar15 >= 6 && bVar15 <= 18) {
+ if (hour >= 6 && hour <= 18) {
dVar22 *= 0.1f;
dVar21 *= 0.6f;
} else {
@@ -707,51 +816,51 @@ bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) {
default:
return false;
}
+
dVar22 *= 1.0f - getFogDensity();
dVar21 *= 1.0f - getFogDensity();
if (Z2GetSceneMgr()->isInDarkness()) {
dVar22 *= 0.75f;
dVar21 *= 0.75f;
}
- JAISoundHandle* pJVar10 = field_0x0.getHandle();
- if (*pJVar10) {
- if ((u32)(*pJVar10)->getID() != (u32)aJStack_94) {
- (*pJVar10)->stop(0x1e);
- (*pJVar10)->releaseHandle();
+
+ JAISoundHandle* handle = field_0x0.getHandle();
+ if (*handle) {
+ if ((u32)(*handle)->getID() != (u32)aJStack_94) {
+ (*handle)->stop(30);
+ (*handle)->releaseHandle();
}
}
- pJVar10 = field_0x1c.getHandle();
- if (*pJVar10) {
- if ((u32)(*pJVar10)->getID() != (u32)aJStack_98) {
- (*pJVar10)->stop(0x1e);
- (*pJVar10)->releaseHandle();
+
+ handle = field_0x1c.getHandle();
+ if (*handle) {
+ if ((u32)(*handle)->getID() != (u32)aJStack_98) {
+ (*handle)->stop(30);
+ (*handle)->releaseHandle();
}
}
- bool iVar9 = field_0x0.startEnvSeAutoPanLevel(aJStack_94, local_90,
- dVar22, dVar20);
- bool iVar11 = field_0x1c.startEnvSeAutoPanLevel(aJStack_98,
- local_90, dVar21, dVar18);
+
+ bool iVar9 = field_0x0.startEnvSeAutoPanLevel(aJStack_94, local_90, dVar22, dVar20);
+ bool iVar11 = field_0x1c.startEnvSeAutoPanLevel(aJStack_98, local_90, dVar21, dVar18);
+
if (field_0x38 == 4) {
- JAISoundHandle* pJVar10 = field_0x0.getHandle();
- JAISoundHandle* this_02 = field_0x1c.getHandle();
- if (*pJVar10) {
- Z2GetSoundStarter()->setPortData(pJVar10, 6, mSnowPower, -1);
+ JAISoundHandle* handle = field_0x0.getHandle();
+ JAISoundHandle* handle2 = field_0x1c.getHandle();
+ if (*handle) {
+ Z2GetSoundStarter()->setPortData(handle, 6, mSnowPower, -1);
}
- if (*this_02) {
- Z2GetSoundStarter()->setPortData(this_02, 6, mSnowPower, -1);
+ if (*handle2) {
+ Z2GetSoundStarter()->setPortData(handle2, 6, mSnowPower, -1);
}
}
- bool rv = 0;
- if (iVar9 && iVar11) {
- rv = 1;
- }
- return rv;
+
+ return iVar9 && iVar11;
}
/* 802C780C-802C7830 2C214C 0024+00 0/0 1/1 0/0 .text registWindowPos__10Z2EnvSeMgrFP3Vec
*/
-void Z2EnvSeMgr::registWindowPos(Vec* param_0) {
- field_0x64.registMultiSePos(param_0);
+void Z2EnvSeMgr::registWindowPos(Vec* posPtr) {
+ field_0x64.registMultiSePos(posPtr);
}
/* 802C7830-802C7CF4 2C2170 04C4+00 1/1 1/1 0/0 .text startRainSe__10Z2EnvSeMgrFlSc */
@@ -759,12 +868,15 @@ bool Z2EnvSeMgr::startRainSe(s32 param_1, s8 param_2) {
if (mSnowPower > 0) {
return false;
}
+
mSnowPower = 1;
+
JAISoundID aJStack_118 = 0xffffffff;
JAISoundID aJStack_11c = 0xffffffff;
JAISoundID aJStack_120 = 0xffffffff;
f32 dVar21 = param_2 / 127.0f;
s8 unaff_r29;
+
switch (param_1) {
case 0:
aJStack_118 = Z2SE_ENV_RAIN_NORMAL_L;
@@ -787,60 +899,49 @@ bool Z2EnvSeMgr::startRainSe(s32 param_1, s8 param_2) {
}
if (field_0x64.getPosCount() < 0) {
- f32 dVar13 =
- Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true);
- f32 dVar14 =
- Z2Calc::linearTransform(field_0xa0.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true);
- f32 dVar15 =
- Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true);
- f32 dVar16 =
- Z2Calc::linearTransform(field_0xe0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true);
- f32 dVar17 = Z2Calc::getParamByExp(field_0xb0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 0.3f,
- Z2Calc::CURVE_SIGN_1);
- f32 dVar18 = Z2Calc::getParamByExp(field_0xc0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 1.0f, 0.7f,
- Z2Calc::CURVE_SIGN_1);
- f32 dVar19 = Z2Calc::getParamByExp(field_0xf0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
- f32 dVar20 = Z2Calc::getParamByExp(field_0x100.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
+ f32 dVar13 = Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true);
+ f32 dVar14 = Z2Calc::linearTransform(field_0xa0.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true);
+ f32 dVar15 = Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true);
+ f32 dVar16 = Z2Calc::linearTransform(field_0xe0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true);
+ f32 dVar17 = Z2Calc::getParamByExp(field_0xb0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 0.3f, Z2Calc::CURVE_POSITIVE);
+ f32 dVar18 = Z2Calc::getParamByExp(field_0xc0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 1.0f, 0.7f, Z2Calc::CURVE_POSITIVE);
+ f32 dVar19 = Z2Calc::getParamByExp(field_0xf0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_POSITIVE);
+ f32 dVar20 = Z2Calc::getParamByExp(field_0x100.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_POSITIVE);
+
if (Z2GetSceneMgr()->isInDarkness()) {
dVar13 *= 0.5f;
dVar14 *= 0.5f;
}
- JAISoundHandle* pJVar8 = field_0x80.getHandle();
- if (*pJVar8) {
- if ((*pJVar8)->getID() != (u32)aJStack_118) {
- (*pJVar8)->stop(0x1e);
- (*pJVar8)->releaseHandle();
+
+ JAISoundHandle* handle = field_0x80.getHandle();
+ if (*handle) {
+ if ((*handle)->getID() != (u32)aJStack_118) {
+ (*handle)->stop(30);
+ (*handle)->releaseHandle();
}
}
- pJVar8 = field_0x88.getHandle();
- if (*pJVar8) {
- if ((*pJVar8)->getID() != (u32)aJStack_11c) {
- (*pJVar8)->stop(0x1e);
- (*pJVar8)->releaseHandle();
+
+ handle = field_0x88.getHandle();
+ if (*handle) {
+ if ((*handle)->getID() != (u32)aJStack_11c) {
+ (*handle)->stop(30);
+ (*handle)->releaseHandle();
}
}
- bool iVar7 =
- field_0x80.startEnvSeLevel(aJStack_118, dVar21, dVar13, dVar17, dVar19, dVar15, 0);
- bool iVar9 =
- field_0x88.startEnvSeLevel(aJStack_11c, dVar21, dVar14, dVar18, dVar20, dVar16, 0);
- bool uVar5 = 0;
- if (iVar7 && iVar9) {
- uVar5 = 1;
- }
- return uVar5;
+ bool iVar7 = field_0x80.startEnvSeLevel(aJStack_118, dVar21, dVar13, dVar17, dVar19, dVar15, 0);
+ bool iVar9 = field_0x88.startEnvSeLevel(aJStack_11c, dVar21, dVar14, dVar18, dVar20, dVar16, 0);
+ return iVar7 && iVar9;
}
f32 dVar13 = Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true);
f32 dVar14 = Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true);
- JAISoundHandle* pJVar8 = field_0x80.getHandle();
- if (*pJVar8) {
- if ((*pJVar8)->getID() != (u32)aJStack_120) {
- (*pJVar8)->stop(0x1e);
- (*pJVar8)->releaseHandle();
+ JAISoundHandle* handle = field_0x80.getHandle();
+ if (*handle) {
+ if ((*handle)->getID() != (u32)aJStack_120) {
+ (*handle)->stop(30);
+ (*handle)->releaseHandle();
}
}
@@ -858,8 +959,7 @@ void Z2EnvSeMgr::startNearThunderSe(s8 param_1) {
dVar10 += 0.5f;
f32 dVar8 = Z2Calc::getRandom(0.25f, Z2Calc::cEqualCSlope, Z2Calc::cEqualPSlope);
dVar8 += 0.5f;
- field_0x118.startEnvSe(Z2SE_ENV_THUNDER_NEAR, param_1 / 127.0f, 1.0f, dVar10, dVar8, 1.0f,
- 0);
+ field_0x118.startEnvSe(Z2SE_ENV_THUNDER_NEAR, param_1 / 127.0f, 1.0f, dVar10, dVar8, 1.0f, 0);
} else {
f32 maxVolume = field_0x64.getMaxVolume();
field_0x118.startEnvSe(Z2SE_ENV_THUND_NEAR_WIN, param_1 / 127.0f, maxVolume,
@@ -868,20 +968,20 @@ void Z2EnvSeMgr::startNearThunderSe(s8 param_1) {
}
/* 802C7E68-802C7FB4 2C27A8 014C+00 0/0 2/2 0/0 .text startFarThunderSe__10Z2EnvSeMgrFP3VecSc */
-void Z2EnvSeMgr::startFarThunderSe(Vec* param_1, s8 param_2) {
+void Z2EnvSeMgr::startFarThunderSe(Vec* posPtr, s8 reverb) {
if (field_0x64.getPosCount() < 0) {
- field_0x110.setPos(param_1);
- field_0x110.startEnvSe(Z2SE_ENV_THUNDER_FAR, param_2 / 127.0f, 1.0f, 0.5f, 0.0f, 1.0f, 0);
+ field_0x110.setPos(posPtr);
+ field_0x110.startEnvSe(Z2SE_ENV_THUNDER_FAR, reverb / 127.0f, 1.0f, 0.5f, 0.0f, 1.0f, 0);
} else {
f32 maxVolume = field_0x64.getMaxVolume();
- field_0x110.startEnvSe(Z2SE_ENV_THUND_FAR_WIN, param_2 / 127.0f, maxVolume,
+ field_0x110.startEnvSe(Z2SE_ENV_THUND_FAR_WIN, reverb / 127.0f, maxVolume,
field_0x64.getPanPower(), field_0x64.getDolbyPower(), 1.0f, 0);
}
}
/* 802C7FB4-802C7FBC -00001 0008+00 0/0 0/0 0/0 .text setSnowPower__10Z2EnvSeMgrFSc */
-void Z2EnvSeMgr::setSnowPower(s8 param_0) {
- mSnowPower = param_0;
+void Z2EnvSeMgr::setSnowPower(s8 power) {
+ mSnowPower = power;
}
/* 802C7FBC-802C7FC8 2C28FC 000C+00 0/0 1/1 1/1 .text initStrongWindSe__10Z2EnvSeMgrFv */
@@ -890,18 +990,19 @@ void Z2EnvSeMgr::initStrongWindSe() {
}
/* 802C7FC8-802C800C 2C2908 0044+00 0/0 1/1 1/1 .text setWindDirection__10Z2EnvSeMgrFP3Vec */
-void Z2EnvSeMgr::setWindDirection(Vec* param_0) {
+void Z2EnvSeMgr::setWindDirection(Vec* dir) {
if (mWindType == WIND_TYPE_3) {
field_0x144.setPanDir(const_cast<Vec*>(&Z2Calc::cNullVec));
} else {
- field_0x144.setPanDir(param_0);
+ field_0x144.setPanDir(dir);
}
}
/* 802C800C-802C80F8 2C294C 00EC+00 0/0 1/1 1/1 .text startStrongWindSe__10Z2EnvSeMgrFSc
*/
-bool Z2EnvSeMgr::startStrongWindSe(s8 param_1) {
+bool Z2EnvSeMgr::startStrongWindSe(s8 reverb) {
field_0x144.calcPan(1.0f);
+
JAISoundID aJStack_24 = 0xffffffff;
switch (mWindType) {
case WIND_TYPE_1:
@@ -917,7 +1018,8 @@ bool Z2EnvSeMgr::startStrongWindSe(s8 param_1) {
return false;
}
- return field_0x144.startEnvSeDirLevel(aJStack_24, param_1 / 127.0f, 1.0f);
+ f32 fxMix = reverb / 127.0f;
+ return field_0x144.startEnvSeDirLevel(aJStack_24, fxMix, 1.0f);
}
/* 802C80F8-802C8234 2C2A38 013C+00 0/0 1/1 0/0 .text initRiverSe__10Z2EnvSeMgrFUcUcUcUc
@@ -929,16 +1031,19 @@ void Z2EnvSeMgr::initRiverSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) {
} else {
field_0x1ac = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x1b0 = 1.0f;
} else {
field_0x1b0 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x1b4 = 1.0f;
} else {
field_0x1b4 = 0.1f * param_4;
}
+
switch (param_1) {
case 1:
mRiverSeMgr.setVolumeScale(1.5f * field_0x1b4);
@@ -956,14 +1061,21 @@ void Z2EnvSeMgr::initRiverSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) {
}
/* 802C8234-802C8258 2C2B74 0024+00 1/1 1/1 0/0 .text registRiverSePos__10Z2EnvSeMgrFP3Vec */
-void Z2EnvSeMgr::registRiverSePos(Vec* param_0) {
- mRiverSeMgr.registMultiSePos(param_0);
+void Z2EnvSeMgr::registRiverSePos(Vec* posPtr) {
+ f32 var_f31;
+ if (posPtr != NULL) {
+
+ } else {
+ var_f31 = posPtr->z;
+ }
+
+ mRiverSeMgr.registMultiSePos(posPtr);
}
/* 802C8258-802C8300 2C2B98 00A8+00 0/0 0/0 1/1 .text setHyrulSewerOpen__10Z2EnvSeMgrFb
*/
-void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) {
- if (param_0) {
+void Z2EnvSeMgr::setHyrulSewerOpen(bool isSewerOpen) {
+ if (isSewerOpen) {
field_0x1b8 = 1;
Z2GetSeMgr()->seStart(Z2SE_ENV_SEWER_FILL, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
} else {
@@ -975,16 +1087,16 @@ void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) {
/* 802C8300-802C8730 2C2C40 0430+00 2/1 1/1 0/0 .text startRiverSe__10Z2EnvSeMgrFSc */
bool Z2EnvSeMgr::startRiverSe(s8 param_1) {
#ifdef DEBUG
- char* spotName = sSpotName;
+ const char** spotName = sSpotName;
#endif
if (Z2GetStatusMgr()->mCameraMapInfo == 6) {
switch (Z2GetSceneMgr()->getCurrentSceneNum()) {
- case 5:
+ case Z2SCENE_FARON_WOODS:
if (Z2GetSceneMgr()->getCurrentRoomNum() != 1) {
break;
}
- case 0x10:
+ case Z2SCENE_LAKE_HYLIA:
if (Z2GetStatusMgr()->mPolygonPosition.y < -14500.0f) {
break;
}
@@ -992,16 +1104,17 @@ bool Z2EnvSeMgr::startRiverSe(s8 param_1) {
if ((Z2GetStatusMgr()->mPolygonPosition.y > 2000.0f)) {
break;
}
- case 0x15:
- case 0x1e:
- case 0x1f:
- case 0x2e:
+ case Z2SCENE_ZORAS_DOMAIN:
+ case Z2SCENE_HYRULE_FIELD:
+ case Z2SCENE_CASTLE_TOWN_GATES:
+ case Z2SCENE_LAKEBED_TEMPLE:
break;
default:
registRiverSePos(&Z2GetStatusMgr()->mPolygonPosition);
break;
}
}
+
if (mRiverSeMgr.getPosCount() < 0) {
return false;
}
@@ -1080,16 +1193,19 @@ void Z2EnvSeMgr::initFallSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) {
} else {
field_0x1e4 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x1e8 = 1.0f;
} else {
field_0x1e8 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x1ec = 1.0f;
} else {
field_0x1ec = 0.1f * param_4;
}
+
switch (param_1) {
case 8:
mFallSeMgr.setVolumeScale(3.0f * field_0x1ec);
@@ -1108,40 +1224,49 @@ void Z2EnvSeMgr::initFallSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) {
/* 802C886C-802C8890 2C31AC 0024+00 0/0 1/1 0/0 .text registFallSePos__10Z2EnvSeMgrFP3Vec
*/
-void Z2EnvSeMgr::registFallSePos(Vec* param_0) {
- mFallSeMgr.registMultiSePos(param_0);
+void Z2EnvSeMgr::registFallSePos(Vec* posPtr) {
+ f32 var_f31;
+ if (posPtr != NULL) {
+
+ } else {
+ var_f31 = posPtr->z;
+ }
+
+ mFallSeMgr.registMultiSePos(posPtr);
}
/* 802C8890-802C8A90 2C31D0 0200+00 1/1 1/1 0/0 .text startFallSe__10Z2EnvSeMgrFSc */
-bool Z2EnvSeMgr::startFallSe(s8 param_1) {
+bool Z2EnvSeMgr::startFallSe(s8 reverb) {
if (mFallSeMgr.getPosCount() < 0) {
return false;
}
- JAISoundID aJStack_80 = 0xffffffff;
- f32 dVar14 = param_1 / 127.0f;
- f32 dVar13 = ((field_0x1e4 * mFallSeMgr.getMaxVolume()) *
- Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true));
- f32 dVar15 = (field_0x1e8 *
- Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true));
- f32 dVar11 = mFallSeMgr.getPanPower();
- f32 dVar12 = mFallSeMgr.getDolbyPower();
+
+ JAISoundID soundID = 0xffffffff;
+ bool rv = false;
+
+ f32 fxMix = reverb / 127.0f;
+ f32 volume = ((field_0x1e4 * mFallSeMgr.getMaxVolume()) * Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true));
+ f32 pitch = (field_0x1e8 * Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true));
+ f32 pan = mFallSeMgr.getPanPower();
+ f32 dolby = mFallSeMgr.getDolbyPower();
+
switch (field_0x1e0) {
case 8:
- aJStack_80 = Z2SE_ENV_WATERFALL_NORMAL;
+ soundID = Z2SE_ENV_WATERFALL_NORMAL;
break;
case 9:
- aJStack_80 = Z2SE_ENV_FALL_LV1BOSS;
+ soundID = Z2SE_ENV_FALL_LV1BOSS;
break;
case 10:
- aJStack_80 = Z2SE_ENV_SPIRIT_FALL;
- dVar15 *= 0.75f;
+ soundID = Z2SE_ENV_SPIRIT_FALL;
+ pitch *= 0.75f;
break;
case 11:
- aJStack_80 = Z2SE_ENV_SAND_FALL;
+ soundID = Z2SE_ENV_SAND_FALL;
break;
}
- bool rv = field_0x1d8.startEnvSeLevel(aJStack_80, dVar14, dVar13, dVar11, dVar12, dVar15, 0);
+ rv = field_0x1d8.startEnvSeLevel(soundID, fxMix, volume, pan, dolby, pitch, 0);
mFallSeMgr.resetMultiSePos();
return rv;
}
@@ -1154,16 +1279,19 @@ void Z2EnvSeMgr::initEtcSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) {
} else {
field_0x218 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x21c = 1.0f;
} else {
field_0x21c = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x220 = 1.0f;
} else {
field_0x220 = 0.1f * param_4;
}
+
switch (param_1) {
case 17:
mEtcSeMgr.setVolumeScale(2.0f * field_0x220);
@@ -1193,13 +1321,17 @@ void Z2EnvSeMgr::initEtcSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) {
/* 802C8C24-802C8C48 2C3564 0024+00 1/1 1/1 0/0 .text registEtcSePos__10Z2EnvSeMgrFP3Vec
*/
-void Z2EnvSeMgr::registEtcSePos(Vec* param_0) {
- mEtcSeMgr.registMultiSePos(param_0);
+void Z2EnvSeMgr::registEtcSePos(Vec* posPtr) {
+ mEtcSeMgr.registMultiSePos(posPtr);
}
/* 802C8C48-802C92C8 2C3588 0680+00 2/1 1/1 0/0 .text startEtcSe__10Z2EnvSeMgrFSc */
-bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
- f32 dVar17 = param_1 / 127.0f;
+bool Z2EnvSeMgr::startEtcSe(s8 reverb) {
+ #ifdef DEBUG
+ const char** spotName = sSpotName;
+ #endif
+
+ f32 dVar17 = reverb / 127.0f;
f32 dVar19 = (field_0x218 * mEtcSeMgr.getMaxVolume());
f32 dVar14 = mEtcSeMgr.getPanPower();
f32 dVar15 = mEtcSeMgr.getDolbyPower();
@@ -1207,6 +1339,7 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
f32 dVar18 = field_0x21c;
f32 local_90, local_98, local_9c, local_a0;
bool iVar5, iVar6, iVar7, iVar8;
+
switch (field_0x214) {
case 0x11:
local_90 = Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.01f, 1.0f,
@@ -1221,11 +1354,7 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18);
iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90,
(0.8f * dVar18));
- iVar5 = false;
- if (iVar8 && iVar6 && iVar7) {
- iVar5 = true;
- }
- rv = iVar5;
+ rv = iVar8 && iVar6 && iVar7;
break;
case 0x12:
local_90 = ::Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.4f, 0.8f,
@@ -1291,9 +1420,9 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
break;
case 0x10:
local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ Z2Calc::CURVE_NEGATIVE);
local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ Z2Calc::CURVE_NEGATIVE);
local_a0 = field_0x2e8.calcNoise1f();
rv = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 0.3f,
(dVar19 * ((0.332f + 0.668f * local_a0) * local_98)),
@@ -1306,37 +1435,40 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) {
default:
return false;
}
+
mEtcSeMgr.resetMultiSePos();
return rv;
}
/* 802C92C8-802C92EC 2C3C08 0024+00 0/0 0/0 1/1 .text registWolfSmellSePos__10Z2EnvSeMgrFP3Vec */
-void Z2EnvSeMgr::registWolfSmellSePos(Vec* param_0) {
- mWolfSmellSeMgr.registMultiSePos(param_0);
+void Z2EnvSeMgr::registWolfSmellSePos(Vec* posPtr) {
+ mWolfSmellSeMgr.registMultiSePos(posPtr);
}
/* 802C92EC-802C93A0 2C3C2C 00B4+00 0/0 0/0 1/1 .text startFogWipeTrigger__10Z2EnvSeMgrFP3Vec */
-bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) {
+void Z2EnvSeMgr::startFogWipeTrigger(Vec* pos) {
+ JUT_ASSERT(1919, pos);
+
if (*field_0x240.getHandle()) {
f32 fogDensity = getFogDensity();
u32 fogDensity2 = 340.0f * getFogDensity();
- return Z2GetSoundStarter()->startSound(Z2SE_ENV_FOG_WIPE, field_0x20c.getHandle(),
- (JGeometry::TVec3<f32>*)param_0, fogDensity2, 0.3f,
+ Z2GetSoundStarter()->startSound(Z2SE_ENV_FOG_WIPE, field_0x20c.getHandle(),
+ (JGeometry::TVec3<f32>*)pos, fogDensity2, 0.3f,
1.0f, fogDensity, -1.0f, -1.0f, 0);
}
- //! @bug does not always return a value
}
/* 802C93A0-802C93E4 2C3CE0 0044+00 0/0 0/0 1/1 .text setFogWipeWidth__10Z2EnvSeMgrFf */
-void Z2EnvSeMgr::setFogWipeWidth(f32 param_0) {
- mFogDensity = Z2Calc::linearTransform(param_0, 0.0f, 1.0f, 1.0f, 0.4f, true);
+void Z2EnvSeMgr::setFogWipeWidth(f32 width) {
+ mFogDensity = Z2Calc::linearTransform(width, 0.0f, 1.0f, 1.0f, 0.4f, true);
}
/* 802C93E4-802C9400 2C3D24 001C+00 3/3 2/2 0/0 .text getFogDensity__10Z2EnvSeMgrFv */
f32 Z2EnvSeMgr::getFogDensity() {
- if (field_0x214 == 0x10) {
+ if (field_0x214 == 16) {
return mFogDensity;
}
+
return 0.0f;
}
@@ -1352,16 +1484,15 @@ bool Z2EnvSeMgr::startFogSe() {
f32 dVar12 = 0.5f - (dVar10 * fVar2) / 2;
int iVar1 = 20;
f32 fVar3 = 0.5f;
- bool iVar6 =
- field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, iVar1, dVar14, dVar12, fVar3, dVar13, 0);
+ bool iVar6 = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, iVar1, dVar14, dVar12, fVar3, dVar13, 0);
+
dVar10 = field_0x2f8.calcNoise1f();
dVar14 = (ratio + ((1.0f - ratio) * dVar10));
dVar13 = ((1.0f - fVar1) + dVar10 * fVar1);
dVar12 = (0.5f + (dVar10 * fVar2) / 2);
iVar1 = 20;
fVar3 = 0.5f;
- iVar5 = field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, iVar1, dVar14, dVar12, fVar3,
- dVar13, 0);
+ iVar5 = field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, iVar1, dVar14, dVar12, fVar3, dVar13, 0);
return (iVar6 && iVar5);
}
@@ -1396,11 +1527,13 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
} else {
field_0x24c = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x250 = 1.0f;
} else {
field_0x250 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x254 = 1.0f;
} else {
@@ -1415,16 +1548,19 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
} else {
field_0x280 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x284 = 1.0f;
} else {
field_0x284 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x288 = 1.0f;
} else {
field_0x288 = 0.1f * param_4;
}
+
field_0x258.setVolumeScale(2.0f * field_0x288);
break;
case 116:
@@ -1434,16 +1570,19 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
} else {
field_0x280 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x284 = 1.0f;
} else {
field_0x284 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x288 = 1.0f;
} else {
field_0x288 = 0.1f * param_4;
}
+
field_0x258.setVolumeScale(1.5f * field_0x288);
break;
case 112:
@@ -1453,16 +1592,19 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
} else {
field_0x2b4 = 0.01f *param_2;
}
+
if (param_3 == 0xff) {
field_0x2b8 = 1.0f;
} else {
field_0x2b8 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x2bc = 1.0f;
} else {
field_0x2bc = 0.1f * param_4;
}
+
field_0x28c.setVolumeScale(2.0f * field_0x2bc);
break;
case 117:
@@ -1472,39 +1614,45 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
} else {
field_0x2b4 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x2b8 = 1.0f;
} else {
field_0x2b8 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x2bc = 1.0f;
} else {
field_0x2bc = 0.1f * param_4;
}
+
field_0x28c.setVolumeScale(1.5f * field_0x2bc);
break;
- case 'w':
+ case 0x77:
field_0x2b0 = param_1;
if (param_2 >= 100) {
field_0x2b4 = 1.0f;
} else {
field_0x2b4 = 0.01f * param_2;
}
+
if (param_3 == 0xff) {
field_0x2b8 = 1.0f;
} else {
field_0x2b8 = 0.01f * param_3;
}
+
if (param_4 == 0xff) {
field_0x2bc = 1.0f;
} else {
field_0x2bc = 0.1f * param_4;
}
+
field_0x28c.setVolumeScale(3.0f * field_0x2bc);
break;
default:
- if (Z2GetSceneMgr()->getCurrentSceneNum() == 46) {
+ if (Z2GetSceneMgr()->getCurrentSceneNum() == Z2SCENE_LAKEBED_TEMPLE) {
switch (Z2GetSceneMgr()->getCurrentRoomNum()) {
case 1:
if (param_1 == 107) {
@@ -1565,7 +1713,7 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
initFallSe(9, param_2, 0xa0, param_4);
}
break;
- case 0xb:
+ case 11:
if (param_1 == 100 || param_1 == 101) {
initEtcSe(0x1e, param_2, param_3, param_4);
} else if (param_1 == 103) {
@@ -1574,14 +1722,14 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
initFallSe(9, param_2, 0x82, param_4);
}
break;
- case 0xc:
+ case 12:
if (param_1 == 103) {
initLv3WaterSe(115, param_2, param_3, param_4);
} else if (param_1 == 107) {
initLv3WaterSe(111, param_2, 0x82, param_4);
}
break;
- case 0xd:
+ case 13:
if ((param_1 == 100) || (param_1 == 101)) {
initEtcSe(0x1e, param_2, param_3, param_4);
} else if (param_1 == 103) {
@@ -1599,163 +1747,165 @@ void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4)
}
/* 802C9F58-802CA794 2C4898 083C+00 2/0 1/1 0/0 .text registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec */
-void Z2EnvSeMgr::registLv3WaterSePos(u8 param_1, Vec* param_2) {
+void Z2EnvSeMgr::registLv3WaterSePos(u8 param_1, Vec* posPtr) {
switch (param_1) {
case 110:
case 115:
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
break;
case 111:
case 116:
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
break;
case 112:
case 117:
case 119:
- field_0x28c.registMultiSePos(param_2);
+ field_0x28c.registMultiSePos(posPtr);
break;
default:
switch (Z2GetSceneMgr()->getCurrentRoomNum()) {
case 1:
if (param_1 == 107) {
- mFallSeMgr.registMultiSePos(param_2);
+ mFallSeMgr.registMultiSePos(posPtr);
}
case 0:
case 5:
case 6:
case 9:
if (param_1 == 100) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
}
break;
case 2:
if (param_1 == 100) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if (param_1 == 103 && dComIfGs_isSaveSwitch(8)) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 104 && dComIfGs_isSaveSwitch(9)) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 105 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 106 && dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
}
break;
case 3:
if (param_1 == 100 && !dComIfGs_isSaveSwitch(8) && !dComIfGs_isSaveSwitch(9)) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if ((param_1 == 101 && dComIfGs_isSaveSwitch(8) &&
(!dComIfGs_isSaveSwitch(9))) ||
(!dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(9)))
{
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if (param_1 == 102 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(9)) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
}
if (param_1 == 103 && dComIfGs_isSaveSwitch(8)) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
}
if (param_1 == 104 && dComIfGs_isSaveSwitch(9)) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
}
if (param_1 == 105 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) {
- field_0x28c.registMultiSePos(param_2);
+ field_0x28c.registMultiSePos(posPtr);
} else if (param_1 == 107 && dComIfGs_isSaveSwitch(8) && !dComIfGs_isSaveSwitch(3)) {
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
}
if (param_1 == 106 && dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) {
- field_0x28c.registMultiSePos(param_2);
+ field_0x28c.registMultiSePos(posPtr);
} else if (param_1 == 108 && dComIfGs_isSaveSwitch(9) && !dComIfGs_isSaveSwitch(1)) {
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
}
break;
case 7:
if (dComIfGs_isSaveSwitch(8)) {
if (param_1 == 103) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 107) {
- mFallSeMgr.registMultiSePos(param_2);
+ mFallSeMgr.registMultiSePos(posPtr);
}
}
break;
case 8:
if (dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) {
if (param_1 == 101) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if (param_1 == 103) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 107) {
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
}
} else if (param_1 == 100) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
}
break;
case 10:
if ((param_1 == 100) && dComIfGs_isSaveSwitch(0x31)) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if (param_1 == 103 && dComIfGs_isSaveSwitch(0x31)) {
- field_0x28c.registMultiSePos(param_2);
+ field_0x28c.registMultiSePos(posPtr);
} else if (param_1 == 104 && (dComIfGs_isSaveSwitch(8))) {
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
} else if (param_1 == 107 && dComIfGs_isSaveSwitch(0x31)) {
- mFallSeMgr.registMultiSePos(param_2);
+ mFallSeMgr.registMultiSePos(posPtr);
}
break;
case 11:
if (dComIfGs_isSaveSwitch(9)) {
if (param_1 == 101) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if (param_1 == 103) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 107) {
- mFallSeMgr.registMultiSePos(param_2);
+ mFallSeMgr.registMultiSePos(posPtr);
}
} else if (param_1 == 100) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
}
break;
case 12:
if (dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) {
if (param_1 == 103) {
- field_0x224.registMultiSePos(param_2);
+ field_0x224.registMultiSePos(posPtr);
} else if (param_1 == 107) {
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
}
}
break;
case 13:
if (dComIfGs_isSaveSwitch(0x30)) {
if (param_1 == 101) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
} else if (param_1 == 103) {
- field_0x28c.registMultiSePos(param_2);
+ field_0x28c.registMultiSePos(posPtr);
} else if ((param_1 == 104) && (dComIfGs_isSaveSwitch(9))) {
- field_0x258.registMultiSePos(param_2);
+ field_0x258.registMultiSePos(posPtr);
} else if (param_1 == 107) {
- mFallSeMgr.registMultiSePos(param_2);
+ mFallSeMgr.registMultiSePos(posPtr);
}
} else if (param_1 == 100) {
- mEtcSeMgr.registMultiSePos(param_2);
+ mEtcSeMgr.registMultiSePos(posPtr);
}
}
}
}
/* 802CA794-802CAAC0 2C50D4 032C+00 1/1 1/1 0/0 .text startLv3WaterSe__10Z2EnvSeMgrFSc */
-void Z2EnvSeMgr::startLv3WaterSe(s8 param_1) {
- if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x2e) {
- if (param_1 >= 0) {
- field_0x140 = param_1;
+void Z2EnvSeMgr::startLv3WaterSe(s8 reverb) {
+ if (Z2GetSceneMgr()->getCurrentSceneNum() == Z2SCENE_LAKEBED_TEMPLE) {
+ if (reverb >= 0) {
+ field_0x140 = reverb;
return;
}
- param_1 = field_0x140;
+ reverb = field_0x140;
}
+
JAISoundID aJStack_60 = 0xffffffff;
- f32 dVar12 = param_1 / 127.0f;
+ f32 dVar12 = reverb / 127.0f;
f32 maxVolume;
f32 panPower;
f32 dolbyPower;
+
if (field_0x224.getPosCount() >= 0) {
if (field_0x248 == 0x73) {
aJStack_60 = Z2SE_ENV_WATER_WAY;
@@ -1770,12 +1920,14 @@ void Z2EnvSeMgr::startLv3WaterSe(s8 param_1) {
field_0x250, 0);
field_0x224.resetMultiSePos();
}
+
if (field_0x258.getPosCount() >= 0) {
if (field_0x27c == 0x74) {
aJStack_60 = Z2SE_ENV_WATER_WAY;
} else if (field_0x27c == 0x6f) {
aJStack_60 = Z2SE_ENV_WATERFALL_CALM;
}
+
maxVolume = field_0x280 * field_0x258.getMaxVolume();
panPower = field_0x258.getPanPower();
dolbyPower = field_0x258.getDolbyPower();
@@ -1784,6 +1936,7 @@ void Z2EnvSeMgr::startLv3WaterSe(s8 param_1) {
field_0x284, 0);
field_0x258.resetMultiSePos();
}
+
if (field_0x28c.getPosCount() >= 0) {
if (field_0x2b0 == 0x75) {
aJStack_60 = Z2SE_ENV_WATER_WAY_L;
@@ -1800,7 +1953,8 @@ void Z2EnvSeMgr::startLv3WaterSe(s8 param_1) {
field_0x2b8, 0);
field_0x28c.resetMultiSePos();
}
- startRiverSe(param_1);
- startFallSe(param_1);
- startEtcSe(param_1);
+
+ startRiverSe(reverb);
+ startFallSe(reverb);
+ startEtcSe(reverb);
}