Skip to content

Commit 720c836

Browse files
authored
Build out Imaginary* classes (isledecomp#29)
1 parent bf31a33 commit 720c836

8 files changed

Lines changed: 500 additions & 223 deletions

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ add_executable(legoracers WIN32
110110
LEGORacers/src/jaspercore0xf0.cpp
111111
LEGORacers/src/opalvault0xf0.cpp
112112
LEGORacers/src/silvernode0x50.cpp
113+
LEGORacers/src/imaginarynotion0x280.cpp
114+
LEGORacers/src/imaginarytool0x368.cpp
113115
LEGORacers/src/imaginarywrench0x23bc.cpp
114116
LEGORacers/racers.rc
115117
)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#ifndef IMAGINARYINTERFACE_H
2+
#define IMAGINARYINTERFACE_H
3+
4+
#include "decomp.h"
5+
6+
// VTABLE: LEGORACERS 0x4b2388
7+
class ImaginaryInterface {
8+
virtual void VTable0x00(undefined4) = 0; // vtable+0x00
9+
virtual void VTable0x04(undefined4) = 0; // vtable+0x04
10+
virtual void VTable0x08(undefined4) = 0; // vtable+0x08
11+
virtual void VTable0x0c(undefined4) = 0; // vtable+0x0c
12+
virtual void VTable0x10(undefined4) = 0; // vtable+0x10
13+
virtual undefined4 VTable0x14(undefined4, undefined4, undefined4, undefined4) = 0; // vtable+0x14
14+
virtual undefined4 VTable0x18(undefined4, undefined4, undefined4, undefined4) = 0; // vtable+0x18
15+
virtual undefined4 VTable0x1c(undefined4, undefined4, undefined4, undefined4) = 0; // vtable+0x1c
16+
virtual void VTable0x20(undefined4) = 0; // vtable+0x20
17+
virtual void VTable0x24(undefined4) = 0; // vtable+0x24
18+
virtual undefined4 VTable0x28(undefined4, undefined4, undefined4, undefined4) = 0; // vtable+0x28
19+
virtual void VTable0x2c(undefined4) = 0; // vtable+0x2c
20+
virtual void VTable0x30(undefined4) = 0; // vtable+0x30
21+
virtual void VTable0x34(undefined4) = 0; // vtable+0x34
22+
virtual void VTable0x38(undefined4) = 0; // vtable+0x38
23+
virtual void VTable0x3c(undefined4) = 0; // vtable+0x3c
24+
virtual void VTable0x40(undefined4) = 0; // vtable+0x40
25+
virtual void VTable0x44(undefined4) = 0; // vtable+0x44
26+
virtual void VTable0x48(undefined4) = 0; // vtable+0x48
27+
virtual void VTable0x4c(undefined4) = 0; // vtable+0x4c
28+
};
29+
30+
#endif // IMAGINARYINTERFACE_H
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#ifndef IMAGINARYNOTION0X280_H
2+
#define IMAGINARYNOTION0X280_H
3+
4+
#include "compat.h"
5+
#include "decomp.h"
6+
#include "imaginaryinterface.h"
7+
8+
// VTABLE: LEGORACERS 0x4b2308
9+
// SIZE 0x280
10+
class ImaginaryNotion0x280 : public ImaginaryInterface {
11+
public:
12+
ImaginaryNotion0x280();
13+
14+
void VTable0x00(undefined4) override; // vtable+0x00
15+
void VTable0x04(undefined4) override; // vtable+0x04
16+
void VTable0x08(undefined4) override; // vtable+0x08
17+
void VTable0x0c(undefined4) override; // vtable+0x0c
18+
void VTable0x10(undefined4) override; // vtable+0x10
19+
undefined4 VTable0x14(undefined4, undefined4, undefined4, undefined4) override; // vtable+0x14
20+
undefined4 VTable0x18(undefined4, undefined4, undefined4, undefined4) override; // vtable+0x18
21+
undefined4 VTable0x1c(undefined4, undefined4, undefined4, undefined4) override; // vtable+0x1c
22+
void VTable0x20(undefined4) override; // vtable+0x20
23+
void VTable0x24(undefined4) override; // vtable+0x24
24+
undefined4 VTable0x28(undefined4, undefined4, undefined4, undefined4) override; // vtable+0x28
25+
void VTable0x2c(undefined4) override; // vtable+0x2c
26+
void VTable0x30(undefined4) override; // vtable+0x30
27+
void VTable0x34(undefined4) override; // vtable+0x34
28+
void VTable0x38(undefined4) override; // vtable+0x38
29+
void VTable0x3c(undefined4) override; // vtable+0x3c
30+
void VTable0x40(undefined4) override; // vtable+0x40
31+
void VTable0x44(undefined4) override; // vtable+0x44
32+
void VTable0x48(undefined4) override; // vtable+0x48
33+
virtual undefined4 VTable0x50(); // vtable+0x50
34+
virtual void VTable0x54(); // vtable+0x54
35+
virtual void VTable0x58(); // vtable+0x58
36+
virtual void VTable0x5c(); // vtable+0x5c
37+
virtual void VTable0x60(); // vtable+0x60
38+
virtual void VTable0x64(); // vtable+0x64
39+
virtual void VTable0x68(); // vtable+0x68
40+
virtual void VTable0x6c(); // vtable+0x6c
41+
virtual void VTable0x70(); // vtable+0x70
42+
virtual void VTable0x74(); // vtable+0x74
43+
virtual void VTable0x78(); // vtable+0x78
44+
virtual void VTable0x7c(); // vtable+0x7c
45+
46+
protected:
47+
undefined m_unk0x04[0x280 - 4]; // 0x04
48+
};
49+
50+
#endif // IMAGINARYNOTION0X280_H
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#ifndef IMAGINARYTOOL0X368_H
2+
#define IMAGINARYTOOL0X368_H
3+
4+
#include "compat.h"
5+
#include "decomp.h"
6+
#include "imaginarynotion0x280.h"
7+
8+
// VTABLE: LEGORACERS 0x4b3518
9+
// SIZE 0x368
10+
class ImaginaryTool0x368 : public ImaginaryNotion0x280 {
11+
public:
12+
ImaginaryTool0x368();
13+
14+
undefined4 VTable0x18(undefined4, undefined4, undefined4, undefined4) override; // vtable+0x18
15+
undefined4 VTable0x1c(undefined4, undefined4, undefined4, undefined4) override; // vtable+0x1c
16+
void VTable0x34(undefined4) override; // vtable+0x34
17+
void VTable0x3c(undefined4) override; // vtable+0x3c
18+
void VTable0x40(undefined4) override; // vtable+0x40
19+
void VTable0x54() override; // vtable+0x54
20+
void VTable0x5c() override; // vtable+0x5c
21+
void VTable0x64() override; // vtable+0x64
22+
void VTable0x68() override; // vtable+0x68
23+
void VTable0x6c() override; // vtable+0x6c
24+
void VTable0x74() override; // vtable+0x74
25+
void VTable0x78() override; // vtable+0x78
26+
virtual void VTable0x80(); // vtable+0x80
27+
virtual void VTable0x84() = 0; // vtable+0x84
28+
virtual void VTable0x88(); // vtable+0x88
29+
virtual void VTable0x8c(); // vtable+0x8c
30+
virtual void VTable0x90(undefined4); // vtable+0x90
31+
virtual void VTable0x94(undefined4); // vtable+0x94
32+
33+
protected:
34+
undefined m_unk0x280[0x368 - 0x280]; // 0x280
35+
};
36+
37+
#endif // IMAGINARYTOOL0X368_H
Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,34 @@
11
#ifndef IMAGINARYWRENCH0X23BC_H
22
#define IMAGINARYWRENCH0X23BC_H
33

4+
#include "compat.h"
45
#include "crimsonray0x20.h"
56
#include "decomp.h"
7+
#include "imaginarytool0x368.h"
68

79
// VTABLE: LEGORACERS 0x4b31f8
8-
class ImaginaryWrench0x23bc {
10+
// SIZE 0x23bc
11+
class ImaginaryWrench0x23bc : public ImaginaryTool0x368 {
912
public:
1013
ImaginaryWrench0x23bc();
1114

12-
virtual void VTable0x00(); // vtable+0x00
13-
virtual void VTable0x04(); // vtable+0x04
14-
virtual void VTable0x08(); // vtable+0x08
15-
virtual void VTable0x0c(); // vtable+0x0c
16-
virtual void VTable0x10(); // vtable+0x10
17-
virtual void VTable0x14(); // vtable+0x14
18-
virtual void VTable0x18(); // vtable+0x18
19-
virtual void VTable0x1c(); // vtable+0x1c
20-
virtual void VTable0x20(); // vtable+0x20
21-
virtual void VTable0x24(); // vtable+0x24
22-
virtual void VTable0x28(); // vtable+0x28
23-
virtual void VTable0x2c(); // vtable+0x2c
24-
virtual void VTable0x30(); // vtable+0x30
25-
virtual void VTable0x34(); // vtable+0x34
26-
virtual void VTable0x38(); // vtable+0x38
27-
virtual void VTable0x3c(); // vtable+0x3c
28-
virtual void VTable0x40(); // vtable+0x40
29-
virtual void VTable0x44(undefined4); // vtable+0x44
30-
virtual void VTable0x48(); // vtable+0x48
31-
virtual void VTable0x4c(); // vtable+0x4c
32-
virtual undefined4 VTable0x50(); // vtable+0x50
33-
virtual void VTable0x54(); // vtable+0x54
34-
virtual void VTable0x58(); // vtable+0x58
35-
virtual void VTable0x5c(); // vtable+0x5c
36-
virtual void VTable0x60(); // vtable+0x60
37-
virtual void VTable0x64(); // vtable+0x64
38-
virtual void VTable0x68(); // vtable+0x68
39-
virtual void VTable0x6c(); // vtable+0x6c
40-
virtual void VTable0x70(); // vtable+0x70
41-
virtual void VTable0x74(); // vtable+0x74
42-
virtual void VTable0x78(); // vtable+0x78
43-
virtual void VTable0x7c(); // vtable+0x7c
44-
virtual void VTable0x80(); // vtable+0x80
45-
virtual void VTable0x84(); // vtable+0x84
46-
virtual void VTable0x88(); // vtable+0x88
47-
virtual void VTable0x8c(); // vtable+0x8c
48-
virtual void VTable0x90(); // vtable+0x90
49-
virtual void VTable0x94(undefined4); // vtable+0x94
15+
void VTable0x38(undefined4) override; // vtable+0x38
16+
void VTable0x3c(undefined4) override; // vtable+0x3c
17+
void VTable0x40(undefined4) override; // vtable+0x40
18+
void VTable0x44(undefined4) override; // vtable+0x44
19+
void VTable0x4c(undefined4) override; // vtable+0x4c
20+
void VTable0x54() override; // vtable+0x54
21+
void VTable0x68() override; // vtable+0x68
22+
void VTable0x74() override; // vtable+0x74
23+
void VTable0x84() override; // vtable+0x84
24+
void VTable0x8c() override; // vtable+0x8c
25+
void VTable0x90(undefined4) override; // vtable+0x90
26+
void VTable0x94(undefined4) override; // vtable+0x94
5027

5128
void FUN_0047ba00();
5229

5330
protected:
54-
undefined m_unk0x04[0x23bc - 4]; // 0x04
31+
undefined m_unk0x04[0x23bc - 0x368]; // 0x04
5532
};
5633

5734
#endif // IMAGINARYWRENCH0X23BC_H

0 commit comments

Comments
 (0)