Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
ctb.h
Go to the documentation of this file.
1#ifndef CTB_H
2#define CTB_H
3
8
9namespace JStudio {
10namespace ctb {
11struct TObject : public object::TObject_ID {
12 TObject(const void* id, u32 size, const void* param_2) : object::TObject_ID(id, size) {
13 pData_ = param_2;
14 JUT_ASSERT(82, pData_!=NULL);
15 }
16 virtual ~TObject() = 0;
17 virtual int getScheme() const = 0;
18 const void* getData() const { return pData_; }
19
20 /* 0x08 vtable */
22 /* 0x14 */ const void* pData_;
23};
24
25struct data {
34
36 TParse_THeader(const void* pContent) : JGadget::binary::TParseData_aligned<4>(pContent) {}
37 const THeaderData* get() const {
38 return (THeaderData*) getRaw();
39 }
40
41 const void* get_signature() const {
42 return &get()->signature;
43 }
44
46 return get()->blockNumber;
47 }
48
50 return get()->byteOrder;
51 }
52
53 u16 get_version() const {
54 return get()->version;
55 }
56
57 const void* getContent() const {
58 return ((THeaderData*) getRaw())->content;
59 }
60 };
61
68
70 TParse_TBlock(const void* pContent) : JGadget::binary::TParseData_aligned<4>(pContent) {}
71 const TBlockData* get() const {
72 return (const TBlockData*)getRaw();
73 }
74
75 u32 get_size() const {
76 return get()->size;
77 }
78
79 u16 get_scheme() const {
80 return get()->scheme;
81 }
82
83 u16 get_IDSize() const {
84 return get()->IDSize;
85 }
86
87 const void* getBlockEnd_() const {
88 return ((const TBlockData*)getRaw())->field_0x8;
89 }
90
91 const void* get_ID() const {
92 const void* rv = NULL;
93 if (get_IDSize() != 0) {
94 rv = getBlockEnd_();
95 }
96 return rv;
97 }
98
99 const void* getContent() const {
100 return (const void*)((char*)getBlockEnd_() + JGadget::binary::align_roundUp((u16)get_IDSize(), 4));
101 }
102
104 return (TParse_TBlock*)((char*)getRaw() + get_size());
105 }
106 };
107
108 static const u32 ga4cSignature;
109};
110
111struct TObject_TxyzRy : public TObject {
113
114 virtual ~TObject_TxyzRy() {}
115 virtual int getScheme() const;
116};
117
118struct TFactory {
120
121 virtual ~TFactory();
123 virtual void destroy(JStudio::ctb::TObject*);
124};
125
126struct TControl {
127 TControl();
128 virtual ~TControl();
132 void destroyObject_all();
133 JStudio::ctb::TObject* getObject(void const*, u32);
135
136 TFactory* getFactory() const { return pFactory_; }
137 void setFactory(TFactory* factory) { pFactory_ = factory; }
138
139 /* 0x4 */ TFactory* pFactory_;
141};
142
145 virtual ~TParse();
146 virtual bool parseHeader_next(void const**, u32*, u32);
147 virtual bool parseBlock_next(void const**, u32*, u32);
148
150
151 /* 0x4 */ TControl* pControl_;
152};
153
154}; // namespace ctb
155}; // namespace JStudio
156
157#endif /* CTB_H */
static u16 const id[4]
Definition d_a_obj_smtile.cpp:242
unsigned int size
Definition __os.h:106
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
u32 align_roundUp(unsigned int arg0, unsigned int uAlign)
Definition binary.h:22
Definition binary.h:8
Definition functionvalue.cpp:11
Definition linklist.h:11
const void * getRaw() const
Definition binary.h:30
Definition ctb.h:126
void removeObject(JStudio::ctb::TObject *)
Definition ctb.cpp:28
void destroyObject(JStudio::ctb::TObject *)
Definition ctb.cpp:33
void destroyObject_all()
Definition ctb.cpp:40
JStudio::ctb::TObject * getObject(void const *, u32)
Definition ctb.cpp:47
TFactory * getFactory() const
Definition ctb.h:136
void appendObject(JStudio::ctb::TObject *)
Definition ctb.cpp:23
TControl()
Definition ctb.cpp:17
TFactory * pFactory_
Definition ctb.h:139
JStudio::ctb::TObject * getObject_index(u32)
Definition ctb.cpp:57
JGadget::TLinkList< TObject, -12 > ocObject_
Definition ctb.h:140
virtual ~TControl()
Definition ctb.cpp:19
void setFactory(TFactory *factory)
Definition ctb.h:137
Definition ctb.h:118
virtual TObject * create(JStudio::ctb::data::TParse_TBlock const &)
Definition ctb.cpp:68
TFactory()
Definition ctb.h:119
virtual void destroy(JStudio::ctb::TObject *)
Definition ctb.cpp:77
virtual ~TFactory()
Definition ctb.cpp:66
Definition ctb.h:111
TObject_TxyzRy(JStudio::ctb::data::TParse_TBlock const &)
Definition ctb.cpp:10
virtual int getScheme() const
Definition ctb.cpp:13
virtual ~TObject_TxyzRy()
Definition ctb.h:114
Definition ctb.h:11
const void * getData() const
Definition ctb.h:18
virtual ~TObject()=0
Definition ctb.cpp:8
TObject(const void *id, u32 size, const void *param_2)
Definition ctb.h:12
virtual int getScheme() const =0
JGadget::TLinkListNode ocObject_
Definition ctb.h:21
const void * pData_
Definition ctb.h:22
Definition ctb.h:143
virtual bool parseHeader_next(void const **, u32 *, u32)
Definition ctb.cpp:86
TParse(JStudio::ctb::TControl *)
Definition ctb.cpp:82
virtual bool parseBlock_next(void const **, u32 *, u32)
Definition ctb.cpp:107
TControl * getControl()
Definition ctb.h:149
virtual ~TParse()
Definition ctb.cpp:84
TControl * pControl_
Definition ctb.h:151
u32 field_0x8[0]
Definition ctb.h:66
u32 size
Definition ctb.h:63
u16 scheme
Definition ctb.h:64
u16 IDSize
Definition ctb.h:65
u16 byteOrder
Definition ctb.h:28
u32 blockNumber
Definition ctb.h:31
u16 version
Definition ctb.h:29
u8 field_0x0[4]
Definition ctb.h:30
u8 content[0]
Definition ctb.h:32
u32 signature
Definition ctb.h:27
u16 get_IDSize() const
Definition ctb.h:83
u16 get_scheme() const
Definition ctb.h:79
TParse_TBlock(const void *pContent)
Definition ctb.h:70
const void * getBlockEnd_() const
Definition ctb.h:87
const TParse_TBlock * getNext()
Definition ctb.h:103
const void * getContent() const
Definition ctb.h:99
const TBlockData * get() const
Definition ctb.h:71
u32 get_size() const
Definition ctb.h:75
const void * get_ID() const
Definition ctb.h:91
const void * getContent() const
Definition ctb.h:57
u16 get_version() const
Definition ctb.h:53
const THeaderData * get() const
Definition ctb.h:37
u32 get_blockNumber() const
Definition ctb.h:45
const void * get_signature() const
Definition ctb.h:41
TParse_THeader(const void *pContent)
Definition ctb.h:36
u16 get_byteOrder() const
Definition ctb.h:49
Definition ctb.h:25
static const u32 ga4cSignature
Definition ctb.h:108
Definition object-id.h:23
TObject_ID(const void *id, u32 id_size)
Definition object-id.h:24