Skip to content

Commit 3dd87a7

Browse files
committed
WDB parsing
1 parent d7ffde3 commit 3dd87a7

10 files changed

Lines changed: 536 additions & 171 deletions

File tree

GolDP/include/gol.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
11
#ifndef GOLDP_GOL_H
22
#define GOLDP_GOL_H
33

4-
#include "awakekite0x20.h"
54
#include "decomp.h"
6-
#include "floatyboat0x28.h"
7-
#include "goldrawstate.h"
8-
#include "golnametable.h"
95
#include "types.h"
10-
#include "zoweeblubberworth0xf0.h"
116

127
#include <windows.h>
138

149
typedef void FatalErrorMessageCBFN(const LegoChar* p_message, const LegoChar* p_file, LegoS32 p_line);
1510
typedef void GolExitCBFN();
1611

1712
class AmberHaze0x1c;
13+
class AmberLens0x344;
14+
class AwakeKite0x20;
1815
class BoundingShape0x2c;
16+
class FloatyBoat0x28;
17+
class GolDrawState;
1918
class GolFontBase0x40;
2019
class GolHashTable;
2120
class GolFileSource;
22-
class AmberLens0x344;
2321
class GolFontTable;
22+
class GolNameTable;
2423
class MagentaRibbon0x20;
2524
class WhiteBaffoon0x50;
26-
class AmberHaze0x1c;
2725
class WhiteFalconNode0x18;
26+
class ZoweeBlubberworth0xf0;
2827

