Skip to content

Commit ededa62

Browse files
committed
Match and add GolTable classes
1 parent 741e910 commit ededa62

16 files changed

Lines changed: 682 additions & 57 deletions

GolDP/include/amberhaze0x1c.h

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#ifndef AMBERHAZE0X1C_H
2+
#define AMBERHAZE0X1C_H
3+
4+
#include "golnametable.h"
5+
6+
class BronzeFalcon0xc8770;
7+
8+
// VTABLE: GOLDP 0x10057134
9+
// SIZE 0x1c
10+
class AmberHaze0x1c : public GolNameTable {
11+
public:
12+
AmberHaze0x1c();
13+
~AmberHaze0x1c() override; // vtable+0x00
14+
void Clear() override; // vtable+0x08
15+
16+
virtual void VTable0x0c(); // vtable+0x0c
17+
virtual void VTable0x10(); // vtable+0x10
18+
virtual void VTable0x14() = 0; // vtable+0x14
19+
virtual void VTable0x18() = 0; // vtable+0x18
20+
virtual void VTable0x1c(BronzeFalcon0xc8770* p_renderer, LegoU32 p_capacity); // vtable+0x1c
21+
virtual void VTable0x20(BronzeFalcon0xc8770* p_renderer, undefined4 p_unk0x08, LegoU32 p_capacity); // vtable+0x20
22+
virtual void VTable0x24(
23+
BronzeFalcon0xc8770* p_renderer,
24+
const LegoChar* p_fileName,
25+
LegoBool32 p_binary
26+
); // vtable+0x24
27+
virtual undefined4 VTable0x28(undefined4 p_index) = 0; // vtable+0x28
28+
29+
// SYNTHETIC: GOLDP 0x100261d0
30+
// AmberHaze0x1c::`scalar deleting destructor'
31+
32+
AmberHaze0x1c* GetNext() const { return m_next; }
33+
void SetNext(AmberHaze0x1c* p_next) { m_next = p_next; }
34+
Entry* GetNameEntries() const { return m_nameEntries; }
35+
36+
private:
37+
BronzeFalcon0xc8770* m_renderer; // 0x0c
38+
AmberHaze0x1c* m_next; // 0x10
39+
undefined4 m_unk0x14; // 0x14
40+
LegoU32 m_numItems; // 0x18
41+
};
42+
43+
#endif // AMBERHAZE0X1C_H

GolDP/include/cinderbasin0x28.h

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#ifndef CINDERBASIN0X28_H
2+
#define CINDERBASIN0X28_H
3+
4+
#include "golnametable.h"
5+
6+
class BronzeFalcon0xc8770;
7+
8+
// VTABLE: GOLDP 0x10056e08
9+
// SIZE 0x28
10+
class CinderBasin0x28 : public GolNameTable {
11+
public:
12+
CinderBasin0x28();
13+
~CinderBasin0x28() override; // vtable+0x00
14+
void Clear() override; // vtable+0x08
15+
16+
virtual void VTable0x0c() = 0; // vtable+0x0c
17+
virtual void VTable0x10() = 0; // vtable+0x10
18+
virtual void VTable0x14() = 0; // vtable+0x14
19+
virtual void VTable0x18(); // vtable+0x18
20+
virtual void VTable0x1c(); // vtable+0x1c
21+
virtual void VTable0x20(
22+
BronzeFalcon0xc8770* p_renderer,
23+
const LegoChar* p_fileName,
24+
LegoBool32 p_binary
25+
); // vtable+0x20
26+
virtual undefined4 VTable0x24(undefined4 p_index) = 0; // vtable+0x24
27+
28+
// SYNTHETIC: GOLDP 0x1001d850
29+
// CinderBasin0x28::`scalar deleting destructor'
30+
31+
CinderBasin0x28* GetNext() const { return m_next; }
32+
void SetNext(CinderBasin0x28* p_next) { m_next = p_next; }
33+
34+
private:
35+
BronzeFalcon0xc8770* m_renderer; // 0x0c
36+
CinderBasin0x28* m_next; // 0x10
37+
LegoU32 m_numItems; // 0x14
38+
undefined4 m_unk0x18; // 0x18
39+
undefined4 m_unk0x1c; // 0x1c
40+
undefined4 m_unk0x20; // 0x20
41+
undefined4 m_unk0x24; // 0x24
42+
};
43+
44+
#endif // CINDERBASIN0X28_H

