mirror of https://github.com/zeldaret/tp.git
78 lines
2.2 KiB
C++
78 lines
2.2 KiB
C++
#ifndef JASWSPARSER_H
|
|
#define JASWSPARSER_H
|
|
|
|
#include "dolphin/types.h"
|
|
#include "JSystem/JSupport/JSupport.h"
|
|
|
|
class JKRHeap;
|
|
class JASWaveBank;
|
|
class JASBasicWaveBank;
|
|
class JASSimpleWaveBank;
|
|
|
|
class JASWSParser {
|
|
public:
|
|
template<class T>
|
|
class TOffset {
|
|
public:
|
|
T* ptr(void* param_0) {
|
|
return JSUConvertOffsetToPtr<T>(param_0, mOffset);
|
|
}
|
|
void* mOffset;
|
|
};
|
|
|
|
/** @fabricated */
|
|
struct THeader {
|
|
u8 _00[0x10]; // _00 - unknown/padding
|
|
u32 mArchiveBankOffset; // _10
|
|
u32 mCtrlGroupOffset; // _14
|
|
};
|
|
struct TCtrlWave {
|
|
u32 _00; // _00
|
|
};
|
|
struct TWave {
|
|
u8 _00; // _00
|
|
u8 _01; // _01
|
|
u8 _02; // _02
|
|
f32 _04; // _04
|
|
u32 mOffset; // _08
|
|
u32 _0C; // _0C
|
|
u32 _10; // _10
|
|
u32 _14; // _14
|
|
u32 _18; // _18
|
|
u32 _1C; // _1C
|
|
s16 _20; // _20
|
|
s16 _22; // _22
|
|
};
|
|
struct TWaveArchive {
|
|
char mFileName[0x74]; // _00 - unknown length
|
|
u32 mWaveOffsets[1]; // _74 - dynamic length
|
|
};
|
|
struct TWaveArchiveBank {
|
|
u8 _00[8]; // _00 - unknown/padding
|
|
u32 mArchiveOffsets[1]; // _08 - dynamic length
|
|
};
|
|
struct TCtrl {
|
|
u8 _00[4]; // _00 - unknown/padding
|
|
u32 mWaveCount; // _04
|
|
u32 mCtrlWaveOffsets[1]; // _08 - dynamic length
|
|
};
|
|
struct TCtrlScene {
|
|
u8 _00[12]; // _00 - unknown/padding
|
|
u32 mCtrlOffset; // _0C
|
|
};
|
|
struct TCtrlGroup {
|
|
u8 _00[8]; // _00 - unknown/padding
|
|
u32 mCtrlGroupCount; // _08
|
|
u32 mCtrlSceneOffsets[1]; // _0C - dynamic length
|
|
};
|
|
|
|
/* 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 u8 sUsedHeapSize[4 + 4 /* padding */];
|
|
};
|
|
|
|
#endif /* JASWSPARSER_H */
|