d_snd_bgm_mml_parsers OK

This commit is contained in:
robojumper
2025-07-20 13:14:48 +02:00
parent af75869621
commit 339ee576b5
7 changed files with 262 additions and 22 deletions
+5 -2
View File
@@ -129,6 +129,9 @@ public:
private:
dSndBgmBattleSound_c *getBgmBattleSound();
void startBgmMuteSound();
void endBgmMuteSound();
bool stopBgmSound(dSndBgmSound_c *sound, s32 fadeFrames);
void checkForPrepareStoppedBgmSound(u32 stoppedSoundId);
dSndBgmSound_c *findNewBgmSoundHandle();
@@ -171,7 +174,7 @@ private:
/* 0x24C */ u32 mScheduledSoundId;
/* 0x250 */ s32 mScheduledSoundDelay;
/* 0x254 */ dSndBgmSound_c *mBgmSounds[7];
/* 0x270 */ dSndBgmSound_c *field_0x270;
/* 0x270 */ dSndBgmSound_c *mpBgmMuteSound;
/* 0x274 */ dSndBgmSound_c *mpPrevActiveBgmSound;
/* 0x278 */ nw4r::ut::List mBgmSoundLists[BGM_LIST_MAX]; // node offset 0xF0 -> dSndBgmSound_c
/* 0x29C */ UNKWORD field_0x29C;
@@ -185,7 +188,7 @@ private:
/* 0x306 */ u8 field_0x306;
/* 0x307 */ u8 field_0x307;
/* 0x308 */ u8 field_0x308;
/* 0x30C */ u32 field_0x30C[3];
/* 0x30C */ dSndTagData *field_0x30C[3];
/* 0x318 */ u32 field_0x318[3];
/* 0x324 */ u32 field_0x324[3];
/* 0x330 */ u8 field_0x330[3];
+48 -2
View File
@@ -1,5 +1,5 @@
#ifndef D_SND_BGM_MML_PARSERS__H
#define D_SND_BGM_MML_PARSERS__H
#ifndef D_SND_BGM_MML_PARSERS_H
#define D_SND_BGM_MML_PARSERS_H
#include "d/snd/d_snd_bgm_mml_parser_base.h"
#include "d/snd/d_snd_types.h"
@@ -32,4 +32,50 @@ private:
/* 0x294 */ dSndHarpSongData_c *field_0x294;
};
struct dSndTagData {
/* 0x00 */ u32 size;
/* 0x04 */ u32 data[];
};
class dSndBgmMmlParserTagBattle_c : dSndBgmMmlParser_c {
public:
dSndBgmMmlParserTagBattle_c();
virtual void NoteOnCommandProc(u32 trackNo, int wait, int key, int velocity, s32 length) const override;
bool parseData(u32 soundId, dSndTagData **pOutData);
private:
/* 0x294 */ dSndTagData *mpBuf;
/* 0x298 */ mutable u32 mBufSize;
};
class dSndBgmMmlParserTagBgmBoss_c : dSndBgmMmlParser_c {
public:
dSndBgmMmlParserTagBgmBoss_c();
virtual void NoteOnCommandProc(u32 trackNo, int wait, int key, int velocity, s32 length) const override;
void parseData(dSndTagData **pOutData1, dSndTagData **pOutData2);
private:
/* 0x294 */ dSndTagData *mpBuf1;
/* 0x298 */ dSndTagData *mpBuf2;
/* 0x29C */ mutable u32 mBufSize1;
/* 0x2A0 */ mutable u32 mBufSize2;
};
class dSndBgmMmlParserTagCompNote_c : dSndBgmMmlParser_c {
public:
dSndBgmMmlParserTagCompNote_c();
virtual void NoteOnCommandProc(u32 trackNo, int wait, int key, int velocity, s32 length) const override;
void parseData(dSndTagData **pOutData);
private:
/* 0x294 */ dSndTagData *mpBuf;
/* 0x298 */ mutable u32 mBufSize;
};
#endif
+1
View File
@@ -29,5 +29,6 @@ class dSndBgmSeqConfig;
class dSndBgmBattleConfig;
class dSndHarpSongData_c;
class dSndTagData;
#endif