summaryrefslogtreecommitdiff
path: root/src/Z2AudioLib/Z2SeMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Z2AudioLib/Z2SeMgr.cpp')
-rw-r--r--src/Z2AudioLib/Z2SeMgr.cpp691
1 files changed, 359 insertions, 332 deletions
diff --git a/src/Z2AudioLib/Z2SeMgr.cpp b/src/Z2AudioLib/Z2SeMgr.cpp
index cbb20a3614..f4f02fe6e9 100644
--- a/src/Z2AudioLib/Z2SeMgr.cpp
+++ b/src/Z2AudioLib/Z2SeMgr.cpp
@@ -1,8 +1,3 @@
-//
-// Generated By: dol2asm
-// Translation Unit: Z2SeMgr
-//
-
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2Audience.h"
#include "Z2AudioLib/Z2Calc.h"
@@ -16,7 +11,7 @@
#include "JSystem/J3DU/J3DUD.h"
/* 802AB64C-802AB710 2A5F8C 00C4+00 0/0 1/1 0/0 .text __ct__7Z2SeMgrFv */
-Z2SeMgr::Z2SeMgr() : JASGlobalInstance(this), mSoundHandles(mSoundHandle, 0x18) {
+Z2SeMgr::Z2SeMgr() : JASGlobalInstance(true), mSoundHandles(mSoundHandle, 24) {
field_0x3c0 = 0;
field_0x3c1 = 0;
field_0x3c2 = 0;
@@ -31,24 +26,34 @@ Z2SeMgr::Z2SeMgr() : JASGlobalInstance(this), mSoundHandles(mSoundHandle, 0x18)
}
Z2MultiSeObj::Z2MultiSeObj() {
- mSoundID = 0xFFFFFFFF;
- field_0x20 = 0;
+ soundID_ = 0xFFFFFFFF;
+ reverb_ = 0;
}
/* 802AB750-802AB80C 2A6090 00BC+00 0/0 1/1 0/0 .text initSe__7Z2SeMgrFv */
void Z2SeMgr::initSe() {
+ #if VERSION == VERSION_SHIELD_DEBUG
+ dbg_field_0x68.releaseSound();
+ dbg_field_0x6c = 0.5f;
+ dbg_field_0x70 = 0.0f;
+ dbg_field_0x74 = 0.0f;
+ dbg_field_0x78 = 0.0f;
+ #endif
+
for (u8 i = 0; i < 10; i++) {
mLevelObjSe[i].resetMultiSePos();
- mLevelObjSe[i].mSoundID = 0xffffffff;
- mLevelObjSe[i].field_0x20 = 0;
+ mLevelObjSe[i].soundID_ = 0xFFFFFFFF;
+ mLevelObjSe[i].reverb_ = 0;
}
+
mLevelObjectSeCount = 0;
for (u8 i = 0; i < 10; i++) {
mMultiTriggerSe[i].resetMultiSePos();
- mMultiTriggerSe[i].mSoundID = 0xffffffff;
- mMultiTriggerSe[i].field_0x20 = 0;
+ mMultiTriggerSe[i].soundID_ = 0xFFFFFFFF;
+ mMultiTriggerSe[i].reverb_ = 0;
}
+
mMultiTriggerSeCount = 0;
resetModY();
}
@@ -61,7 +66,7 @@ void Z2SeMgr::resetModY() {
/* 802AB830-802AB93C 2A6170 010C+00 1/1 0/0 0/0 .text modHeightAtCamera__7Z2SeMgrFPPC3Vec
*/
-void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
+void Z2SeMgr::modHeightAtCamera(const Vec** param_0) {
if (*param_0 != NULL) {
int idx = 9999;
for (int i = 0; i < 8; i++) {
@@ -70,8 +75,9 @@ void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
break;
}
}
+
if (idx == 9999) {
- int i;
+ int i = 0;
for (i = 0; i < 8; i++) {
if (mModY[i] == NULL) {
idx = i;
@@ -79,15 +85,19 @@ void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
break;
}
}
+
if (i == 8) {
+ JUT_WARN_DEVICE(126, 1, "%s", "Z2SeMgr: cannot mod cam_y");
return;
}
}
+
field_0x340[idx] = **param_0;
Vec cam_pos = Z2GetAudience()->getAudioCamPos(0);
if (field_0x340[idx].y > cam_pos.y) {
field_0x340[idx].y = cam_pos.y;
}
+
*param_0 = &field_0x340[idx];
}
}
@@ -110,14 +120,14 @@ void Z2SeMgr::decrCrowdSize() {
/* 802AB984-802AC50C 2A62C4 0B88+00 1/1 196/196 549/549 .text
* seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc */
-bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_reverb,
- f32 i_pitch, f32 i_volume, f32 i_pan, f32 i_dolby, u8 param_8) {
- if (i_soundID == 0xffffffff) {
+bool Z2SeMgr::seStart(JAISoundID soundID, const Vec* posPtr, u32 param_2, s8 reverb,
+ f32 pitch, f32 volume, f32 pan, f32 dolby, u8 param_8) {
+ if (soundID == 0xFFFFFFFF) {
return false;
}
if (param_8 != 1) {
- switch (i_soundID) {
+ switch (soundID) {
case Z2SE_OBJ_L8_STAIR_ON:
case Z2SE_OBJ_L8_STAIR_MV_UP:
case Z2SE_OBJ_L8_STAIR_MV_DW:
@@ -126,12 +136,12 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
case Z2SE_OBJ_L8_L_BALL_SW_ON:
case Z2SE_OBJ_L8_L_LIFT_ON:
case Z2SE_OBJ_GANON_BARRIER_APPR:
- setMultiTriggerSE(i_soundID, const_cast<Vec*>(i_pos), i_reverb);
+ setMultiTriggerSE(soundID, const_cast<Vec*>(posPtr), reverb);
return false;
}
}
- switch (i_soundID) {
+ switch (soundID) {
case Z2SE_QUIT_GAME:
Z2GetStatusMgr()->menuOut();
break;
@@ -181,28 +191,26 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
return false;
}
param_2 = param_2 * param_2;
- i_volume = param_2 / 10000.0f;
+ volume = param_2 / 10000.0f;
break;
case Z2SE_OBJ_BOMB_BOUND:
- if (i_volume >= 100.0f) {
- i_volume = 100.0f;
+ if (volume >= 100.0f) {
+ volume = 100.0f;
}
- if (i_volume <= 0.0f) {
+ if (volume <= 0.0f) {
return false;
}
- i_volume = (i_volume * i_volume) / 10000.0f;
+ volume = (volume * volume) / 10000.0f;
break;
case Z2SE_OBJ_KEY_BOUND:
if (param_2 == 0) {
return false;
}
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.2f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.2f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_MAGIC_METER_DEC:
- if (mSoundHandles.getHandleSoundID(Z2SE_MAGIC_METER_DEC) != NULL
- || mSoundHandles.getHandleSoundID(Z2SE_MAGIC_METER_FINISH) != NULL)
- {
+ if (mSoundHandles.getHandleSoundID(Z2SE_MAGIC_METER_DEC) != NULL || mSoundHandles.getHandleSoundID(Z2SE_MAGIC_METER_FINISH) != NULL) {
return false;
}
break;
@@ -223,11 +231,11 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
case Z2SE_OBJ_BOARD_BOUND:
case Z2SE_OBJ_BOARD_PUT:
if (param_2 < 90) {
- i_volume = 0.7f;
- i_pitch = 1.25f;
+ volume = 0.7f;
+ pitch = 1.25f;
} else if (param_2 < 60) {
- i_volume = 0.4f;
- i_pitch = 1.5f;
+ volume = 0.4f;
+ pitch = 1.5f;
}
break;
case Z2SE_SY_TALK_START:
@@ -238,14 +246,14 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
break;
case Z2SE_SY_TALK_NEXT:
if (Z2GetStatusMgr()->isMovieDemo()) {
- i_soundID = Z2SE_SY_DEMO_MESSAGE_NEXT;
+ soundID = Z2SE_SY_DEMO_MESSAGE_NEXT;
}
break;
case Z2SE_SY_TALK_WIN_CLOSE:
if (Z2GetStatusMgr()->getDemoStatus() == 1) {
- i_soundID = Z2SE_SY_TALK_END;
+ soundID = Z2SE_SY_TALK_END;
} else if (Z2GetStatusMgr()->isMovieDemo()) {
- i_soundID = Z2SE_SY_DEMO_MESSAGE_END;
+ soundID = Z2SE_SY_DEMO_MESSAGE_END;
}
break;
case Z2SE_HP_GAUGE_INC:
@@ -255,34 +263,34 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
break;
case Z2SE_OBJ_CHANDELIER_SWING: {
Vec tmp = Z2GetAudience()->getAudioCamPos(0);
- if (i_pos->y > tmp.y) {
+ if (posPtr->y > tmp.y) {
return false;
}
break;
}
case Z2SE_OBJ_CHANDLV5_SWING:
- i_volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f,
- Z2Calc::CURVE_SIGN_2);
+ volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f,
+ Z2Calc::CURVE_LINEAR);
break;
case Z2SE_OBJ_IRONBALL_HIT:
if (param_2 > 150) {
- i_volume = 1.4f;
+ volume = 1.4f;
} else {
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 47.0f, 0.4f, 0.5f, 0.9f,
- Z2Calc::CURVE_SIGN_2);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 47.0f, 0.4f, 0.5f, 0.9f,
+ Z2Calc::CURVE_LINEAR);
}
break;
case Z2SE_OBJ_IRONBALL_HIT_SNOW:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 41.0f, 0.4f, 0.3f, 1.0f,
- Z2Calc::CURVE_SIGN_2);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 41.0f, 0.4f, 0.3f, 1.0f,
+ Z2Calc::CURVE_LINEAR);
break;
case Z2SE_OBJ_IRONBALL_HIT_ICE:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 41.0f, 0.4f, 0.3f, 1.0f,
- Z2Calc::CURVE_SIGN_2);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 41.0f, 0.4f, 0.3f, 1.0f,
+ Z2Calc::CURVE_LINEAR);
break;
case Z2SE_OBJ_L8_B_FOG_FLY: {
Vec tmp = Z2GetAudience()->getAudioCamPos(0);
- if (i_pos->y > tmp.y) {
+ if (posPtr->y > tmp.y) {
return false;
}
break;
@@ -296,29 +304,29 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
seStart(param_2 + 0x8C, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
break;
case Z2SE_OBJ_AMATA_ACTION:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.5f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.8f, 1.1f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.5f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.8f, 1.1f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_TOY_BONE_BOUND:
- i_volume = Z2Calc::getParamByExp(param_2, 15.0f, 60.0f, 0.4f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
+ volume = Z2Calc::getParamByExp(param_2, 15.0f, 60.0f, 0.4f, 0.0f, 1.0f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_FN_ROPE_CREAK_ADD:
param_2 = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.2f, 0.0f, 127.0f,
- Z2Calc::CURVE_SIGN_0);
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.2f, 0.2f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 127.0f, 0.0f, 0.2f, 0.8f, 1.2f,
- Z2Calc::CURVE_SIGN_1);
+ Z2Calc::CURVE_NEGATIVE);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.2f, 0.2f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 127.0f, 0.0f, 0.2f, 0.8f, 1.2f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_OBJ_DARK_GATE_RIPPLE:
if (Z2GetSceneMgr()->getCurrentSceneNum() == 3) {
- i_soundID = Z2SE_OBJ_DARK_GATE_RIPPLE_WLF;
+ soundID = Z2SE_OBJ_DARK_GATE_RIPPLE_WLF;
} else if (Z2GetSceneMgr()->getCurrentSceneNum() == 30
&& Z2GetSceneMgr()->getCurrentRoomNum() == 7) {
- i_soundID = Z2SE_OBJ_DARK_GATE_RIPPLE_WLF;
+ soundID = Z2SE_OBJ_DARK_GATE_RIPPLE_WLF;
}
break;
case Z2SE_OBJ_ARMOR_SWING:
@@ -326,12 +334,12 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
break;
}
- if (isLevelSe(i_soundID)) {
- return seStartLevel(i_soundID, i_pos, param_2, i_reverb, i_pitch,
- i_volume, i_pan, i_dolby, param_8);
+ if (isLevelSe(soundID)) {
+ return seStartLevel(soundID, posPtr, param_2, reverb, pitch,
+ volume, pan, dolby, param_8);
}
- if (isSoundCulling(i_soundID)) {
+ if (isSoundCulling(soundID)) {
return false;
}
@@ -340,17 +348,17 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
return false;
}
- return Z2GetSoundStarter()->startSound(i_soundID, handle, (JGeometry::TVec3<f32>*)i_pos,
- param_2, i_reverb / 127.0f,
- i_pitch, i_volume, i_pan, i_dolby, 0);
+ return Z2GetSoundStarter()->startSound(soundID, handle, (JGeometry::TVec3<f32>*)posPtr,
+ param_2, reverb / 127.0f,
+ pitch, volume, pan, dolby, 0);
}
/* 802AC50C-802AD8B0 2A6E4C 13A4+00 3/2 19/19 199/199 .text
* seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc */
-bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_reverb,
- f32 i_pitch, f32 i_volume, f32 i_pan, f32 i_dolby, u8 param_8) {
+bool Z2SeMgr::seStartLevel(JAISoundID soundID, const Vec* posPtr, u32 param_2, s8 reverb,
+ f32 pitch, f32 volume, f32 pan, f32 dolby, u8 param_8) {
if (param_8 != 1) {
- switch (i_soundID) {
+ switch (soundID) {
case Z2SE_OBJ_FIRE_BURNING:
if (Z2GetStatusMgr()->getDemoStatus() == 2 || !Z2GetSceneMgr()->isInGame()) {
return false;
@@ -361,36 +369,36 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
case Z2SE_OBJ_L8_L_BALL_SW:
case Z2SE_OBJ_GANON_BARRIER:
case Z2SE_OBJ_CRVN_BURNING:
- setLevObjSE(i_soundID, const_cast<Vec*>(i_pos), i_reverb);
+ setLevObjSE(soundID, const_cast<Vec*>(posPtr), reverb);
return false;
}
}
- switch (i_soundID) {
+ switch (soundID) {
case Z2SE_OBJ_FLAG_TRAILING:
- i_volume = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.1f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.1f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.7f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_BRIDGE_TRAILING:
case Z2SE_OBJ_BROKENBRIDGE:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.4f, 0.1f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.4f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.4f, 0.1f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 0.4f, 0.7f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_BOOMSHTR_SWITCH:
if (param_2 < 10) {
param_2 = 10;
}
- i_volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
- i_pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_1);
+ volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
+ Z2Calc::CURVE_POSITIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_OBJ_FAN_WIND_S:
- modHeightAtCamera(&i_pos);
+ modHeightAtCamera(&posPtr);
break;
case Z2SE_OBJ_FAN_ROLL_S:
case Z2SE_OBJ_FAN_ROLL_M:
@@ -398,175 +406,174 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
if (param_2 < 10) {
param_2 = 10;
}
- i_volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
- i_pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_1);
+ volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
+ Z2Calc::CURVE_POSITIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_OBJ_AMI_ROLL:
if (param_2 < 10) {
param_2 = 10;
}
- i_volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
- i_pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_1);
+ volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
+ Z2Calc::CURVE_POSITIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_OBJ_BRDG_MOVE:
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 2.0f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_1);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 127.0f, 2.0f, 0.7f, 1.2f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_ENV_WIND_SARUDAN:
- i_volume = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.4f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.8f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.4f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 25.0f, 127.0f, 0.4f, 0.8f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_CHANDLV9_SWING:
if (param_2 < 10) {
param_2 = 10;
}
- i_volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_1);
- i_pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_1);
+ volume = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.0f, 1.0f,
+ Z2Calc::CURVE_POSITIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 10.0f, 127.0f, 2.0f, 0.7f, 1.2f,
+ Z2Calc::CURVE_POSITIVE);
break;
case Z2SE_OBJ_BOMB_HOUSE_BURN:
if (param_2 > 300) {
seStartLevel(Z2SE_OBJ_BOMB_HOUSE_BURN_S, NULL, param_2, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
if (param_2 > 500) {
- i_volume = 1.0f;
- i_pitch = 1.3f;
+ volume = 1.0f;
+ pitch = 1.3f;
} else {
- i_volume = param_2 * 0.0006 + 0.7;
- i_pitch = param_2 * 0.0006 + 1.0;
+ volume = param_2 * 0.0006 + 0.7;
+ pitch = param_2 * 0.0006 + 1.0;
}
break;
case Z2SE_OBJ_BOMB_HOUSE_BURN_S:
if (param_2 > 500) {
- i_volume = 1.0f;
- i_pitch = (param_2 - 500) * 0.0015 + 1.0;
+ volume = 1.0f;
+ pitch = (param_2 - 500) * 0.0015 + 1.0;
} else if (param_2 < 300) {
- i_volume = 0.0f;
+ volume = 0.0f;
} else {
- i_volume = (param_2 - 300) * 0.005;
+ volume = (param_2 - 300) * 0.005;
}
break;
case Z2SE_OBJ_WTR_CLMN_UP:
if (param_2 <= 500) {
- i_pitch = 0.8f;
+ pitch = 0.8f;
} else if (param_2 > 500 && param_2 <= 1000) {
- i_pitch = 1.0f;
+ pitch = 1.0f;
} else if (param_2 > 1000 && param_2 <= 1500) {
- i_pitch = 1.0f;
+ pitch = 1.0f;
} else {
- i_pitch = 1.2f;
+ pitch = 1.2f;
}
- modHeightAtCamera(&i_pos);
+ modHeightAtCamera(&posPtr);
break;
case Z2SE_OBJ_WTR_CLMN_DOWN:
if (param_2 > 700) {
- i_pitch = 1.0f;
+ pitch = 1.0f;
} else {
- i_pitch = param_2 * 0.001 + 0.3;
+ pitch = param_2 * 0.001 + 0.3;
}
- modHeightAtCamera(&i_pos);
+ modHeightAtCamera(&posPtr);
break;
case Z2SE_OBJ_STN_SPRL_RAIL:
case Z2SE_OBJ_STN_SPRL_RAIL_DW:
- modHeightAtCamera(&i_pos);
+ modHeightAtCamera(&posPtr);
break;
case Z2SE_OBJ_SPNR_GEAR_S:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 4000.0f, 0.4f, 0.3f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 4000.0f, 0.4f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 4000.0f, 0.4f, 0.3f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 4000.0f, 0.4f, 0.7f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_SPNR_GEAR_L:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 3500.0f, 0.4f, 0.3f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 3500.0f, 0.4f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 3500.0f, 0.4f, 0.3f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 3500.0f, 0.4f, 0.7f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_TOGE_SPIN:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 26.0f, 0.4f, 0.6f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 26.0f, 0.4f, 0.8f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 26.0f, 0.4f, 0.6f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 26.0f, 0.4f, 0.8f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_STN_WL_RL:
case Z2SE_OBJ_STN_WL_RL_OP:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 64.0f, 0.4f, 0.3f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 64.0f, 0.4f, 0.6f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 64.0f, 0.4f, 0.3f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 64.0f, 0.4f, 0.6f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_SPNR_SW_RL:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 4500.0f, 0.4f, 0.6f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 4500.0f, 0.4f, 0.7f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 4500.0f, 0.4f, 0.6f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 4500.0f, 0.4f, 0.7f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_TOGE_ROLL_MV:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 40.0f, 0.4f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 40.0f, 0.4f, 0.8f, 1.2f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 40.0f, 0.4f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 40.0f, 0.4f, 0.8f, 1.2f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_L8_L_TORCH_SW:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 120.0f, 0.4f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 120.0f, 0.4f, 0.9f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 120.0f, 0.4f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 120.0f, 0.4f, 0.9f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_L8_B_FOG_STAY:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.4f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.4f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_L8_B_FALL_S:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.4f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.4f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_L8_B_FALL_L:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.4f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 100.0f, 0.4f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_L8_L_LIFT_MV:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 5.0f, 0.4f, 0.5f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 5.0f, 0.4f, 0.7f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 5.0f, 0.4f, 0.5f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 5.0f, 0.4f, 0.7f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_AMATA_CRK:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.5f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
- i_pitch = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.8f, 1.1f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.5f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
+ pitch = Z2Calc::getParamByExp(param_2, 0.0f, 400.0f, 0.4f, 0.8f, 1.1f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_OBJ_HYRULE_BARRIER:
- if (Z2GetSceneMgr()->getCurrentSceneNum() != 0x16) {
+ if (Z2GetSceneMgr()->getCurrentSceneNum() != Z2SCENE_CASTLE_TOWN) {
break;
}
// fallthrough
case Z2SE_OBJ_DARK_GATE:
- if (!Z2GetSceneMgr()->isInDarkness() && i_pos != NULL
- && Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL)
+ if (!Z2GetSceneMgr()->isInDarkness() && posPtr != NULL && Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL)
{
- f32 dist = sqrtf(VECSquareDistance(i_pos, Z2GetLink()->getCurrentPos()));
+ f32 dist = sqrtf(VECSquareDistance(posPtr, Z2GetLink()->getCurrentPos()));
f32 gate_volume = 1.0f;
if (dist < 2000.0f) {
gate_volume = 0.0f;
} else if (dist < 4000.0f) {
gate_volume = Z2Calc::getParamByExp(dist, 2000.0f, 5000.0f, 0.45f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ Z2Calc::CURVE_NEGATIVE);
}
Z2GetSeqMgr()->setTwilightGateVol(gate_volume);
}
break;
case Z2SE_OBJ_HASU_WTR:
- i_volume = Z2Calc::getParamByExp(param_2, 0.0f, 50.0f, 0.4f, 0.5f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(param_2, 0.0f, 50.0f, 0.4f, 0.5f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
case Z2SE_ENV_PEOPLE_CROWD: {
f32 scale = 1.0f;
@@ -574,6 +581,7 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
scale = Z2Calc::linearTransform(J3DUD::JMAAbs(Z2GetLink()->getCurrentPos()->x),
600.0f, 3500.0f, 1.0f, 0.1f, false);
}
+
switch (Z2GetStatusMgr()->getHour()) {
case 0:
case 1:
@@ -624,8 +632,8 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
scale *= 0.2f;
break;
}
- i_volume = Z2Calc::getParamByExp(mCrowdSize * scale, 5.0f, 90.0f, 0.2f, 0.0f, 1.0f,
- Z2Calc::CURVE_SIGN_0);
+ volume = Z2Calc::getParamByExp(mCrowdSize * scale, 5.0f, 90.0f, 0.2f, 0.0f, 1.0f,
+ Z2Calc::CURVE_NEGATIVE);
break;
}
case Z2SE_AL_COPYROD_WAIT:
@@ -634,17 +642,15 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
}
for (int i = 0; i < 24; i++) {
- if (mSoundHandles[i] && mSoundHandles[i]->getID() == i_soundID
- && i_pos == (Vec*)mSoundHandles[i]->getUserData())
- {
+ if (mSoundHandles[i] && mSoundHandles[i]->getID() == soundID && posPtr == (Vec*)mSoundHandles[i]->getUserData()) {
if (param_8 == 1) {
- i_volume = Z2GetAudience()->calcOffMicSound(i_volume);
+ volume = Z2GetAudience()->calcOffMicSound(volume);
}
mSoundHandles[i]->updateLifeTime(1);
- if (i_pos != NULL) {
- mSoundHandles[i]->setPos((JGeometry::TVec3<f32>)*i_pos);
+ if (posPtr != NULL) {
+ mSoundHandles[i]->setPos((JGeometry::TVec3<f32>)*posPtr);
}
if (param_2 != 0) {
@@ -652,27 +658,27 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
Z2GetSoundStarter()->setPortData(handle, 6, param_2, -1);
}
- if (i_reverb != 0) {
- mSoundHandles[i]->getAuxiliary().moveFxMix(i_reverb / 127.0f, 0);
+ if (reverb != 0) {
+ mSoundHandles[i]->getAuxiliary().moveFxMix(reverb / 127.0f, 0);
}
- if (i_pitch != 1.0f) {
- mSoundHandles[i]->getAuxiliary().movePitch(i_pitch, 0);
+ if (pitch != 1.0f) {
+ mSoundHandles[i]->getAuxiliary().movePitch(pitch, 0);
}
- if (i_volume != 1.0f) {
- mSoundHandles[i]->getAuxiliary().moveVolume(i_volume, 0);
+ if (volume != 1.0f) {
+ mSoundHandles[i]->getAuxiliary().moveVolume(volume, 0);
}
- if (i_pan != -1.0f) {
- mSoundHandles[i]->getAuxiliary().movePan(i_pan, 0);
+ if (pan != -1.0f) {
+ mSoundHandles[i]->getAuxiliary().movePan(pan, 0);
}
- if (i_dolby != -1.0f) {
- mSoundHandles[i]->getAuxiliary().moveDolby(i_dolby, 0);
+ if (dolby != -1.0f) {
+ mSoundHandles[i]->getAuxiliary().moveDolby(dolby, 0);
}
return true;
}
}
- if (isSoundCulling(i_soundID)) {
+ if (isSoundCulling(soundID)) {
return false;
}
@@ -681,20 +687,20 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
return false;
}
- bool ret = Z2GetSoundStarter()->startSound(i_soundID, handle, (JGeometry::TVec3<f32>*)i_pos,
- param_2, i_reverb / 127.0f, i_pitch, i_volume,
- i_pan, i_dolby, false);
+ bool ret = Z2GetSoundStarter()->startSound(soundID, handle, (JGeometry::TVec3<f32>*)posPtr,
+ param_2, reverb / 127.0f, pitch, volume,
+ pan, dolby, false);
if (handle != NULL && *handle) {
- if (i_soundID == Z2SE_OBJ_BOMB_HOUSE_BURN) {
+ if (soundID == Z2SE_OBJ_BOMB_HOUSE_BURN) {
Z2GetSeqMgr()->bgmStart(Z2BGM_EVENT02, 0, 0);
}
if (param_8 == 1) {
- Z2GetAudience()->calcOffMicSound(i_volume);
+ Z2GetAudience()->calcOffMicSound(volume);
}
- (*handle)->setUserData((uintptr_t)i_pos);
+ (*handle)->setUserData((uintptr_t)posPtr);
if (ret) {
(*handle)->setLifeTime(1, false);
@@ -705,11 +711,11 @@ bool Z2SeMgr::seStartLevel(JAISoundID i_soundID, Vec const* i_pos, u32 param_2,
}
/* 802AD8B0-802AD94C 2A81F0 009C+00 1/1 0/0 4/4 .text seStop__7Z2SeMgrF10JAISoundIDUl */
-void Z2SeMgr::seStop(JAISoundID i_soundID, u32 i_count) {
- if (i_soundID != -1) {
+void Z2SeMgr::seStop(JAISoundID soundID, u32 fadeTime) {
+ if (soundID != -1) {
for (u8 i = 0; i < 24; i++) {
- if (mSoundHandles[i] && mSoundHandles[i]->getID() == i_soundID) {
- mSoundHandles[i]->stop(i_count);
+ if (mSoundHandles[i] && mSoundHandles[i]->getID() == soundID) {
+ mSoundHandles[i]->stop(fadeTime);
mSoundHandles[i].releaseSound();
}
}
@@ -717,45 +723,38 @@ void Z2SeMgr::seStop(JAISoundID i_soundID, u32 i_count) {
}
/* 802AD94C-802AD9F4 2A828C 00A8+00 0/0 1/1 0/0 .text seStopAll__7Z2SeMgrFUl */
-void Z2SeMgr::seStopAll(u32 i_count) {
- JAISeMgr* se_mgr = Z2GetSoundMgr()->getSeMgr();
- se_mgr->getCategory(0)->stop(i_count);
- se_mgr->getCategory(1)->stop(i_count);
- se_mgr->getCategory(2)->stop(i_count);
- se_mgr->getCategory(3)->stop(i_count);
- se_mgr->getCategory(4)->stop(i_count);
- se_mgr->getCategory(5)->stop(i_count);
- se_mgr->getCategory(6)->stop(i_count);
- se_mgr->getCategory(7)->stop(i_count);
- se_mgr->getCategory(8)->stop(i_count);
- se_mgr->getCategory(9)->stop(i_count);
+void Z2SeMgr::seStopAll(u32 fadeTime) {
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
+ seMgr->getCategory(0)->stop(fadeTime);
+ seMgr->getCategory(1)->stop(fadeTime);
+ seMgr->getCategory(2)->stop(fadeTime);
+ seMgr->getCategory(3)->stop(fadeTime);
+ seMgr->getCategory(4)->stop(fadeTime);
+ seMgr->getCategory(5)->stop(fadeTime);
+ seMgr->getCategory(6)->stop(fadeTime);
+ seMgr->getCategory(7)->stop(fadeTime);
+ seMgr->getCategory(8)->stop(fadeTime);
+ seMgr->getCategory(9)->stop(fadeTime);
}
/* 802AD9F4-802ADB14 2A8334 0120+00 3/3 5/5 1/1 .text seMoveVolumeAll__7Z2SeMgrFfUl */
-void Z2SeMgr::seMoveVolumeAll(f32 i_volume, u32 i_count) {
+void Z2SeMgr::seMoveVolumeAll(f32 volume, u32 moveTime) {
if (Z2GetStatusMgr()->getDemoStatus() == 13) {
- i_volume = 0.0f;
+ volume = 0.0f;
}
- JAISeMgr* se_mgr = Z2GetSoundMgr()->getSeMgr();
- se_mgr->getCategory(1)->getParams()
- ->moveVolume(Z2Param::VOL_SE_LINK_VOICE_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(2)->getParams()
- ->moveVolume(Z2Param::VOL_SE_LINK_MOTION_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(3)->getParams()
- ->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(4)->getParams()
- ->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(5)->getParams()
- ->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(6)->getParams()
- ->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(7)->getParams()
- ->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT * i_volume, i_count);
- se_mgr->getCategory(8)->getParams()
- ->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT * i_volume, i_count);
+
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
+ seMgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_DEFAULT * volume, moveTime);
+ seMgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_DEFAULT * volume, moveTime);
+ seMgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT * volume, moveTime);
+ seMgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT * volume, moveTime);
+ seMgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT * volume, moveTime);
+ seMgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_DEFAULT * volume, moveTime);
+ seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT * volume, moveTime);
+ seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT * volume, moveTime);
+
if (Z2GetStatusMgr()->getDemoStatus() != 12) {
- se_mgr->getCategory(9)->getParams()
- ->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT * i_volume, i_count);
+ seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT * volume, moveTime);
}
}
@@ -771,18 +770,20 @@ void Z2SeMgr::talkInSe() {
if (Z2GetStatusMgr()->getDemoStatus() == 13) {
seMoveVolumeAll(0.0f, 0);
}
- JAISeMgr* se_mgr = Z2GetSoundMgr()->getSeMgr();
- se_mgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_TALKING, 2);
- se_mgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_TALKING, 2);
- se_mgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_TALKING, 2);
- se_mgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_TALKING, 2);
- se_mgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_TALKING, 2);
- se_mgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_TALKING, 2);
- se_mgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_TALKING, 2);
- se_mgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_TALKING, 2);
- se_mgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_TALKING, 2);
+
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
+ seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_TALKING, 2);
+ seMgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_TALKING, 2);
+ seMgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_TALKING, 2);
+ seMgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_TALKING, 2);
+ seMgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_TALKING, 2);
+ seMgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_TALKING, 2);
+ seMgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_TALKING, 2);
+ seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_TALKING, 2);
+ seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_TALKING, 2);
+
if (Z2GetStatusMgr()->getDemoStatus() != 12) {
- se_mgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_TALKING, 2);
+ seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_TALKING, 2);
}
}
}
@@ -793,18 +794,20 @@ void Z2SeMgr::talkOutSe() {
if (Z2GetStatusMgr()->getDemoStatus() == 13) {
seMoveVolumeAll(0.0f, 0);
}
- JAISeMgr* se_mgr = Z2GetSoundMgr()->getSeMgr();
- se_mgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 2);
- se_mgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_DEFAULT, 2);
- se_mgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_DEFAULT, 2);
- se_mgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT, 2);
- se_mgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 2);
- se_mgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 2);
- se_mgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_DEFAULT, 2);
- se_mgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 2);
- se_mgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 2);
+
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
+ seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 2);
+ seMgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_DEFAULT, 2);
+ seMgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_DEFAULT, 2);
+ seMgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT, 2);
+ seMgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 2);
+ seMgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 2);
+ seMgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_DEFAULT, 2);
+ seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 2);
+ seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 2);
+
if (Z2GetStatusMgr()->getDemoStatus() != 12) {
- se_mgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 2);
+ seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 2);
}
}
}
@@ -815,48 +818,50 @@ void Z2SeMgr::menuInSe() {
if (Z2GetStatusMgr()->getDemoStatus() == 13) {
seMoveVolumeAll(0.0f, 0);
}
- JAISeMgr* se_mgr = Z2GetSoundMgr()->getSeMgr();
- se_mgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_PAUSING, 2);
- se_mgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_PAUSING, 2);
- se_mgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_PAUSING, 2);
- se_mgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_PAUSING, 2);
- se_mgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_PAUSING, 2);
- se_mgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_PAUSING, 2);
- se_mgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_PAUSING, 2);
- se_mgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_PAUSING, 2);
- se_mgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_PAUSING, 2);
+
+ JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr();
+ seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_PAUSING, 2);
+ seMgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_PAUSING, 2);
+ seMgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_PAUSING, 2);
+ seMgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_PAUSING, 2);
+ seMgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_PAUSING, 2);
+ seMgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_PAUSING, 2);
+ seMgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_PAUSING, 2);
+ seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_PAUSING, 2);
+ seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_PAUSING, 2);
+
if (Z2GetStatusMgr()->getDemoStatus() != 12) {
- se_mgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_PAUSING, 2);
+ seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_PAUSING, 2);
}
}
}
/* 802ADE5C-802ADFF4 2A879C 0198+00 1/1 0/0 0/0 .text setLevObjSE__7Z2SeMgrFUlP3VecSc */
-void Z2SeMgr::setLevObjSE(u32 i_soundID, Vec* i_pos, s8 param_2) {
+void Z2SeMgr::setLevObjSE(u32 soundID, Vec* posPtr, s8 reverb) {
u8 i = 0;
for (; i < mLevelObjectSeCount; i++) {
- if (mLevelObjSe[i].mSoundID == i_soundID) {
+ if (mLevelObjSe[i].soundID_ == soundID) {
break;
}
}
+
if (i == mLevelObjectSeCount) {
if (mLevelObjectSeCount == 10) {
return;
}
- mLevelObjSe[i].mSoundID = i_soundID;
+ mLevelObjSe[i].soundID_ = soundID;
mLevelObjectSeCount++;
}
+
f32 volume_scale = 1.0f;
Vec pos = {0.0f, 0.0f, -50.0f};
- if (i_pos != NULL) {
- pos = *i_pos;
+ if (posPtr != NULL) {
+ pos = *posPtr;
} else {
- // fake match, should be something like pos = Z2GetAudience()->getAudioCamPos();
- Vec tmp;
- JGeometry::setTVec3f(*(Vec*)Z2GetAudience()->mAudioCamera[0].getPos(), tmp);
- pos = tmp;
+ pos = Z2GetAudience()->getAudioCamPos(0);
}
- switch (i_soundID) {
+
+ switch (soundID) {
case Z2SE_OBJ_FIRE_BURNING:
volume_scale = 0.7f;
break;
@@ -867,39 +872,40 @@ void Z2SeMgr::setLevObjSE(u32 i_soundID, Vec* i_pos, s8 param_2) {
case Z2SE_OBJ_L8_L_BALL_SW:
break;
}
- mLevelObjSe[i].mVolumeScale = volume_scale;
+
+ mLevelObjSe[i].setVolumeScale(volume_scale);
mLevelObjSe[i].registMultiSePos((Vec*)&pos);
- if (mLevelObjSe[i].field_0x20 < param_2) {
- mLevelObjSe[i].field_0x20 = param_2;
+ if (mLevelObjSe[i].reverb_ < reverb) {
+ mLevelObjSe[i].reverb_ = reverb;
}
}
/* 802ADFF4-802AE184 2A8934 0190+00 1/1 0/0 0/0 .text setMultiTriggerSE__7Z2SeMgrFUlP3VecSc */
-void Z2SeMgr::setMultiTriggerSE(u32 i_soundID, Vec* i_pos, s8 param_2) {
+void Z2SeMgr::setMultiTriggerSE(u32 soundID, Vec* posPtr, s8 reverb) {
u8 i = 0;
for (; i < mMultiTriggerSeCount; i++) {
- if (mMultiTriggerSe[i].mSoundID == i_soundID) {
+ if (mMultiTriggerSe[i].soundID_ == soundID) {
break;
}
}
+
if (i == mMultiTriggerSeCount) {
if (mMultiTriggerSeCount == 10) {
return;
}
- mMultiTriggerSe[i].mSoundID = i_soundID;
+ mMultiTriggerSe[i].soundID_ = soundID;
mMultiTriggerSeCount++;
}
+
f32 volume_scale = 1.0f;
Vec pos = {0.0f, 0.0f, -50.0f};
- if (i_pos != NULL) {
- pos = *i_pos;
+ if (posPtr != NULL) {
+ pos = *posPtr;
} else {
- // fake match, should be something like pos = Z2GetAudience()->getAudioCamPos();
- Vec tmp;
- JGeometry::setTVec3f(*(Vec*)Z2GetAudience()->mAudioCamera[0].getPos(), tmp);
- pos = tmp;
+ pos = Z2GetAudience()->getAudioCamPos(0);
}
- switch (i_soundID) {
+
+ switch (soundID) {
case Z2SE_OBJ_L8_STAIR_ON:
case Z2SE_OBJ_L8_STAIR_MV_UP:
case Z2SE_OBJ_L8_STAIR_MV_DW:
@@ -912,10 +918,11 @@ void Z2SeMgr::setMultiTriggerSE(u32 i_soundID, Vec* i_pos, s8 param_2) {
volume_scale = 1.3f;
break;
}
- mMultiTriggerSe[i].mVolumeScale = volume_scale;
+
+ mMultiTriggerSe[i].setVolumeScale(volume_scale);
mMultiTriggerSe[i].registMultiSePos((Vec*)&pos);
- if (mMultiTriggerSe[i].field_0x20 < param_2) {
- mMultiTriggerSe[i].field_0x20 = param_2;
+ if (mMultiTriggerSe[i].reverb_ < reverb) {
+ mMultiTriggerSe[i].reverb_ = reverb;
}
}
@@ -924,72 +931,86 @@ void Z2SeMgr::processSeFramework() {
if (Z2GetSceneMgr()->isSceneExist() && mCrowdSize != 0) {
seStartLevel(Z2SE_ENV_PEOPLE_CROWD, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
+
for (u8 i = 0; i < mLevelObjectSeCount; i++) {
f32 volume = mLevelObjSe[i].getMaxVolume();
- seStartLevel(mLevelObjSe[i].mSoundID, NULL, 0, mLevelObjSe[i].field_0x20, 1.0f,
+ seStartLevel(mLevelObjSe[i].soundID_, NULL, 0, mLevelObjSe[i].reverb_, 1.0f,
volume, mLevelObjSe[i].getPanPower(), mLevelObjSe[i].getDolbyPower(), 1);
}
+
for (u8 i = 0; i < 10; i++) {
mLevelObjSe[i].resetMultiSePos();
- mLevelObjSe[i].mSoundID = -1;
- mLevelObjSe[i].field_0x20 = 0;
+ mLevelObjSe[i].soundID_ = -1;
+ mLevelObjSe[i].reverb_ = 0;
}
+
mLevelObjectSeCount = 0;
for (u8 i = 0; i < mMultiTriggerSeCount; i++) {
f32 volume = mMultiTriggerSe[i].getMaxVolume();
- seStart(mMultiTriggerSe[i].mSoundID, NULL, 0, mMultiTriggerSe[i].field_0x20, 1.0f,
+ seStart(mMultiTriggerSe[i].soundID_, NULL, 0, mMultiTriggerSe[i].reverb_, 1.0f,
volume, mMultiTriggerSe[i].getPanPower(),
mMultiTriggerSe[i].getDolbyPower(), 1);
}
+
for (u8 i = 0; i < 10; i++) {
mMultiTriggerSe[i].resetMultiSePos();
- mMultiTriggerSe[i].mSoundID = -1;
- mMultiTriggerSe[i].field_0x20 = 0;
+ mMultiTriggerSe[i].soundID_ = -1;
+ mMultiTriggerSe[i].reverb_ = 0;
}
+
mMultiTriggerSeCount = 0;
field_0x3c9 = 0;
field_0x3ca = 0;
field_0x3cb = 0;
+
if (field_0x3c2 != 0) {
field_0x3c2--;
} else {
field_0x3c2 = 0;
}
+
if (field_0x3c3 != 0) {
field_0x3c3--;
} else {
field_0x3c3 = 0;
}
+
if (field_0x3c4 != 0) {
field_0x3c4--;
} else {
field_0x3c4 = 0;
}
+
if (field_0x3c5 != 0) {
field_0x3c5--;
} else {
field_0x3c5 = 0;
}
+
if (field_0x3c0 != 0) {
field_0x3c0--;
} else {
field_0x3c0 = 0;
}
+
if (field_0x3c1 != 0) {
field_0x3c1--;
} else {
field_0x3c1 = 0;
}
+
if (field_0x3c6 != 0) {
field_0x3c6--;
} else {
field_0x3c6 = 0;
}
+
if (field_0x3c7 != 0) {
field_0x3c7--;
} else {
field_0x3c7 = 0;
}
+
if (field_0x3c8 != 0) {
field_0x3c8--;
} else {
@@ -999,8 +1020,8 @@ void Z2SeMgr::processSeFramework() {
/* 802AE524-802AE5B0 2A8E64 008C+00 1/1 0/0 0/0 .text isLevelSe__7Z2SeMgrF10JAISoundID */
-bool Z2SeMgr::isLevelSe(JAISoundID i_soundID) {
- switch (i_soundID) {
+bool Z2SeMgr::isLevelSe(JAISoundID soundID) {
+ switch (soundID) {
case JA_SE_LK_MOVE_ROCK:
case JA_SE_LK_MOVE_WBLOCK:
case Z2SE_OBJ_FIRE_BURNING:
@@ -1016,9 +1037,9 @@ bool Z2SeMgr::isLevelSe(JAISoundID i_soundID) {
}
/* 802AE5B0-802AEB04 2A8EF0 0554+00 2/2 3/3 0/0 .text isSoundCulling__7Z2SeMgrF10JAISoundID */
-bool Z2SeMgr::isSoundCulling(JAISoundID i_soundID) {
+bool Z2SeMgr::isSoundCulling(JAISoundID soundID) {
if (Z2GetSeqMgr()->isItemGetDemo()) {
- switch (i_soundID) {
+ switch (soundID) {
case Z2SE_HP_GAUGE_INC:
case Z2SE_SY_TALK_NEXT:
case Z2SE_SY_TALK_END:
@@ -1041,7 +1062,8 @@ bool Z2SeMgr::isSoundCulling(JAISoundID i_soundID) {
return true;
}
}
- switch (i_soundID) {
+
+ switch (soundID) {
case Z2SE_MIDNA_APPEAR:
case Z2SE_MIDNA_DISAPPEAR:
if (!Z2GetSceneMgr()->isSceneExist()) {
@@ -1097,15 +1119,15 @@ bool Z2SeMgr::isSoundCulling(JAISoundID i_soundID) {
return true;
}
field_0x3ca = 1;
- Z2GetSoundMgr()->multiVolumeSoundID(i_soundID, 0.5f);
+ Z2GetSoundMgr()->multiVolumeSoundID(soundID, 0.5f);
break;
case Z2SE_DARK_VANISH:
if (field_0x3cb != 0) {
return true;
}
field_0x3cb = 1;
- Z2GetSoundMgr()->stopSoundID(i_soundID);
- Z2GetSoundMgr()->multiVolumeSoundID(i_soundID, 0.5f);
+ Z2GetSoundMgr()->stopSoundID(soundID);
+ Z2GetSoundMgr()->multiVolumeSoundID(soundID, 0.5f);
break;
case Z2SE_EN_BS_V_DEAD:
case Z2SE_EN_FZ_BOUND:
@@ -1159,6 +1181,7 @@ bool Z2SeMgr::isSoundCulling(JAISoundID i_soundID) {
case Z2SE_EN_BS_APPEAR:
break;
}
+
return false;
}
@@ -1170,52 +1193,57 @@ Z2MultiSeMgr::Z2MultiSeMgr() {
Z2MultiSeMgr::~Z2MultiSeMgr() {}
/* 802AEB70-802AECBC 2A94B0 014C+00 2/2 6/6 0/0 .text registMultiSePos__12Z2MultiSeMgrFP3Vec */
-s8 Z2MultiSeMgr::registMultiSePos(Vec* i_pos) {
- if (i_pos == NULL) {
+s8 Z2MultiSeMgr::registMultiSePos(Vec* posPtr) {
+ if (posPtr == NULL) {
return 0;
}
- if (mPosCount < 0) {
- mPosCount = 0;
+
+ if (posCount_ < 0) {
+ posCount_ = 0;
}
+
Vec rel_pos;
- Z2GetAudience()->convertAbsToRel(*i_pos, &rel_pos, 0);
- f32 volume = Z2GetAudience()->calcRelPosVolume(rel_pos, mVolumeScale, 0);
+ Z2GetAudience()->convertAbsToRel(*posPtr, &rel_pos, 0);
+
+ f32 volume = Z2GetAudience()->calcRelPosVolume(rel_pos, volumeScale_, 0);
if (volume <= 0.0f) {
- return mPosCount;
+ return posCount_;
}
+
f32 pan = Z2GetAudience()->calcRelPosPan(rel_pos, 0);
f32 dolby = Z2GetAudience()->calcRelPosDolby(rel_pos, 0);
f32 pow_l = (1.0f - pan) * volume;
f32 pow_r = pan * volume;
f32 pow_f = (1.0f - dolby) * volume;
f32 pow_b = dolby * volume;
- if (volume > mMaxVolume) {
- mMaxVolume = volume;
+ if (volume > maxVolume_) {
+ maxVolume_ = volume;
}
- if (pow_l > mMaxPowL) {
- mMaxPowL = pow_l;
+ if (pow_l > maxPowL_) {
+ maxPowL_ = pow_l;
}
- if (pow_r > mMaxPowR) {
- mMaxPowR = pow_r;
+ if (pow_r > maxPowR_) {
+ maxPowR_ = pow_r;
}
- if (pow_f > mMaxPowF) {
- mMaxPowF = pow_f;
+ if (pow_f > maxPowF_) {
+ maxPowF_ = pow_f;
}
- if (pow_b > mMaxPowB) {
- mMaxPowB = pow_b;
+ if (pow_b > maxPowB_) {
+ maxPowB_ = pow_b;
}
- mPosCount++;
- return mPosCount;
+
+ posCount_++;
+ return posCount_;
}
-void Z2MultiSeMgr::resetMultiSePos(void) {
- mPosCount = -1;
- mMaxPowL = 0.0f;
- mMaxPowR = 0.0f;
- mMaxPowF = 0.0f;
- mMaxPowB = 0.0f;
- mMaxVolume = 0.0f;
+void Z2MultiSeMgr::resetMultiSePos() {
+ posCount_ = -1;
+ maxPowL_ = 0.0f;
+ maxPowR_ = 0.0f;
+ maxPowF_ = 0.0f;
+ maxPowB_ = 0.0f;
+ maxVolume_ = 0.0f;
}
/* 802AECE0-802AEDC0 2A9620 00E0+00 1/1 8/8 0/0 .text getPanPower__12Z2MultiSeMgrFv */
@@ -1231,7 +1259,6 @@ f32 Z2MultiSeMgr::getPanPower() {
}
}
-
/* 802AEDC0-802AEEA0 2A9700 00E0+00 1/1 8/8 0/0 .text getDolbyPower__12Z2MultiSeMgrFv */
f32 Z2MultiSeMgr::getDolbyPower() {
f32 pow_b = getMaxPowB();