mirror of
https://github.com/zeldaret/ss
synced 2026-05-28 16:31:21 -04:00
start matching some d/snd things
This commit is contained in:
@@ -2346,27 +2346,40 @@ toBeSorted/col/cc/misc_unks.cpp:
|
||||
.text start:0x803598D0 end:0x80359D20 align:16
|
||||
.sbss start:0x80575D28 end:0x80575D30
|
||||
|
||||
d/snd/d_snd.cpp:
|
||||
d/snd/d_snd_mgr.cpp:
|
||||
.text start:0x80359D20 end:0x8035A558 align:16
|
||||
.data start:0x805485D0 end:0x80548678
|
||||
.sbss start:0x80575D30 end:0x80575D38
|
||||
|
||||
d/snd/d_snd_actor.cpp:
|
||||
.text start:0x8035A560 end:0x8035BB78 align:16
|
||||
.text start:0x8035A560 end:0x8035A898 align:16
|
||||
.data start:0x80548678 end:0x805486A0
|
||||
|
||||
d/snd/d_snd_engine.cpp:
|
||||
d/snd/d_snd_3d_actor.cpp:
|
||||
.text start:0x8035A8A0 end:0x8035BB78 align:16
|
||||
.data start:0x805486B0 end:0x80548710
|
||||
.sdata2 start:0x8057D2C0 end:0x8057D308
|
||||
|
||||
d/snd/d_snd_3d_engine.cpp:
|
||||
.text start:0x8035BB80 end:0x8035C3F0 align:16
|
||||
.data start:0x80548710 end:0x80548730
|
||||
.sdata2 start:0x8057D308 end:0x8057D368
|
||||
|
||||
d/snd/d_snd_unk_component_1.cpp:
|
||||
.text start:0x8035C3F0 end:0x8035DA88 align:16
|
||||
|
||||
d/snd/mgr/d_snd_mgr_bgm.cpp:
|
||||
d/snd/d_snd_player_mgr.cpp:
|
||||
.text start:0x8035DA90 end:0x8035F010 align:16
|
||||
.data start:0x80548758 end:0x805487A0
|
||||
|
||||
d/snd/mgr/d_snd_mgr_unk1.cpp:
|
||||
.text start:0x8035F010 end:0x80360C28 align:16
|
||||
.ctors start:0x804DB914 end:0x804DB918
|
||||
|
||||
d/snd/mgr/d_snd_mgr_unk3.cpp:
|
||||
d/snd/d_snd_3d_manager.cpp:
|
||||
.text start:0x80360C30 end:0x8036145C align:16
|
||||
.data start:0x805487D0 end:0x805487E0
|
||||
.sdata2 start:0x8057D3B8 end:0x8057D3F8
|
||||
|
||||
d/snd/mgr/d_snd_mgr_enemy.cpp:
|
||||
.text start:0x80361460 end:0x8036642C align:16
|
||||
@@ -2382,9 +2395,14 @@ d/snd/mgr/d_snd_mgr_unk_5.cpp:
|
||||
.text start:0x8037F8C0 end:0x803864C8 align:16
|
||||
.ctors start:0x804DB91C end:0x804DB920
|
||||
|
||||
d/snd/mgr/d_snd_mgr_unk_6.cpp:
|
||||
.text start:0x803864D0 end:0x8038C408 align:16
|
||||
d/snd/mgr/d_snd_mgr_unk_13.cpp:
|
||||
.text start:0x803864D0 end:0x803889BC align:16
|
||||
.data start:0x8054A680 end:0x8054A7D0
|
||||
|
||||
d/snd/d_snd_source.cpp:
|
||||
.text start:0x803889C0 end:0x8038C408 align:16
|
||||
.ctors start:0x804DB920 end:0x804DB924
|
||||
.data start:0x8054A7D0 end:0x8054AAE8
|
||||
|
||||
d/snd/mgr/d_snd_mgr_unk_7.cpp:
|
||||
.text start:0x8038C410 end:0x8038EBF0 align:16
|
||||
|
||||
+193
-193
@@ -1022,7 +1022,7 @@ fn_8002C010 = .text:0x8002C010; // type:function size:0x58
|
||||
fn_8002C070 = .text:0x8002C070; // type:function size:0x58
|
||||
fn_8002C0D0 = .text:0x8002C0D0; // type:function size:0x58
|
||||
fn_8002C130 = .text:0x8002C130; // type:function size:0x24
|
||||
fn_8002C160 = .text:0x8002C160; // type:function size:0x40
|
||||
__dt__16dSoundSourceIf_cFv = .text:0x8002C160; // type:function size:0x40
|
||||
fn_8002C1A0 = .text:0x8002C1A0; // type:function size:0xB0
|
||||
fn_8002C250 = .text:0x8002C250; // type:function size:0xB8
|
||||
fn_8002C310 = .text:0x8002C310; // type:function size:0x90
|
||||
@@ -19805,11 +19805,11 @@ fn_80359BC0 = .text:0x80359BC0; // type:function size:0x84
|
||||
fn_80359C50 = .text:0x80359C50; // type:function size:0x1C
|
||||
fn_80359C70 = .text:0x80359C70; // type:function size:0x8
|
||||
fn_80359C80 = .text:0x80359C80; // type:function size:0xA0
|
||||
SndAudioMgr____ct = .text:0x80359D20; // type:function size:0x9C
|
||||
SndAudioMgr__initialize = .text:0x80359DC0; // type:function size:0xEC
|
||||
fn_80359EB0 = .text:0x80359EB0; // type:function size:0x10
|
||||
SndAudioMgr__calc = .text:0x80359EC0; // type:function size:0xB8
|
||||
fn_80359F80 = .text:0x80359F80; // type:function size:0x2C
|
||||
__ct__9dSndMgr_cFv = .text:0x80359D20; // type:function size:0x9C
|
||||
initialize__9dSndMgr_cFPQ23EGG4HeapUl = .text:0x80359DC0; // type:function size:0xEC
|
||||
initHbm__9dSndMgr_cFUl = .text:0x80359EB0; // type:function size:0x10
|
||||
calc__9dSndMgr_cFv = .text:0x80359EC0; // type:function size:0xB8
|
||||
restoreEffectsCallback__9dSndMgr_cFv = .text:0x80359F80; // type:function size:0x2C
|
||||
stateProc__Q23EGG12SoundHeapMgrFv = .text:0x80359FB0; // type:function size:0xD4
|
||||
loadState__Q23EGG12SoundHeapMgrFl = .text:0x8035A090; // type:function size:0x8C
|
||||
getCurrentLevel__Q23EGG12SoundHeapMgrFv = .text:0x8035A120; // type:function size:0x54
|
||||
@@ -19823,8 +19823,8 @@ startSound__Q23EGG9ArcPlayerFPQ34nw4r3snd11SoundHandleUl = .text:0x8035A360; //
|
||||
startSound__Q23EGG9ArcPlayerFPQ34nw4r3snd11SoundHandleUi = .text:0x8035A3A0; // type:function size:0x34
|
||||
startSound__Q23EGG9ArcPlayerFPQ34nw4r3snd11SoundHandlePCc = .text:0x8035A3E0; // type:function size:0x70
|
||||
setupMemoryArchive__Q23EGG9ArcPlayerFPCvPQ34nw4r3snd9SoundHeapl = .text:0x8035A450; // type:function size:0x10
|
||||
fn_8035A460 = .text:0x8035A460; // type:function size:0x58
|
||||
fn_8035A4C0 = .text:0x8035A4C0; // type:function size:0x8
|
||||
__dt__9dSndMgr_cFv = .text:0x8035A460; // type:function size:0x58
|
||||
@248@calc__9dSndMgr_cFv = .text:0x8035A4C0; // type:function size:0x8
|
||||
@248@loadGroup__Q23EGG14SimpleAudioMgrFUiPQ34nw4r3snd9SoundHeapUl = .text:0x8035A4D0; // type:function size:0x8
|
||||
@248@loadGroup__Q23EGG14SimpleAudioMgrFiPQ34nw4r3snd9SoundHeapUl = .text:0x8035A4E0; // type:function size:0x8
|
||||
@248@loadGroup__Q23EGG14SimpleAudioMgrFUlPQ34nw4r3snd9SoundHeapUl = .text:0x8035A4F0; // type:function size:0x8
|
||||
@@ -19833,13 +19833,13 @@ fn_8035A4C0 = .text:0x8035A4C0; // type:function size:0x8
|
||||
@248@setupMemoryArchive__Q23EGG14SimpleAudioMgrFPCvPQ34nw4r3snd9SoundHeap = .text:0x8035A520; // type:function size:0x8
|
||||
@248@openNandArchive__Q23EGG14SimpleAudioMgrFPCcPQ34nw4r3snd9SoundHeap = .text:0x8035A530; // type:function size:0x8
|
||||
@248@openDvdArchive__Q23EGG14SimpleAudioMgrFPCcPQ34nw4r3snd9SoundHeap = .text:0x8035A540; // type:function size:0x8
|
||||
fn_8035A550 = .text:0x8035A550; // type:function size:0x8
|
||||
fn_8035A560 = .text:0x8035A560; // type:function size:0x3C
|
||||
fn_8035A5A0 = .text:0x8035A5A0; // type:function size:0x54
|
||||
fn_8035A600 = .text:0x8035A600; // type:function size:0x240
|
||||
fn_8035A840 = .text:0x8035A840; // type:function size:0x58
|
||||
fn_8035A8A0 = .text:0x8035A8A0; // type:function size:0xE8
|
||||
fn_8035A990 = .text:0x8035A990; // type:function size:0x40
|
||||
@248@__dt__9dSndMgr_cFv = .text:0x8035A550; // type:function size:0x8
|
||||
__ct__11dSndActor_cFRQ34nw4r3snd18SoundArchivePlayer = .text:0x8035A560; // type:function size:0x3C
|
||||
__dt__Q34nw4r3snd11SoundHandleFv = .text:0x8035A5A0; // type:function size:0x54 scope:weak
|
||||
__cl__22SoundPropertiesCheckerFRQ34nw4r3snd11SoundHandle = .text:0x8035A600; // type:function size:0x240
|
||||
__dt__11dSndActor_cFv = .text:0x8035A840; // type:function size:0x58 scope:weak
|
||||
__ct__13dSnd3DActor_cFPvUc = .text:0x8035A8A0; // type:function size:0xE8
|
||||
d_vt_0x34__13dSnd3DActor_cFRCQ34nw4r4math4VEC3 = .text:0x8035A990; // type:function size:0x40
|
||||
fn_8035A9D0 = .text:0x8035A9D0; // type:function size:0x2C
|
||||
fn_8035AA00 = .text:0x8035AA00; // type:function size:0x30
|
||||
fn_8035AA30 = .text:0x8035AA30; // type:function size:0x44
|
||||
@@ -19850,37 +19850,37 @@ fn_8035AB60 = .text:0x8035AB60; // type:function size:0x78
|
||||
fn_8035ABE0 = .text:0x8035ABE0; // type:function size:0x44
|
||||
fn_8035AC30 = .text:0x8035AC30; // type:function size:0x28
|
||||
fn_8035AC60 = .text:0x8035AC60; // type:function size:0x50
|
||||
fn_8035ACB0 = .text:0x8035ACB0; // type:function size:0xBC
|
||||
fn_8035AD70 = .text:0x8035AD70; // type:function size:0x3C
|
||||
fn_8035ADB0 = .text:0x8035ADB0; // type:function size:0xFC
|
||||
fn_8035AEB0 = .text:0x8035AEB0; // type:function size:0x3C
|
||||
updatePositionRelativeToPlayer__13dSnd3DActor_cFv = .text:0x8035ACB0; // type:function size:0xBC
|
||||
getPositionRelativeToPlayer__13dSnd3DActor_cFv = .text:0x8035AD70; // type:function size:0x3C
|
||||
updateDistanceToPlayer__13dSnd3DActor_cFv = .text:0x8035ADB0; // type:function size:0xFC
|
||||
getDistanceToPlayer__13dSnd3DActor_cFv = .text:0x8035AEB0; // type:function size:0x3C
|
||||
fn_8035AEF0 = .text:0x8035AEF0; // type:function size:0xE0
|
||||
fn_8035AFD0 = .text:0x8035AFD0; // type:function size:0x124
|
||||
fn_8035B100 = .text:0x8035B100; // type:function size:0xB4
|
||||
fn_8035B1C0 = .text:0x8035B1C0; // type:function size:0x330
|
||||
fn_8035B4F0 = .text:0x8035B4F0; // type:function size:0x144
|
||||
fn_8035B640 = .text:0x8035B640; // type:function size:0x1FC
|
||||
fn_8035B840 = .text:0x8035B840; // type:function size:0x60
|
||||
fn_8035B8A0 = .text:0x8035B8A0; // type:function size:0xCC
|
||||
fn_8035B970 = .text:0x8035B970; // type:function size:0x34
|
||||
hasPlayingSounds__13dSnd3DActor_cCFv = .text:0x8035B840; // type:function size:0x60
|
||||
isPlayingSound__13dSnd3DActor_cFUl = .text:0x8035B8A0; // type:function size:0xCC
|
||||
__cl__23IsCurrentSoundIdCheckerFRQ34nw4r3snd11SoundHandle = .text:0x8035B970; // type:function size:0x34
|
||||
fn_8035B9B0 = .text:0x8035B9B0; // type:function size:0x74
|
||||
fn_8035BA30 = .text:0x8035BA30; // type:function size:0x20
|
||||
fn_8035BA50 = .text:0x8035BA50; // type:function size:0x8
|
||||
fn_8035BA60 = .text:0x8035BA60; // type:function size:0x58
|
||||
fn_8035BAC0 = .text:0x8035BAC0; // type:function size:0x58
|
||||
fn_8035BB20 = .text:0x8035BB20; // type:function size:0x8
|
||||
fn_8035BB30 = .text:0x8035BB30; // type:function size:0x8
|
||||
fn_8035BB40 = .text:0x8035BB40; // type:function size:0x8
|
||||
fn_8035BB50 = .text:0x8035BB50; // type:function size:0x8
|
||||
soundLabelToSoundId__13dSnd3DActor_cCFPCc = .text:0x8035BA50; // type:function size:0x8
|
||||
soundIdToSoundLabel__13dSnd3DActor_cCFUl = .text:0x8035BA60; // type:function size:0x58
|
||||
__dt__13dSnd3DActor_cFv = .text:0x8035BAC0; // type:function size:0x58
|
||||
d_vt_0x44__13dSnd3DActor_cFv = .text:0x8035BB20; // type:function size:0x8
|
||||
d_vt_0x40__13dSnd3DActor_cFv = .text:0x8035BB30; // type:function size:0x8
|
||||
d_vt_0x3C__13dSnd3DActor_cFv = .text:0x8035BB40; // type:function size:0x8
|
||||
d_vt_0x30__13dSnd3DActor_cFv = .text:0x8035BB50; // type:function size:0x8
|
||||
@84@at_0x0c__Q34nw4r3snd12Sound3DActorFPvPQ44nw4r3snd6detail10BasicSound = .text:0x8035BB60; // type:function size:0x8
|
||||
fn_8035BB70 = .text:0x8035BB70; // type:function size:0x8
|
||||
fn_8035BB80 = .text:0x8035BB80; // type:function size:0x3C
|
||||
@84@__dt__13dSnd3DActor_cFv = .text:0x8035BB70; // type:function size:0x8
|
||||
__ct__14dSnd3DEngine_cFv = .text:0x8035BB80; // type:function size:0x3C
|
||||
__dt__Q34nw4r3snd13Sound3DEngineFv = .text:0x8035BBC0; // type:function size:0x40
|
||||
fn_8035BC00 = .text:0x8035BC00; // type:function size:0x428
|
||||
fn_8035C030 = .text:0x8035C030; // type:function size:0x188
|
||||
UpdateAmbientParam__14dSnd3DEngine_cFPCQ34nw4r3snd14Sound3DManagerPCQ34nw4r3snd12Sound3DParamUlUlPQ34nw4r3snd17SoundAmbientParam = .text:0x8035BC00; // type:function size:0x428
|
||||
CalcPitch__FPCQ34nw4r4math4VEC3fRCQ34nw4r3snd14Sound3DManagerRCQ34nw4r3snd15Sound3DListenerRCQ34nw4r3snd12Sound3DParamPf = .text:0x8035C030; // type:function size:0x188
|
||||
fn_8035C1C0 = .text:0x8035C1C0; // type:function size:0xDC
|
||||
fn_8035C2A0 = .text:0x8035C2A0; // type:function size:0x110
|
||||
fn_8035C3B0 = .text:0x8035C3B0; // type:function size:0x40
|
||||
__dt__14dSnd3DEngine_cFv = .text:0x8035C3B0; // type:function size:0x40
|
||||
fn_8035C3F0 = .text:0x8035C3F0; // type:function size:0x2F8
|
||||
fn_8035C6F0 = .text:0x8035C6F0; // type:function size:0x44
|
||||
fn_8035C740 = .text:0x8035C740; // type:function size:0x44
|
||||
@@ -19919,11 +19919,11 @@ fn_8035D940 = .text:0x8035D940; // type:function size:0x58
|
||||
fn_8035D9A0 = .text:0x8035D9A0; // type:function size:0x68
|
||||
fn_8035DA10 = .text:0x8035DA10; // type:function size:0x4C
|
||||
fn_8035DA60 = .text:0x8035DA60; // type:function size:0x28
|
||||
getSoundArchivePath = .text:0x8035DA90; // type:function size:0xC
|
||||
BgmManager__dtor = .text:0x8035DAA0; // type:function size:0x78
|
||||
initBgmMgr = .text:0x8035DB20; // type:function size:0x48
|
||||
BgmMgr__deref = .text:0x8035DB70; // type:function size:0x10
|
||||
BgmManager__ctor = .text:0x8035DB80; // type:function size:0x78
|
||||
getSoundArchivePath__15dSndPlayerMgr_cFv = .text:0x8035DA90; // type:function size:0xC
|
||||
__dt__33SndMgrDisposer<15dSndPlayerMgr_c>Fv = .text:0x8035DAA0; // type:function size:0x78
|
||||
create__33SndMgrDisposer<15dSndPlayerMgr_c>Fv = .text:0x8035DB20; // type:function size:0x48
|
||||
remove__33SndMgrDisposer<15dSndPlayerMgr_c>Fv = .text:0x8035DB70; // type:function size:0x10
|
||||
__ct__15dSndPlayerMgr_cFv = .text:0x8035DB80; // type:function size:0x78
|
||||
fn_8035DC00 = .text:0x8035DC00; // type:function size:0x44
|
||||
fn_8035DC50 = .text:0x8035DC50; // type:function size:0x8C
|
||||
fn_8035DCE0 = .text:0x8035DCE0; // type:function size:0x38
|
||||
@@ -19935,7 +19935,7 @@ fn_8035DE60 = .text:0x8035DE60; // type:function size:0x38
|
||||
fn_8035DEA0 = .text:0x8035DEA0; // type:function size:0x50
|
||||
fn_8035DEF0 = .text:0x8035DEF0; // type:function size:0x38
|
||||
fn_8035DF30 = .text:0x8035DF30; // type:function size:0x24
|
||||
fn_8035DF60 = .text:0x8035DF60; // type:function size:0x54
|
||||
getFreeSize__15dSndPlayerMgr_cFv = .text:0x8035DF60; // type:function size:0x54
|
||||
fn_8035DFC0 = .text:0x8035DFC0; // type:function size:0x3C
|
||||
fn_8035E000 = .text:0x8035E000; // type:function size:0xD4
|
||||
fn_8035E0E0 = .text:0x8035E0E0; // type:function size:0xCC
|
||||
@@ -19962,8 +19962,8 @@ fn_8035E860 = .text:0x8035E860; // type:function size:0x14
|
||||
fn_8035E880 = .text:0x8035E880; // type:function size:0x14
|
||||
fn_8035E8A0 = .text:0x8035E8A0; // type:function size:0xC
|
||||
fn_8035E8B0 = .text:0x8035E8B0; // type:function size:0xC
|
||||
fn_8035E8C0 = .text:0x8035E8C0; // type:function size:0x90
|
||||
fn_8035E950 = .text:0x8035E950; // type:function size:0x6C
|
||||
startSound__15dSndPlayerMgr_cFPQ34nw4r3snd11SoundHandleUlPCQ44nw4r3snd14SoundStartable9StartInfo = .text:0x8035E8C0; // type:function size:0x90
|
||||
startSound__15dSndPlayerMgr_cFPQ34nw4r3snd11SoundHandlePCcPCQ44nw4r3snd14SoundStartable9StartInfo = .text:0x8035E950; // type:function size:0x6C
|
||||
fn_8035E9C0 = .text:0x8035E9C0; // type:function size:0x80
|
||||
fn_8035EA40 = .text:0x8035EA40; // type:function size:0x64
|
||||
fn_8035EAB0 = .text:0x8035EAB0; // type:function size:0x28
|
||||
@@ -19975,12 +19975,12 @@ fn_8035EB50 = .text:0x8035EB50; // type:function size:0x3C
|
||||
fn_8035EB90 = .text:0x8035EB90; // type:function size:0x80
|
||||
fn_8035EC10 = .text:0x8035EC10; // type:function size:0x5C
|
||||
fn_8035EC70 = .text:0x8035EC70; // type:function size:0x84
|
||||
playSomeSound = .text:0x8035ED00; // type:function size:0x3C
|
||||
fn_8035ED40 = .text:0x8035ED40; // type:function size:0x44
|
||||
convertLabelStringToSoundId__15dSndPlayerMgr_cCFPCc = .text:0x8035ED00; // type:function size:0x3C
|
||||
getSoundArchivePlayerForType__15dSndPlayerMgr_cFUc = .text:0x8035ED40; // type:function size:0x44
|
||||
fn_8035ED90 = .text:0x8035ED90; // type:function size:0x5C
|
||||
fn_8035EDF0 = .text:0x8035EDF0; // type:function size:0x198
|
||||
loadDemoArchive__15dSndPlayerMgr_cFPCc = .text:0x8035EDF0; // type:function size:0x198
|
||||
fn_8035EF90 = .text:0x8035EF90; // type:function size:0x38
|
||||
fn_8035EFD0 = .text:0x8035EFD0; // type:function size:0x40
|
||||
calc__15dSndPlayerMgr_cFv = .text:0x8035EFD0; // type:function size:0x40
|
||||
fn_8035F010 = .text:0x8035F010; // type:function size:0x20
|
||||
fn_8035F030 = .text:0x8035F030; // type:function size:0x1C
|
||||
fn_8035F050 = .text:0x8035F050; // type:function size:0x50
|
||||
@@ -20034,18 +20034,18 @@ fn_80360AD0 = .text:0x80360AD0; // type:function size:0x5C
|
||||
fn_80360B30 = .text:0x80360B30; // type:function size:0x5C
|
||||
fn_80360B90 = .text:0x80360B90; // type:function size:0x64
|
||||
fn_80360C00 = .text:0x80360C00; // type:function size:0x28
|
||||
fn_80360C30 = .text:0x80360C30; // type:function size:0x78
|
||||
fn_80360CB0 = .text:0x80360CB0; // type:function size:0x48
|
||||
fn_80360D00 = .text:0x80360D00; // type:function size:0x10
|
||||
fn_80360D10 = .text:0x80360D10; // type:function size:0xE4
|
||||
__dt__Q34nw4r3snd14Sound3DManagerFv = .text:0x80360E00; // type:function size:0x60
|
||||
fn_80360E60 = .text:0x80360E60; // type:function size:0x118
|
||||
fn_80360F80 = .text:0x80360F80; // type:function size:0xC
|
||||
fn_80360F90 = .text:0x80360F90; // type:function size:0x20
|
||||
fn_80360FB0 = .text:0x80360FB0; // type:function size:0xC
|
||||
fn_80360FC0 = .text:0x80360FC0; // type:function size:0x18
|
||||
fn_80360FE0 = .text:0x80360FE0; // type:function size:0x390
|
||||
fn_80361370 = .text:0x80361370; // type:function size:0xEC
|
||||
__dt__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360C30; // type:function size:0x78 scope:weak
|
||||
create__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360CB0; // type:function size:0x48 scope:weak
|
||||
remove__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360D00; // type:function size:0x10 scope:weak
|
||||
__ct__15dSnd3DManager_cFv = .text:0x80360D10; // type:function size:0xE4
|
||||
__dt__Q34nw4r3snd14Sound3DManagerFv = .text:0x80360E00; // type:function size:0x60 scope:weak
|
||||
setup__15dSnd3DManager_cFv = .text:0x80360E60; // type:function size:0x118
|
||||
resetCamDistance__15dSnd3DManager_cFv = .text:0x80360F80; // type:function size:0xC
|
||||
setCamDistance__15dSnd3DManager_cFf = .text:0x80360F90; // type:function size:0x20
|
||||
calc__15dSnd3DManager_cFv = .text:0x80360FB0; // type:function size:0xC
|
||||
clearState__15dSnd3DManager_cFv = .text:0x80360FC0; // type:function size:0x18
|
||||
updateFromCamera__15dSnd3DManager_cFRQ23EGG12LookAtCamera = .text:0x80360FE0; // type:function size:0x390
|
||||
updateListenerPos__15dSnd3DManager_cFf = .text:0x80361370; // type:function size:0xEC
|
||||
EnemySoundMgr__dtor = .text:0x80361460; // type:function size:0x78
|
||||
initEnemySoundMgr = .text:0x803614E0; // type:function size:0x48
|
||||
EnemySoundMgr__deref = .text:0x80361530; // type:function size:0x10
|
||||
@@ -20876,7 +20876,7 @@ playButtonPressSoundWhenAdvancingTextBoxes__17SmallSoundManagerFf = .text:0x8037
|
||||
fn_8037F0E0 = .text:0x8037F0E0; // type:function size:0xC
|
||||
fn_8037F0F0 = .text:0x8037F0F0; // type:function size:0x60
|
||||
fn_8037F150 = .text:0x8037F150; // type:function size:0x6D0
|
||||
fn_8037F820 = .text:0x8037F820; // type:function size:0x8
|
||||
d_s_vt_0x17C__14dSoundSource_cFv = .text:0x8037F820; // type:function size:0x8
|
||||
fn_8037F830 = .text:0x8037F830; // type:function size:0x8
|
||||
fn_8037F840 = .text:0x8037F840; // type:function size:0x74
|
||||
fn_8037F8C0 = .text:0x8037F8C0; // type:function size:0x78
|
||||
@@ -20942,7 +20942,7 @@ fn_80382210 = .text:0x80382210; // type:function size:0xE8
|
||||
fn_80382300 = .text:0x80382300; // type:function size:0x28
|
||||
fn_80382330 = .text:0x80382330; // type:function size:0x7C
|
||||
fn_803823B0 = .text:0x803823B0; // type:function size:0x18
|
||||
fn_803823D0 = .text:0x803823D0; // type:function size:0x8
|
||||
d_s_vt_0x1E0__14dSoundSource_cFv = .text:0x803823D0; // type:function size:0x8
|
||||
fn_803823E0 = .text:0x803823E0; // type:function size:0x14
|
||||
fn_80382400 = .text:0x80382400; // type:function size:0xC
|
||||
fn_80382410 = .text:0x80382410; // type:function size:0xC0
|
||||
@@ -20957,9 +20957,9 @@ fn_803837C0 = .text:0x803837C0; // type:function size:0x9C
|
||||
fn_80383860 = .text:0x80383860; // type:function size:0x94
|
||||
fn_80383900 = .text:0x80383900; // type:function size:0x58
|
||||
fn_80383960 = .text:0x80383960; // type:function size:0x9C
|
||||
fn_80383A00 = .text:0x80383A00; // type:function size:0x8
|
||||
fn_80383A10 = .text:0x80383A10; // type:function size:0x8
|
||||
fn_80383A20 = .text:0x80383A20; // type:function size:0x4
|
||||
d_s_vt_0x180__14dSoundSource_cFv = .text:0x80383A00; // type:function size:0x8
|
||||
d_s_vt_0x1DC__14dSoundSource_cFv = .text:0x80383A10; // type:function size:0x8
|
||||
d_s_vt_0x1D8__14dSoundSource_cFv = .text:0x80383A20; // type:function size:0x4
|
||||
fn_80383A30 = .text:0x80383A30; // type:function size:0x78
|
||||
initEnemyBgmRelatedMgr = .text:0x80383AB0; // type:function size:0x48
|
||||
fn_80383B00 = .text:0x80383B00; // type:function size:0x10
|
||||
@@ -21019,14 +21019,14 @@ fn_803858D0 = .text:0x803858D0; // type:function size:0xA0
|
||||
fn_80385970 = .text:0x80385970; // type:function size:0x90
|
||||
fn_80385A00 = .text:0x80385A00; // type:function size:0x8
|
||||
fn_80385A10 = .text:0x80385A10; // type:function size:0x4
|
||||
fn_80385A20 = .text:0x80385A20; // type:function size:0x8
|
||||
d_s_vt_0x1D4__14dSoundSource_cFv = .text:0x80385A20; // type:function size:0x8
|
||||
fn_80385A30 = .text:0x80385A30; // type:function size:0x4
|
||||
fn_80385A40 = .text:0x80385A40; // type:function size:0x4
|
||||
fn_80385A50 = .text:0x80385A50; // type:function size:0x4
|
||||
fn_80385A60 = .text:0x80385A60; // type:function size:0x8
|
||||
fn_80385A70 = .text:0x80385A70; // type:function size:0x4
|
||||
fn_80385A80 = .text:0x80385A80; // type:function size:0x4
|
||||
fn_80385A90 = .text:0x80385A90; // type:function size:0x34
|
||||
d_s_vt_0x1CC__14dSoundSource_cFv = .text:0x80385A80; // type:function size:0x4
|
||||
d_s_vt_0x1C0__14dSoundSource_cFv = .text:0x80385A90; // type:function size:0x34
|
||||
fn_80385AD0 = .text:0x80385AD0; // type:function size:0x8
|
||||
fn_80385AE0 = .text:0x80385AE0; // type:function size:0x8
|
||||
fn_80385AF0 = .text:0x80385AF0; // type:function size:0x4
|
||||
@@ -21038,7 +21038,7 @@ fn_80385B40 = .text:0x80385B40; // type:function size:0x8
|
||||
fn_80385B50 = .text:0x80385B50; // type:function size:0x10
|
||||
fn_80385B60 = .text:0x80385B60; // type:function size:0x10
|
||||
fn_80385B70 = .text:0x80385B70; // type:function size:0x8
|
||||
fn_80385B80 = .text:0x80385B80; // type:function size:0x4
|
||||
d_s_vt_0x188__14dSoundSource_cFv = .text:0x80385B80; // type:function size:0x4
|
||||
fn_80385B90 = .text:0x80385B90; // type:function size:0x4
|
||||
fn_80385BA0 = .text:0x80385BA0; // type:function size:0x8
|
||||
fn_80385BB0 = .text:0x80385BB0; // type:function size:0x14
|
||||
@@ -21103,12 +21103,12 @@ fn_80386410 = .text:0x80386410; // type:function size:0x8
|
||||
fn_80386420 = .text:0x80386420; // type:function size:0x8
|
||||
fn_80386430 = .text:0x80386430; // type:function size:0x8
|
||||
fn_80386440 = .text:0x80386440; // type:function size:0x8
|
||||
fn_80386450 = .text:0x80386450; // type:function size:0x8
|
||||
@4@d_vt_0x38__14dSoundSource_cFbi = .text:0x80386450; // type:function size:0x8
|
||||
fn_80386460 = .text:0x80386460; // type:function size:0x8
|
||||
fn_80386470 = .text:0x80386470; // type:function size:0x8
|
||||
fn_80386480 = .text:0x80386480; // type:function size:0x8
|
||||
fn_80386490 = .text:0x80386490; // type:function size:0x8
|
||||
fn_803864A0 = .text:0x803864A0; // type:function size:0x8
|
||||
@4@SetupSound__14dSoundSource_cFPQ34nw4r3snd11SoundHandleUlPCQ44nw4r3snd14SoundStartable9StartInfoPv = .text:0x80386480; // type:function size:0x8
|
||||
@4@d_vt_0x5C__14dSoundSource_cFv = .text:0x80386490; // type:function size:0x8
|
||||
@4@d_vt_0x58__14dSoundSource_cFv = .text:0x803864A0; // type:function size:0x8
|
||||
fn_803864B0 = .text:0x803864B0; // type:function size:0x8
|
||||
fn_803864C0 = .text:0x803864C0; // type:function size:0x8
|
||||
fn_803864D0 = .text:0x803864D0; // type:function size:0x164
|
||||
@@ -21130,16 +21130,16 @@ fn_80386DE0 = .text:0x80386DE0; // type:function size:0x110
|
||||
fn_80386EF0 = .text:0x80386EF0; // type:function size:0x80
|
||||
fn_80386F70 = .text:0x80386F70; // type:function size:0x1A4C
|
||||
soundForActorInitRelated_803889c0 = .text:0x803889C0; // type:function size:0x4
|
||||
fn_803889D0 = .text:0x803889D0; // type:function size:0x108
|
||||
fn_80388AE0 = .text:0x80388AE0; // type:function size:0xC4
|
||||
__ct__14dSoundSource_cFUcP9dAcBase_cii = .text:0x803889D0; // type:function size:0x108
|
||||
__dt__14dSoundSource_cFv = .text:0x80388AE0; // type:function size:0xC4
|
||||
fn_80388BB0 = .text:0x80388BB0; // type:function size:0x118
|
||||
fn_80388CD0 = .text:0x80388CD0; // type:function size:0x9C
|
||||
fn_80388D70 = .text:0x80388D70; // type:function size:0x80
|
||||
fn_80388DF0 = .text:0x80388DF0; // type:function size:0xC
|
||||
fn_80388E00 = .text:0x80388E00; // type:function size:0x88
|
||||
fn_80388E90 = .text:0x80388E90; // type:function size:0x84
|
||||
fn_80388F20 = .text:0x80388F20; // type:function size:0x4
|
||||
fn_80388F30 = .text:0x80388F30; // type:function size:0x8
|
||||
d_s_vt_0x184__14dSoundSource_cFv = .text:0x80388E90; // type:function size:0x84
|
||||
d_s_vt_0x18C__14dSoundSource_cFv = .text:0x80388F20; // type:function size:0x4
|
||||
hasPlayingSounds__14dSoundSource_cCFv = .text:0x80388F30; // type:function size:0x8
|
||||
fn_80388F40 = .text:0x80388F40; // type:function size:0x8
|
||||
fn_80388F50 = .text:0x80388F50; // type:function size:0x48
|
||||
fn_80388FA0 = .text:0x80388FA0; // type:function size:0x14
|
||||
@@ -21148,8 +21148,8 @@ fn_80389050 = .text:0x80389050; // type:function size:0x68
|
||||
fn_803890C0 = .text:0x803890C0; // type:function size:0x18
|
||||
fn_803890E0 = .text:0x803890E0; // type:function size:0x1C
|
||||
fn_80389100 = .text:0x80389100; // type:function size:0x60
|
||||
fn_80389160 = .text:0x80389160; // type:function size:0x40
|
||||
fn_803891A0 = .text:0x803891A0; // type:function size:0xB0
|
||||
d_s_vt_0x190__14dSoundSource_cFv = .text:0x80389160; // type:function size:0x40
|
||||
d_vt_0x38__14dSoundSource_cFbi = .text:0x803891A0; // type:function size:0xB0
|
||||
fn_80389250 = .text:0x80389250; // type:function size:0x30
|
||||
fn_80389280 = .text:0x80389280; // type:function size:0x48
|
||||
fn_803892D0 = .text:0x803892D0; // type:function size:0x64
|
||||
@@ -21171,7 +21171,7 @@ fn_80389D50 = .text:0x80389D50; // type:function size:0x78
|
||||
fn_80389DD0 = .text:0x80389DD0; // type:function size:0x11C
|
||||
fn_80389EF0 = .text:0x80389EF0; // type:function size:0x58
|
||||
fn_80389F50 = .text:0x80389F50; // type:function size:0x208
|
||||
fn_8038A160 = .text:0x8038A160; // type:function size:0x6C
|
||||
d_s_vt_0x19C__14dSoundSource_cFv = .text:0x8038A160; // type:function size:0x6C
|
||||
fn_8038A1D0 = .text:0x8038A1D0; // type:function size:0xD8
|
||||
fn_8038A2B0 = .text:0x8038A2B0; // type:function size:0x48
|
||||
fn_8038A300 = .text:0x8038A300; // type:function size:0x10
|
||||
@@ -21189,22 +21189,22 @@ fn_8038A740 = .text:0x8038A740; // type:function size:0x1E8
|
||||
fn_8038A930 = .text:0x8038A930; // type:function size:0x1D0
|
||||
fn_8038AB00 = .text:0x8038AB00; // type:function size:0x258
|
||||
fn_8038AD60 = .text:0x8038AD60; // type:function size:0x58
|
||||
fn_8038ADC0 = .text:0x8038ADC0; // type:function size:0xAC
|
||||
fn_8038AE70 = .text:0x8038AE70; // type:function size:0x98
|
||||
fn_8038AF10 = .text:0x8038AF10; // type:function size:0x254
|
||||
SetupSound__14dSoundSource_cFPQ34nw4r3snd11SoundHandleUlPCQ44nw4r3snd14SoundStartable9StartInfoPv = .text:0x8038ADC0; // type:function size:0xAC
|
||||
d_s_vt_0x1AC__14dSoundSource_cFv = .text:0x8038AE70; // type:function size:0x98
|
||||
d_s_vt_0x1B0__14dSoundSource_cFv = .text:0x8038AF10; // type:function size:0x254
|
||||
getVolumePercentMaybe = .text:0x8038B170; // type:function size:0x78
|
||||
fn_8038B1F0 = .text:0x8038B1F0; // type:function size:0x90
|
||||
fn_8038B280 = .text:0x8038B280; // type:function size:0x94
|
||||
fn_8038B320 = .text:0x8038B320; // type:function size:0x24
|
||||
d_s_vt_0x1C8__14dSoundSource_cFv = .text:0x8038B320; // type:function size:0x24
|
||||
fn_8038B350 = .text:0x8038B350; // type:function size:0x30
|
||||
fn_8038B380 = .text:0x8038B380; // type:function size:0x8
|
||||
fn_8038B390 = .text:0x8038B390; // type:function size:0x4
|
||||
fn_8038B3A0 = .text:0x8038B3A0; // type:function size:0x8
|
||||
fn_8038B3B0 = .text:0x8038B3B0; // type:function size:0x4
|
||||
fn_8038B3C0 = .text:0x8038B3C0; // type:function size:0x54
|
||||
fn_8038B420 = .text:0x8038B420; // type:function size:0x60
|
||||
fn_8038B480 = .text:0x8038B480; // type:function size:0x74
|
||||
fn_8038B500 = .text:0x8038B500; // type:function size:0x84
|
||||
d_s_vt_0x194__14dSoundSource_cFv = .text:0x8038B380; // type:function size:0x8
|
||||
d_vt_0x58__14dSoundSource_cFv = .text:0x8038B390; // type:function size:0x4
|
||||
d_s_vt_0x1A0__14dSoundSource_cFv = .text:0x8038B3A0; // type:function size:0x8
|
||||
d_vt_0x5C__14dSoundSource_cFv = .text:0x8038B3B0; // type:function size:0x4
|
||||
d_s_vt_0x1B4__14dSoundSource_cFv = .text:0x8038B3C0; // type:function size:0x54
|
||||
d_s_vt_0x1B8__14dSoundSource_cFv = .text:0x8038B420; // type:function size:0x60
|
||||
d_s_vt_0x1BC__14dSoundSource_cFv = .text:0x8038B480; // type:function size:0x74
|
||||
d_s_vt_0x1C4__14dSoundSource_cFv = .text:0x8038B500; // type:function size:0x84
|
||||
fn_8038B590 = .text:0x8038B590; // type:function size:0x24
|
||||
fn_8038B5C0 = .text:0x8038B5C0; // type:function size:0x24
|
||||
fn_8038B5F0 = .text:0x8038B5F0; // type:function size:0x60
|
||||
@@ -21223,17 +21223,17 @@ fn_8038BB80 = .text:0x8038BB80; // type:function size:0x6C
|
||||
fn_8038BBF0 = .text:0x8038BBF0; // type:function size:0x144
|
||||
fn_8038BD40 = .text:0x8038BD40; // type:function size:0x20
|
||||
fn_8038BD60 = .text:0x8038BD60; // type:function size:0xC
|
||||
fn_8038BD70 = .text:0x8038BD70; // type:function size:0x4
|
||||
d_s_vt_0x1E4__14dSoundSource_cFv = .text:0x8038BD70; // type:function size:0x4
|
||||
fn_8038BD80 = .text:0x8038BD80; // type:function size:0xB8
|
||||
fn_8038BE40 = .text:0x8038BE40; // type:function size:0xC4
|
||||
fn_8038BF10 = .text:0x8038BF10; // type:function size:0x104
|
||||
fn_8038C020 = .text:0x8038C020; // type:function size:0x8
|
||||
fn_8038C030 = .text:0x8038C030; // type:function size:0x58
|
||||
d_s_vt_0x1E8__14dSoundSource_cFv = .text:0x8038C020; // type:function size:0x8
|
||||
getRemoConSoundVariant__14dSoundSource_cCFUl = .text:0x8038C030; // type:function size:0x58
|
||||
fn_8038C090 = .text:0x8038C090; // type:function size:0xBC
|
||||
fn_8038C150 = .text:0x8038C150; // type:function size:0x280
|
||||
fn_8038C3D0 = .text:0x8038C3D0; // type:function size:0x18
|
||||
fn_8038C3F0 = .text:0x8038C3F0; // type:function size:0x8
|
||||
fn_8038C400 = .text:0x8038C400; // type:function size:0x8
|
||||
__sinit_\d_snd_source_cpp = .text:0x8038C3D0; // type:function size:0x18
|
||||
@88@__dt__14dSoundSource_cFv = .text:0x8038C3F0; // type:function size:0x8
|
||||
@4@__dt__14dSoundSource_cFv = .text:0x8038C400; // type:function size:0x8
|
||||
fn_8038C410 = .text:0x8038C410; // type:function size:0xEC
|
||||
fn_8038C500 = .text:0x8038C500; // type:function size:0xC4
|
||||
fn_8038C5D0 = .text:0x8038C5D0; // type:function size:0x3D0
|
||||
@@ -21623,9 +21623,9 @@ fn_80399A40 = .text:0x80399A40; // type:function size:0x50
|
||||
fn_80399A90 = .text:0x80399A90; // type:function size:0x44
|
||||
fn_80399AE0 = .text:0x80399AE0; // type:function size:0x5C
|
||||
fn_80399B40 = .text:0x80399B40; // type:function size:0x60
|
||||
fn_80399BA0 = .text:0x80399BA0; // type:function size:0x78
|
||||
fn_80399C20 = .text:0x80399C20; // type:function size:0x84
|
||||
fn_80399CB0 = .text:0x80399CB0; // type:function size:0x10
|
||||
__dt__32SndMgrDisposer<14SndMgr80399c20>Fv = .text:0x80399BA0; // type:function size:0x78
|
||||
create__32SndMgrDisposer<14SndMgr80399c20>Fv = .text:0x80399C20; // type:function size:0x84
|
||||
remove__32SndMgrDisposer<14SndMgr80399c20>Fv = .text:0x80399CB0; // type:function size:0x10
|
||||
fn_80399CC0 = .text:0x80399CC0; // type:function size:0x34
|
||||
fn_80399D00 = .text:0x80399D00; // type:function size:0x5C
|
||||
fn_80399D60 = .text:0x80399D60; // type:function size:0x44
|
||||
@@ -21672,7 +21672,7 @@ AIRegisterDMACallback = .text:0x8039AF80; // type:function size:0x44
|
||||
AIInitDMA = .text:0x8039AFD0; // type:function size:0x7C
|
||||
AIStartDMA = .text:0x8039B050; // type:function size:0x14
|
||||
AIStopDMA = .text:0x8039B070; // type:function size:0x14
|
||||
fn_8039B090 = .text:0x8039B090; // type:function size:0x10
|
||||
AIGetDMABytesLeft = .text:0x8039B090; // type:function size:0x10
|
||||
fn_8039B0A0 = .text:0x8039B0A0; // type:function size:0x18
|
||||
fn_8039B0C0 = .text:0x8039B0C0; // type:function size:0x10
|
||||
AICheckInit = .text:0x8039B0D0; // type:function size:0x8
|
||||
@@ -21695,60 +21695,60 @@ ARCOpenDir = .text:0x8039BE10; // type:function size:0x7C
|
||||
ARCReadDir = .text:0x8039BE90; // type:function size:0xBC
|
||||
ARCCloseDir = .text:0x8039BF50; // type:function size:0x8
|
||||
AXInit = .text:0x8039BF60; // type:function size:0x54
|
||||
fn_8039BFC0 = .text:0x8039BFC0; // type:function size:0x8
|
||||
fn_8039BFD0 = .text:0x8039BFD0; // type:function size:0x14
|
||||
fn_8039BFF0 = .text:0x8039BFF0; // type:function size:0xAC
|
||||
fn_8039C0A0 = .text:0x8039C0A0; // type:function size:0xB0
|
||||
fn_8039C150 = .text:0x8039C150; // type:function size:0x1C
|
||||
fn_8039C170 = .text:0x8039C170; // type:function size:0x10
|
||||
fn_8039C180 = .text:0x8039C180; // type:function size:0x84
|
||||
AXIsInit = .text:0x8039BFC0; // type:function size:0x8
|
||||
__AXGetStackHead = .text:0x8039BFD0; // type:function size:0x14
|
||||
__AXServiceCallbackStack = .text:0x8039BFF0; // type:function size:0xAC
|
||||
__AXAllocInit = .text:0x8039C0A0; // type:function size:0xB0
|
||||
__AXPushFreeStack = .text:0x8039C150; // type:function size:0x1C
|
||||
__AXPushCallbackStack = .text:0x8039C170; // type:function size:0x10
|
||||
__AXRemoveFromStack = .text:0x8039C180; // type:function size:0x84
|
||||
AXFreeVoice = .text:0x8039C210; // type:function size:0x7C
|
||||
AXAcquireVoice = .text:0x8039C290; // type:function size:0x184
|
||||
AXSetVoicePriority = .text:0x8039C420; // type:function size:0x9C
|
||||
fn_8039C4C0 = .text:0x8039C4C0; // type:function size:0x114
|
||||
fn_8039C5E0 = .text:0x8039C5E0; // type:function size:0x34
|
||||
fn_8039C620 = .text:0x8039C620; // type:function size:0x1C
|
||||
__AXAuxInit = .text:0x8039C4C0; // type:function size:0x114
|
||||
__AXGetAuxAInput = .text:0x8039C5E0; // type:function size:0x34
|
||||
__AXGetAuxAOutput = .text:0x8039C620; // type:function size:0x1C
|
||||
fn_8039C640 = .text:0x8039C640; // type:function size:0x20
|
||||
fn_8039C660 = .text:0x8039C660; // type:function size:0x20
|
||||
fn_8039C680 = .text:0x8039C680; // type:function size:0x20
|
||||
fn_8039C6A0 = .text:0x8039C6A0; // type:function size:0x20
|
||||
fn_8039C6C0 = .text:0x8039C6C0; // type:function size:0x34
|
||||
fn_8039C700 = .text:0x8039C700; // type:function size:0x1C
|
||||
__AXGetAuxBInput = .text:0x8039C6C0; // type:function size:0x34
|
||||
__AXGetAuxBOutput = .text:0x8039C700; // type:function size:0x1C
|
||||
fn_8039C720 = .text:0x8039C720; // type:function size:0x20
|
||||
fn_8039C740 = .text:0x8039C740; // type:function size:0x20
|
||||
fn_8039C760 = .text:0x8039C760; // type:function size:0x20
|
||||
fn_8039C780 = .text:0x8039C780; // type:function size:0x20
|
||||
fn_8039C7A0 = .text:0x8039C7A0; // type:function size:0x34
|
||||
fn_8039C7E0 = .text:0x8039C7E0; // type:function size:0x1C
|
||||
fn_8039C800 = .text:0x8039C800; // type:function size:0x3AC
|
||||
__AXGetAuxCInput = .text:0x8039C7A0; // type:function size:0x34
|
||||
__AXGetAuxCOutput = .text:0x8039C7E0; // type:function size:0x1C
|
||||
__AXProcessAux = .text:0x8039C800; // type:function size:0x3AC
|
||||
AXRegisterAuxACallback = .text:0x8039CBB0; // type:function size:0x64
|
||||
AXRegisterAuxBCallback = .text:0x8039CC20; // type:function size:0x64
|
||||
AXRegisterAuxCCallback = .text:0x8039CC90; // type:function size:0x64
|
||||
AXGetAuxACallback = .text:0x8039CD00; // type:function size:0x14
|
||||
AXGetAuxBCallback = .text:0x8039CD20; // type:function size:0x14
|
||||
AXGetAuxCCallback = .text:0x8039CD40; // type:function size:0x14
|
||||
fn_8039CD60 = .text:0x8039CD60; // type:function size:0x8
|
||||
fn_8039CD70 = .text:0x8039CD70; // type:function size:0x30
|
||||
fn_8039CDA0 = .text:0x8039CDA0; // type:function size:0x9BC
|
||||
fn_8039D760 = .text:0x8039D760; // type:function size:0x50
|
||||
__AXGetCommandListCycles = .text:0x8039CD60; // type:function size:0x8
|
||||
__AXGetCommandListAddress = .text:0x8039CD70; // type:function size:0x30
|
||||
__AXNextFrame = .text:0x8039CDA0; // type:function size:0x9BC
|
||||
__AXClInit = .text:0x8039D760; // type:function size:0x50
|
||||
AXSetMode = .text:0x8039D7B0; // type:function size:0x8
|
||||
fn_8039D7C0 = .text:0x8039D7C0; // type:function size:0x8
|
||||
AXGetMode = .text:0x8039D7C0; // type:function size:0x8
|
||||
fn_8039D7D0 = .text:0x8039D7D0; // type:function size:0x8
|
||||
fn_8039D7E0 = .text:0x8039D7E0; // type:function size:0x8
|
||||
fn_8039D7F0 = .text:0x8039D7F0; // type:function size:0x8
|
||||
fn_8039D800 = .text:0x8039D800; // type:function size:0x8
|
||||
AXGetAuxAReturnVolume = .text:0x8039D7E0; // type:function size:0x8
|
||||
AXGetAuxBReturnVolume = .text:0x8039D7F0; // type:function size:0x8
|
||||
AXGetAuxCReturnVolume = .text:0x8039D800; // type:function size:0x8
|
||||
AXSetMasterVolume = .text:0x8039D810; // type:function size:0x18
|
||||
AXSetAuxAReturnVolume = .text:0x8039D830; // type:function size:0x8
|
||||
AXSetAuxBReturnVolume = .text:0x8039D840; // type:function size:0x8
|
||||
AXSetAuxCReturnVolume = .text:0x8039D850; // type:function size:0x8
|
||||
fn_8039D860 = .text:0x8039D860; // type:function size:0x260
|
||||
fn_8039DAC0 = .text:0x8039DAC0; // type:function size:0xB0
|
||||
__AXOutNewFrame = .text:0x8039D860; // type:function size:0x260
|
||||
__AXOutAiCallback = .text:0x8039DAC0; // type:function size:0xB0
|
||||
fn_8039DB70 = .text:0x8039DB70; // type:function size:0xC
|
||||
fn_8039DB80 = .text:0x8039DB80; // type:function size:0x54
|
||||
fn_8039DBE0 = .text:0x8039DBE0; // type:function size:0x10
|
||||
__AXDSPDoneCallback = .text:0x8039DBE0; // type:function size:0x10
|
||||
fn_8039DBF0 = .text:0x8039DBF0; // type:function size:0x4
|
||||
fn_8039DC00 = .text:0x8039DC00; // type:function size:0xEC
|
||||
fn_8039DCF0 = .text:0x8039DCF0; // type:function size:0x1F8
|
||||
__AXOutInitDSP = .text:0x8039DC00; // type:function size:0xEC
|
||||
__AXOutInit = .text:0x8039DCF0; // type:function size:0x1F8
|
||||
AXRegisterCallback = .text:0x8039DEF0; // type:function size:0x44
|
||||
AXRmtGetSamplesLeft = .text:0x8039DF40; // type:function size:0x2C
|
||||
AXRmtGetSamples = .text:0x8039DF70; // type:function size:0xC4
|
||||
@@ -21756,12 +21756,12 @@ AXRmtAdvancePtr = .text:0x8039E040; // type:function size:0x58
|
||||
fn_8039E0A0 = .text:0x8039E0A0; // type:function size:0xC
|
||||
fn_8039E0B0 = .text:0x8039E0B0; // type:function size:0x6C
|
||||
fn_8039E120 = .text:0x8039E120; // type:function size:0x6C
|
||||
fn_8039E190 = .text:0x8039E190; // type:function size:0x178
|
||||
__AXPrintStudio = .text:0x8039E190; // type:function size:0x178
|
||||
fn_8039E310 = .text:0x8039E310; // type:function size:0x58
|
||||
fn_8039E370 = .text:0x8039E370; // type:function size:0x15C
|
||||
fn_8039E4D0 = .text:0x8039E4D0; // type:function size:0x8
|
||||
fn_8039E4E0 = .text:0x8039E4E0; // type:function size:0x550
|
||||
fn_8039EA30 = .text:0x8039EA30; // type:function size:0x310
|
||||
__AXSyncPBs = .text:0x8039EA30; // type:function size:0x310
|
||||
fn_8039ED40 = .text:0x8039ED40; // type:function size:0x8
|
||||
fn_8039ED50 = .text:0x8039ED50; // type:function size:0x40
|
||||
fn_8039ED90 = .text:0x8039ED90; // type:function size:0x30
|
||||
@@ -21771,16 +21771,16 @@ AXSetVoiceAddr = .text:0x8039F0C0; // type:function size:0xE8
|
||||
AXGetLpfCoefs = .text:0x8039F1B0; // type:function size:0xBC
|
||||
AXSetMaxDspCycles = .text:0x8039F270; // type:function size:0x8
|
||||
AXGetMaxVoices = .text:0x8039F280; // type:function size:0x8
|
||||
fn_8039F290 = .text:0x8039F290; // type:function size:0x40
|
||||
fn_8039F2D0 = .text:0x8039F2D0; // type:function size:0x64
|
||||
fn_8039F340 = .text:0x8039F340; // type:function size:0x24
|
||||
fn_8039F370 = .text:0x8039F370; // type:function size:0x4
|
||||
fn_8039F380 = .text:0x8039F380; // type:function size:0x19C
|
||||
fn_8039F520 = .text:0x8039F520; // type:function size:0x54
|
||||
fn_8039F580 = .text:0x8039F580; // type:function size:0x524
|
||||
__AllocDelayLine = .text:0x8039FAB0; // type:function size:0x174
|
||||
__BzeroDelayLines = .text:0x8039FC30; // type:function size:0x124
|
||||
__FreeDelayLine = .text:0x8039FD60; // type:function size:0x114
|
||||
__AXGetCurrentProfile = .text:0x8039F290; // type:function size:0x40 scope:local
|
||||
AXFXReverbHiInit = .text:0x8039F2D0; // type:function size:0x64
|
||||
AXFXReverbHiShutdown = .text:0x8039F340; // type:function size:0x24
|
||||
AXFXReverbHiCallback = .text:0x8039F370; // type:function size:0x4
|
||||
AXFXReverbHiExpInit = .text:0x8039F380; // type:function size:0x19C
|
||||
AXFXReverbHiExpShutdown = .text:0x8039F520; // type:function size:0x54
|
||||
AXFXReverbHiExpCallback = .text:0x8039F580; // type:function size:0x524
|
||||
__AllocDelayLine = .text:0x8039FAB0; // type:function size:0x174 scope:local
|
||||
__BzeroDelayLines = .text:0x8039FC30; // type:function size:0x124 scope:local
|
||||
__FreeDelayLine = .text:0x8039FD60; // type:function size:0x114 scope:local
|
||||
fn_8039FE80 = .text:0x8039FE80; // type:function size:0x324
|
||||
AXFXReverbStdExpGetMemSize = .text:0x803A01B0; // type:function size:0x60
|
||||
AXFXReverbStdExpInit = .text:0x803A0210; // type:function size:0x17C
|
||||
@@ -21788,22 +21788,22 @@ AXFXReverbStdExpSettings = .text:0x803A0390; // type:function size:0xD0
|
||||
AXFXReverbStdExpSettingsUpdate = .text:0x803A0460; // type:function size:0xB4
|
||||
AXFXReverbStdExpShutdown = .text:0x803A0520; // type:function size:0x54
|
||||
AXFXReverbStdExpCallback = .text:0x803A0580; // type:function size:0x36C
|
||||
fn_803A08F0 = .text:0x803A08F0; // type:function size:0x144
|
||||
fn_803A0A40 = .text:0x803A0A40; // type:function size:0x100
|
||||
fn_803A0B40 = .text:0x803A0B40; // type:function size:0xF0
|
||||
fn_803A0C30 = .text:0x803A0C30; // type:function size:0x2AC
|
||||
__AllocDelayLine = .text:0x803A08F0; // type:function size:0x144 scope:local
|
||||
__BzeroDelayLines = .text:0x803A0A40; // type:function size:0x100 scope:local
|
||||
__FreeDelayLine = .text:0x803A0B40; // type:function size:0xF0 scope:local
|
||||
__InitParams = .text:0x803A0C30; // type:function size:0x2AC scope:local
|
||||
AXFXReverbStdExpGetMemSizeDpl2 = .text:0x803A0EE0; // type:function size:0x60
|
||||
AXFXReverbStdExpInitDpl2 = .text:0x803A0F40; // type:function size:0x198
|
||||
AXFXReverbStdExpSettingsDpl2 = .text:0x803A10E0; // type:function size:0xD0
|
||||
AXFXReverbStdExpSettingsUpdateDpl2 = .text:0x803A11B0; // type:function size:0xB4
|
||||
AXFXReverbStdExpShutdownDpl2 = .text:0x803A1270; // type:function size:0x54
|
||||
AXFXReverbStdExpCallbackDpl2 = .text:0x803A12D0; // type:function size:0x384
|
||||
fn_803A1660 = .text:0x803A1660; // type:function size:0x144
|
||||
fn_803A17B0 = .text:0x803A17B0; // type:function size:0x100
|
||||
fn_803A18B0 = .text:0x803A18B0; // type:function size:0xF0
|
||||
fn_803A19A0 = .text:0x803A19A0; // type:function size:0x2B0
|
||||
fn_803A1C50 = .text:0x803A1C50; // type:function size:0xC
|
||||
fn_803A1C60 = .text:0x803A1C60; // type:function size:0xC
|
||||
__AllocDelayLine = .text:0x803A1660; // type:function size:0x144 scope:local
|
||||
__BzeroDelayLines = .text:0x803A17B0; // type:function size:0x100 scope:local
|
||||
__FreeDelayLine = .text:0x803A18B0; // type:function size:0xF0 scope:local
|
||||
__InitParams = .text:0x803A19A0; // type:function size:0x2B0 scope:local
|
||||
__AXFXAllocFunction = .text:0x803A1C50; // type:function size:0xC scope:local
|
||||
__AXFXFreeFunction = .text:0x803A1C60; // type:function size:0xC scope:local
|
||||
AXFXSetHooks = .text:0x803A1C70; // type:function size:0xC
|
||||
AXFXGetHooks = .text:0x803A1C80; // type:function size:0x14
|
||||
PPCMfmsr = .text:0x803A1CA0; // type:function size:0x8 scope:global
|
||||
@@ -22597,18 +22597,18 @@ fn_803CDC00 = .text:0x803CDC00; // type:function size:0x18
|
||||
fn_803CDC20 = .text:0x803CDC20; // type:function size:0x70
|
||||
fn_803CDC90 = .text:0x803CDC90; // type:function size:0x6C
|
||||
MEMGetNextListObject = .text:0x803CDD00; // type:function size:0x20
|
||||
dsp__DSPCheckMailToDSP = .text:0x803CDD20; // type:function size:0x10
|
||||
dsp__DSPCheckMailFromDSP = .text:0x803CDD30; // type:function size:0x10
|
||||
dsp__DSPReadMailFromDSP = .text:0x803CDD40; // type:function size:0x14
|
||||
dsp__DSPSendMailToDSP = .text:0x803CDD60; // type:function size:0x14
|
||||
dsp__DSPInit = .text:0x803CDD80; // type:function size:0xC0
|
||||
DSPCheckMailToDSP = .text:0x803CDD20; // type:function size:0x10
|
||||
DSPCheckMailFromDSP = .text:0x803CDD30; // type:function size:0x10
|
||||
DSPReadMailFromDSP = .text:0x803CDD40; // type:function size:0x14
|
||||
DSPSendMailToDSP = .text:0x803CDD60; // type:function size:0x14
|
||||
DSPInit = .text:0x803CDD80; // type:function size:0xC0
|
||||
fn_803CDE40 = .text:0x803CDE40; // type:function size:0x8
|
||||
fn_803CDE50 = .text:0x803CDE50; // type:function size:0x70
|
||||
DSPAddTask = .text:0x803CDE50; // type:function size:0x70
|
||||
fn_803CDEC0 = .text:0x803CDEC0; // type:function size:0xBC
|
||||
dsp____DSP_debug_printf = .text:0x803CDF80; // type:function size:0x50
|
||||
__DSP_debug_printf = .text:0x803CDF80; // type:function size:0x50
|
||||
fn_803CDFD0 = .text:0x803CDFD0; // type:function size:0x42C
|
||||
dsp____DSP_exec_task = .text:0x803CE400; // type:function size:0x1A4
|
||||
dsp____DSP_boot_task = .text:0x803CE5B0; // type:function size:0x18C
|
||||
__DSP_exec_task = .text:0x803CE400; // type:function size:0x1A4
|
||||
__DSP_boot_task = .text:0x803CE5B0; // type:function size:0x18C
|
||||
fn_803CE740 = .text:0x803CE740; // type:function size:0xA0
|
||||
fn_803CE7E0 = .text:0x803CE7E0; // type:function size:0x88
|
||||
ESP_InitLib = .text:0x803CE870; // type:function size:0x54 scope:global
|
||||
@@ -37630,22 +37630,22 @@ __vt__12dCcMassS_Obj = .data:0x80548598; // type:object size:0xC
|
||||
__vt__4dCcS = .data:0x805485A8; // type:object size:0xC
|
||||
lbl_805485B8 = .data:0x805485B8; // type:object size:0xC
|
||||
lbl_805485C4 = .data:0x805485C4; // type:object size:0xC
|
||||
lbl_805485D0 = .data:0x805485D0; // type:object size:0xA8
|
||||
lbl_80548678 = .data:0x80548678; // type:object size:0xC
|
||||
lbl_80548684 = .data:0x80548684; // type:object size:0x1C
|
||||
lbl_805486A0 = .data:0x805486A0; // type:object size:0x10
|
||||
lbl_805486B0 = .data:0x805486B0; // type:object size:0x60
|
||||
lbl_80548710 = .data:0x80548710; // type:object size:0x20
|
||||
__vt__9dSndMgr_c = .data:0x805485D0; // type:object size:0xA8
|
||||
__vt__22SoundPropertiesChecker = .data:0x80548678; // type:object size:0xC
|
||||
__vt__11dSndActor_c = .data:0x80548684; // type:object size:0x1C scope:weak
|
||||
__vt__23IsCurrentSoundIdChecker = .data:0x805486A0; // type:object size:0x10
|
||||
__vt__13dSnd3DActor_c = .data:0x805486B0; // type:object size:0x60
|
||||
__vt__14dSnd3DEngine_c = .data:0x80548710; // type:object size:0x20
|
||||
lbl_80548730 = .data:0x80548730; // type:object size:0x28
|
||||
lbl_80548758 = .data:0x80548758; // type:object size:0x14 data:string
|
||||
lbl_8054876C = .data:0x8054876C; // type:object size:0x14 data:string
|
||||
lbl_80548780 = .data:0x80548780; // type:object size:0x10
|
||||
lbl_80548790 = .data:0x80548790; // type:object size:0x10
|
||||
__vt__15dSndPlayerMgr_c = .data:0x80548780; // type:object size:0x10
|
||||
__vt__33SndMgrDisposer<15dSndPlayerMgr_c> = .data:0x80548790; // type:object size:0xC
|
||||
lbl_805487A0 = .data:0x805487A0; // type:object size:0xC
|
||||
lbl_805487AC = .data:0x805487AC; // type:object size:0xC
|
||||
lbl_805487B8 = .data:0x805487B8; // type:object size:0xC
|
||||
lbl_805487C4 = .data:0x805487C4; // type:object size:0xC
|
||||
lbl_805487D0 = .data:0x805487D0; // type:object size:0x10
|
||||
__vt__33SndMgrDisposer<15dSnd3DManager_c> = .data:0x805487D0; // type:object size:0xC scope:weak
|
||||
lbl_805487E0 = .data:0x805487E0; // type:object size:0xAC
|
||||
lbl_8054888C = .data:0x8054888C; // type:object size:0xC
|
||||
lbl_80548898 = .data:0x80548898; // type:object size:0xC
|
||||
@@ -37753,8 +37753,8 @@ lbl_8054A488 = .data:0x8054A488; // type:object size:0x1EC
|
||||
lbl_8054A674 = .data:0x8054A674; // type:object size:0xC
|
||||
lbl_8054A680 = .data:0x8054A680; // type:object size:0x150
|
||||
lbl_8054A7D0 = .data:0x8054A7D0; // type:object size:0xC
|
||||
lbl_8054A7DC = .data:0x8054A7DC; // type:object size:0x1EC
|
||||
lbl_8054A9C8 = .data:0x8054A9C8; // type:object size:0x120
|
||||
__vt__14dSoundSource_c = .data:0x8054A7DC; // type:object size:0x1EC
|
||||
__vt__16dSoundSourceIf_c = .data:0x8054A9C8; // type:object size:0x120
|
||||
lbl_8054AAE8 = .data:0x8054AAE8; // type:object size:0x38
|
||||
lbl_8054AB20 = .data:0x8054AB20; // type:object size:0x3F8
|
||||
jumptable_8054AF18 = .data:0x8054AF18; // type:object size:0xA8 scope:local
|
||||
@@ -41887,16 +41887,16 @@ l_start = .sbss:0x80575D18; // type:object size:0x4 data:4byte
|
||||
l_wcsbuf_num = .sbss:0x80575D1C; // type:object size:0x4 data:4byte
|
||||
sInstance__4dCcS = .sbss:0x80575D20; // type:object size:0x4 data:4byte
|
||||
lbl_80575D28 = .sbss:0x80575D28; // type:object size:0x8 data:4byte
|
||||
lbl_80575D30 = .sbss:0x80575D30; // type:object size:0x8 data:4byte
|
||||
BGM_MGR = .sbss:0x80575D38; // type:object size:0x4 data:4byte
|
||||
BGM_MGR_source = .sbss:0x80575D3C; // type:object size:0x4 data:4byte
|
||||
sInstance__9dSndMgr_c = .sbss:0x80575D30; // type:object size:0x8 data:4byte
|
||||
sInstance__15dSndPlayerMgr_c = .sbss:0x80575D38; // type:object size:0x4 data:4byte
|
||||
sDisposer__15dSndPlayerMgr_c = .sbss:0x80575D3C; // type:object size:0x4 data:4byte
|
||||
lbl_80575D40 = .sbss:0x80575D40; // type:object size:0x4 data:4byte
|
||||
lbl_80575D44 = .sbss:0x80575D44; // type:object size:0x4 data:4byte
|
||||
lbl_80575D48 = .sbss:0x80575D48; // type:object size:0x4 data:4byte
|
||||
lbl_80575D4C = .sbss:0x80575D4C; // type:object size:0x4 data:4byte
|
||||
lbl_80575D50 = .sbss:0x80575D50; // type:object size:0x8 data:4byte
|
||||
lbl_80575D58 = .sbss:0x80575D58; // type:object size:0x4 data:4byte
|
||||
lbl_80575D5C = .sbss:0x80575D5C; // type:object size:0x4 data:4byte
|
||||
sInstance__15dSnd3DManager_c = .sbss:0x80575D58; // type:object size:0x4 data:4byte
|
||||
sDisposer__15dSnd3DManager_c = .sbss:0x80575D5C; // type:object size:0x4 data:4byte
|
||||
lbl_80575D60 = .sbss:0x80575D60; // type:object size:0x4 data:4byte
|
||||
lbl_80575D64 = .sbss:0x80575D64; // type:object size:0x4 data:4byte
|
||||
lbl_80575D68 = .sbss:0x80575D68; // type:object size:0x4 data:4byte
|
||||
@@ -48389,22 +48389,22 @@ lbl_8057D3A4 = .sdata2:0x8057D3A4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3A8 = .sdata2:0x8057D3A8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3AC = .sdata2:0x8057D3AC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3B0 = .sdata2:0x8057D3B0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3B8 = .sdata2:0x8057D3B8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3BC = .sdata2:0x8057D3BC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3C0 = .sdata2:0x8057D3C0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3C4 = .sdata2:0x8057D3C4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3C8 = .sdata2:0x8057D3C8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3CC = .sdata2:0x8057D3CC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3D0 = .sdata2:0x8057D3D0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3D4 = .sdata2:0x8057D3D4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3D8 = .sdata2:0x8057D3D8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3DC = .sdata2:0x8057D3DC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3E0 = .sdata2:0x8057D3E0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3E4 = .sdata2:0x8057D3E4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3E8 = .sdata2:0x8057D3E8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3EC = .sdata2:0x8057D3EC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3F0 = .sdata2:0x8057D3F0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3F4 = .sdata2:0x8057D3F4; // type:object size:0x4 align:4 data:float
|
||||
@8273 = .sdata2:0x8057D3B8; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8274 = .sdata2:0x8057D3BC; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8275 = .sdata2:0x8057D3C0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8276 = .sdata2:0x8057D3C4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8344 = .sdata2:0x8057D3C8; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8345 = .sdata2:0x8057D3CC; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8346 = .sdata2:0x8057D3D0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8347 = .sdata2:0x8057D3D4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8348 = .sdata2:0x8057D3D8; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8349 = .sdata2:0x8057D3DC; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8364 = .sdata2:0x8057D3E0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8365 = .sdata2:0x8057D3E4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8485 = .sdata2:0x8057D3E8; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8486 = .sdata2:0x8057D3EC; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8487 = .sdata2:0x8057D3F0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@8488 = .sdata2:0x8057D3F4; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_8057D3F8 = .sdata2:0x8057D3F8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D3FC = .sdata2:0x8057D3FC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057D400 = .sdata2:0x8057D400; // type:object size:0x4 align:4 data:float
|
||||
@@ -50394,7 +50394,7 @@ sRumblePreset7__9dRumble_c = .bss:0x805A07CC; // type:object size:0xC data:4byte
|
||||
sRumblePreset8__9dRumble_c = .bss:0x805A07D8; // type:object size:0xC data:4byte
|
||||
sRumblePreset9__9dRumble_c = .bss:0x805A07E4; // type:object size:0xC data:4byte
|
||||
sRumblePreset10__9dRumble_c = .bss:0x805A07F0; // type:object size:0xC data:4byte
|
||||
@LOCAL@play__9dRumble_cFv@rumble_strings = .bss:0x805A07FC; // type:object size:0x42 scope:local data:byte
|
||||
@LOCAL@execute__9dRumble_cFv@rumble_strings = .bss:0x805A07FC; // type:object size:0x42 scope:local data:byte
|
||||
@LOCAL@start__9dRumble_cFRC14dRumbleEntry_cUl@rumble_string = .bss:0x805A0840; // type:object size:0x21 scope:local data:byte
|
||||
@LOCAL@getCurrentStageDirectory__22CurrentStageArcManagerFv@sStageDirTmp = .bss:0x805A0868; // type:object size:0x40 scope:local data:byte
|
||||
s_roomArcTmp = .bss:0x805A08A8; // type:object size:0x20 scope:local data:byte
|
||||
|
||||
+8
-6
@@ -702,18 +702,20 @@ config.libs = [
|
||||
"objects": [
|
||||
# These are very low quality splits since nobody has figured
|
||||
# out enough detail. Need to look into nw4r::snd first
|
||||
Object(NonMatching, "d/snd/d_snd.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_actor.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_engine.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_mgr.cpp"),
|
||||
Object(Matching, "d/snd/d_snd_actor.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_3d_actor.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_3d_engine.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_unk_component_1.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_bgm.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_player_mgr.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk1.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk3.cpp"),
|
||||
Object(Matching, "d/snd/d_snd_3d_manager.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_enemy.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_unk_component_2.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_effect.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk_5.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk_6.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk_13.cpp"),
|
||||
Object(NonMatching, "d/snd/d_snd_source.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk_7.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk_8.cpp"),
|
||||
Object(NonMatching, "d/snd/mgr/d_snd_mgr_unk_9.cpp"),
|
||||
|
||||
+5
-78
@@ -4,6 +4,7 @@
|
||||
#include "UnknownTypeBelongings.h"
|
||||
#include "common.h"
|
||||
#include "d/d_base.h"
|
||||
#include "d/snd/d_snd_source.h"
|
||||
#include "m/m_allocator.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
@@ -13,83 +14,9 @@
|
||||
class dAcBase_c;
|
||||
struct cBgS_PolyInfo;
|
||||
|
||||
struct SoundSource {
|
||||
virtual ~SoundSource() {}
|
||||
// TODO there's probably multiple inheritance involved and stuff
|
||||
#define SOUNDSOURCE_VIRTUAL(offset) virtual void vt_##offset();
|
||||
|
||||
SOUNDSOURCE_VIRTUAL(0x0C);
|
||||
SOUNDSOURCE_VIRTUAL(0x10);
|
||||
SOUNDSOURCE_VIRTUAL(0x14);
|
||||
SOUNDSOURCE_VIRTUAL(0x18);
|
||||
SOUNDSOURCE_VIRTUAL(0x1C);
|
||||
SOUNDSOURCE_VIRTUAL(0x20);
|
||||
SOUNDSOURCE_VIRTUAL(0x24);
|
||||
SOUNDSOURCE_VIRTUAL(0x28);
|
||||
SOUNDSOURCE_VIRTUAL(0x2C);
|
||||
SOUNDSOURCE_VIRTUAL(0x30);
|
||||
SOUNDSOURCE_VIRTUAL(0x34);
|
||||
SOUNDSOURCE_VIRTUAL(0x38);
|
||||
SOUNDSOURCE_VIRTUAL(0x3C);
|
||||
SOUNDSOURCE_VIRTUAL(0x40);
|
||||
SOUNDSOURCE_VIRTUAL(0x44);
|
||||
virtual bool shutdown(); // 0x48
|
||||
SOUNDSOURCE_VIRTUAL(0x4C);
|
||||
SOUNDSOURCE_VIRTUAL(0x50);
|
||||
SOUNDSOURCE_VIRTUAL(0x54);
|
||||
SOUNDSOURCE_VIRTUAL(0x58);
|
||||
SOUNDSOURCE_VIRTUAL(0x5C);
|
||||
SOUNDSOURCE_VIRTUAL(0x60);
|
||||
SOUNDSOURCE_VIRTUAL(0x64);
|
||||
SOUNDSOURCE_VIRTUAL(0x68);
|
||||
SOUNDSOURCE_VIRTUAL(0x6C);
|
||||
SOUNDSOURCE_VIRTUAL(0x70);
|
||||
SOUNDSOURCE_VIRTUAL(0x74);
|
||||
SOUNDSOURCE_VIRTUAL(0x78);
|
||||
SOUNDSOURCE_VIRTUAL(0x7C);
|
||||
SOUNDSOURCE_VIRTUAL(0x80);
|
||||
SOUNDSOURCE_VIRTUAL(0x84);
|
||||
SOUNDSOURCE_VIRTUAL(0x88);
|
||||
SOUNDSOURCE_VIRTUAL(0x8C);
|
||||
SOUNDSOURCE_VIRTUAL(0x90);
|
||||
SOUNDSOURCE_VIRTUAL(0x94);
|
||||
SOUNDSOURCE_VIRTUAL(0x98);
|
||||
SOUNDSOURCE_VIRTUAL(0x9C);
|
||||
SOUNDSOURCE_VIRTUAL(0xA0);
|
||||
SOUNDSOURCE_VIRTUAL(0xA4);
|
||||
SOUNDSOURCE_VIRTUAL(0xA8);
|
||||
SOUNDSOURCE_VIRTUAL(0xAC);
|
||||
SOUNDSOURCE_VIRTUAL(0xB0);
|
||||
SOUNDSOURCE_VIRTUAL(0xB4);
|
||||
SOUNDSOURCE_VIRTUAL(0xB8);
|
||||
SOUNDSOURCE_VIRTUAL(0xBC);
|
||||
SOUNDSOURCE_VIRTUAL(0xC0);
|
||||
SOUNDSOURCE_VIRTUAL(0xC4);
|
||||
SOUNDSOURCE_VIRTUAL(0xC8);
|
||||
SOUNDSOURCE_VIRTUAL(0xCC);
|
||||
SOUNDSOURCE_VIRTUAL(0xD0);
|
||||
SOUNDSOURCE_VIRTUAL(0xD4);
|
||||
SOUNDSOURCE_VIRTUAL(0xD8);
|
||||
SOUNDSOURCE_VIRTUAL(0xDC);
|
||||
SOUNDSOURCE_VIRTUAL(0xE0);
|
||||
SOUNDSOURCE_VIRTUAL(0xE4);
|
||||
SOUNDSOURCE_VIRTUAL(0xE8);
|
||||
SOUNDSOURCE_VIRTUAL(0xEC);
|
||||
SOUNDSOURCE_VIRTUAL(0xF0);
|
||||
SOUNDSOURCE_VIRTUAL(0xF4);
|
||||
SOUNDSOURCE_VIRTUAL(0xF8);
|
||||
SOUNDSOURCE_VIRTUAL(0xFC);
|
||||
|
||||
virtual bool isReadyMaybe(); // 0x100
|
||||
virtual bool load(void *data, const char *name); // 0x104
|
||||
virtual void setFrame(f32 frame); // 0x108
|
||||
virtual void setRate(f32 frame); // 0x10C
|
||||
virtual void set_0x164(UNKWORD val); // 0x114
|
||||
};
|
||||
|
||||
struct SoundInfo {
|
||||
dAcBase_c *actor;
|
||||
SoundSource *sound_source;
|
||||
dSoundSourceIf_c *sound_source;
|
||||
mVec3_c *obj_pos;
|
||||
TListNode<SoundInfo> mLink;
|
||||
};
|
||||
@@ -143,7 +70,7 @@ public:
|
||||
/* 0x68 */ mHeapAllocator_c heap_allocator;
|
||||
/* 0x84 */ ObjInfo *obj_info;
|
||||
/* 0x88 */ TList<SoundInfo, 12> sound_list;
|
||||
/* 0x94 */ RaiiPtr<SoundSource> sound_source;
|
||||
/* 0x94 */ RaiiPtr<dSoundSourceIf_c> sound_source;
|
||||
/* 0x98 */ mVec3_c *obj_pos;
|
||||
/* 0x9C */ mVec3_c pos_copy;
|
||||
/* 0xA8 */ u32 params2;
|
||||
@@ -252,7 +179,7 @@ public:
|
||||
s8 viewClipIdx, ObjInfo *objInfo
|
||||
);
|
||||
|
||||
/* 8002c690 */ SoundSource *FUN_8002c690();
|
||||
/* 8002c690 */ dSoundSourceIf_c *FUN_8002c690();
|
||||
/* 8002c710 */ int initAllocatorWork1Heap(int size, char *name, int align);
|
||||
/* 8002c720 */ int initAllocator(int size, char *name, EGG::Heap *heap, int align);
|
||||
/* 8002c7b0 */ bool addActorToRoom(s32 roomId);
|
||||
@@ -301,7 +228,7 @@ public:
|
||||
/* 8002d810 */ void FUN_8002d810();
|
||||
/* 8002d830 */ void FUN_8002d830();
|
||||
/* 8002d860 */ void FUN_8002d860(UNKWORD val);
|
||||
/* 8002d880 */ SoundSource *getSoundSource();
|
||||
/* 8002d880 */ dSoundSourceIf_c *getSoundSource();
|
||||
// End of SoundSource stuff
|
||||
|
||||
/* 8002d890 */ void removeSoundInfo(SoundInfo *);
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
#ifndef D_SND_ACTOR_H
|
||||
#define D_SND_ACTOR_H
|
||||
|
||||
#include "common.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
#include "nw4r/snd/snd_Sound3DActor.h"
|
||||
#include "nw4r/snd/snd_SoundHandle.h"
|
||||
|
||||
class dSnd3DActor_c : public nw4r::snd::Sound3DActor {
|
||||
static const u32 NUM_SOUNDS = 4;
|
||||
|
||||
public:
|
||||
dSnd3DActor_c(UNKTYPE *, u8);
|
||||
|
||||
virtual ~dSnd3DActor_c() {}
|
||||
|
||||
virtual bool d_vt_0x30() {
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void d_vt_0x34(const nw4r::math::VEC3 &);
|
||||
|
||||
virtual void d_vt_0x38(bool flag, int fadeFrames) = 0;
|
||||
|
||||
virtual UNKWORD d_vt_0x3C() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual UNKWORD d_vt_0x40() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual UNKWORD d_vt_0x44() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual const nw4r::math::VEC3 &getPositionRelativeToPlayer();
|
||||
virtual f32 getDistanceToPlayer(); // vt 0x4C
|
||||
virtual void updatePositionRelativeToPlayer(); // vt 0x50
|
||||
virtual void updateDistanceToPlayer(); // vt 0x54
|
||||
virtual void d_vt_0x58() = 0;
|
||||
virtual void d_vt_0x5C() = 0;
|
||||
|
||||
void resetFloats();
|
||||
|
||||
bool checkFlag(u16 flag) const {
|
||||
return (mFlags & flag);
|
||||
}
|
||||
|
||||
bool hasPlayingSounds() const;
|
||||
bool isPlayingSound(u32 id);
|
||||
|
||||
const char *soundIdToSoundLabel(u32 soundId) const;
|
||||
u32 soundLabelToSoundId(const char *soundLabel) const;
|
||||
|
||||
protected:
|
||||
// a_ prefix to prevent multiple inheritance clashes
|
||||
/* 0x7D */ u8 a_field_0x7D;
|
||||
/* 0x7E */ u8 a_field_0x7E;
|
||||
/* 0x7F */ u8 a_field_0x7F;
|
||||
/* 0x80 */ u8 a_field_0x80;
|
||||
/* 0x84 */ f32 a_field_0x84;
|
||||
/* 0x88 */ f32 a_field_0x88;
|
||||
/* 0x8C */ f32 a_field_0x8C;
|
||||
/* 0x90 */ f32 a_field_0x90;
|
||||
/* 0x94 */ f32 a_field_0x94;
|
||||
/* 0x98 */ f32 a_field_0x98;
|
||||
/* 0x9C */ f32 a_field_0x9C;
|
||||
/* 0xA0 */ u8 a_0xA0[0xC8 - 0xA0];
|
||||
/* 0xC8 */ UNKTYPE *a_field_0xC8;
|
||||
/* 0xCC */ u16 mFlags;
|
||||
/* 0xD0 */ nw4r::math::VEC3 mPositionRelativeToPlayer;
|
||||
/* 0xDC */ f32 mDistanceToPlayer;
|
||||
/* 0xE0 */ f32 a_field_0xE0;
|
||||
};
|
||||
|
||||
// used at the very least when trying to finish Demise
|
||||
class IsCurrentSoundIdChecker {
|
||||
public:
|
||||
IsCurrentSoundIdChecker(u32 id, bool *pResult) : mSoundId(id), mpResult(pResult) {}
|
||||
~IsCurrentSoundIdChecker() {}
|
||||
|
||||
virtual void operator()(nw4r::snd::SoundHandle &pHandle) {
|
||||
if (mSoundId == pHandle.GetId()) {
|
||||
*mpResult = true;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x04 */ u32 mSoundId;
|
||||
/* 0x08 */ bool *mpResult;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef D_SND_3D_ENGINE
|
||||
#define D_SND_3D_ENGINE
|
||||
|
||||
#include "nw4r/snd/snd_BasicSound.h"
|
||||
#include "nw4r/snd/snd_Sound3DEngine.h"
|
||||
#include "nw4r/snd/snd_Sound3DManager.h"
|
||||
|
||||
class dSnd3DEngine_c : public nw4r::snd::Sound3DEngine {
|
||||
public:
|
||||
dSnd3DEngine_c();
|
||||
|
||||
virtual void UpdateAmbientParam(
|
||||
const nw4r::snd::Sound3DManager *mgr, const nw4r::snd::Sound3DParam *param3d, u32 unk, u32 flags,
|
||||
nw4r::snd::SoundAmbientParam *paramAmb
|
||||
) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,66 @@
|
||||
#ifndef D_SND_3D_MANAGER_H
|
||||
#define D_SND_3D_MANAGER_H
|
||||
|
||||
#include "d/snd/d_snd_3d_engine.h"
|
||||
#include "d/snd/d_snd_util.h"
|
||||
#include "egg/gfx/eggCamera.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
#include "nw4r/snd/snd_Sound3DListener.h"
|
||||
#include "nw4r/snd/snd_Sound3DManager.h"
|
||||
|
||||
class dSnd3DManager_c;
|
||||
extern template class SndMgrDisposer<dSnd3DManager_c>;
|
||||
|
||||
class dSnd3DManager_c {
|
||||
public:
|
||||
SndMgrDisposer<dSnd3DManager_c> *GetDisposer() {
|
||||
return &mDisposer;
|
||||
}
|
||||
|
||||
static dSnd3DManager_c *GetInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
static dSnd3DManager_c *sInstance;
|
||||
static SndMgrDisposer<dSnd3DManager_c> *sDisposer;
|
||||
|
||||
private:
|
||||
SndMgrDisposer<dSnd3DManager_c> mDisposer;
|
||||
|
||||
public:
|
||||
dSnd3DManager_c();
|
||||
|
||||
void setup();
|
||||
void updateFromCamera(EGG::LookAtCamera &camera);
|
||||
void setCamDistance(f32 value);
|
||||
void resetCamDistance();
|
||||
void calc();
|
||||
void clearState();
|
||||
|
||||
nw4r::snd::Sound3DManager& getManager() {
|
||||
return mManager;
|
||||
}
|
||||
|
||||
const mVec3_c &getListenerPos() const {
|
||||
return mSoundListenerPosition;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void updateListenerPos(f32);
|
||||
/* 0x10 */ bool mIsSetup;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x14 */ dSnd3DEngine_c *mpEngine;
|
||||
/* 0x18 */ nw4r::snd::Sound3DManager mManager;
|
||||
/* 0x44 */ nw4r::snd::Sound3DListener mListener;
|
||||
/* 0xB0 */ EGG::LookAtCamera mCamera;
|
||||
/* 0x138 */ mVec3_c field_0x138;
|
||||
/* 0x144 */ mVec3_c mSoundListenerPosition;
|
||||
/* 0x150 */ f32 mCameraPosSqVelocity;
|
||||
/* 0x154 */ f32 mCameraAtSqVelocity;
|
||||
/* 0x158 */ f32 mCamDistance;
|
||||
/* 0x15C */ s16 mTimer;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef D_SND_3D_ACTOR_H
|
||||
#define D_SND_3D_ACTOR_H
|
||||
|
||||
#include "nw4r/snd/snd_SoundActor.h"
|
||||
#include "nw4r/snd/snd_SoundHandle.h"
|
||||
|
||||
class dSndActor_c : public nw4r::snd::SoundActor {
|
||||
public:
|
||||
dSndActor_c(nw4r::snd::SoundArchivePlayer &rPlayer);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef D_SND_CHECKERS_H
|
||||
#define D_SND_CHECKERS_H
|
||||
|
||||
#include "nw4r/snd/snd_SoundHandle.h"
|
||||
|
||||
class SoundPropertiesChecker {
|
||||
public:
|
||||
virtual void operator()(nw4r::snd::SoundHandle &pHandle);
|
||||
|
||||
private:
|
||||
/* 0x04 */ u32 mSoundId;
|
||||
/* 0x08 */ u32 mPlayCounter;
|
||||
/* 0x0C */ u32 mPauseCounter;
|
||||
/* 0x10 */ u32 mCounter3;
|
||||
/* 0x14 */ u32 mCounter4;
|
||||
/* 0x18 */ u32 *mpPlayCounter;
|
||||
/* 0x1C */ u32 *mpPauseCounter;
|
||||
/* 0x20 */ u32 *mpCounter3;
|
||||
/* 0x24 */ u32 *mpCounter4;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef D_SND_MGR_H
|
||||
#define D_SND_MGR_H
|
||||
|
||||
#include "egg/audio/eggAudioMgr.h"
|
||||
#include "nw4r/snd/snd_SoundArchivePlayer.h"
|
||||
|
||||
class dSndMgr_c : public EGG::SimpleAudioMgr {
|
||||
public:
|
||||
dSndMgr_c();
|
||||
|
||||
virtual void calc() override;
|
||||
void initialize(EGG::Heap *heap, u32 size);
|
||||
void initHbm(u32 frame);
|
||||
|
||||
static void restoreEffectsCallback();
|
||||
|
||||
static dSndMgr_c *GetInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
static nw4r::snd::SoundArchivePlayer* getPlayer() {
|
||||
return sInstance->ArcPlayer::getPlayer();
|
||||
}
|
||||
|
||||
private:
|
||||
static dSndMgr_c *sInstance;
|
||||
|
||||
/* 0x6C8 */ u8 _0x6C8[0x6CC - 0x6C8];
|
||||
/* 0x6CC */ u8 field_0x6CC;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,61 @@
|
||||
#ifndef D_SND_PLAYER_MGR_H
|
||||
#define D_SND_PLAYER_MGR_H
|
||||
|
||||
#include "d/snd/d_snd_util.h"
|
||||
#include "nw4r/snd/snd_MemorySoundArchive.h"
|
||||
#include "nw4r/snd/snd_SoundArchivePlayer.h"
|
||||
#include "nw4r/snd/snd_SoundHandle.h"
|
||||
#include "nw4r/snd/snd_SoundStartable.h"
|
||||
|
||||
class dSndPlayerMgr_c;
|
||||
extern template class SndMgrDisposer<dSndPlayerMgr_c>;
|
||||
|
||||
class dSndPlayerMgr_c {
|
||||
public:
|
||||
SndMgrDisposer<dSndPlayerMgr_c> *GetDisposer() {
|
||||
return &mDisposer;
|
||||
}
|
||||
|
||||
static dSndPlayerMgr_c *GetInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
static dSndPlayerMgr_c *sInstance;
|
||||
static SndMgrDisposer<dSndPlayerMgr_c> *sDisposer;
|
||||
|
||||
private:
|
||||
SndMgrDisposer<dSndPlayerMgr_c> mDisposer;
|
||||
|
||||
public:
|
||||
dSndPlayerMgr_c();
|
||||
|
||||
void calc();
|
||||
|
||||
u32 getFreeSize();
|
||||
bool loadDemoArchive(const char *demoArchiveName);
|
||||
const char *getSoundArchivePath();
|
||||
u32 convertLabelStringToSoundId(const char *label) const;
|
||||
nw4r::snd::SoundArchivePlayer &getSoundArchivePlayerForType(u8 type);
|
||||
|
||||
bool checkFlag(u32 mask) const {
|
||||
return mFlags & mask;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x010 */ u8 field_0x010;
|
||||
/* 0x011 */ u8 field_0x011;
|
||||
/* 0x014 */ s32 field_0x014;
|
||||
/* 0x018 */ s32 field_0x018;
|
||||
/* 0x01C */ s32 field_0x01C;
|
||||
/* 0x020 */ u32 mFlags;
|
||||
|
||||
virtual nw4r::snd::SoundStartable::StartResult
|
||||
startSound(nw4r::snd::SoundHandle *pHandle, u32 soundId, const nw4r::snd::SoundStartable::StartInfo *pStartInfo);
|
||||
virtual nw4r::snd::SoundStartable::StartResult
|
||||
startSound(nw4r::snd::SoundHandle *pHandle, const char *soundLabel, const nw4r::snd::SoundStartable::StartInfo *pStartInfo);
|
||||
|
||||
/* 0x028 */ nw4r::snd::MemorySoundArchive mSoundArchive;
|
||||
/* 0x178 */ nw4r::snd::SoundArchivePlayer mSoundArchivePlayer;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,167 @@
|
||||
#ifndef D_SOUND_SOURCE_H
|
||||
#define D_SOUND_SOURCE_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/snd/d_snd_3d_actor.h"
|
||||
#include "nw4r/ut/ut_list.h"
|
||||
|
||||
|
||||
class dAcBase_c;
|
||||
|
||||
class dSoundSourceIf_c {
|
||||
public:
|
||||
virtual ~dSoundSourceIf_c() {}
|
||||
#define SOUNDSOURCE_VIRTUAL(offset) virtual void vt_##offset() = 0;
|
||||
SOUNDSOURCE_VIRTUAL(0x0C);
|
||||
SOUNDSOURCE_VIRTUAL(0x10);
|
||||
SOUNDSOURCE_VIRTUAL(0x14);
|
||||
SOUNDSOURCE_VIRTUAL(0x18);
|
||||
SOUNDSOURCE_VIRTUAL(0x1C);
|
||||
SOUNDSOURCE_VIRTUAL(0x20);
|
||||
SOUNDSOURCE_VIRTUAL(0x24);
|
||||
SOUNDSOURCE_VIRTUAL(0x28);
|
||||
SOUNDSOURCE_VIRTUAL(0x2C);
|
||||
SOUNDSOURCE_VIRTUAL(0x30);
|
||||
SOUNDSOURCE_VIRTUAL(0x34);
|
||||
SOUNDSOURCE_VIRTUAL(0x38);
|
||||
SOUNDSOURCE_VIRTUAL(0x3C);
|
||||
SOUNDSOURCE_VIRTUAL(0x40);
|
||||
SOUNDSOURCE_VIRTUAL(0x44);
|
||||
virtual bool hasPlayingSounds() const = 0; // 0x48
|
||||
SOUNDSOURCE_VIRTUAL(0x4C);
|
||||
SOUNDSOURCE_VIRTUAL(0x50);
|
||||
SOUNDSOURCE_VIRTUAL(0x54);
|
||||
SOUNDSOURCE_VIRTUAL(0x58);
|
||||
SOUNDSOURCE_VIRTUAL(0x5C);
|
||||
SOUNDSOURCE_VIRTUAL(0x60);
|
||||
SOUNDSOURCE_VIRTUAL(0x64);
|
||||
SOUNDSOURCE_VIRTUAL(0x68);
|
||||
SOUNDSOURCE_VIRTUAL(0x6C);
|
||||
SOUNDSOURCE_VIRTUAL(0x70);
|
||||
SOUNDSOURCE_VIRTUAL(0x74);
|
||||
SOUNDSOURCE_VIRTUAL(0x78);
|
||||
SOUNDSOURCE_VIRTUAL(0x7C);
|
||||
SOUNDSOURCE_VIRTUAL(0x80);
|
||||
SOUNDSOURCE_VIRTUAL(0x84);
|
||||
SOUNDSOURCE_VIRTUAL(0x88);
|
||||
SOUNDSOURCE_VIRTUAL(0x8C);
|
||||
SOUNDSOURCE_VIRTUAL(0x90);
|
||||
SOUNDSOURCE_VIRTUAL(0x94);
|
||||
SOUNDSOURCE_VIRTUAL(0x98);
|
||||
SOUNDSOURCE_VIRTUAL(0x9C);
|
||||
SOUNDSOURCE_VIRTUAL(0xA0);
|
||||
SOUNDSOURCE_VIRTUAL(0xA4);
|
||||
SOUNDSOURCE_VIRTUAL(0xA8);
|
||||
SOUNDSOURCE_VIRTUAL(0xAC);
|
||||
SOUNDSOURCE_VIRTUAL(0xB0);
|
||||
SOUNDSOURCE_VIRTUAL(0xB4);
|
||||
SOUNDSOURCE_VIRTUAL(0xB8);
|
||||
SOUNDSOURCE_VIRTUAL(0xBC);
|
||||
SOUNDSOURCE_VIRTUAL(0xC0);
|
||||
SOUNDSOURCE_VIRTUAL(0xC4);
|
||||
SOUNDSOURCE_VIRTUAL(0xC8);
|
||||
SOUNDSOURCE_VIRTUAL(0xCC);
|
||||
SOUNDSOURCE_VIRTUAL(0xD0);
|
||||
SOUNDSOURCE_VIRTUAL(0xD4);
|
||||
SOUNDSOURCE_VIRTUAL(0xD8);
|
||||
SOUNDSOURCE_VIRTUAL(0xDC);
|
||||
SOUNDSOURCE_VIRTUAL(0xE0);
|
||||
SOUNDSOURCE_VIRTUAL(0xE4);
|
||||
SOUNDSOURCE_VIRTUAL(0xE8);
|
||||
SOUNDSOURCE_VIRTUAL(0xEC);
|
||||
SOUNDSOURCE_VIRTUAL(0xF0);
|
||||
SOUNDSOURCE_VIRTUAL(0xF4);
|
||||
SOUNDSOURCE_VIRTUAL(0xF8);
|
||||
SOUNDSOURCE_VIRTUAL(0xFC);
|
||||
|
||||
virtual bool isReadyMaybe() = 0; // 0x100
|
||||
virtual bool load(void *data, const char *name) = 0; // 0x104
|
||||
virtual void setFrame(f32 frame) = 0; // 0x108
|
||||
virtual void setRate(f32 frame) = 0; // 0x10C
|
||||
virtual void set_0x164(UNKWORD val) = 0; // 0x114
|
||||
|
||||
SOUNDSOURCE_VIRTUAL(0x118);
|
||||
SOUNDSOURCE_VIRTUAL(0x11C);
|
||||
};
|
||||
|
||||
class dSoundSource_c : public dSoundSourceIf_c, public dSnd3DActor_c {
|
||||
public:
|
||||
dSoundSource_c(u8, dAcBase_c *, UNKWORD, UNKWORD);
|
||||
virtual ~dSoundSource_c();
|
||||
|
||||
u32 getRemoConSoundVariant(u32 soundId) const;
|
||||
|
||||
// This is where it gets a bit wild and this class starts mixing in overrides between
|
||||
// new virtual functions, which causes the vtable to list these functions in exactly this
|
||||
// order.
|
||||
virtual void d_s_vt_0x17C();
|
||||
virtual void d_s_vt_0x180();
|
||||
virtual void d_s_vt_0x184();
|
||||
virtual void d_s_vt_0x188();
|
||||
virtual void d_s_vt_0x18C();
|
||||
virtual void d_s_vt_0x190();
|
||||
virtual void d_s_vt_0x194();
|
||||
|
||||
virtual void d_vt_0x58() override;
|
||||
|
||||
virtual void d_s_vt_0x19C();
|
||||
virtual void d_s_vt_0x1A0();
|
||||
|
||||
virtual void d_vt_0x5C() override;
|
||||
virtual StartResult
|
||||
SetupSound(nw4r::snd::SoundHandle *pHandle, u32 soundId, const StartInfo *pStartInfo, void *) override;
|
||||
|
||||
virtual void d_s_vt_0x1AC();
|
||||
virtual void d_s_vt_0x1B0();
|
||||
virtual void d_s_vt_0x1B4();
|
||||
virtual void d_s_vt_0x1B8();
|
||||
virtual void d_s_vt_0x1BC();
|
||||
virtual void d_s_vt_0x1C0();
|
||||
virtual void d_s_vt_0x1C4(bool flag, int fadeFrames);
|
||||
virtual void d_s_vt_0x1C8();
|
||||
virtual void d_s_vt_0x1CC();
|
||||
|
||||
virtual void d_vt_0x38(bool flag, int fadeFrames) override;
|
||||
|
||||
virtual void d_s_vt_0x1D4();
|
||||
virtual void d_s_vt_0x1D8();
|
||||
virtual void d_s_vt_0x1DC();
|
||||
virtual void d_s_vt_0x1E0();
|
||||
virtual void d_s_vt_0x1E4();
|
||||
virtual void d_s_vt_0x1E8();
|
||||
|
||||
// Overrides of dSoundSourceIf_c
|
||||
virtual bool hasPlayingSounds() const override;
|
||||
|
||||
private:
|
||||
// at 0x00: dSoundSourceIf_c vtable
|
||||
// at 0x04: dSnd3DActor_c sub-object
|
||||
// at 0x58: thunk-vtable
|
||||
/* 0xE8 */ u8 field_0xE8[0xF0 - 0xE8];
|
||||
|
||||
/* 0x0F0 */ UNKWORD field_0x0F0;
|
||||
/* 0x0F4 */ UNKWORD field_0x0F4;
|
||||
/* 0x0F8 */ dAcBase_c *mpPlayer;
|
||||
/* 0x0FC */ u8 field_0x0FC;
|
||||
/* 0x0FD */ u8 field_0x0FD;
|
||||
/* 0x0FE */ u8 field_0x0FE;
|
||||
/* 0x0FF */ u8 field_0x0FF;
|
||||
/* 0x100 */ u8 field_0x100;
|
||||
/* 0x101 */ u8 field_0x101;
|
||||
/* 0x102 */ u8 field_0x102;
|
||||
/* 0x104 */ UNKWORD field_0x104;
|
||||
/* 0x108 */ UNKWORD field_0x108;
|
||||
/* 0x10C */ UNKWORD field_0x10C;
|
||||
/* 0x110 */ nw4r::ut::List field_0x110; // node offset 0xEC
|
||||
/* 0x11C */ UNKWORD field_0x11C;
|
||||
/* 0x120 */ nw4r::ut::List field_0x120; // node offset 0x4
|
||||
/* 0x12C */ nw4r::ut::List field_0x12C; // node offset 0x4
|
||||
/* 0x138 */ nw4r::ut::Node mNode;
|
||||
/* 0x140 */ UNKWORD field_0x140;
|
||||
/* 0x144 */ u8 _0x144[0x154 - 0x144];
|
||||
/* 0x154 */ UNKWORD field_0x154;
|
||||
/* 0x158 */ s16 field_0x158;
|
||||
/* 0x15A */ s16 field_0x15A;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,42 @@
|
||||
#ifndef D_SND_UTIL_H
|
||||
#define D_SND_UTIL_H
|
||||
|
||||
#include "common.h"
|
||||
#include "egg/core/eggDisposer.h"
|
||||
|
||||
// This setup is only inferred. d/snd uses it all over the place.
|
||||
// This works for dSndPlayerMgr_c, which has a vtable of its own but the Disposer at offset 0.
|
||||
// It also works for the factory at 0x80399c20, which calls a base class ctor,
|
||||
// an inline ctor, and has the Disposer at offset 0x18
|
||||
|
||||
template <typename T>
|
||||
struct SndMgrDisposer : public EGG::Disposer {
|
||||
virtual ~SndMgrDisposer();
|
||||
|
||||
static T *create();
|
||||
static void remove();
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
SndMgrDisposer<T>::~SndMgrDisposer() {
|
||||
if (this == T::sDisposer) {
|
||||
remove();
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T *SndMgrDisposer<T>::create() {
|
||||
if (T::sInstance == nullptr) {
|
||||
T::sInstance = new T();
|
||||
T::sDisposer = T::sInstance->GetDisposer();
|
||||
}
|
||||
return T::sInstance;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SndMgrDisposer<T>::remove() {
|
||||
T::sInstance = nullptr;
|
||||
T::sDisposer = nullptr;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -26,12 +26,20 @@ public:
|
||||
void stopAllSound();
|
||||
|
||||
u32 changeNameToId(const char *name) {
|
||||
return mOpenSndArchive->ConvertLabelStringToSoundId(name);
|
||||
u32 id = -1;
|
||||
if (mOpenSndArchive != nullptr) {
|
||||
id = mOpenSndArchive->ConvertLabelStringToSoundId(name);
|
||||
}
|
||||
return id;
|
||||
}
|
||||
nw4r::snd::SoundArchivePlayer *getPlayer() {
|
||||
return mActiveSndArchivePlayer;
|
||||
}
|
||||
|
||||
nw4r::snd::SoundArchive *getArchive() {
|
||||
return mOpenSndArchive;
|
||||
}
|
||||
|
||||
void setLoadStringLabels(bool bLoad) {
|
||||
mLoadLabelStringData = bLoad;
|
||||
}
|
||||
@@ -65,12 +73,7 @@ public:
|
||||
|
||||
virtual bool startSound(nw4r::snd::SoundHandle *handle, const char *name) // at 0x40
|
||||
{
|
||||
u32 id = -1;
|
||||
if (mOpenSndArchive) {
|
||||
id = changeNameToId(name);
|
||||
}
|
||||
|
||||
return ArcPlayer::startSound(handle, id);
|
||||
return ArcPlayer::startSound(handle, changeNameToId(name));
|
||||
}
|
||||
|
||||
virtual bool prepareSound(nw4r::snd::SoundHandle *handle, u32 id) // at 0x44
|
||||
@@ -85,12 +88,7 @@ public:
|
||||
|
||||
virtual bool prepareSound(nw4r::snd::SoundHandle *handle, const char *name) // at 0x4C
|
||||
{
|
||||
u32 id = -1;
|
||||
if (mOpenSndArchive) {
|
||||
id = changeNameToId(name);
|
||||
}
|
||||
|
||||
return ArcPlayer::prepareSound(handle, id);
|
||||
return ArcPlayer::prepareSound(handle, changeNameToId(name));
|
||||
}
|
||||
|
||||
virtual bool holdSound(nw4r::snd::SoundHandle *handle, u32 id) // at 0x50
|
||||
@@ -105,12 +103,7 @@ public:
|
||||
|
||||
virtual bool holdSound(nw4r::snd::SoundHandle *handle, const char *name) // at 0x58
|
||||
{
|
||||
u32 id = -1;
|
||||
if (mOpenSndArchive) {
|
||||
id = changeNameToId(name);
|
||||
}
|
||||
|
||||
return ArcPlayer::holdSound(handle, id);
|
||||
return ArcPlayer::holdSound(handle, changeNameToId(name));
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -21,9 +21,38 @@ public:
|
||||
~SoundHeapMgr() {
|
||||
destroySoundHeap();
|
||||
}
|
||||
virtual bool loadState(s32 id) {}
|
||||
virtual int getCurrentLevel() {}
|
||||
virtual void stateProc() {}
|
||||
int saveState() {
|
||||
return mSoundHeap.SaveState();
|
||||
}
|
||||
virtual bool loadState(s32 id) {
|
||||
s32 level = mSoundHeap.GetCurrentLevel();
|
||||
if (id > 0 && level >= id) {
|
||||
mSoundHeap.LoadState(id);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
virtual int getCurrentLevel() {
|
||||
return mSoundHeap.GetCurrentLevel();
|
||||
}
|
||||
virtual void stateProc() {
|
||||
OSMessage msg;
|
||||
if (OSReceiveMessage(&mQueue1.mQueue, &msg, 0)) {
|
||||
bool ok = loadState((s32)msg);
|
||||
OSSendMessage(&mQueue3.mQueue, (OSMessage)ok, 0);
|
||||
}
|
||||
|
||||
if (OSReceiveMessage(&mQueue2.mQueue, &msg, 0)) {
|
||||
int ok = mSoundHeap.SaveState();
|
||||
OSSendMessage(&mQueue3.mQueue, (OSMessage)ok, 0);
|
||||
}
|
||||
|
||||
if (OSReceiveMessage(&mQueue, &msg, 0)) {
|
||||
int level = getCurrentLevel();
|
||||
OSSendMessage(&mQueue3.mQueue, (OSMessage)level, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void createSoundHeap(Allocator *allocator, u32 size);
|
||||
void destroySoundHeap();
|
||||
@@ -34,7 +63,9 @@ public:
|
||||
|
||||
private:
|
||||
nw4r::snd::SoundHeap mSoundHeap;
|
||||
u8 unk[0x68 - 0x38];
|
||||
// I guess we're not initializing this queue?
|
||||
OSMessageQueue mQueue;
|
||||
OSMessage mBuffer[4];
|
||||
SoundMessageQueue mQueue1;
|
||||
SoundMessageQueue mQueue2;
|
||||
SoundMessageQueue mQueue3;
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace EGG {
|
||||
struct MultiArcSimpleAudioMgr {
|
||||
u8 field_0x000[0x0FC - 0x000];
|
||||
s32 field_0x0FC;
|
||||
ArcPlayer players[];
|
||||
ArcPlayer players[1];
|
||||
|
||||
nw4r::snd::SoundArchivePlayer *getPlayer(int i) {
|
||||
return players[i].getPlayer();
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "egg/core/eggHeap.h"
|
||||
#include "egg/core/eggStreamDecomp.h"
|
||||
|
||||
|
||||
namespace EGG {
|
||||
|
||||
class DvdRipper {
|
||||
@@ -28,6 +27,29 @@ public:
|
||||
typedef void (*UnkCallback)(void *);
|
||||
|
||||
public:
|
||||
// Not sure
|
||||
struct Arg {
|
||||
Arg(const char *path, u8 *pOut, Heap *pHeap, EAllocDirection allocDir, u32 offset, u32 *pRead, u32 *fileSize)
|
||||
: path(path),
|
||||
pOut(pOut),
|
||||
pHeap(pHeap),
|
||||
allocDir(allocDir),
|
||||
offset(offset),
|
||||
pRead(pRead),
|
||||
fileSize(fileSize) {}
|
||||
const char *path;
|
||||
u8 *pOut;
|
||||
Heap *pHeap;
|
||||
EAllocDirection allocDir;
|
||||
u32 offset;
|
||||
u32 *pRead;
|
||||
u32 *fileSize;
|
||||
};
|
||||
|
||||
static u8 *loadToMainRAM(Arg &arg) {
|
||||
return loadToMainRAM(arg.path, arg.pOut, arg.pHeap, arg.allocDir, arg.offset, arg.pRead, arg.fileSize);
|
||||
}
|
||||
|
||||
static u8 *
|
||||
loadToMainRAM(s32 entryNum, u8 *pOut, Heap *pHeap, EAllocDirection allocDir, u32 offset, u32 *pRead, u32 *fileSize);
|
||||
|
||||
|
||||
@@ -35,6 +35,15 @@ protected:
|
||||
class LookAtCamera : public BaseCamera {
|
||||
public:
|
||||
LookAtCamera() : mPos(0.0f, 10.0f, 0.0f), mAt(0.0f, 0.0f, 0.0f), mUp(0.0f, 1.0f, 0.0f) {}
|
||||
|
||||
LookAtCamera& operator=(const LookAtCamera &other) {
|
||||
mViewMtx.copyFrom(other.mViewMtx);
|
||||
mOtherMtx.copyFrom(other.mOtherMtx);
|
||||
mPos = other.mPos;
|
||||
mAt = other.mAt;
|
||||
mUp = other.mUp;
|
||||
return *this;
|
||||
}
|
||||
// Which way around?
|
||||
virtual Matrix34f &getViewMatrix() override {
|
||||
return mViewMtx;
|
||||
@@ -53,7 +62,15 @@ public:
|
||||
virtual void doDraw() override;
|
||||
virtual Matrix34f &getViewMatrixOld() override;
|
||||
|
||||
protected:
|
||||
Vector3f getDirection() const {
|
||||
return mAt - mPos;
|
||||
}
|
||||
|
||||
Vector3f getOtherDirection() const {
|
||||
return mPos - mAt;
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x64 */ Vector3f mPos;
|
||||
/* 0x70 */ Vector3f mAt;
|
||||
/* 0x7C */ Vector3f mUp;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "common.h"
|
||||
#include "egg/math/eggQuat.h"
|
||||
#include "egg/math/eggVector.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
|
||||
namespace EGG {
|
||||
|
||||
@@ -55,6 +56,14 @@ struct Matrix34f {
|
||||
void multiplyTo(const Matrix34f &m2, Matrix34f &to) const;
|
||||
void dump();
|
||||
|
||||
operator nw4r::math::MTX34 *() {
|
||||
return (nw4r::math::MTX34 *)this;
|
||||
}
|
||||
|
||||
operator const nw4r::math::MTX34 *() const {
|
||||
return (nw4r::math::MTX34 *)this;
|
||||
}
|
||||
|
||||
public:
|
||||
void concat(const Matrix34f &, Matrix34f &) const;
|
||||
void rotate(const Vector3f &rpy) const;
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
#define NW4R_LYT_LAYOUT_H
|
||||
|
||||
#include "common.h"
|
||||
#include "new.h"
|
||||
#include "nw4r/lyt/lyt_animation.h"
|
||||
#include "nw4r/lyt/lyt_types.h"
|
||||
#include "rvl/MEM/mem_allocator.h"
|
||||
|
||||
#include <new>
|
||||
|
||||
namespace nw4r {
|
||||
namespace lyt {
|
||||
|
||||
@@ -327,40 +327,40 @@ namespace nw4r { namespace snd { namespace detail
|
||||
ExternalSoundPlayer *mExtSoundPlayer; // size 0x04, offset 0x18
|
||||
AmbientInfo mAmbientInfo; // size 0x14, offset 0x1c
|
||||
SoundParam mAmbientParam; // size 0x24, offset 0x30
|
||||
SoundActorParam mActorParam; // size 0x0c, offset 0x54
|
||||
MoveValue<f32, int> mFadeVolume; // size 0x10, offset 0x60
|
||||
MoveValue<f32, int> mPauseFadeVolume; // size 0x10, offset 0x70
|
||||
bool mStartFlag; // size 0x01, offset 0x80
|
||||
bool mStartedFlag; // size 0x01, offset 0x81
|
||||
bool mAutoStopFlag; // size 0x01, offset 0x82
|
||||
bool mFadeOutFlag; // size 0x01, offset 0x83
|
||||
PauseState mPauseState; // size 0x04, offset 0x84
|
||||
bool mUnPauseFlag; // size 0x01, offset 0x88
|
||||
SoundActorParam mActorParam; // size 0x0c, offset 0x58
|
||||
MoveValue<f32, int> mFadeVolume; // size 0x10, offset 0x64
|
||||
MoveValue<f32, int> mPauseFadeVolume; // size 0x10, offset 0x74
|
||||
bool mStartFlag; // size 0x01, offset 0x84
|
||||
bool mStartedFlag; // size 0x01, offset 0x85
|
||||
bool mAutoStopFlag; // size 0x01, offset 0x86
|
||||
bool mFadeOutFlag; // size 0x01, offset 0x87
|
||||
PauseState mPauseState; // size 0x04, offset 0x88
|
||||
bool mUnPauseFlag; // size 0x01, offset 0x8c
|
||||
/* 3 bytes padding */
|
||||
s32 mAutoStopCounter; // size 0x04, offset 0x8c
|
||||
u32 mUpdateCounter; // size 0x04, offset 0x90
|
||||
u8 mPriority; // size 0x01, offset 0x94
|
||||
u8 mVoiceOutCount; // size 0x01, offset 0x95
|
||||
u8 mBiquadFilterType; // size 0x01, offset 0x96
|
||||
s32 mAutoStopCounter; // size 0x04, offset 0x90
|
||||
u32 mUpdateCounter; // size 0x04, offset 0x94
|
||||
u8 mPriority; // size 0x01, offset 0x98
|
||||
u8 mVoiceOutCount; // size 0x01, offset 0x99
|
||||
u8 mBiquadFilterType; // size 0x01, offset 0x9a
|
||||
/* 1 byte padding */
|
||||
u32 mId; // size 0x04, offset 0x98
|
||||
MoveValue<f32, int> mExtMoveVolume; // size 0x10, offset 0x9c
|
||||
f32 mInitVolume; // size 0x04, offset 0xac
|
||||
f32 mExtPan; // size 0x04, offset 0xb0
|
||||
f32 mExtSurroundPan; // size 0x04, offset 0xb4
|
||||
f32 mExtPitch; // size 0x04, offset 0xb8
|
||||
f32 mLpfFreq; // size 0x04, offset 0xbc
|
||||
f32 mBiquadFilterValue; // size 0x04, offset 0xc0
|
||||
int mOutputLineFlag; // size 0x04, offset 0xc4
|
||||
f32 mMainOutVolume; // size 0x04, offset 0xc8
|
||||
f32 mMainSend; // size 0x04, offset 0xcc
|
||||
f32 mFxSend[AUX_BUS_NUM]; // size 0x0c, offset 0xd0
|
||||
f32 mRemoteOutVolume[4]; // size 0x10, offset 0xdc
|
||||
u32 mId; // size 0x04, offset 0x9c
|
||||
MoveValue<f32, int> mExtMoveVolume; // size 0x10, offset 0xa0
|
||||
f32 mInitVolume; // size 0x04, offset 0xb0
|
||||
f32 mExtPan; // size 0x04, offset 0xb4
|
||||
f32 mExtSurroundPan; // size 0x04, offset 0xb8
|
||||
f32 mExtPitch; // size 0x04, offset 0xbc
|
||||
f32 mLpfFreq; // size 0x04, offset 0xc0
|
||||
f32 mBiquadFilterValue; // size 0x04, offset 0xc4
|
||||
int mOutputLineFlag; // size 0x04, offset 0xc8
|
||||
f32 mMainOutVolume; // size 0x04, offset 0xcc
|
||||
f32 mMainSend; // size 0x04, offset 0xd0
|
||||
f32 mFxSend[AUX_BUS_NUM]; // size 0x0c, offset 0xd4
|
||||
f32 mRemoteOutVolume[4]; // size 0x10, offset 0xe0
|
||||
public:
|
||||
ut::LinkListNode mPriorityLink; // size 0x08, offset 0xe0
|
||||
ut::LinkListNode mSoundPlayerPlayLink; // size 0x08, offset 0xe8
|
||||
ut::LinkListNode mSoundPlayerPriorityLink; // size 0x08, offset 0xf0
|
||||
ut::LinkListNode mExtSoundPlayerPlayLink; // size 0x08, offset 0xf8
|
||||
ut::LinkListNode mPriorityLink; // size 0x08, offset 0xf0
|
||||
ut::LinkListNode mSoundPlayerPlayLink; // size 0x08, offset 0xf8
|
||||
ut::LinkListNode mSoundPlayerPriorityLink; // size 0x08, offset 0x100
|
||||
ut::LinkListNode mExtSoundPlayerPlayLink; // size 0x08, offset 0x108
|
||||
|
||||
// friends
|
||||
private:
|
||||
|
||||
@@ -21,8 +21,15 @@ public:
|
||||
// AmbientArgUpdateCallback
|
||||
virtual void at_0x0c(void *arg, detail::BasicSound* sound) override;
|
||||
|
||||
const nw4r::math::VEC3 &GetPosition() const {
|
||||
return mPosition;
|
||||
}
|
||||
void SetPosition(const math::VEC3 &rPosition);
|
||||
|
||||
void SetUserParam(u32 userParam) {
|
||||
mUserParam = userParam;
|
||||
}
|
||||
|
||||
private:
|
||||
static void ClearUpdateCallback(SoundHandle &rHandle);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
virtual void UpdateAmbientParam(const Sound3DManager*, const Sound3DParam*, u32, int, SoundAmbientParam*);
|
||||
virtual s32 GetAmbientPriority(const Sound3DManager*, const Sound3DParam*, u32);
|
||||
virtual s32 GetRequiredVoiceOutCount(const Sound3DManager*, const Sound3DParam*, u32);
|
||||
virtual void UpdateAmbientParam(const Sound3DManager*, const Sound3DParam*, u32, u32, SoundAmbientParam*);
|
||||
virtual void UpdateAmbientParam(const Sound3DManager*, const Sound3DParam*, u32, u32 flags, SoundAmbientParam*);
|
||||
|
||||
private:
|
||||
Sound3DCalculator::CalcPanParam mPanParam; // at 0x04
|
||||
|
||||
@@ -68,10 +68,18 @@ public:
|
||||
return field_0x20;
|
||||
}
|
||||
|
||||
void SetField0x20(f32 value) {
|
||||
field_0x20 = value;
|
||||
}
|
||||
|
||||
f32 GetField0x24() const {
|
||||
return field_0x24;
|
||||
}
|
||||
|
||||
void SetField0x24(f32 value) {
|
||||
field_0x24 = value;
|
||||
}
|
||||
|
||||
void SetEngine(Sound3DEngine *engine);
|
||||
|
||||
enum ParamDecayCurve {
|
||||
|
||||
@@ -39,6 +39,10 @@ namespace nw4r { namespace snd
|
||||
mSound->Stop(0);
|
||||
}
|
||||
|
||||
bool IsPause() const {
|
||||
return IsAttachedSound() && mSound->IsPause();
|
||||
}
|
||||
|
||||
u32 GetId() const
|
||||
{
|
||||
if (IsAttachedSound())
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "common.h"
|
||||
#include "string.h"
|
||||
#include "wstring.h"
|
||||
#include "printf.h"
|
||||
|
||||
extern "C" bool strequals(const char *a, const char *b);
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#ifndef SOUND_AUDIO_MANAGER_H
|
||||
#define SOUND_AUDIO_MANAGER_H
|
||||
|
||||
#include "common.h"
|
||||
#include "egg/audio/eggAudioMgr.h"
|
||||
|
||||
|
||||
// Size: 0x6d0
|
||||
class SndAudioMgr : public EGG::SimpleAudioMgr {
|
||||
public:
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -91,14 +91,14 @@ public:
|
||||
return create2(ac, mdlFile, mdlName, anmName, callback, bufferOption);
|
||||
}
|
||||
|
||||
void setSoundSource(SoundSource *pSource);
|
||||
void setSoundSource(dSoundSourceIf_c *pSource);
|
||||
|
||||
protected:
|
||||
bool loadSounds(const char *name);
|
||||
void syncAnmFrame();
|
||||
void setSoundRate(f32 rate);
|
||||
|
||||
/* 0x68 */ SoundSource *mpSoundSource;
|
||||
/* 0x68 */ dSoundSourceIf_c *mpSoundSource;
|
||||
/* 0x6C */ void *mpSoundData;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,16 +2,18 @@
|
||||
#define MUSIC_MGRS_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/snd/d_snd_player_mgr.h"
|
||||
|
||||
class BgmMgr;
|
||||
class dSndPlayerMgr_c;
|
||||
|
||||
extern "C" BgmMgr *BGM_MGR;
|
||||
#define BGM_MGR (dSndPlayerMgr_c::GetInstance())
|
||||
extern "C" void fn_8035E000();
|
||||
extern "C" void fn_8035E860(BgmMgr *);
|
||||
extern "C" void fn_8035E310(BgmMgr *);
|
||||
extern "C" void fn_8035E820(BgmMgr *);
|
||||
extern "C" void fn_8035E880(BgmMgr *);
|
||||
extern "C" void fn_8035E790(BgmMgr *, UNKWORD, void *);
|
||||
extern "C" void fn_8035E860(dSndPlayerMgr_c *);
|
||||
extern "C" void fn_8035E310(dSndPlayerMgr_c *);
|
||||
extern "C" void fn_8035E820(dSndPlayerMgr_c *);
|
||||
extern "C" void fn_8035E880(dSndPlayerMgr_c *);
|
||||
extern "C" void fn_8035E790(dSndPlayerMgr_c *, UNKWORD, void *);
|
||||
extern "C" bool fn_8035ED90(dSndPlayerMgr_c *, u8);
|
||||
|
||||
extern "C" void *ENEMY_SOUND_MGR;
|
||||
extern "C" void fn_80362150(void *, u16);
|
||||
@@ -21,6 +23,8 @@ extern "C" void fn_80362730(void *);
|
||||
extern "C" void fn_80365D20(void *);
|
||||
extern "C" void fn_803624F0(void *);
|
||||
extern "C" void fn_80364FD0(void *, s32);
|
||||
extern "C" bool fn_80364DA0(void *);
|
||||
extern "C" void fn_80364D00(void*, s32);
|
||||
|
||||
extern "C" void *ENEMY_BGM_RELATED_MGR;
|
||||
extern "C" void fn_80384570(void *, bool);
|
||||
@@ -28,5 +32,10 @@ extern "C" void fn_803858D0(void *);
|
||||
|
||||
extern "C" void *FANFARE_SOUND_MGR;
|
||||
extern "C" void AnotherSoundMgr__playSound(void *, s32);
|
||||
extern "C" bool fn_803721F0(void *, u32);
|
||||
extern "C" bool fn_803720E0(void *, u32);
|
||||
extern "C" bool fn_80372070(void *, u32);
|
||||
extern "C" bool fn_803734C0(void *, u32);
|
||||
extern "C" bool fn_80373550(void *, u32);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -66,5 +66,12 @@ inline float sqrtf(float x) {
|
||||
|
||||
} // namespace std
|
||||
|
||||
#define _HUGE_ENUF 1e+300
|
||||
#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF))
|
||||
#define HUGE_VAL ((double)INFINITY)
|
||||
#define HUGE_VALL ((long double)INFINITY)
|
||||
|
||||
#define DOUBLE_INF HUGE_VAL
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/c/c_m3d_g_cps.h"
|
||||
#include "d/snd/d_snd_3d_manager.h"
|
||||
#include "d/t/d_t_sound_area_mgr.h"
|
||||
#include "rvl/MTX.h" // IWYU pragma: export
|
||||
|
||||
@@ -45,20 +46,13 @@ int dTgSndAr_c::doDelete() {
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
struct Unk {
|
||||
u8 unk[0x144];
|
||||
mVec3_c v;
|
||||
};
|
||||
|
||||
extern Unk *lbl_80575D58;
|
||||
|
||||
int dTgSndAr_c::actorExecute() {
|
||||
dAcBase_c *link = dAcPy_c::LINK;
|
||||
if (link != nullptr && checkPosInArea(link->position)) {
|
||||
link->setBit_field_0xE8(params & 0xFF);
|
||||
}
|
||||
if (lbl_80575D58 != nullptr) {
|
||||
mVec3_c pos = lbl_80575D58->v;
|
||||
if (dSnd3DManager_c::GetInstance() != nullptr) {
|
||||
mVec3_c pos = dSnd3DManager_c::GetInstance()->getListenerPos();
|
||||
if (checkPosInArea(pos) && dTgSndMg_c::GetInstance() != nullptr) {
|
||||
dTgSndMg_c::GetInstance()->setBgmFlag(params & 0xFF);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ u8 dAcBase_c::s_Create_Subtype;
|
||||
extern "C" ObjInfo *getObjByActorIdAndSubtype_unkNamespace(ProfileName, u8);
|
||||
extern "C" ObjInfo *getObjByActorName_unkNamespace(char *name);
|
||||
extern "C" char *getObjectName_8006a730(ObjInfo *);
|
||||
extern "C" SoundSource *soundForActorInitRelated_803889c0(s8, fBase_c *, char *, u8);
|
||||
extern "C" dSoundSourceIf_c *soundForActorInitRelated_803889c0(s8, fBase_c *, char *, u8);
|
||||
|
||||
bool dAcBase_c::createHeap() {
|
||||
return true;
|
||||
@@ -113,7 +113,7 @@ void dAcBase_c::setTempCreateParams(
|
||||
}
|
||||
|
||||
// has regswap
|
||||
SoundSource *dAcBase_c::FUN_8002c690() {
|
||||
dSoundSourceIf_c *dAcBase_c::FUN_8002c690() {
|
||||
if (obj_info == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -515,7 +515,7 @@ void dAcBase_c::FUN_8002d830() {}
|
||||
void dAcBase_c::FUN_8002d860(UNKWORD) {}
|
||||
|
||||
// 8002d880
|
||||
SoundSource *dAcBase_c::getSoundSource() {
|
||||
dSoundSourceIf_c *dAcBase_c::getSoundSource() {
|
||||
return sound_source.get();
|
||||
}
|
||||
// End of SoundSource stuff
|
||||
|
||||
@@ -631,7 +631,7 @@ bool daPlBaseMdl_c::create(
|
||||
field_0x58 = 0;
|
||||
mpSoundData = nullptr;
|
||||
field_0x5A = 0xFFFF;
|
||||
SoundSource *sound = player->getSoundSource();
|
||||
dSoundSourceIf_c *sound = player->getSoundSource();
|
||||
if (sound->isReadyMaybe()) {
|
||||
sound->load(nullptr, "");
|
||||
}
|
||||
@@ -1772,7 +1772,7 @@ void daPlayerModelBase_c::removeAnmChr(s32 childIdx) {
|
||||
}
|
||||
|
||||
void daPlayerModelBase_c::loadSound(nw4r::g3d::ResFile &file, const char *name, s32 childIdx) {
|
||||
SoundSource *s = getSoundSource();
|
||||
dSoundSourceIf_c *s = getSoundSource();
|
||||
mCurrentAnmChrIdx = childIdx;
|
||||
SizedString<64> path;
|
||||
path.sprintf("%s.brasd", name);
|
||||
@@ -1785,7 +1785,7 @@ void daPlayerModelBase_c::loadSound(nw4r::g3d::ResFile &file, const char *name,
|
||||
}
|
||||
|
||||
void daPlayerModelBase_c::loadSoundForAnim(s32 childIdx) {
|
||||
SoundSource *s = getSoundSource();
|
||||
dSoundSourceIf_c *s = getSoundSource();
|
||||
s32 anim = mAnimations[childIdx];
|
||||
mCurrentAnmChrIdx = childIdx;
|
||||
if (anim != mMainMdl.getField_0x5A()) {
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
#include "d/snd/d_snd_3d_actor.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/snd/d_snd_3d_manager.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
#include "toBeSorted/music_mgrs.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
dSnd3DActor_c::dSnd3DActor_c(UNKTYPE *a1, u8 a2)
|
||||
: nw4r::snd::Sound3DActor(
|
||||
dSndPlayerMgr_c::GetInstance()->getSoundArchivePlayerForType(a2), dSnd3DManager_c::GetInstance()->getManager()
|
||||
),
|
||||
a_field_0x7D(0),
|
||||
a_field_0x7E(0),
|
||||
a_field_0x7F(0),
|
||||
a_field_0x80(0),
|
||||
a_field_0x84(0.0f),
|
||||
a_field_0x88(0.0f),
|
||||
a_field_0x8C(0.0f),
|
||||
a_field_0x90(INFINITY),
|
||||
a_field_0x94(INFINITY),
|
||||
a_field_0x98(0.0f),
|
||||
a_field_0x9C(0.0f),
|
||||
a_field_0xC8(a1),
|
||||
mFlags(0),
|
||||
mDistanceToPlayer(INFINITY),
|
||||
a_field_0xE0(0.0f) {
|
||||
resetFloats();
|
||||
// Portability hazard
|
||||
SetUserParam(reinterpret_cast<u32>(this));
|
||||
if (fn_8035ED90(BGM_MGR, a2)) {
|
||||
a_field_0x7F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void dSnd3DActor_c::d_vt_0x34(const nw4r::math::VEC3 &rPosition) {
|
||||
SetPosition(rPosition);
|
||||
// TODO - 0xE0
|
||||
mFlags = 0;
|
||||
}
|
||||
|
||||
void dSnd3DActor_c::updatePositionRelativeToPlayer() {
|
||||
if (!checkFlag(0x40)) {
|
||||
nw4r::math::VEC3 linkTranslation = dAcPy_c::GetLink()->getCenterTranslation();
|
||||
nw4r::math::VEC3 pos = GetPosition();
|
||||
nw4r::math::VEC3Sub(&mPositionRelativeToPlayer, &pos, &linkTranslation);
|
||||
|
||||
mFlags |= 0x40;
|
||||
}
|
||||
}
|
||||
|
||||
const nw4r::math::VEC3 &dSnd3DActor_c::getPositionRelativeToPlayer() {
|
||||
updatePositionRelativeToPlayer();
|
||||
return mPositionRelativeToPlayer;
|
||||
}
|
||||
|
||||
void dSnd3DActor_c::updateDistanceToPlayer() {
|
||||
if (!checkFlag(0x80)) {
|
||||
updatePositionRelativeToPlayer();
|
||||
nw4r::math::VEC3 linkTranslation = dAcPy_c::GetLink()->getCenterTranslation();
|
||||
nw4r::math::VEC3 pos = GetPosition();
|
||||
if ((linkTranslation.x == 0.0f && linkTranslation.y == 0.0f && linkTranslation.z == 0.0f) ||
|
||||
(pos.x == 0.0f && pos.y == 0.0f && pos.z == 0.0f)) {
|
||||
// Don't bother if we received dummy values
|
||||
mDistanceToPlayer = INFINITY;
|
||||
} else {
|
||||
mDistanceToPlayer = nw4r::math::VEC3Len(&mPositionRelativeToPlayer);
|
||||
}
|
||||
mFlags |= 0x80;
|
||||
}
|
||||
}
|
||||
|
||||
f32 dSnd3DActor_c::getDistanceToPlayer() {
|
||||
updateDistanceToPlayer();
|
||||
return mDistanceToPlayer;
|
||||
}
|
||||
|
||||
bool dSnd3DActor_c::hasPlayingSounds() const {
|
||||
for (int i = 0; i < ACTOR_PLAYER_COUNT; i++) {
|
||||
if (GetPlayingSoundCount(i) > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool dSnd3DActor_c::isPlayingSound(u32 id) {
|
||||
bool result = false;
|
||||
|
||||
IsCurrentSoundIdChecker handler(id, &result);
|
||||
ForEachSound(handler, false);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
#include "d/snd/d_snd_3d_engine.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "nw4r/snd/snd_Sound3DListener.h"
|
||||
|
||||
dSnd3DEngine_c::dSnd3DEngine_c() {}
|
||||
|
||||
static void CalcPitch(
|
||||
const nw4r::math::VEC3 *vec, f32 mag, const nw4r::snd::Sound3DManager &mgr,
|
||||
const nw4r::snd::Sound3DListener &listener, const nw4r::snd::Sound3DParam ¶m, f32 *pPitch
|
||||
);
|
||||
|
||||
void dSnd3DEngine_c::UpdateAmbientParam(
|
||||
const nw4r::snd::Sound3DManager *mgr, const nw4r::snd::Sound3DParam *param3d, u32 unk, u32 flags,
|
||||
nw4r::snd::SoundAmbientParam *paramAmb
|
||||
) {
|
||||
f32 pitch;
|
||||
CalcPitch(nullptr, 0.0f, *mgr, mgr->GetListenerList().GetFront(), *param3d, &pitch);
|
||||
}
|
||||
|
||||
// Largely copied from Sound3DCalculator::CalcPitch
|
||||
static void CalcPitch(
|
||||
const nw4r::math::VEC3 *vec, f32 mag, const nw4r::snd::Sound3DManager &mgr,
|
||||
const nw4r::snd::Sound3DListener &listener, const nw4r::snd::Sound3DParam ¶m, f32 *pPitch
|
||||
) {
|
||||
f32 f0 = mgr.GetField0x24();
|
||||
if (f0 == 0.0f) {
|
||||
*pPitch = 1.0f;
|
||||
return;
|
||||
}
|
||||
|
||||
nw4r::math::VEC3 relativePos(*vec);
|
||||
if (mag > 0.0f) {
|
||||
relativePos /= mag;
|
||||
}
|
||||
f32 f3 = param.field_0x1E / 32.0f;
|
||||
f32 f1, f2;
|
||||
if (mag > 0.0f) {
|
||||
f1 = -nw4r::math::VEC3Dot(&relativePos, ¶m.velocity);
|
||||
f2 = -nw4r::math::VEC3Dot(&relativePos, &listener.GetVelocity());
|
||||
} else {
|
||||
f1 = -nw4r::math::VEC3Len(¶m.velocity);
|
||||
f2 = nw4r::math::VEC3Len(&listener.GetVelocity());
|
||||
}
|
||||
f32 pitch;
|
||||
f1 *= f3;
|
||||
f2 *= f3;
|
||||
if (f2 > f0) {
|
||||
pitch = 0.0f;
|
||||
} else if (f1 >= f0) {
|
||||
pitch = 65535.0f;
|
||||
} else {
|
||||
pitch = (f0 - f2) / (f0 - f1);
|
||||
}
|
||||
*pPitch = pitch;
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
#include "d/snd/d_snd_3d_manager.h"
|
||||
|
||||
#include "d/snd/d_snd_3d_engine.h"
|
||||
#include "d/snd/d_snd_mgr.h"
|
||||
#include "egg/math/eggMatrix.h"
|
||||
#include "egg/math/eggVector.h"
|
||||
#include "nw4r/math/math_arithmetic.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
#include "nw4r/snd/snd_SoundArchive.h"
|
||||
#include "toBeSorted/music_mgrs.h"
|
||||
|
||||
template class SndMgrDisposer<dSnd3DManager_c>;
|
||||
|
||||
dSnd3DManager_c::dSnd3DManager_c() : mIsSetup(false), field_0x11(0) {
|
||||
mCameraPosSqVelocity = 0.0f;
|
||||
mCameraAtSqVelocity = 0.0f;
|
||||
mCamDistance = 0.9f;
|
||||
mTimer = 0;
|
||||
mpEngine = new dSnd3DEngine_c();
|
||||
field_0x138.x = 0.0f;
|
||||
field_0x138.y = 0.0f;
|
||||
field_0x138.z = 1.0f;
|
||||
}
|
||||
|
||||
void dSnd3DManager_c::setup() {
|
||||
if (mIsSetup) {
|
||||
return;
|
||||
}
|
||||
|
||||
nw4r::snd::SoundArchive *archive = dSndMgr_c::GetInstance()->getArchive();
|
||||
u32 requiredSize = mManager.GetRequiredMemSize(archive);
|
||||
void *buf = dSndMgr_c::GetInstance()->getSoundHeap()->Alloc(requiredSize);
|
||||
mManager.Setup(archive, buf, requiredSize);
|
||||
mManager.SetEngine(mpEngine);
|
||||
mManager.SetMaxPriorityReduction(32);
|
||||
mManager.SetField0x20(0.9f);
|
||||
mManager.SetField0x24(3400.0f / 3.0f);
|
||||
mListener.SetMaxVolumeDistance(300.0f);
|
||||
mListener.SetUnitDistance(1000.0f);
|
||||
mListener.SetInteriorSize(400.0f);
|
||||
mManager.SetBiquadFilterType(3);
|
||||
mListener.SetUnitBiquadFilterMax(0.5f);
|
||||
mListener.SetUnitBiquadFilterValue(0.2f);
|
||||
mManager.GetListenerList().Insert(mManager.GetListenerList().GetEndIter(), &mListener);
|
||||
mIsSetup = true;
|
||||
}
|
||||
|
||||
void dSnd3DManager_c::resetCamDistance() {
|
||||
mCamDistance = 0.9f;
|
||||
}
|
||||
|
||||
void dSnd3DManager_c::setCamDistance(f32 value) {
|
||||
// @bug ? not actually clamped
|
||||
nw4r::ut::Clamp(value, -1.0f, 2.0f);
|
||||
mCamDistance = value;
|
||||
}
|
||||
|
||||
void dSnd3DManager_c::calc() {
|
||||
field_0x11 = 0;
|
||||
}
|
||||
|
||||
void dSnd3DManager_c::clearState() {
|
||||
mCameraPosSqVelocity = 0.0f;
|
||||
mCameraAtSqVelocity = 0.0f;
|
||||
mTimer = 0;
|
||||
}
|
||||
|
||||
|
||||
void dSnd3DManager_c::updateFromCamera(EGG::LookAtCamera &camera) {
|
||||
if (field_0x11) {
|
||||
return;
|
||||
}
|
||||
|
||||
f32 dist = 0.5f;
|
||||
if (fn_80364DA0(ENEMY_SOUND_MGR)) {
|
||||
dist = mCamDistance;
|
||||
f32 prevCameraAtSqVelocity = mCameraAtSqVelocity;
|
||||
f32 prevCameraPosSqVelocity = mCameraPosSqVelocity;
|
||||
mCameraAtSqVelocity = VECSquareDistance(camera.mAt, mCamera.mAt);
|
||||
mCameraPosSqVelocity = VECSquareDistance(camera.mPos, mCamera.mPos);
|
||||
if (((u32 *)ENEMY_SOUND_MGR)[71] > 30) {
|
||||
bool bigMovement = false;
|
||||
bool hugeMovement = false;
|
||||
if (mTimer > 0) {
|
||||
mTimer--;
|
||||
} else {
|
||||
f32 atAccel = prevCameraAtSqVelocity - mCameraAtSqVelocity;
|
||||
f32 atAccelAbs = nw4r::math::FAbs(atAccel);
|
||||
if (mCameraAtSqVelocity > 490000.0f) {
|
||||
bigMovement = true;
|
||||
hugeMovement = true;
|
||||
} else if (atAccelAbs > 10000.0f) {
|
||||
bigMovement = true;
|
||||
}
|
||||
if (!hugeMovement) {
|
||||
f32 posAccel = prevCameraPosSqVelocity - mCameraPosSqVelocity;
|
||||
f32 posAccelAbs = nw4r::math::FAbs(posAccel);
|
||||
if (mCameraPosSqVelocity > 490000.0f) {
|
||||
bigMovement = true;
|
||||
hugeMovement = true;
|
||||
} else if (posAccelAbs > 10000.0f) {
|
||||
bigMovement = true;
|
||||
}
|
||||
if (bigMovement && !hugeMovement && nw4r::math::FAbs(atAccelAbs - posAccelAbs) < 22500.0f) {
|
||||
nw4r::math::VEC3 myDir = mCamera.getOtherDirection();
|
||||
nw4r::math::VEC3 camDir = camera.getOtherDirection();
|
||||
VECNormalize(myDir, myDir);
|
||||
VECNormalize(camDir, camDir);
|
||||
if (nw4r::math::VEC3Dot(&myDir, &camDir) > 0.99f) {
|
||||
bigMovement = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bigMovement) {
|
||||
fn_80364D00(ENEMY_SOUND_MGR, -1);
|
||||
mTimer = 30;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mCamera = camera;
|
||||
updateListenerPos(dist);
|
||||
field_0x11 = 1;
|
||||
}
|
||||
|
||||
void dSnd3DManager_c::updateListenerPos(f32 f) {
|
||||
const EGG::Matrix34f &mtx = mCamera.getViewMatrix();
|
||||
mListener.SetMatrix(*mtx);
|
||||
EGG::Vector3f dir = mCamera.getDirection();
|
||||
VECNormalize(dir, field_0x138);
|
||||
dir *= f;
|
||||
mSoundListenerPosition = mCamera.mPos + dir;
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
#include "d/snd/d_snd_actor.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/snd/d_snd_checkers.h"
|
||||
#include "nw4r/snd/snd_BasicSound.h"
|
||||
#include "nw4r/snd/snd_SoundArchivePlayer.h"
|
||||
#include "nw4r/snd/snd_SoundHandle.h"
|
||||
#include "toBeSorted/music_mgrs.h"
|
||||
|
||||
dSndActor_c::dSndActor_c(nw4r::snd::SoundArchivePlayer &rStartable) : nw4r::snd::SoundActor(rStartable) {}
|
||||
|
||||
void d_snd_actor_SoundHandle_dtor() {
|
||||
nw4r::snd::SoundHandle handle[2];
|
||||
}
|
||||
|
||||
void SoundPropertiesChecker::operator()(nw4r::snd::SoundHandle &pHandle) {
|
||||
if (mSoundId != -1 && mSoundId != pHandle.GetId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mpPlayCounter != nullptr) {
|
||||
(*mpPlayCounter)++;
|
||||
} else {
|
||||
mPlayCounter++;
|
||||
}
|
||||
|
||||
if (pHandle.IsPause()) {
|
||||
if (mpPauseCounter != nullptr) {
|
||||
(*mpPauseCounter)++;
|
||||
} else {
|
||||
mPauseCounter++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (fn_803721F0(FANFARE_SOUND_MGR, pHandle.GetId())) {
|
||||
if (mpCounter3 != nullptr) {
|
||||
(*mpCounter3)++;
|
||||
} else {
|
||||
mCounter3++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (fn_803720E0(FANFARE_SOUND_MGR, pHandle.GetId())) {
|
||||
if (mpCounter3 != nullptr) {
|
||||
(*mpCounter3)++;
|
||||
} else {
|
||||
mCounter3++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (fn_80372070(FANFARE_SOUND_MGR, pHandle.GetId())) {
|
||||
if (mpCounter4 != nullptr) {
|
||||
(*mpCounter4)++;
|
||||
} else {
|
||||
mCounter4++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (fn_803734C0(FANFARE_SOUND_MGR, pHandle.GetId()) && !fn_80373550(FANFARE_SOUND_MGR, pHandle.GetId())) {
|
||||
mCounter3++;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
#include "d/snd/d_snd_mgr.h"
|
||||
|
||||
#include "d/snd/d_snd_3d_manager.h"
|
||||
#include "d/snd/d_snd_player_mgr.h"
|
||||
#include "d/snd/d_snd_util.h"
|
||||
#include "egg/audio/eggAudioRmtSpeakerMgr.h"
|
||||
#include "egg/audio/eggAudioUtility.h"
|
||||
|
||||
extern "C" void fn_8035F120();
|
||||
extern "C" void initEnemySoundMgr();
|
||||
extern "C" void initFanfareSoundMgr();
|
||||
extern "C" void initSomeUnusedSoundMgr();
|
||||
extern "C" void initSoundEffectSoundMgr();
|
||||
extern "C" void fn_8036A430();
|
||||
extern "C" void initEnemyBgmRelatedMgr();
|
||||
extern "C" void fn_80393530();
|
||||
extern "C" void fn_80394830();
|
||||
extern "C" void fn_8037F940();
|
||||
extern "C" void fn_80399600();
|
||||
extern "C" void fn_80399C20();
|
||||
|
||||
dSndMgr_c *dSndMgr_c::sInstance;
|
||||
|
||||
dSndMgr_c::dSndMgr_c(): field_0x6CC(0) {
|
||||
sInstance = this;
|
||||
SndMgrDisposer<dSndPlayerMgr_c>::create();
|
||||
fn_8035F120();
|
||||
initEnemySoundMgr();
|
||||
SndMgrDisposer<dSnd3DManager_c>::create();
|
||||
initFanfareSoundMgr();
|
||||
initSomeUnusedSoundMgr();
|
||||
initSoundEffectSoundMgr();
|
||||
fn_8036A430();
|
||||
initEnemyBgmRelatedMgr();
|
||||
fn_80393530();
|
||||
fn_80394830();
|
||||
fn_8037F940();
|
||||
fn_80399600();
|
||||
fn_80399C20();
|
||||
|
||||
initHbm(9);
|
||||
}
|
||||
|
||||
void dSndMgr_c::initialize(EGG::Heap *heap, u32 size) {}
|
||||
|
||||
void dSndMgr_c::initHbm(u32 frame) {
|
||||
EGG::AudioUtility::HBM::init(this, restoreEffectsCallback, frame);
|
||||
}
|
||||
|
||||
void dSndMgr_c::calc() {
|
||||
if (field_0x6CC) {
|
||||
EGG::SimpleAudioMgr::calc();
|
||||
EGG::AudioRmtSpeakerMgr::calc();
|
||||
dSndPlayerMgr_c::GetInstance()->calc();
|
||||
}
|
||||
}
|
||||
|
||||
void dSndMgr_c::restoreEffectsCallback() {}
|
||||
@@ -0,0 +1,86 @@
|
||||
|
||||
#include "d/snd/d_snd_player_mgr.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/snd/d_snd_mgr.h"
|
||||
#include "egg/core/eggDvdRipper.h"
|
||||
#include "nw4r/snd/snd_SoundHandle.h"
|
||||
#include "nw4r/snd/snd_SoundStartable.h"
|
||||
#include "sized_string.h"
|
||||
|
||||
const char *dSndPlayerMgr_c::getSoundArchivePath() {
|
||||
return "Sound/WZSound.brsar";
|
||||
}
|
||||
|
||||
template class SndMgrDisposer<dSndPlayerMgr_c>;
|
||||
|
||||
dSndPlayerMgr_c::dSndPlayerMgr_c()
|
||||
: field_0x010(0), field_0x011(0), field_0x014(-1), field_0x018(-1), field_0x01C(-1), mFlags(0) {}
|
||||
|
||||
u32 dSndPlayerMgr_c::getFreeSize() {
|
||||
return dSndMgr_c::GetInstance()->getSoundHeap()->GetFreeSize();
|
||||
}
|
||||
|
||||
nw4r::snd::SoundStartable::StartResult dSndPlayerMgr_c::startSound(
|
||||
nw4r::snd::SoundHandle *pHandle, u32 soundId, const nw4r::snd::SoundStartable::StartInfo *pStartInfo
|
||||
) {
|
||||
if (mFlags & 0x2) {
|
||||
return nw4r::snd::SoundStartable::START_ERR_USER;
|
||||
}
|
||||
|
||||
nw4r::snd::SoundHandle handle;
|
||||
if (pHandle == nullptr) {
|
||||
pHandle = &handle;
|
||||
}
|
||||
nw4r::snd::SoundStartable::StartResult res;
|
||||
if (pStartInfo != nullptr) {
|
||||
res = dSndMgr_c::getPlayer()->detail_StartSound(pHandle, soundId, pStartInfo);
|
||||
} else {
|
||||
res = dSndMgr_c::getPlayer()->detail_StartSound(pHandle, soundId, nullptr);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
nw4r::snd::SoundStartable::StartResult dSndPlayerMgr_c::startSound(
|
||||
nw4r::snd::SoundHandle *pHandle, const char *soundLabel, const nw4r::snd::SoundStartable::StartInfo *pStartInfo
|
||||
) {
|
||||
u32 id = dSndPlayerMgr_c::GetInstance()->convertLabelStringToSoundId(soundLabel);
|
||||
return startSound(pHandle, id, pStartInfo);
|
||||
}
|
||||
|
||||
u32 dSndPlayerMgr_c::convertLabelStringToSoundId(const char *label) const {
|
||||
return dSndMgr_c::GetInstance()->changeNameToId(label);
|
||||
}
|
||||
|
||||
bool dSndPlayerMgr_c::loadDemoArchive(const char *demoArchiveName) {
|
||||
if (demoArchiveName == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int stateId = dSndMgr_c::GetInstance()->saveState();
|
||||
SizedString<64> path;
|
||||
path.sprintf("Sound/demo/%s.brsar", demoArchiveName);
|
||||
void *buf = dSndMgr_c::GetInstance()->getSoundHeap()->Alloc(getFreeSize() - 0x40000);
|
||||
if (buf == nullptr) {
|
||||
return false;
|
||||
}
|
||||
bool ok = false;
|
||||
u32 amountRead = 0;
|
||||
u32 fileSize = 0;
|
||||
EGG::DvdRipper::Arg arg(path, (u8 *)buf, nullptr, EGG::DvdRipper::ALLOC_DIR_TOP, 0, &amountRead, &fileSize);
|
||||
void *ptr = EGG::DvdRipper::loadToMainRAM(arg);
|
||||
if (ptr != nullptr) {
|
||||
ok = mSoundArchive.Setup(ptr);
|
||||
if (ok) {
|
||||
u32 size = mSoundArchivePlayer.GetRequiredMemSize(&mSoundArchive);
|
||||
void *buf2 = dSndMgr_c::GetInstance()->getSoundHeap()->Alloc(size);
|
||||
if (buf2 != nullptr) {
|
||||
ok = mSoundArchivePlayer.Setup(&mSoundArchive, buf2, size, nullptr, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!ok) {
|
||||
dSndMgr_c::GetInstance()->loadState(stateId);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
#include "d/snd/d_snd_source.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/snd/d_snd_3d_actor.h"
|
||||
#include "nw4r/snd/snd_SoundStartable.h"
|
||||
#include "nw4r/ut/ut_list.h"
|
||||
#include "sized_string.h"
|
||||
|
||||
extern "C" u8 fn_80382590(u8, UNKWORD);
|
||||
extern "C" void fn_80386C50(UNKWORD, dSoundSource_c *);
|
||||
extern "C" void fn_80386C70(dSoundSource_c *);
|
||||
|
||||
struct d_snd_mgr_unk_6_sinit {
|
||||
d_snd_mgr_unk_6_sinit() : field_0x00(0), field_0x04(0.0f) {}
|
||||
|
||||
u32 field_0x00;
|
||||
f32 field_0x04;
|
||||
};
|
||||
|
||||
d_snd_mgr_unk_6_sinit d_snd_mgr_unk_6_sinit_instance;
|
||||
|
||||
const char *help_i_need_data() {
|
||||
return "%s_%s_%d";
|
||||
}
|
||||
|
||||
dSoundSource_c::dSoundSource_c(u8 a1, dAcBase_c *player, UNKWORD a3, UNKWORD a4)
|
||||
: dSnd3DActor_c(((char *)a4) + 0x50, a1),
|
||||
field_0x0F0(a3),
|
||||
field_0x0F4(0),
|
||||
mpPlayer(player),
|
||||
field_0x0FD(a1),
|
||||
field_0x0FE(0),
|
||||
field_0x0FF(0),
|
||||
field_0x100(0),
|
||||
field_0x101(0),
|
||||
field_0x102(0),
|
||||
field_0x104(0),
|
||||
field_0x108(0),
|
||||
field_0x10C(0),
|
||||
field_0x11C(0),
|
||||
field_0x140(a4),
|
||||
field_0x154(0),
|
||||
field_0x158(-1),
|
||||
field_0x15A(-1) {
|
||||
field_0x0FC = fn_80382590(a1, a3);
|
||||
// TODO: Offsetof
|
||||
nw4r::ut::List_Init(&field_0x110, 0xEC);
|
||||
nw4r::ut::List_Init(&field_0x120, 0x04);
|
||||
nw4r::ut::List_Init(&field_0x12C, 0x04);
|
||||
fn_80386C50(a4, this);
|
||||
}
|
||||
|
||||
dSoundSource_c::~dSoundSource_c() {
|
||||
SetUserParam(0);
|
||||
vt_0x44();
|
||||
fn_80386C70(this);
|
||||
}
|
||||
|
||||
bool dSoundSource_c::hasPlayingSounds() const {
|
||||
return dSnd3DActor_c::hasPlayingSounds();
|
||||
}
|
||||
|
||||
void dSoundSource_c::d_vt_0x38(bool flag, int fadeFrames) {
|
||||
if (flag == 0) {
|
||||
PauseAllSound(flag, fadeFrames);
|
||||
d_s_vt_0x1C4(flag, fadeFrames);
|
||||
a_field_0x80 = 0;
|
||||
} else if (a_field_0x7E == 0) {
|
||||
PauseAllSound(flag, fadeFrames);
|
||||
d_s_vt_0x1C4(flag, fadeFrames);
|
||||
a_field_0x80 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
nw4r::snd::SoundStartable::StartResult
|
||||
dSoundSource_c::SetupSound(nw4r::snd::SoundHandle *pHandle, u32 soundId, const StartInfo *pStartInfo, void *) {
|
||||
// TODO
|
||||
return START_SUCCESS;
|
||||
}
|
||||
|
||||
void dSoundSource_c::d_vt_0x58() {
|
||||
// noop
|
||||
}
|
||||
|
||||
void dSoundSource_c::d_vt_0x5C() {
|
||||
// noop
|
||||
}
|
||||
|
||||
u32 dSoundSource_c::getRemoConSoundVariant(u32 soundId) const {
|
||||
const char *label = soundIdToSoundLabel(soundId);
|
||||
SizedString<64> str;
|
||||
str.sprintf("%s_RC", label);
|
||||
return soundLabelToSoundId(str);
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
#include "d/snd/d_snd_util.h"
|
||||
|
||||
class SndClass80399a40 {
|
||||
public:
|
||||
SndClass80399a40();
|
||||
virtual ~SndClass80399a40() {}
|
||||
|
||||
/* 0x04 */ u8 _0x04[0x18 - 0x04];
|
||||
};
|
||||
|
||||
// This is a test for SndMgrDisposer, since this
|
||||
// class has the disposer at 0x18, which is interesting
|
||||
|
||||
class SndMgr80399c20;
|
||||
|
||||
extern template class SndMgrDisposer<SndMgr80399c20>;
|
||||
|
||||
class SndMgr80399c20 : SndClass80399a40 {
|
||||
public:
|
||||
SndMgrDisposer<SndMgr80399c20> *GetDisposer() {
|
||||
return &mDisposer;
|
||||
}
|
||||
|
||||
static SndMgr80399c20 *GetInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
static SndMgr80399c20 *sInstance;
|
||||
static SndMgrDisposer<SndMgr80399c20> *sDisposer;
|
||||
|
||||
private:
|
||||
SndMgrDisposer<SndMgr80399c20> mDisposer;
|
||||
};
|
||||
|
||||
template class SndMgrDisposer<SndMgr80399c20>;
|
||||
@@ -31,10 +31,10 @@ AnmMdlWrapper::AnmMdlWrapper() : mpSoundSource(nullptr), mpSoundData(nullptr) {}
|
||||
|
||||
AnmMdlWrapper::~AnmMdlWrapper() {
|
||||
if (mpSoundSource != nullptr) {
|
||||
if (mpSoundSource->shutdown()) {
|
||||
if (mpSoundSource->hasPlayingSounds()) {
|
||||
do {
|
||||
VIWaitForRetrace();
|
||||
} while (mpSoundSource->shutdown());
|
||||
} while (mpSoundSource->hasPlayingSounds());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -119,7 +119,7 @@ void AnmMdlWrapper::setRate(f32 rate) {
|
||||
setSoundRate(rate);
|
||||
}
|
||||
|
||||
void AnmMdlWrapper::setSoundSource(SoundSource *pSource) {
|
||||
void AnmMdlWrapper::setSoundSource(dSoundSourceIf_c *pSource) {
|
||||
mpSoundSource = pSource;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "d/a/d_a_base.h"
|
||||
|
||||
extern "C" SoundSource *soundForActorInitRelated_803889c0(int, fBase_c *, char *, u8);
|
||||
extern "C" dSoundSourceIf_c *soundForActorInitRelated_803889c0(int, fBase_c *, char *, u8);
|
||||
|
||||
extern "C" bool fn_8002C250(SoundInfo *p1, int someNum, char *name, mVec3_c *position) {
|
||||
p1->sound_source = soundForActorInitRelated_803889c0(someNum, p1->actor, name, 0);
|
||||
|
||||
Reference in New Issue
Block a user