diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-27 21:19:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-27 21:19:33 -0800 |
| commit | 6f96e665186c87f15acb6f5cb8d27665afee3130 (patch) | |
| tree | 3ea70fe7d635a0f55aae44b1a386814766a46597 /src/Z2AudioLib/Z2SeMgr.cpp | |
| parent | 767caeecc3e374779cccc9960b6546b74e7a9e50 (diff) | |
various Z2Audio / JAudio debug cleanup (#2876)
* some JAudio work
* audio cleanup checkpoint
* checkpoint more audio cleanup
* fix symbols
* more z2 cleanup
* fix regression
* fix build
* some fixes
Diffstat (limited to 'src/Z2AudioLib/Z2SeMgr.cpp')
| -rw-r--r-- | src/Z2AudioLib/Z2SeMgr.cpp | 691 |
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(); |