GolDP/include/goldevicelist.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class GolDeviceList {
4242
};
4343

4444
GolDeviceList();
45+
~GolDeviceList();
4546

4647
void Clear();
4748
GolD3DDeviceInfo* SelectDevice(

GolDP/include/goldrawdpstate.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
class GolDrawDPState : public GolCommonDrawState {
1313
public:
1414
GolDrawDPState();
15-
~GolDrawDPState() override;
15+
~GolDrawDPState() override; // vtable+0x04
1616

17-
LegoS32 VTable0x00() override;
17+
LegoS32 VTable0x00() override; // vtable+0x00
1818
void VTable0x08(HWND p_hWnd) override; // vtable+0x08
1919
void VTable0x0c(const char* p_driverName, const char* p_deviceName) override; // vtable+0x0c
2020
LegoU32 VTable0x10() override; // vtable+0x10
@@ -29,8 +29,8 @@ class GolDrawDPState : public GolCommonDrawState {
2929
void VTable0x34(LegoU32 p_driverIndex, LegoU32 p_deviceIndex, GUID* p_guid) override; // vtable+0x34
3030
GUID* VTable0x38() const override; // vtable+0x38
3131

32-
void VTable0x48() override; // vtable+0x4c
33-
void VTable0x50() override; // vtable+0x48
32+
void VTable0x48() override; // vtable+0x48
33+
void VTable0x50() override; // vtable+0x50
3434
undefined4 VTable0x58() override; // vtable+0x58
3535
undefined4 VTable0x5c() const override; // vtable+0x5c
3636
undefined4 VTable0x60() override; // vtable+0x60

GolDP/include/hypnoticnoise0x1c.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,12 @@ class HypnoticNoise0x1c : public GolNameTable {
3030
virtual void VTable0x1c(BronzeFalcon0xc8770* p_renderer, LegoU32 p_numItems); // vtable+0x1c
3131
virtual UtopianPan0xa4* GetItem(undefined4 p_index) = 0; // vtable+0x20
3232

33+
HypnoticNoise0x1c* GetNext() const { return m_next; }
34+
void SetNext(HypnoticNoise0x1c* p_next) { m_next = p_next; }
35+
3336
protected:
3437
BronzeFalcon0xc8770* m_renderer; // 0x0c
35-
undefined4 m_unk0x10; // 0x10
38+
HypnoticNoise0x1c* m_next; // 0x10
3639
LegoU32 m_numItems; // 0x14
3740
GolHashTable::Entry* m_currentHashEntry; // 0x18
3841
};

GolDP/include/magentaribbon0x20.h

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#ifndef MAGENTARIBBON0X20_H
2+
#define MAGENTARIBBON0X20_H
3+
4+
#include "golnametable.h"
5+
6+
class BronzeFalcon0xc8770;
7+
8+
// VTABLE: GOLDP 0x100575ac
9+
// SIZE 0x20
10+
class MagentaRibbon0x20 : public GolNameTable {
11+
public:
12+
MagentaRibbon0x20();
13+
~MagentaRibbon0x20() override; // vtable+0x00
14+
void Clear() override; // vtable+0x08
15+
16+
virtual void VTable0x0c(); // vtable+0x0c
17+
virtual void VTable0x10(); // vtable+0x10
18+
virtual void VTable0x14() = 0; // vtable+0x14
19+
virtual void VTable0x18() = 0; // vtable+0x18
20+
virtual void VTable0x1c(BronzeFalcon0xc8770* p_renderer, LegoU32 p_capacity); // vtable+0x1c
21+
virtual void VTable0x20(BronzeFalcon0xc8770* p_renderer, undefined4 p_unk0x08, LegoU32 p_capacity); // vtable+0x20
22+
virtual void VTable0x24(
23+
BronzeFalcon0xc8770* p_renderer,
24+
const LegoChar* p_fileName,
25+
LegoBool32 p_binary
26+
); // vtable+0x24
27+
virtual undefined4 VTable0x28(undefined4 p_index) = 0; // vtable+0x28
28+
29+
// SYNTHETIC: GOLDP 0x1002b500
30+
// MagentaRibbon0x20::`scalar deleting destructor'
31+
32+
MagentaRibbon0x20* GetNext() const { return m_next; }
33+
void SetNext(MagentaRibbon0x20* p_next) { m_next = p_next; }
34+
Entry* GetNameEntries() const { return m_nameEntries; }
35+
36+
private:
37+
BronzeFalcon0xc8770* m_renderer; // 0x0c
38+
MagentaRibbon0x20* m_next; // 0x10
39+
undefined4 m_unk0x14; // 0x14
40+
undefined4 m_unk0x18; // 0x18
41+
LegoU32 m_numItems; // 0x1c
42+
};
43+
44+
#endif // MAGENTARIBBON0X20_H

GolDP/include/whitefalcon0x140.h

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
#include "decomp.h"
55
#include "types.h"
66

7+
class AmberHaze0x1c;
78
class AmberLens0x344;
89
class BronzeFalcon0xc8770;
10+
class CinderBasin0x28;
911
class GolCommonDrawState;
1012
class GolNameTable;
13+
class HypnoticNoise0x1c;
14+
class MagentaRibbon0x20;
1115

1216
// VTABLE: GOLDP 0x10057338
1317
// SIZE 0x140
@@ -24,7 +28,6 @@ class WhiteFalcon0x140 {
2428
undefined4 m_unk0x00; // 0x00
2529
undefined m_unk0x04[0x1c - 0x04]; // 0x04
2630
};
27-
2831
virtual void VTable0x00(); // vtable+0x00
2932
virtual void VTable0x04(); // vtable+0x04
3033
virtual ~WhiteFalcon0x140(); // vtable+0x08
@@ -96,16 +99,16 @@ class WhiteFalcon0x140 {
9699
virtual LegoBool32 VTable0x110() const;
97100

98101
void Destroy();
99-
void FUN_10028a70(undefined4);
100-
void FUN_10028a80(undefined4);
101-
void FUN_10028ad0(GolNameTable* p_param);
102-
void FUN_10028ae0(GolNameTable* p_param);
103-
void FUN_10028b30(undefined4);
104-
void FUN_10028b40(undefined4);
105-
void FUN_10028b90(const LegoChar*);
106-
void FUN_10028bc0(undefined4);
107-
void FUN_10028bd0(undefined4);
108-
void FUN_10028c20(const LegoChar*);
102+
void FUN_10028a70(CinderBasin0x28* p_param);
103+
void FUN_10028a80(CinderBasin0x28* p_param);
104+
void FUN_10028ad0(HypnoticNoise0x1c* p_param);
105+
void FUN_10028ae0(HypnoticNoise0x1c* p_param);
106+
void FUN_10028b30(MagentaRibbon0x20* p_param);
107+
void FUN_10028b40(MagentaRibbon0x20* p_param);
108+
void* FUN_10028b90(const LegoChar* p_name);
109+
void FUN_10028bc0(AmberHaze0x1c* p_param);
110+
void FUN_10028bd0(AmberHaze0x1c* p_param);
111+
void* FUN_10028c20(const LegoChar* p_name);
109112

110113
// SYNTHETIC: GOLDP 0x100288b0
111114
// WhiteFalcon0x140::`scalar deleting destructor'
@@ -130,10 +133,10 @@ class WhiteFalcon0x140 {
130133
undefined4 m_unk0x2c; // 0x2c
131134
undefined4 m_unk0x30; // 0x30
132135
undefined4* m_unk0x34; // 0x34
133-
undefined4* m_unk0x38; // 0x38
134-
undefined4* m_unk0x3c; // 0x3c
135-
undefined4* m_unk0x40; // 0x40
136-
undefined4* m_unk0x44; // 0x44
136+
MagentaRibbon0x20* m_unk0x38; // 0x38
137+
AmberHaze0x1c* m_unk0x3c; // 0x3c
138+
HypnoticNoise0x1c* m_unk0x40; // 0x40
139+
CinderBasin0x28* m_unk0x44; // 0x44
137140
BronzeFalcon0xc8770* m_nextDrawStateRenderer; // 0x48
138141
undefined m_unk0x4c[0x118 - 0x4c]; // 0x4c
139142
undefined m_unk0x118[0x11c - 0x118]; // 0x118
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#ifndef WHITEFALCONNODE0X18_H
2+
#define WHITEFALCONNODE0X18_H
3+
4+
#include "golnametable.h"
5+
6+
// VTABLE: GOLDP 0x10057454
7+
// SIZE 0x18
8+
class WhiteFalconNode0x18 : public GolNameTable {
9+
public:
10+
WhiteFalconNode0x18();
11+
~WhiteFalconNode0x18() override; // vtable+0x00
12+
void Allocate(LegoU32 p_capacity) override; // vtable+0x04
13+
void Clear() override; // vtable+0x08
14+
virtual void VTable0x0c() = 0; // vtable+0x0c
15+
virtual void VTable0x10(undefined4 p_param); // vtable+0x10
16+
virtual void VTable0x14(undefined4 p_unk0x04,
17+
undefined4 p_unk0x08); // vtable+0x14
18+
virtual void VTable0x18() = 0; // vtable+0x18
19+
virtual undefined4 VTable0x1c(undefined4); // vtable+0x1c
20+
virtual void VTable0x20(undefined4); // vtable+0x20
21+
virtual void VTable0x24(undefined4); // vtable+0x24
22+
virtual void VTable0x28(undefined4, undefined4); // vtable+0x28
23+
virtual void VTable0x2c(undefined4, undefined4); // vtable+0x2c
24+
25+
// SYNTHETIC: GOLDP 0x100299a0
26+
// WhiteFalconNode0x18::`scalar deleting destructor'
27+
28+
private:
29+
undefined4 m_unk0x0c; // 0x0c
30+
undefined4 m_unk0x10; // 0x10
31+
undefined4 m_unk0x14; // 0x14
32+
};
33+
34+
#endif // WHITEFALCONNODE0X18_H

GolDP/src/amberhaze0x1c.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#include "amberhaze0x1c.h"
2+
3+
#include "bronzefalcon0xc8770.h"
4+
5+
DECOMP_SIZE_ASSERT(AmberHaze0x1c, 0x1c)
6+
7+
// FUNCTION: GOLDP 0x100261b0
8+
AmberHaze0x1c::AmberHaze0x1c()
9+
{
10+
m_renderer = NULL;
11+
m_next = NULL;
12+
m_unk0x14 = 0;
13+
m_numItems = 0;
14+
}
15+
16+
// FUNCTION: GOLDP 0x100261f0
17+
AmberHaze0x1c::~AmberHaze0x1c()
18+
{
19+
m_numItems = 0;
20+
21+
if (m_renderer != NULL) {
22+
m_renderer->FUN_10028bd0(this);
23+
m_renderer = NULL;
24+
}
25+
26+
if (m_nameEntries != NULL) {
27+
GolNameTable::Clear();
28+
}
29+
}
30+
31+
// STUB: GOLDP 0x10026270
32+
void AmberHaze0x1c::VTable0x24(BronzeFalcon0xc8770*, const LegoChar*, LegoBool32)
33+
{
34+
STUB(0x10026270);
35+
}
36+
37+
// STUB: GOLDP 0x10026a00
38+
void AmberHaze0x1c::VTable0x20(BronzeFalcon0xc8770*, undefined4, LegoU32)
39+
{
40+
STUB(0x10026a00);
41+
}
42+
43+
// FUNCTION: GOLDP 0x10026a50
44+
void AmberHaze0x1c::Clear()
45+
{
46+
m_numItems = 0;
47+
48+
if (m_renderer != NULL) {
49+
m_renderer->FUN_10028bd0(this);
50+
m_renderer = NULL;
51+
}
52+
53+
if (m_nameEntries != NULL) {
54+
GolNameTable::Clear();
55+
}
56+
}
57+
58+
// STUB: GOLDP 0x10026a80
59+
void AmberHaze0x1c::VTable0x1c(BronzeFalcon0xc8770*, LegoU32)
60+
{
61+
STUB(0x10026a80);
62+
}
63+
64+
// FUNCTION: GOLDP 0x10029920 FOLDED
65+
void AmberHaze0x1c::VTable0x0c()
66+
{
67+
// empty
68+
}
69+
70+
// FUNCTION: GOLDP 0x10029920 FOLDED
71+
void AmberHaze0x1c::VTable0x10()
72+
{
73+
// empty
74+
}

0 commit comments

Comments
 (0)