diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-27 21:19:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-27 21:19:33 -0800 |
| commit | 6f96e665186c87f15acb6f5cb8d27665afee3130 (patch) | |
| tree | 3ea70fe7d635a0f55aae44b1a386814766a46597 /src/Z2AudioLib/Z2FxLineMgr.cpp | |
| parent | 767caeecc3e374779cccc9960b6546b74e7a9e50 (diff) | |
various Z2Audio / JAudio debug cleanup (#2876)
* some JAudio work
* audio cleanup checkpoint
* checkpoint more audio cleanup
* fix symbols
* more z2 cleanup
* fix regression
* fix build
* some fixes
Diffstat (limited to 'src/Z2AudioLib/Z2FxLineMgr.cpp')
| -rw-r--r-- | src/Z2AudioLib/Z2FxLineMgr.cpp | 121 |
1 files changed, 72 insertions, 49 deletions
diff --git a/src/Z2AudioLib/Z2FxLineMgr.cpp b/src/Z2AudioLib/Z2FxLineMgr.cpp index c1a7d1645c..d0f9a1d9a0 100644 --- a/src/Z2AudioLib/Z2FxLineMgr.cpp +++ b/src/Z2AudioLib/Z2FxLineMgr.cpp @@ -1,8 +1,3 @@ -// -// Generated By: dol2asm -// Translation Unit: Z2FxLineMgr -// - #include "Z2AudioLib/Z2FxLineMgr.h" #include "Z2AudioLib/Z2SceneMgr.h" #include "JSystem/JAudio2/JASDSPInterface.h" @@ -11,25 +6,40 @@ #include "JSystem/JSupport/JSUMemoryStream.h" /* 802BA7DC-802BA7FC 2B511C 0020+00 0/0 1/1 0/0 .text __ct__11Z2FxLineMgrFv */ -Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(this) { +Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(true) { mConfig = NULL; mLineID = -1; mFxDataNum = 0; mSetUnderWaterFx = false; + + #if DEBUG + mHIOEdit = NULL; + #endif } /* 802BA7FC-802BAC28 2B513C 042C+00 0/0 1/1 0/0 .text * initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap */ void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) { + JUT_ASSERT(44, arc); + JUT_ASSERT(45, 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]; + + JUT_ASSERT(53, mFxLineBuffer[0]); + JUT_ASSERT(54, mFxLineBuffer[1]); + JUT_ASSERT(55, mFxLineBuffer[2]); + JUT_ASSERT(56, mFxLineBuffer[3]); + 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; @@ -61,23 +71,29 @@ void Z2FxLineMgr::initDataArc(JKRArchive* arc, JKRHeap* heap) { 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 fxID, bool param_1, bool param_2) { + JUT_ASSERT(109, fxID < mFxDataNum); + 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* config, bool param_1, bool param_2) { + JUT_ASSERT(121, config); + u8 buf1 = 0; u8 buf2 = 1; if (param_1) { @@ -86,6 +102,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { } if (mFxLineBuffer[buf1] == NULL || mFxLineBuffer[buf2] == NULL) { + OS_REPORT("[Z2FxLineMgr::setLine] FxBuffer is NOT CREATED!!\n"); return; } @@ -93,6 +110,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { 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; @@ -100,6 +118,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { 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]; @@ -114,6 +133,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { 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; @@ -121,6 +141,7 @@ void Z2FxLineMgr::setLine(Z2FxLineConfig* config, bool param_1, bool param_2) { 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]; @@ -139,84 +160,86 @@ void Z2FxLineMgr::setFxForceOff(bool param_0) { } /* 802BAE48-802BAEB8 2B5788 0070+00 0/0 1/1 0/0 .text setUnderWaterFx__11Z2FxLineMgrFb */ -void Z2FxLineMgr::setUnderWaterFx(bool param_0) { - if (mSetUnderWaterFx != param_0) { - if (param_0) { +void Z2FxLineMgr::setUnderWaterFx(bool isUnderWaterFx) { + if (mSetUnderWaterFx != isUnderWaterFx) { + if (isUnderWaterFx) { + OS_REPORT("[Z2FxLineMgr::setUnderWaterFx] → underWaterFx!\n"); setLineID(12, true, false); } else { + OS_REPORT("[Z2FxLineMgr::setUnderWaterFx] → sceneFx!\n"); setSceneFx(Z2GetSceneMgr()->getCurrentSceneNum()); } - mSetUnderWaterFx = param_0; + mSetUnderWaterFx = isUnderWaterFx; } } /* 802BAEB8-802BB00C 2B57F8 0154+00 2/1 1/1 0/0 .text setSceneFx__11Z2FxLineMgrFl */ -void Z2FxLineMgr::setSceneFx(s32 sceneNum) { +void Z2FxLineMgr::setSceneFx(s32 sceneNo) { if (Z2GetSceneMgr()->isInDarkness()) { setLineID(11, true, false); } else { - switch (sceneNum) { - case SPOT_SHADES_REALM: + switch (sceneNo) { + case Z2SCENE_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: + case Z2SCENE_KAKARIKO_VILLAGE: + case Z2SCENE_DEATH_MOUNTAIN: + case Z2SCENE_HIDDEN_VILLAGE: + case Z2SCENE_ZORAS_RIVER: + case Z2SCENE_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: + case Z2SCENE_SACRED_GROVE: + case Z2SCENE_FOREST_TEMPLE: + case Z2SCENE_FOREST_TEMPLE_MINIBOSS: + case Z2SCENE_FOREST_TEMPLE_BOSS: + case Z2SCENE_GORGE_LANTERN_CAVE: + case Z2SCENE_LAKE_LANTERN_CAVE: + case Z2SCENE_FARON_WOODS_CAVE: if (Z2GetSceneMgr()->getCurrentRoomNum() == 2) { return; } // fallthrough - case SPOT_FARON_WOODS: + case Z2SCENE_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: + case Z2SCENE_GORON_MINES: + case Z2SCENE_GORON_MINES_MINIBOSS: + case Z2SCENE_GORON_MINES_BOSS: + case Z2SCENE_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: + case Z2SCENE_LAKE_HYLIA: + case Z2SCENE_LAKEBED_TEMPLE: + case Z2SCENE_LAKEBED_TEMPLE_MINIBOSS: + case Z2SCENE_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: + case Z2SCENE_ARBITERS_GROUNDS: + case Z2SCENE_ARBITERS_GROUNDS_MINIBOSS: + case Z2SCENE_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: + case Z2SCENE_SNOWPEAK_RUINS: + case Z2SCENE_SNOWPEAK_RUINS_MINIBOSS: + case Z2SCENE_SNOWPEAK_RUINS_BOSS: + case Z2SCENE_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: + case Z2SCENE_TEMPLE_OF_TIME: + case Z2SCENE_TEMPLE_OF_TIME_MINIBOSS: + case Z2SCENE_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: + case Z2SCENE_CITY_IN_THE_SKY: + case Z2SCENE_CITY_IN_THE_SKY_MINIBOSS: + case Z2SCENE_CITY_IN_THE_SKY_BOSS: setLineID(7, true, false); break; - case SPOT_HYRULE_CASTLE: - case SPOT_FINAL_BATTLE_THRONE_ROOM: + case Z2SCENE_HYRULE_CASTLE: + case Z2SCENE_FINAL_BATTLE_THRONE_ROOM: setLineID(8, true, false); break; default: |
