mirror of https://github.com/zeldaret/tp.git
91 lines
2.1 KiB
C++
91 lines
2.1 KiB
C++
#ifndef JASWSPARSER_H
|
|
#define JASWSPARSER_H
|
|
|
|
#include "JSystem/JSupport/JSupport.h"
|
|
|
|
class JKRHeap;
|
|
class JASWaveBank;
|
|
class JASBasicWaveBank;
|
|
class JASSimpleWaveBank;
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
class JASWSParser {
|
|
public:
|
|
template<class T>
|
|
class TOffset {
|
|
public:
|
|
T* ptr(void const* param_0) {
|
|
return JSUConvertOffsetToPtr<T>(param_0, mOffset);
|
|
}
|
|
|
|
private:
|
|
/* 0x0 */ u32 mOffset;
|
|
};
|
|
|
|
struct TCtrlWave {
|
|
/* 0x0 */ u32 _00;
|
|
};
|
|
|
|
struct TWave {
|
|
/* 0x00 */ u8 _00;
|
|
/* 0x01 */ u8 _01;
|
|
/* 0x02 */ u8 _02;
|
|
/* 0x04 */ f32 _04;
|
|
/* 0x08 */ u32 mOffset;
|
|
/* 0x0C */ u32 _0C;
|
|
/* 0x10 */ u32 _10;
|
|
/* 0x14 */ u32 _14;
|
|
/* 0x18 */ u32 _18;
|
|
/* 0x1C */ u32 _1C;
|
|
/* 0x20 */ s16 _20;
|
|
/* 0x22 */ s16 _22;
|
|
};
|
|
|
|
struct TWaveArchive {
|
|
/* 0x00 */ char mFileName[0x74]; // unknown length
|
|
/* 0x74 */ TOffset<TWave> mWaveOffsets[0];
|
|
};
|
|
|
|
struct TWaveArchiveBank {
|
|
/* 0x0 */ u8 _00[8];
|
|
/* 0x8 */ TOffset<TWaveArchive> mArchiveOffsets[0];
|
|
};
|
|
|
|
struct TCtrl {
|
|
/* 0x0 */ u8 _00[4];
|
|
/* 0x4 */ u32 mWaveCount;
|
|
/* 0x8 */ TOffset<TCtrlWave> mCtrlWaveOffsets[0];
|
|
};
|
|
|
|
struct TCtrlScene {
|
|
/* 0x0 */ u8 _00[0xC];
|
|
/* 0xC */ TOffset<TCtrl> mCtrlOffset;
|
|
};
|
|
|
|
struct TCtrlGroup {
|
|
/* 0x0 */ u8 _00[8];
|
|
/* 0x8 */ u32 mGroupCount;
|
|
/* 0xC */ TOffset<TCtrlScene> mCtrlSceneOffsets[0];
|
|
};
|
|
|
|
/** @fabricated */
|
|
struct THeader {
|
|
/* 0x00 */ u8 _00[0xC];
|
|
/* 0x0C */ u32 mWaveTableSize;
|
|
/* 0x10 */ TOffset<TWaveArchiveBank> mArchiveBankOffset;
|
|
/* 0x14 */ TOffset<TCtrlGroup> mCtrlGroupOffset;
|
|
};
|
|
|
|
/* 80298FB0 */ static u32 getGroupCount(void const*);
|
|
/* 80298FD8 */ static JASWaveBank* createWaveBank(void const*, JKRHeap*);
|
|
/* 80299034 */ static JASBasicWaveBank* createBasicWaveBank(void const*, JKRHeap*);
|
|
/* 80299264 */ static JASSimpleWaveBank* createSimpleWaveBank(void const*, JKRHeap*);
|
|
|
|
static u32 sUsedHeapSize;
|
|
};
|
|
|
|
#endif /* JASWSPARSER_H */
|