diff options
Diffstat (limited to 'src/Z2AudioLib')
| -rw-r--r-- | src/Z2AudioLib/SpotName.h | 20 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2AudioMgr.cpp | 1 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2DebugSys.cpp | 110 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2EnvSeMgr.cpp | 87 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2F1TestWindow.cpp | 198 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2FxLineMgr.cpp | 443 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SceneMgr.cpp | 85 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SeqMgr.cpp | 85 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2StatusMgr.cpp | 85 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2WolfHowlMgr.cpp | 1 |
10 files changed, 714 insertions, 401 deletions
diff --git a/src/Z2AudioLib/SpotName.h b/src/Z2AudioLib/SpotName.h new file mode 100644 index 0000000000..e531fb7524 --- /dev/null +++ b/src/Z2AudioLib/SpotName.h @@ -0,0 +1,20 @@ +#ifndef SPOTNAME_H +#define SPOTNAME_H + +// This symbol has polluted multiple TUs in the lib, hence, +// it probably was defined in the header as static by accident +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 /* SPOTNAME_H */ diff --git a/src/Z2AudioLib/Z2AudioMgr.cpp b/src/Z2AudioLib/Z2AudioMgr.cpp index 58ef5fc997..1465515cb6 100644 --- a/src/Z2AudioLib/Z2AudioMgr.cpp +++ b/src/Z2AudioLib/Z2AudioMgr.cpp @@ -19,6 +19,7 @@ #endif Z2AudioMgr* Z2AudioMgr::mAudioMgrPtr; +u8 gMuffleOutOfRangeMic = false; Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) { mAudioMgrPtr = this; diff --git a/src/Z2AudioLib/Z2DebugSys.cpp b/src/Z2AudioLib/Z2DebugSys.cpp index 55ee66519c..59c125b110 100644 --- a/src/Z2AudioLib/Z2DebugSys.cpp +++ b/src/Z2AudioLib/Z2DebugSys.cpp @@ -14,14 +14,15 @@ #include "JSystem/JKernel/JKRExpHeap.h" #include "Z2AudioLib/Z2F1TestWindow.h" #include "Z2AudioLib/Z2FxLineMgr.h" +#include "Z2AudioLib/Z2Param.h" #include "Z2AudioLib/Z2SeView.h" #include "Z2AudioLib/Z2SoundPlayer.h" #include "Z2AudioLib/Z2TrackView.h" #include "Z2AudioLib/Z2WaveArcLoader.h" -#include "m_Do/m_Do_hostIO.h" #include "m_Do/m_Do_ext.h" +#include "m_Do/m_Do_hostIO.h" -Z2DebugSys::Z2DebugSys() : JASGlobalInstance<Z2DebugSys>(true) { } +Z2DebugSys::Z2DebugSys() : JASGlobalInstance<Z2DebugSys>(true) {} void Z2DebugSys::initJAW() { JKRHeap* oldHeap = JKRHeap::getCurrentHeap(); @@ -117,3 +118,108 @@ JAISeqDataMgr* Z2DebugSys::initSeSeqDataMgr(const void* param_1) { JKRSetCurrentHeap(oldHeap); return seqDataMgr; } + +u8 gMicOn = true; +u8 gMicOffWhenOutOfSight = true; +extern u8 gMuffleOutOfRangeMic; + +void Z2ParamNode::message(JAHControl& ctrl) { + ctrl.makeComment("**** 各種パラメータ編集用ノード ****", 0, 5, 0); + ctrl.returnY(1); + ctrl.indent(1); + ctrl.makeCheckBox("BGM強制ボリュームON", &Z2GetSeqMgr()->field_0x04_debug, 1, false, 0); + ctrl.makeSlider("BGM強制ボリューム", &Z2GetSeqMgr()->field_0x00_debug, 0.0f, 1.0f, 0); + ctrl.returnY(1); + ctrl.makeComment("-- ミドナボイス --", 0, 5, 0); + ctrl.indent(1); + ctrl.makeSlider("発話スタイル", (s16*)Z2GetSpeechMgr2()->getStylePtr(), 0, 0x10, 0); + ctrl.makeSlider("語尾(1=UP)", Z2GetSpeechMgr2()->getTalkerPtr(), 0, 1, 0); + ctrl.indent(-1); + ctrl.makeComment("-- BGM汎用パラメータ --", 0, 5, 0); + ctrl.indent(1); + ctrl.makeSlider("シーンチェンジ時のBGMフェードアウトタイム", + &Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME, 0, 0xff, 0); + ctrl.makeSlider("BGMクロスフェードインタイム", &Z2Param::BGM_CROSS_FADEIN_TIME, 0, 0xff, 0); + ctrl.makeSlider("BGMクロスフェードアウトタイム", &Z2Param::BGM_CROSS_FADEOUT_TIME, 0, 0xff, + 0); + ctrl.indent(-1); + ctrl.makeComment("-- 戦闘BGMパラメータ --", 0, 5, 0); + ctrl.indent(1); + ctrl.makeSlider("戦闘BGMスタート禁止時間", &Z2Param::BATTLE_BGM_WAIT_TIME, 0, 0xff, 0); + ctrl.makeSlider("戦闘BGMスタート距離", &Z2Param::BATTLE_FADEIN_DIST, 0.0f, 5000.0f, 0); + ctrl.makeSlider("戦闘BGMフェードアウト距離", &Z2Param::BATTLE_FADEOUT_DIST, 0.0f, 5000.0f, + 0); + ctrl.makeSlider("接近戦状態距離", &Z2Param::ENEMY_NEARBY_DIST, 0.0f, 5000.0f, 0); + ctrl.makeSlider("接近戦トラックFIタイム", &Z2Param::CLOSE_BATTLE_TRACK_FI_TIME, 0, 0xff, 0); + ctrl.makeSlider("接近戦トラックFOタイム", &Z2Param::CLOSE_BATTLE_TRACK_FO_TIME, 0, 0xff, 0); + ctrl.makeSlider("見つかりトラックFIタイム", &Z2Param::FOUND_TRACK_FI_TIME, 0, 0xff, 0); + ctrl.makeSlider("見つかりトラックFOタイム", &Z2Param::FOUND_TRACK_FO_TIME, 0, 0xff, 0); + ctrl.makeSlider("最後の一撃音量下げ範囲", &Z2Param::ENEMY_LASTHIT_MUTE_VOLUME, 0.0f, 1.0f, 0); + ctrl.makeSlider("最後の一撃音量下げ時間", &Z2Param::ENDING_BLOW_VOL_DOWN_TIME, 0, 0xff, 0); + ctrl.makeSlider("最後の一撃音量下げ持続時間", &Z2Param::ENDING_BLOW_VOL_LOWER_TIME, 0, 0xff, 0); + ctrl.makeSlider("最後の一撃音量下げ復帰時間", &Z2Param::ENDING_BLOW_VOL_LOWER_RECOVER_TIME, 0, + 0xff, 0); + ctrl.makeSlider("最後の一撃〜フィニッシュ最低時間", &Z2Param::ENDING_BLOW_MIN_FINISH_TIME, 0, + 0xff, 0); + ctrl.indent(-1); + ctrl.returnY(1); + ctrl.makeComment("-- オーディブル演算パラメータ --", 0, 5, 0); + ctrl.indent(1); + ctrl.makeSlider("ボリューム変化許容範囲(+-)", &Z2Param::AUDIBLE_DELTA_RANGE_VOLUME, 0.0f, 1.0f, + 0); + ctrl.makeSlider("パン変化許容範囲(+-)", &Z2Param::AUDIBLE_DELTA_RANGE_PAN, 0.0f, 1.0f, 0); + ctrl.makeSlider("ドルビー変化許容範囲(+-)", &Z2Param::AUDIBLE_DELTA_RANGE_DOLBY, 0.0f, 1.0f, 0); + ctrl.makeSlider("ドップラーピッチ変化許容範囲(*/)", &Z2GetAudience()->getSetting()->field_0x60, + 1.0f, 2.0f, 0); + ctrl.indent(-1); + ctrl.returnY(1); + Z2SpotMic* pfVar2 = Z2GetAudience()->getLinkMic(); + if (pfVar2 != NULL) { + ctrl.makeComment("-- リンクスポットマイク設定 --", 0, 5, 0); + ctrl.indent(1); + ctrl.makeCheckBox("マイクON?", &gMicOn, 1, false, 0); + ctrl.makeCheckBox("視野外でマイクオフ?", &gMicOffWhenOutOfSight, 1, false, 0); + ctrl.makeSlider("マイク音量最大距離", &pfVar2->field_0x0, 0.0f, 1000.0f, 0); + ctrl.makeSlider("マイク音量最小距離", &pfVar2->field_0x4, 0.0f, 1000.0f, 0); + ctrl.makeSlider("最小音量", &pfVar2->field_0x8, 0.0f, 1.0f, 0); + ctrl.makeSlider("最大音量の最小値", &pfVar2->field_0xc, 0.0f, 1.0f, 0); + ctrl.makeButton("マイク設定更新", 3, 3, 0); + ctrl.returnY(1); + ctrl.makeCheckBox("マイク圏外をボリュームダウン", &gMuffleOutOfRangeMic, 1, false, 0); + ctrl.indent(1); + ctrl.makeSlider("マイク圏外の音量比", &Z2GetAudience()->field_0x4, 0.0f, 1.0f, 0); + ctrl.indent(-1); + ctrl.indent(-1); + } + ctrl.makeComment("-- 闇のSEフィルタ実験 --", 0, 5, 0); + ctrl.indent(1); + ctrl.makeButton("フィルタリセット", 2, 3, 0); + ctrl.makeCheckBox("フィルタON", &Z2Param::DARK_SE_FILTER_ON, 1, false, 0); + ctrl.makeCheckBox("システムSEにも適用", &Z2Param::SYSTEM_SE_USE_DARK_SE_SETTING, 1, false, 0); + ctrl.makeSlider("ローパスフィルタ設定(強→弱)", &Z2Param::DARK_SE_LOW_PASS_FILTER_SETTING, 0, + 0x7f, 0); +} + +void Z2ParamNode::propertyEvent(JAH_P_Event param_1, u32 param_2) { + if (param_1 == JAH_P_EVENT0) + return; + + switch (param_2) { + case 2: + Z2GetSoundMgr()->resetFilterAll(); + break; + case 3: + Z2GetAudience()->getLinkMic()->calcPriorityFactor(); + break; + } +} + +void Z2ParamNode::onFrame() { + Z2SpotMic* mic = Z2GetAudience()->getLinkMic(); + if (!mic) + return; + + mic->setMicOn(gMicOn != 0); + mic->setIgnoreIfOut(gMicOffWhenOutOfSight != 0); + Z2GetAudience()->setUsingOffMicVol(gMuffleOutOfRangeMic != 0); +} diff --git a/src/Z2AudioLib/Z2EnvSeMgr.cpp b/src/Z2AudioLib/Z2EnvSeMgr.cpp index 0c6884b9a2..d6f68bcd95 100644 --- a/src/Z2AudioLib/Z2EnvSeMgr.cpp +++ b/src/Z2AudioLib/Z2EnvSeMgr.cpp @@ -3,92 +3,7 @@ #include "JSystem/JAudio2/JASCalc.h" #include "d/d_save.h" #include "d/d_com_inf_game.h" - -#if DEBUG -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 +#include "Z2AudioLib/SpotName.h" Z2EnvSeBase::Z2EnvSeBase(Vec* posPtr) { mPos = posPtr; diff --git a/src/Z2AudioLib/Z2F1TestWindow.cpp b/src/Z2AudioLib/Z2F1TestWindow.cpp new file mode 100644 index 0000000000..7cf5c5eb63 --- /dev/null +++ b/src/Z2AudioLib/Z2F1TestWindow.cpp @@ -0,0 +1,198 @@ +#include "Z2AudioLib/Z2F1TestWindow.h" +#include "JSystem/JAHostIO/JAHioMessage.h" +#include "JSystem/JAudio2/JASAudioThread.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "Z2AudioLib/Z2Audience.h" + +f32 sF1_Diff = 0.01f; +f32 sF1_i = 0.1f; +f32 sF1_Geta = 0.2f; +s32 sF1_Frame = 200; +f32 sF1_Pitch_Width = 0.2f; +f32 sF1_Pan_Width; + +Z2F1TestWindow::Z2F1TestWindow() : JAWWindow("Z2F1TestWindow", 500, 450) {} + +void Z2F1TestWindow::onDraw(JAWGraphContext*) {} + +void Z2F1TestWindow::frameWork() {} + +void Z2F1TestWindow::calcF1() {} + +void Z2F1TestWindow::onPadProc(const JUTGamePad&) {} + +f32 Z2F1TestWindow::tau(f32) {} + +f32 Z2F1TestWindow::calcThreshold(int) {} + +f32 Z2F1TestWindow::getRawX() const { + return field_0x3f0; +} + +f32 Z2F1TestWindow::calcNoise() { + field_0x3f0 = field_0x3f4; + field_0x3f4 = tau(field_0x3f0); + return field_0x3f0; +} + +void Z2F1TestWindow::setValue(f32 param_1, f32 param_2) { + field_0x3f0 = param_1; + field_0x3f4 = param_1; + field_0xbd4 = param_2; +} + +void Z2F1TestWindow::onTrigY(const JUTGamePad&) { + for (u16 i = 0; i < 500; ++i) + field_0x3f8[i] = 0.0f; + + field_0x3f0 = tau(sF1_i); + field_0x3f4 = tau(field_0x3f0); + field_0xbd4 = calcThreshold(sF1_Frame); +} + +void Z2F1TestWindow::onTrigMenu(const JUTGamePad&) { + if (field_0xbd0) + field_0xbd0 = 0; + else + field_0xbd0 = 1; +} + +Z2F1SwingTestNode::Z2F1SwingTestNode() + : JAHFrameNode("1/fゆらぎテスト"), field_0xc48(-1, NULL), field_0xcd0(-1, NULL) { + appendVirNode(&field_0xc48); + appendVirNode(&field_0xcd0); + mModulateVolume = 0; + mModulatePitch = 0; + mModulatePan = 0; + mModulateDolby = 0; + field_0xd5c = 0.0f; + field_0xd60 = 0.0f; + field_0xd64 = 0.0f; + field_0xd68 = 0.0f; +} + +void Z2F1SwingTestNode::message(JAHControl& ctrl) { + ctrl.makeComment("--1/fゆらぎテスト--", 0, 5, 0); + ctrl.indent(1); + ctrl.makeSlider("Diff値", &sF1_Diff, 0.0, 0.1, 0); + ctrl.makeSlider("i値", &sF1_i, 0.0f, 1.0f, 0); + ctrl.makeSlider("Geta値", &sF1_Geta, 0.0f, 1.0f, 0); + ctrl.makeSlider("frame値", &sF1_Frame, 2, 200, 0); + ctrl.returnY(1); + ctrl.makeCheckBox("ボリューム変調", &mModulateVolume, 1, false, 0); + ctrl.makeCheckBox("ピッチ変調", &mModulatePitch, 1, false, 0); + ctrl.makeSlider("Pitch ゆらぎ幅", &sF1_Pitch_Width, 0.0f, 1.0f, 0); + ctrl.makeCheckBox("パン変調", &mModulatePan, 1, false, 0); + ctrl.makeSlider("パン移動幅", &sF1_Pan_Width, 0.0f, 1.0f, 0); + ctrl.makeCheckBox("ドルビー変調", &mModulateDolby, 1, false, 0); +} + +void Z2F1SwingTestNode::onFrame() { + f32 fVar1 = 1.0; + f32 fVar2 = getValue() * (1.0f - sF1_Geta) + sF1_Geta; + f32 fVar3 = getValue2() * (1.0f - sF1_Geta) + sF1_Geta; + if (field_0xc48.unk40.isSoundAttached() && field_0xcd0.unk40.isSoundAttached()) { + fVar1 = 0.5f; + field_0xc48.unk40->getAuxiliary().moveVolume(fVar2 * fVar1, 0); + field_0xcd0.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0); + } else if (field_0xc48.unk40.isSoundAttached()) { + fVar1 = 1.0f; + field_0xc48.unk40->getAuxiliary().moveVolume(fVar2 * fVar1, 0); + } else if (field_0xcd0.unk40.isSoundAttached()) { + fVar1 = 1.0f; + field_0xcd0.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0); + } + + if (field_0xc48.unk40.isSoundAttached()) { + if (mModulateVolume) + field_0xc48.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0); + else + field_0xc48.unk40->getAuxiliary().moveVolume(0.5f, 0); + + if (mModulatePitch) + field_0xc48.unk40->getAuxiliary().movePitch( + getValue2() * sF1_Pitch_Width + (1.0f - sF1_Pitch_Width), 0); + else + field_0xc48.unk40->getAuxiliary().movePitch(1.0f, 0); + + if (mModulatePan) + field_0xc48.unk40->getAuxiliary().movePan(0.5f - getValue2() * sF1_Pan_Width / 2, 0); + else + field_0xc48.unk40->getAuxiliary().movePan(0.5f, 0); + + if (mModulateDolby) + field_0xc48.unk40->getAuxiliary().moveDolby(fVar3, 0); + else + field_0xc48.unk40->getAuxiliary().moveDolby(0.0f, 0); + } else if (field_0xcd0.unk40.isSoundAttached()) { + if (mModulateVolume) + field_0xcd0.unk40->getAuxiliary().moveVolume(fVar3 * fVar1, 0); + else + field_0xcd0.unk40->getAuxiliary().moveVolume(0.5f, 0); + + if (mModulatePitch) + field_0xcd0.unk40->getAuxiliary().movePitch( + getValue2() * sF1_Pitch_Width + (1.0f - sF1_Pitch_Width), 0); + else + field_0xcd0.unk40->getAuxiliary().movePitch(1.0f, 0); + + if (mModulatePan) + field_0xcd0.unk40->getAuxiliary().movePan(0.5f + getValue2() * sF1_Pan_Width / 2, 0); + else + field_0xcd0.unk40->getAuxiliary().movePan(0.5f, 0); + + if (mModulateDolby) + field_0xcd0.unk40->getAuxiliary().moveDolby(fVar3, 0); + else + field_0xcd0.unk40->getAuxiliary().moveDolby(0.0f, 0); + } +} + +f32 Z2F1TestWindow::getValue2() { + return field_0x3f8[field_0xbcc]; +} + +f32 Z2F1TestWindow::getValue() { + return field_0x3f8[field_0xbc8]; +} + +Z2AudSettingView::Z2AudSettingView() : JAWWindow("Z2AudSettingView", 400, 300) {} + +void Z2AudSettingView::onDraw(JAWGraphContext* param_1) { + const Z2AudioCamera* this_00 = Z2GetAudience()->getAudioCamera(0); + Z2Audience3DSetting* pfVar2 = Z2GetAudience()->getSetting(); + int l = 0; + param_1->print(0, l++, "<SETTING>"); + param_1->print(0, l++, "far dist %.3f", pfVar2->field_0x0[0]); + param_1->print(0, l++, "near dist %.3f", pfVar2->field_0x3c); + param_1->print(0, l++, "frontDolbyZ %.3f", pfVar2->field_0x44); + param_1->print(0, l++, "behindDolbyZ %.3f", pfVar2->field_0x48); + param_1->print(0, l++, "centerDolby %.3f", pfVar2->field_0x4c); + ++l; + param_1->print(0, l++, "<AUD CAMERA>"); + param_1->print(0, l++, "CamDist %.3f", this_00->getCamDist()); + param_1->print(0, l++, "vel.x %.3f", this_00->getVel()->x); + param_1->print(0, l++, "vel.y %.3f", this_00->getVel()->y); + param_1->print(0, l++, "vel.z %.3f", this_00->getVel()->z); + param_1->print(0, l++, "TargetVolume %.3f", this_00->getTargetVolume()); + param_1->print(0, l++, "VolCenterZ %.3f", this_00->getVolCenterZ()); + param_1->print(0, l++, "DolbyCenterZ %.3f", this_00->getDolbyCenterZ()); + param_1->print(0, l++, "getFovySin %.3f", this_00->getFovySin()); +} + +void Z2DSPCheck::onDraw(JAWGraphContext* param_1) { + u8* puVar1 = (u8*)JKRHeap::getAltAramStartAdr(); + DCInvalidateRange(puVar1, 0x20); + int l = 0; + param_1->print(0, l++, "<DISP INFO>"); + param_1->print(0, l++, "VARAM_TOP %08X", puVar1); + param_1->print(0, l++, "DSP state %04X", *(u16*)(puVar1 + 0)); + param_1->print(0, l++, "DSP channel %04X", *(u8*)(puVar1 + 2)); + param_1->print(0, l++, "DSP sub-fr %04X", *(u8*)(puVar1 + 3)); + param_1->print(0, l++, "DSP cmd wr %04X", *(u16*)(puVar1 + 4)); + param_1->print(0, l++, "DSP sub-rd %04X", *(u16*)(puVar1 + 6)); + param_1->print(0, l++, "DSP cmd rest %04X", *(u16*)(puVar1 + 8)); + l++; + param_1->print(0, l++, "<CPU AUDIO THREAD INFO>"); + param_1->print(0, l++, "DSPSyncCount %2d", JASAudioThread::getDSPSyncCount()); +} diff --git a/src/Z2AudioLib/Z2FxLineMgr.cpp b/src/Z2AudioLib/Z2FxLineMgr.cpp index 61d37c6785..a995d5ac68 100644 --- a/src/Z2AudioLib/Z2FxLineMgr.cpp +++ b/src/Z2AudioLib/Z2FxLineMgr.cpp @@ -1,9 +1,15 @@ #include "Z2AudioLib/Z2FxLineMgr.h" -#include "Z2AudioLib/Z2SceneMgr.h" +#include "JSystem/JAHostIO/JAHUGlobal.h" +#include "JSystem/JAHostIO/JAHioMessage.h" +#include "JSystem/JAHostIO/JAHioUtil.h" #include "JSystem/JAudio2/JASDSPInterface.h" +#include "JSystem/JHostIO/JORFile.h" #include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JSupport/JSUMemoryStream.h" +#include "Z2AudioLib/SpotName.h" +#include "Z2AudioLib/Z2SceneMgr.h" Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(true) { mConfig = NULL; @@ -11,9 +17,9 @@ Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(true) { mFxDataNum = 0; mSetUnderWaterFx = false; - #if DEBUG +#if DEBUG mHIOEdit = NULL; - #endif +#endif } void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) { @@ -35,42 +41,49 @@ void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) { for (u8 i = 0; i < mFxDataNum; i++) { void* res = arc->getResource(i); - u32 size = (arc->getResSize(res) + 0x1f) & ~0x1f; + u32 size = ALIGN_NEXT(arc->getResSize(res), 32); JSUMemoryInputStream stream(res, size); - stream >> mConfig[i].field_0x0; - stream >> mConfig[i].field_0x1; - stream >> mConfig[i].field_0x2; - stream >> mConfig[i].field_0x3; - stream >> mConfig[i].field_0x4; - stream >> mConfig[i].field_0x6; - stream >> mConfig[i].field_0x8[0]; - stream >> mConfig[i].field_0x8[1]; - stream >> mConfig[i].field_0x8[2]; - stream >> mConfig[i].field_0x8[3]; - stream >> mConfig[i].field_0x8[4]; - stream >> mConfig[i].field_0x8[5]; - stream >> mConfig[i].field_0x8[6]; - stream >> mConfig[i].field_0x8[7]; - stream >> mConfig[i].field_0x18; - stream >> mConfig[i].field_0x19; - stream >> mConfig[i].field_0x1a; - stream >> mConfig[i].field_0x1b; - stream >> mConfig[i].field_0x1c; - stream >> mConfig[i].field_0x1e; - stream >> mConfig[i].field_0x20[0]; - stream >> mConfig[i].field_0x20[1]; - stream >> mConfig[i].field_0x20[2]; - stream >> mConfig[i].field_0x20[3]; - stream >> mConfig[i].field_0x20[4]; - stream >> mConfig[i].field_0x20[5]; - stream >> mConfig[i].field_0x20[6]; - stream >> mConfig[i].field_0x20[7]; + stream >> mConfig[i].unk0.unk0; + stream >> mConfig[i].unk0.unk1; + stream >> mConfig[i].unk0.unk2; + stream >> mConfig[i].unk0.unk3; + stream >> mConfig[i].unk0.unk4; + stream >> mConfig[i].unk0.unk6; + stream >> mConfig[i].unk0.unk8[0]; + stream >> mConfig[i].unk0.unk8[1]; + stream >> mConfig[i].unk0.unk8[2]; + stream >> mConfig[i].unk0.unk8[3]; + stream >> mConfig[i].unk0.unk8[4]; + stream >> mConfig[i].unk0.unk8[5]; + stream >> mConfig[i].unk0.unk8[6]; + stream >> mConfig[i].unk0.unk8[7]; + stream >> mConfig[i].unk18.unk0; + stream >> mConfig[i].unk18.unk1; + stream >> mConfig[i].unk18.unk2; + stream >> mConfig[i].unk18.unk3; + stream >> mConfig[i].unk18.unk4; + stream >> mConfig[i].unk18.unk6; + stream >> mConfig[i].unk18.unk8[0]; + stream >> mConfig[i].unk18.unk8[1]; + stream >> mConfig[i].unk18.unk8[2]; + stream >> mConfig[i].unk18.unk8[3]; + stream >> mConfig[i].unk18.unk8[4]; + stream >> mConfig[i].unk18.unk8[5]; + stream >> mConfig[i].unk18.unk8[6]; + stream >> mConfig[i].unk18.unk8[7]; JKRFree(res); } setLineID(-1, false, false); setLineID(-1, true, false); + +#if DEBUG + if (mHIOEdit) + mHIOEdit->update(false); + if (mHIOEdit) + mHIOEdit->update(true); +#endif } void Z2FxLineMgr::setLineID(s8 fxID, bool param_1, bool param_2) { @@ -101,51 +114,60 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { } JASDsp::FxlineConfig_ dsp_config; - dsp_config.field_0x0 = config->field_0x0; - dsp_config.field_0x2 = config->field_0x1; - dsp_config.field_0x6 = config->field_0x2; + dsp_config.field_0x0 = config->unk0.unk0; + dsp_config.field_0x2 = config->unk0.unk1; + dsp_config.field_0x6 = config->unk0.unk2; if (param_2) { dsp_config.field_0x4 = 0; dsp_config.field_0x8 = 0; } else { - dsp_config.field_0x4 = config->field_0x4; - dsp_config.field_0x8 = config->field_0x6; + dsp_config.field_0x4 = config->unk0.unk4; + dsp_config.field_0x8 = config->unk0.unk6; } - dsp_config.field_0xc = config->field_0x3; - dsp_config.field_0x10[0] = config->field_0x8[0]; - dsp_config.field_0x10[1] = config->field_0x8[1]; - dsp_config.field_0x10[2] = config->field_0x8[2]; - dsp_config.field_0x10[3] = config->field_0x8[3]; - dsp_config.field_0x10[4] = config->field_0x8[4]; - dsp_config.field_0x10[5] = config->field_0x8[5]; - dsp_config.field_0x10[6] = config->field_0x8[6]; - dsp_config.field_0x10[7] = config->field_0x8[7]; + dsp_config.field_0xc = config->unk0.unk3; + dsp_config.field_0x10[0] = config->unk0.unk8[0]; + dsp_config.field_0x10[1] = config->unk0.unk8[1]; + dsp_config.field_0x10[2] = config->unk0.unk8[2]; + dsp_config.field_0x10[3] = config->unk0.unk8[3]; + dsp_config.field_0x10[4] = config->unk0.unk8[4]; + dsp_config.field_0x10[5] = config->unk0.unk8[5]; + dsp_config.field_0x10[6] = config->unk0.unk8[6]; + dsp_config.field_0x10[7] = config->unk0.unk8[7]; JASDsp::setFXLine(buf1, (s16*)mFxLineBuffer[buf1], &dsp_config); +#if DEBUG + if (mHIOEdit) + mHIOEdit->syncSetting(buf1, &dsp_config); +#endif - dsp_config.field_0x0 = config->field_0x18; - dsp_config.field_0x2 = config->field_0x19; - dsp_config.field_0x6 = config->field_0x1a; + dsp_config.field_0x0 = config->unk18.unk0; + dsp_config.field_0x2 = config->unk18.unk1; + dsp_config.field_0x6 = config->unk18.unk2; if (param_2) { dsp_config.field_0x4 = 0; dsp_config.field_0x8 = 0; } else { - dsp_config.field_0x4 = config->field_0x1c; - dsp_config.field_0x8 = config->field_0x1e; + dsp_config.field_0x4 = config->unk18.unk4; + dsp_config.field_0x8 = config->unk18.unk6; } - dsp_config.field_0xc = config->field_0x1b; - dsp_config.field_0x10[0] = config->field_0x20[0]; - dsp_config.field_0x10[1] = config->field_0x20[1]; - dsp_config.field_0x10[2] = config->field_0x20[2]; - dsp_config.field_0x10[3] = config->field_0x20[3]; - dsp_config.field_0x10[4] = config->field_0x20[4]; - dsp_config.field_0x10[5] = config->field_0x20[5]; - dsp_config.field_0x10[6] = config->field_0x20[6]; - dsp_config.field_0x10[7] = config->field_0x20[7]; + dsp_config.field_0xc = config->unk18.unk3; + dsp_config.field_0x10[0] = config->unk18.unk8[0]; + dsp_config.field_0x10[1] = config->unk18.unk8[1]; + dsp_config.field_0x10[2] = config->unk18.unk8[2]; + dsp_config.field_0x10[3] = config->unk18.unk8[3]; + dsp_config.field_0x10[4] = config->unk18.unk8[4]; + dsp_config.field_0x10[5] = config->unk18.unk8[5]; + dsp_config.field_0x10[6] = config->unk18.unk8[6]; + dsp_config.field_0x10[7] = config->unk18.unk8[7]; JASDsp::setFXLine(buf2, (s16*)mFxLineBuffer[buf2], &dsp_config); + +#if DEBUG + if (mHIOEdit) + mHIOEdit->syncSetting(buf2, &dsp_config); +#endif } void Z2FxLineMgr::setFxForceOff(bool param_0) { @@ -157,6 +179,11 @@ void Z2FxLineMgr::setUnderWaterFx(bool isUnderWaterFx) { if (isUnderWaterFx) { OS_REPORT("[Z2FxLineMgr::setUnderWaterFx] → underWaterFx!\n"); setLineID(12, true, false); + +#if DEBUG + if (mHIOEdit) + mHIOEdit->update(true); +#endif } else { OS_REPORT("[Z2FxLineMgr::setUnderWaterFx] → sceneFx!\n"); setSceneFx(Z2GetSceneMgr()->getCurrentSceneNum()); @@ -188,7 +215,7 @@ void Z2FxLineMgr::setSceneFx(s32 sceneNo) { case Z2SCENE_LAKE_LANTERN_CAVE: case Z2SCENE_FARON_WOODS_CAVE: if (Z2GetSceneMgr()->getCurrentRoomNum() == 2) { - return; + break; } // fallthrough case Z2SCENE_FARON_WOODS: @@ -238,4 +265,298 @@ void Z2FxLineMgr::setSceneFx(s32 sceneNo) { break; } } +#if DEBUG + if (mHIOEdit) + mHIOEdit->update(true); +#endif +} + +Z2FxLineEditNode::Z2FxLineEditNode(JKRExpHeap* heap) : JAHFrameNode("FxLineEdit"), mHeap(heap) { + JUT_ASSERT(340, mHeap); + unk74 = new (mHeap, 0) LineStereo(false); + appendNode(unk74, NULL); + unk78 = new (mHeap, 0) LineStereo(true); + appendNode(unk78, NULL); + Z2GetFxLineMgr()->setHIOEdit(this); +} + +void Z2FxLineEditNode::message(JAHControl& control) { + control.makeComment("Line0 : normal_mixing L", 0, 5, 0); + control.makeComment("Line1 : normal_mixing R", 0, 5, 0); + control.makeComment("Line2 : auto_mixing L", 0, 5, 0); + control.makeComment("Line3 : auto_mixing R", 0, 5, 0); + control.returnY(1); + control.makeComment("-- ミックスモード --", 0, 5, 0); + control.indent(1); + control.makeComment("DFX_MIX_STOP 非動作", 0, 5, 0); + control.makeComment("DFX_MIX_BEFORE 出力前にミキシング(第1反射音もFx効果あり)", 0, 5, 0); + control.makeComment("DFX_MIX_AFTER 出力後にミキシング(第1反射音はFx効果なし)", 0, 5, 0); + control.indent(-1); + control.makeComment("-- センド先 --", 0, 5, 0); + control.indent(1); + control.makeComment("DFXS_MAIN_L", 0, 5, 0); + control.makeComment("DFXS_MAIN_R", 0, 5, 0); + control.makeComment("DFXS_FX1", 0, 5, 0); + control.makeComment("DFXS_FX2", 0, 5, 0); + control.makeComment("DFXS_FX3", 0, 5, 0); + control.makeComment("DFXS_FX4", 0, 5, 0); + control.makeComment("DFXS_FM", 0, 5, 0); + control.makeComment("DFXS_DOLBY", 0, 5, 0); + control.makeComment("DFXS_REV", 0, 5, 0); + control.makeComment("DFXS_CHORUS", 0, 5, 0); + control.makeComment("DFXS_MONO", 0, 5, 0); + control.makeComment("DFXS_NONE", 0, 5, 0); + control.indent(-1); +} + +void Z2FxLineEditNode::syncSetting(u8 param_1, JASDsp::FxlineConfig_* config) { + JUT_ASSERT(387, config); + Z2FxLineConfigSingle* line_HIO; + switch (param_1) { + case 0: + line_HIO = &unk74->unk70.unk0; + break; + case 1: + line_HIO = &unk74->unk70.unk18; + break; + case 2: + line_HIO = &unk78->unk70.unk0; + break; + case 3: + line_HIO = &unk78->unk70.unk18; + break; + } + JUT_ASSERT(407, line_HIO); + line_HIO->unk0 = config->field_0x0; + line_HIO->unk1 = config->field_0x2; + line_HIO->unk4 = config->field_0x4; + line_HIO->unk2 = config->field_0x6; + line_HIO->unk6 = config->field_0x8; + line_HIO->unk3 = config->field_0xc; + line_HIO->unk8[0] = config->field_0x10[0]; + line_HIO->unk8[1] = config->field_0x10[1]; + line_HIO->unk8[2] = config->field_0x10[2]; + line_HIO->unk8[3] = config->field_0x10[3]; + line_HIO->unk8[4] = config->field_0x10[4]; + line_HIO->unk8[5] = config->field_0x10[5]; + line_HIO->unk8[6] = config->field_0x10[6]; + line_HIO->unk8[7] = config->field_0x10[7]; +} + +void Z2FxLineEditNode::update(bool param_1) { + if (param_1) + unk78->updateNode(); + else + unk74->updateNode(); +} + +static const char* cBfcMask = "bfcファイル(*.bfc)\0*.bfc\0"; + +void Z2FxLineEditNode::saveLine(LineStereo* node) { + JUT_ASSERT(436, node); + JORFile file; + if (file.open(NULL, 0x6, cBfcMask, NULL, NULL, NULL)) { + // clang-format off + JUT_ASSERT(441, mHeap!=0); + // clang-format on + u32 size = ALIGN_PREV(mHeap->getFreeSize(), 0x20); + JKRHeap* backup = JKRGetCurrentHeap(); + JKRSetCurrentHeap(mHeap); + void* saveBuffer = JKRAlloc(size, -1); + JUT_ASSERT(452, saveBuffer); + JKRSetCurrentHeap(backup); + + JSUMemoryOutputStream JStack_15c(saveBuffer, size); + JStack_15c << node->unk70.unk0.unk0; + JStack_15c << node->unk70.unk0.unk1; + JStack_15c << node->unk70.unk0.unk2; + JStack_15c << node->unk70.unk0.unk3; + JStack_15c << node->unk70.unk0.unk4; + JStack_15c << node->unk70.unk0.unk6; + JStack_15c << node->unk70.unk0.unk8[0]; + JStack_15c << node->unk70.unk0.unk8[1]; + JStack_15c << node->unk70.unk0.unk8[2]; + JStack_15c << node->unk70.unk0.unk8[3]; + JStack_15c << node->unk70.unk0.unk8[4]; + JStack_15c << node->unk70.unk0.unk8[5]; + JStack_15c << node->unk70.unk0.unk8[6]; + JStack_15c << node->unk70.unk0.unk8[7]; + JStack_15c << node->unk70.unk18.unk0; + JStack_15c << node->unk70.unk18.unk1; + JStack_15c << node->unk70.unk18.unk2; + JStack_15c << node->unk70.unk18.unk3; + JStack_15c << node->unk70.unk18.unk4; + JStack_15c << node->unk70.unk18.unk6; + JStack_15c << node->unk70.unk18.unk8[0]; + JStack_15c << node->unk70.unk18.unk8[1]; + JStack_15c << node->unk70.unk18.unk8[2]; + JStack_15c << node->unk70.unk18.unk8[3]; + JStack_15c << node->unk70.unk18.unk8[4]; + JStack_15c << node->unk70.unk18.unk8[5]; + JStack_15c << node->unk70.unk18.unk8[6]; + JStack_15c << node->unk70.unk18.unk8[7]; + file.writeData(saveBuffer, JStack_15c.getPosition()); + file.close(); + JKRFree(saveBuffer); + } else { + JAHUDialog_OK("セーブに失敗しました.", "save", NULL); + } +} + +void Z2FxLineEditNode::loadLine(LineStereo* node) { + JUT_ASSERT(436, node); + JORFile file; + void* dataArray = NULL; + u32 length = 0; + if (file.open(NULL, 0x1, cBfcMask, NULL, NULL, NULL)) { + length = ALIGN_NEXT(file.getFileSize(), 0x20); + dataArray = JKRAllocFromHeap(mHeap, length, 0x20); + JUT_ASSERT(517, dataArray); + u32 readSize = file.readData(dataArray, 0); + file.close(); + if (readSize < 1) { + JAHUDialog_OK("読み込み失敗。JORFile::readData()がfalseを返しました", "読み込み", NULL); + JKRFreeToHeap(mHeap, dataArray); + } + } else { + file.close(); + JAHUDialog_OK(JAHioUtil::getString("%s を読み込めません", file.getFilename()), + "データを読み込む", NULL); + } + + JSUMemoryInputStream stream(dataArray, length); + + stream >> node->unk70.unk0.unk0; + stream >> node->unk70.unk0.unk1; + stream >> node->unk70.unk0.unk2; + stream >> node->unk70.unk0.unk3; + stream >> node->unk70.unk0.unk4; + stream >> node->unk70.unk0.unk6; + stream >> node->unk70.unk0.unk8[0]; + stream >> node->unk70.unk0.unk8[1]; + stream >> node->unk70.unk0.unk8[2]; + stream >> node->unk70.unk0.unk8[3]; + stream >> node->unk70.unk0.unk8[4]; + stream >> node->unk70.unk0.unk8[5]; + stream >> node->unk70.unk0.unk8[6]; + stream >> node->unk70.unk0.unk8[7]; + stream >> node->unk70.unk18.unk0; + stream >> node->unk70.unk18.unk1; + stream >> node->unk70.unk18.unk2; + stream >> node->unk70.unk18.unk3; + stream >> node->unk70.unk18.unk4; + stream >> node->unk70.unk18.unk6; + stream >> node->unk70.unk18.unk8[0]; + stream >> node->unk70.unk18.unk8[1]; + stream >> node->unk70.unk18.unk8[2]; + stream >> node->unk70.unk18.unk8[3]; + stream >> node->unk70.unk18.unk8[4]; + stream >> node->unk70.unk18.unk8[5]; + stream >> node->unk70.unk18.unk8[6]; + stream >> node->unk70.unk18.unk8[7]; + + JKRFree(dataArray); + node->updateNode(); +} + +void Z2FxLineEditNode::LineStereo::message(JAHControl& control) { + control.makeButton("reset", 0, 3, 0); + control.makeButton("save file", 2, 3, 0); + control.makeButton("load file", 3, 3, 0); + control.returnY(1); + control.makeComment("----- Line L -----", 0, 5, 0); + control.indent(1); + lineEditSingle(&unk70.unk0, control); + control.indent(-1); + control.returnY(1); + control.makeComment("----- Line R -----", 0, 5, 0); + control.indent(1); + lineEditSingle(&unk70.unk18, control); + control.indent(-1); +} + +void Z2FxLineEditNode::LineStereo::propertyEvent(JAH_P_Event param_1, u32 param_2) { + if (param_1 == JAH_P_EVENT0) + return; + + Z2FxLineEditNode* parent = (Z2FxLineEditNode*)getParent(); + switch (param_2) { + case 0: + Z2GetFxLineMgr()->setLineID(-1, mIsDolby, false); + break; + + case 2: + parent->saveLine(this); + break; + + case 3: + parent->loadLine(this); + break; + } + + Z2GetFxLineMgr()->setLine(&unk70, mIsDolby, false); +} + +void Z2FxLineEditNode::LineStereo::lineEditSingle(Z2FxLineConfigSingle* param_1, + JAHControl& param_2) { + if (param_1 == NULL) + return; + + param_2.startComboBox("mixmode", ¶m_1->unk0, 3, 0); + param_2.makeComboBoxItem("DFX_MIX_STOP", (u8)0); + param_2.makeComboBoxItem("DFX_MIX_BEFORE", (u8)1); + param_2.makeComboBoxItem("DFX_MIX_AFTER", (u8)2); + param_2.endComboBox(); + + param_2.returnY(1); + + param_2.startComboBox("send1", ¶m_1->unk1, 3, 0); + param_2.makeComboBoxItem("DFXS_MAIN_L", (u8)0); + param_2.makeComboBoxItem("DFXS_MAIN_R", (u8)1); + param_2.makeComboBoxItem("DFXS_FX1", (u8)2); + param_2.makeComboBoxItem("DFXS_FX2", (u8)3); + param_2.makeComboBoxItem("DFXS_FX3", (u8)4); + param_2.makeComboBoxItem("DFXS_FX4", (u8)5); + param_2.makeComboBoxItem("DFXS_FM", (u8)6); + param_2.makeComboBoxItem("DFXS_DOLBY", (u8)7); + param_2.makeComboBoxItem("DFXS_REV", (u8)8); + param_2.makeComboBoxItem("DFXS_CHORUS", (u8)9); + param_2.makeComboBoxItem("DFXS_MONO", (u8)10); + param_2.makeComboBoxItem("DFXS_NONE", (u8)11); + param_2.endComboBox(); + + param_2.returnY(1); + param_2.makeSlider("mix1", ¶m_1->unk4, 0, 0x7fff, 0); + + param_2.startComboBox("send2", ¶m_1->unk2, 3, 0); + param_2.makeComboBoxItem("DFXS_MAIN_L", (u8)0); + param_2.makeComboBoxItem("DFXS_MAIN_R", (u8)1); + param_2.makeComboBoxItem("DFXS_FX1", (u8)2); + param_2.makeComboBoxItem("DFXS_FX2", (u8)3); + param_2.makeComboBoxItem("DFXS_FX3", (u8)4); + param_2.makeComboBoxItem("DFXS_FX4", (u8)5); + param_2.makeComboBoxItem("DFXS_FM", (u8)6); + param_2.makeComboBoxItem("DFXS_DOLBY", (u8)7); + param_2.makeComboBoxItem("DFXS_REV", (u8)8); + param_2.makeComboBoxItem("DFXS_CHORUS", (u8)9); + param_2.makeComboBoxItem("DFXS_MONO", (u8)10); + param_2.makeComboBoxItem("DFXS_NONE", (u8)11); + param_2.endComboBox(); + + param_2.returnY(1); + param_2.makeSlider("mix2", ¶m_1->unk6, 0, 0x7fff, 0); + + if (mIsDolby) + param_2.makeSlider("feedback_frame", ¶m_1->unk3, 0, 120, 0); + else + param_2.makeSlider("feedback_frame", ¶m_1->unk3, 0, 64, 0); + + param_2.makeSlider("feedback_filter 0", ¶m_1->unk8[0], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 1", ¶m_1->unk8[1], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 2", ¶m_1->unk8[2], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 3", ¶m_1->unk8[3], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 4", ¶m_1->unk8[4], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 5", ¶m_1->unk8[5], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 6", ¶m_1->unk8[6], -0x7fff, 0x7fff, 0); + param_2.makeSlider("feedback_filter 7", ¶m_1->unk8[7], -0x7fff, 0x7fff, 0); } diff --git a/src/Z2AudioLib/Z2SceneMgr.cpp b/src/Z2AudioLib/Z2SceneMgr.cpp index 9e3bf2c91c..13a53790db 100644 --- a/src/Z2AudioLib/Z2SceneMgr.cpp +++ b/src/Z2AudioLib/Z2SceneMgr.cpp @@ -12,6 +12,7 @@ #include "Z2AudioLib/Z2StatusMgr.h" #include "d/d_com_inf_game.h" #include <cstring> +#include "Z2AudioLib/SpotName.h" Z2SceneMgr::Z2SceneMgr() : JASGlobalInstance<Z2SceneMgr>(true) { sceneNum = -1; @@ -46,90 +47,6 @@ void Z2SceneMgr::setInDarkness(bool inDarkness) { } } -static char* sSpotName[81] = { - "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", -}; - void Z2SceneMgr::setSceneExist(bool isSceneExist) { sceneExist = isSceneExist; timer = 0; diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp index a9cad68b5e..16a9279cce 100644 --- a/src/Z2AudioLib/Z2SeqMgr.cpp +++ b/src/Z2AudioLib/Z2SeqMgr.cpp @@ -8,90 +8,7 @@ #include "Z2AudioLib/Z2Calc.h" #include "JSystem/JAudio2/JAISoundChild.h" #include "JSystem/JAudio2/JAISeq.h" - -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", -}; +#include "Z2AudioLib/SpotName.h" Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance<Z2SeqMgr>(true) { mMainBgmMaster.forceIn(); diff --git a/src/Z2AudioLib/Z2StatusMgr.cpp b/src/Z2AudioLib/Z2StatusMgr.cpp index fd907b48c8..a044b552b6 100644 --- a/src/Z2AudioLib/Z2StatusMgr.cpp +++ b/src/Z2AudioLib/Z2StatusMgr.cpp @@ -3,90 +3,7 @@ #include "d/d_com_inf_game.h" #include "d/d_s_play.h" #include <cstring> - -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", -}; +#include "Z2AudioLib/SpotName.h" Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(true) { mHour = 0; diff --git a/src/Z2AudioLib/Z2WolfHowlMgr.cpp b/src/Z2AudioLib/Z2WolfHowlMgr.cpp index 5f34fab19c..d76bd9b82f 100644 --- a/src/Z2AudioLib/Z2WolfHowlMgr.cpp +++ b/src/Z2AudioLib/Z2WolfHowlMgr.cpp @@ -6,6 +6,7 @@ #include "Z2AudioLib/Z2SoundMgr.h" #include "Z2AudioLib/Z2Audience.h" #include "d/d_demo.h" +#include "Z2AudioLib/SpotName.h" static f32 cPitchDown = 0.8909f; |
