Skip to content

Commit 569f413

Browse files
committed
Match various LEGORACERS methods
1 parent 86af8ee commit 569f413

22 files changed

Lines changed: 976 additions & 35 deletions

GolDP/src/goldevicelist.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,9 @@ GolDeviceList::GolD3DDeviceInfo* GolDeviceList::FindMatchingDevice(
232232

233233
return NULL;
234234
}
235-
else if ((p_flags & GolDrawState::c_flagBit9) &&
236-
!(p_flags & (GolDrawState::c_flagBit13 | GolDrawState::c_flagBit11))) {
235+
else if (
236+
(p_flags & GolDrawState::c_flagBit9) && !(p_flags & (GolDrawState::c_flagBit13 | GolDrawState::c_flagBit11))
237+
) {
237238
for (m_driverIndex = 0; m_driverIndex < m_countDrivers; m_driverIndex++) {
238239
driver = &m_drivers[m_driverIndex];
239240
if (!driver->m_unk0x00 && driver->m_accelerated) {

LEGORacers/include/aquamarinespirit0x3c.h

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,64 @@
22
#define AQUAMARINESPIRIT0X3C_H
33

44
#include "decomp.h"
5+
#include "golnametable.h"
6+
#include "goltxtparser.h"
7+
8+
// VTABLE: LEGORACERS 0x004afe7c
9+
// SIZE 0x1fc
10+
class CmbTxtParser : public GolTxtParser {};
11+
12+
class OpalHaven0xf4;
513

614
// VTABLE: LEGORACERS 0x004afe70
715
// SIZE 0x3c
8-
class AquamarineSpirit0x3c {
16+
class AquamarineSpirit0x3c : public GolNameTable {
917
public:
1018
AquamarineSpirit0x3c();
11-
virtual ~AquamarineSpirit0x3c(); // vtable+0x00
19+
~AquamarineSpirit0x3c() override; // vtable+0x00
20+
void Clear() override;
1221

1322
// SYNTHETIC: LEGORACERS 0x0041d910
1423
// AquamarineSpirit0x3c::`scalar deleting destructor'
1524

25+
struct Params {
26+
undefined4* m_unk0x00;
27+
undefined4 m_unk0x04;
28+
LegoS32 m_unk0x08;
29+
const LegoChar* m_filename;
30+
undefined4 m_unk0x10;
31+
};
32+
33+
void FUN_0041db10(const Params* p_params);
34+
1635
private:
17-
undefined m_unk0x04[0x3c - 0x04]; // 0x04
36+
void FUN_0041d980();
37+
void FUN_0041dae0();
38+
39+
// SIZE 0x104
40+
struct Item0x104 {
41+
LegoFloat m_unk0xb8[3];
42+
LegoFloat m_unk0xc4[3];
43+
LegoFloat m_unk0xd0;
44+
LegoFloat m_unk0xd4[2];
45+
LegoU8 m_unk0x100;
46+
LegoU8 m_unk0x101;
47+
LegoU8 m_unk0x102;
48+
undefined m_unk0x103[0x104 - 0x103];
49+
};
50+
51+
undefined4* m_unk0x0c; // 0x0c
52+
undefined4 m_unk0x10; // 0x10
53+
Item0x104* m_unk0x14; // 0x14
54+
undefined4** m_unk0x18; // 0x18
55+
undefined4** m_unk0x1c; // 0x1c
56+
undefined4** m_unk0x20; // 0x20
57+
undefined4** m_unk0x24; // 0x24
58+
undefined4** m_unk0x28; // 0x28
59+
OpalHaven0xf4* m_unk0x2c; // 0x2c
60+
undefined4 m_unk0x30; // 0x30
61+
LegoS32 m_unk0x34; // 0x34
62+
undefined4 m_unk0x38; // 0x38
1863
};
1964

2065
#endif // AQUAMARINESPIRIT0X3C_H

LEGORacers/include/ceruleanemperor0x4c.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ class CeruleanEmperor0x4c : public CeruleanKnight0x20 {
2020
// SYNTHETIC: LEGORACERS 0x0046faa0
2121
// CeruleanEmperor0x4c::`scalar deleting destructor'
2222

23+
private:
24+
void FUN_004707e0();
25+
void FUN_00470880();
26+
void FUN_00470920();
27+
void FUN_004709c0();
28+
void FUN_00470a70();
29+
void FUN_00470b10();
30+
void FUN_00470bc0();
31+
void FUN_00470c60();
32+
void FUN_00470d10();
33+
void FUN_00470dc0();
34+
2335
protected:
2436
undefined4 m_unk0x20; // 0x20
2537
undefined* m_unk0x24; // 0x24

LEGORacers/include/ceruleanknight0x20.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ class CeruleanKnight0x20 : public GolNameTable {
2222
// CeruleanKnight0x20::`scalar deleting destructor'
2323

2424
protected:
25+
LegoS32 FUN_0046b130();
26+
LegoS32 FUN_0046b170();
27+
void FUN_0046b1d0(LegoS32* p_ints);
28+
void FUN_0046b210(LegoS8* p_ints);
29+
void FUN_0046b250();
30+
2531
undefined m_unk0x0c; // 0x0c
2632
GolFileParser* m_unk0x10; // 0x10
2733
undefined4 m_unk0x14; // 0x10

LEGORacers/include/ceruleanqueen0x58.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,21 @@ class CeruleanQueen0x58 : public CeruleanKnight0x20 {
2020
// SYNTHETIC: LEGORACERS 0x00469600
2121
// CeruleanQueen0x58::`scalar deleting destructor'
2222

23+
private:
24+
void FUN_0046a750();
25+
void FUN_0046a800();
26+
void FUN_0046a8a0();
27+
void FUN_0046a940();
28+
void FUN_0046a9e0();
29+
void FUN_0046aa90();
30+
void FUN_0046ab40();
31+
void FUN_0046abe0();
32+
void FUN_0046ac90();
33+
void FUN_0046ad40();
34+
void FUN_0046adf0();
35+
void FUN_0046af50();
36+
void FUN_0046aea0();
37+
2338
protected:
2439
undefined4 m_unk0x20; // 0x20
2540
undefined4 m_unk0x24; // 0x24

LEGORacers/include/citrinegrove0x1f4c.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ class CitrineGrove0x1f4c {
1919
PeridotTraceBuffer0x250& GetUnk0x1cfc() { return m_unk0x1cfc; }
2020

2121
void FUN_004432d0();
22+
void FUN_004432e0(undefined4* p_arg1, undefined4 p_arg2);
23+
undefined4 FUN_00443420(undefined4, undefined4);
24+
undefined4 FUN_004434a0(undefined4);
25+
void FUN_00443520(undefined4);
26+
void FUN_004435c0();
27+
void FUN_00443620(const LegoChar*, PeridotTrace0x4a8*);
2228
void FUN_004436e0();
29+
void FUN_00450fc0(const LegoChar* p_path);
2330

2431
private:
2532
MarigoldTrail0x108 m_unk0x00; // 0x00

LEGORacers/include/imaginarynotion0x290.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class ImaginaryNotion0x290 : public ImaginaryInterface {
8888
undefined4 m_unk0xc0; // 0x0c0
8989
undefined4 m_unk0xc4; // 0x0c4
9090
undefined4 m_unk0xc8; // 0x0c8
91-
undefined4 m_unk0xcc; // 0x0cc
91+
undefined4* m_unk0xcc; // 0x0cc
9292
undefined4* m_unk0xd0; // 0x0d0
9393
undefined4 m_unk0xd4; // 0x0d4
9494
ObscureIcon0x1a8 m_unk0xd8; // 0x0d8

LEGORacers/include/peridottrace0x4e0.h

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

7+
class GolFile;
8+
class PeridotTrace0x4e0;
9+
10+
// SIZE 0x24
11+
class PeridotTraceBase0x24 {
12+
public:
13+
PeridotTraceBase0x24();
14+
15+
LegoBool32 HasUnk0x04() const { return m_unk0x04 != 0; }
16+
undefined4 GetUnk0x20() const { return m_unk0x20; }
17+
18+
private:
19+
void Init();
20+
21+
undefined4 m_unk0x00;
22+
undefined4 m_unk0x04;
23+
undefined4 m_unk0x08;
24+
undefined4 m_unk0x0c;
25+
undefined4 m_unk0x10;
26+
undefined4 m_unk0x14;
27+
undefined4 m_unk0x18;
28+
undefined4 m_unk0x1c;
29+
undefined4 m_unk0x20;
30+
};
31+
732
// SIZE 0x4a8
8-
class PeridotTrace0x4a8 {
33+
class PeridotTrace0x4a8 : public PeridotTraceBase0x24 {
934
public:
1035
PeridotTrace0x4a8();
1136
~PeridotTrace0x4a8();
1237

13-
LegoBool32 HasUnk0x04() const { return m_unk0x04 != 0; }
38+
void FUN_004426d0(undefined4, undefined4, undefined4);
39+
undefined4 FUN_00442770(GolFile& p_file);
40+
undefined4 FUN_004439b0();
1441

1542
private:
16-
undefined4 m_unk0x00; // 0x00
17-
undefined* m_unk0x04; // 0x04
18-
undefined m_unk0x08[0x4a8 - 0x08]; // 0x08
43+
undefined m_unk0x24[0x4a4 - 0x24]; // 0x24
44+
undefined4 m_unk0x4a4;
1945
};
2046

2147
// SIZE 0x34
@@ -41,17 +67,19 @@ class PeridotTraceActionBase0x34 {
4167
class PeridotTraceAction0x34 : public PeridotTraceActionBase0x34 {};
4268

4369
// SIZE 0x4e0
44-
class PeridotTrace0x4e0 {
70+
class PeridotTrace0x4e0 : public PeridotTrace0x4a8 {
4571
public:
4672
PeridotTrace0x4e0();
4773
~PeridotTrace0x4e0();
4874

4975
LegoBool32 HasUnk0x4b4Flag0x01() const { return !m_unk0x4a8->HasUnk0x04() && m_unk0x4ac.HasUnk0x08Flag0x01(); }
5076

5177
void FUN_004438e0();
78+
undefined4 FUN_00443910();
79+
undefined4 FUN_00443940();
80+
undefined4 FUN_00443980();
5281

5382
private:
54-
PeridotTrace0x4a8 m_unk0x00; // 0x00
5583
PeridotTrace0x4a8* m_unk0x4a8; // 0x4a8
5684
PeridotTraceAction0x34 m_unk0x4ac; // 0x4ac
5785
};
@@ -62,15 +90,22 @@ class PeridotTraceState0x438 {
6290
PeridotTraceState0x438();
6391
~PeridotTraceState0x438();
6492

93+
void FUN_0042e920(undefined4*);
94+
void FUN_0042eb60(PeridotTrace0x4e0*, undefined4);
95+
void FUN_0042ef80(PeridotTrace0x4a8*);
6596
void FUN_0042f200(LegoU8 p_unk0x04);
6697
LegoBool32 FUN_0042f250(LegoU32 p_unk0x04);
6798
LegoBool32 FUN_0042f280() const;
6899

100+
void SetUnk0x00(undefined4 p_arg1) { m_unk0x00 = p_arg1; }
101+
undefined4 GetUnk0x00() const { return m_unk0x00; }
102+
undefined4 GetUnk0x04() const { return m_unk0x04; }
69103
LegoU8 GetUnk0x22() const { return m_unk0x22; }
70104

71105
private:
72106
undefined4 m_unk0x00; // 0x00
73-
undefined m_unk0x04[0x22 - 0x04]; // 0x04
107+
undefined4 m_unk0x04; // 0x04
108+
undefined m_unk0x08[0x22 - 0x08]; // 0x08
74109
LegoU8 m_unk0x22; // 0x22
75110
undefined m_unk0x23; // 0x23
76111
LegoU8 m_unk0x24; // 0x24
@@ -87,6 +122,8 @@ class PeridotTraceBuffer0x250 {
87122

88123
void Reset() { m_unk0x244 = 0; }
89124

125+
void FUN_0042b2f0(undefined4, undefined4, undefined4, undefined4);
126+
90127
private:
91128
undefined m_unk0x00[0x244 - 0x00]; // 0x00
92129
undefined4 m_unk0x244; // 0x244

LEGORacers/include/tanzanitewisp0x88.h

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class TanzaniteWisp0x88 {
1313
TanzaniteWisp0x88();
1414
~TanzaniteWisp0x88();
1515

16+
void FUN_0049d140();
17+
1618
void Reset()
1719
{
1820
m_unk0x78 = 0;
@@ -27,7 +29,18 @@ class TanzaniteWisp0x88 {
2729
private:
2830
friend class MenuManager;
2931

30-
undefined m_unk0x00[0x78 - 0x00]; // 0x00
32+
undefined4 m_unk0x00; // 0x00
33+
undefined4 m_unk0x04; // 0x04
34+
undefined4 m_unk0x08; // 0x08
35+
undefined4 m_unk0x0c; // 0x0c
36+
undefined4 m_unk0x10; // 0x10
37+
undefined4 m_unk0x14; // 0x14
38+
undefined4 m_unk0x18; // 0x18
39+
undefined4* m_unk0x1c; // 0x1c
40+
undefined4* m_unk0x20; // 0x20
41+
undefined m_unk0x24[0x38 - 0x24]; // 0x24
42+
undefined4 m_unk0x38; // 0x38
43+
undefined m_unk0x3c[0x78 - 0x3c]; // 0x3c
3144
undefined4 m_unk0x78; // 0x78
3245
MusicGroup* m_musicGroup; // 0x7c
3346
MusicInstance* m_musicInstance; // 0x80
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
#ifndef TURQUOISEGLOW0X80_H
22
#define TURQUOISEGLOW0X80_H
33

4+
#include "compat.h"
45
#include "decomp.h"
6+
#include "golnametable.h"
57

68
// VTABLE: LEGORACERS 0x004b00a4
79
// SIZE 0x80
8-
class TurquoiseGlow0x80 {
10+
class TurquoiseGlow0x80 : public GolNameTable {
911
public:
1012
TurquoiseGlow0x80();
11-
virtual ~TurquoiseGlow0x80(); // vtable+0x00
13+
~TurquoiseGlow0x80() override; // vtable+0x00
14+
15+
void Clear() override; // vtable+0x08
1216

1317
// SYNTHETIC: LEGORACERS 0x004206f0
1418
// TurquoiseGlow0x80::`scalar deleting destructor'
1519

1620
private:
17-
undefined m_unk0x04[0x80 - 0x04]; // 0x04
21+
undefined m_unk0x04[0x80 - 0x0c]; // 0x04
1822
};
1923

2024
#endif // TURQUOISEGLOW0X80_H

0 commit comments

Comments
 (0)