Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JAUSectionHeap.h
Go to the documentation of this file.
1#ifndef JAUSECTIONHEAP_H
2#define JAUSECTIONHEAP_H
3
7#include <bitset>
8
9class JAISeqData;
10class JAISeqDataMgr;
11class JAISeqDataUser;
13class JASVoiceBank;
15class JAUDisposer_;
16class JAUSectionHeap;
17class JAUSoundTable;
19class JKRArchive;
20class JKRSolidHeap;
21
26class JAUSection : public JKRDisposer, protected JSULink<JAUSection> {
27public:
28 struct TSectionData {
32
35 /* 0x34 */ std::bitset<255> registeredWaveBankTables;
36 /* 0x54 */ std::bitset<255> registeredBankTables;
39 /* 0x84 */ const void* mBstDst;
40 /* 0x88 */ const void* mBstnDst;
42 /* 0x98 */ s32 field_0x98;
43 /* 0x9C */ int field_0x9c;
44 /* 0xA0 */ int field_0xa0;
45 };
46
48 void finishBuild();
49 virtual void dispose();
50 JAUSoundTable* newSoundTable(void const*, u32, bool);
51 JAUSoundNameTable* newSoundNameTable(void const*, u32, bool);
52 JAIStreamDataMgr* newStreamFileTable(void const*, bool);
55 bool newStaticSeqData(JAISoundID, void const*, u32);
57 void* newCopy(void const*, u32, s32);
58 JASWaveBank* newWaveBank(u32, void const*);
59 bool loadWaveArc(u32, u32);
60 JASBank* newBank(void const*, u32);
64
65 bool isBuilding() const { return field_0x2c; }
66 bool isOpen() const;
68 if ((JAUSection*)sectionHeap_ == this) {
69 return sectionHeap_;
70 }
71 return NULL;
72 }
73 const TSectionData& getSectionData() const { return data_; }
74
76
77 /* 0x28 */ u32 field_0x28;
78 /* 0x2C */ bool field_0x2c;
81 /* 0x38 */ TSectionData data_;
82};
83
88class JAUSectionHeap : public JAUSection, public JASGlobalInstance<JAUSectionHeap>, public JAISeqDataMgr {
89public:
101
103 bool loadDynamicSeq(JAISoundID, bool);
111 int releaseSeqData();
112
113 JAISeqDataMgr* getSeqSeqDataMgr() { return this; }
119 if (getOpenSection()->isBuilding() != 0) {
120 return mHeap;
121 }
122 return NULL;
123 }
124
125 /* 0xE0 */ JKRHeap* mHeap;
126 /* 0xE4 */ int field_0xe4;
129};
130
132inline bool JAUSection::isOpen() const { return sectionHeap_->getOpenSection() == this; }
133
135
136#endif /* JAUSECTIONHEAP_H */
JAUSectionHeap * JAUNewSectionHeap(bool)
Definition JAUSectionHeap.cpp:441
Definition JAISound.h:43
Definition JASBank.h:18
Definition JASGadget.h:12
Definition JASVoiceBank.h:11
Definition JASWaveInfo.h:49
Definition JAUBankTable.h:14
Definition JAUSeqDataBlockMgr.h:41
Definition JAUSectionHeap.h:88
u32 releaseIdleDynamicSeqDataBlock()
Definition JAUSectionHeap.cpp:429
TSectionHeapData sectionHeapData_
Definition JAUSectionHeap.h:128
int field_0xe4
Definition JAUSectionHeap.h:126
JAUSectionHeap(JKRSolidHeap *, bool, s32)
Definition JAUSectionHeap.cpp:448
JAISeqDataMgr * getSeSeqDataMgr()
Definition JAUSectionHeap.h:114
JKRHeap * getHeap()
Definition JAUSectionHeap.h:118
JAIStreamDataMgr * getStreamDataMgr()
Definition JAUSectionHeap.h:115
JAUWaveBankTable & getWaveBankTable()
Definition JAUSectionHeap.h:117
JAISeqDataMgr * getSeqSeqDataMgr()
Definition JAUSectionHeap.h:113
bool newDynamicSeqBlock(u32)
Definition JAUSectionHeap.cpp:476
JAUSection * getSection(int)
Definition JAUSectionHeap.cpp:458
int releaseSeqData()
Definition JAUSectionHeap.cpp:520
JKRHeap * mHeap
Definition JAUSectionHeap.h:125
bool loadDynamicSeq(JAISoundID, bool)
Definition JAUSectionHeap.cpp:425
SeqDataReturnValue getSeqData(JAISoundID, JAISeqData *)
Definition JAUSectionHeap.cpp:508
TSectionHeapData const & getSectionHeapData() const
Definition JAUSectionHeap.h:116
JSUList< JAUSection > mSectionList
Definition JAUSectionHeap.h:127
void setSeqDataArchive(JKRArchive *)
Definition JAUSectionHeap.cpp:417
bool setSeqDataUser(JAISeqDataUser *)
Definition JAUSectionHeap.cpp:471
JAUSection * getOpenSection()
Definition JAUSectionHeap.cpp:454
Definition JAUSectionHeap.h:26
bool loadWaveArc(u32, u32)
Definition JAUSectionHeap.cpp:310
bool field_0x2c
Definition JAUSectionHeap.h:78
JAUSectionHeap * asSectionHeap()
Definition JAUSectionHeap.h:67
JAISeqDataMgr * newSeSeqCollection(void const *, u32)
Definition JAUSectionHeap.cpp:197
JASWaveBank * newWaveBank(u32, void const *)
Definition JAUSectionHeap.cpp:291
JASBank * newBank(void const *, u32)
Definition JAUSectionHeap.cpp:326
bool newStaticSeqData(JAISoundID, void const *, u32)
Definition JAUSectionHeap.cpp:247
JAUBankTableLink * buildingBankTable_
Definition JAUSectionHeap.h:80
void * newCopy(void const *, u32, s32)
Definition JAUSectionHeap.cpp:276
void finishBuild()
Definition JAUSectionHeap.cpp:104
JAUBankTable * endNewBankTable()
Definition JAUSectionHeap.cpp:399
JAUSoundNameTable * newSoundNameTable(void const *, u32, bool)
Definition JAUSectionHeap.cpp:150
JAUSoundTable * newSoundTable(void const *, u32, bool)
Definition JAUSectionHeap.cpp:128
u32 field_0x28
Definition JAUSectionHeap.h:77
JAIStreamDataMgr * newStreamFileTable(void const *, bool)
Definition JAUSectionHeap.cpp:172
const TSectionData & getSectionData() const
Definition JAUSectionHeap.h:73
bool isBuilding() const
Definition JAUSectionHeap.h:65
u8 * newStaticSeqDataBlock_(JAISoundID, u32)
Definition JAUSectionHeap.cpp:215
virtual void dispose()
Definition JAUSectionHeap.cpp:115
bool isOpen() const
Definition JAUSectionHeap.h:132
bool beginNewBankTable(u32, u32)
Definition JAUSectionHeap.cpp:377
JAUSectionHeap * sectionHeap_
Definition JAUSectionHeap.h:79
JAUSection(JAUSectionHeap *, u32, s32)
Definition JAUSectionHeap.cpp:94
JASVoiceBank * newVoiceBank(u32, u32)
Definition JAUSectionHeap.cpp:353
JKRHeap * getHeap_()
Definition JAUSectionHeap.h:131
TSectionData data_
Definition JAUSectionHeap.h:81
Definition JAUBankTable.h:51
Definition JKRArchive.h:57
Definition JKRDisposer.h:12
Definition JKRHeap.h:23
Definition JKRSolidHeap.h:10
Definition JSUList.h:96
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
Definition JAISeqDataMgr.h:59
SeqDataReturnValue
Definition JAISeqDataMgr.h:60
Definition JAISeqDataMgr.h:49
Definition JAISeqDataMgr.h:11
Definition JAIStreamDataMgr.h:10
Definition JAUBankTable.h:41
Definition JAUSectionHeap.h:90
JAUSoundNameTable * soundNameTable
Definition JAUSectionHeap.h:99
TSectionHeapData()
Definition JAUSectionHeap.cpp:409
JAIStreamDataMgr * streamDataMgr_
Definition JAUSectionHeap.h:97
JAISeqDataUser * seqDataUser
Definition JAUSectionHeap.h:94
JAUWaveBankTable waveBankTable
Definition JAUSectionHeap.h:93
JAUDynamicSeqDataBlocks seqDataBlocks
Definition JAUSectionHeap.h:95
JAISeqDataMgr * seSeqDataMgr_
Definition JAUSectionHeap.h:96
JAUSoundTable * soundTable
Definition JAUSectionHeap.h:98
Definition JAUSectionHeap.h:28
s32 field_0x98
Definition JAUSectionHeap.h:42
JAUDynamicSeqDataBlocks field_0x00
Definition JAUSectionHeap.h:33
int field_0x9c
Definition JAUSectionHeap.h:43
std::bitset< 255 > registeredWaveBankTables
Definition JAUSectionHeap.h:35
JAUBankTableDictionary field_0x74
Definition JAUSectionHeap.h:37
const void * mBstDst
Definition JAUSectionHeap.h:39
JSUList< JAUDisposer_ > field_0x8c
Definition JAUSectionHeap.h:41
std::bitset< 255 > registeredBankTables
Definition JAUSectionHeap.h:36
JSUList< JAUSeqDataBlock > field_0x28
Definition JAUSectionHeap.h:34
void resetRegisteredBankTables()
Definition JAUSectionHeap.cpp:82
void resetRegisteredWaveBankTables()
Definition JAUSectionHeap.cpp:88
JAISeqDataMgr * field_0x80
Definition JAUSectionHeap.h:38
TSectionData()
Definition JAUSectionHeap.cpp:72
int field_0xa0
Definition JAUSectionHeap.h:44
const void * mBstnDst
Definition JAUSectionHeap.h:40
Definition JAUSoundTable.h:191
Definition JAUSoundTable.h:143