JAHostIO and friends (#3131)

This commit is contained in:
Roman Sandu
2026-03-27 04:54:07 +03:00
committed by GitHub
parent f8cf545848
commit 0fc019dcfa
59 changed files with 2133 additions and 525 deletions
+20
View File
@@ -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 */
+1
View File
@@ -19,6 +19,7 @@
#endif
Z2AudioMgr* Z2AudioMgr::mAudioMgrPtr;
u8 gMuffleOutOfRangeMic = false;
Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
mAudioMgrPtr = this;
+108 -2
View File
@@ -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);
}
+1 -86
View File
@@ -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;
+198
View File
@@ -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());
}
+382 -61
View File
@@ -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", &param_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", &param_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", &param_1->unk4, 0, 0x7fff, 0);
param_2.startComboBox("send2", &param_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", &param_1->unk6, 0, 0x7fff, 0);
if (mIsDolby)
param_2.makeSlider("feedback_frame", &param_1->unk3, 0, 120, 0);
else
param_2.makeSlider("feedback_frame", &param_1->unk3, 0, 64, 0);
param_2.makeSlider("feedback_filter 0", &param_1->unk8[0], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 1", &param_1->unk8[1], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 2", &param_1->unk8[2], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 3", &param_1->unk8[3], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 4", &param_1->unk8[4], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 5", &param_1->unk8[5], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 6", &param_1->unk8[6], -0x7fff, 0x7fff, 0);
param_2.makeSlider("feedback_filter 7", &param_1->unk8[7], -0x7fff, 0x7fff, 0);
}
+1 -84
View File
@@ -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;
+1 -84
View File
@@ -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();
+1 -84
View File
@@ -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;
+1
View File
@@ -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;