diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2024-10-23 19:25:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-24 02:25:13 +0300 |
| commit | 5650c7fe0861609b4b2c6db09312622a1fcd7fc1 (patch) | |
| tree | 16c6c124bc0c92edfc8a1f30d54276656087b0f8 /src/Z2AudioLib | |
| parent | c44ea2139d298e515f2a5208bf8847a88c15ecf1 (diff) | |
JAudio2 and Z2AudioLib work (#2223)
* JAudio2 and Z2AudioLib work
* check1stDynamicWave matched
Diffstat (limited to 'src/Z2AudioLib')
| -rw-r--r-- | src/Z2AudioLib/Z2Audience.cpp | 403 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2AudioArcLoader.cpp | 69 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2AudioMgr.cpp | 311 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2Creature.cpp | 289 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2EnvSeMgr.cpp | 20 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2FxLineMgr.cpp | 348 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SceneMgr.cpp | 2780 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SeMgr.cpp | 3 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SeqMgr.cpp | 86 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SoundHandles.cpp | 58 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SoundInfo.cpp | 163 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SoundMgr.cpp | 201 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SoundObjMgr.cpp | 203 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2SpeechMgr2.cpp | 1468 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2StatusMgr.cpp | 13 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2WolfHowlMgr.cpp | 82 |
16 files changed, 2707 insertions, 3790 deletions
diff --git a/src/Z2AudioLib/Z2Audience.cpp b/src/Z2AudioLib/Z2Audience.cpp index 3a2e65e21b..a6306be42e 100644 --- a/src/Z2AudioLib/Z2Audience.cpp +++ b/src/Z2AudioLib/Z2Audience.cpp @@ -6,131 +6,12 @@ #include "Z2AudioLib/Z2Audience.h" #include "Z2AudioLib/Z2SoundInfo.h" #include "Z2AudioLib/Z2Calc.h" +#include "Z2AudioLib/Z2Param.h" #include "JSystem/JAudio2/JAISound.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JMath/JMATrigonometric.h" #include "JSystem/JGeometry.h" #include "JSystem/J3DU/J3DUD.h" -#include "dol2asm.h" - -// -// Types: -// - -struct Z2Param { - static f32 DISTANCE_MAX; - static f32 MAX_VOLUME_DISTANCE; - static f32 DOLBY_CENTER_VALUE; - static f32 DOLBY_FLONT_DISTANCE_MAX; - static f32 DOLBY_BEHIND_DISTANCE_MAX; - static f32 DISTANCE_FX_PARAM; - static f32 SONIC_SPEED; - static f32 MIN_DISTANCE_VOLUME; -}; - -// -// Forward References: -// - -extern "C" void func_802BBCDC(); -extern "C" void func_802BBD18(); -extern "C" void func_802BBD94(); -extern "C" void __ct__16Z2AudibleChannelFv(); -extern "C" void calc__9Z2AudibleFv(); -extern "C" void getOuterParams__9Z2AudibleFi(); -extern "C" void setOuterParams__9Z2AudibleFRC14JASSoundParamsRC14JASSoundParamsi(); -extern "C" void getChannel__9Z2AudibleFi(); -extern "C" void getDistVolBit__9Z2AudibleFv(); -extern "C" void __ct__19Z2Audience3DSettingFv(); -extern "C" void init__19Z2Audience3DSettingFv(); -extern "C" void initVolumeDist__19Z2Audience3DSettingFv(); -extern "C" void updateVolumeDist__19Z2Audience3DSettingFf(); -extern "C" void initDolbyDist__19Z2Audience3DSettingFv(); -extern "C" void updateDolbyDist__19Z2Audience3DSettingFff(); -extern "C" void __ct__13Z2AudioCameraFv(); -extern "C" void init__13Z2AudioCameraFv(); -extern "C" void setCameraState__13Z2AudioCameraFPA4_CfR3Vecb(); -extern "C" void setCameraState__13Z2AudioCameraFPA4_fR3VecR3Vecffbb(); -extern "C" void convertAbsToRel__13Z2AudioCameraFP9Z2Audiblei(); -extern "C" void convertAbsToRel__13Z2AudioCameraCFR3VecP3Vec(); -extern "C" void isInSight__13Z2AudioCameraCFR3Vec(); -extern "C" void __ct__9Z2SpotMicFv(); -extern "C" void clearMicState__9Z2SpotMicFi(); -extern "C" void calcVolumeFactor__9Z2SpotMicFi(); -extern "C" void setMicState__9Z2SpotMicFP13Z2AudioCamerai(); -extern "C" void calcMicDist__9Z2SpotMicFP9Z2Audible(); -extern "C" void calcMicPriority__9Z2SpotMicFf(); -extern "C" void calcMicVolume__9Z2SpotMicFfif(); -extern "C" void __ct__10Z2AudienceFv(); -extern "C" void __dt__10Z2AudienceFv(); -extern "C" void func_802BD288(void* _this); -extern "C" void setAudioCamera__10Z2AudienceFPA4_fR3VecR3Vecffbib(); -extern "C" void func_802BD338(); -extern "C" void deleteAudible__10Z2AudienceFP10JAIAudible(); -extern "C" void __dt__9Z2AudibleFv(); -extern "C" void calcPriority__10Z2AudienceFP10JAIAudible(); -extern "C" void calcOffMicSound__10Z2AudienceFf(); -extern "C" void mixChannelOut__10Z2AudienceFRC14JASSoundParamsP10JAIAudiblei(); -extern "C" void setTargetVolume__10Z2AudienceFfi(); -extern "C" void convertAbsToRel__10Z2AudienceFR3VecP3Veci(); -extern "C" void calcRelPosVolume__10Z2AudienceFRC3Vecfi(); -extern "C" void calcRelPosPan__10Z2AudienceFRC3Veci(); -extern "C" void calcRelPosDolby__10Z2AudienceFRC3Veci(); -extern "C" void calcVolume___10Z2AudienceCFfi(); -extern "C" void calcDeltaPriority___10Z2AudienceCFfib(); -extern "C" void func_802BDCB0(); -extern "C" void calcFxMix___10Z2AudienceCFfi(); -extern "C" void calcPitch___10Z2AudienceCFP16Z2AudibleChannelPC9Z2AudiblePC13Z2AudioCamera(); -extern "C" void getMaxChannels__10Z2AudienceFv(); -extern "C" void __sinit_Z2Audience_cpp(); -extern "C" extern u8 struct_80451358[8]; - -// -// External References: -// - -extern "C" void __ct__17JASGenericMemPoolFv(); -extern "C" void __dt__17JASGenericMemPoolFv(); -extern "C" void alloc__17JASGenericMemPoolFUl(); -extern "C" void free__17JASGenericMemPoolFPvUl(); -extern "C" void clamp__14JASSoundParamsFv(); -extern "C" void combine__14JASSoundParamsFRC14JASSoundParamsRC14JASSoundParams(); -extern "C" void __dt__10JAIAudibleFv(); -extern "C" void __dt__11JAIAudienceFv(); -extern "C" void linearTransform__6Z2CalcFfffffb(); -extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign(); -extern "C" void getAudibleSwFull__11Z2SoundInfoF10JAISoundID(); -extern "C" void __dl__FPv(); -extern "C" void __register_global_object(); -extern "C" void __construct_array(); -extern "C" void __cvt_fp2unsigned(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__10JAIAudible[5 + 1 /* padding */]; -extern "C" extern void* __vt__11JAIAudience[8]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 DISTANCE_MAX__7Z2Param; -extern "C" f32 MAX_VOLUME_DISTANCE__7Z2Param; -extern "C" f32 DOLBY_CENTER_VALUE__7Z2Param; -extern "C" f32 DOLBY_FLONT_DISTANCE_MAX__7Z2Param; -extern "C" f32 DOLBY_BEHIND_DISTANCE_MAX__7Z2Param; -extern "C" f32 DISTANCE_FX_PARAM__7Z2Param; -extern "C" f32 SONIC_SPEED__7Z2Param; -extern "C" extern u8 data_80450B4C[4]; -extern "C" f32 MIN_DISTANCE_VOLUME__7Z2Param; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// /* 802BBCDC-802BBD18 2B661C 003C+00 1/1 0/0 0/0 .text * calc__15Z2AudibleAbsPosFRCQ29JGeometry8TVec3<f> */ @@ -139,15 +20,6 @@ void Z2AudibleAbsPos::calc(JGeometry::TVec3<f32> const& param_0) { field_0x0.set(param_0); } -/* ############################################################################################## */ -/* 80455AA0-80455AA4 0040A0 0004+00 19/19 0/0 0/0 .sdata2 @848 */ -SECTION_SDATA2 static u8 lit_848[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - /* 802BBD18-802BBD94 2B6658 007C+00 1/1 0/0 0/0 .text * init__15Z2AudibleAbsPosFPQ29JGeometry8TVec3<f>RCQ29JGeometry8TVec3<f>PCQ29JGeometry8TVec3<f> */ void Z2AudibleAbsPos::init(JGeometry::TVec3<f32>* param_0, JGeometry::TVec3<f32> const& param_1, @@ -162,40 +34,6 @@ void Z2AudibleAbsPos::init(JGeometry::TVec3<f32>* param_0, JGeometry::TVec3<f32> field_0xc.zero(); } - -/* ############################################################################################## */ -/* 803CAC98-803CACB8 027DB8 0020+00 2/2 0/0 0/0 .data __vt__10Z2Audience */ -SECTION_DATA extern void* __vt__10Z2Audience[8] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10Z2AudienceFv, - (void*)func_802BD338, - (void*)getMaxChannels__10Z2AudienceFv, - (void*)deleteAudible__10Z2AudienceFP10JAIAudible, - (void*)calcPriority__10Z2AudienceFP10JAIAudible, - (void*)mixChannelOut__10Z2AudienceFRC14JASSoundParamsP10JAIAudiblei, -}; - -/* 803CACB8-803CACD0 027DD8 0014+04 2/2 0/0 0/0 .data __vt__9Z2Audible */ -SECTION_DATA extern void* __vt__9Z2Audible[5 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__9Z2AudibleFv, - (void*)getOuterParams__9Z2AudibleFi, - (void*)calc__9Z2AudibleFv, - /* padding */ - NULL, -}; - -/* 80455AA4-80455AA8 0040A4 0004+00 16/16 0/0 0/0 .sdata2 @894 */ -SECTION_SDATA2 static f32 lit_894 = 1.0f; - -/* 80455AA8-80455AAC 0040A8 0004+00 10/10 0/0 0/0 .sdata2 @895 */ -SECTION_SDATA2 static f32 lit_895 = 0.5f; - -/* 80455AAC-80455AB0 0040AC 0004+00 5/5 0/0 0/0 .sdata2 @896 */ -SECTION_SDATA2 static f32 lit_896 = -1.0f; - /* 802BBD94-802BBE74 2B66D4 00E0+00 1/1 0/0 0/0 .text * __ct__9Z2AudibleFRCQ29JGeometry8TVec3<f>PCQ29JGeometry8TVec3<f>Ulb */ Z2Audible::Z2Audible(JGeometry::TVec3<f32> const& param_0, JGeometry::TVec3<f32> const* param_1, @@ -230,39 +68,9 @@ JASSoundParams* Z2Audible::getOuterParams(int param_0) { return &field_0x2c[param_0].field_0x0; } -/* ############################################################################################## */ -/* 80455AB0-80455AB4 0040B0 0004+00 4/4 0/0 0/0 .sdata2 @998 */ -SECTION_SDATA2 static f32 lit_998 = 3.0f; - -/* 80455AB4-80455AB8 0040B4 0004+00 1/1 0/0 0/0 .sdata2 @999 */ -SECTION_SDATA2 static f32 lit_999 = 15.0f; - -/* 80455AB8-80455ABC 0040B8 0004+00 4/4 0/0 0/0 .sdata2 @1000 */ -SECTION_SDATA2 static f32 lit_1000 = 3.0f / 10.0f; - -/* 80455ABC-80455AC0 0040BC 0004+00 1/1 0/0 0/0 .sdata2 @1001 */ -SECTION_SDATA2 static f32 lit_1001 = 0.0010000000474974513f; - -/* 80455AC0-80455AC4 0040C0 0004+00 2/2 0/0 0/0 .sdata2 @1002 */ -SECTION_SDATA2 static f32 lit_1002 = 1.0f / 10.0f; - -/* 80455AC4-80455AC8 0040C4 0004+00 1/1 0/0 0/0 .sdata2 @1003 */ -SECTION_SDATA2 static f32 lit_1003 = 1.0f / 30.0f; - -/* 80455AC8-80455AD0 0040C8 0004+04 1/1 0/0 0/0 .sdata2 @1004 */ -SECTION_SDATA2 static f32 lit_1004[1 + 1 /* padding */] = { - 1.0f / 3.0f, - /* padding */ - 0.0f, -}; - -/* 80455AD0-80455AD8 0040D0 0008+00 4/4 0/0 0/0 .sdata2 @1008 */ -SECTION_SDATA2 static f64 lit_1008 = 4503599627370496.0 /* cast u32 to float */; - /* 802BBEE4-802BC204 2B6824 0320+00 1/1 0/0 0/0 .text * setOuterParams__9Z2AudibleFRC14JASSoundParamsRC14JASSoundParamsi */ -// regalloc -#ifdef NONMATCHING +// NONMATCHING regalloc void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams const& param_1, int param_2) { Z2AudibleChannel* this_01 = &field_0x2c[param_2]; @@ -290,8 +98,8 @@ void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams con f32 dVar9 = param_1.mVolume * local_b8.length(); f32 dVar10 = 1.0f; f32 dVar12 = Z2Calc::linearTransform(iStack_94, 0.0f, 15.0f, 1.0f, 0.3f, true); - if (param_1.mVolume > dVar12 && dVar9 > 0.0010000000474974513f) { - dVar10 = Z2Calc::getParamByExp(dVar9, 0.3f, 0.0010000000474974513f, 0.1f, dVar12, 1.0f, + if (param_1.mVolume > dVar12 && dVar9 > 0.001f) { + dVar10 = Z2Calc::getParamByExp(dVar9, 0.3f, 0.001f, 0.1f, dVar12, 1.0f, Z2Calc::CURVE_SIGN_1); if (dVar10 < 0.0f) { dVar10 = 0.0f; @@ -334,12 +142,6 @@ void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams con this_01->mPan = local_b0.mPan; this_01->mDolby = local_b0.mDolby; } -#else -void Z2Audible::setOuterParams(JASSoundParams const& param_0, JASSoundParams const& param_1, - int param_2) { - // NONMATCHING -} -#endif /* 802BC204-802BC218 2B6B44 0014+00 4/4 0/0 0/0 .text getChannel__9Z2AudibleFi */ Z2AudibleChannel* Z2Audible::getChannel(int param_0) { @@ -367,10 +169,6 @@ Z2Audience3DSetting::Z2Audience3DSetting() { init(); } -/* ############################################################################################## */ -/* 80455AD8-80455ADC 0040D8 0004+00 4/4 0/0 0/0 .sdata2 @1036 */ -SECTION_SDATA2 static f32 lit_1036 = 1.5f; - /* 802BC284-802BC308 2B6BC4 0084+00 1/1 0/0 0/0 .text init__19Z2Audience3DSettingFv */ void Z2Audience3DSetting::init() { field_0x40 = Z2Param::MIN_DISTANCE_VOLUME; @@ -387,38 +185,6 @@ void Z2Audience3DSetting::init() { initDolbyDist(); } - -/* ############################################################################################## */ -/* 80455ADC-80455AE0 0040DC 0004+00 2/2 0/0 0/0 .sdata2 @1058 */ -SECTION_SDATA2 static f32 lit_1058 = 1.25f; - -/* 80455AE0-80455AE4 0040E0 0004+00 3/3 0/0 0/0 .sdata2 @1059 */ -SECTION_SDATA2 static f32 lit_1059 = 2.0f; - -/* 80455AE4-80455AE8 0040E4 0004+00 2/2 0/0 0/0 .sdata2 @1060 */ -SECTION_SDATA2 static f32 lit_1060 = 4.0f; - -/* 80455AE8-80455AEC 0040E8 0004+00 2/2 0/0 0/0 .sdata2 @1061 */ -SECTION_SDATA2 static f32 lit_1061 = 6.0f; - -/* 80455AEC-80455AF0 0040EC 0004+00 2/2 0/0 0/0 .sdata2 @1062 */ -SECTION_SDATA2 static f32 lit_1062 = 8.0f; - -/* 80455AF0-80455AF4 0040F0 0004+00 2/2 0/0 0/0 .sdata2 @1063 */ -SECTION_SDATA2 static f32 lit_1063 = 9.0f / 10.0f; - -/* 80455AF4-80455AF8 0040F4 0004+00 2/2 0/0 0/0 .sdata2 @1064 */ -SECTION_SDATA2 static f32 lit_1064 = 4.0f / 5.0f; - -/* 80455AF8-80455AFC 0040F8 0004+00 2/2 0/0 0/0 .sdata2 @1065 */ -SECTION_SDATA2 static f32 lit_1065 = 7.0f / 10.0f; - -/* 80455AFC-80455B00 0040FC 0004+00 2/2 0/0 0/0 .sdata2 @1066 */ -SECTION_SDATA2 static f32 lit_1066 = 3.0f / 5.0f; - -/* 80455B00-80455B04 004100 0004+00 2/2 0/0 0/0 .sdata2 @1067 */ -SECTION_SDATA2 static f32 lit_1067 = 2.0f / 5.0f; - /* 802BC308-802BC4D0 2B6C48 01C8+00 2/2 0/0 0/0 .text initVolumeDist__19Z2Audience3DSettingFv */ void Z2Audience3DSetting::initVolumeDist() { if (mVolumeDistInit) return; @@ -431,10 +197,8 @@ void Z2Audience3DSetting::initVolumeDist() { mVolumeDistInit = true; } - -/* ############################################################################################## */ /* 80451350-80451354 000850 0004+00 2/2 0/0 0/0 .sbss cNearFarRatio */ -static f32 cNearFarRatio; +static f32 cNearFarRatio = Z2Param::MAX_VOLUME_DISTANCE / Z2Param::DISTANCE_MAX; /* 802BC4D0-802BC6A4 2B6E10 01D4+00 1/1 0/0 0/0 .text updateVolumeDist__19Z2Audience3DSettingFf */ void Z2Audience3DSetting::updateVolumeDist(f32 param_0) { @@ -450,7 +214,6 @@ void Z2Audience3DSetting::updateVolumeDist(f32 param_0) { mVolumeDistInit = false; } - /* 802BC6A4-802BC6F8 2B6FE4 0054+00 1/1 0/0 0/0 .text initDolbyDist__19Z2Audience3DSettingFv */ void Z2Audience3DSetting::initDolbyDist() { if (!mDolbyDistInit) { @@ -462,7 +225,6 @@ void Z2Audience3DSetting::initDolbyDist() { } } - /* 802BC6F8-802BC758 2B7038 0060+00 1/1 0/0 0/0 .text updateDolbyDist__19Z2Audience3DSettingFff */ void Z2Audience3DSetting::updateDolbyDist(f32 param_0, f32 param_1) { if (param_0 > -1.0f * Z2Param::DOLBY_FLONT_DISTANCE_MAX) { @@ -481,7 +243,6 @@ void Z2Audience3DSetting::updateDolbyDist(f32 param_0, f32 param_1) { mDolbyDistInit = false; } - /* 802BC758-802BC788 2B7098 0030+00 1/1 0/0 0/0 .text __ct__13Z2AudioCameraFv */ Z2AudioCamera::Z2AudioCamera() { mFovySin = 1.0f; @@ -494,7 +255,6 @@ Z2AudioCamera::Z2AudioCamera() { mSetMainCamera = 0; } - /* 802BC788-802BC7DC 2B70C8 0054+00 1/1 0/0 0/0 .text init__13Z2AudioCameraFv */ void Z2AudioCamera::init() { JGeometry::TPosition3f32 aTStack_38; @@ -509,61 +269,16 @@ void Z2AudioCamera::init() { void Z2AudioCamera::setCameraState(f32 const (*param_0)[4], Vec& param_1, bool param_2) { field_0x0.set(param_0); if (param_2) { - mPos.set(*(JGeometry::TVec3<f32>*)¶m_1); + mPos.set(param_1); field_0x48.set(mPos); mVel.zero(); } else { field_0x48.set(mPos); - mPos.set(*(JGeometry::TVec3<f32>*)¶m_1); + mPos.set(param_1); mVel.sub(mPos, field_0x48); } } - -/* ############################################################################################## */ -/* 8039C220-8039C230 028880 000C+04 1/1 0/0 0/0 .rodata @1193 */ -SECTION_RODATA static u8 const lit_1193[12 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8039C220, &lit_1193); - -/* 80455B08-80455B0C 004108 0004+00 1/1 0/0 0/0 .sdata2 @1267 */ -SECTION_SDATA2 static f32 lit_1267 = -22.755556106567383f; - -/* 80455B0C-80455B10 00410C 0004+00 1/1 0/0 0/0 .sdata2 @1268 */ -SECTION_SDATA2 static f32 lit_1268 = 22.755556106567383f; - -/* 80455B10-80455B14 004110 0004+00 1/1 0/0 0/0 .sdata2 @1269 */ -SECTION_SDATA2 static f32 lit_1269 = 50.0f; - -/* 80455B14-80455B18 004114 0004+00 1/1 0/0 0/0 .sdata2 @1270 */ -SECTION_SDATA2 static f32 lit_1270 = 2.1445069313049316f; - -/* 80455B18-80455B1C 004118 0004+00 2/2 0/0 0/0 .sdata2 @1271 */ -SECTION_SDATA2 static f32 lit_1271 = 32.0f; - -/* 80455B1C-80455B20 00411C 0004+00 1/1 0/0 0/0 .sdata2 @1272 */ -SECTION_SDATA2 static f32 lit_1272 = -100.0f; - -/* 80455B20-80455B24 004120 0004+00 1/1 0/0 0/0 .sdata2 @1273 */ -SECTION_SDATA2 static f32 lit_1273 = 0.01745329238474369f; - /* 802BC8AC-802BCBEC 2B71EC 0340+00 1/1 0/0 0/0 .text * setCameraState__13Z2AudioCameraFPA4_fR3VecR3Vecffbb */ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2, f32 param_3, @@ -582,15 +297,15 @@ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2 mVolCenterZ = 0.0f; dVar11 = mCamDist; } else { - dVar11 = 2.1445069313049316f * (mCamDist * field_0x6c); + dVar11 = 2.144507f * (mCamDist * field_0x6c); mVolCenterZ = mCamDist - dVar11; - if (mVolCenterZ < 32.0f * FLT_EPSILON) { + if (mVolCenterZ < JGeometry::TUtil<f32>::epsilon()) { mVolCenterZ = 0.0f; } } if (mSetMainCamera && mTargetVolume > 0.0f) { - if (dVar11 > (double)(Z2Param::DISTANCE_MAX * (1.0f - mTargetVolume))) + if (dVar11 > (Z2Param::DISTANCE_MAX * (1.0f - mTargetVolume))) { Z2GetAudience()->getSetting()->updateVolumeDist(dVar11 / (1.0f - mTargetVolume)); } else { @@ -604,12 +319,9 @@ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2 Z2GetAudience()->getSetting()->updateDolbyDist(mCamDist, mCamDist); } } else { - JGeometry::TVec3<f32> aTStack_cc(0.0f, 0.0f, 0.0f); - aTStack_cc.x = param_0[0][0]; - aTStack_cc.y = param_0[0][1]; - aTStack_cc.z = param_0[0][2]; + Vec aTStack_cc = {param_0[0][0], param_0[0][1], param_0[0][2]}; Mtx rotMtx; - MTXRotAxisRad(rotMtx, aTStack_cc, 0.01745329238474369f * (-1.0f * dVar10)); + MTXRotAxisRad(rotMtx, &aTStack_cc, 0.017453292f * (-1.0f * dVar10)); JGeometry::TVec3<f32> aTStack_d8; MTXMultVec(rotMtx, aTStack_c0, aTStack_d8); aTStack_d8.scale(aTStack_c0.y / aTStack_d8.y); @@ -621,7 +333,6 @@ void Z2AudioCamera::setCameraState(f32 (*param_0)[4], Vec& param_1, Vec& param_2 setCameraState(param_0, param_1, param_6); } - /* 802BCBEC-802BCC7C 2B752C 0090+00 2/2 0/0 0/0 .text * convertAbsToRel__13Z2AudioCameraFP9Z2Audiblei */ void Z2AudioCamera::convertAbsToRel(Z2Audible* param_0, int param_1) { @@ -667,19 +378,6 @@ bool Z2AudioCamera::isInSight(Vec& param_0) const { return true; } -/* ############################################################################################## */ -/* 80455B24-80455B28 004124 0004+00 1/1 0/0 0/0 .sdata2 @1334 */ -SECTION_SDATA2 static f32 lit_1334 = 200.0f; - -/* 80455B28-80455B2C 004128 0004+00 1/1 0/0 0/0 .sdata2 @1335 */ -SECTION_SDATA2 static f32 lit_1335 = 400.0f; - -/* 80455B2C-80455B30 00412C 0004+00 2/2 0/0 0/0 .sdata2 @1336 */ -SECTION_SDATA2 static f32 lit_1336 = 1.0f / 5.0f; - -/* 80455B30-80455B34 004130 0004+00 1/1 0/0 0/0 .sdata2 @1337 */ -SECTION_SDATA2 static f32 lit_1337 = 255.0f; - /* 802BCD28-802BCDA8 2B7668 0080+00 1/1 0/0 0/0 .text __ct__9Z2SpotMicFv */ Z2SpotMic::Z2SpotMic() { field_0x0 = 200.0f; @@ -693,7 +391,6 @@ Z2SpotMic::Z2SpotMic() { clearMicState(0); } - /* 802BCDA8-802BCDE8 2B76E8 0040+00 2/2 0/0 0/0 .text clearMicState__9Z2SpotMicFi */ void Z2SpotMic::clearMicState(int param_0) { field_0x10[param_0] = NULL; @@ -735,7 +432,6 @@ void Z2SpotMic::setMicState(Z2AudioCamera* param_0, int param_1) { } } - /* 802BCF5C-802BCFE4 2B789C 0088+00 2/2 0/0 0/0 .text calcMicDist__9Z2SpotMicFP9Z2Audible */ f32 Z2SpotMic::calcMicDist(Z2Audible* param_0) { @@ -756,7 +452,6 @@ f32 Z2SpotMic::calcMicDist(Z2Audible* param_0) { return aTStack_1c.length(); } - /* 802BCFE4-802BD03C 2B7924 0058+00 1/1 0/0 0/0 .text calcMicPriority__9Z2SpotMicFf */ u32 Z2SpotMic::calcMicPriority(f32 param_0) { if (param_0 > field_0x4) { @@ -809,25 +504,18 @@ f32 Z2SpotMic::calcMicVolume(f32 param_0, int param_1, f32 param_2) { return param_2; } - /* 802BD130-802BD1FC 2B7A70 00CC+00 0/0 1/1 0/0 .text __ct__10Z2AudienceFv */ Z2Audience::Z2Audience() : JASGlobalInstance<Z2Audience>(true), field_0x4(1.0f), field_0x8(0x7f) { - mNumPlayers = 1; + mMaxChannels = 1; mUsingOffMicVol = false; mAudioCamera[0].init(); mAudioCamera[0].setMainCamera(); mLinkMic = mSpotMic; } - /* 802BD1FC-802BD288 2B7B3C 008C+00 1/0 1/1 0/0 .text __dt__10Z2AudienceFv */ Z2Audience::~Z2Audience() {} -/* 802BD288-802BD2DC 2B7BC8 0054+00 2/2 1/1 0/0 .text __dt__22JASMemPool<9Z2Audible>Fv */ -extern "C" void func_802BD288(void* _this) { - // NONMATCHING -} - /* 802BD2DC-802BD338 2B7C1C 005C+00 0/0 1/1 0/0 .text * setAudioCamera__10Z2AudienceFPA4_fR3VecR3Vecffbib */ void Z2Audience::setAudioCamera(f32 (*param_0)[4], Vec& param_1, Vec& param_2, f32 param_3, @@ -836,38 +524,23 @@ void Z2Audience::setAudioCamera(f32 (*param_0)[4], Vec& param_1, Vec& param_2, f mLinkMic->setMicState(&mAudioCamera[param_6], param_6); } -/* ############################################################################################## */ -/* 804341D8-804341E4 060EF8 000C+00 2/2 0/0 0/0 .bss @1539 */ -static u8 lit_1539[12]; - -/* 804341E4-804341F8 060F04 0010+04 2/2 1/1 0/0 .bss - * memPool_$localstatic3$getMemPool___30JASPoolAllocObject<9Z2Audible>Fv */ -extern u8 data_804341E4[16 + 4 /* padding */]; -u8 data_804341E4[16 + 4 /* padding */]; - -/* 80451354-80451358 000854 0004+00 2/2 1/1 0/0 .sbss None */ -extern u8 data_80451354[4]; -u8 data_80451354[4]; - /* 802BD338-802BD4D4 2B7C78 019C+00 1/0 0/0 0/0 .text * newAudible__10Z2AudienceFRCQ29JGeometry8TVec3<f>10JAISoundIDPCQ29JGeometry8TVec3<f>Ul */ JAIAudible* Z2Audience::newAudible(JGeometry::TVec3<f32> const& param_0, JAISoundID param_1, JGeometry::TVec3<f32> const* param_2, u32 param_3) { - JAUAudibleParam local_34; - u32 uVar4 = param_3 | ~((1 << mNumPlayers) + -1); + u32 uVar4 = param_3 | ~((1 << mMaxChannels) + -1); if (uVar4 == 0xffffffff) { return NULL; } - local_34 = Z2GetSoundInfo()->getAudibleSwFull(param_1); - bool x = ((local_34.field_0x0.bytes.b0_0 >> 4) & 0xf) != 0; - Z2Audible* this_01 = (Z2Audible*)new JASPoolAllocObject<Z2Audible>(); - this_01 = new (this_01) Z2Audible(param_0, param_2, uVar4, x); + JAUAudibleParam local_34 = Z2GetSoundInfo()->getAudibleSwFull(param_1); + bool x = local_34.field_0x0.bytes.b0_0 != 0; + Z2Audible* this_01 = new Z2Audible(param_0, param_2, uVar4, x); if (this_01 == NULL) { return NULL; } this_01->setAudibleParam(local_34); - for (int iVar5 = 0; iVar5 < mNumPlayers; iVar5++) { + for (int iVar5 = 0; iVar5 < mMaxChannels; iVar5++) { Z2AudibleChannel* iVar2 = this_01->getChannel(iVar5); if (iVar2 != NULL) { u32 local_38 = this_01->getDistVolBit(); @@ -884,7 +557,6 @@ JAIAudible* Z2Audience::newAudible(JGeometry::TVec3<f32> const& param_0, JAISoun return this_01; } - /* 802BD4D4-802BD510 2B7E14 003C+00 1/0 0/0 0/0 .text deleteAudible__10Z2AudienceFP10JAIAudible */ void Z2Audience::deleteAudible(JAIAudible* param_0) { delete param_0; @@ -894,12 +566,11 @@ void Z2Audience::deleteAudible(JAIAudible* param_0) { Z2Audible::~Z2Audible() { } - /* 802BD5B8-802BD704 2B7EF8 014C+00 1/0 0/0 0/0 .text calcPriority__10Z2AudienceFP10JAIAudible */ u32 Z2Audience::calcPriority(JAIAudible* param_0) { Z2Audible* z2Audible = (Z2Audible*)param_0; if (!z2Audible->getAudibleParam()->field_0x0.bytes.b0_4) { - for (int i = 0; i < mNumPlayers; i++) { + for (int i = 0; i < mMaxChannels; i++) { mAudioCamera[i].convertAbsToRel(z2Audible, i); } return 0; @@ -907,7 +578,7 @@ u32 Z2Audience::calcPriority(JAIAudible* param_0) { u32 deltaPriority[1]; u32 rv = 0xffffffff; - for (int i = 0; i < mNumPlayers; i++) { + for (int i = 0; i < mMaxChannels; i++) { Z2AudibleChannel* iVar4 = (z2Audible)->getChannel(i); if (iVar4 != NULL) { mAudioCamera[i].convertAbsToRel(z2Audible, i); @@ -968,14 +639,14 @@ void Z2Audience::mixChannelOut(JASSoundParams const& param_0, JAIAudible* param_ local_60.mVolume = 1.0f; } - if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_1 && mNumPlayers == 1) { + if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_1 && mMaxChannels == 1) { local_60.mDolby = calcRelPosDolby(*(Vec*)&pZVar5->field_0x14.field_0x00, param_2); } else { local_60.mDolby = 0.5f; } if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_0) { - if (mNumPlayers > 2) { + if (mMaxChannels > 2) { f32 fVar1; if (param_2 & 1) { fVar1 = 1.0f; @@ -1015,8 +686,6 @@ bool Z2Audience::convertAbsToRel(Vec& param_0, Vec* param_1, int param_2) { } /* 802BD95C-802BDA44 2B829C 00E8+00 0/0 3/3 0/0 .text calcRelPosVolume__10Z2AudienceFRC3Vecfi */ -// Mathces with literals -#ifdef NONMATCHING f32 Z2Audience::calcRelPosVolume(Vec const& param_0, f32 param_1, int param_2) { JGeometry::TVec3<f32> aTStack_3c; JGeometry::setTVec3f(param_0, *(Vec*)&aTStack_3c); @@ -1036,11 +705,6 @@ f32 Z2Audience::calcRelPosVolume(Vec const& param_0, f32 param_1, int param_2) { (this_00 - mSetting.field_0x3c), 0.0f, 1.0f); } -#else -f32 Z2Audience::calcRelPosVolume(Vec const& param_0, f32 param_1, int param_2) { - // NONMATCHING -} -#endif /* 802BDA44-802BDB44 2B8384 0100+00 1/1 3/3 0/0 .text calcRelPosPan__10Z2AudienceFRC3Veci */ @@ -1075,7 +739,6 @@ f32 Z2Audience::calcRelPosPan(Vec const& param_0, int param_1) { return dVar6; } - /* 802BDB44-802BDBDC 2B8484 0098+00 1/1 3/3 0/0 .text calcRelPosDolby__10Z2AudienceFRC3Veci */ f32 Z2Audience::calcRelPosDolby(Vec const& param_0, int param_1) { f32 fVar1 = param_0.z + mAudioCamera[param_1].getDolbyCenterZ(); @@ -1097,7 +760,6 @@ f32 Z2Audience::calcRelPosDolby(Vec const& param_0, int param_1) { 1.0f, Z2Calc::CURVE_SIGN_0); } - /* 802BDBDC-802BDC44 2B851C 0068+00 1/1 0/0 0/0 .text calcVolume___10Z2AudienceCFfi */ f32 Z2Audience::calcVolume_(f32 param_0, int param_1) const { if (param_0 > mSetting.field_0x0[param_1]) { @@ -1119,7 +781,6 @@ f32 Z2Audience::calcVolume_(f32 param_0, int param_1) const { return volume; } - /* 802BDC44-802BDCB0 2B8584 006C+00 2/2 0/0 0/0 .text calcDeltaPriority___10Z2AudienceCFfib */ u32 Z2Audience::calcDeltaPriority_(f32 param_0, int param_1, bool param_2) const { if (param_0 > mSetting.field_0x0[param_1]) { @@ -1158,10 +819,6 @@ f32 Z2Audience::calcFxMix_(f32 param_0, int param_1) const { return mSetting.field_0x50 + mSetting.field_0xe8[param_1] * (param_0 - mSetting.field_0x3c); } -/* ############################################################################################## */ -/* 80455B34-80455B38 004134 0004+00 1/1 0/0 0/0 .sdata2 @1988 */ -SECTION_SDATA2 static f32 lit_1988 = 1.0f / 15.0f; - /* 802BDD48-802BDED4 2B8688 018C+00 1/1 0/0 0/0 .text * calcPitch___10Z2AudienceCFP16Z2AudibleChannelPC9Z2AudiblePC13Z2AudioCamera */ f32 Z2Audience::calcPitch_(Z2AudibleChannel* param_0, Z2Audible const* param_1, @@ -1195,18 +852,13 @@ f32 Z2Audience::calcPitch_(Z2AudibleChannel* param_0, Z2Audible const* param_1, /* 802BDED4-802BDEDC 2B8814 0008+00 1/0 0/0 0/0 .text getMaxChannels__10Z2AudienceFv */ int Z2Audience::getMaxChannels() { - return mNumPlayers; -} - -/* 802BDEDC-802BDEF0 2B881C 0014+00 0/0 1/0 0/0 .text __sinit_Z2Audience_cpp */ -void __sinit_Z2Audience_cpp() { - // NONMATCHING + return mMaxChannels; } -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802BDEDC, __sinit_Z2Audience_cpp); -#pragma pop +// padding (???) +s8 data_80451355; +s8 data_80451356; +s8 data_80451357; /* ############################################################################################## */ /* 80451358-80451360 -00001 0008+00 0/0 1/1 0/0 .sbss None */ @@ -1216,4 +868,3 @@ REGISTER_CTORS(0x802BDEDC, __sinit_Z2Audience_cpp); // u8 struct_80451358[8]; s8 data_80451358; s8 data_80451359; -u8 data_8045135a[6]; // padding?
\ No newline at end of file diff --git a/src/Z2AudioLib/Z2AudioArcLoader.cpp b/src/Z2AudioLib/Z2AudioArcLoader.cpp index 99075c1014..b7d6789d98 100644 --- a/src/Z2AudioLib/Z2AudioArcLoader.cpp +++ b/src/Z2AudioLib/Z2AudioArcLoader.cpp @@ -5,54 +5,13 @@ #include "Z2AudioLib/Z2AudioArcLoader.h" #include "JSystem/JAudio2/JAUSectionHeap.h" -#include "dol2asm.h" - -// -// Types: -// - -// -// Forward References: -// - -extern "C" void __ct__16Z2AudioArcLoaderFP10JAUSection(); -extern "C" void readCommandMore__16Z2AudioArcLoaderFUl(); -extern "C" void readBFCA__16Z2AudioArcLoaderFPCv(); -extern "C" void readBSTN__16Z2AudioArcLoaderFPCvUl(); -extern "C" void __dt__16Z2AudioArcLoaderFv(); - -// -// External References: -// - -extern "C" void __dt__22JAUAudioArcInterpreterFv(); -extern "C" void __ct__17JAUAudioArcLoaderFP10JAUSection(); -extern "C" void readWS__17JAUAudioArcLoaderFUlPCvUl(); -extern "C" void readBNK__17JAUAudioArcLoaderFUlPCv(); -extern "C" void readBSC__17JAUAudioArcLoaderFPCvUl(); -extern "C" void readBST__17JAUAudioArcLoaderFPCvUl(); -extern "C" void readBMS__17JAUAudioArcLoaderFUlPCvUl(); -extern "C" void readBMS_fromArchive__17JAUAudioArcLoaderFUl(); -extern "C" void newVoiceBank__17JAUAudioArcLoaderFUlUl(); -extern "C" void newDynamicSeqBlock__17JAUAudioArcLoaderFUl(); -extern "C" void readBSFT__17JAUAudioArcLoaderFPCv(); -extern "C" void beginBNKList__17JAUAudioArcLoaderFUlUl(); -extern "C" void endBNKList__17JAUAudioArcLoaderFv(); -extern "C" void readMaxSeCategory__17JAUAudioArcLoaderFiii(); -extern "C" void getOpenSection__14JAUSectionHeapFv(); -extern "C" void initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap(); -extern "C" void __dl__FPv(); -extern "C" void mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */]; -extern "C" extern u8 data_80450B40[4]; -extern "C" extern u8 data_80450CC0[4 + 4 /* padding */]; -extern "C" u8 sCurrentHeap__7JKRHeap[4]; -extern "C" extern u8 __OSReport_disable; +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "Z2AudioLib/Z2FxLineMgr.h" /* 802A9A34-802A9A70 2A4374 003C+00 0/0 1/1 0/0 .text __ct__16Z2AudioArcLoaderFP10JAUSection */ Z2AudioArcLoader::Z2AudioArcLoader(JAUSection* param_0) : JAUAudioArcLoader(param_0) { + /* empty function */ } /* 802A9A70-802A9AC8 2A43B0 0058+00 1/0 0/0 0/0 .text readCommandMore__16Z2AudioArcLoaderFUl */ @@ -68,22 +27,16 @@ bool Z2AudioArcLoader::readCommandMore(u32 param_0) { } /* 802A9AC8-802A9B54 2A4408 008C+00 1/1 0/0 0/0 .text readBFCA__16Z2AudioArcLoaderFPCv */ -// regalloc and extra stack -#ifdef NONMATCHING +// NONMATCHING regalloc void Z2AudioArcLoader::readBFCA(void const* param_0) { - JAUSectionHeap* sectionHeap = JASGlobalInstance<JAUSectionHeap>::getInstance(); - JKRHeap* pJVar1 = sectionHeap->getHeap(); - JKRArchive* pJVar5 = JKRArchive::mount((void*)param_0, JKRGetCurrentHeap(), JKRArchive::MOUNT_DIRECTION_TAIL); - Z2GetFxLineMgr()->initDataArc(pJVar5, pJVar1); - JKRUnmountArchive(pJVar5); + JKRHeap* heap = JAUSectionHeap::getInstance()->getHeap(); + JKRArchive* archive = JKRArchive::mount((void*)param_0, JKRGetCurrentHeap(), JKRArchive::MOUNT_DIRECTION_TAIL); + Z2GetFxLineMgr()->initDataArc(archive, heap); + JKRUnmountArchive(archive); } -#else -void Z2AudioArcLoader::readBFCA(void const* param_0) { - // NONMATCHING -} -#endif + /* 802A9B54-802A9B58 2A4494 0004+00 1/0 0/0 0/0 .text readBSTN__16Z2AudioArcLoaderFPCvUl */ void Z2AudioArcLoader::readBSTN(void const* param_0, u32 param_1) { /* empty function */ -}
\ No newline at end of file +} diff --git a/src/Z2AudioLib/Z2AudioMgr.cpp b/src/Z2AudioLib/Z2AudioMgr.cpp index 394591664f..dbe6813902 100644 --- a/src/Z2AudioLib/Z2AudioMgr.cpp +++ b/src/Z2AudioLib/Z2AudioMgr.cpp @@ -6,231 +6,49 @@ #include "Z2AudioLib/Z2AudioMgr.h" #include "JSystem/JAudio2/JASAiCtrl.h" #include "JSystem/JAudio2/JASDriverIF.h" +#include "JSystem/JAudio2/JASResArcLoader.h" +#include "JSystem/JAudio2/JASSeqParser.h" +#include "JSystem/JAudio2/JAUInitializer.h" +#include "JSystem/JAudio2/JAUSectionHeap.h" +#include "JSystem/JAudio2/JAUStreamAramMgr.h" +#include "JSystem/JKernel/JKRSolidHeap.h" #include "Z2AudioLib/Z2AudioArcLoader.h" +#include "Z2AudioLib/Z2Param.h" #include "Z2AudioLib/Z2SoundHandles.h" #include "stdio.h" #include "stdlib.h" -#include "dol2asm.h" #include "dolphin/os.h" -// -// Types: -// - -struct Z2Param { - static f32 VOL_BGM_DEFAULT; - static f32 VOL_SE_SYSTEM_DEFAULT; - static f32 VOL_SE_LINK_VOICE_DEFAULT; - static f32 VOL_SE_LINK_MOTION_DEFAULT; - static f32 VOL_SE_LINK_FOOTNOTE_DEFAULT; - static f32 VOL_SE_CHAR_VOICE_DEFAULT; - static f32 VOL_SE_CHAR_MOVE_DEFAULT; - static f32 VOL_SE_OBJECT_DEFAULT; - static f32 VOL_SE_ATMOSPHERE_DEFAULT; -}; - -// -// Forward References: -// - -extern "C" void __ct__10Z2AudioMgrFv(); -extern "C" void init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive(); -extern "C" void func_802CD7F8(void* _this); -extern "C" void setOutputMode__10Z2AudioMgrFUl(); -extern "C" void zeldaGFrameWork__10Z2AudioMgrFv(); -extern "C" void gframeProcess__10Z2AudioMgrFv(); -extern "C" void resetProcess__10Z2AudioMgrFUlb(); -extern "C" void resetRecover__10Z2AudioMgrFv(); -extern "C" void hasReset__10Z2AudioMgrCFv(); -extern "C" void func_802CDB1C(); -extern "C" void func_802CDB68(void* _this); -extern "C" void func_802CDC08(void* _this, u32); -extern "C" void func_802CDCEC(void* _this, u32*); -extern "C" extern char const* const Z2AudioMgr__stringBase0; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void alloc__7JASHeapFP7JASHeapUl(); -extern "C" void free__7JASHeapFv(); -extern "C" void __ct__17JASGenericMemPoolFv(); -extern "C" void newMemPool__17JASGenericMemPoolFUli(); -extern "C" void getAramHeap__9JASKernelFv(); -extern "C" void __dt__7JASHeapFv(); -extern "C" void getResMaxSize__15JASResArcLoaderFPC10JKRArchive(); -extern "C" void getSubFrames__9JASDriverFv(); -extern "C" void __ct__15JASAudioReseterFv(); -extern "C" void start__15JASAudioReseterFUlb(); -extern "C" void resume__15JASAudioReseterFv(); -extern "C" void checkDone__15JASAudioReseterCFv(); -extern "C" void setOutputMode__9JASDriverFUl(); -extern "C" void setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement(); -extern "C" void setAudience__8JAISeMgrFP11JAIAudience(); -extern "C" void setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr(); -extern "C" void getNumActiveSe__8JAISeMgrCFv(); -extern "C" void __ct__12JAISoundInfoFb(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void __dt__16JAIStreamAramMgrFv(); -extern "C" void __dt__22JAUAudioArcInterpreterFv(); -extern "C" void load__17JAUAudioArcLoaderFPCv(); -extern "C" void __defctor__7JASHeapFv(); -extern "C" void __ct__18JAU_JASInitializerFv(); -extern "C" void initJASystem__18JAU_JASInitializerFP12JKRSolidHeap(); -extern "C" void __ct__18JAU_JAIInitializerFv(); -extern "C" void initJAInterface__18JAU_JAIInitializerFv(); -extern "C" void finishBuild__10JAUSectionFv(); -extern "C" void setSeqDataArchive__14JAUSectionHeapFP10JKRArchive(); -extern "C" void JAUNewSectionHeap__Fb(); -extern "C" void newDynamicSeqBlock__14JAUSectionHeapFUl(); -extern "C" void __ct__16Z2AudioArcLoaderFP10JAUSection(); -extern "C" void seqCallback__FP8JASTrackUs(); -extern "C" void __ct__10Z2SoundMgrFv(); -extern "C" void framework__10Z2SoundMgrFv(); -extern "C" void stopSync__10Z2SoundMgrFv(); -extern "C" void initParams__10Z2SoundMgrFv(); -extern "C" void __ct__14Z2SoundStarterFb(); -extern "C" void func_802AB200(void* _this); -extern "C" void __ct__7Z2SeMgrFv(); -extern "C" void initSe__7Z2SeMgrFv(); -extern "C" void processSeFramework__7Z2SeMgrFv(); -extern "C" void __ct__8Z2SeqMgrFv(); -extern "C" void processBgmFramework__8Z2SeqMgrFv(); -extern "C" void __ct__11Z2StatusMgrFv(); -extern "C" void processHeartGaugeSound__11Z2StatusMgrFv(); -extern "C" void menuOut__11Z2StatusMgrFv(); -extern "C" void processTime__11Z2StatusMgrFv(); -extern "C" void __ct__10Z2SceneMgrFv(); -extern "C" void framework__10Z2SceneMgrFv(); -extern "C" void __ct__11Z2FxLineMgrFv(); -extern "C" void __ct__10Z2AudienceFv(); -extern "C" void func_802BD288(void* _this); -extern "C" void __ct__13Z2SoundObjMgrFv(); -extern "C" void __ct__12Z2SpeechMgr2Fv(); -extern "C" void framework__12Z2SpeechMgr2Fv(); -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __register_global_object(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__12JAUSoundInfo[4 + 1 /* padding */]; -extern "C" extern void* __vt__16JAIStreamAramMgr[5]; -extern "C" extern void* __vt__16JAIStreamDataMgr[4 + 1 /* padding */]; -extern "C" extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */]; -extern "C" extern void* __vt__16Z2AudioArcLoader[17 + 1 /* padding */]; -extern "C" extern void* __vt__11Z2SoundInfo[20]; -extern "C" extern u8 data_804341C4[16 + 4 /* padding */]; -extern "C" extern u8 data_804341E4[16 + 4 /* padding */]; -extern "C" f32 VOL_BGM_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_SYSTEM_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_LINK_VOICE_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_LINK_MOTION_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_LINK_FOOTNOTE_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_CHAR_VOICE_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_CHAR_MOVE_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_OBJECT_DEFAULT__7Z2Param; -extern "C" f32 VOL_SE_ATMOSPHERE_DEFAULT__7Z2Param; -extern "C" extern u8 data_80450B4C[4]; -extern "C" extern u8 data_80450B50[4]; -extern "C" u8 sCallBackFunc__12JASSeqParser[4]; -extern "C" u8 sBlockSize__13JASAramStream[4]; -extern "C" extern u8 data_80451348[8]; -extern "C" extern u8 data_80451354[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803CBF38-803CBF44 029058 000C+00 1/1 1/1 0/0 .data __vt__10Z2AudioMgr */ -SECTION_DATA extern void* __vt__10Z2AudioMgr[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)func_802CDB1C, -}; - /* 80451368-80451370 000868 0004+04 1/1 251/251 900/900 .sbss mAudioMgrPtr__10Z2AudioMgr */ Z2AudioMgr* Z2AudioMgr::mAudioMgrPtr; /* 802CD248-802CD34C 2C7B88 0104+00 0/0 1/1 0/0 .text __ct__10Z2AudioMgrFv */ -// wild destructors appeared! -#ifdef NONMATCHING Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) { mAudioMgrPtr = this; mResettingFlag = false; field_0x519 = false; } -#else -Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) { - // NONMATCHING -} -#endif - -/* ############################################################################################## */ -/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CA58 = "Audiores/Waves/"; -SECTION_DEAD static char const* const stringBase_8039CA68 = "index out of range of bitset::reset"; -#pragma pop - -/* 803CBF44-803CBF58 029064 0014+00 2/2 0/0 0/0 .data __vt__26JAUStreamStaticAramMgr_<1> - */ -SECTION_DATA extern void* data_803CBF44[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)func_802CDCEC, - (void*)func_802CDC08, (void*)func_802CDB68, -}; - -/* 803CBF58-803CBF70 029078 0014+04 3/3 0/0 0/0 .data __vt__24JAUStreamAramMgrBase_<1> */ -SECTION_DATA extern void* data_803CBF58[5 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)func_802CD7F8, - /* padding */ - NULL, -}; - -/* 80434268-80434274 060F88 000C+00 1/1 0/0 0/0 .bss @3779 */ -static u8 lit_3779[12]; - -/* 80434274-80434280 060F94 000C+00 1/1 0/0 0/0 .bss @3783 */ -static u8 lit_3783[12]; - -/* 80455F58-80455F5C 004558 0004+00 1/1 0/0 0/0 .sdata2 @3931 */ -SECTION_SDATA2 static f32 lit_3931 = 13.0f / 10.0f; - -/* 80455F5C-80455F60 00455C 0004+00 2/2 0/0 0/0 .sdata2 @3932 */ -SECTION_SDATA2 static f32 lit_3932 = 1.0f; /* 802CD34C-802CD7F8 2C7C8C 04AC+00 0/0 1/1 0/0 .text * init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive */ -// JAUSectionHeap inheritance -#ifdef NONMATCHING +// NONMATCHING JASPoolAllocObject<_> locations void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) { JAU_JASInitializer stack_60; + stack_60.field_0x04 = param_1; stack_60.field_0x1c = 0x8c; stack_60.field_0x2c = 1.3f; stack_60.field_0x30 = "Audiores/Waves/"; - stack_60.field_0x04 = param_1; stack_60.initJASystem(param_0); + JAU_JAIInitializer stack_90; stack_90.field_0x0 = 0x4e; stack_90.field_0x4 = 4; stack_90.field_0xc = 0x30; stack_90.initJAInterface(); + JAISeMgr *seMgr = mSoundMgr.getSeMgr(); + JAISeCategoryArrangement stack_80; stack_80.mItems[0].mMaxActiveSe = 4; stack_80.mItems[0].mMaxInactiveSe = 2; @@ -252,33 +70,33 @@ void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArch stack_80.mItems[8].mMaxInactiveSe = 5; stack_80.mItems[9].mMaxActiveSe = 8; stack_80.mItems[9].mMaxInactiveSe = 4; - stack_80.mItems[10].mMaxActiveSe = 4; - stack_80.mItems[10].mMaxInactiveSe = 2; + seMgr->setCategoryArrangement(stack_80); - seMgr->getCategory(0)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(1)->getParams()->moveVolume(1.0f, 0); - seMgr->getCategory(2)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(3)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(4)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(5)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(6)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(7)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(8)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(9)->getParams()->moveVolume(0.9448819f, 0); - seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0); + seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 0); + seMgr->getCategory(1)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_VOICE_DEFAULT, 0); + seMgr->getCategory(2)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_MOTION_DEFAULT, 0); + seMgr->getCategory(3)->getParams()->moveVolume(Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT, 0); + seMgr->getCategory(4)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0); + seMgr->getCategory(5)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0); + seMgr->getCategory(6)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_MOVE_DEFAULT, 0); + seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0); + seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0); + seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 0); seMgr->getParams()->moveVolume(1.0f, 0); + JAISeqMgr* seqMgr = mSoundMgr.getSeqMgr(); - seqMgr->getParams()->moveVolume(1.0f, 0); + seqMgr->getParams()->moveVolume(Z2Param::VOL_BGM_DEFAULT, 0); JAIStreamMgr* streamMgr = mSoundMgr.getStreamMgr(); JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(param_0, 0) JAUStreamStaticAramMgr_<1>(); streamStaticAramMgr->reserveAram(NULL, 0, 0x14); streamMgr->setStreamAramMgr(streamStaticAramMgr); - streamMgr->getParams()->moveVolume(1.0f, 0); + streamMgr->getParams()->moveVolume(Z2Param::VOL_BGM_DEFAULT, 0); JASPoolAllocObject<Z2Audible>::newMemPool(0x4e); mSoundMgr.getSeMgr()->setAudience(&mAudience); mSoundMgr.getSeqMgr()->setAudience(&mAudience); JASPoolAllocObject<Z2SoundHandlePool>::newMemPool(0x4e); - OSReport("[Z2AudioMgr::init]before Create Section: %d\n", param_0->getFreeSize()); + // OSReport("[Z2AudioMgr::init]before Create Section: %d\n", param_0->getFreeSize()); + JAUSectionHeap* sectionHeap = JAUNewSectionHeap(true); sectionHeap->setSeqDataArchive(param_3); size_t resMaxSize = JASResArcLoader::getResMaxSize(param_3); @@ -289,7 +107,8 @@ void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArch Z2AudioArcLoader stack_a0(sectionHeap); bool baaLoadResult = stack_a0.load(param_2); JUT_ASSERT(252, baaLoadResult); - seqMgr->setSeqDataMgr(sectionHeap->getSeqDataMgr()); + seMgr->setSeqDataMgr(sectionHeap->getSeSeqDataMgr()); + seqMgr->setSeqDataMgr(sectionHeap->getSeqSeqDataMgr()); if (sectionHeap->getStreamDataMgr()) { streamMgr->setStreamDataMgr(sectionHeap->getStreamDataMgr()); } else { @@ -299,17 +118,6 @@ void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArch initSe(); JASSeqParser::registerSeqCallback(seqCallback); } -#else -void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) { - // NONMATCHING -} -#endif - -/* 802CD7F8-802CD888 2C8138 0090+00 1/0 0/0 0/0 .text __dt__24JAUStreamAramMgrBase_<1>Fv - */ -extern "C" void func_802CD7F8(void* _this) { - // NONMATCHING -} /* 802CD888-802CD8B4 2C81C8 002C+00 0/0 5/5 0/0 .text setOutputMode__10Z2AudioMgrFUl */ void Z2AudioMgr::setOutputMode(u32 mode) { @@ -347,14 +155,6 @@ void Z2AudioMgr::resetProcess(u32 param_0, bool param_1) { mResettingFlag = true; } -/* ############################################################################################## */ -/* 80455F60-80455F68 004560 0004+04 1/1 0/0 0/0 .sdata2 @4035 */ -SECTION_SDATA2 static f32 lit_4035[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; - /* 802CD9CC-802CDA6C 2C830C 00A0+00 0/0 1/1 0/0 .text resetRecover__10Z2AudioMgrFv */ void Z2AudioMgr::resetRecover() { mAudioReseter.resume(); @@ -364,20 +164,21 @@ void Z2AudioMgr::resetRecover() { setTwilightGateVol(1.0f); setWindStoneVol(1.0f, 0); menuOut(); - i_bgmAllUnMute(0); + bgmAllUnMute(0); unMuteSceneBgm(0); } /* 802CDA6C-802CDB1C 2C83AC 00B0+00 0/0 2/2 0/0 .text hasReset__10Z2AudioMgrCFv */ bool Z2AudioMgr::hasReset() const { - // NONMATCHING + return mResettingFlag && mAudioReseter.checkDone() + && (field_0x519 + || (mSoundMgr.getSeMgr()->getNumActiveSe() == 0 + && mSoundMgr.getSeqMgr()->getNumActiveSeqs() == 0)); } /* 802CDB1C-802CDB68 2C845C 004C+00 1/0 1/0 0/0 .text * startSound__10Z2AudioMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */ -// vtable order -#ifdef NONMATCHING bool Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, JGeometry::TVec3<f32> const* param_2) { if (mResettingFlag) { @@ -385,45 +186,3 @@ bool Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, } return mSoundMgr.startSound(param_0, param_1, param_2); } -#else -// void Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, -// JGeometry::TVec3<f32> const* param_2) { -extern "C" void func_802CDB1C() { - // NONMATCHING -} -#endif - -/* 802CDB68-802CDC08 2C84A8 00A0+00 1/0 0/0 0/0 .text __dt__26JAUStreamStaticAramMgr_<1>Fv */ -extern "C" void func_802CDB68(void* _this) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CA8C = "index out of range of bitset::test"; -#pragma pop - -/* 802CDC08-802CDCEC 2C8548 00E4+00 1/0 0/0 0/0 .text - * deleteStreamAram__26JAUStreamStaticAramMgr_<1>FUl */ -extern "C" void func_802CDC08(void* _this, u32 param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CAAF = "index out of range of bitset::set"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039CAD1 = "\0\0\0\0\0\0"; -#pragma pop - -/* 802CDCEC-802CDDC8 2C862C 00DC+00 1/0 0/0 0/0 .text - * newStreamAram__26JAUStreamStaticAramMgr_<1>FPUl */ -extern "C" void func_802CDCEC(void* _this, u32* param_0) { - // NONMATCHING -} - -/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
\ No newline at end of file diff --git a/src/Z2AudioLib/Z2Creature.cpp b/src/Z2AudioLib/Z2Creature.cpp index e46e8df96a..a49079b28d 100644 --- a/src/Z2AudioLib/Z2Creature.cpp +++ b/src/Z2AudioLib/Z2Creature.cpp @@ -7,153 +7,101 @@ #include "Z2AudioLib/Z2Param.h" #include "Z2AudioLib/Z2Calc.h" #include "Z2AudioLib/Z2AudioMgr.h" -#include "dol2asm.h" static void Z2_E_sw_modPitch(Z2SoundHandlePool*, u32); static void Z2_E_ms_modVol(Z2SoundHandlePool*, u32); static void Z2_E_mm_modPitch(Z2SoundHandlePool*, u32); static void Z2_B_zan_modPitch(Z2SoundHandlePool*, u32); -// -// External References: -// - -extern "C" void __dt__16Z2SoundObjSimpleFv(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void movePitch__18JAISoundParamsMoveFfUl(); -extern "C" void linearTransform__6Z2CalcFfffffb(); -extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign(); -extern "C" void getRandom__6Z2CalcFfff(); -extern "C" void getHandleSoundID__14Z2SoundHandlesF10JAISoundID(); -extern "C" void incrCrowdSize__7Z2SeMgrFv(); -extern "C" void decrCrowdSize__7Z2SeMgrFv(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void subBgmStop__8Z2SeqMgrFv(); -extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff(); -extern "C" void setBattleSeqState__8Z2SeqMgrFUc(); -extern "C" void setBattleLastHit__8Z2SeqMgrFUc(); -extern "C" void convertAbsToRel__10Z2AudienceFR3VecP3Veci(); -extern "C" void calcRelPosVolume__10Z2AudienceFRC3Vecfi(); -extern "C" void calcRelPosPan__10Z2AudienceFRC3Veci(); -extern "C" void calcRelPosDolby__10Z2AudienceFRC3Veci(); -extern "C" void __ct__14Z2SoundObjBaseFv(); -extern "C" void __dt__14Z2SoundObjBaseFv(); -extern "C" void init__14Z2SoundObjBaseFP3VecUc(); -extern "C" void deleteObject__14Z2SoundObjBaseFv(); -extern "C" void framework__14Z2SoundObjBaseFUlSc(); -extern "C" void dispose__14Z2SoundObjBaseFv(); -extern "C" void stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool(); -extern "C" void startSound__14Z2SoundObjBaseF10JAISoundIDUlSc(); -extern "C" void startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc(); -extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase(); -extern "C" void __ct__16Z2SoundObjSimpleFv(); -extern "C" void __ct__15Z2SoundObjAnimeFv(); -extern "C" void initAnime__15Z2SoundObjAnimeFPvbff(); -extern "C" void updateAnime__15Z2SoundObjAnimeFff(); -extern "C" void func_802C0074(); -extern "C" void func_802C0190(); -extern "C" void isMidnaSpeak__12Z2SpeechMgr2Fv(); -extern "C" void __dl__FPv(); -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void __construct_array(); -extern "C" void _savegpr_20(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__15Z2SoundObjAnime[8]; -extern "C" extern void* __vt__16Z2SoundObjSimple[8]; -extern "C" extern u8 data_80450B44[4]; -extern "C" extern u8 data_80450B48[4]; -extern "C" extern u8 data_80450B70[4]; -extern "C" extern u8 data_80450B7C[4]; -extern "C" extern u8 data_80450B80[4]; -extern "C" extern u8 data_80450B84[4]; -extern "C" extern u8 data_80450B88[4]; -extern "C" extern u8 struct_80451358[8]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// - -/* ############################################################################################## */ +/* 80455BD8-80455BDC 0041D8 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */ +static Z2EnemyArea const sAreaDefault = {true, 700, 1100, 1500}; + +/* 80455BE0-80455BE4 0041E0 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */ +static Z2EnemyArea const sAreaFloating = {false, 700, 1100, 1500}; + +/* 80455BE8-80455BEC 0041E8 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */ +static Z2EnemyArea const sAreaWide = {true, 700, 1500, 3300}; + +/* 80455BF0-80455BF4 0041F0 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */ +static Z2EnemyArea const sAreaWideFloating = {false, 700, 1500, 3300}; + +/* 80455BF8-80455BFC 0041F8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */ +static Z2EnemyArea const sAreaSmall = {true, 300, 700, 1000}; + +/* 80455C00-80455C04 004200 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */ +static Z2EnemyArea const sAreaSmallFloating = {false, 500, 800, 1200}; + +struct EnemyInfo { + char mName[8]; + Z2EnemyArea mEnemyArea; +}; + /* 803CB230-803CB630 028350 0400+00 1/1 0/0 0/0 .data mEnemyInfo */ -SECTION_DATA static u8 mEnemyInfo[1024] = { - 0x44, 0x75, 0x6D, 0x6D, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xBC, 0x04, 0xB0, 0x07, 0xD0, - 0x45, 0x5F, 0x79, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x79, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x79, 0x67, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x2C, 0x01, 0xF4, 0x02, 0xBC, - 0x45, 0x5F, 0x79, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x79, 0x64, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x84, 0x05, 0xDC, - 0x45, 0x5F, 0x72, 0x64, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x79, 0x6D, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x1E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x77, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x64, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x6B, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x74, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xBC, 0x05, 0xDC, 0x09, 0xC4, - 0x45, 0x5F, 0x74, 0x6B, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0xBC, 0x05, 0xDC, 0x09, 0xC4, - 0x45, 0x5F, 0x63, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x64, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x53, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x64, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x84, 0x07, 0x08, - 0x45, 0x5F, 0x6B, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x90, 0x02, 0x58, - 0x45, 0x5F, 0x53, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x62, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x48, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x68, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF4, 0x03, 0x20, 0x05, 0x14, - 0x45, 0x5F, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x6F, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x66, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x66, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x62, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x6D, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x20, 0x05, 0xDC, - 0x45, 0x5F, 0x6E, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x04, 0x4C, - 0x45, 0x5F, 0x70, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x72, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x67, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x03, 0x84, - 0x45, 0x5F, 0x68, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0x84, 0x05, 0xDC, - 0x45, 0x5F, 0x67, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x40, 0x0B, 0xB8, 0x0F, 0xA0, - 0x45, 0x5F, 0x6D, 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x04, 0x4C, - 0x45, 0x5F, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x62, 0x69, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x02, 0xBC, 0x03, 0x84, - 0x45, 0x5F, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x64, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x67, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x6D, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x73, 0x77, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x90, 0x02, 0x58, 0x05, 0xDC, - 0x45, 0x5F, 0x72, 0x64, 0x62, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xF4, 0x03, 0xE8, 0x05, 0xDC, - 0x45, 0x5F, 0x6B, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x7A, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x67, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x5F, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE8, 0x07, 0xD0, 0x0F, 0xA0, - 0x45, 0x5F, 0x6D, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x5F, 0x7A, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x5F, 0x74, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static EnemyInfo mEnemyInfo[64] = { + {"Dummy", sAreaDefault}, + {"E_s1", {true, 700, 1200, 2000}}, + {"E_yk", sAreaSmallFloating}, + {"E_yr", sAreaWideFloating}, + {"E_yg", {true, 300, 500, 700}}, + {"E_yc", sAreaWideFloating}, + {"E_yd", {true, 500, 900, 1500}}, + {"E_rdy", sAreaDefault}, + {"E_ymb", {false, 10, 20, 30}}, + {"", sAreaDefault}, + {"E_wb", sAreaDefault}, + {"E_rd", sAreaDefault}, + {"E_dn", sAreaDefault}, + {"E_kr", sAreaWideFloating}, + {"E_st", sAreaDefault}, + {"E_tk", {true, 700, 1500, 2500}}, + {"E_tk2", {true, 700, 1500, 2500}}, + {"E_cr", sAreaSmall}, + {"E_df", sAreaDefault}, + {"E_fs", sAreaDefault}, + {"E_SB", sAreaDefault}, + {"E_PM", sAreaDefault}, + {"E_db", {true, 500, 900, 1800}}, + {"E_kg", sAreaSmall}, + {"E_sh", sAreaDefault}, + {"E_sf", sAreaDefault}, + {"E_bs", {true, 200, 400, 600}}, + {"E_SM", sAreaDefault}, + {"E_ba", sAreaSmallFloating}, + {"E_bu", sAreaFloating}, + {"E_HM", sAreaDefault}, + {"E_ge", sAreaFloating}, + {"E_hz", {false, 500, 800, 1300}}, + {"E_ws", sAreaSmallFloating}, + {"E_oc", sAreaDefault}, + {"E_fz", sAreaDefault}, + {"E_fb", sAreaDefault}, + {"E_bg", sAreaSmall}, + {"E_mm", {true, 500, 800, 1500}}, + {"E_nz", {true, 500, 700, 1100}}, + {"E_po", sAreaWide}, + {"E_rb", sAreaDefault}, + {"E_sg", {true, 500, 700, 900}}, + {"E_hb", {true, 500, 900, 1500}}, + {"E_gb", {true, 1600, 3000, 4000}}, + {"E_ms", {true, 500, 700, 1100}}, + {"E_dd", sAreaDefault}, + {"E_bi", {true, 500, 700, 900}}, + {"E_tt", sAreaSmallFloating}, + {"E_ai", sAreaDefault}, + {"E_dk", sAreaSmall}, + {"E_ww", sAreaWide}, + {"E_gi", sAreaDefault}, + {"E_sm2", sAreaDefault}, + {"E_sw", {true, 400, 600, 1500}}, + {"E_rdb", {true, 500, 1000, 1500}}, + {"E_kk", sAreaDefault}, + {"E_hp", sAreaDefault}, + {"E_zh", sAreaDefault}, + {"E_gm", sAreaSmall}, + {"B_GG", {false, 1000, 2000, 4000}}, + {"E_mf", sAreaDefault}, + {"E_zm", sAreaDefault}, + {"B_tn", sAreaDefault}, }; /* 802C03C8-802C0420 2BAD08 0058+00 3/3 3/3 129/129 .text __ct__10Z2CreatureFv */ @@ -224,43 +172,6 @@ void Z2Creature::stopAnime() { deleteObject(); } -/* ############################################################################################## */ -/* 80455BD8-80455BDC 0041D8 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */ -SECTION_SDATA2 static u32 sAreaDefault = 0x010002BC; - -/* 80455BDC-80455BE0 0041DC 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BDC = 0x044C05DC; - -/* 80455BE0-80455BE4 0041E0 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */ -SECTION_SDATA2 static u32 sAreaFloating = 0x000002BC; - -/* 80455BE4-80455BE8 0041E4 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BE4 = 0x044C05DC; - -/* 80455BE8-80455BEC 0041E8 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */ -SECTION_SDATA2 static u32 sAreaWide = 0x010002BC; - -/* 80455BEC-80455BF0 0041EC 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BEC = 0x05DC0CE4; - -/* 80455BF0-80455BF4 0041F0 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */ -SECTION_SDATA2 static u32 sAreaWideFloating = 0x000002BC; - -/* 80455BF4-80455BF8 0041F4 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BF4 = 0x05DC0CE4; - -/* 80455BF8-80455BFC 0041F8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */ -SECTION_SDATA2 static u32 sAreaSmall = 0x0100012C; - -/* 80455BFC-80455C00 0041FC 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BFC = 0x02BC03E8; - -/* 80455C00-80455C04 004200 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */ -SECTION_SDATA2 static u32 sAreaSmallFloating = 0x000001F4; - -/* 80455C04-80455C08 004204 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455C04 = 0x032004B0; - /* 802C0720-802C087C 2BB060 015C+00 4/0 2/0 0/0 .text * startCreatureSound__10Z2CreatureF10JAISoundIDUlSc */ Z2SoundHandlePool* Z2Creature::startCreatureSound(JAISoundID i_soundID, u32 param_1, s8 param_2) { @@ -423,10 +334,9 @@ void Z2CreatureCitizen::setMdlType(s8 param_0, bool param_1, bool param_2) { /* 802C0E18-802C0ED8 2BB758 00C0+00 0/0 0/0 21/21 .text playVoice__17Z2CreatureCitizenFi */ -#ifdef NONMATCHING -// regalloc void Z2CreatureCitizen::playVoice(int i_sound) { - u32 sound_id = Z2SE_MAN_A1_V_AWAY + 6 * mCitizenID + i_sound; + u32 tmp = mCitizenID; + u32 sound_id = Z2SE_MAN_A1_V_AWAY + 6 * tmp + i_sound; switch (mCitizenID) { case 0: case 1: @@ -441,11 +351,6 @@ void Z2CreatureCitizen::playVoice(int i_sound) { mLinkSearch = true; } } -#else -void Z2CreatureCitizen::playVoice(int param_0) { - // NONMATCHING -} -#endif /* 802C0ED8-802C0F64 2BB818 008C+00 1/0 0/0 0/0 .text * startCreatureVoice__17Z2CreatureCitizenF10JAISoundIDSc */ @@ -478,7 +383,7 @@ Z2CreatureEnemy::Z2CreatureEnemy() : */ void Z2CreatureEnemy::deleteObject() { if (mEnemyID == 0x2c) { - Z2GetSeqMgr()->i_unMuteSceneBgm(0x21); + Z2GetSeqMgr()->unMuteSceneBgm(0x21); } if (getSupervisor() != NULL) { Z2GetSoundObjMgr()->removeEnemy(this); @@ -739,6 +644,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCreatureExtraSoundLevel(JAISoundID i_so /* 802C1A14-802C1B7C 2BC354 0168+00 4/0 0/0 0/0 .text startCollisionSE__15Z2CreatureEnemyFUlUl */ Z2SoundHandlePool* Z2CreatureEnemy::startCollisionSE(u32 param_0, u32 param_1) { + u8 var1; switch (mEnemyID) { case 0x21: field_0xa3 = 1; @@ -766,7 +672,7 @@ Z2SoundHandlePool* Z2CreatureEnemy::startCollisionSE(u32 param_0, u32 param_1) { case 0x20: case 0x24: field_0xa3 = 1; - u8 var1 = struct_80450869; + var1 = struct_80450869; if (param_0 - 0x40000 <= 1 || param_0 - 0x40000 == 3) { var1 = 0x14; } @@ -1208,12 +1114,3 @@ static void Z2_B_zan_modPitch(Z2SoundHandlePool* i_handle, u32 param_1) { (*i_handle)->getAuxiliary().moveVolume(volume, 0); } } - -/* 802C3040-802C321C 2BD980 01DC+00 0/0 1/0 0/0 .text __sinit_Z2Creature_cpp */ -void __sinit_Z2Creature_cpp(){// NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802C3040, __sinit_Z2Creature_cpp); -#pragma pop
\ No newline at end of file diff --git a/src/Z2AudioLib/Z2EnvSeMgr.cpp b/src/Z2AudioLib/Z2EnvSeMgr.cpp index 50d620c865..9189867d2d 100644 --- a/src/Z2AudioLib/Z2EnvSeMgr.cpp +++ b/src/Z2AudioLib/Z2EnvSeMgr.cpp @@ -1181,22 +1181,23 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) { f32 dVar15 = mEtcSeMgr.getDolbyPower(); bool rv = false; f32 dVar18 = field_0x21c; - f32 local_90; + f32 local_90, local_98, local_9c, local_a0; + bool iVar5, iVar6, iVar7, iVar8; switch (field_0x214) { case 0x11: local_90 = Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.01f, 1.0f, true); dVar18 *= Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.2f, true); - bool iVar8 = field_0x20c.startEnvSeLevel(Z2SE_OBJ_RANCH_WOODPLATE, dVar17, + iVar8 = field_0x20c.startEnvSeLevel(Z2SE_OBJ_RANCH_WOODPLATE, dVar17, (dVar19 * local_90), dVar14, dVar15, dVar18, 0); local_90 = Z2Calc::linearTransform(local_90, 0.0f, 1.0f, 0.3f, 1.0f, true); field_0x0.calcPan(); field_0x1c.calcPan(); - bool iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18); - bool iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90, + iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18); + iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90, (0.8f * dVar18)); - bool iVar5 = false; + iVar5 = false; if (iVar8 && iVar6 && iVar7) { iVar5 = true; } @@ -1265,11 +1266,11 @@ bool Z2EnvSeMgr::startEtcSe(s8 param_1) { case 0x0: break; case 0x10: - f32 local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f, + local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f, Z2Calc::CURVE_SIGN_0); - f32 local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f, + local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f, Z2Calc::CURVE_SIGN_0); - f32 local_a0 = field_0x2e8.calcNoise1f(); + local_a0 = field_0x2e8.calcNoise1f(); rv = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 0.3f, (dVar19 * ((0.332f + 0.668f * local_a0) * local_98)), dVar14, dVar15, 0.8f + 0.2f * local_a0, 0); @@ -1299,6 +1300,7 @@ bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) { (JGeometry::TVec3<f32>*)param_0, fogDensity2, 0.3f, 1.0f, fogDensity, -1.0f, -1.0f, 0); } + //! @bug does not always return a value } /* 802C93A0-802C93E4 2C3CE0 0044+00 0/0 0/0 1/1 .text setFogWipeWidth__10Z2EnvSeMgrFf */ @@ -1331,7 +1333,7 @@ bool Z2EnvSeMgr::startFogSe() { dVar13, 0); bool uVar8 = false; if (iVar5 && iVar6) { - uVar8 = 1; + uVar8 = true; } return uVar8; } diff --git a/src/Z2AudioLib/Z2FxLineMgr.cpp b/src/Z2AudioLib/Z2FxLineMgr.cpp index 8a92d1f9d0..c1a7d1645c 100644 --- a/src/Z2AudioLib/Z2FxLineMgr.cpp +++ b/src/Z2AudioLib/Z2FxLineMgr.cpp @@ -4,180 +4,224 @@ // #include "Z2AudioLib/Z2FxLineMgr.h" -#include "dol2asm.h" - -// -// Types: -// - -struct JSUMemoryInputStream { - /* 802DC520 */ void setBuffer(void const*, s32); -}; - -struct JSUInputStream { - /* 802DC23C */ ~JSUInputStream(); - /* 802DC298 */ void read(void*, s32); -}; - -struct JASDsp { - struct FxlineConfig_ {}; - - /* 8029DB78 */ void setFXLine(u8, s16*, JASDsp::FxlineConfig_*); -}; - -// -// Forward References: -// - -extern "C" void __ct__11Z2FxLineMgrFv(); -extern "C" void initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap(); -extern "C" void setLineID__11Z2FxLineMgrFScbb(); -extern "C" void setLine__11Z2FxLineMgrFP14Z2FxLineConfigbb(); -extern "C" void setFxForceOff__11Z2FxLineMgrFb(); -extern "C" void setUnderWaterFx__11Z2FxLineMgrFb(); -extern "C" void setSceneFx__11Z2FxLineMgrFl(); - -// -// External References: -// - -extern "C" void setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void getResource__10JKRArchiveFUs(); -extern "C" void countResource__10JKRArchiveCFv(); -extern "C" void __dt__14JSUInputStreamFv(); -extern "C" void read__14JSUInputStreamFPvl(); -extern "C" void setBuffer__20JSUMemoryInputStreamFPCvl(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_28(); -extern "C" extern void* __vt__10JSUIosBase[3]; -extern "C" extern void* __vt__20JSURandomInputStream[9]; -extern "C" extern void* __vt__14JSUInputStream[6 + 1 /* padding */]; -extern "C" extern void* __vt__20JSUMemoryInputStream[9 + 1 /* padding */]; -extern "C" extern u8 data_80450B80[4]; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// +#include "Z2AudioLib/Z2SceneMgr.h" +#include "JSystem/JAudio2/JASDSPInterface.h" +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JSupport/JSUMemoryStream.h" /* 802BA7DC-802BA7FC 2B511C 0020+00 0/0 1/1 0/0 .text __ct__11Z2FxLineMgrFv */ Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(this) { - // NONMATCHING + mConfig = NULL; + mLineID = -1; + mFxDataNum = 0; + mSetUnderWaterFx = false; } /* 802BA7FC-802BAC28 2B513C 042C+00 0/0 1/1 0/0 .text * initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap */ -void Z2FxLineMgr::initDataArc(JKRArchive* param_0, JKRHeap* param_1) { - // NONMATCHING +void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) { + mFxLineBuffer[0] = new (heap, 0x20) u8[0x2800]; + mFxLineBuffer[1] = new (heap, 0x20) u8[0x2800]; + mFxLineBuffer[2] = new (heap, 0x20) u8[0x4B00]; + mFxLineBuffer[3] = new (heap, 0x20) u8[0x4B00]; + mFxDataNum = arc->countResource(); + mConfig = new (heap, 0) Z2FxLineConfig[mFxDataNum]; + for (u8 i = 0; i < mFxDataNum; i++) { + void* res = arc->getResource(i); + u32 size = (arc->getResSize(res) + 0x1f) & ~0x1f; + 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]; + JKRFree(res); + } + setLineID(-1, false, false); + setLineID(-1, true, false); } /* 802BAC28-802BAC74 2B5568 004C+00 4/4 0/0 0/0 .text setLineID__11Z2FxLineMgrFScbb */ -void Z2FxLineMgr::setLineID(s8 param_0, bool param_1, bool param_2) { - // NONMATCHING +void Z2FxLineMgr::setLineID(s8 fxID, bool param_1, bool param_2) { + if (fxID < 0) { + mLineID = 0; + } else { + mLineID = fxID; + } + setLine(&mConfig[mLineID], param_1, param_2); } /* 802BAC74-802BAE1C 2B55B4 01A8+00 1/1 0/0 0/0 .text setLine__11Z2FxLineMgrFP14Z2FxLineConfigbb */ -void Z2FxLineMgr::setLine(Z2FxLineConfig* param_0, bool param_1, bool param_2) { - // NONMATCHING +void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { + u8 buf1 = 0; + u8 buf2 = 1; + if (param_1) { + buf1 = 2; + buf2 = 3; + } + + if (mFxLineBuffer[buf1] == NULL || mFxLineBuffer[buf2] == NULL) { + return; + } + + 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; + 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_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]; + JASDsp::setFXLine(buf1, (s16*)mFxLineBuffer[buf1], &dsp_config); + + dsp_config.field_0x0 = config->field_0x18; + dsp_config.field_0x2 = config->field_0x19; + dsp_config.field_0x6 = config->field_0x1a; + 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_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]; + JASDsp::setFXLine(buf2, (s16*)mFxLineBuffer[buf2], &dsp_config); } /* 802BAE1C-802BAE48 2B575C 002C+00 0/0 1/1 0/0 .text setFxForceOff__11Z2FxLineMgrFb */ void Z2FxLineMgr::setFxForceOff(bool param_0) { - // NONMATCHING + setLineID(mLineID, true, param_0); } /* 802BAE48-802BAEB8 2B5788 0070+00 0/0 1/1 0/0 .text setUnderWaterFx__11Z2FxLineMgrFb */ void Z2FxLineMgr::setUnderWaterFx(bool param_0) { - // NONMATCHING + if (mSetUnderWaterFx != param_0) { + if (param_0) { + setLineID(12, true, false); + } else { + setSceneFx(Z2GetSceneMgr()->getCurrentSceneNum()); + } + mSetUnderWaterFx = param_0; + } } -/* ############################################################################################## */ -/* 803CAB18-803CAC48 -00001 0130+00 1/1 0/0 0/0 .data @3566 */ -SECTION_DATA static void* lit_3566[76] = { - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x88), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x54), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x120), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x120), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134), - (void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C), -}; - /* 802BAEB8-802BB00C 2B57F8 0154+00 2/1 1/1 0/0 .text setSceneFx__11Z2FxLineMgrFl */ -void Z2FxLineMgr::setSceneFx(s32 param_0) { - // NONMATCHING -}
\ No newline at end of file +void Z2FxLineMgr::setSceneFx(s32 sceneNum) { + if (Z2GetSceneMgr()->isInDarkness()) { + setLineID(11, true, false); + } else { + switch (sceneNum) { + case SPOT_SHADES_REALM: + setLineID(9, true, false); + break; + case SPOT_KAKARIKO_VILLAGE: + case SPOT_DEATH_MOUNTAIN: + case SPOT_HIDDEN_VILLAGE: + case SPOT_ZORAS_RIVER: + case SPOT_HYRULE_FIELD: + setLineID(10, true, false); + break; + case SPOT_SACRED_GROVE: + case SPOT_FOREST_TEMPLE: + case SPOT_FOREST_TEMPLE_MINIBOSS: + case SPOT_FOREST_TEMPLE_BOSS: + case SPOT_GORGE_LANTERN_CAVE: + case SPOT_LAKE_LANTERN_CAVE: + case SPOT_FARON_WOODS_CAVE: + if (Z2GetSceneMgr()->getCurrentRoomNum() == 2) { + return; + } + // fallthrough + case SPOT_FARON_WOODS: + setLineID(1, true, false); + break; + case SPOT_GORON_MINES: + case SPOT_GORON_MINES_MINIBOSS: + case SPOT_GORON_MINES_BOSS: + case SPOT_ELDIN_MAGNET_CAVE: + setLineID(2, true, false); + break; + case SPOT_LAKE_HYLIA: + case SPOT_LAKEBED_TEMPLE: + case SPOT_LAKEBED_TEMPLE_MINIBOSS: + case SPOT_LAKEBED_TEMPLE_BOSS: + if (Z2GetSceneMgr()->getCurrentRoomNum() == 1) { + setLineID(3, true, false); + } + break; + case SPOT_ARBITERS_GROUNDS: + case SPOT_ARBITERS_GROUNDS_MINIBOSS: + case SPOT_ARBITERS_GROUNDS_BOSS: + setLineID(4, true, false); + break; + case SPOT_SNOWPEAK_RUINS: + case SPOT_SNOWPEAK_RUINS_MINIBOSS: + case SPOT_SNOWPEAK_RUINS_BOSS: + case SPOT_ICE_BLOCK_PUZZLE: + setLineID(5, true, false); + break; + case SPOT_TEMPLE_OF_TIME: + case SPOT_TEMPLE_OF_TIME_MINIBOSS: + case SPOT_TEMPLE_OF_TIME_BOSS: + setLineID(6, true, false); + break; + case SPOT_CITY_IN_THE_SKY: + case SPOT_CITY_IN_THE_SKY_MINIBOSS: + case SPOT_CITY_IN_THE_SKY_BOSS: + setLineID(7, true, false); + break; + case SPOT_HYRULE_CASTLE: + case SPOT_FINAL_BATTLE_THRONE_ROOM: + setLineID(8, true, false); + break; + default: + setLineID(-1, true, false); + break; + } + } +} diff --git a/src/Z2AudioLib/Z2SceneMgr.cpp b/src/Z2AudioLib/Z2SceneMgr.cpp index 632b680532..46909a28cc 100644 --- a/src/Z2AudioLib/Z2SceneMgr.cpp +++ b/src/Z2AudioLib/Z2SceneMgr.cpp @@ -3,908 +3,2053 @@ // Translation Unit: Z2SceneMgr // +#include "JSystem/JAudio2/JASBasicWaveBank.h" +#include "JSystem/JAudio2/JAUSectionHeap.h" +#include "JSystem/JAudio2/JAUSoundTable.h" #include "Z2AudioLib/Z2SceneMgr.h" -#include "Z2AudioLib/Z2SoundMgr.h" -#include "Z2AudioLib/Z2SeqMgr.h" -#include "Z2AudioLib/Z2SeMgr.h" #include "Z2AudioLib/Z2Param.h" -#include "dol2asm.h" - -// -// Types: -// - -struct dSv_memBit_c { - /* 80034860 */ void isSwitch(int) const; -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct Z2SoundObjMgr { - /* 802BF980 */ void setForceBattleArea(bool, u16, u16, u16); - /* 802BFFEC */ void setGhostEnemyState(u8); - /* 802C013C */ void deleteEnemyAll(); -}; - -struct Z2FxLineMgr { - /* 802BAEB8 */ void setSceneFx(s32); -}; - -struct Z2EnvSeMgr { - /* 802C699C */ void resetSceneInner(); - /* 802C6AC0 */ void initSceneEnvSe(s32, s8, f32); -}; - -struct JAUSoundTable { - /* 802A7160 */ void getTypeID(JAISoundID) const; -}; - -struct JASWaveArc { - /* 8029A4C0 */ void load(JASHeap*); - /* 8029A580 */ void loadTail(JASHeap*); - /* 8029A640 */ void erase(); -}; - -// -// Forward References: -// - -extern "C" void __ct__10Z2SceneMgrFv(); -extern "C" void setInDarkness__10Z2SceneMgrFb(); -extern "C" void setSceneExist__10Z2SceneMgrFb(); -extern "C" void setFadeOutStart__10Z2SceneMgrFUc(); -extern "C" void setFadeInStart__10Z2SceneMgrFUc(); -extern "C" void setSceneName__10Z2SceneMgrFPcll(); -extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet); -extern "C" void setFieldBgmPlay__8Z2SeqMgrFb(); -extern "C" void isActive__12JAIStreamMgrCFv(); -extern "C" void getID__8JAISoundCFv(); -extern "C" void func_802B9994(void* _this); -extern "C" static void dComIfGs_getStartPoint__Fv(); -extern "C" void unMuteSceneBgm__8Z2SeqMgrFUl(); -extern "C" void muteSceneBgm__8Z2SeqMgrFUlf(); -extern "C" static void dComIfGs_isSaveSwitch__Fi(); -extern "C" void resetCrowdSize__7Z2SeMgrFv(); -extern "C" void setTwilightGateVol__8Z2SeqMgrFf(); -extern "C" void setWindStoneVol__8Z2SeqMgrFfUl(); -extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0); -extern "C" void sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb(); -extern "C" void framework__10Z2SceneMgrFv(); -extern "C" void load1stDynamicWave__10Z2SceneMgrFv(); -extern "C" void _load1stWaveInner_1__10Z2SceneMgrFv(); -extern "C" void _load1stWaveInner_2__10Z2SceneMgrFv(); -extern "C" void check1stDynamicWave__10Z2SceneMgrFv(); -extern "C" void load2ndDynamicWave__10Z2SceneMgrFv(); -extern "C" void sceneBgmStart__10Z2SceneMgrFv(); -extern "C" void loadStaticWaves__10Z2SceneMgrFv(); -extern "C" bool checkFirstWaves__10Z2SceneMgrFv(); -extern "C" void eraseSeWave__10Z2SceneMgrFUl(); -extern "C" void eraseBgmWave__10Z2SceneMgrFUl(); -extern "C" void getWaveLoadStatus__10Z2SceneMgrFUlUl(); -extern "C" void loadSeWave__10Z2SceneMgrFUl(); -extern "C" void loadBgmWave__10Z2SceneMgrFUl(); -extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1); -extern "C" extern char const* const Z2SceneMgr__stringBase0; - -// -// External References: -// - -extern "C" void dComIfGs_isStageSwitch__Fii(); -extern "C" void isSwitch__12dSv_memBit_cCFi(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void dComIfGs_isEventBit__FUs(); -extern "C" void load__10JASWaveArcFP7JASHeap(); -extern "C" void loadTail__10JASWaveArcFP7JASHeap(); -extern "C" void erase__10JASWaveArcFv(); -extern "C" void stop__8JAISoundFUl(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void getTypeID__13JAUSoundTableCF10JAISoundID(); -extern "C" void resetFilterAll__10Z2SoundMgrFv(); -extern "C" void resetModY__7Z2SeMgrFv(); -extern "C" void seStopAll__7Z2SeMgrFUl(); -extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl(); -extern "C" void bgmStart__8Z2SeqMgrFUlUll(); -extern "C" void bgmStop__8Z2SeqMgrFUll(); -extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl(); -extern "C" void bgmStreamCheckReady__8Z2SeqMgrFv(); -extern "C" void bgmStreamPlay__8Z2SeqMgrFv(); -extern "C" void changeBgmStatus__8Z2SeqMgrFl(); -extern "C" void setHeightVolMod__8Z2SeqMgrFbUl(); -extern "C" void setTimeProcVolMod__8Z2SeqMgrFbUl(); -extern "C" void checkBgmIDPlaying__8Z2SeqMgrFUl(); -extern "C" void resetBattleBgmParams__8Z2SeqMgrFv(); -extern "C" void setBattleBgmOff__8Z2SeqMgrFb(); -extern "C" void menuOut__11Z2StatusMgrFv(); -extern "C" void setDemoName__11Z2StatusMgrFPc(); -extern "C" void checkDayTime__11Z2StatusMgrFv(); -extern "C" void setSceneFx__11Z2FxLineMgrFl(); -extern "C" void setForceBattleArea__13Z2SoundObjMgrFbUsUsUs(); -extern "C" void setGhostEnemyState__13Z2SoundObjMgrFUc(); -extern "C" void deleteEnemyAll__13Z2SoundObjMgrFv(); -extern "C" void resetSceneInner__10Z2EnvSeMgrFv(); -extern "C" void initSceneEnvSe__10Z2EnvSeMgrFlScf(); -extern "C" void _savegpr_16(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_16(); -extern "C" void _restgpr_29(); -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 data_80450B3C[4]; -extern "C" extern u8 data_80450B40[4]; -extern "C" extern u8 data_80450B48[4]; -extern "C" extern u8 data_80450B58[4]; -extern "C" extern Z2SoundMgr* data_80450B60; -extern "C" extern u8 data_80450B7C[4]; -extern "C" extern Z2SeMgr* data_80450B88; -extern "C" extern u8 data_80450CC0[4 + 4 /* padding */]; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// +#include "Z2AudioLib/Z2SeMgr.h" +#include "Z2AudioLib/Z2SeqMgr.h" +#include "Z2AudioLib/Z2SoundMgr.h" +#include "Z2AudioLib/Z2SoundObjMgr.h" +#include "Z2AudioLib/Z2StatusMgr.h" +#include "d/d_com_inf_game.h" /* 802B6840-802B68B0 2B1180 0070+00 0/0 1/1 0/0 .text __ct__10Z2SceneMgrFv */ Z2SceneMgr::Z2SceneMgr(void) : JASGlobalInstance<Z2SceneMgr>(this) { - volatile int timerx; sceneNum = -1; - timerx = -1; BGM_ID = -1; roomNum = -1; - SeWave_1 = 0; - SeWaveToErase_1 = 0; - SeWave_2 = 0; - SeWaveToErase_2 = 0; - BgmWave_1 = 0; - BgmWaveToErase_1 = 0; - BgmWave_2 = 0; - BgmWaveToErase_2 = 0; - SeWave_3 = 0; - SeWaveToErase_3 = 0; + requestSeWave_1 = 0; + loadedSeWave_1 = 0; + requestSeWave_2 = 0; + loadedSeWave_2 = 0; + requestBgmWave_1 = 0; + loadedBgmWave_1 = 0; + requestBgmWave_2 = 0; + loadedBgmWave_2 = 0; + requestDemoWave = 0; + loadedDemoWave = 0; field_0x18 = 0; field_0x19 = 0; - field_0x1a = 0; - field_0x1b = 0; + field_0x1a = false; + field_0x1b = false; sceneExist = 0; inGame = 0; inDarkness = false; - field_0x17 = 0; + load1stWait = 0; } /* 802B68B0-802B68E0 2B11F0 0030+00 0/0 1/1 0/0 .text setInDarkness__10Z2SceneMgrFb */ void Z2SceneMgr::setInDarkness(bool param_0) { inDarkness = param_0; if (!param_0) { - Z2SoundMgr::getInstance()->resetFilterAll(); + Z2GetSoundMgr()->resetFilterAll(); } } -/* ############################################################################################## */ -/* 80455A38-80455A3C 004038 0004+00 8/8 0/0 0/0 .sdata2 @3511 */ -SECTION_SDATA2 static u8 lit_3511[4] = { - 0x00, - 0x00, - 0x00, - 0x00, +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", }; -/* 80455A3C-80455A40 00403C 0004+00 6/6 0/0 0/0 .sdata2 @3512 */ -SECTION_SDATA2 static f32 lit_3512 = 1.0f; - /* 802B68E0-802B697C 2B1220 009C+00 3/3 2/2 2/2 .text setSceneExist__10Z2SceneMgrFb */ -#ifdef NONMATCHING void Z2SceneMgr::setSceneExist(bool param_1) { sceneExist = param_1; timer = 0; - JAISeMgr* seMgr = data_80450B60->getSeMgr(); + JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr(); if (param_1) { inGame = 1; - if (SeWave_3 == 0x85) { - seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0); - } else if (SeWave_3 == 0x7F) { - data_80450B88->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0); + if (requestDemoWave == 0x85) { + seMgr->getCategory(9)->getParams()->moveVolume(0.0f, 0); + } else if (requestDemoWave == 0x7F) { + Z2GetSeMgr()->seMoveVolumeAll(0.0f, 0); } else { - seMgr->getCategory(9)->getParams()->moveVolume(lit_3512, 33); + seMgr->getCategory(9)->getParams()->moveVolume(1.0f, 33); } } else { - seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 180); + seMgr->getCategory(9)->getParams()->moveVolume(0.0f, 180); } } -#else -void Z2SceneMgr::setSceneExist(bool param_0) { - // NONMATCHING -} -#endif - -/* ############################################################################################## */ -/* 80455A40-80455A48 004040 0004+04 1/1 0/0 0/0 .sdata2 @3529 */ -SECTION_SDATA2 static f32 lit_3529[1 + 1 /* padding */] = { - 3.0f / 10.0f, - /* padding */ - 0.0f, -}; - -/* 80455A48-80455A50 004048 0008+00 5/5 0/0 0/0 .sdata2 @3531 */ -SECTION_SDATA2 static f64 lit_3531 = 4503599627370496.0 /* cast u32 to float */; /* 802B697C-802B6A18 2B12BC 009C+00 0/0 1/1 0/0 .text setFadeOutStart__10Z2SceneMgrFUc */ -#ifdef NONMATCHING void Z2SceneMgr::setFadeOutStart(u8 param_0) { setSceneExist(false); - Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f); - Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 33); - Z2SeqMgr::getInstance()->setBattleBgmOff(true); - field_0x17 = 40; + Z2GetSeqMgr()->bgmAllMute(33, 3.0f / 10.0f); + Z2GetSeMgr()->seMoveVolumeAll(0.0f, 33); + Z2GetSeqMgr()->setBattleBgmOff(true); + load1stWait = 40; timer = -1; } -#else -void Z2SceneMgr::setFadeOutStart(u8 param_0) { - // NONMATCHING -} -#endif /* 802B6A18-802B6AF8 2B1358 00E0+00 0/0 1/1 0/0 .text setFadeInStart__10Z2SceneMgrFUc */ -#ifdef NONMATCHING void Z2SceneMgr::setFadeInStart(u8 param_0) { - if (SeWave_3 == 0x7f) { - Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0); + if (requestDemoWave == 0x7f) { + Z2GetSeMgr()->seMoveVolumeAll(0.0f, 0); } else { - Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3512), 33); + Z2GetSeMgr()->seMoveVolumeAll(1.0f, 33); - if (SeWave_3 == 0x85) { - JAISeMgr* seMgr = Z2SoundMgr::getInstance()->getSeMgr(); - seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0); + if (requestDemoWave == 0x85) { + JAISeMgr* seMgr = Z2GetSoundMgr()->getSeMgr(); + seMgr->getCategory(9)->getParams()->moveVolume(0.0f, 0); } } - Z2SeqMgr::getInstance()->i_setTwilightGateVol(FLOAT_LABEL(lit_3512)); - Z2StatusMgr::getInstance()->menuOut(); + Z2GetSeqMgr()->setTwilightGateVol(1.0f); + Z2GetStatusMgr()->menuOut(); - if (field_0x1a == 0) { - Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f); + if (!field_0x1a) { + Z2GetSeqMgr()->bgmAllMute(33, 1.0f); } inGame = true; } -#else -void Z2SceneMgr::setFadeInStart(u8 param_0) { - // NONMATCHING -} -#endif - -/* ############################################################################################## */ -/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039BFA8 = "F_SP00"; -SECTION_DEAD static char const* const stringBase_8039BFAF = "F_SP103"; -SECTION_DEAD static char const* const stringBase_8039BFB7 = "R_SP01"; -SECTION_DEAD static char const* const stringBase_8039BFBE = "F_SP104"; -SECTION_DEAD static char const* const stringBase_8039BFC6 = "R_SP107"; -SECTION_DEAD static char const* const stringBase_8039BFCE = "F_SP108"; -SECTION_DEAD static char const* const stringBase_8039BFD6 = "R_SP108"; -SECTION_DEAD static char const* const stringBase_8039BFDE = "F_SP117"; -SECTION_DEAD static char const* const stringBase_8039BFE6 = "F_SP109"; -SECTION_DEAD static char const* const stringBase_8039BFEE = "R_SP109"; -SECTION_DEAD static char const* const stringBase_8039BFF6 = "R_SP209"; -SECTION_DEAD static char const* const stringBase_8039BFFE = "F_SP110"; -SECTION_DEAD static char const* const stringBase_8039C006 = "R_SP110"; -SECTION_DEAD static char const* const stringBase_8039C00E = "F_SP111"; -SECTION_DEAD static char const* const stringBase_8039C016 = "F_SP128"; -SECTION_DEAD static char const* const stringBase_8039C01E = "R_SP128"; -SECTION_DEAD static char const* const stringBase_8039C026 = "F_SP115"; -SECTION_DEAD static char const* const stringBase_8039C02E = "F_SP112"; -SECTION_DEAD static char const* const stringBase_8039C036 = "F_SP126"; -SECTION_DEAD static char const* const stringBase_8039C03E = "F_SP127"; -SECTION_DEAD static char const* const stringBase_8039C046 = "R_SP127"; -SECTION_DEAD static char const* const stringBase_8039C04E = "F_SP113"; -SECTION_DEAD static char const* const stringBase_8039C056 = "F_SP116"; -SECTION_DEAD static char const* const stringBase_8039C05E = "R_SP116"; -SECTION_DEAD static char const* const stringBase_8039C066 = "R_SP160"; -SECTION_DEAD static char const* const stringBase_8039C06E = "R_SP161"; -SECTION_DEAD static char const* const stringBase_8039C076 = "F_SP114"; -SECTION_DEAD static char const* const stringBase_8039C07E = "F_SP118"; -SECTION_DEAD static char const* const stringBase_8039C086 = "F_SP124"; -SECTION_DEAD static char const* const stringBase_8039C08E = "F_SP125"; -SECTION_DEAD static char const* const stringBase_8039C096 = "F_SP121"; -SECTION_DEAD static char const* const stringBase_8039C09E = "F_SP122"; -SECTION_DEAD static char const* const stringBase_8039C0A6 = "F_SP123"; -SECTION_DEAD static char const* const stringBase_8039C0AE = "F_SP200"; -SECTION_DEAD static char const* const stringBase_8039C0B6 = "F_SP102"; -SECTION_DEAD static char const* const stringBase_8039C0BE = ""; -SECTION_DEAD static char const* const stringBase_8039C0BF = "R_SP300"; -SECTION_DEAD static char const* const stringBase_8039C0C7 = "R_SP301"; -SECTION_DEAD static char const* const stringBase_8039C0CF = "T_ENEMY"; -SECTION_DEAD static char const* const stringBase_8039C0D7 = "D_MN54"; -SECTION_DEAD static char const* const stringBase_8039C0DE = "D_MN05"; -SECTION_DEAD static char const* const stringBase_8039C0E5 = "D_MN05B"; -SECTION_DEAD static char const* const stringBase_8039C0ED = "D_MN05A"; -SECTION_DEAD static char const* const stringBase_8039C0F5 = "D_MN04"; -SECTION_DEAD static char const* const stringBase_8039C0FC = "D_MN04B"; -SECTION_DEAD static char const* const stringBase_8039C104 = "D_MN04A"; -SECTION_DEAD static char const* const stringBase_8039C10C = "D_MN01"; -SECTION_DEAD static char const* const stringBase_8039C113 = "D_MN01B"; -SECTION_DEAD static char const* const stringBase_8039C11B = "D_MN01A"; -SECTION_DEAD static char const* const stringBase_8039C123 = "D_MN10"; -SECTION_DEAD static char const* const stringBase_8039C12A = "D_MN10B"; -SECTION_DEAD static char const* const stringBase_8039C132 = "D_MN10A"; -SECTION_DEAD static char const* const stringBase_8039C13A = "D_MN11"; -SECTION_DEAD static char const* const stringBase_8039C141 = "D_MN11B"; -SECTION_DEAD static char const* const stringBase_8039C149 = "D_MN11A"; -SECTION_DEAD static char const* const stringBase_8039C151 = "D_MN06"; -SECTION_DEAD static char const* const stringBase_8039C158 = "D_MN06B"; -SECTION_DEAD static char const* const stringBase_8039C160 = "D_MN06A"; -SECTION_DEAD static char const* const stringBase_8039C168 = "D_MN07"; -SECTION_DEAD static char const* const stringBase_8039C16F = "D_MN07B"; -SECTION_DEAD static char const* const stringBase_8039C177 = "D_MN07A"; -SECTION_DEAD static char const* const stringBase_8039C17F = "D_MN08"; -SECTION_DEAD static char const* const stringBase_8039C186 = "D_MN08B"; -SECTION_DEAD static char const* const stringBase_8039C18E = "D_MN08C"; -SECTION_DEAD static char const* const stringBase_8039C196 = "D_MN08A"; -SECTION_DEAD static char const* const stringBase_8039C19E = "D_MN08D"; -SECTION_DEAD static char const* const stringBase_8039C1A6 = "D_MN09"; -SECTION_DEAD static char const* const stringBase_8039C1AD = "D_MN09A"; -SECTION_DEAD static char const* const stringBase_8039C1B5 = "D_MN09B"; -SECTION_DEAD static char const* const stringBase_8039C1BD = "D_MN09C"; -SECTION_DEAD static char const* const stringBase_8039C1C5 = "D_SB00"; -SECTION_DEAD static char const* const stringBase_8039C1CC = "D_SB01"; -SECTION_DEAD static char const* const stringBase_8039C1D3 = "D_SB02"; -SECTION_DEAD static char const* const stringBase_8039C1DA = "D_SB03"; -SECTION_DEAD static char const* const stringBase_8039C1E1 = "D_SB04"; -SECTION_DEAD static char const* const stringBase_8039C1E8 = "D_SB05"; -SECTION_DEAD static char const* const stringBase_8039C1EF = "D_SB06"; -SECTION_DEAD static char const* const stringBase_8039C1F6 = "D_SB07"; -SECTION_DEAD static char const* const stringBase_8039C1FD = "D_SB08"; -SECTION_DEAD static char const* const stringBase_8039C204 = "D_SB09"; -SECTION_DEAD static char const* const stringBase_8039C20B = "D_SB10"; -SECTION_DEAD static char const* const stringBase_8039C212 = "force_end"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039C21C = "\0\0\0"; -#pragma pop - -/* 803CA5C0-803CA704 -00001 0144+00 1/1 0/0 0/0 .data sSpotName */ -SECTION_DATA static void* sSpotName[81] = { - (void*)&Z2SceneMgr__stringBase0, - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x7), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xF), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x16), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x26), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x2E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x36), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x3E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x46), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x4E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x56), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x5E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x66), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x6E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x76), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x7E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x86), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x8E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x96), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x9E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xA6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xAE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xB6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xBE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xC6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xCE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xD6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xDE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xE6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xEE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xF6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0xFE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x106), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x10E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x116), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x117), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x11F), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x127), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x12F), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x136), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x13D), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x145), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x14D), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x154), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x15C), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x164), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x16B), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x173), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x17B), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x182), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x18A), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x192), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x199), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1A1), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1A9), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1B0), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1B8), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1C0), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1C7), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1CF), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1D7), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1DE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1E6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1EE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1F6), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1FE), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x205), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x20D), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x215), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x21D), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x224), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x22B), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x232), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x239), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x240), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x247), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x24E), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x255), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x25C), - (void*)(((char*)&Z2SceneMgr__stringBase0) + 0x263), -}; - -/* 803CA704-803CA744 -00001 0040+00 1/1 0/0 0/0 .data @5354 */ -SECTION_DATA static void* lit_5354[16] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4), -}; - -/* 803CA744-803CA784 -00001 0040+00 1/1 0/0 0/0 .data @5353 */ -SECTION_DATA static void* lit_5353[16] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BBC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8), -}; - -/* 803CA784-803CA7BC -00001 0038+00 1/1 0/0 0/0 .data @5352 */ -SECTION_DATA static void* lit_5352[14] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC78), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCA0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC08), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC08), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC18), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC20), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC28), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC34), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC3C), -}; - -/* 803CA7BC-803CA7F4 -00001 0038+00 1/1 0/0 0/0 .data @5351 */ -SECTION_DATA static void* lit_5351[14] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xAF4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xAEC), -}; - -/* 803CA7F4-803CA824 -00001 0030+00 1/1 0/0 0/0 .data @5350 */ -SECTION_DATA static void* lit_5350[12] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7B0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x72C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x804), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x804), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x778), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x788), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x798), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x790), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x798), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A8), -}; - -/* 803CA824-803CA844 -00001 0020+00 1/1 0/0 0/0 .data @5349 */ -SECTION_DATA static void* lit_5349[8] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x430), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x45C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x52C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x628), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x6F4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604), -}; - -/* 803CA844-803CA878 -00001 0034+00 1/1 0/0 0/0 .data @5348 */ -SECTION_DATA static void* lit_5348[13] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2E0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x364), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x378), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x338), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x338), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x35C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x328), -}; - -/* 803CA878-803CA9BC -00001 0144+00 1/1 0/0 0/0 .data @5347 */ -SECTION_DATA static void* lit_5347[81] = { - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x150), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1E0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x40C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x700), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x80C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xA08), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x968), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1824), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB94), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCF4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xF00), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1010), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1174), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xF70), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1098), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1140), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x11BC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x13B4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x12D8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1338), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1384), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1468), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x150C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x15E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1688), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x17E0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x18E8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1994), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1934), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x19C8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1A30), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BF4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1CF8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1DA8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1D2C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A7C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x948), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x134), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1E68), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1EA4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1F00), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1FAC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1FE8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2038), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x20D8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2108), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2158), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x21F8), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2248), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2298), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2338), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2374), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x23D0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x247C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x24AC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x24FC), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x259C), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x25F4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2644), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x26E4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2760), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2760), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x27B0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2894), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x28D4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2980), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A04), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A34), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AC4), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A84), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AF0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AF0), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B18), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44), - (void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B6C), -}; - -/* 80455A50-80455A54 004050 0004+00 1/1 0/0 0/0 .sdata2 @5341 */ -SECTION_SDATA2 static f32 lit_5341 = -1.0f; - -/* 80455A54-80455A58 004054 0004+00 2/2 0/0 0/0 .sdata2 @5342 */ -SECTION_SDATA2 static f32 lit_5342 = 0.5f; - -/* 80455A58-80455A5C 004058 0004+00 1/1 0/0 0/0 .sdata2 @5343 */ -SECTION_SDATA2 static f32 lit_5343 = 7.0f / 10.0f; - -/* 80455A5C-80455A60 00405C 0004+00 1/1 0/0 0/0 .sdata2 @5344 */ -SECTION_SDATA2 static f32 lit_5344 = 4.0f / 5.0f; - -/* 80455A60-80455A64 004060 0004+00 1/1 0/0 0/0 .sdata2 @5345 */ -SECTION_SDATA2 static f32 lit_5345 = 1.0f / 10.0f; - -/* 80455A64-80455A68 004064 0004+00 1/1 0/0 0/0 .sdata2 @5346 */ -SECTION_SDATA2 static f32 lit_5346 = 2.0f / 25.0f; /* 802B6AF8-802B995C 2B1438 2E64+00 8/0 1/1 0/0 .text setSceneName__10Z2SceneMgrFPcll */ -void Z2SceneMgr::setSceneName(char* param_0, s32 param_1, s32 param_2) { - // NONMATCHING -} +// NONMATCHING JSULink<JAIStream>::getNext() inlining +void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) { + JAISoundID bgm_id = -1; + JAISound* sound; + int spot = 0; + u8 se_wave1 = 0; + u8 se_wave2 = 0; + u8 bgm_wave1 = 0; + u8 bgm_wave2 = 0; + u8 demo_wave = 0; + bool bVar6 = false; + bool height_vol_mod = false; + bool field_bgm_play = false; + bool time_proc_vol_mod = false; + bool bVar2 = false; + field_0x1b = false; + f32 fVar1 = -1.0f; + + Z2GetSeqMgr()->resetBattleBgmParams(); + Z2GetSeqMgr()->setWindStoneVol(1.0f, 0); + Z2GetSeqMgr()->setTwilightGateVol(1.0f); + Z2GetSeMgr()->resetCrowdSize(); + Z2GetSoundObjMgr()->setGhostEnemyState(0); + Z2GetSeMgr()->resetModY(); + if (Z2GetStatusMgr()->getDemoStatus() == 8) { + Z2GetStatusMgr()->setDemoName("force_end"); + } -//! @meme this looks to be non-inlined here because @ref setSceneName is too large* -extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet) { - this_->mId = soundIdToSet.mId; -} + if (spotName != NULL) { + for (spot = 0; spot < (int)ARRAY_SIZE(sSpotName); spot++) { + if (!strcmp(spotName, sSpotName[spot])) { + break; + } + } + if (spot == (int)ARRAY_SIZE(sSpotName)) { + spot = SPOT_NONE; + } + } -/* 802B9968-802B9978 2B42A8 0010+00 1/1 0/0 0/0 .text setFieldBgmPlay__8Z2SeqMgrFb */ -void Z2SeqMgr::setFieldBgmPlay(bool param_1) { - mFlags.flag5 = param_1; -} + switch (spot) { + case SPOT_ENEMY_TEST: + bgm_wave2 = 2; + if (room < 30) { + se_wave1 = 0x8a; + } else { + se_wave1 = 0x8b; + } + break; + + case SPOT_ORDON_RANCH: + if (layer == 1) { + if (dComIfGs_isSaveSwitch(0x67)) { + bgm_id = Z2BGM_TOAL_NIGHT; + bgm_wave1 = 6; + Z2GetSeqMgr()->changeBgmStatus(0); + } + } else { + if (layer == 8) { + demo_wave = 0x5c; + } + bgm_id = Z2BGM_RANCH; + bgm_wave1 = 1; + bgm_wave2 = 2; + time_proc_vol_mod = true; + } + se_wave1 = 0x26; + se_wave2 = 0x25; + field_0x1b = true; + break; + + case SPOT_ORDON_VILLAGE: + field_0x1b = true; + se_wave1 = 0x26; + if (room == 0) { + se_wave2 = 0x27; + switch (layer) { + case 1: + bgm_id = Z2BGM_TOAL_NIGHT; + bgm_wave1 = 6; + Z2GetSeqMgr()->changeBgmStatus(0); + break; + case 8: + bgm_id = 0x2000011; + demo_wave = 0x64; + break; + case 10: + case 11: + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + break; + default: + bgm_id = Z2BGM_TOAL_VILLEGE; + bgm_wave1 = 3; + bgm_wave2 = 4; + time_proc_vol_mod = true; + break; + } + } else if (room == 1) { + se_wave2 = 0x28; + switch (layer) { + case 1: + field_0x1b = false; + if (dComIfGs_isSaveSwitch(0x67)) { + bgm_id = Z2BGM_TOAL_NIGHT; + bgm_wave1 = 6; + Z2GetSeqMgr()->changeBgmStatus(0); + } + break; + case 12: + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + break; + case 5: + case 8: + bgm_id = Z2BGM_EVENT01; + bgm_wave1 = 5; + break; + case 9: + demo_wave = 0x5c; + break; + case 3: + bVar2 = true; + if (!dComIfGs_isSaveSwitch(0xa)) { + break; + } + // fallthrough + case 4: + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18]) + && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625])) + { + bgm_wave1 = 0x55; + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[194])) { + bgm_id = Z2BGM_EVENT05; + } + break; + } + // fallthrough + default: + bgm_id = Z2BGM_TOAL_VILLEGE; + bgm_wave1 = 3; + time_proc_vol_mod = true; + break; + } + } + break; + + case SPOT_ORDON_INTERIOR: + se_wave1 = 0x26; + switch (room) { + case 0: + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + bgm_wave2 = 9; + se_wave2 = 0x2a; + break; + case 1: + if (layer == 0) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[136])) { + bgm_id = Z2BGM_SHOP01; + } else { + bgm_id = Z2BGM_SHOP02; + } + bgm_wave1 = 7; + } else if (layer == 2) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) { + bgm_id = Z2BGM_SHOP01; + bgm_wave1 = 7; + } else { + bgm_id = Z2BGM_ROOM_2; + bgm_wave1 = 0x35; + } + } + se_wave2 = 0x29; + break; + case 2: + if (layer == 0 || layer == 3) { + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + } else if (layer == 1) { + bgm_id = Z2BGM_TOAL_NIGHT; + bgm_wave1 = 6; + Z2GetSeqMgr()->changeBgmStatus(1); + } else if (layer == 2) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) { + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + } else { + bgm_id = Z2BGM_ROOM_2; + bgm_wave1 = 0x35; + } + } + se_wave2 = 0x2c; + break; + case 3: + case 4: + case 7: + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + break; + case 5: + if (layer == 0) { + if (dComIfGs_isSaveSwitch(0x67)) { + bgm_id = Z2BGM_TOAL_NIGHT; + bgm_wave1 = 6; + Z2GetSeqMgr()->changeBgmStatus(1); + } else { + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + } + } else { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) { + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + } else { + bgm_id = Z2BGM_ROOM_2; + bgm_wave1 = 0x35; + } + } + se_wave2 = 0x2b; + } + field_0x1b = true; + break; + + case SPOT_ORDON_SPRING: + se_wave1 = 0x26; + se_wave2 = 0x2d; + switch (layer) { + case 4: + field_0x1b = false; + bVar2 = true; + if (dComIfGs_isSaveSwitch(0x67)) { + bgm_id = Z2BGM_TOAL_NIGHT; + bgm_wave1 = 6; + Z2GetSeqMgr()->changeBgmStatus(0); + } + break; + case 7: + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + break; + case 8: + demo_wave = 0x65; + break; + case 10: + demo_wave = 0x69; + break; + case 9: + case 11: + demo_wave = 0x6a; + break; + case 12: + demo_wave = 0x85; + break; + case 13: + case 14: + demo_wave = 0x5c; + break; + case 3: + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18]) + && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625])) + { + bgm_id = Z2BGM_EVENT05; + bgm_wave1 = 0x55; + break; + } + // fallthrough + default: + bVar2 = true; + break; + } + break; + + case SPOT_TWILIGHT_HYRULE_CASTLE: + se_wave1 = 0x2e; + if (inDarkness) { + se_wave2 = 0x30; + if (room == 0) { + if (layer == 11) { + demo_wave = 0x66; + } else if (layer == 7 || layer == 10) { + demo_wave = 0x67; + } else { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[42])) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + } + } + } else if (room == 3 && (layer == 8 || layer == 12)) { + demo_wave = 0x68; + } else if ((room == 3 && layer == 10) || (room == 2 && layer == 8)) { + bgm_id = Z2BGM_DEMO08; + bgm_wave1 = 0x21; + demo_wave = 0x69; + } else { + if (room == 3 && layer == 14) { + bVar2 = true; + } + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + } + } else { + if (room == 3 && layer == 9) { + demo_wave = 0x75; + } + se_wave2 = 0x2f; + } + break; -/* 802B9978-802B9988 2B42B8 0010+00 1/1 0/0 0/0 .text isActive__12JAIStreamMgrCFv */ -bool JAIStreamMgr::isActive() const { - // NONMATCHING -} + case SPOT_CASTLE_THRONE_ROOM: + if (layer == 8) { + demo_wave = 0x68; + } else if (layer == 9) { + demo_wave = 0x7f; + } + break; + + case SPOT_CORO_SHOP: + se_wave1 = 0x31; + if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x33; + } else { + if (layer == 1) { + bgm_id = Z2BGM_EVENT05; + bgm_wave1 = 0x55; + se_wave2 = 0x32; + } else { + bgm_id = Z2BGM_FILONE_FOREST; + bgm_wave1 = 0xf; + time_proc_vol_mod = true; + Z2GetSeqMgr()->changeBgmStatus(1); + se_wave2 = 0x32; + } + } + break; + + case SPOT_FARON_WOODS: + se_wave1 = 0x31; + if (layer == 11) { + demo_wave = 0x6c; + inDarkness = false; + } else if (layer == 9) { + demo_wave = 0x6a; + } else if (inDarkness) { + if (layer == 7) { + demo_wave = 0x78; + } else if (layer == 8) { + demo_wave = 0x66; + } else if (layer == 10) { + bgm_id = Z2BGM_DEMO10; + bgm_wave1 = 0x21; + demo_wave = 0x6b; + } else { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + } + se_wave2 = 0x33; + } else { + se_wave2 = 0x32; + switch (layer) { + case 4: + case 6: + case 12: + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + break; + case 13: + demo_wave = 0x5c; + break; + case 1: + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18]) + && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625])) + { + bgm_id = Z2BGM_EVENT05; + bgm_wave1 = 0x55; + } + break; + default: + bgm_id = Z2BGM_FILONE_FOREST; + bgm_wave1 = 0xf; + time_proc_vol_mod = true; + if (room == 0xe) { + Z2GetSeqMgr()->changeBgmStatus(1); + } else { + Z2GetSeqMgr()->changeBgmStatus(0); + } + break; + } + } + break; + + case SPOT_KAKARIKO_VILLAGE: + se_wave1 = 0x34; + if (layer == 8) { + demo_wave = 0x6e; + inDarkness = false; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x36; + } else { + se_wave2 = 0x35; + switch (layer) { + case 6: + case 7: + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + break; + case 9: + demo_wave = 0x6e; + break; + case 10: + demo_wave = 0x6f; + break; + case 11: + bVar2 = true; + demo_wave = 0x70; + break; + case 12: + demo_wave = 0x71; + break; + case 13: + demo_wave = 0x83; + bgm_wave1 = 0x2c; + break; + case 0: + bgm_id = Z2BGM_KAKARIKO; + bgm_wave1 = 0x10; + bgm_wave2 = 0x18; + demo_wave = 0x84; + time_proc_vol_mod = true; + break; + case 1: + bgm_id = Z2BGM_EVENT02; + bgm_wave1 = 0x1c; + bgm_wave2 = 0x18; + break; + case 4: + bVar2 = true; + bgm_id = Z2BGM_LUTERA2; + bgm_wave1 = 0x2c; + break; + default: + bgm_id = Z2BGM_KAKARIKO; + bgm_wave1 = 0x10; + bgm_wave2 = 0x23; + time_proc_vol_mod = true; + break; + } + } + break; + + case SPOT_KAKARIKO_INTERIOR: + se_wave1 = 0x34; + if (inDarkness) { + se_wave2 = 0x36; + if (room == 0 && layer == 8) { + demo_wave = 0x6d; + bgm_wave1 = 0xe; + } else { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + if (room == 5) { + bgm_wave2 = 0x1c; + } + } + } else { + switch (room) { + case 1: + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) { + bgm_id = Z2BGM_SHOP01; + } else { + bgm_id = Z2BGM_SHOP02; + } + bgm_wave1 = 7; + break; + case 2: + if (layer == 13) { + demo_wave = 0x83; + } else { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) { + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + } + } + break; + case 3: + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[109])) { + bgm_id = Z2BGM_SHOP_MARO; + bgm_wave1 = 0x33; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[85])) { + bgm_id = Z2BGM_SHOP01; + bgm_wave1 = 7; + } else { + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + } + break; + case 0: + if (layer == 9) { + demo_wave = 0x85; + } else { + bgm_id = Z2BGM_CHURCH1; + bgm_wave1 = 0x2f; + } + break; + case 4: + case 5: + case 6: + break; + } + se_wave2 = 0x86; + } + break; + + case SPOT_SANCTUARY_BASEMENT: + se_wave1 = 0x34; + if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x36; + } else { + bgm_id = Z2BGM_CHURCH2; + bgm_wave1 = 0x30; + se_wave2 = 0x86; + Z2GetSeqMgr()->muteSceneBgm(30, 0.5f); + } + break; + + case SPOT_KAKARIKO_GRAVEYARD: + se_wave1 = 0x34; + if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x36; + } else { + if (layer == 4) { + bgm_id = Z2BGM_LUTERA2; + bgm_wave1 = 0x2c; + } else { + bgm_id = Z2BGM_CHURCH2; + bgm_wave1 = 0x30; + Z2GetSeqMgr()->unMuteSceneBgm(30); + time_proc_vol_mod = true; + bgm_wave2 = 0x2c; + } + se_wave2 = 0x37; + } + break; + + case SPOT_DEATH_MOUNTAIN: + se_wave1 = 0x34; + if (layer == 8) { + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x39; + } else { + bgm_id = Z2BGM_DEATH_MOUNTAIN01; + bgm_wave1 = 0x11; + se_wave2 = 0x38; + time_proc_vol_mod = true; + if (room == 3) { + height_vol_mod = true; + } + } + break; + + case SPOT_HIDDEN_VILLAGE: + if (layer == 0) { + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + if (dComIfGs_isSwitch(0x2e, 0) && !dComIfGs_isSwitch(0x11, 0)) { + bgm_id = Z2BGM_HIDDEN_VILLAGE; + } + field_0x1b = true; + } else if (layer == 1) { + Z2GetSeqMgr()->bgmStop(33, 0); + } + bgm_wave1 = 0x31; + se_wave1 = 0x34; + se_wave2 = 0x4f; + break; + + case SPOT_IMPAZ_HOUSE: + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + se_wave1 = 0x34; + se_wave2 = 0x4f; + field_0x1b = true; + break; + + case SPOT_SUMO_HALL: + if (layer == 8) { + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + } else { + bgm_id = Z2BGM_DEATH_MOUNTAIN02; + bgm_wave1 = 0x11; + se_wave1 = 0x34; + bgm_wave2 = 0x12; + se_wave2 = 0x3a; + } + break; + + case SPOT_LAKE_HYLIA: + se_wave1 = 0x3b; + if (layer == 8) { + demo_wave = 0x72; + inDarkness = false; + } else if (room == 1 && layer == 9) { + demo_wave = 0x74; + } else if (layer == 10 || layer == 11) { + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x3d; + if (layer == 14) { + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 10000, 40000, 50000); + } else { + if (dComIfGs_isSaveSwitch(0xf) && !dComIfGs_isSaveSwitch(0x10)) { + field_0x1b = true; + } + bgm_wave2 = 0x4d; + } + } else { + if (room == 0) { + bgm_id = Z2BGM_LAKE; + bgm_wave1 = 0x34; + height_vol_mod = true; + time_proc_vol_mod = true; + } + se_wave2 = 0x3c; + } + break; + + case SPOT_UPPER_ZORAS_RIVER: + se_wave1 = 0x55; + if (layer == 8) { + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x3f; + } else { + bgm_wave1 = 0x34; + se_wave2 = 0x3e; + height_vol_mod = true; + } + break; -/* 802B9988-802B9994 2B42C8 000C+00 1/1 0/0 0/0 .text getID__8JAISoundCFv */ -// JAISoundID JAISound::getID() const { -extern "C" void getID__8JAISoundCFv() { - // NONMATCHING -} + case SPOT_FISHING_POND: + if (layer == 8) { + demo_wave = 0x7f; + se_wave1 = 0; + se_wave2 = 0; + } else { + se_wave1 = 0x3b; + bgm_id = Z2BGM_FISHING; + bgm_wave1 = 0x2b; + se_wave2 = 0x3e; + height_vol_mod = true; + time_proc_vol_mod = true; + } + break; + + case SPOT_HENA_CABIN: + se_wave1 = 0x3b; + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + bgm_wave2 = 0x47; + se_wave2 = 0x3e; + break; + + case SPOT_ZORAS_RIVER: + se_wave1 = 0x55; + if (inDarkness) { + bgm_id = Z2BGM_CARGO_GAME_TW; + bgm_wave1 = 0x24; + se_wave2 = 0x41; + field_0x1b = true; + } else { + if (layer == 4) { + bgm_id = 0x200000b; + } else if (layer == 1) { + bgm_id = Z2BGM_MINIGAME_ROOM; + bgm_wave1 = 0x47; + bgm_wave2 = 0x42; + } else if (layer == 0 || layer == 2) { + bgm_wave2 = 0x57; + } + se_wave2 = 0x40; + } + break; + + case SPOT_ZORAS_DOMAIN: + se_wave1 = 0x3b; + if (layer == 8 || layer == 9) { + demo_wave = 0x82; + } else if (layer == 10 || layer == 11) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0x0e; + bgm_wave2 = 0x2c; + se_wave2 = 0x3f; + } else { + bgm_id = Z2BGM_ZORA_VILLAGE; + bgm_wave1 = 0x20; + se_wave2 = 0x3e; + height_vol_mod = true; + time_proc_vol_mod = true; + } + break; + + case SPOT_CASTLE_TOWN: + se_wave1 = 0x42; + if (layer == 8) { + demo_wave = 0x68; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x44; + } else { + se_wave2 = 0x43; + time_proc_vol_mod = true; + if (room == 1 && layer == 9) { + demo_wave = 0x7a; + } else if (layer == 10) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else if (!(layer == 1 && room == 1 + && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[542]))) + { + bgm_id = Z2BGM_CASTLE_TOWN; + bgm_wave1 = 0x25; + Z2GetSeqMgr()->changeBgmStatus(room); + } + } + break; -/* 802B9994-802B999C 2B42D4 0008+00 1/1 0/0 0/0 .text getFirst__19JSUList<9JAIStream>CFv - */ -extern "C" void func_802B9994(void* _this) /* const */ { - // NONMATCHING -} + case SPOT_CASTLE_TOWN_INTERIOR: + if (room == 6) { + se_wave1 = 0x2e; + se_wave2 = 0x2f; + } else { + se_wave1 = 0x42; + if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x44; + } else { + se_wave2 = 0x5b; + if (room == 5) { + if (layer == 8) { + demo_wave = 0x73; + } else if (layer == 9) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else { + bgm_id = Z2BGM_INDOOR_03; + bgm_wave1 = 8; + } + } + } + } + break; + + case SPOT_CASTLE_TOWN_SHOPS: + se_wave1 = 0x42; + se_wave2 = 0x5b; + switch (room) { + case 0: + if (layer == 1) { + bgm_id = Z2BGM_SHOP_MARO; + bgm_wave1 = 0x33; + } else { + bgm_id = Z2BGM_SHOP_CELEB; + bgm_wave1 = 0x32; + } + break; + case 1: + bgm_id = Z2BGM_FORTUNE; + bgm_wave1 = 0x37; + Z2GetSeqMgr()->changeBgmStatus(0); + break; + case 2: + bgm_id = Z2BGM_INDOOR; + bgm_wave1 = 8; + break; + case 3: + bgm_id = Z2BGM_INDOOR_04; + bgm_wave1 = 0x56; + break; + case 4: + bgm_id = Z2BGM_CASTLE_TOWN; + bgm_wave1 = 0x25; + Z2GetSeqMgr()->changeBgmStatus(5); + break; + case 5: + bgm_id = Z2BGM_SHOP02; + bgm_wave1 = 7; + break; + } + break; -/* 802B999C-802B99AC 2B42DC 0010+00 1/1 0/0 0/0 .text dComIfGs_getStartPoint__Fv */ -static void dComIfGs_getStartPoint() { - // NONMATCHING -} + case SPOT_STAR_TENT: + se_wave1 = 0x42; + se_wave2 = 0x87; + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[289])) { + bgm_id = Z2BGM_MINIGAME_ROOM; + } + bgm_wave1 = 0x46; + break; + + case SPOT_SACRED_GROVE: + se_wave1 = 0x31; + bgm_wave2 = 0x1b; + se_wave2 = 0x45; + if (room == 3) { + bgm_id = Z2BGM_HOLY_FOREST; + bgm_wave1 = 0x2a; + } else if (room == 2) { + if (layer == 10) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else { + bgm_id = Z2BGM_TEMPLE_OF_TIME; + bgm_wave1 = 0x3e; + } + } else if (room == 1) { + if (layer == 0 || layer == 9) { + demo_wave = 0x76; + } else if (layer == 8 || layer == 11) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else { + bgm_wave2 = 0x40; + } + } + break; -/* 802B99AC-802B9A24 2B42EC 0078+00 1/1 0/0 0/0 .text unMuteSceneBgm__8Z2SeqMgrFUl */ -void Z2SeqMgr::unMuteSceneBgm(u32 param_0) { - // NONMATCHING -} + case SPOT_SNOWPEAK: + if (layer == 8) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else { + bgm_id = Z2BGM_SNOW_MOUNTAIN; + bgm_wave1 = 0x2d; + bgm_wave2 = 0x3a; + se_wave1 = 0x46; + se_wave2 = 0x47; + } + height_vol_mod = true; + break; + + case SPOT_GERUDO_DESERT: + se_wave1 = 0x48; + se_wave2 = 0x49; + if (layer == 8 || layer == 9 || layer == 10) { + demo_wave = 0x77; + } else if (layer == 11) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else { + bgm_id = Z2BGM_DESERT; + bgm_wave1 = 0x1f; + } + break; -/* 802B9A24-802B9A88 2B4364 0064+00 1/1 0/0 0/0 .text muteSceneBgm__8Z2SeqMgrFUlf */ -void Z2SeqMgr::muteSceneBgm(u32 param_0, f32 param_1) { - // NONMATCHING -} + case SPOT_ARBITERS_GROUNDS_EXTERIOR: + if (room == 1) { + Z2GetSoundObjMgr()->setForceBattleArea(true, 1000, 2000, 9000); + bgm_wave1 = 0x3d; + bgm_wave2 = 0x1c; + } + se_wave1 = 0x48; + se_wave2 = 0x49; + break; + + case SPOT_MIRROR_CHAMBER: + switch (layer) { + case 7: + case 8: + case 9: + case 10: + demo_wave = 0x80; + break; + case 11: + case 12: + demo_wave = 0x78; + break; + case 13: + demo_wave = 0x7e; + break; + default: + bVar2 = true; + bgm_id = Z2BGM_DESERT; + bgm_wave1 = 0x1f; + break; + } + se_wave1 = 0x48; + se_wave2 = 0x49; + break; + + case SPOT_HYRULE_FIELD: + se_wave1 = 0x4a; + if (room == 10 && layer == 11) { + demo_wave = 0x74; + fVar1 = 0.7f; + } else if (layer == 9 || layer == 10) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else if (layer == 2 || layer == 3) { + bgm_id = Z2BGM_HORSE_BATTLE; + bgm_wave1 = 0xd; + se_wave1 = 0x54; + se_wave2 = 0x4e; + field_0x1b = true; + fVar1 = 1.0f; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } else if (inDarkness) { + if (layer == 12) { + demo_wave = 0x6a; + } else { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + } + se_wave2 = 0x4c; + if (room == 13 && layer == 14) { + bgm_wave2 = 0x1c; + } + } else { + field_bgm_play = true; + if (Z2GetStatusMgr()->checkDayTime()) { + bgm_id = Z2BGM_FIELD_LINK_DAY; + } else { + bgm_id = Z2BGM_FIELD_LINK_NIGHT; + } + bgm_wave1 = 0x19; + switch (room) { + case 2: + case 3: + case 4: + se_wave2 = 0x5e; + break; + case 0: + case 5: + case 7: + se_wave2 = 0x5f; + break; + case 9: + case 10: + case 11: + se_wave2 = 0x60; + break; + case 12: + case 13: + case 14: + se_wave2 = 0x61; + break; + case 1: + case 6: + case 15: + se_wave2 = 0x4b; + break; + } + switch (room) { + case 0: + case 3: + case 6: + case 10: + case 13: + fVar1 = 1.0f; + break; + case 1: + case 2: + case 4: + case 5: + case 14: + case 15: + fVar1 = 0.7f; + break; + case 7: + case 9: + case 11: + case 12: + fVar1 = 0.8f; + break; + } + } + break; + + case SPOT_CASTLE_TOWN_GATES: + se_wave1 = 0x4a; + if (layer == 8) { + demo_wave = 0x73; + fVar1 = 1.0f; + } else if (layer == 9) { + demo_wave = 0x75; + fVar1 = 0.5f; + } else if (layer == 10) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + se_wave2 = 0x4c; + } else { + if (room == 8) { + se_wave2 = 0x62; + fVar1 = 0.8f; + } else if (room == 16) { + se_wave2 = 0x88; + fVar1 = 0.8f; + } else if (room == 17) { + se_wave2 = 0x89; + fVar1 = 1.0f; + } + field_bgm_play = true; + if (Z2GetStatusMgr()->checkDayTime()) { + bgm_id = Z2BGM_FIELD_LINK_DAY; + } else { + bgm_id = Z2BGM_FIELD_LINK_NIGHT; + } + bgm_wave1 = 0x19; + } + break; + + case SPOT_HYLIA_BRIDGE_BATTLE: + se_wave1 = 0x54; + bgm_wave1 = 0x3d; + se_wave2 = 0x4e; + fVar1 = 1.0f; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_ELDIN_BRIDGE_BATTLE: + se_wave1 = 0x4a; + if (layer == 11) { + se_wave1 = 0; + se_wave2 = 0; + demo_wave = 0x7f; + } else if (layer == 10) { + bgm_wave1 = 0x59; + } else if (layer != 8 && layer != 9) { + if (layer == 0) { + bgm_wave1 = 13; + } else if (layer == 4) { + bgm_wave1 = 0x3d; + } + fVar1 = 1.0f; + se_wave2 = 0x4d; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_SHADES_REALM: + se_wave1 = 0x4a; + if (dComIfGs_getStartPoint() == 2) { + bgm_wave2 = 0x50; + } else if (dComIfGs_getStartPoint() == 3) { + bgm_wave2 = 0x4f; + } else if (dComIfGs_getStartPoint() == 4) { + bgm_wave2 = 0x3b; + } else if (dComIfGs_getStartPoint() == 5) { + bgm_wave2 = 0x51; + } else if (dComIfGs_getStartPoint() == 6) { + bgm_wave2 = 0x52; + } else if (dComIfGs_getStartPoint() == 7) { + bgm_wave2 = 0x53; + } else { + bgm_wave1 = 0x44; + } + se_wave2 = 0x5d; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_FOREST_TEMPLE: + bgm_id = Z2BGM_DUNGEON_FOREST; + bgm_wave1 = 0xa; + bgm_wave2 = 0x40; + se_wave1 = 1; + se_wave2 = 2; + Z2GetSeqMgr()->changeBgmStatus(room); + break; + + case SPOT_FOREST_TEMPLE_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_FOREST; + bgm_wave1 = 0xa; + bgm_wave2 = 0xb; + se_wave1 = 1; + se_wave2 = 3; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + Z2GetSeqMgr()->unMuteSceneBgm(struct_80450860); + break; + + case SPOT_FOREST_TEMPLE_BOSS: + se_wave1 = 1; + if (dComIfGs_isStageSwitch(2, 1)) { + bgm_id = Z2BGM_DUNGEON_FOREST; + bgm_wave1 = 0xa; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[55])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0xc; + se_wave2 = 4; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + Z2GetSeqMgr()->unMuteSceneBgm(struct_80450860); + break; + + case SPOT_GORON_MINES: + bgm_id = Z2BGM_DUNGEON_LV2; + bgm_wave1 = 0x13; + bgm_wave2 = 0x3c; + Z2GetSeqMgr()->changeBgmStatus(room); + se_wave1 = 5; + se_wave2 = 6; + break; + + case SPOT_GORON_MINES_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_LV2; + bgm_wave1 = 0x13; + se_wave1 = 5; + se_wave2 = 7; + bgm_wave2 = 0x14; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_GORON_MINES_BOSS: + se_wave1 = 5; + if (dComIfGs_isStageSwitch(3, 0x7c)) { + bgm_id = Z2BGM_DUNGEON_LV2; + bgm_wave1 = 0x13; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0x16; + se_wave2 = 8; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_LAKEBED_TEMPLE: + bgm_id = Z2BGM_DUNGEON_LV3; + bgm_wave1 = 0x15; + bgm_wave2 = 0x40; + se_wave1 = 9; + se_wave2 = 0xa; + break; + + case SPOT_LAKEBED_TEMPLE_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_LV3; + bgm_wave1 = 0x15; + bgm_wave2 = 0x17; + se_wave1 = 9; + se_wave2 = 0xb; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_LAKEBED_TEMPLE_BOSS: + se_wave1 = 9; + if (dComIfGs_isStageSwitch(4, 0xe)) { + bgm_id = Z2BGM_DUNGEON_LV3; + bgm_wave1 = 0x15; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[78])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0x1e; + se_wave2 = 0xc; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_ARBITERS_GROUNDS: + bgm_id = Z2BGM_DUNGEON_LV4; + bgm_wave1 = 0x1a; + bgm_wave2 = 0x41; + se_wave1 = 0xd; + se_wave2 = 0xe; + if (room == 1) { + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_ARBITERS_GROUNDS_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_LV4; + bgm_wave1 = 0x1a; + bgm_wave2 = 0x22; + se_wave1 = 0xd; + se_wave2 = 0xf; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_ARBITERS_GROUNDS_BOSS: + se_wave1 = 0xd; + if (dComIfGs_isStageSwitch(0xa, 0xa)) { + bgm_id = Z2BGM_DUNGEON_LV4; + bgm_wave1 = 0x1a; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[265])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0x4c; + se_wave2 = 0x10; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_SNOWPEAK_RUINS: + bgm_id = Z2BGM_DUNGEON_LV5; + bgm_wave1 = 0x1d; + bgm_wave2 = 0x40; + se_wave1 = 0x11; + se_wave2 = 0x12; + Z2GetSeqMgr()->changeBgmStatus(room); + break; + + case SPOT_SNOWPEAK_RUINS_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_LV5; + bgm_wave1 = 0x1d; + bgm_wave2 = 0x38; + se_wave1 = 0x11; + se_wave2 = 0x13; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + Z2GetSeqMgr()->changeBgmStatus(room); + break; + + case SPOT_SNOWPEAK_RUINS_BOSS: + Z2GetSeqMgr()->unMuteSceneBgm(60); + se_wave1 = 0x11; + if (dComIfGs_isStageSwitch(8, 0x19)) { + bgm_id = Z2BGM_DUNGEON_LV5; + bgm_wave1 = 0x1d; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0x2e; + se_wave2 = 0x14; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_TEMPLE_OF_TIME: + bgm_id = Z2BGM_DUNGEON_LV6; + bgm_wave1 = 0x26; + bgm_wave2 = 0x40; + se_wave1 = 0x15; + se_wave2 = 0x16; + break; + + case SPOT_TEMPLE_OF_TIME_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_LV6; + bgm_wave1 = 0x26; + bgm_wave2 = 0x3f; + se_wave1 = 0x15; + se_wave2 = 0x17; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_TEMPLE_OF_TIME_BOSS: + se_wave1 = 0x15; + if (dComIfGs_isStageSwitch(7, 0x18)) { + bgm_id = Z2BGM_DUNGEON_LV6; + bgm_wave1 = 0x26; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0x4e; + se_wave2 = 0x18; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; -/* 802B9A88-802B9A94 2B43C8 000C+00 1/1 0/0 0/0 .text __as__10JAISoundIDFRC10JAISoundID - */ -extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0) { - // NONMATCHING -} + case SPOT_CITY_IN_THE_SKY: + if (room == 16) { + bgm_id = Z2BGM_OBACHAN; + bgm_wave1 = 0x40; + } else { + bgm_id = Z2BGM_DUNGEON_LV7; + bgm_wave1 = 0x27; + } + se_wave1 = 0x19; + se_wave2 = 0x1a; + break; + + case SPOT_CITY_IN_THE_SKY_MINIBOSS: + bgm_id = Z2BGM_DUNGEON_LV7; + bgm_wave1 = 0x27; + bgm_wave2 = 0x43; + se_wave1 = 0x19; + se_wave2 = 0x1b; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_CITY_IN_THE_SKY_BOSS: + se_wave1 = 0x19; + if (dComIfGs_isStageSwitch(0x16, 0x25)) { + bgm_id = Z2BGM_DUNGEON_LV7; + bgm_wave1 = 0x27; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268])) { + bgm_id = 0x200005b; + } else { + bgm_wave1 = 0x1e; + se_wave2 = 0x1c; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + } + break; + + case SPOT_PALACE_OF_TWILIGHT: + if (layer == 8) { + if (room == 0 || room == 9) { + demo_wave = 0x77; + } else if (room == 11) { + demo_wave = 0x81; + } + } else if (layer == 9) { + demo_wave = 0x78; + } else { + bVar2 = true; + bgm_id = Z2BGM_DUNGEON_LV8; + bgm_wave1 = 0x28; + Z2GetSeqMgr()->changeBgmStatus(room); + } + se_wave1 = 0x1d; + se_wave2 = 0x1e; + break; + + case SPOT_PALACE_OF_TWILIGHT_MINIBOSS_A: + case SPOT_PALACE_OF_TWILIGHT_MINIBOSS_B: + bgm_id = Z2BGM_DUNGEON_LV8; + bgm_wave1 = 0x28; + bgm_wave2 = 0x48; + se_wave1 = 0x1d; + se_wave2 = 0x1f; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_PALACE_OF_TWILIGHT_THRONE_ROOM: + if (layer == 8) { + demo_wave = 0x81; + } else if (layer == 9) { + demo_wave = 0x79; + } else if (dComIfGs_isStageSwitch(0x17, 0x16)) { + bgm_id = Z2BGM_DUNGEON_LV8; + bgm_wave1 = 0x28; + } else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[570])) { + bgm_id = 0x200005b; + JSUList<JAIStream>* stream_list = Z2GetSoundMgr()->getStreamMgr()->getStreamList(); + JSULink<JAIStream>* stream; + for (stream = stream_list->getFirst(); stream != NULL; stream = stream->getNext()) { + if (stream->getObject()->getID() == 0x2000046) { + bgm_id = -1; + } + } + } + break; + + case SPOT_PALACE_OF_TWILIGHT_BOSS: + se_wave1 = 0x1d; + bgm_wave1 = 0x39; + se_wave2 = 0x20; + if (room == 50) { + inDarkness = true; + } + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_HYRULE_CASTLE: + if (room >= 1 && room <= 6) { + bgm_id = 0x2000040; + bgm_wave2 = 0x58; + } else if (room == 8 || room == 12) { + bgm_id = Z2BGM_DUNGEON_LV9_02; + bgm_wave1 = 0x29; + height_vol_mod = true; + } else { + Z2GetSeqMgr()->bgmStop(45, 0); + bgm_wave2 = 0x3d; + } + se_wave1 = 0x21; + se_wave2 = 0x22; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_FINAL_BATTLE_THRONE_ROOM: + if (room == 50) { + if (layer == 8) { + demo_wave = 0x7b; + } else if (layer == 0) { + bgm_wave1 = 0x49; + se_wave2 = 0x23; + } else if (layer == 10) { + demo_wave = 0x7b; + } else if (layer == 1) { + bgm_wave1 = 0x4a; + se_wave2 = 0x24; + } else if (layer == 9) { + demo_wave = 0x7c; + } + } + se_wave1 = 0x56; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_FINAL_BATTLE_FIELD: + bgm_wave1 = 0x4b; + se_wave2 = 0x63; + se_wave1 = 0x8c; + field_0x1b = true; + Z2GetSoundObjMgr()->setForceBattleArea(true, 700, 1100, 1500); + break; + + case SPOT_FINAL_BATTLE_CUTSCENE: + if (layer == 8) { + demo_wave = 0x7c; + fVar1 = 0.1f; + } else if (layer == 10) { + demo_wave = 0x7d; + } else if (layer == 9) { + demo_wave = 0x7e; + fVar1 = 0.08f; + } else if (layer == 11) { + demo_wave = 0x7f; + } + break; -/* 802B9A94-802B9AC4 2B43D4 0030+00 1/1 0/0 0/0 .text dComIfGs_isSaveSwitch__Fi */ -static void dComIfGs_isSaveSwitch(int param_0) { - // NONMATCHING -} + case SPOT_LIGHT_SPIRIT_CHAMBER: + demo_wave = 0x7c; + break; -/* 802B9AC4-802B9AD0 2B4404 000C+00 1/1 0/0 0/0 .text resetCrowdSize__7Z2SeMgrFv */ -void Z2SeMgr::resetCrowdSize() { - // NONMATCHING -} + case SPOT_CAVE_OF_ORDEALS: + se_wave2 = 0x51; + if (room != 49 || layer < 5 || layer > 8) { + bgm_id = Z2BGM_SUB_DUNGEON; + bgm_wave1 = 0x45; + } + break; + + case SPOT_ICE_BLOCK_PUZZLE: + se_wave1 = 0x11; + se_wave2 = 0x12; + bgm_id = Z2BGM_SUB_DUNGEON; + bgm_wave1 = 0x45; + break; + + case SPOT_GORGE_LANTERN_CAVE: + case SPOT_LAKE_LANTERN_CAVE: + se_wave2 = 0x52; + bgm_id = Z2BGM_SUB_DUNGEON; + bgm_wave1 = 0x45; + break; + + case SPOT_ELDIN_MAGNET_CAVE: + se_wave1 = 5; + se_wave2 = 6; + bgm_id = Z2BGM_SUB_DUNGEON; + bgm_wave1 = 0x45; + break; + + case SPOT_GROTTO_GRASS_1: + case SPOT_GROTTO_GRASS_2: + case SPOT_GROTTO_ROCK_1: + case SPOT_GROTTO_ROCK_2: + case SPOT_GROTTO_POND: + se_wave2 = 0x50; + bgm_id = Z2BGM_SUB_DUNGEON; + bgm_wave1 = 0x45; + break; + + case SPOT_FARON_WOODS_CAVE: + se_wave2 = 0x53; + if (inDarkness) { + bgm_id = Z2BGM_TWILIGHT; + bgm_wave1 = 0xe; + } else { + bgm_id = Z2BGM_SUB_DUNGEON; + bgm_wave1 = 0x45; + } + break; + } -/* 802B9AD0-802B9AFC 2B4410 002C+00 1/1 0/0 0/0 .text setTwilightGateVol__8Z2SeqMgrFf */ -void Z2SeqMgr::setTwilightGateVol(f32 param_0) { - // NONMATCHING -} + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) + && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250]) + && demo_wave == 0 && spot != SPOT_ELDIN_BRIDGE_BATTLE) + { + bgm_wave1 = 0x36; + if (spot == SPOT_CASTLE_TOWN_SHOPS && room == 5) { + bgm_id = -1; + } else { + bgm_id = Z2BGM_MIDNA_SOS; + if ((spot == SPOT_CASTLE_TOWN_INTERIOR && room == 5) + || spot == SPOT_CASTLE_TOWN_SHOPS || spot == SPOT_STAR_TENT) + { + Z2GetSeqMgr()->muteSceneBgm(33, 0.5f); + } else { + Z2GetSeqMgr()->unMuteSceneBgm(33); + } + } + time_proc_vol_mod = false; + } else if (sceneNum == SPOT_CASTLE_TOWN_SHOPS && roomNum == 1 + && !(spot == SPOT_CASTLE_TOWN && room == 3)) + { + bgm_id = Z2BGM_FORTUNE; + bgm_wave1 = 0x37; + Z2GetSeqMgr()->changeBgmStatus(1); + time_proc_vol_mod = false; + } -/* 802B9AFC-802B9B60 2B443C 0064+00 1/1 0/0 0/0 .text setWindStoneVol__8Z2SeqMgrFfUl */ -void Z2SeqMgr::setWindStoneVol(f32 param_0, u32 param_1) { - // NONMATCHING -} + if (Z2GetSoundMgr()->getStreamMgr()->isActive()) { + JAUSoundTable* sound_table = JAUSoundTable::getInstance(); + JSUList<JAIStream>* stream_list = Z2GetSoundMgr()->getStreamMgr()->getStreamList(); + JSULink<JAIStream>* stream; + for (stream = stream_list->getFirst(); stream != NULL; stream = stream->getNext()) { + if (bVar2 || sound_table->getTypeID(stream->getObject()->getID()) != 0x71) { + stream->getObject()->stop(struct_80450860); + } + } + } -/* 802B9B60-802B9B68 -00001 0008+00 0/0 0/0 0/0 .text __ct__10JAISoundIDFUl */ -// JAISoundID::JAISoundID(u32 id) { -extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1) { - *(u32*)param_0 = (u32)(param_1); + Z2GetSeqMgr()->setHeightVolMod(height_vol_mod, 30); + Z2GetSeqMgr()->setTimeProcVolMod(time_proc_vol_mod, 0); + Z2GetSeqMgr()->setFieldBgmPlay(field_bgm_play); + Z2GetEnvSeMgr()->initSceneEnvSe(spot, room, fVar1); + + if (sceneNum != spot || bgm_id != BGM_ID || se_wave1 != loadedSeWave_1 + || se_wave2 != loadedSeWave_2 || bgm_wave1 != loadedBgmWave_1 + || bgm_wave2 != loadedBgmWave_2 || demo_wave != loadedDemoWave) + { + sceneNum = spot; + sceneChange(bgm_id, se_wave1, se_wave2, bgm_wave1, bgm_wave2, demo_wave, false); + } + roomNum = room; } /* 802B9B68-802B9C50 2B44A8 00E8+00 1/1 0/0 0/0 .text * sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb */ -void Z2SceneMgr::sceneChange(JAISoundID param_0, u8 param_1, u8 param_2, u8 param_3, u8 param_4, - u8 param_5, bool param_6) { - // NONMATCHING +void Z2SceneMgr::sceneChange(JAISoundID bgm, u8 seWave1, u8 seWave2, u8 bgmWave1, u8 bgmWave2, + u8 demoWave, bool param_6) { + if (bgm != BGM_ID) { + if (Z2GetSeqMgr()->getMainBgmID() == bgm) { + field_0x1a = false; + } else { + field_0x1a = true; + } + } else { + if (Z2GetSeqMgr()->getMainBgmID() == bgm) { + if (param_6) { + field_0x1a = true; + } else { + field_0x1a = false; + } + } else { + field_0x1a = true; + } + } + + requestSeWave_1 = seWave1; + requestSeWave_2 = seWave2; + requestBgmWave_1 = bgmWave1; + requestBgmWave_2 = bgmWave2; + requestDemoWave = demoWave; + BGM_ID = bgm; + Z2GetFxLineMgr()->setSceneFx(sceneNum); } /* 802B9C50-802B9D40 2B4590 00F0+00 0/0 1/1 0/0 .text framework__10Z2SceneMgrFv */ void Z2SceneMgr::framework() { - // NONMATCHING + if (load1stWait > 0) { + load1stWait--; + if (load1stWait == 0 && timer == 0) { + _load1stWaveInner_1(); + } + } else if (load1stWait < 0) { + load1stWait++; + if (load1stWait == 0 && field_0x1a) { + _load1stWaveInner_2(); + } + } + + if (isSceneExist()) { + if (timer < 10000) { + timer++; + } + if (!field_0x1b && Z2GetStatusMgr()->getDemoStatus() != 3 && timer == struct_80450863) { + Z2GetSeqMgr()->setBattleBgmOff(false); + } + } else { + Z2GetSeqMgr()->setBattleBgmOff(true); + } } /* 802B9D40-802B9D98 2B4680 0058+00 0/0 1/1 0/0 .text load1stDynamicWave__10Z2SceneMgrFv */ void Z2SceneMgr::load1stDynamicWave() { - // NONMATCHING + timer = 0; + Z2GetSoundObjMgr()->deleteEnemyAll(); + setSceneExist(false); + if (load1stWait == 0) { + _load1stWaveInner_1(); + } } /* 802B9D98-802B9FC8 2B46D8 0230+00 2/2 0/0 0/0 .text _load1stWaveInner_1__10Z2SceneMgrFv */ void Z2SceneMgr::_load1stWaveInner_1() { - // NONMATCHING + Z2GetSeMgr()->seStopAll(0); + Z2GetEnvSeMgr()->resetSceneInner(); + field_0x18 = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) ? 0x59 : 0x58; + + if (loadedSeWave_2 != 0 && requestSeWave_2 != loadedSeWave_2) { + eraseSeWave(loadedSeWave_2); + loadedSeWave_2 = 0; + } + + if (loadedDemoWave != 0 && requestDemoWave != loadedDemoWave) { + if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) { + loadedSeWave_2 = 0; + } + eraseSeWave(loadedDemoWave); + loadedDemoWave = 0; + } + + if (field_0x18 != field_0x19 || requestSeWave_1 != loadedSeWave_1) { + if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) { + loadedSeWave_2 = 0; + } + if (loadedDemoWave != 0 && eraseSeWave(loadedDemoWave)) { + loadedDemoWave = 0; + } + if (loadedSeWave_1 != 0 && eraseSeWave(loadedSeWave_1)) { + loadedSeWave_1 = 0; + } + if (field_0x18 != field_0x19 && eraseSeWave(field_0x19) && loadSeWave(field_0x18)) { + field_0x19 = field_0x18; + } + if (requestSeWave_1 != 0 && loadSeWave(requestSeWave_1)) { + loadedSeWave_1 = requestSeWave_1; + } else { + loadedSeWave_1 = 0; + } + } + + if (field_0x1a && Z2GetSeqMgr()->checkBgmPlaying()) { + Z2GetSeqMgr()->bgmStop(0xf, 0); + load1stWait = -15; + } else { + _load1stWaveInner_2(); + } } /* 802B9FC8-802BA09C 2B4908 00D4+00 2/2 0/0 0/0 .text _load1stWaveInner_2__10Z2SceneMgrFv */ void Z2SceneMgr::_load1stWaveInner_2() { - // NONMATCHING + if (loadedBgmWave_2 != 0 && requestBgmWave_2 != loadedBgmWave_2) { + eraseBgmWave(loadedBgmWave_2); + loadedBgmWave_2 = 0; + } + + if (requestBgmWave_1 != loadedBgmWave_1) { + if (loadedBgmWave_2 != 0 && eraseBgmWave(loadedBgmWave_2)) { + loadedBgmWave_2 = 0; + } + if (loadedBgmWave_1 != 0 && eraseBgmWave(loadedBgmWave_1)) { + loadedBgmWave_1 = 0; + } + if (requestBgmWave_1 != 0 && loadBgmWave(requestBgmWave_1)) { + loadedBgmWave_1 = requestBgmWave_1; + } else { + loadedBgmWave_1 = 0; + } + } } /* 802BA09C-802BA120 2B49DC 0084+00 0/0 1/1 0/0 .text check1stDynamicWave__10Z2SceneMgrFv */ bool Z2SceneMgr::check1stDynamicWave() { - // NONMATCHING + return load1stWait != 0 || getSeLoadStatus(requestSeWave_1) == 1 + || getBgmLoadStatus(requestBgmWave_1) == 1; } /* 802BA120-802BA294 2B4A60 0174+00 0/0 2/2 0/0 .text load2ndDynamicWave__10Z2SceneMgrFv */ void Z2SceneMgr::load2ndDynamicWave() { - // NONMATCHING -} + if (requestDemoWave != loadedDemoWave) { + if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) { + loadedSeWave_2 = 0; + } + if (loadedDemoWave != 0 && eraseSeWave(loadedDemoWave)) { + loadedDemoWave = 0; + } + if (requestDemoWave != 0 && requestDemoWave != 0x7f && loadSeWave(requestDemoWave)) { + loadedDemoWave = requestDemoWave; + } else { + loadedDemoWave = 0; + } + } -/* ############################################################################################## */ -/* 803CA9BC-803CAB18 -00001 015C+00 1/1 0/0 0/0 .data @5852 */ -SECTION_DATA static void* lit_5852[87] = { - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x204), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x23C), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x190), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0), - (void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x1B8), -}; + if (requestSeWave_2 != loadedSeWave_2) { + if (loadedSeWave_2 != 0 && eraseSeWave(loadedSeWave_2)) { + loadedSeWave_2 = 0; + } + if (requestSeWave_2 != 0 && loadSeWave(requestSeWave_2)) { + loadedSeWave_2 = requestSeWave_2; + } else { + loadedSeWave_2 = 0; + } + } + + if (requestBgmWave_2 != loadedBgmWave_2) { + if (loadedBgmWave_2 != 0 && eraseBgmWave(loadedBgmWave_2)) { + loadedBgmWave_2 = 0; + } + if (requestBgmWave_2 != 0 && loadBgmWave(requestBgmWave_2)) { + loadedBgmWave_2 = requestBgmWave_2; + } else { + loadedBgmWave_2 = 0; + } + } +} /* 802BA294-802BA56C 2B4BD4 02D8+00 1/0 2/2 0/0 .text sceneBgmStart__10Z2SceneMgrFv */ +// NONMATCHING regalloc void Z2SceneMgr::sceneBgmStart() { - // NONMATCHING + inGame = true; + setSceneExist(true); + Z2GetStatusMgr()->setPauseFlag(0); + + if (!field_0x1a && Z2GetSeqMgr()->checkBgmIDPlaying(BGM_ID)) { + return; + } + + if (!BGM_ID.isAnonymous() && Z2GetStatusMgr()->getDemoStatus() != 11) { + bool var; + switch (BGM_ID.mId.mBytes.b0) { + case 1: + var = false; + switch (Z2GetSeqMgr()->getSubBgmID()) { + case Z2BGM_BATTLE_NORMAL: + case Z2BGM_BOOMERAMG_MONKEY: + case Z2BGM_SUMOMO: + var = true; + break; + } + Z2GetSeqMgr()->bgmStart(BGM_ID, 0, var); + Z2GetSeqMgr()->unMuteSceneBgm(0); + + switch (BGM_ID) { + case Z2BGM_DUNGEON_FOREST: + case Z2BGM_DUNGEON_LV2: + case Z2BGM_DUNGEON_LV5: + case Z2BGM_CASTLE_TOWN: + case Z2BGM_DUNGEON_LV8: + case Z2BGM_DUNGEON_LV9_02: + case Z2BGM_SNOW_MOUNTAIN: + if (sceneNum == SPOT_CASTLE_TOWN_SHOPS) { + Z2GetSeqMgr()->changeBgmStatus(5); + } else { + Z2GetSeqMgr()->changeBgmStatus(roomNum); + } + break; + case Z2BGM_HOLY_FOREST: + case Z2BGM_LUTERA2: + case Z2BGM_DEMO08: + case Z2BGM_DEMO10: + Z2GetSeqMgr()->changeBgmStatus(0); + break; + case Z2BGM_CHURCH2: + if (sceneNum == SPOT_SANCTUARY_BASEMENT) { + Z2GetSeqMgr()->muteSceneBgm(0, 0.5f); + } + break; + case Z2BGM_MIDNA_SOS: + if ((sceneNum == SPOT_CASTLE_TOWN_INTERIOR && roomNum == 5) + || sceneNum == SPOT_CASTLE_TOWN_SHOPS || sceneNum == SPOT_STAR_TENT) + { + Z2GetSeqMgr()->muteSceneBgm(0, 0.5f); + } + break; + case Z2BGM_TOAL_NIGHT: + if (sceneNum == SPOT_ORDON_INTERIOR && roomNum == 2) { + Z2GetSeqMgr()->changeBgmStatus(2); + } else { + Z2GetSeqMgr()->changeBgmStatus(0); + } + break; + case Z2BGM_FILONE_FOREST: + if (sceneNum == SPOT_CORO_SHOP + || (sceneNum == SPOT_FARON_WOODS && roomNum == 14)) + { + Z2GetSeqMgr()->changeBgmStatus(2); + } else { + Z2GetSeqMgr()->changeBgmStatus(0); + } + break; + } + break; + + case 2: + if (!Z2GetSeqMgr()->bgmStreamCheckReady()) { + Z2GetSeqMgr()->bgmStreamPrepare(BGM_ID); + } + Z2GetSeqMgr()->bgmStreamPlay(); + break; + } + } + + Z2GetSeqMgr()->bgmAllUnMute(0); + field_0x1a = false; } /* 802BA56C-802BA5C0 2B4EAC 0054+00 0/0 1/1 0/0 .text loadStaticWaves__10Z2SceneMgrFv */ void Z2SceneMgr::loadStaticWaves() { - // NONMATCHING + loadSeWave(0); + loadBgmWave(0); + loadSeWave(0x58); + field_0x18 = 0x58; + field_0x19 = 0x58; } /* 802BA5C0-802BA5C8 2B4F00 0008+00 0/0 1/1 0/0 .text checkFirstWaves__10Z2SceneMgrFv */ @@ -913,28 +2058,63 @@ BOOL Z2SceneMgr::checkFirstWaves() { } /* 802BA5C8-802BA630 2B4F08 0068+00 2/2 0/0 0/0 .text eraseSeWave__10Z2SceneMgrFUl */ -void Z2SceneMgr::eraseSeWave(u32 param_0) { - // NONMATCHING +bool Z2SceneMgr::eraseSeWave(u32 wave) { + JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(0); + if (wave_bank != NULL) { + JASWaveArc* wave_arc = wave_bank->getWaveArc(wave); + if (wave_arc != NULL) { + return wave_arc->erase(); + } + } + return false; } /* 802BA630-802BA698 2B4F70 0068+00 2/2 0/0 0/0 .text eraseBgmWave__10Z2SceneMgrFUl */ -void Z2SceneMgr::eraseBgmWave(u32 param_0) { - // NONMATCHING +bool Z2SceneMgr::eraseBgmWave(u32 wave) { + JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(1); + if (wave_bank != NULL) { + JASWaveArc* wave_arc = wave_bank->getWaveArc(wave); + if (wave_arc != NULL) { + return wave_arc->erase(); + } + } + return false; } /* 802BA698-802BA704 2B4FD8 006C+00 1/1 0/0 0/0 .text getWaveLoadStatus__10Z2SceneMgrFUlUl */ -void Z2SceneMgr::getWaveLoadStatus(u32 param_0, u32 param_1) { - // NONMATCHING +s32 Z2SceneMgr::getWaveLoadStatus(u32 wave, u32 bank) { + JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(bank); + if (wave_bank != NULL) { + JASWaveArc* wave_arc = wave_bank->getWaveArc(wave); + if (wave_arc != NULL) { + return wave_arc->getStatus(); + } + } + return 0; } /* 802BA704-802BA770 2B5044 006C+00 3/3 0/0 0/0 .text loadSeWave__10Z2SceneMgrFUl */ -void Z2SceneMgr::loadSeWave(u32 param_0) { - // NONMATCHING +bool Z2SceneMgr::loadSeWave(u32 wave) { + JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(0); + if (wave_bank != NULL) { + JASWaveArc* wave_arc = wave_bank->getWaveArc(wave); + if (wave_arc != NULL) { + return wave_arc->load(NULL); + } + } + return false; } /* 802BA770-802BA7DC 2B50B0 006C+00 3/3 0/0 0/0 .text loadBgmWave__10Z2SceneMgrFUl */ -void Z2SceneMgr::loadBgmWave(u32 param_0) { - // NONMATCHING +bool Z2SceneMgr::loadBgmWave(u32 wave) { + JASWaveBank* wave_bank = JAUSectionHeap::getInstance()->getWaveBankTable().getWaveBank(1); + if (wave_bank != NULL) { + JASWaveArc* wave_arc = wave_bank->getWaveArc(wave); + if (wave_arc != NULL) { + return wave_arc->loadTail(NULL); + } + } + return false; } -/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
\ No newline at end of file +/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/Z2AudioLib/Z2SeMgr.cpp b/src/Z2AudioLib/Z2SeMgr.cpp index 15fc003cdd..920ee7c900 100644 --- a/src/Z2AudioLib/Z2SeMgr.cpp +++ b/src/Z2AudioLib/Z2SeMgr.cpp @@ -13,7 +13,6 @@ #include "Z2AudioLib/Z2Param.h" #include "Z2AudioLib/Z2SeqMgr.h" #include "dol2asm.h" -#include "global.h" // // Forward References: @@ -294,7 +293,7 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_ } break; case Z2SE_OBJ_CHANDLV5_SWING: - i_volume = Z2Calc::getParamByExp(param_2, 353.0f, 261.0f, 0.4f, 0.05f, 1.0f, + i_volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f, Z2Calc::CURVE_SIGN_2); break; case Z2SE_OBJ_IRONBALL_HIT: diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp index 9839405ee4..0be99b8f33 100644 --- a/src/Z2AudioLib/Z2SeqMgr.cpp +++ b/src/Z2AudioLib/Z2SeqMgr.cpp @@ -40,10 +40,10 @@ Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance<Z2SeqMgr>(this) { field_0xc8 = 1.0f; field_0xcc = 1.0f; mRideCount = 0; - mFlags.flag5 = false; + mFlags.mFieldBgmPlay = false; mFlags.mBattleBgmOff = true; - mFlags.flag6 = false; - mFlags.flag7 = false; + mFlags.mHeightVolMod = false; + mFlags.mTimeProcVolMod = false; } /* 802AF010-802AF408 2A9950 03F8+00 3/3 5/5 38/38 .text bgmStart__8Z2SeqMgrFUlUll */ @@ -121,7 +121,7 @@ void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { changeBgmStatus(0); } - if (mFlags.flag7 && !Z2GetStatusMgr()->checkDayTime()) { + if (mFlags.mTimeProcVolMod && !Z2GetStatusMgr()->checkDayTime()) { field_0xa4.forceOut(); } else { field_0xa4.forceIn(); @@ -144,7 +144,6 @@ void Z2SeqMgr::bgmStop(u32 i_count, s32 param_1) { } } - /* ############################################################################################## */ /* 8039BA08-8039BA08 028068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push @@ -640,6 +639,7 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { } u32 count = 0; + bool mute; f32 volume1, volume2, volume3, volume4; switch (getMainBgmID()) { case Z2BGM_TOAL_VILLEGE: @@ -677,11 +677,11 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { setChildTrackVolume(&mMainBgmHandle, 13, 0.0f, 0, -1.0f, -1.0f); break; case Z2BGM_DUNGEON_FOREST: - bool mute = false; + mute = false; switch (param_0) { case 4: case 0xc: - i_muteSceneBgm(struct_80450860, 0.0f); + muteSceneBgm(struct_80450860, 0.0f); // fallthrough case 7: mute = true; @@ -691,7 +691,7 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; } if (!mute) { - i_unMuteSceneBgm(struct_80450860); + unMuteSceneBgm(struct_80450860); } break; case Z2BGM_DUNGEON_LV2: @@ -731,9 +731,9 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { setChildTrackVolume(&mMainBgmHandle, 12, volume2, count, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 13, volume2, count, -1.0f, -1.0f); if (param_0 == 4) { - i_muteSceneBgm(60, 0.29f); + muteSceneBgm(60, 0.29f); } else { - i_unMuteSceneBgm(60); + unMuteSceneBgm(60); } break; case Z2BGM_CASTLE_TOWN: @@ -805,14 +805,14 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; } if (param_0 == 5) { - i_muteSceneBgm(count, 0.35f); - mFlags.flag6 = false; + muteSceneBgm(count, 0.35f); + mFlags.mHeightVolMod = false; } else { - i_unMuteSceneBgm(count); + unMuteSceneBgm(count); if (param_0 < 2) { - mFlags.flag6 = false; + mFlags.mHeightVolMod = false; } else { - mFlags.flag6 = true; + mFlags.mHeightVolMod = true; } } break; @@ -840,9 +840,9 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; case Z2BGM_LUTERA2: if (param_0 == 0) { - i_muteSceneBgm(0, 0.5f); + muteSceneBgm(0, 0.5f); } else if (param_0 == 1) { - i_unMuteSceneBgm(80); + unMuteSceneBgm(80); } break; case Z2BGM_DEMO08: @@ -953,9 +953,9 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; case Z2BGM_FORTUNE: if (param_0 == 1) { - i_muteSceneBgm(45, 0.5f); + muteSceneBgm(45, 0.5f); } else { - i_unMuteSceneBgm(45); + unMuteSceneBgm(45); } break; case Z2BGM_DUNGEON_LV9_02: @@ -1019,11 +1019,11 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { case Z2BGM_TOAL_NIGHT: case Z2BGM_FILONE_FOREST: if (param_0 == 1) { - i_muteSceneBgm(45, 0.5f); + muteSceneBgm(45, 0.5f); } else if (param_0 == 2) { - i_muteSceneBgm(0, 0.5f); + muteSceneBgm(0, 0.5f); } else { - i_unMuteSceneBgm(45); + unMuteSceneBgm(45); } break; case Z2BGM_VS_GANON_04: @@ -1257,23 +1257,23 @@ void Z2SeqMgr::changeFishingBgm(s32 param_0) { if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } - i_unMuteSceneBgm(struct_80450862); + unMuteSceneBgm(struct_80450862); break; case 1: if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } - i_muteSceneBgm(2, 0.5f); + muteSceneBgm(2, 0.5f); break; case 2: subBgmStart(Z2BGM_FISHING_HIT); - i_muteSceneBgm(1, 0.0f); + muteSceneBgm(1, 0.0f); break; case 4: if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } - i_muteSceneBgm(1, 0.0f); + muteSceneBgm(1, 0.0f); break; } } @@ -1304,7 +1304,6 @@ void Z2SeqMgr::menuOutBgm() { } /* 802B2E3C-802B327C 2AD77C 0440+00 1/1 0/0 0/0 .text fanfareFramework__8Z2SeqMgrFv */ -// NONMATCHING extra load void Z2SeqMgr::fanfareFramework() { switch (mFanfareID) { case Z2BGM_OPEN_BOX: @@ -1364,7 +1363,7 @@ void Z2SeqMgr::fanfareFramework() { mFanfareCount = 50; mFanfareMute.fadeOut(30); } else if (mFanfareCount == 1) { - Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0); + Z2GetSoundMgr()->startSound((u32)mFanfareID, &mFanfareHandle, 0); mFanfareID.setAnonymous(); } break; @@ -1424,26 +1423,26 @@ void Z2SeqMgr::stopWolfHowlSong() { } /* 802B3318-802B3398 2ADC58 0080+00 0/0 1/1 0/0 .text setHeightVolMod__8Z2SeqMgrFbUl */ -void Z2SeqMgr::setHeightVolMod(bool param_0, u32 i_count) { - mFlags.flag6 = param_0; - if (!param_0) { +void Z2SeqMgr::setHeightVolMod(bool i_value, u32 i_count) { + mFlags.mHeightVolMod = i_value; + if (!i_value) { field_0x84.fadeIn(i_count); } } /* 802B3398-802B33A8 2ADCD8 0010+00 0/0 1/1 0/0 .text setTimeProcVolMod__8Z2SeqMgrFbUl */ -void Z2SeqMgr::setTimeProcVolMod(bool param_0, u32 i_count) { - mFlags.flag7 = param_0; +void Z2SeqMgr::setTimeProcVolMod(bool i_value, u32 i_count) { + mFlags.mTimeProcVolMod = i_value; } /* 80450870-80450874 0002F0 0004+00 1/1 0/0 0/0 .sdata sDeathMtBottom */ -SECTION_SDATA static f32 sDeathMtBottom = -1000.0f; +static f32 sDeathMtBottom = -1000.0f; /* 80450874-80450878 0002F4 0004+00 1/1 0/0 0/0 .sdata sDeathMtTop */ -SECTION_SDATA static f32 sDeathMtTop = 3650.0f; +static f32 sDeathMtTop = 3650.0f; /* 80450878-80450880 0002F8 0004+04 1/1 0/0 0/0 .sdata sUnderWaterDepthMax */ -SECTION_SDATA static f32 sUnderWaterDepthMax = 3500.0f; +static f32 sUnderWaterDepthMax = 3500.0f; /* 802B33A8-802B3EAC 2ADCE8 0B04+00 0/0 1/1 0/0 .text processBgmFramework__8Z2SeqMgrFv */ void Z2SeqMgr::processBgmFramework() { @@ -1467,7 +1466,7 @@ void Z2SeqMgr::processBgmFramework() { mMainBgmMaster.fadeIn(struct_80450861); } - if (mFlags.flag7) { + if (mFlags.mTimeProcVolMod) { if (Z2GetStatusMgr()->checkDayTime() && field_0xa4.getDest() != 1.0f) { field_0xa4.fadeIn(600); } else if (!Z2GetStatusMgr()->checkDayTime() && field_0xa4.getDest() != 0.0f) { @@ -1475,11 +1474,11 @@ void Z2SeqMgr::processBgmFramework() { } } - if (mFlags.flag6 && Z2GetSceneMgr()->isSceneExist() + if (mFlags.mHeightVolMod && Z2GetSceneMgr()->isSceneExist() && Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL) { f32 link_y = Z2GetLink()->getCurrentPos()->y; - f32 volume; + f32 volume, depth; switch (getMainBgmID()) { case Z2BGM_DEATH_MOUNTAIN01: volume = Z2Calc::getParamByExp(link_y, sDeathMtTop, sDeathMtBottom, 0.3f, 0.0f, 1.0f, @@ -1501,7 +1500,7 @@ void Z2SeqMgr::processBgmFramework() { case Z2BGM_ZORA_VILLAGE: case Z2BGM_FISHING: case Z2BGM_LAKE: - f32 depth = Z2GetStatusMgr()->getCameraInWaterDepth(); + depth = Z2GetStatusMgr()->getCameraInWaterDepth(); if (depth > sUnderWaterDepthMax) { field_0x84.forceOut(); } else if (depth > 0.0f) { @@ -1592,7 +1591,7 @@ void Z2SeqMgr::processBgmFramework() { f32 volume = base_vol * mMainBgmMaster.get() * mSceneBgm.get(); mStreamBgmHandle->getAuxiliary().moveVolume(volume, 0); } - i_setWindStoneVol(1.0f, 30); + setWindStoneVol(1.0f, 30); } /* 802B3EAC-802B3F40 2AE7EC 0094+00 0/0 2/2 0/0 .text checkBgmIDPlaying__8Z2SeqMgrFUl */ @@ -1969,7 +1968,7 @@ void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) { /* 802B545C-802B556C 2AFD9C 0110+00 1/1 0/0 0/0 .text fieldBgmStart__8Z2SeqMgrFv */ void Z2SeqMgr::fieldBgmStart() { - if (Z2GetSceneMgr()->isSceneExist() && mFlags.flag5) { + if (Z2GetSceneMgr()->isSceneExist() && mFlags.mFieldBgmPlay) { if (Z2GetStatusMgr()->checkDayTime()) { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_DAY, &mMainBgmHandle, NULL); changeBgmStatus(0); @@ -2046,7 +2045,7 @@ void Z2SeqMgr::fieldBgmFramework() { if (Z2GetSceneMgr()->isSceneExist() && !Z2GetSceneMgr()->isInDarkness() && (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1e || Z2GetSceneMgr()->getCurrentSceneNum() == 0x1f) - && mFlags.flag5) + && mFlags.mFieldBgmPlay) { if (mRideCount != 0) { mRideCount--; @@ -2229,7 +2228,6 @@ void Z2SeqMgr::taktModeMute() { mBgmPause.move(0.3f, 10); } - /* 802B5ED4-802B5F1C 2B0814 0048+00 0/0 1/1 0/0 .text taktModeMuteOff__8Z2SeqMgrFv */ void Z2SeqMgr::taktModeMuteOff() { mBgmPause.fadeIn(10); diff --git a/src/Z2AudioLib/Z2SoundHandles.cpp b/src/Z2AudioLib/Z2SoundHandles.cpp index 744773686a..b351939a2b 100644 --- a/src/Z2AudioLib/Z2SoundHandles.cpp +++ b/src/Z2AudioLib/Z2SoundHandles.cpp @@ -5,38 +5,6 @@ #include "Z2AudioLib/Z2SoundHandles.h" #include "JSystem/JAudio2/JAISoundInfo.h" -#include "dol2asm.h" - -extern "C" void func_802AB200(void* _this); -extern "C" void __ct__17JASGenericMemPoolFv(); -extern "C" void __dt__17JASGenericMemPoolFv(); -extern "C" void alloc__17JASGenericMemPoolFUl(); -extern "C" void free__17JASGenericMemPoolFPvUl(); -extern "C" void releaseSound__14JAISoundHandleFv(); -extern "C" void stop__8JAISoundFUl(); -extern "C" void __dl__FPv(); -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void __dt__10JSUPtrListFv(); -extern "C" void initiate__10JSUPtrListFv(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void __register_global_object(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" extern u8 data_80451348[8]; - -/* 804341B8-804341C4 060ED8 000C+00 3/3 0/0 0/0 .bss @632 */ -static u8 lit_632[12]; - -/* 804341C4-804341D8 060EE4 0010+04 3/3 1/1 0/0 .bss - * memPool_$localstatic3$getMemPool___39JASPoolAllocObject<17Z2SoundHandlePool>Fv */ -extern u8 data_804341C4[16 + 4 /* padding */]; -u8 data_804341C4[16 + 4 /* padding */]; - -// inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {} Z2SoundHandles::Z2SoundHandles() { mNumHandles = 0; @@ -51,7 +19,7 @@ void Z2SoundHandles::initHandlesPool(u8 pNumHandles) { } /* 802AB120-802AB200 2A5A60 00E0+00 1/1 1/1 0/0 .text deleteHandlesPool__14Z2SoundHandlesFv */ -#ifdef NONMATCHING +// NONMATCHING JASPoolAllocObject<_> locations void Z2SoundHandles::deleteHandlesPool() { JSULink<Z2SoundHandlePool>* link; while (link = getFirst(), link != NULL) { @@ -61,16 +29,6 @@ void Z2SoundHandles::deleteHandlesPool() { } mNumHandles = 0; } -#else -void Z2SoundHandles::deleteHandlesPool() { - // NONMATCHING -} -#endif - -/* 802AB200-802AB254 2A5B40 0054+00 3/3 1/1 0/0 .text __dt__31JASMemPool<17Z2SoundHandlePool>Fv */ -extern "C" void func_802AB200(void* _this) { - // NONMATCHING -} Z2SoundHandlePool* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) { JSULink<Z2SoundHandlePool>* link; @@ -102,7 +60,7 @@ Z2SoundHandlePool* Z2SoundHandles::getHandleUserData(u32 pUserData) { /* 802AB2D8-802AB3D0 2A5C18 00F8+00 0/0 3/3 0/0 .text getFreeHandle__14Z2SoundHandlesFv */ -#ifdef NONMATCHING +// NONMATCHING JASPoolAllocObject<_> locations Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() { JSULink<Z2SoundHandlePool>* link; for (link = getFirst(); link != NULL; link = link->getNext()) { @@ -123,11 +81,6 @@ Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() { return NULL; } -#else -Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() { - // NONMATCHING -} -#endif /* 802AB3D0-802AB4A0 2A5D10 00D0+00 0/0 2/2 0/0 .text * getLowPrioSound__14Z2SoundHandlesF10JAISoundID */ @@ -180,7 +133,7 @@ bool Z2SoundHandles::isActive() const { /* 802AB538-802AB64C 2A5E78 0114+00 0/0 1/1 0/0 .text * setPos__14Z2SoundHandlesFRCQ29JGeometry8TVec3<f> */ -#ifdef NONMATCHING +// NONMATCHING JASPoolAllocObject<_> locations void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) { JSULink<Z2SoundHandlePool>* link; for (link = getFirst(); link != NULL; link = link->getNext()) { @@ -194,8 +147,3 @@ void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) { } } } -#else -void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) { - // NONMATCHING -} -#endif
\ No newline at end of file diff --git a/src/Z2AudioLib/Z2SoundInfo.cpp b/src/Z2AudioLib/Z2SoundInfo.cpp index 67b957282b..ad9f0519dd 100644 --- a/src/Z2AudioLib/Z2SoundInfo.cpp +++ b/src/Z2AudioLib/Z2SoundInfo.cpp @@ -6,18 +6,15 @@ #include "Z2AudioLib/Z2SoundInfo.h" #include "JSystem/JAudio2/JAISeq.h" #include "JSystem/JAudio2/JAISe.h" +#include "JSystem/JAudio2/JAISoundChild.h" +#include "JSystem/JAudio2/JAIStream.h" #include "JSystem/JAudio2/JAUSoundTable.h" #include "JSystem/JUtility/JUTAssert.h" #include "Z2AudioLib/Z2Calc.h" -#include "dol2asm.h" #include "dolphin/dvd.h" -// -// Types: -// - struct JAUStdSoundTableType { - static u32 STRM_CH_SHIFT; + static const u32 STRM_CH_SHIFT; struct StringOffset { static inline const char* getString(const void* addr, u32 offset) { return (const char*)addr + offset; @@ -25,53 +22,6 @@ struct JAUStdSoundTableType { }; }; -// -// Forward References: -// - -extern "C" void getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID(); -extern "C" void getSoundType__11Z2SoundInfoCF10JAISoundID(); -extern "C" void getCategory__11Z2SoundInfoCF10JAISoundID(); -extern "C" void getPriority__11Z2SoundInfoCF10JAISoundID(); -extern "C" void getAudibleSwFull__11Z2SoundInfoF10JAISoundID(); -extern "C" void getAudibleSw__11Z2SoundInfoCF10JAISoundID(); -extern "C" void getSeInfo__11Z2SoundInfoCF10JAISoundIDP5JAISe(); -extern "C" void getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq(); -extern "C" void getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream(); -extern "C" void getStreamFilePath__11Z2SoundInfoF10JAISoundID(); -extern "C" void getStreamFileEntry__11Z2SoundInfoF10JAISoundID(); -extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID(); -extern "C" void getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound(); -extern "C" void __dt__11Z2SoundInfoFv(); -extern "C" static void func_802BBCBC(); -extern "C" static void func_802BBCC4(); -extern "C" static void func_802BBCCC(); -extern "C" static void func_802BBCD4(); -extern "C" u32 STRM_CH_SHIFT__20JAUStdSoundTableType; - -// -// External References: -// - -extern "C" void __dt__12JAISoundInfoFv(); -extern "C" void __dt__16JAIStreamDataMgrFv(); -extern "C" void getTypeID__13JAUSoundTableCF10JAISoundID(); -extern "C" void getData__13JAUSoundTableCF10JAISoundID(); -extern "C" void linearTransform__6Z2CalcFfffffb(); -extern "C" void getRandom_0_1__6Z2CalcFv(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__12JAUSoundInfo[4 + 1 /* padding */]; -extern "C" extern u8 data_80450B58[4]; -extern "C" extern u8 __OSReport_disable; - /* 802BB00C-802BB090 2B594C 0084+00 2/1 0/0 0/0 .text * getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID */ u16 Z2SoundInfo::getBgmSeqResourceID(JAISoundID param_0) const { @@ -123,6 +73,7 @@ u32 Z2SoundInfo::getPriority(JAISoundID param_0) const { JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) { JAUAudibleParam local_28; JUT_ASSERT(82, isValid()); + int iVar1, uVar7; switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0)) { case 81: local_28.field_0x0.bytes.b0_0 = (u32)getSwBit(param_0) >> 8; @@ -157,8 +108,7 @@ JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) { local_28.field_0x0.bytes.b1_1 = 1; } - int iVar1; - int uVar7 = 0; + uVar7 = 0; if ((getSwBit(param_0) & 0x80000) != 0) { uVar7 = 8; } @@ -188,6 +138,7 @@ JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) { u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const { JAUAudibleParam local_28; JUT_ASSERT(184, isValid()); + int iVar1, uVar7; switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0)) { case 81: local_28.field_0x0.bytes.b0_0 = (u32)getSwBit(param_0) >> 8; @@ -222,8 +173,7 @@ u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const { local_28.field_0x0.bytes.b1_1 = 1; } - int iVar1; - int uVar7 = 0; + uVar7 = 0; if ((getSwBit(param_0) & 0x80000) != 0) { uVar7 = 8; } @@ -242,40 +192,6 @@ u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const { return local_28.field_0x0.half.f0; } -/* ############################################################################################## */ -/* 80455A68-80455A6C 004068 0004+00 1/1 0/0 0/0 .sdata2 @963 */ -SECTION_SDATA2 static f32 lit_963 = 8.0f; - -/* 80455A6C-80455A70 00406C 0004+00 1/1 0/0 0/0 .sdata2 @964 */ -SECTION_SDATA2 static f32 lit_964 = 15.0f; - -/* 80455A70-80455A74 004070 0004+00 1/1 0/0 0/0 .sdata2 @965 */ -SECTION_SDATA2 static f32 lit_965 = 16.0f; - -/* 80455A74-80455A78 004074 0004+00 1/1 0/0 0/0 .sdata2 @966 */ -SECTION_SDATA2 static f32 lit_966 = 24.0f; - -/* 80455A78-80455A7C 004078 0004+00 1/1 0/0 0/0 .sdata2 @967 */ -SECTION_SDATA2 static f32 lit_967 = 48.0f; - -/* 80455A7C-80455A80 00407C 0004+00 2/2 0/0 0/0 .sdata2 @968 */ -SECTION_SDATA2 static u8 lit_968[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80455A80-80455A88 004080 0004+04 2/2 0/0 0/0 .sdata2 @969 */ -SECTION_SDATA2 static f32 lit_969[1 + 1 /* padding */] = { - 1.0f, - /* padding */ - 0.0f, -}; - -/* 80455A88-80455A90 004088 0008+00 2/2 0/0 0/0 .sdata2 @973 */ -SECTION_SDATA2 static f64 lit_973 = 4503599627370496.0 /* cast u32 to float */; - /* 802BB6DC-802BB8B4 2B601C 01D8+00 1/0 0/0 0/0 .text * getSeInfo__11Z2SoundInfoCF10JAISoundIDP5JAISe */ void Z2SoundInfo::getSeInfo(JAISoundID param_1, JAISe* param_2) const { @@ -309,24 +225,18 @@ void Z2SoundInfo::getSeInfo(JAISoundID param_1, JAISe* param_2) const { } } - /* 802BB8B4-802BB8E0 2B61F4 002C+00 1/0 0/0 0/0 .text * getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq */ void Z2SoundInfo::getSeqInfo(JAISoundID param_0, JAISeq* param_1) const { getSoundInfo_(param_0, param_1); } -/* ############################################################################################## */ /* 80455A90-80455A94 004090 0004+00 1/1 0/0 0/0 .sdata2 STRM_CH_SHIFT__20JAUStdSoundTableType */ -SECTION_SDATA2 u32 JAUStdSoundTableType::STRM_CH_SHIFT = 0x00000002; - -/* 80455A94-80455A98 004094 0004+00 1/1 0/0 0/0 .sdata2 @1010 */ -SECTION_SDATA2 static f32 lit_1010 = 0.5f; +u32 const JAUStdSoundTableType::STRM_CH_SHIFT = 2; /* 802BB8E0-802BBA10 2B6220 0130+00 1/0 0/0 0/0 .text * getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream */ -// regalloc -#ifdef NONMATCHING +// NONMATCHING regalloc void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const { int numChild; JAUSoundTableItem* data; @@ -334,18 +244,15 @@ void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const { JUT_ASSERT(349, isValid()); switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1) & 0xf0) { case 0x70: - int chShift; - u32 uVar1; + u16 uVar1; s32 iVar4; - u16 uVar3; data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1); JUT_ASSERT(356, data); uVar1 = data->mResourceId; numChild = param_2->getNumChild(); iVar4 = 0; - chShift = JAUStdSoundTableType::STRM_CH_SHIFT; - for (uVar3 = uVar1; iVar4 < numChild && uVar3 != 0; uVar3 >>= chShift, iVar4++) { - u32 uVar2 = uVar3 & 3; + for (; iVar4 < numChild && uVar1 != 0; uVar1 >>= JAUStdSoundTableType::STRM_CH_SHIFT, iVar4++) { + u32 uVar2 = uVar1 & 3; if (uVar2 != 0) { JAISoundChild* child = param_2->getChild(iVar4); if (child != NULL) { @@ -365,21 +272,18 @@ void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const { } } } -#else -void Z2SoundInfo::getStreamInfo(JAISoundID param_0, JAIStream* param_1) const { - // NONMATCHING -} -#endif /* 802BBA10-802BBA88 2B6350 0078+00 1/1 0/0 0/0 .text * getStreamFilePath__11Z2SoundInfoF10JAISoundID */ const char* Z2SoundInfo::getStreamFilePath(JAISoundID param_1) { JUT_ASSERT(387, isValid()); + JAUSoundTableItem* data; + const void* resource; switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1) & 0xf0) { case 0x70: - JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1); + data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1); JUT_ASSERT(394, data); - const void* resource = JASGlobalInstance<JAUSoundTable>::getInstance()->getResource(); + resource = JASGlobalInstance<JAUSoundTable>::getInstance()->getResource(); JUT_ASSERT(398, resource); return JAUStdSoundTableType::StringOffset::getString(resource, data->field_0x4); default: @@ -409,14 +313,6 @@ int Z2SoundInfo::getSwBit(JAISoundID param_1) const { return 0xffffffff; } -/* ############################################################################################## */ -/* 80455A98-80455AA0 004098 0004+04 1/1 0/0 0/0 .sdata2 @1070 */ -SECTION_SDATA2 static f32 lit_1070[1 + 1 /* padding */] = { - 1.0f / 127.0f, - /* padding */ - 0.0f, -}; - /* 802BBB48-802BBBE0 2B6488 0098+00 3/3 0/0 0/0 .text * getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound */ void Z2SoundInfo::getSoundInfo_(JAISoundID param_1, JAISound* param_2) const { @@ -427,30 +323,3 @@ void Z2SoundInfo::getSoundInfo_(JAISoundID param_1, JAISound* param_2) const { param_2->getProperty().field_0x0 = (1.0f / 127.0f) * data->field_0x1; } } - - -/* 802BBBE0-802BBCBC 2B6520 00DC+00 2/1 0/0 0/0 .text __dt__11Z2SoundInfoFv */ -// Z2SoundInfo::~Z2SoundInfo() {} - -/* 802BBCBC-802BBCC4 2B65FC 0008+00 1/0 0/0 0/0 .text - * @4@getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID */ -static void func_802BBCBC() { - // NONMATCHING -} - -/* 802BBCC4-802BBCCC 2B6604 0008+00 1/0 0/0 0/0 .text @4@getAudibleSw__11Z2SoundInfoCF10JAISoundID - */ -static void func_802BBCC4() { - // NONMATCHING -} - -/* 802BBCCC-802BBCD4 2B660C 0008+00 1/0 0/0 0/0 .text @8@__dt__11Z2SoundInfoFv */ -static void func_802BBCCC() { - // NONMATCHING -} - -/* 802BBCD4-802BBCDC 2B6614 0008+00 1/0 0/0 0/0 .text - * @8@getStreamFileEntry__11Z2SoundInfoF10JAISoundID */ -static void func_802BBCD4() { - // NONMATCHING -} diff --git a/src/Z2AudioLib/Z2SoundMgr.cpp b/src/Z2AudioLib/Z2SoundMgr.cpp index 6c8668cf9f..5d1f8952df 100644 --- a/src/Z2AudioLib/Z2SoundMgr.cpp +++ b/src/Z2AudioLib/Z2SoundMgr.cpp @@ -13,131 +13,9 @@ #include "JSystem/JAudio2/JASCalc.h" #include "JSystem/JAudio2/JASDriverIF.h" #include "JSystem/JAudio2/JAUSectionHeap.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void seqCallback__FP8JASTrackUs(); -extern "C" void __ct__10Z2SoundMgrFv(); -extern "C" void func_802A9EE8(); -extern "C" void calc__10Z2SoundMgrFv(); -extern "C" void setIIR__10Z2SoundMgrFP8JAISoundPCs(); -extern "C" void setFilterOff__10Z2SoundMgrFP8JAISound(); -extern "C" void resetFilterAll__10Z2SoundMgrFv(); -extern "C" void mixOut__10Z2SoundMgrFv(); -extern "C" void framework__10Z2SoundMgrFv(); -extern "C" void pauseAllGameSound__10Z2SoundMgrFb(); -extern "C" void stopSoundID__10Z2SoundMgrF10JAISoundID(); -extern "C" void stopSync__10Z2SoundMgrFv(); -extern "C" void stop__10Z2SoundMgrFv(); -extern "C" void initParams__10Z2SoundMgrFv(); -extern "C" void multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf(); -extern "C" void isPlayingSoundID__10Z2SoundMgrF10JAISoundID(); -extern "C" extern char const* const Z2SoundMgr__stringBase0; void dComIfGs_staffroll_next_go(); -// -// External References: -// - -extern "C" void dComIfGs_staffroll_next_go__Fv(); -extern "C" void setFIR__8JASTrackFPCs(); -extern "C" void setIIR__8JASTrackFPCs(); -extern "C" void writePort__8JASTrackFUlUs(); -extern "C" void waitSubFrame__9JASDriverFv(); -extern "C" void pause__16JAISeCategoryMgrFb(); -extern "C" void __ct__8JAISeMgrFb(); -extern "C" void stop__8JAISeMgrFv(); -extern "C" void stopSoundID__8JAISeMgrF10JAISoundID(); -extern "C" void initParams__8JAISeMgrFv(); -extern "C" void calc__8JAISeMgrFv(); -extern "C" void mixOut__8JAISeMgrFv(); -extern "C" void func_802A0768(); -extern "C" void getNumActiveSe__8JAISeMgrCFv(); -extern "C" void __ct__9JAISeqMgrFb(); -extern "C" void func_802A1B48(); -extern "C" void calc__9JAISeqMgrFv(); -extern "C" void stop__9JAISeqMgrFv(); -extern "C" void stopSoundID__9JAISeqMgrF10JAISoundID(); -extern "C" void mixOut__9JAISeqMgrFv(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void __ct__12JAIStreamMgrFb(); -extern "C" void func_802A3C3C(); -extern "C" void calc__12JAIStreamMgrFv(); -extern "C" void stop__12JAIStreamMgrFv(); -extern "C" void stop__12JAIStreamMgrFUl(); -extern "C" void stopSoundID__12JAIStreamMgrF10JAISoundID(); -extern "C" void mixOut__12JAIStreamMgrFv(); -extern "C" void loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb(); -extern "C" void releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv(); -extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl(); -extern "C" void bgmStart__8Z2SeqMgrFUlUll(); -extern "C" void changeBgmStatus__8Z2SeqMgrFl(); -extern "C" void onVariantBgmJumpEnd__8Z2SeqMgrFb(); -extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff(); -extern "C" void onFieldBgmJumpStart__8Z2SeqMgrFv(); -extern "C" void onFieldBgmJumpEnd__8Z2SeqMgrFv(); -extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID(); -extern "C" void speakOneWord__12Z2SpeechMgr2Fb(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024]; -extern "C" extern u8 data_80450B4C[4]; -extern "C" extern u8 data_80450B70[4]; -extern "C" extern u8 data_80450B80[4]; -extern "C" extern u8 data_80450B84[4]; -extern "C" extern u8 data_80450B88[4]; -extern "C" extern u8 data_80450CC0[4 + 4 /* padding */]; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C9D18-803C9D70 -00001 0058+00 1/1 0/0 0/0 .data @3690 */ -SECTION_DATA static void* lit_3690[22] = { - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x40), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x7C), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x88), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x94), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xA4), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xB4), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xC4), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1AC), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1BC), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1CC), - (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x148), -}; - -/* 80455838-8045583C 003E38 0004+00 5/5 0/0 0/0 .sdata2 @3688 */ -SECTION_SDATA2 static f32 lit_3688 = 1.0f; - -/* 8045583C-80455840 003E3C 0004+00 1/1 0/0 0/0 .sdata2 @3689 */ -SECTION_SDATA2 static f32 lit_3689 = -1.0f; - /* 802A9BC8-802A9E80 2A4508 02B8+00 1/0 1/1 0/0 .text seqCallback__FP8JASTrackUs */ u16 seqCallback(JASTrack* i_track, u16 param_1) { JSUList<JAISe>* list; @@ -221,20 +99,7 @@ u16 seqCallback(JASTrack* i_track, u16 param_1) { return 0; } - -/* ############################################################################################## */ -/* 803C9D70-803C9D80 026E90 000C+04 1/1 1/1 0/0 .data __vt__10Z2SoundMgr */ -SECTION_DATA extern void* __vt__10Z2SoundMgr[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)func_802A9EE8, - /* padding */ - NULL, -}; - /* 802A9E80-802A9EE8 2A47C0 0068+00 0/0 1/1 0/0 .text __ct__10Z2SoundMgrFv */ -#ifdef NONMATCHING -// matches but generates an extra weak function Z2SoundMgr::Z2SoundMgr() : JASGlobalInstance<Z2SoundMgr>(this), mSeMgr(true), @@ -243,37 +108,6 @@ Z2SoundMgr::Z2SoundMgr() : { mSoundID.setAnonymous(); } -#else -Z2SoundMgr::Z2SoundMgr() : JASGlobalInstance<Z2SoundMgr>(this), - mSeMgr(true), - mSeqMgr(true), - mStreamMgr(true) { - // NONMATCHING -} -#endif - -/* ############################################################################################## */ -/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039B9D0 = "Unknown Sound-Type id :%08x\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039B9ED = "\0\0"; -#pragma pop - -/* 80455840-80455844 003E40 0004+00 1/1 0/0 0/0 .sdata2 @3904 */ -SECTION_SDATA2 static f32 lit_3904 = 3.0f / 10.0f; - -/* 80455844-80455848 003E44 0004+00 3/3 0/0 0/0 .sdata2 @3905 */ -SECTION_SDATA2 static u8 lit_3905[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80455848-80455850 003E48 0008+00 2/2 0/0 0/0 .sdata2 @3909 */ -SECTION_SDATA2 static f64 lit_3909 = 4503599627370496.0 /* cast u32 to float */; /* 802A9EE8-802AA1B0 2A4828 02C8+00 1/0 0/0 0/0 .text * startSound__10Z2SoundMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */ @@ -289,7 +123,7 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle, case 1: if (i_soundID == Z2BGM_LUTERA_DEMO) { Z2GetSeqMgr()->bgmStart(Z2BGM_LUTERA2, 0, 0); - Z2GetSeqMgr()->i_unMuteSceneBgm(0); + Z2GetSeqMgr()->unMuteSceneBgm(0); Z2GetSeqMgr()->changeBgmStatus(0); return mSeMgr.startSound(Z2SE_NO_SOUND, i_handle, i_pos); } else { @@ -335,7 +169,7 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle, /* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */ -#ifdef NONMATCHING +// NONMATCHING extra load void Z2SoundMgr::calc() { mSeMgr.calc(); if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) { @@ -347,11 +181,6 @@ void Z2SoundMgr::calc() { mSeqMgr.calc(); mStreamMgr.calc(); } -#else -void Z2SoundMgr::calc() { - // NONMATCHING -} -#endif /* 802AA270-802AA33C 2A4BB0 00CC+00 1/1 2/2 0/0 .text setIIR__10Z2SoundMgrFP8JAISoundPCs */ @@ -519,14 +348,6 @@ void Z2SoundMgr::stop() { mStreamMgr.stop(); } -/* ############################################################################################## */ -/* 80455850-80455858 003E50 0004+04 1/1 0/0 0/0 .sdata2 @4313 */ -SECTION_SDATA2 static f32 lit_4313[1 + 1 /* padding */] = { - 0.5f, - /* padding */ - 0.0f, -}; - /* 802AA908-802AA9E8 2A5248 00E0+00 0/0 1/1 0/0 .text initParams__10Z2SoundMgrFv */ void Z2SoundMgr::initParams() { mSeMgr.initParams(); @@ -537,7 +358,7 @@ void Z2SoundMgr::initParams() { /* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text * multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */ -#ifdef NONMATCHING +// NONMATCHING extra load void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) { if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) { JSUList<JAISe>* list = @@ -549,18 +370,13 @@ void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) { } } } -#else -void Z2SoundMgr::multiVolumeSoundID(JAISoundID param_0, f32 param_1) { - // NONMATCHING -} -#endif /* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID */ -#ifdef NONMATCHING +// NONMATCHING extra load bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) { if (i_soundID.isAnonymous()) { - return 0; + return false; } if (Z2GetSoundInfo()->getSoundType(i_soundID) == 0) { JSUList<JAISe>* list = @@ -573,10 +389,5 @@ bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) { } return false; } -#else -bool Z2SoundMgr::isPlayingSoundID(JAISoundID param_0) { - // NONMATCHING -} -#endif -/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
\ No newline at end of file +/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/Z2AudioLib/Z2SoundObjMgr.cpp b/src/Z2AudioLib/Z2SoundObjMgr.cpp index 74723562aa..a4bfb2bc9c 100644 --- a/src/Z2AudioLib/Z2SoundObjMgr.cpp +++ b/src/Z2AudioLib/Z2SoundObjMgr.cpp @@ -8,10 +8,8 @@ #include "Z2AudioLib/Z2SeqMgr.h" #include "Z2AudioLib/Z2Calc.h" #include "Z2AudioLib/Z2SceneMgr.h" -#include "dol2asm.h" /* 802BF920-802BF980 2BA260 0060+00 0/0 1/1 0/0 .text __ct__13Z2SoundObjMgrFv */ -// order wrong because this needs to inherit from JASGlobalInstance<T> Z2SoundObjMgr::Z2SoundObjMgr() : JASGlobalInstance<Z2SoundObjMgr>(this) { mGhostEnemyState = 0; mTwilightBattle = 0; @@ -28,122 +26,96 @@ void Z2SoundObjMgr::setForceBattleArea(bool forceBattle, u16 param_1, u16 param_ mEnemyArea.field_0x6 = param_3; } -struct EnemyInfo { - u8 field_0x0; - u8 field_0x1; - u8 field_0x2; - u8 field_0x3; - u8 field_0x4; - u8 field_0x5; - u8 field_0x6; - u8 field_0x7; - u32 field_0x8; - u32 field_0xc; -}; - -/* 803CAD70-803CB170 027E90 0400+00 3/3 0/0 0/0 .data mEnemyInfo */ -SECTION_DATA static EnemyInfo mEnemyInfo[64] = { - {0x44, 0x75, 0x6D, 0x6D, 0x79, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x31, 0x00, 0x00, 0x00, 0x00, 0x010002BC, 0x04B007D0}, - {0x45, 0x5F, 0x79, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x79, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x79, 0x67, 0x00, 0x00, 0x00, 0x00, 0x0100012C, 0x01F402BC}, - {0x45, 0x5F, 0x79, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x79, 0x64, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x038405DC}, - {0x45, 0x5F, 0x72, 0x64, 0x79, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x79, 0x6D, 0x62, 0x00, 0x00, 0x00, 0x0000000A, 0x0014001E}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x77, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x64, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x6B, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x74, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x010002BC, 0x05DC09C4}, - {0x45, 0x5F, 0x74, 0x6B, 0x32, 0x00, 0x00, 0x00, 0x010002BC, 0x05DC09C4}, - {0x45, 0x5F, 0x63, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x64, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x53, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x64, 0x62, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x03840708}, - {0x45, 0x5F, 0x6B, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x010000C8, 0x01900258}, - {0x45, 0x5F, 0x53, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x62, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x48, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x68, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x000001F4, 0x03200514}, - {0x45, 0x5F, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x6F, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x66, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x66, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x62, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x6D, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x032005DC}, - {0x45, 0x5F, 0x6E, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC044C}, - {0x45, 0x5F, 0x70, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x72, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x67, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC0384}, - {0x45, 0x5F, 0x68, 0x62, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x038405DC}, - {0x45, 0x5F, 0x67, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01000640, 0x0BB80FA0}, - {0x45, 0x5F, 0x6D, 0x73, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC044C}, - {0x45, 0x5F, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x62, 0x69, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC0384}, - {0x45, 0x5F, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x64, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x67, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x6D, 0x32, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x73, 0x77, 0x00, 0x00, 0x00, 0x00, 0x01000190, 0x025805DC}, - {0x45, 0x5F, 0x72, 0x64, 0x62, 0x00, 0x00, 0x00, 0x010001F4, 0x03E805DC}, - {0x45, 0x5F, 0x6B, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x7A, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x67, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x42, 0x5F, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x000003E8, 0x07D00FA0}, - {0x45, 0x5F, 0x6D, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x45, 0x5F, 0x7A, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, - {0x42, 0x5F, 0x74, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000}, -}; - /* 80455B80-80455B84 004180 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */ -SECTION_SDATA2 static u32 sAreaDefault = 0x010002BC; - -/* 80455B84-80455B88 004184 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455B84 = 0x044C05DC; +static Z2EnemyArea const sAreaDefault = {true, 700, 1100, 1500}; /* 80455B88-80455B8C 004188 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */ -SECTION_SDATA2 static u32 sAreaFloating = 0x000002BC; - -/* 80455B8C-80455B90 00418C 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455B8C = 0x044C05DC; +static Z2EnemyArea const sAreaFloating = {false, 700, 1100, 1500}; /* 80455B90-80455B94 004190 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */ -SECTION_SDATA2 static u32 sAreaWide = 0x010002BC; - -/* 80455B94-80455B98 004194 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455B94 = 0x05DC0CE4; +static Z2EnemyArea const sAreaWide = {true, 700, 1500, 3300}; /* 80455B98-80455B9C 004198 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */ -SECTION_SDATA2 static u32 sAreaWideFloating = 0x000002BC; - -/* 80455B9C-80455BA0 00419C 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455B9C = 0x05DC0CE4; +static Z2EnemyArea const sAreaWideFloating = {false, 700, 1500, 3300}; /* 80455BA0-80455BA4 0041A0 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */ -SECTION_SDATA2 static u32 sAreaSmall = 0x0100012C; - -/* 80455BA4-80455BA8 0041A4 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BA4 = 0x02BC03E8; +static Z2EnemyArea const sAreaSmall = {true, 300, 700, 1000}; /* 80455BA8-80455BAC 0041A8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */ -SECTION_SDATA2 static u32 sAreaSmallFloating = 0x000001F4; +static Z2EnemyArea const sAreaSmallFloating = {false, 500, 800, 1200}; -/* 80455BAC-80455BB0 0041AC 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80455BAC = 0x032004B0; +struct EnemyInfo { + char mName[8]; + Z2EnemyArea mEnemyArea; +}; + +/* 803CAD70-803CB170 027E90 0400+00 3/3 0/0 0/0 .data mEnemyInfo */ +static EnemyInfo mEnemyInfo[64] = { + {"Dummy", sAreaDefault}, + {"E_s1", {true, 700, 1200, 2000}}, + {"E_yk", sAreaSmallFloating}, + {"E_yr", sAreaWideFloating}, + {"E_yg", {true, 300, 500, 700}}, + {"E_yc", sAreaWideFloating}, + {"E_yd", {true, 500, 900, 1500}}, + {"E_rdy", sAreaDefault}, + {"E_ymb", {false, 10, 20, 30}}, + {"", sAreaDefault}, + {"E_wb", sAreaDefault}, + {"E_rd", sAreaDefault}, + {"E_dn", sAreaDefault}, + {"E_kr", sAreaWideFloating}, + {"E_st", sAreaDefault}, + {"E_tk", {true, 700, 1500, 2500}}, + {"E_tk2", {true, 700, 1500, 2500}}, + {"E_cr", sAreaSmall}, + {"E_df", sAreaDefault}, + {"E_fs", sAreaDefault}, + {"E_SB", sAreaDefault}, + {"E_PM", sAreaDefault}, + {"E_db", {true, 500, 900, 1800}}, + {"E_kg", sAreaSmall}, + {"E_sh", sAreaDefault}, + {"E_sf", sAreaDefault}, + {"E_bs", {true, 200, 400, 600}}, + {"E_SM", sAreaDefault}, + {"E_ba", sAreaSmallFloating}, + {"E_bu", sAreaFloating}, + {"E_HM", sAreaDefault}, + {"E_ge", sAreaFloating}, + {"E_hz", {false, 500, 800, 1300}}, + {"E_ws", sAreaSmallFloating}, + {"E_oc", sAreaDefault}, + {"E_fz", sAreaDefault}, + {"E_fb", sAreaDefault}, + {"E_bg", sAreaSmall}, + {"E_mm", {true, 500, 800, 1500}}, + {"E_nz", {true, 500, 700, 1100}}, + {"E_po", sAreaWide}, + {"E_rb", sAreaDefault}, + {"E_sg", {true, 500, 700, 900}}, + {"E_hb", {true, 500, 900, 1500}}, + {"E_gb", {true, 1600, 3000, 4000}}, + {"E_ms", {true, 500, 700, 1100}}, + {"E_dd", sAreaDefault}, + {"E_bi", {true, 500, 700, 900}}, + {"E_tt", sAreaSmallFloating}, + {"E_ai", sAreaDefault}, + {"E_dk", sAreaSmall}, + {"E_ww", sAreaWide}, + {"E_gi", sAreaDefault}, + {"E_sm2", sAreaDefault}, + {"E_sw", {true, 400, 600, 1500}}, + {"E_rdb", {true, 500, 1000, 1500}}, + {"E_kk", sAreaDefault}, + {"E_hp", sAreaDefault}, + {"E_zh", sAreaDefault}, + {"E_gm", sAreaSmall}, + {"B_GG", {false, 1000, 2000, 4000}}, + {"E_mf", sAreaDefault}, + {"E_zm", sAreaDefault}, + {"B_tn", sAreaDefault}, +}; /* 802BF994-802BFFEC 2BA2D4 0658+00 1/0 1/1 0/0 .text searchEnemy__13Z2SoundObjMgrFv */ void Z2SoundObjMgr::searchEnemy() { @@ -157,7 +129,7 @@ void Z2SoundObjMgr::searchEnemy() { bool bVar7 = false; bool local_96 = false; bool iVar8 = false; - if (Z2GetSeqMgr()->getMainBgmID() == 0x1000041) { + if (Z2GetSeqMgr()->getMainBgmID() == Z2BGM_HOLY_FOREST) { iVar8 = true; } u8 iVar16 = 0; @@ -233,13 +205,12 @@ void Z2SoundObjMgr::searchEnemy() { if (iVar10 != NULL) { Vec* iVar14 = Z2GetLink()->getCurrentPos(); if (iVar14 != NULL) { - Z2EnemyArea local_88; - __memcpy(&local_88, &mEnemyInfo[enemyId].field_0x8, 8); + Z2EnemyArea local_88 = mEnemyInfo[enemyId].mEnemyArea; if (mForceBattle) { local_88 = mEnemyArea; } f32 fVar2 = 2.0f; - if (local_88.field_0x0 == 1) { + if (local_88.field_0x0 == true) { fVar2 = 4.0f; } Vec local_80 = {0.0f, 0.0f, 0.0f}; @@ -369,7 +340,7 @@ void Z2SoundObjMgr::setGhostEnemyState(u8 p1) { u8 Z2SoundObjMgr::getEnemyID(char const* param_0, JSULink<Z2CreatureEnemy>* param_1) { if (param_0 != NULL) { for (u8 uVar2 = 0; uVar2 < 0x40; uVar2++) { - if (strcmp(param_0, (char*)&mEnemyInfo[(u32)uVar2].field_0x0) == 0) { + if (strcmp(param_0, mEnemyInfo[(u32)uVar2].mName) == 0) { append(param_1); return uVar2; } @@ -431,13 +402,3 @@ bool Z2SoundObjMgr::removeEnemy(JSULink<Z2CreatureEnemy>* param_0) { u8 Z2SoundObjMgr::isTwilightBattle() { return mTwilightBattle; } - -/* 802C01EC-802C03C8 2BAB2C 01DC+00 0/0 1/0 0/0 .text __sinit_Z2SoundObjMgr_cpp */ -void __sinit_Z2SoundObjMgr_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802C01EC, __sinit_Z2SoundObjMgr_cpp); -#pragma pop
\ No newline at end of file diff --git a/src/Z2AudioLib/Z2SpeechMgr2.cpp b/src/Z2AudioLib/Z2SpeechMgr2.cpp index cf0410558f..02a77b8c1c 100644 --- a/src/Z2AudioLib/Z2SpeechMgr2.cpp +++ b/src/Z2AudioLib/Z2SpeechMgr2.cpp @@ -6,16 +6,15 @@ #include "Z2AudioLib/Z2SpeechMgr2.h" #include "Z2AudioLib/Z2SceneMgr.h" #include "Z2AudioLib/Z2SeMgr.h" -#include "JSystem/J3DU/J3DUD.h" -#include "dol2asm.h" +#include "JSystem/JMath/JMath.h" // // Types: // typedef struct { - u8** field_0x0; - u8** field_0x4; + const u8* field_0x0; + const u8* field_0x4; u8 field_0x8; u8 field_0x9; u8 field_0xa; @@ -25,133 +24,42 @@ typedef struct { struct Z2MdnPrm { static u8 const sReply[100]; - static u8 const sReplyTail[10 + 2 /* padding */]; + static u8 const sReplyTail[10]; static u8 const sJoke[100]; - static u8 const sJokeTail[10 + 2 /* padding */]; + static u8 const sJokeTail[10]; static u8 const sSexy[100]; - static u8 const sSexyTail[10 + 2 /* padding */]; + static u8 const sSexyTail[10]; static u8 const sRidicule[100]; - static u8 const sRidiculeTail[10 + 2 /* padding */]; + static u8 const sRidiculeTail[10]; static u8 const sBoring[108]; - static u8 const sIrritated[94 + 2 /* padding */]; - static u8 const sIrritatedTail[10 + 2 /* padding */]; - static u8 const sOrder[114 + 2 /* padding */]; - static u8 const sResent[106 + 2 /* padding */]; - static u8 const sCheerful[106 + 2 /* padding */]; - static u8 const sConfused[106 + 2 /* padding */]; + static u8 const sIrritated[94]; + static u8 const sIrritatedTail[10]; + static u8 const sOrder[114]; + static u8 const sResent[106]; + static u8 const sCheerful[106]; + static u8 const sConfused[106]; static u8 const sHostility[104]; - static u8 const sTired[106 + 2 /* padding */]; - static u8 const sSerious[106 + 2 /* padding */]; + static u8 const sTired[106]; + static u8 const sSerious[106]; static u8 const sReplyb[84]; static u8 const sApologize[100]; - static u8 const sApologizeTail[9 + 3 /* padding */]; + static u8 const sApologizeTail[9]; static u8 const sDeside[100]; static u8 const sAfford[104]; static u8 const sAffordTail[12]; static sPrmStruct const sPrm[17]; - static u8 sBoringTail[6 + 2 /* padding */]; - static u8 sOrderTail[6 + 2 /* padding */]; - static u8 sResentTail[5 + 3 /* padding */]; - static u8 sCheerfulTail[8]; - static u8 sConfusedTail[5 + 3 /* padding */]; - static u8 sHostilityTail[7 + 1 /* padding */]; - static u8 sTiredTail[8]; - static u8 sSeriousTail[7 + 1 /* padding */]; - static u8 sReplybTail[7 + 1 /* padding */]; - static u8 sDesideTail[8]; + static u8 const sBoringTail[6]; + static u8 const sOrderTail[6]; + static u8 const sResentTail[5]; + static u8 const sCheerfulTail[8]; + static u8 const sConfusedTail[5]; + static u8 const sHostilityTail[7]; + static u8 const sTiredTail[8]; + static u8 const sSeriousTail[7]; + static u8 const sReplybTail[7]; + static u8 const sDesideTail[8]; }; -// -// Forward References: -// - -extern "C" void __ct__12Z2SpeechMgr2Fv(); -extern "C" void __dt__15Z2SpeechStarterFv(); -extern "C" void setString__12Z2SpeechMgr2FPCUssUcUs(); -extern "C" void setTextCount__12Z2SpeechMgr2Fs(); -extern "C" void speakOneWord__12Z2SpeechMgr2Fb(); -extern "C" void isNonVerbal__12Z2SpeechMgr2Fv(); -extern "C" void selectUnit__12Z2SpeechMgr2Fb(); -extern "C" void selectTail__12Z2SpeechMgr2Fv(); -extern "C" void framework__12Z2SpeechMgr2Fv(); -extern "C" void playOneShotVoice__12Z2SpeechMgr2FUcUsP3VecSc(); -extern "C" void isMidnaSpeak__12Z2SpeechMgr2Fv(); -extern "C" void __ct__15Z2SpeechStarterFv(); -extern "C" void func_802CCFF8(); -extern "C" u8 const sReply__8Z2MdnPrm[100]; -extern "C" u8 const sReplyTail__8Z2MdnPrm[10 + 2 /* padding */]; -extern "C" u8 const sJoke__8Z2MdnPrm[100]; -extern "C" u8 const sJokeTail__8Z2MdnPrm[10 + 2 /* padding */]; -extern "C" u8 const sSexy__8Z2MdnPrm[100]; -extern "C" u8 const sSexyTail__8Z2MdnPrm[10 + 2 /* padding */]; -extern "C" u8 const sRidicule__8Z2MdnPrm[100]; -extern "C" u8 const sRidiculeTail__8Z2MdnPrm[10 + 2 /* padding */]; -extern "C" u8 const sBoring__8Z2MdnPrm[108]; -extern "C" u8 const sIrritated__8Z2MdnPrm[94 + 2 /* padding */]; -extern "C" u8 const sIrritatedTail__8Z2MdnPrm[10 + 2 /* padding */]; -extern "C" u8 const sOrder__8Z2MdnPrm[114 + 2 /* padding */]; -extern "C" u8 const sResent__8Z2MdnPrm[106 + 2 /* padding */]; -extern "C" u8 const sCheerful__8Z2MdnPrm[106 + 2 /* padding */]; -extern "C" u8 const sConfused__8Z2MdnPrm[106 + 2 /* padding */]; -extern "C" u8 const sHostility__8Z2MdnPrm[104]; -extern "C" u8 const sTired__8Z2MdnPrm[106 + 2 /* padding */]; -extern "C" u8 const sSerious__8Z2MdnPrm[106 + 2 /* padding */]; -extern "C" u8 const sReplyb__8Z2MdnPrm[84]; -extern "C" u8 const sApologize__8Z2MdnPrm[100]; -extern "C" u8 const sApologizeTail__8Z2MdnPrm[9 + 3 /* padding */]; -extern "C" u8 const sDeside__8Z2MdnPrm[100]; -extern "C" u8 const sAfford__8Z2MdnPrm[104]; -extern "C" u8 const sAffordTail__8Z2MdnPrm[12]; -extern "C" void* const sPrm__8Z2MdnPrm[51]; -extern "C" u8 sBoringTail__8Z2MdnPrm[6 + 2 /* padding */]; -extern "C" u8 sOrderTail__8Z2MdnPrm[6 + 2 /* padding */]; -extern "C" u8 sResentTail__8Z2MdnPrm[5 + 3 /* padding */]; -extern "C" u8 sCheerfulTail__8Z2MdnPrm[8]; -extern "C" u8 sConfusedTail__8Z2MdnPrm[5 + 3 /* padding */]; -extern "C" u8 sHostilityTail__8Z2MdnPrm[7 + 1 /* padding */]; -extern "C" u8 sTiredTail__8Z2MdnPrm[8]; -extern "C" u8 sSeriousTail__8Z2MdnPrm[7 + 1 /* padding */]; -extern "C" u8 sReplybTail__8Z2MdnPrm[7 + 1 /* padding */]; -extern "C" u8 sDesideTail__8Z2MdnPrm[8]; - -// -// External References: -// - -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void releaseSound__14JAISoundHandleFv(); -extern "C" void stop__8JAISoundFv(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void movePitch__18JAISoundParamsMoveFfUl(); -extern "C" void moveFxMix__18JAISoundParamsMoveFfUl(); -extern "C" void movePan__18JAISoundParamsMoveFfUl(); -extern "C" void moveDolby__18JAISoundParamsMoveFfUl(); -extern "C" void __dt__15JAISoundStarterFv(); -extern "C" void __ct__14Z2SoundStarterFb(); -extern "C" void func_802AABF4(); -extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void getFogDensity__10Z2EnvSeMgrFv(); -extern "C" void __dl__FPv(); -extern "C" void __ct__Q25JMath13TRandom_fast_FUl(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */]; -extern "C" extern u8 data_80450B3C[4]; -extern "C" extern u8 data_80450B7C[4]; -extern "C" extern u8 data_80450B80[4]; -extern "C" extern u8 data_80450B84[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// - /* 802CBC60-802CBCEC 2C65A0 008C+00 0/0 1/1 0/0 .text __ct__12Z2SpeechMgr2Fv */ Z2SpeechMgr2::Z2SpeechMgr2() : JASGlobalInstance<Z2SpeechMgr2>(true), random(0) { field_0x3f8 = 0; @@ -165,159 +73,6 @@ Z2SpeechMgr2::Z2SpeechMgr2() : JASGlobalInstance<Z2SpeechMgr2>(true), random(0) } } -/* ############################################################################################## */ -/* 803CBD08-803CBED0 -00001 01C8+00 1/1 0/0 0/0 .data @3729 */ -SECTION_DATA static void* lit_3729[114] = { - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xB4), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xA8), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x9C), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x90), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x84), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x3C), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x30), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x3C), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x30), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x9C), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x6C), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x84), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x84), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x48), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x54), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x60), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x9C), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0x78), - (void*)(((char*)setString__12Z2SpeechMgr2FPCUssUcUs) + 0xC0), -}; - -/* 803CBED0-803CBF24 -00001 0054+00 1/1 0/0 0/0 .data @3839 */ -SECTION_DATA static void* lit_3839[21] = { - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x13C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x14C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x15C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x16C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x17C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x18C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x19C), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1AC), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1D8), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1BC), - (void*)(((char*)setTextCount__12Z2SpeechMgr2Fs) + 0x1CC), -}; - -/* 803CBF24-803CBF38 029044 0014+00 2/2 1/1 0/0 .data __vt__15Z2SpeechStarter */ -SECTION_DATA extern void* __vt__15Z2SpeechStarter[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__15Z2SpeechStarterFv, - (void*)func_802AABF4, (void*)func_802CCFF8, -}; - -/* 802CBCEC-802CBD88 2C662C 009C+00 1/0 0/0 0/0 .text __dt__15Z2SpeechStarterFv */ -//Z2SpeechStarter::~Z2SpeechStarter() {} - /* 802CBD88-802CBF60 2C66C8 01D8+00 1/0 1/1 0/0 .text setString__12Z2SpeechMgr2FPCUssUcUs */ void Z2SpeechMgr2::setString(u16 const* param_1, s16 param_2, u8 param_3, u16 param_4) { @@ -460,128 +215,56 @@ void Z2SpeechMgr2::setString(u16 const* param_1, s16 param_2, u8 param_3, u16 pa selectUnit(false); } - -/* ############################################################################################## */ /* 80455EE0-80455EE8 0044E0 0006+02 1/0 0/0 0/0 .sdata2 sBoringTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sBoringTail[6 + 2 /* padding */] = { - 0x92, - 0x58, - 0x59, - 0x5B, - 0x70, - 0x71, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sBoringTail[6] = { + 0x92, 0x58, 0x59, 0x5B, 0x70, 0x71, }; /* 80455EE8-80455EF0 0044E8 0006+02 1/0 0/0 0/0 .sdata2 sOrderTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sOrderTail[6 + 2 /* padding */] = { - 0x60, - 0xA8, - 0x5B, - 0x4E, - 0x5D, - 0x87, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sOrderTail[6] = { + 0x60, 0xA8, 0x5B, 0x4E, 0x5D, 0x87, }; /* 80455EF0-80455EF8 0044F0 0005+03 1/0 0/0 0/0 .sdata2 sResentTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sResentTail[5 + 3 /* padding */] = { - 0x4A, - 0x98, - 0x8A, - 0x7E, - 0x57, - /* padding */ - 0x00, - 0x00, - 0x00, +u8 const Z2MdnPrm::sResentTail[5] = { + 0x4A, 0x98, 0x8A, 0x7E, 0x57, }; /* 80455EF8-80455F00 0044F8 0008+00 1/0 0/0 0/0 .sdata2 sCheerfulTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sCheerfulTail[8] = { +u8 const Z2MdnPrm::sCheerfulTail[8] = { 0x60, 0x6D, 0x4D, 0x44, 0x9C, 0x54, 0x70, 0x7B, }; /* 80455F00-80455F08 004500 0005+03 1/0 0/0 0/0 .sdata2 sConfusedTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sConfusedTail[5 + 3 /* padding */] = { - 0x2C, - 0x42, - 0x4C, - 0x7C, - 0x49, - /* padding */ - 0x00, - 0x00, - 0x00, +u8 const Z2MdnPrm::sConfusedTail[5] = { + 0x2C, 0x42, 0x4C, 0x7C, 0x49, }; /* 80455F08-80455F10 004508 0007+01 1/0 0/0 0/0 .sdata2 sHostilityTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sHostilityTail[7 + 1 /* padding */] = { - 0x97, - 0x67, - 0x94, - 0x6A, - 0x66, - 0x4F, - 0x6A, - /* padding */ - 0x00, +u8 const Z2MdnPrm::sHostilityTail[7] = { + 0x97, 0x67, 0x94, 0x6A, 0x66, 0x4F, 0x6A, }; /* 80455F10-80455F18 004510 0008+00 1/0 0/0 0/0 .sdata2 sTiredTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sTiredTail[8] = { +u8 const Z2MdnPrm::sTiredTail[8] = { 0x66, 0x6F, 0x3B, 0x7A, 0x49, 0x91, 0x5C, 0x6A, }; /* 80455F18-80455F20 004518 0007+01 1/0 0/0 0/0 .sdata2 sSeriousTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sSeriousTail[7 + 1 /* padding */] = { - 0x7B, - 0x69, - 0x4B, - 0x61, - 0x52, - 0x59, - 0x87, - /* padding */ - 0x00, +u8 const Z2MdnPrm::sSeriousTail[7] = { + 0x7B, 0x69, 0x4B, 0x61, 0x52, 0x59, 0x87, }; /* 80455F20-80455F28 004520 0007+01 1/0 0/0 0/0 .sdata2 sReplybTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sReplybTail[7 + 1 /* padding */] = { - 0x4F, - 0x4A, - 0xA2, - 0x4F, - 0x65, - 0x98, - 0x5C, - /* padding */ - 0x00, +u8 const Z2MdnPrm::sReplybTail[7] = { + 0x4F, 0x4A, 0xA2, 0x4F, 0x65, 0x98, 0x5C, }; /* 80455F28-80455F30 004528 0008+00 1/0 0/0 0/0 .sdata2 sDesideTail__8Z2MdnPrm */ -SECTION_SDATA2 u8 Z2MdnPrm::sDesideTail[8] = { +u8 const Z2MdnPrm::sDesideTail[8] = { 0x64, 0x2E, 0x4A, 0x57, 0x80, 0x48, 0x7C, 0x5F, }; -/* 80455F30-80455F34 004530 0004+00 2/2 0/0 0/0 .sdata2 @3836 */ -SECTION_SDATA2 static u8 lit_3836[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80455F34-80455F38 004534 0004+00 6/6 0/0 0/0 .sdata2 @3837 */ -SECTION_SDATA2 static f32 lit_3837 = 1.0f; - -/* 80455F38-80455F3C 004538 0004+00 4/4 0/0 0/0 .sdata2 @3838 */ -SECTION_SDATA2 static f32 lit_3838 = -1.0f; - /* 802CBF60-802CC190 2C68A0 0230+00 1/0 2/2 0/0 .text setTextCount__12Z2SpeechMgr2Fs */ void Z2SpeechMgr2::setTextCount(s16 param_0) { if (field_0x3fe != 0x63) { @@ -646,14 +329,6 @@ void Z2SpeechMgr2::setTextCount(s16 param_0) { } } - -/* ############################################################################################## */ -/* 80455F3C-80455F40 00453C 0004+00 2/2 0/0 0/0 .sdata2 @3885 */ -SECTION_SDATA2 static f32 lit_3885 = 127.0f; - -/* 80455F40-80455F48 004540 0008+00 2/2 0/0 0/0 .sdata2 @3887 */ -SECTION_SDATA2 static f64 lit_3887 = 4503601774854144.0 /* cast s32 to float */; - /* 802CC190-802CC2FC 2C6AD0 016C+00 1/1 1/1 0/0 .text speakOneWord__12Z2SpeechMgr2Fb */ void Z2SpeechMgr2::speakOneWord(bool param_0) { if (Z2GetSceneMgr()->isSceneExist() && (field_0x3fe == 1 || field_0x3fe == 2) && @@ -766,7 +441,7 @@ bool Z2SpeechMgr2::isNonVerbal() { } /* 8039C260-8039C2C4 0288C0 0064+00 1/0 0/0 0/0 .rodata sReply__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sReply[100] = { +u8 const Z2MdnPrm::sReply[100] = { 0x6A, 0x8A, 0x50, 0x5F, 0x53, 0x37, 0x37, 0x4F, 0x4F, 0x5E, 0xAA, 0x46, 0x52, 0x5A, 0x5A, 0x4F, 0x4F, 0x45, 0x45, 0x56, 0x64, 0x79, 0x79, 0x79, 0x87, 0x95, 0x95, 0x89, 0x89, 0x4C, 0x4C, 0x4B, 0x52, 0x41, 0x41, 0x5B, 0x5F, 0x71, 0x53, 0x47, 0x89, 0x7D, 0x77, 0x88, 0x88, @@ -775,28 +450,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sReply[100] = { 0x5D, 0x60, 0x63, 0x63, 0x54, 0x3E, 0x38, 0x38, 0x39, 0x35, 0x41, 0x41, 0x41, 0x41, 0x56, 0x71, 0x85, 0x85, 0xA2, 0xA2, 0x52, 0x52, 0x5C, 0x5C, 0x75, }; -COMPILER_STRIP_GATE(0x8039C260, &Z2MdnPrm::sReply); /* 8039C2C4-8039C2D0 028924 000A+02 1/0 0/0 0/0 .rodata sReplyTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sReplyTail[10 + 2 /* padding */] = { - 0x5E, - 0x7F, - 0x68, - 0x39, - 0x56, - 0x75, - 0x47, - 0x71, - 0x7D, - 0x33, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sReplyTail[10] = { + 0x5E, 0x7F, 0x68, 0x39, 0x56, 0x75, 0x47, 0x71, 0x7D, 0x33, }; -COMPILER_STRIP_GATE(0x8039C2C4, &Z2MdnPrm::sReplyTail); /* 8039C2D0-8039C334 028930 0064+00 1/0 0/0 0/0 .rodata sJoke__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sJoke[100] = { +u8 const Z2MdnPrm::sJoke[100] = { 0x68, 0x57, 0x57, 0x55, 0x55, 0x51, 0x5B, 0x64, 0x6B, 0x7B, 0x7B, 0x5C, 0x77, 0x97, 0x8D, 0x97, 0x97, 0x8D, 0x66, 0x69, 0xA2, 0x5C, 0x87, 0x4F, 0x69, 0x5F, 0x5F, 0x83, 0x83, 0x82, 0x7F, 0x96, 0x96, 0xB0, 0x70, 0xA1, 0x6D, 0x6D, 0x6D, 0x59, 0x4C, 0x4B, 0x5A, 0x40, 0x4A, @@ -805,28 +466,13 @@ SECTION_RODATA u8 const Z2MdnPrm::sJoke[100] = { 0x64, 0x60, 0xB1, 0x6C, 0x6D, 0x6D, 0x7E, 0x7A, 0x97, 0x97, 0x99, 0xA5, 0x89, 0x90, 0xA4, 0x45, 0x45, 0x29, 0x4C, 0x4B, 0x64, 0x64, 0x60, 0x5C, 0xB1, }; -COMPILER_STRIP_GATE(0x8039C2D0, &Z2MdnPrm::sJoke); - /* 8039C334-8039C340 028994 000A+02 1/0 0/0 0/0 .rodata sJokeTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sJokeTail[10 + 2 /* padding */] = { - 0x51, - 0x97, - 0x60, - 0xB0, - 0x6F, - 0x5E, - 0x5A, - 0xA6, - 0x4F, - 0x4F, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sJokeTail[10] = { + 0x51, 0x97, 0x60, 0xB0, 0x6F, 0x5E, 0x5A, 0xA6, 0x4F, 0x4F, }; -COMPILER_STRIP_GATE(0x8039C334, &Z2MdnPrm::sJokeTail); /* 8039C340-8039C3A4 0289A0 0064+00 1/0 0/0 0/0 .rodata sSexy__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sSexy[100] = { +u8 const Z2MdnPrm::sSexy[100] = { 0x5E, 0x60, 0x5F, 0x63, 0x63, 0x72, 0x72, 0x78, 0x4D, 0x7A, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x59, 0x59, 0x7A, 0x7A, 0xA5, 0x90, 0x8D, 0x86, 0x62, 0x72, 0x79, 0x79, 0x86, 0x7F, 0x8B, 0x85, 0x7B, 0x7B, 0x5E, 0x5E, 0x6D, 0x6D, 0x88, 0x5F, 0xA3, 0xA3, 0x95, 0x95, 0x7F, 0x79, @@ -835,28 +481,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sSexy[100] = { 0x76, 0x79, 0x79, 0x5C, 0x6A, 0x90, 0xAB, 0x5C, 0x7D, 0x52, 0x49, 0x54, 0x57, 0x49, 0x55, 0x79, 0x65, 0x65, 0x4A, 0x5C, 0x78, 0x78, 0x8B, 0x8D, 0x7C, }; -COMPILER_STRIP_GATE(0x8039C340, &Z2MdnPrm::sSexy); /* 8039C3A4-8039C3B0 028A04 000A+02 1/0 0/0 0/0 .rodata sSexyTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sSexyTail[10 + 2 /* padding */] = { - 0x52, - 0x79, - 0x82, - 0xA5, - 0x62, - 0x86, - 0x3F, - 0x7D, - 0x57, - 0x7C, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sSexyTail[10] = { + 0x52, 0x79, 0x82, 0xA5, 0x62, 0x86, 0x3F, 0x7D, 0x57, 0x7C, }; -COMPILER_STRIP_GATE(0x8039C3A4, &Z2MdnPrm::sSexyTail); /* 8039C3B0-8039C414 028A10 0064+00 1/0 0/0 0/0 .rodata sRidicule__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sRidicule[100] = { +u8 const Z2MdnPrm::sRidicule[100] = { 0xA7, 0x5A, 0x5A, 0x52, 0x52, 0x85, 0x85, 0x8C, 0x63, 0x73, 0x73, 0x90, 0x50, 0x46, 0x74, 0x74, 0xA3, 0xA7, 0x41, 0x51, 0x58, 0x34, 0x34, 0x2A, 0x5A, 0x81, 0x5D, 0x42, 0x4B, 0x70, 0x70, 0xB1, 0xB1, 0xB1, 0xB1, 0x65, 0x6A, 0xB1, 0x54, 0xA8, 0xA8, 0x6B, 0x6C, 0x55, 0x55, @@ -865,28 +497,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sRidicule[100] = { 0x79, 0x79, 0x7C, 0x7C, 0x6C, 0x6C, 0x73, 0x73, 0x6E, 0x6E, 0x36, 0x3F, 0x3C, 0x56, 0x2D, 0x2D, 0x2D, 0x2D, 0x8C, 0x8C, 0x8B, 0x8B, 0x93, 0x93, 0x6E, }; -COMPILER_STRIP_GATE(0x8039C3B0, &Z2MdnPrm::sRidicule); /* 8039C414-8039C420 028A74 000A+02 1/0 0/0 0/0 .rodata sRidiculeTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sRidiculeTail[10 + 2 /* padding */] = { - 0x81, - 0x67, - 0x6D, - 0x8C, - 0x90, - 0x85, - 0xB1, - 0x4D, - 0x4F, - 0x6E, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sRidiculeTail[10] = { + 0x81, 0x67, 0x6D, 0x8C, 0x90, 0x85, 0xB1, 0x4D, 0x4F, 0x6E, }; -COMPILER_STRIP_GATE(0x8039C414, &Z2MdnPrm::sRidiculeTail); /* 8039C420-8039C48C 028A80 006C+00 1/0 0/0 0/0 .rodata sBoring__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sBoring[108] = { +u8 const Z2MdnPrm::sBoring[108] = { 0x8E, 0x9C, 0x9C, 0x5A, 0x5A, 0x52, 0x52, 0x5B, 0x5C, 0x56, 0x5C, 0x52, 0x52, 0x2D, 0x2D, 0x5B, 0x59, 0x56, 0x56, 0x56, 0x56, 0x6B, 0x6B, 0x58, 0x4C, 0x8E, 0x8E, 0x59, 0x61, 0x54, 0xA0, 0x4D, 0x5D, 0x59, 0x48, 0x30, 0x30, 0x5B, 0x5B, 0x5B, 0x4A, 0x64, 0x64, 0x7A, 0x7A, 0x92, 0x62, 0x62, @@ -895,594 +513,69 @@ SECTION_RODATA u8 const Z2MdnPrm::sBoring[108] = { 0x89, 0x5A, 0x5A, 0x63, 0x66, 0x5E, 0x5E, 0x71, 0x62, 0x55, 0x55, 0x85, 0x85, 0x5B, 0x5B, 0x5B, 0x5B, 0x5E, 0x70, 0x56, 0x56, 0x4C, 0x4C, 0x59, 0x59, 0x5B, 0x5B, 0x71, }; -COMPILER_STRIP_GATE(0x8039C420, &Z2MdnPrm::sBoring); /* 8039C48C-8039C4EC 028AEC 005E+02 1/0 0/0 0/0 .rodata sIrritated__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sIrritated[94 + 2 /* padding */] = { - 0x6C, - 0x91, - 0x67, - 0x8B, - 0x8B, - 0xA2, - 0xA2, - 0xAB, - 0x48, - 0x64, - 0x73, - 0x61, - 0x61, - 0x64, - 0x64, - 0x6D, - 0x60, - 0x7E, - 0x4A, - 0x55, - 0x6A, - 0x63, - 0x66, - 0x78, - 0x5C, - 0x5A, - 0x6E, - 0x79, - 0x75, - 0x62, - 0x62, - 0x57, - 0x85, - 0x3F, - 0x3C, - 0x83, - 0x83, - 0x9B, - 0x78, - 0x65, - 0x65, - 0x67, - 0x65, - 0x65, - 0x87, - 0x88, - 0x88, - 0x3D, - 0x4C, - 0x68, - 0x68, - 0x4D, - 0x5B, - 0x6E, - 0x6E, - 0x74, - 0x56, - 0x63, - 0x6B, - 0x8C, - 0x8C, - 0x93, - 0x93, - 0x4E, - 0x4E, - 0x69, - 0x77, - 0x75, - 0x75, - 0x71, - 0x79, - 0x4F, - 0x4F, - 0x6F, - 0x4E, - 0x42, - 0x71, - 0x75, - 0x5E, - 0x68, - 0xAD, - 0x6E, - 0x72, - 0x82, - 0x83, - 0x87, - 0x85, - 0x85, - 0x85, - 0x8E, - 0x60, - 0x6D, - 0x80, - 0x80, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sIrritated[94] = { + 0x6C, 0x91, 0x67, 0x8B, 0x8B, 0xA2, 0xA2, 0xAB, 0x48, 0x64, 0x73, 0x61, 0x61, 0x64, 0x64, 0x6D, + 0x60, 0x7E, 0x4A, 0x55, 0x6A, 0x63, 0x66, 0x78, 0x5C, 0x5A, 0x6E, 0x79, 0x75, 0x62, 0x62, 0x57, + 0x85, 0x3F, 0x3C, 0x83, 0x83, 0x9B, 0x78, 0x65, 0x65, 0x67, 0x65, 0x65, 0x87, 0x88, 0x88, 0x3D, + 0x4C, 0x68, 0x68, 0x4D, 0x5B, 0x6E, 0x6E, 0x74, 0x56, 0x63, 0x6B, 0x8C, 0x8C, 0x93, 0x93, 0x4E, + 0x4E, 0x69, 0x77, 0x75, 0x75, 0x71, 0x79, 0x4F, 0x4F, 0x6F, 0x4E, 0x42, 0x71, 0x75, 0x5E, 0x68, + 0xAD, 0x6E, 0x72, 0x82, 0x83, 0x87, 0x85, 0x85, 0x85, 0x8E, 0x60, 0x6D, 0x80, 0x80, }; -COMPILER_STRIP_GATE(0x8039C48C, &Z2MdnPrm::sIrritated); /* 8039C4EC-8039C4F8 028B4C 000A+02 1/0 0/0 0/0 .rodata sIrritatedTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sIrritatedTail[10 + 2 /* padding */] = { - 0x64, - 0x61, - 0x4E, - 0x91, - 0xA0, - 0x85, - 0x9B, - 0x67, - 0x6F, - 0x64, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sIrritatedTail[10] = { + 0x64, 0x61, 0x4E, 0x91, 0xA0, 0x85, 0x9B, 0x67, 0x6F, 0x64, }; -COMPILER_STRIP_GATE(0x8039C4EC, &Z2MdnPrm::sIrritatedTail); /* 8039C4F8-8039C56C 028B58 0072+02 1/0 0/0 0/0 .rodata sOrder__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sOrder[114 + 2 /* padding */] = { - 0x77, - 0x5F, - 0x5F, - 0x73, - 0x73, - 0x66, - 0x66, - 0x6B, - 0x6B, - 0x7A, - 0x7A, - 0x60, - 0x54, - 0x5F, - 0x5F, - 0x69, - 0x69, - 0x5A, - 0x86, - 0x84, - 0x84, - 0x96, - 0x96, - 0x94, - 0x94, - 0x8A, - 0x87, - 0x84, - 0x5A, - 0x2C, - 0x4E, - 0x52, - 0x52, - 0x52, - 0x52, - 0x51, - 0x51, - 0x6E, - 0x62, - 0x5E, - 0x6C, - 0xA3, - 0xA3, - 0x5B, - 0x62, - 0x63, - 0x63, - 0x66, - 0x66, - 0x51, - 0x51, - 0x5B, - 0x5B, - 0x78, - 0x78, - 0x8F, - 0x8F, - 0x83, - 0x61, - 0x7A, - 0x7A, - 0x4E, - 0x75, - 0x81, - 0x81, - 0x71, - 0x71, - 0x83, - 0x83, - 0x66, - 0x5D, - 0x5D, - 0x65, - 0x47, - 0x53, - 0x6D, - 0x6D, - 0x8C, - 0x8F, - 0x8F, - 0x8F, - 0x2C, - 0x2B, - 0x6A, - 0x6A, - 0x5C, - 0x5C, - 0x54, - 0x54, - 0x60, - 0xAC, - 0xA1, - 0x4E, - 0x5B, - 0x5B, - 0x5F, - 0x5F, - 0x79, - 0x4A, - 0x60, - 0x60, - 0x5A, - 0x5A, - 0x35, - 0x2E, - 0x48, - 0x48, - 0x69, - 0x69, - 0x6D, - 0x6D, - 0x94, - 0x94, - 0x97, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sOrder[114] = { + 0x77, 0x5F, 0x5F, 0x73, 0x73, 0x66, 0x66, 0x6B, 0x6B, 0x7A, 0x7A, 0x60, 0x54, 0x5F, 0x5F, + 0x69, 0x69, 0x5A, 0x86, 0x84, 0x84, 0x96, 0x96, 0x94, 0x94, 0x8A, 0x87, 0x84, 0x5A, 0x2C, + 0x4E, 0x52, 0x52, 0x52, 0x52, 0x51, 0x51, 0x6E, 0x62, 0x5E, 0x6C, 0xA3, 0xA3, 0x5B, 0x62, + 0x63, 0x63, 0x66, 0x66, 0x51, 0x51, 0x5B, 0x5B, 0x78, 0x78, 0x8F, 0x8F, 0x83, 0x61, 0x7A, + 0x7A, 0x4E, 0x75, 0x81, 0x81, 0x71, 0x71, 0x83, 0x83, 0x66, 0x5D, 0x5D, 0x65, 0x47, 0x53, + 0x6D, 0x6D, 0x8C, 0x8F, 0x8F, 0x8F, 0x2C, 0x2B, 0x6A, 0x6A, 0x5C, 0x5C, 0x54, 0x54, 0x60, + 0xAC, 0xA1, 0x4E, 0x5B, 0x5B, 0x5F, 0x5F, 0x79, 0x4A, 0x60, 0x60, 0x5A, 0x5A, 0x35, 0x2E, + 0x48, 0x48, 0x69, 0x69, 0x6D, 0x6D, 0x94, 0x94, 0x97, }; -COMPILER_STRIP_GATE(0x8039C4F8, &Z2MdnPrm::sOrder); /* 8039C56C-8039C5D8 028BCC 006A+02 1/0 0/0 0/0 .rodata sResent__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sResent[106 + 2 /* padding */] = { - 0x6F, - 0x5F, - 0x5F, - 0x66, - 0x66, - 0x66, - 0x66, - 0x55, - 0x55, - 0x55, - 0x55, - 0x4B, - 0x4B, - 0x6B, - 0x6B, - 0x86, - 0x86, - 0x4A, - 0x4A, - 0x6D, - 0x6D, - 0x6D, - 0x6D, - 0x8C, - 0x8C, - 0x84, - 0x84, - 0x64, - 0x64, - 0x6C, - 0x6C, - 0x92, - 0x92, - 0x6A, - 0x5F, - 0x6F, - 0x6F, - 0x62, - 0x62, - 0x62, - 0x75, - 0x5A, - 0x5A, - 0x5A, - 0x5A, - 0x60, - 0x60, - 0x6A, - 0x6A, - 0x76, - 0x76, - 0x6A, - 0x6A, - 0x7F, - 0x7F, - 0x9A, - 0x9A, - 0x98, - 0x56, - 0x5B, - 0x5B, - 0x6F, - 0x82, - 0x98, - 0x98, - 0x9B, - 0x9B, - 0x6E, - 0x6E, - 0x61, - 0x61, - 0x5C, - 0x5F, - 0x67, - 0x62, - 0x8A, - 0xA9, - 0x65, - 0x65, - 0x31, - 0x31, - 0x8C, - 0x8C, - 0x69, - 0x69, - 0x7E, - 0x67, - 0x67, - 0x5B, - 0x73, - 0x73, - 0x65, - 0x65, - 0x56, - 0x56, - 0x5E, - 0x5E, - 0xAA, - 0xAA, - 0x9E, - 0x9E, - 0x5A, - 0x5A, - 0x57, - 0x57, - 0x57, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sResent[106] = { + 0x6F, 0x5F, 0x5F, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x4B, 0x4B, 0x6B, 0x6B, 0x86, + 0x86, 0x4A, 0x4A, 0x6D, 0x6D, 0x6D, 0x6D, 0x8C, 0x8C, 0x84, 0x84, 0x64, 0x64, 0x6C, 0x6C, 0x92, + 0x92, 0x6A, 0x5F, 0x6F, 0x6F, 0x62, 0x62, 0x62, 0x75, 0x5A, 0x5A, 0x5A, 0x5A, 0x60, 0x60, 0x6A, + 0x6A, 0x76, 0x76, 0x6A, 0x6A, 0x7F, 0x7F, 0x9A, 0x9A, 0x98, 0x56, 0x5B, 0x5B, 0x6F, 0x82, 0x98, + 0x98, 0x9B, 0x9B, 0x6E, 0x6E, 0x61, 0x61, 0x5C, 0x5F, 0x67, 0x62, 0x8A, 0xA9, 0x65, 0x65, 0x31, + 0x31, 0x8C, 0x8C, 0x69, 0x69, 0x7E, 0x67, 0x67, 0x5B, 0x73, 0x73, 0x65, 0x65, 0x56, 0x56, 0x5E, + 0x5E, 0xAA, 0xAA, 0x9E, 0x9E, 0x5A, 0x5A, 0x57, 0x57, 0x57, }; -COMPILER_STRIP_GATE(0x8039C56C, &Z2MdnPrm::sResent); /* 8039C5D8-8039C644 028C38 006A+02 1/0 0/0 0/0 .rodata sCheerful__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sCheerful[106 + 2 /* padding */] = { - 0x64, - 0x6D, - 0x6D, - 0x6D, - 0x99, - 0x6D, - 0x40, - 0x51, - 0x51, - 0x6F, - 0x6F, - 0x66, - 0x66, - 0x60, - 0xA7, - 0xAF, - 0xB3, - 0x61, - 0x61, - 0xA7, - 0xA7, - 0x5E, - 0x8B, - 0x75, - 0x77, - 0x72, - 0x72, - 0x93, - 0x93, - 0x8B, - 0x8B, - 0x88, - 0x88, - 0x77, - 0x77, - 0x80, - 0x80, - 0x80, - 0x80, - 0x67, - 0x67, - 0x4D, - 0x4A, - 0x69, - 0x44, - 0xA1, - 0x64, - 0xA8, - 0xAE, - 0x85, - 0x85, - 0x8D, - 0x95, - 0xA9, - 0xA9, - 0x91, - 0x91, - 0x67, - 0x69, - 0x60, - 0x60, - 0x5E, - 0x5E, - 0x54, - 0x34, - 0x6B, - 0x63, - 0x4F, - 0x4F, - 0x46, - 0x46, - 0x55, - 0x6F, - 0x6A, - 0x6A, - 0x75, - 0x75, - 0x75, - 0x75, - 0x70, - 0x70, - 0x9F, - 0x9F, - 0x55, - 0x55, - 0x63, - 0x63, - 0x63, - 0x62, - 0x9C, - 0x9C, - 0xA8, - 0x85, - 0x65, - 0x65, - 0x65, - 0x65, - 0x70, - 0x6B, - 0x6B, - 0x6B, - 0x6D, - 0x6D, - 0x57, - 0x57, - 0x7B, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sCheerful[106] = { + 0x64, 0x6D, 0x6D, 0x6D, 0x99, 0x6D, 0x40, 0x51, 0x51, 0x6F, 0x6F, 0x66, 0x66, 0x60, 0xA7, 0xAF, + 0xB3, 0x61, 0x61, 0xA7, 0xA7, 0x5E, 0x8B, 0x75, 0x77, 0x72, 0x72, 0x93, 0x93, 0x8B, 0x8B, 0x88, + 0x88, 0x77, 0x77, 0x80, 0x80, 0x80, 0x80, 0x67, 0x67, 0x4D, 0x4A, 0x69, 0x44, 0xA1, 0x64, 0xA8, + 0xAE, 0x85, 0x85, 0x8D, 0x95, 0xA9, 0xA9, 0x91, 0x91, 0x67, 0x69, 0x60, 0x60, 0x5E, 0x5E, 0x54, + 0x34, 0x6B, 0x63, 0x4F, 0x4F, 0x46, 0x46, 0x55, 0x6F, 0x6A, 0x6A, 0x75, 0x75, 0x75, 0x75, 0x70, + 0x70, 0x9F, 0x9F, 0x55, 0x55, 0x63, 0x63, 0x63, 0x62, 0x9C, 0x9C, 0xA8, 0x85, 0x65, 0x65, 0x65, + 0x65, 0x70, 0x6B, 0x6B, 0x6B, 0x6D, 0x6D, 0x57, 0x57, 0x7B, }; -COMPILER_STRIP_GATE(0x8039C5D8, &Z2MdnPrm::sCheerful); /* 8039C644-8039C6B0 028CA4 006A+02 1/0 0/0 0/0 .rodata sConfused__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sConfused[106 + 2 /* padding */] = { - 0x83, - 0x80, - 0x80, - 0x82, - 0x82, - 0x82, - 0x82, - 0x5B, - 0x75, - 0x84, - 0x84, - 0x84, - 0x84, - 0x75, - 0x75, - 0x62, - 0x62, - 0x62, - 0x4D, - 0x56, - 0x56, - 0x59, - 0x59, - 0x59, - 0x59, - 0x74, - 0x74, - 0x85, - 0x7D, - 0x8D, - 0x8D, - 0x70, - 0x70, - 0x5A, - 0x5A, - 0x6B, - 0x6B, - 0x6B, - 0x6B, - 0x70, - 0x79, - 0x73, - 0x73, - 0x71, - 0x71, - 0x75, - 0x75, - 0x7B, - 0x7B, - 0x5F, - 0x5F, - 0x62, - 0x76, - 0x64, - 0x7B, - 0x7B, - 0x7B, - 0x7C, - 0x7F, - 0x65, - 0x7C, - 0x7C, - 0x68, - 0x43, - 0x40, - 0x67, - 0x67, - 0x69, - 0x69, - 0x5F, - 0x5F, - 0x5D, - 0x5D, - 0x5D, - 0xA2, - 0xA2, - 0xA2, - 0xA6, - 0xA6, - 0x9A, - 0x9A, - 0x97, - 0x97, - 0x97, - 0x97, - 0x97, - 0x97, - 0x8E, - 0x8E, - 0x94, - 0x8E, - 0x95, - 0x95, - 0x95, - 0x95, - 0x42, - 0x38, - 0x38, - 0x38, - 0x83, - 0x83, - 0x8E, - 0x8E, - 0x4C, - 0x56, - 0x56, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sConfused[106] = { + 0x83, 0x80, 0x80, 0x82, 0x82, 0x82, 0x82, 0x5B, 0x75, 0x84, 0x84, 0x84, 0x84, 0x75, 0x75, 0x62, + 0x62, 0x62, 0x4D, 0x56, 0x56, 0x59, 0x59, 0x59, 0x59, 0x74, 0x74, 0x85, 0x7D, 0x8D, 0x8D, 0x70, + 0x70, 0x5A, 0x5A, 0x6B, 0x6B, 0x6B, 0x6B, 0x70, 0x79, 0x73, 0x73, 0x71, 0x71, 0x75, 0x75, 0x7B, + 0x7B, 0x5F, 0x5F, 0x62, 0x76, 0x64, 0x7B, 0x7B, 0x7B, 0x7C, 0x7F, 0x65, 0x7C, 0x7C, 0x68, 0x43, + 0x40, 0x67, 0x67, 0x69, 0x69, 0x5F, 0x5F, 0x5D, 0x5D, 0x5D, 0xA2, 0xA2, 0xA2, 0xA6, 0xA6, 0x9A, + 0x9A, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x8E, 0x8E, 0x94, 0x8E, 0x95, 0x95, 0x95, 0x95, 0x42, + 0x38, 0x38, 0x38, 0x83, 0x83, 0x8E, 0x8E, 0x4C, 0x56, 0x56, }; -COMPILER_STRIP_GATE(0x8039C644, &Z2MdnPrm::sConfused); /* 8039C6B0-8039C718 028D10 0068+00 1/0 0/0 0/0 .rodata sHostility__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sHostility[104] = { +u8 const Z2MdnPrm::sHostility[104] = { 0x85, 0x71, 0x71, 0x73, 0x73, 0x3B, 0x62, 0x84, 0x94, 0x94, 0x94, 0xAF, 0x98, 0xAD, 0xAD, 0x5A, 0x5A, 0x63, 0x63, 0x97, 0x90, 0x90, 0x7B, 0x73, 0x73, 0x63, 0x63, 0x55, 0x55, 0x65, 0x66, 0x7F, 0x7F, 0x87, 0x87, 0x8A, 0x8A, 0x94, 0x5D, 0x5C, 0x5A, 0x67, 0x67, 0x68, 0x68, @@ -1491,238 +584,31 @@ SECTION_RODATA u8 const Z2MdnPrm::sHostility[104] = { 0x65, 0x6B, 0x6E, 0x6E, 0x83, 0x83, 0x96, 0x3F, 0x56, 0x56, 0x56, 0x56, 0x4F, 0x5F, 0x57, 0x62, 0x6A, 0x5F, 0x72, 0x72, 0x62, 0x62, 0x65, 0x5E, 0x69, 0x69, 0x63, 0x63, 0x7F, }; -COMPILER_STRIP_GATE(0x8039C6B0, &Z2MdnPrm::sHostility); /* 8039C718-8039C784 028D78 006A+02 1/0 0/0 0/0 .rodata sTired__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sTired[106 + 2 /* padding */] = { - 0x70, - 0x70, - 0x70, - 0x5C, - 0x5C, - 0x5C, - 0x6F, - 0x6F, - 0x6F, - 0x93, - 0x8C, - 0x9A, - 0x9D, - 0x89, - 0x99, - 0x7A, - 0x91, - 0x8D, - 0x8D, - 0x8D, - 0x8D, - 0x69, - 0x69, - 0x72, - 0x72, - 0x65, - 0x65, - 0x65, - 0x9E, - 0x98, - 0x98, - 0x2A, - 0x50, - 0x54, - 0x54, - 0x49, - 0x64, - 0x59, - 0x59, - 0x62, - 0x62, - 0x62, - 0x44, - 0x5E, - 0x9F, - 0x91, - 0x63, - 0x63, - 0x63, - 0x57, - 0x57, - 0x2A, - 0x64, - 0x52, - 0x5B, - 0x5C, - 0x5C, - 0x5C, - 0x5C, - 0x59, - 0x63, - 0x75, - 0x66, - 0x69, - 0x61, - 0x67, - 0x67, - 0x67, - 0x67, - 0x65, - 0x6A, - 0x6A, - 0x7B, - 0x75, - 0x75, - 0x75, - 0x75, - 0x69, - 0x69, - 0x64, - 0x64, - 0x51, - 0x67, - 0x68, - 0x68, - 0x6F, - 0x6F, - 0x6F, - 0x7F, - 0x95, - 0x9C, - 0x87, - 0x84, - 0x8A, - 0x72, - 0x84, - 0x84, - 0x6D, - 0x6D, - 0x6A, - 0x6A, - 0x8D, - 0x8D, - 0x8D, - 0x8D, - 0x3B, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sTired[106] = { + 0x70, 0x70, 0x70, 0x5C, 0x5C, 0x5C, 0x6F, 0x6F, 0x6F, 0x93, 0x8C, 0x9A, 0x9D, 0x89, 0x99, 0x7A, + 0x91, 0x8D, 0x8D, 0x8D, 0x8D, 0x69, 0x69, 0x72, 0x72, 0x65, 0x65, 0x65, 0x9E, 0x98, 0x98, 0x2A, + 0x50, 0x54, 0x54, 0x49, 0x64, 0x59, 0x59, 0x62, 0x62, 0x62, 0x44, 0x5E, 0x9F, 0x91, 0x63, 0x63, + 0x63, 0x57, 0x57, 0x2A, 0x64, 0x52, 0x5B, 0x5C, 0x5C, 0x5C, 0x5C, 0x59, 0x63, 0x75, 0x66, 0x69, + 0x61, 0x67, 0x67, 0x67, 0x67, 0x65, 0x6A, 0x6A, 0x7B, 0x75, 0x75, 0x75, 0x75, 0x69, 0x69, 0x64, + 0x64, 0x51, 0x67, 0x68, 0x68, 0x6F, 0x6F, 0x6F, 0x7F, 0x95, 0x9C, 0x87, 0x84, 0x8A, 0x72, 0x84, + 0x84, 0x6D, 0x6D, 0x6A, 0x6A, 0x8D, 0x8D, 0x8D, 0x8D, 0x3B, }; -COMPILER_STRIP_GATE(0x8039C718, &Z2MdnPrm::sTired); /* 8039C784-8039C7F0 028DE4 006A+02 1/0 0/0 0/0 .rodata sSerious__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sSerious[106 + 2 /* padding */] = { - 0x52, - 0x65, - 0x65, - 0x72, - 0x5A, - 0x61, - 0x61, - 0x7B, - 0x80, - 0x92, - 0x93, - 0x9D, - 0x9D, - 0x70, - 0x79, - 0x76, - 0x62, - 0x57, - 0x5A, - 0x53, - 0x53, - 0x59, - 0x59, - 0x65, - 0x63, - 0x60, - 0x60, - 0x6A, - 0x83, - 0x80, - 0x7F, - 0x5D, - 0x5C, - 0x45, - 0x5D, - 0x71, - 0x72, - 0x65, - 0x65, - 0x65, - 0x66, - 0x4B, - 0xB2, - 0x60, - 0x5C, - 0x5C, - 0x5C, - 0x5B, - 0x5F, - 0x55, - 0x55, - 0x5E, - 0x5E, - 0x5F, - 0x5B, - 0x4D, - 0x58, - 0x60, - 0x5B, - 0x50, - 0x50, - 0x56, - 0x56, - 0x56, - 0x7D, - 0x6E, - 0x72, - 0x73, - 0x73, - 0x6A, - 0x64, - 0x54, - 0x58, - 0x57, - 0x57, - 0x5D, - 0x5D, - 0x64, - 0x5F, - 0x53, - 0x53, - 0x52, - 0x54, - 0x4D, - 0x4D, - 0x4D, - 0x4D, - 0x59, - 0x59, - 0x59, - 0x69, - 0x6B, - 0x6B, - 0x5A, - 0x72, - 0x69, - 0x70, - 0x60, - 0x3C, - 0x81, - 0x81, - 0x92, - 0x92, - 0x8E, - 0x98, - 0x87, - /* padding */ - 0x00, - 0x00, +u8 const Z2MdnPrm::sSerious[106] = { + 0x52, 0x65, 0x65, 0x72, 0x5A, 0x61, 0x61, 0x7B, 0x80, 0x92, 0x93, 0x9D, 0x9D, 0x70, 0x79, 0x76, + 0x62, 0x57, 0x5A, 0x53, 0x53, 0x59, 0x59, 0x65, 0x63, 0x60, 0x60, 0x6A, 0x83, 0x80, 0x7F, 0x5D, + 0x5C, 0x45, 0x5D, 0x71, 0x72, 0x65, 0x65, 0x65, 0x66, 0x4B, 0xB2, 0x60, 0x5C, 0x5C, 0x5C, 0x5B, + 0x5F, 0x55, 0x55, 0x5E, 0x5E, 0x5F, 0x5B, 0x4D, 0x58, 0x60, 0x5B, 0x50, 0x50, 0x56, 0x56, 0x56, + 0x7D, 0x6E, 0x72, 0x73, 0x73, 0x6A, 0x64, 0x54, 0x58, 0x57, 0x57, 0x5D, 0x5D, 0x64, 0x5F, 0x53, + 0x53, 0x52, 0x54, 0x4D, 0x4D, 0x4D, 0x4D, 0x59, 0x59, 0x59, 0x69, 0x6B, 0x6B, 0x5A, 0x72, 0x69, + 0x70, 0x60, 0x3C, 0x81, 0x81, 0x92, 0x92, 0x8E, 0x98, 0x87, }; -COMPILER_STRIP_GATE(0x8039C784, &Z2MdnPrm::sSerious); /* 8039C7F0-8039C844 028E50 0054+00 1/0 0/0 0/0 .rodata sReplyb__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sReplyb[84] = { +u8 const Z2MdnPrm::sReplyb[84] = { 0x5C, 0x45, 0x45, 0x71, 0x9F, 0x57, 0xB4, 0xB4, 0x56, 0x62, 0x8E, 0x61, 0x61, 0xB0, 0xB0, 0x3C, 0x59, 0x4A, 0x64, 0xA4, 0xA4, 0x5A, 0x5A, 0x5A, 0x5A, 0x72, 0x72, 0x4B, 0x6B, 0x97, 0x97, 0x59, 0x60, 0x60, 0x60, 0x69, 0x3E, 0x3E, 0x57, 0x42, 0x5E, 0x76, @@ -1730,10 +616,9 @@ SECTION_RODATA u8 const Z2MdnPrm::sReplyb[84] = { 0x72, 0x8A, 0x2C, 0x1F, 0x1F, 0x95, 0x95, 0x69, 0x4C, 0x59, 0x59, 0x79, 0x5B, 0x44, 0x44, 0x4F, 0x52, 0x58, 0x5A, 0x6F, 0x6E, 0x8A, 0x8E, 0x8E, 0x8E, 0x8C, 0x8C, 0x9B, }; -COMPILER_STRIP_GATE(0x8039C7F0, &Z2MdnPrm::sReplyb); /* 8039C844-8039C8A8 028EA4 0064+00 1/0 0/0 0/0 .rodata sApologize__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sApologize[100] = { +u8 const Z2MdnPrm::sApologize[100] = { 0x6A, 0x6A, 0x6A, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x57, 0x57, 0x57, 0x63, 0x61, 0x54, 0x54, 0x54, 0x54, 0x58, 0x58, 0x58, 0x58, 0x45, 0x45, 0x56, 0x56, 0x5B, 0x5B, 0x37, 0x53, 0x53, 0x53, 0x59, 0x59, 0x59, 0x49, 0x58, 0x58, 0x55, 0x56, 0x56, 0x83, 0x7F, 0x7F, @@ -1742,28 +627,14 @@ SECTION_RODATA u8 const Z2MdnPrm::sApologize[100] = { 0x5B, 0x70, 0x72, 0x72, 0x72, 0x72, 0x6E, 0x76, 0x6B, 0x6B, 0x58, 0x69, 0x66, 0x66, 0x64, 0x64, 0x60, 0x61, 0x63, 0x6A, 0x62, 0x62, 0x64, 0x65, 0x71, }; -COMPILER_STRIP_GATE(0x8039C844, &Z2MdnPrm::sApologize); /* 8039C8A8-8039C8B4 028F08 0009+03 1/0 0/0 0/0 .rodata sApologizeTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sApologizeTail[9 + 3 /* padding */] = { - 0x7C, - 0x6E, - 0x63, - 0x71, - 0x51, - 0x37, - 0x75, - 0x58, - 0x5C, - /* padding */ - 0x00, - 0x00, - 0x00, +u8 const Z2MdnPrm::sApologizeTail[9] = { + 0x7C, 0x6E, 0x63, 0x71, 0x51, 0x37, 0x75, 0x58, 0x5C, }; -COMPILER_STRIP_GATE(0x8039C8A8, &Z2MdnPrm::sApologizeTail); /* 8039C8B4-8039C918 028F14 0064+00 1/0 0/0 0/0 .rodata sDeside__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sDeside[100] = { +u8 const Z2MdnPrm::sDeside[100] = { 0x77, 0x77, 0x77, 0x58, 0x58, 0x6F, 0x78, 0x5F, 0x66, 0x5E, 0x6E, 0x62, 0x62, 0x2E, 0x5A, 0x58, 0x54, 0x52, 0x52, 0x5C, 0x59, 0x56, 0x56, 0x4B, 0x4B, 0x63, 0x63, 0x4D, 0x4E, 0x4A, 0x69, 0x71, 0x71, 0x76, 0x80, 0x80, 0x80, 0x73, 0x73, 0x5C, 0x7C, 0x64, 0x83, 0x89, 0x89, @@ -1772,10 +643,9 @@ SECTION_RODATA u8 const Z2MdnPrm::sDeside[100] = { 0x62, 0x5D, 0x67, 0x5D, 0x5F, 0x62, 0x59, 0x5D, 0x55, 0x55, 0x48, 0x5F, 0x5F, 0x5F, 0x5D, 0x75, 0x6A, 0x66, 0x76, 0x69, 0x69, 0x69, 0x60, 0x60, 0x5F, }; -COMPILER_STRIP_GATE(0x8039C8B4, &Z2MdnPrm::sDeside); /* 8039C918-8039C980 028F78 0068+00 1/0 0/0 0/0 .rodata sAfford__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sAfford[104] = { +u8 const Z2MdnPrm::sAfford[104] = { 0x4E, 0x45, 0x52, 0x5B, 0x56, 0x5B, 0x59, 0x52, 0x52, 0x57, 0x5C, 0x50, 0x50, 0x49, 0x80, 0x6E, 0x6E, 0x5A, 0x5C, 0x60, 0x6A, 0x62, 0x62, 0x6A, 0x71, 0x48, 0x4C, 0x5B, 0x5A, 0x40, 0x40, 0x49, 0x49, 0x50, 0x51, 0x51, 0x51, 0x3A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x57, 0x57, @@ -1784,41 +654,32 @@ SECTION_RODATA u8 const Z2MdnPrm::sAfford[104] = { 0x7D, 0x6E, 0x56, 0x79, 0x79, 0x50, 0x4C, 0x50, 0x43, 0x52, 0x51, 0x66, 0x6C, 0x64, 0x63, 0x63, 0x5D, 0x69, 0x70, 0x56, 0x50, 0x4B, 0x92, 0x86, 0x8F, 0x4B, 0x4F, 0x57, 0x56, }; -COMPILER_STRIP_GATE(0x8039C918, &Z2MdnPrm::sAfford); /* 8039C980-8039C98C 028FE0 000C+00 1/0 0/0 0/0 .rodata sAffordTail__8Z2MdnPrm */ -SECTION_RODATA u8 const Z2MdnPrm::sAffordTail[12] = { +u8 const Z2MdnPrm::sAffordTail[12] = { 0x63, 0x8E, 0x5B, 0x59, 0x4C, 0x3A, 0x69, 0x47, 0x41, 0x59, 0x50, 0x55, }; -COMPILER_STRIP_GATE(0x8039C980, &Z2MdnPrm::sAffordTail); /* 8039C98C-8039CA58 -00001 00CC+00 2/2 0/0 0/0 .rodata sPrm__8Z2MdnPrm */ -SECTION_RODATA sPrmStruct const Z2MdnPrm::sPrm[17] = { - { (u8**)&Z2MdnPrm::sReply, (u8**)&Z2MdnPrm::sReplyTail, 0x32, 0x06, 0x04, 0x00}, - { (u8**)&Z2MdnPrm::sJoke, (u8**)&Z2MdnPrm::sJokeTail, 0x32, 0x03, 0x07, 0x00}, - { (u8**)&Z2MdnPrm::sSexy, (u8**)&Z2MdnPrm::sSexyTail, 0x32, 0x03, 0x07, 0x00}, - { (u8**)&Z2MdnPrm::sRidicule, (u8**)&Z2MdnPrm::sRidiculeTail, 0x32, 0x03, 0x07, 0x00}, - { (u8**)&Z2MdnPrm::sBoring, (u8**)&Z2MdnPrm::sBoringTail, 0x36, 0x01, 0x05, 0x00}, - { (u8**)&Z2MdnPrm::sIrritated, (u8**)&Z2MdnPrm::sIrritatedTail, 0x2F, 0x03, 0x07, 0x00}, - { (u8**)&Z2MdnPrm::sOrder, (u8**)&Z2MdnPrm::sOrderTail, 0x39, 0x02, 0x04, 0x00}, - { (u8**)&Z2MdnPrm::sResent, (u8**)&Z2MdnPrm::sResentTail, 0x35, 0x02, 0x03, 0x00}, - { (u8**)&Z2MdnPrm::sCheerful, (u8**)&Z2MdnPrm::sCheerfulTail, 0x35, 0x01, 0x07, 0x00}, - { (u8**)&Z2MdnPrm::sConfused, (u8**)&Z2MdnPrm::sConfusedTail, 0x35, 0x03, 0x02, 0x00}, - { (u8**)&Z2MdnPrm::sHostility, (u8**)&Z2MdnPrm::sHostilityTail, 0x34, 0x02, 0x05, 0x00}, - { (u8**)&Z2MdnPrm::sTired, (u8**)&Z2MdnPrm::sTiredTail, 0x35, 0x03, 0x05, 0x00}, - { (u8**)&Z2MdnPrm::sSerious, (u8**)&Z2MdnPrm::sSeriousTail, 0x35, 0x02, 0x05, 0x00}, - { (u8**)&Z2MdnPrm::sReplyb, (u8**)&Z2MdnPrm::sReplybTail, 0x2A, 0x04, 0x03, 0x00}, - { (u8**)&Z2MdnPrm::sApologize, (u8**)&Z2MdnPrm::sApologizeTail, 0x32, 0x04, 0x05, 0x00}, - { (u8**)&Z2MdnPrm::sDeside, (u8**)&Z2MdnPrm::sDesideTail, 0x32, 0x01, 0x07, 0x00}, - { (u8**)&Z2MdnPrm::sAfford, (u8**)&Z2MdnPrm::sAffordTail, 0x34, 0x02, 0x0A, 0x00}, +sPrmStruct const Z2MdnPrm::sPrm[17] = { + { Z2MdnPrm::sReply, Z2MdnPrm::sReplyTail, 0x32, 0x06, 0x04, 0x00}, + { Z2MdnPrm::sJoke, Z2MdnPrm::sJokeTail, 0x32, 0x03, 0x07, 0x00}, + { Z2MdnPrm::sSexy, Z2MdnPrm::sSexyTail, 0x32, 0x03, 0x07, 0x00}, + { Z2MdnPrm::sRidicule, Z2MdnPrm::sRidiculeTail, 0x32, 0x03, 0x07, 0x00}, + { Z2MdnPrm::sBoring, Z2MdnPrm::sBoringTail, 0x36, 0x01, 0x05, 0x00}, + { Z2MdnPrm::sIrritated, Z2MdnPrm::sIrritatedTail, 0x2F, 0x03, 0x07, 0x00}, + { Z2MdnPrm::sOrder, Z2MdnPrm::sOrderTail, 0x39, 0x02, 0x04, 0x00}, + { Z2MdnPrm::sResent, Z2MdnPrm::sResentTail, 0x35, 0x02, 0x03, 0x00}, + { Z2MdnPrm::sCheerful, Z2MdnPrm::sCheerfulTail, 0x35, 0x01, 0x07, 0x00}, + { Z2MdnPrm::sConfused, Z2MdnPrm::sConfusedTail, 0x35, 0x03, 0x02, 0x00}, + { Z2MdnPrm::sHostility, Z2MdnPrm::sHostilityTail, 0x34, 0x02, 0x05, 0x00}, + { Z2MdnPrm::sTired, Z2MdnPrm::sTiredTail, 0x35, 0x03, 0x05, 0x00}, + { Z2MdnPrm::sSerious, Z2MdnPrm::sSeriousTail, 0x35, 0x02, 0x05, 0x00}, + { Z2MdnPrm::sReplyb, Z2MdnPrm::sReplybTail, 0x2A, 0x04, 0x03, 0x00}, + { Z2MdnPrm::sApologize, Z2MdnPrm::sApologizeTail, 0x32, 0x04, 0x05, 0x00}, + { Z2MdnPrm::sDeside, Z2MdnPrm::sDesideTail, 0x32, 0x01, 0x07, 0x00}, + { Z2MdnPrm::sAfford, Z2MdnPrm::sAffordTail, 0x34, 0x02, 0x0A, 0x00}, }; -COMPILER_STRIP_GATE(0x8039C98C, &Z2MdnPrm::sPrm); - -/* 80455F48-80455F50 004548 0008+00 3/3 0/0 0/0 .sdata2 @4083 */ -SECTION_SDATA2 static f64 lit_4083 = 4503599627370496.0 /* cast u32 to float */; - -/* 80456BA8-80456BAC 000048 0002+02 1/1 0/0 0/0 .sbss2 @4003 */ -SECTION_SBSS2 static u8 lit_4003[2 + 2 /* padding */]; typedef struct { u8 field_0x0; @@ -1826,17 +687,18 @@ typedef struct { } Z2ConnectCost; /* 802CC4C0-802CC738 2C6E00 0278+00 2/2 0/0 0/0 .text selectUnit__12Z2SpeechMgr2Fb */ -// This one is a mess -#ifdef NONMATCHING +// NONMATCHING This one is a mess void Z2SpeechMgr2::selectUnit(bool param_0) { Z2ConnectCost local_3c[5]; if (field_0x401 >= 64) { field_0x0->stop(); } else { - s32 ZVar2 = random.get_uint8(Z2MdnPrm::sPrm[field_0x3fc].field_0x8); + int best = random.get_uint8(Z2MdnPrm::sPrm[field_0x3fc].field_0x8); + if (field_0x401 != 0 && param_0) { - u8 cVar5 = 0; - ZVar2 = field_0x402[field_0x401 - 1]; + int cVar5 = 0; + int ZVar2 = field_0x402[field_0x401 - 1]; + do { bool bVar1; int ZVar3; @@ -1858,31 +720,26 @@ void Z2SpeechMgr2::selectUnit(bool param_0) { } } } while (bVar1); - local_3c[1].field_0x1 = J3DUD::JMAAbs((*Z2MdnPrm::sPrm[field_0x3fc].field_0x0)[ZVar3 * 2] - (*Z2MdnPrm::sPrm[field_0x3fc].field_0x0)[ZVar3 * 2 + 1]); - local_3c[2].field_0x0 = ZVar3; - local_3c[cVar5] = local_3c[2]; + u8 diff = JMAAbs(Z2MdnPrm::sPrm[field_0x3fc].field_0x0[ZVar3 * 2] + - Z2MdnPrm::sPrm[field_0x3fc].field_0x0[ZVar2 * 2 + 1]); + local_3c[cVar5] = (Z2ConnectCost){ZVar3, diff}; cVar5++; - } while (cVar5 != 5); - for (int iVar4 = 0; /*ZVar2 = local_3c[0],*/ iVar4 < 5; iVar4++) { - if (local_3c[iVar4].field_0x1 < local_3c[0].field_0x0) { - local_3c[0].field_0x1 = local_3c[iVar4].field_0x1; - local_3c[0].field_0x0 = local_3c[iVar4].field_0x0; + } while ((s8)cVar5 != 5); + + best = local_3c[0].field_0x0; + u16 min = local_3c[0].field_0x1; + for (int iVar4 = 0; iVar4 < 5; iVar4++) { + if (local_3c[iVar4].field_0x1 < min) { + min = local_3c[iVar4].field_0x1; + best = local_3c[iVar4].field_0x0; } } } - field_0x402[field_0x401 - 1] = ZVar2; + + field_0x402[field_0x401] = best; field_0x401++; } } -#else -void Z2SpeechMgr2::selectUnit(bool param_0) { - // NONMATCHING -} -#endif - -/* ############################################################################################## */ -/* 80456BAC-80456BB0 00004C 0002+02 1/1 0/0 0/0 .sbss2 @4104 */ -SECTION_SBSS2 static u8 lit_4104[2 + 2 /* padding */]; /* 802CC738-802CC9D0 2C7078 0298+00 1/1 0/0 0/0 .text selectTail__12Z2SpeechMgr2Fv */ void Z2SpeechMgr2::selectTail() { @@ -1923,13 +780,6 @@ bool Z2SpeechMgr2::isMidnaSpeak() { /* 802CCFB8-802CCFF8 2C78F8 0040+00 1/1 0/0 0/0 .text __ct__15Z2SpeechStarterFv */ Z2SpeechStarter::Z2SpeechStarter() : Z2SoundStarter(false) {} -/* ############################################################################################## */ -/* 80455F50-80455F54 004550 0004+00 1/1 0/0 0/0 .sdata2 @4571 */ -SECTION_SDATA2 static f32 lit_4571 = 7.0f / 100.0f; - -/* 80455F54-80455F58 004554 0004+00 1/1 0/0 0/0 .sdata2 @4572 */ -SECTION_SDATA2 static f32 lit_4572 = 0.5f; - /* 802CCFF8-802CD248 2C7938 0250+00 1/0 0/0 0/0 .text * startSound__15Z2SpeechStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f>UlfffffUl */ bool Z2SpeechStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1, diff --git a/src/Z2AudioLib/Z2StatusMgr.cpp b/src/Z2AudioLib/Z2StatusMgr.cpp index c5fe617970..8adc97d924 100644 --- a/src/Z2AudioLib/Z2StatusMgr.cpp +++ b/src/Z2AudioLib/Z2StatusMgr.cpp @@ -7,7 +7,6 @@ #include "Z2AudioLib/Z2Param.h" #include "d/d_com_inf_game.h" #include "d/d_s_play.h" -#include "dol2asm.h" /* 802B5F1C-802B5F70 2B085C 0054+00 0/0 1/1 0/0 .text __ct__11Z2StatusMgrFv */ Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) { @@ -17,7 +16,7 @@ Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) { field_0x03 = 0; mTime = 3072; mEventBit = NULL; - mIsMenuIn = false; + mPauseFlag = false; mCameraMapInfo = 0; mPolygonPosition.x = 10000000.0f; @@ -84,7 +83,7 @@ void Z2StatusMgr::menuIn() { Z2GetSeqMgr()->menuInBgm(); Z2GetSeMgr()->menuInSe(); - mIsMenuIn = true; + mPauseFlag = true; } /* 802B617C-802B61BC 2B0ABC 0040+00 0/0 3/3 0/0 .text menuOut__11Z2StatusMgrFv */ @@ -92,7 +91,7 @@ void Z2StatusMgr::menuOut() { Z2GetSeqMgr()->menuOutBgm(); Z2GetSeMgr()->talkOutSe(); - mIsMenuIn = false; + mPauseFlag = false; } /* 802B61BC-802B61E8 2B0AFC 002C+00 2/2 1/1 0/0 .text isMovieDemo__11Z2StatusMgrFv */ @@ -196,7 +195,7 @@ void Z2StatusMgr::setDemoName(char* demoName) { if (mDemoStatus == 3) { Z2GetSeqMgr()->setBattleBgmOff(false); } else if (mDemoStatus == 4) { - Z2GetSeqMgr()->i_unMuteSceneBgm(struct_80450861); + Z2GetSeqMgr()->unMuteSceneBgm(struct_80450861); } else if (mDemoStatus == 5) { Z2GetSeqMgr()->subBgmStop(); } else if (mDemoStatus == 9) { @@ -215,7 +214,7 @@ void Z2StatusMgr::setDemoName(char* demoName) { mDemoStatus = 11; } else if (strcmp(demoName, "demo36_01") == 0 || strcmp(demoName, "demo36_02") == 0) { mDemoStatus = 4; - Z2GetSeqMgr()->i_muteSceneBgm(0x1e, 0.0f); + Z2GetSeqMgr()->muteSceneBgm(0x1e, 0.0f); } else if (strcmp(demoName, "demo37_01") == 0) { mDemoStatus = 12; Z2GetSoundMgr()->getSeMgr()->getCategory(9)->getParams()->moveVolume(0.0f, 0); @@ -336,4 +335,4 @@ void Z2StatusMgr::setCameraInWaterDepth(f32 depth) { mUnderwaterDepth = depth; } -/* 8039BC88-8039BC88 0282E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
\ No newline at end of file +/* 8039BC88-8039BC88 0282E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/Z2AudioLib/Z2WolfHowlMgr.cpp b/src/Z2AudioLib/Z2WolfHowlMgr.cpp index e34915e55d..f8030a3c77 100644 --- a/src/Z2AudioLib/Z2WolfHowlMgr.cpp +++ b/src/Z2AudioLib/Z2WolfHowlMgr.cpp @@ -12,9 +12,42 @@ #include "Z2AudioLib/Z2Audience.h" #include "d/d_demo.h" -/* ############################################################################################## */ +/* 80450880-80450884 000300 0004+00 2/2 0/0 0/0 .sdata cPitchDown */ +static f32 cPitchDown = 0.8909000158309937f; + +/* 80450884-80450888 000304 0004+00 4/4 0/0 0/0 .sdata cPitchCenter */ +static f32 cPitchCenter = 1.0f; + +/* 80450888-8045088C 000308 0004+00 2/2 0/0 0/0 .sdata cPitchUp */ +static f32 cPitchUp = 1.1892000436782837f; + +static u8 struct_8045088C = 7; +static u8 struct_8045088D = 7; + +/* 8045088E-80450890 00030E 0002+00 4/4 0/0 0/0 .sdata None */ +static u8 data_8045088E = 0x1E; +static u8 data_8045088F = 0x00; + +/* 80450890-80450894 000310 0004+00 1/1 0/0 0/0 .sdata cR_FlatWidth */ +static f32 cR_FlatWidth = 0.9438700079917908f; + +/* 80450894-80450898 -00001 0004+00 3/3 0/0 0/0 .sdata None */ +static u8 struct_80450894 = 0x05; +static u8 struct_80450895 = 0x1E; + +/* 80450898-8045089C 000318 0004+00 1/1 0/0 0/0 .sdata sStickHigh */ +static f32 sStickHigh = 0.5f; + +/* 8045089C-804508A0 00031C 0004+00 1/1 0/0 0/0 .sdata sStickCenter */ +static f32 sStickCenter = 1.0f / 5.0f; + /* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */ -extern SongNote sHowlTobikusa[4]; +static SongNote sHowlTobikusa[4] = { + {0x01, 0x1E}, + {0x03, 0x1E}, + {0x01, 0x1E}, + {0x03, 0x1E}, +}; /* 803CBC50-803CBC5C 028D70 000C+00 1/0 0/0 0/0 .data sHowlUmakusa */ static SongNote sHowlUmakusa[6] = { @@ -63,43 +96,6 @@ static Z2WolfHowlData sGuideData[9] = { {7, sNewSong1}, {8, sNewSong2}, {9, sNewSong3}, }; -/* 80450880-80450884 000300 0004+00 2/2 0/0 0/0 .sdata cPitchDown */ -static f32 cPitchDown = 0.8909000158309937f; - -/* 80450884-80450888 000304 0004+00 4/4 0/0 0/0 .sdata cPitchCenter */ -static f32 cPitchCenter = 1.0f; - -/* 80450888-8045088C 000308 0004+00 2/2 0/0 0/0 .sdata cPitchUp */ -static f32 cPitchUp = 1.1892000436782837f; - -static u8 struct_8045088C = 7; -static u8 struct_8045088D = 7; - -/* 8045088E-80450890 00030E 0002+00 4/4 0/0 0/0 .sdata None */ -static u8 data_8045088E = 0x1E; -static u8 data_8045088F = 0x00; - -/* 80450890-80450894 000310 0004+00 1/1 0/0 0/0 .sdata cR_FlatWidth */ -static f32 cR_FlatWidth = 0.9438700079917908f; - -/* 80450894-80450898 -00001 0004+00 3/3 0/0 0/0 .sdata None */ -static u8 struct_80450894 = 0x05; -static u8 struct_80450895 = 0x1E; - -/* 80450898-8045089C 000318 0004+00 1/1 0/0 0/0 .sdata sStickHigh */ -static f32 sStickHigh = 0.5f; - -/* 8045089C-804508A0 00031C 0004+00 1/1 0/0 0/0 .sdata sStickCenter */ -static f32 sStickCenter = 1.0f / 5.0f; - -/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */ -static SongNote sHowlTobikusa[4] = { - {0x01, 0x1E}, - {0x03, 0x1E}, - {0x01, 0x1E}, - {0x03, 0x1E}, -}; - /* 802CAAC0-802CAB8C 2C5400 00CC+00 0/0 1/1 0/0 .text __ct__13Z2WolfHowlMgrFv */ Z2WolfHowlMgr::Z2WolfHowlMgr() : JASGlobalInstance(this) { mpCurSong = NULL; @@ -228,7 +224,7 @@ void Z2WolfHowlMgr::calcPitchMod(f32 param_0, f32 param_1) { /* 802CAED4-802CB100 2C5814 022C+00 0/0 1/1 0/0 .text startWolfHowlSound__13Z2WolfHowlMgrFffbf */ s8 Z2WolfHowlMgr::startWolfHowlSound(f32 param_0, f32 param_1, bool param_2, f32 param_3) { if (mCorrectCurveID > 1) { - Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0); + Z2GetSeqMgr()->setWindStoneVol(0.0f, 0); } if (Z2GetSeqMgr()->isItemGetDemo() || (mReleaseTimer != 0)) { @@ -486,7 +482,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) { dVar13 = Z2Calc::getParamByExp(fVar14, 150.0f, 2000.0f, 0.45f, 0.05f, dVar13, Z2Calc::CURVE_SIGN_0); } - Z2GetSeqMgr()->i_setWindStoneVol(dVar13, 0); + Z2GetSeqMgr()->setWindStoneVol(dVar13, 0); field_0x04->getAuxiliary().moveVolume(0.4f, 0); } else { field_0x04->getAuxiliary().moveVolume(0.04f, 0); @@ -497,7 +493,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) { /* 802CBA88-802CBB58 2C63C8 00D0+00 0/0 1/1 0/0 .text startGuideMelody__13Z2WolfHowlMgrFb */ int Z2WolfHowlMgr::startGuideMelody(bool param_0) { - Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0); + Z2GetSeqMgr()->setWindStoneVol(0.0f, 0); if (param_0) { Z2GetSoundMgr()->startSound(sWindStoneSound[mCorrectCurveID], &field_0x08, NULL); } @@ -513,4 +509,4 @@ int Z2WolfHowlMgr::startGuideMelody(bool param_0) { */ void Z2WolfHowlMgr::skipCorrectDemo() { Z2GetSeqMgr()->stopWolfHowlSong(); -}
\ No newline at end of file +} |