2928
struct GolImport {
3029
GolFileSource* m_fileSources; // 0x00
Lines changed: 137 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,172 @@
11
#ifndef ZOWEEBLUBBERWORTH0xF0_H
22
#define ZOWEEBLUBBERWORTH0xF0_H
33

4+
#include "golmath.h"
5+
#include "golname.h"
46
#include "golnametable.h"
7+
#include "goltxtparser.h"
58

69
class AmberLensBase0x120;
710
class AmberHaze0x1c;
811
class BoundingShape0x2c;
912
class CmbModelPart0x34;
13+
class GolFileParser;
1014
class FloatyBoat0x28;
1115
class IGdbModel0x40;
1216
class MabMaterialAnimation0x14;
1317
class MagentaRibbon0x20;
1418
class ShadowWolf0xc;
1519
class WhiteFalconNode0x18;
1620

21+
// SIZE 0x8c
22+
struct WdbStaticModel0x8c {
23+
enum {
24+
e_flagBit1 = 0x1 << 1,
25+
e_flagBit2 = 0x1 << 2,
26+
e_flagBit3 = 0x1 << 3,
27+
};
28+
29+
GolName m_unk0x00; // 0x00
30+
LegoS32 m_unk0x08[3]; // 0x08
31+
undefined m_unk0x14[0x2c - 0x14]; // 0x14
32+
LegoS32 m_unk0x2c[3]; // 0x2c
33+
LegoFloat m_unk0x38[6]; // 0x38
34+
GolVec3 m_unk0x50; // 0x50
35+
GolVec3 m_unk0x5c; // 0x5c
36+
GolVec3 m_unk0x68; // 0x68
37+
LegoFloat m_unk0x74; // 0x74
38+
LegoU32 m_unk0x78; // 0x78
39+
undefined4* m_unk0x7c; // 0x7c
40+
LegoFloat m_unk0x80; // 0x80
41+
LegoFloat m_unk0x84; // 0x84
42+
LegoU32 m_flags; // 0x88
43+
};
44+
45+
// VTABLE: GOLDP 0x10057744
46+
// SIZE 0x1fc
47+
class WdbTxtParser : public GolTxtParser {
48+
// SYNTHETIC: GOLDP 0x10030050 FOLDED
49+
// WdbTxtParser::`scalar deleting destructor'
50+
51+
// SYNTHETIC: GOLDP 0xx1001b000 FOLDED
52+
// WdbTxtParser::~WdbTxtParser
53+
};
54+
1755
// VTABLE: GOLDP 0x100576ec
1856
// SIZE 0xf0
1957
class ZoweeBlubberworth0xf0 {
2058
public:
2159
ZoweeBlubberworth0xf0();
22-
virtual void VTable0x00(); // vtable+0x00
23-
virtual void VTable0x04(); // vtable+0x04
24-
virtual void VTable0x08() = 0; // vtable+0x08
25-
virtual undefined4* VTable0x0c() = 0; // vtable+0x0c
26-
virtual ~ZoweeBlubberworth0xf0(); // vtable+0x10
27-
virtual void VTable0x14(undefined4, undefined4, undefined4, float); // vtable+0x14
28-
virtual void VTable0x18(); // vtable+0x18
29-
virtual void VTable0x1c(undefined4*) = 0; // vtable+0x1c
30-
virtual void VTable0x20(undefined4) = 0; // vtable+0x20
31-
virtual void VTable0x24(undefined4) = 0; // vtable+0x24
32-
virtual void VTable0x28(undefined4*) = 0; // vtable+0x28
33-
virtual MagentaRibbon0x20* VTable0x2c(LegoU32 p_index) const = 0; // vtable+0x2c
34-
virtual AmberHaze0x1c* VTable0x30(LegoU32 p_index) const = 0; // vtable+0x30
35-
virtual CmbModelPart0x34* VTable0x34(LegoU32 p_index) const = 0; // vtable+0x34
36-
virtual IGdbModel0x40* VTable0x38(LegoU32 p_index) const = 0; // vtable+0x38
37-
virtual ShadowWolf0xc* VTable0x3c(LegoU32 p_index) const = 0; // vtable+0x3c
38-
virtual WhiteFalconNode0x18* VTable0x40(LegoU32 p_index) const = 0; // vtable+0x40
39-
virtual BoundingShape0x2c* VTable0x44(LegoU32 p_index) const = 0; // vtable+0x44
40-
virtual FloatyBoat0x28* VTable0x48(LegoU32 p_index) const = 0; // vtable+0x48
41-
virtual MabMaterialAnimation0x14* VTable0x4c(LegoU32 p_index) const = 0; // vtable+0x4c
42-
virtual AmberLensBase0x120* VTable0x50(LegoU32 p_index) const = 0; // vtable+0x50
43-
virtual void VTable0x54(); // vtable+0x54
60+
virtual void VTable0x00(); // vtable+0x00
61+
virtual void VTable0x04(); // vtable+0x04
62+
virtual void VTable0x08() = 0; // vtable+0x08
63+
virtual undefined4* VTable0x0c() = 0; // vtable+0x0c
64+
virtual ~ZoweeBlubberworth0xf0(); // vtable+0x10
65+
virtual void VTable0x14(undefined4, const LegoChar* p_name, LegoBool32 p_binary, float); // vtable+0x14
66+
virtual void VTable0x18(); // vtable+0x18
67+
virtual void VTable0x1c(undefined4*) = 0; // vtable+0x1c
68+
virtual void VTable0x20(undefined4) = 0; // vtable+0x20
69+
virtual void VTable0x24(undefined4) = 0; // vtable+0x24
70+
virtual void VTable0x28(undefined4*) = 0; // vtable+0x28
71+
virtual MagentaRibbon0x20* VTable0x2c(LegoU32 p_index) const = 0; // vtable+0x2c
72+
virtual AmberHaze0x1c* VTable0x30(LegoU32 p_index) const = 0; // vtable+0x30
73+
virtual CmbModelPart0x34* VTable0x34(LegoU32 p_index) const = 0; // vtable+0x34
74+
virtual IGdbModel0x40* VTable0x38(LegoU32 p_index) const = 0; // vtable+0x38
75+
virtual ShadowWolf0xc* VTable0x3c(LegoU32 p_index) const = 0; // vtable+0x3c
76+
virtual WhiteFalconNode0x18* VTable0x40(LegoU32 p_index) const = 0; // vtable+0x40
77+
virtual BoundingShape0x2c* VTable0x44(LegoU32 p_index) const = 0; // vtable+0x44
78+
virtual FloatyBoat0x28* VTable0x48(LegoU32 p_index) const = 0; // vtable+0x48
79+
virtual MabMaterialAnimation0x14* VTable0x4c(LegoU32 p_index) const = 0; // vtable+0x4c
80+
virtual AmberLensBase0x120* VTable0x50(LegoU32 p_index) const = 0; // vtable+0x50
81+
virtual void VTable0x54(); // vtable+0x54
4482

4583
// SYNTHETIC: GOLDP 0x1002c0c0
4684
// ZoweeBlubberworth0xf0::`scalar deleting destructor'
4785

48-
undefined4 GetUnk0x0c() const { return m_unk0x0c; }
49-
undefined4 GetUnk0x14() const { return m_unk0x14; }
50-
undefined4 GetUnk0x1c() const { return m_unk0x1c; }
51-
undefined4 GetUnk0x24() const { return m_unk0x24; }
52-
undefined4 GetUnk0x2c() const { return m_unk0x2c; }
53-
undefined4 GetUnk0x34() const { return m_unk0x34; }
54-
undefined4 GetUnk0x3c() const { return m_unk0x3c; }
55-
undefined4 GetUnk0x6c() const { return m_unk0x6c; }
56-
undefined4 GetUnk0x74() const { return m_unk0x74; }
57-
undefined4 GetUnk0x7c() const { return m_unk0x7c; }
86+
LegoU32 GetUnk0x0c() const { return m_unk0x0c; }
87+
LegoU32 GetUnk0x14() const { return m_unk0x14; }
88+
LegoU32 GetUnk0x1c() const { return m_unk0x1c; }
89+
LegoU32 GetUnk0x24() const { return m_unk0x24; }
90+
LegoU32 GetUnk0x2c() const { return m_unk0x2c; }
91+
LegoU32 GetUnk0x34() const { return m_unk0x34; }
92+
LegoU32 GetUnk0x3c() const { return m_unk0x3c; }
93+
LegoU32 GetUnk0x6c() const { return m_unk0x6c; }
94+
LegoU32 GetUnk0x74() const { return m_unk0x74; }
95+
LegoU32 GetUnk0x7c() const { return m_unk0x7c; }
5896

5997
private:
6098
void Reset();
61-
void FUN_1002c7b0(undefined4*);
62-
void FUN_1002c840(undefined4*);
63-
void FUN_1002c8d0(undefined4*);
64-
void FUN_1002c960(undefined4*);
65-
void FUN_1002c9f0(undefined4*);
66-
void FUN_1002ca80(undefined4*);
67-
void FUN_1002cb10(undefined4*);
68-
void FUN_1002cba0(undefined4*);
69-
void FUN_1002cc30(undefined4*);
70-
void FUN_1002cfa0(undefined4*);
71-
void FUN_1002d400(undefined4*);
72-
void FUN_1002d720(undefined4*);
73-
void FUN_1002d950(undefined4*);
74-
void FUN_1002db50(undefined4*);
75-
void FUN_1002dbe0(undefined4*);
76-
void FUN_1002dc80(undefined4*);
77-
void FUN_1002df90(undefined4*);
78-
void FUN_1002e0d0(undefined4*);
99+
void FUN_1002c7b0(GolFileParser&);
100+
void FUN_1002c840(GolFileParser&);
101+
void FUN_1002c8d0(GolFileParser&);
102+
void FUN_1002c960(GolFileParser&);
103+
void FUN_1002c9f0(GolFileParser&);
104+
void FUN_1002ca80(GolFileParser&);
105+
void FUN_1002cb10(GolFileParser&);
106+
void FUN_1002cba0(GolFileParser&);
107+
void FUN_1002cc30(GolFileParser&);
108+
void FUN_1002cfa0(GolFileParser&);
109+
void FUN_1002d400(GolFileParser&);
110+
void FUN_1002d720(GolFileParser&);
111+
void FUN_1002d950(GolFileParser&);
112+
void FUN_1002db50(GolFileParser&);
113+
void FUN_1002dbe0(GolFileParser&, LegoU32* p_count, undefined4**);
114+
void FUN_1002dc80(GolFileParser&);
115+
void FUN_1002df90(GolFileParser&);
116+
void FUN_1002e0d0(GolFileParser&);
79117
void FUN_1002e250(undefined4*, undefined4*);
80118
void FUN_1002e640();
81119
void FUN_1002f210(undefined4, undefined4*);
82120

83-
undefined4 m_unk0x04; // 0x04
84-
undefined4 m_unk0x08; // 0x08
85-
undefined4 m_unk0x0c; // 0x0c
86-
undefined4 m_unk0x10; // 0x10
87-
undefined4 m_unk0x14; // 0x14
88-
undefined4 m_unk0x18; // 0x18
89-
undefined4 m_unk0x1c; // 0x1c
90-
undefined4 m_unk0x20; // 0x20
91-
undefined4 m_unk0x24; // 0x24
92-
undefined4 m_unk0x28; // 0x28
93-
undefined4 m_unk0x2c; // 0x2c
94-
undefined4 m_unk0x30; // 0x30
95-
undefined4 m_unk0x34; // 0x34
96-
undefined4 m_unk0x38; // 0x38
97-
undefined4 m_unk0x3c; // 0x3c
98-
undefined4 m_unk0x40; // 0x40
99-
undefined4 m_unk0x44; // 0x44
100-
undefined4 m_unk0x48; // 0x48
101-
undefined4 m_unk0x4c; // 0x4c
102-
undefined4 m_unk0x50; // 0x50
103-
undefined4 m_unk0x54; // 0x54
104-
undefined4 m_unk0x58; // 0x58
105-
undefined4 m_unk0x5c; // 0x5c
106-
undefined4 m_unk0x60; // 0x60
107-
undefined4 m_unk0x64; // 0x64
108-
undefined4 m_unk0x68; // 0x68
109-
undefined4 m_unk0x6c; // 0x6c
110-
undefined4 m_unk0x70; // 0x70
111-
undefined4 m_unk0x74; // 0x74
112-
undefined4 m_unk0x78; // 0x78
113-
undefined4 m_unk0x7c; // 0x7c
114-
undefined4 m_unk0x80; // 0x80
115-
undefined4 m_unk0x84; // 0x84
116-
undefined4 m_unk0x88; // 0x88
117-
undefined4 m_unk0x8c; // 0x8c
118-
undefined4 m_unk0x90; // 0x90
119-
float m_unk0x94; // 0x94
120-
undefined4 m_unk0x98; // 0x98
121-
undefined4 m_unk0x9c; // 0x9c
122-
undefined4 m_unk0xa0; // 0xa0
123-
LegoChar* m_unk0xa4; // 0xa4
124-
undefined4 m_unk0xa8; // 0xa8
125-
undefined4 m_unk0xac; // 0xac
126-
undefined4 m_unk0xb0; // 0xb0
127-
GolNameTable m_unk0xb4; // 0xb4
128-
GolNameTable m_unk0xc0; // 0xc0
129-
GolNameTable m_unk0xcc; // 0xcc
130-
GolNameTable m_unk0xd8; // 0xd8
131-
GolNameTable m_unk0xe4; // 0xe4
121+
undefined4 m_unk0x04; // 0x04
122+
LegoBool32 m_unk0x08; // 0x08
123+
LegoU32 m_unk0x0c; // 0x0c
124+
GolName* m_unk0x10; // 0x10
125+
LegoU32 m_unk0x14; // 0x14
126+
GolName* m_unk0x18; // 0x18
127+
LegoU32 m_unk0x1c; // 0x1c
128+
GolName* m_unk0x20; // 0x20
129+
LegoU32 m_unk0x24; // 0x24
130+
GolName* m_unk0x28; // 0x28
131+
LegoU32 m_unk0x2c; // 0x2c
132+
GolName* m_unk0x30; // 0x30
133+
LegoU32 m_unk0x34; // 0x34
134+
GolName* m_unk0x38; // 0x38
135+
LegoU32 m_unk0x3c; // 0x3c
136+
GolName* m_unk0x40; // 0x40
137+
LegoU32 m_unk0x44; // 0x44
138+
GolName* m_unk0x48; // 0x48
139+
LegoU32 m_unk0x4c; // 0x4c
140+
WdbStaticModel0x8c* m_unk0x50; // 0x50
141+
undefined4 m_unk0x54; // 0x54
142+
undefined4 m_unk0x58; // 0x58
143+
undefined4 m_unk0x5c; // 0x5c
144+
undefined4 m_unk0x60; // 0x60
145+
undefined4 m_unk0x64; // 0x64
146+
undefined4 m_unk0x68; // 0x68
147+
undefined4 m_unk0x6c; // 0x6c
148+
undefined4 m_unk0x70; // 0x70
149+
undefined4 m_unk0x74; // 0x74
150+
undefined4 m_unk0x78; // 0x78
151+
undefined4 m_unk0x7c; // 0x7c
152+
undefined4 m_unk0x80; // 0x80
153+
undefined4 m_unk0x84; // 0x84
154+
undefined4 m_unk0x88; // 0x88
155+
undefined4 m_unk0x8c; // 0x8c
156+
undefined4 m_unk0x90; // 0x90
157+
float m_unk0x94; // 0x94
158+
undefined4 m_unk0x98; // 0x98
159+
undefined4 m_unk0x9c; // 0x9c
160+
undefined4 m_unk0xa0; // 0xa0
161+
LegoChar* m_unk0xa4; // 0xa4
162+
undefined4 m_unk0xa8; // 0xa8
163+
undefined4 m_unk0xac; // 0xac
164+
undefined4 m_unk0xb0; // 0xb0
165+
GolNameTable m_unk0xb4; // 0xb4
166+
GolNameTable m_unk0xc0; // 0xc0
167+
GolNameTable m_unk0xcc; // 0xcc
168+
GolNameTable m_unk0xd8; // 0xd8
169+
GolNameTable m_unk0xe4; // 0xe4
132170
};
133171

134172
#endif // ZOWEEBLUBBERWORTH0xF0_H

GolDP/src/bronzefalcon0xc8770.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "golsurfaceformat.h"
1313
#include "purpledune0x7c.h"
1414
#include "rectangle.h"
15+
#include "utopianpan0xa4.h"
1516

1617
#include <stdio.h>
1718
#include <string.h>

GolDP/src/duskwindbananarelic0x30.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include "bronzefalcon0xc8770.h"
44
#include "golcommondrawstate.h"
5+
#include "golddune0x38.h"
56
#include "golerror.h"
67

78
#include <stdio.h>

GolDP/src/gdbvertexarray0xc.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "gdbvertexarray0xc.h"
22

3+
#include "color.h"
34
#include "golerror.h"
45
#include "golfileparser.h"
56
#include "golmath.h"

0 commit comments

Comments
 (0)