22#define COPPERCREST0X40_H
33
44#include " decomp.h"
5+ #include " onyxcircularbuffer0x1c.h"
6+ #include " silverdune0x30.h"
57#include " types.h"
68
79class BronzeFalcon0xc8770 ;
810class GolExport ;
11+ class GolCommonDrawState ;
12+ class ImaginaryTool0x368 ;
913class InputManager ;
10- class OnyxCircularBuffer0x1c ;
14+ class MouseInputDevice ;
15+ class ObscureIcon0x1a8 ;
1116class UtopianPan0xa4 ;
1217
1318// VTABLE: LEGORACERS 0x004b2164
14- // SIZE 0x40
19+ // SIZE 0x60
1520class CopperCrest0x40 {
1621public:
22+ enum {
23+ c_keyboardTab = 0x1000000f ,
24+ c_keyboardLeftControl = 0x1000001d ,
25+ c_keyboardLeftShift = 0x1000002a ,
26+ c_keyboardRightShift = 0x10000036 ,
27+ c_keyboardRightControl = 0x1000009d ,
28+ c_keyboardUp = 0x100000c8 ,
29+ c_keyboardDown = 0x100000d0 ,
30+ c_joystick1Button1 = 0x30000001 ,
31+ c_joystick1Button6 = 0x30000006 ,
32+ c_joystick1Button8 = 0x30000008 ,
33+ c_joystick2Button2 = 0x40000002 ,
34+ c_joystick2Button3 = 0x40000003
35+ };
36+
1737 // SIZE 0x18
1838 struct InitStruct {
1939 GolExport* m_golExport; // 0x00
@@ -24,26 +44,81 @@ class CopperCrest0x40 {
2444 undefined4 m_unk0x14; // 0x14
2545 };
2646
47+ // SIZE 0x44
48+ class Helper0x44 {
49+ public:
50+ // SIZE 0x24
51+ struct InitStruct {
52+ InputManager* m_inputManager; // 0x00
53+ GolExport* m_golExport; // 0x04
54+ BronzeFalcon0xc8770* m_renderer; // 0x08
55+ UtopianPan0xa4* m_rendererObject; // 0x0c
56+ SilverDune0x30::Rect* m_bounds; // 0x10
57+ undefined4 m_unk0x14; // 0x14
58+ undefined4 m_unk0x18; // 0x18
59+ undefined4 m_unk0x1c; // 0x1c
60+ undefined4 m_unk0x20; // 0x20
61+ };
62+
63+ Helper0x44 ();
64+ ~Helper0x44 ();
65+
66+ void FUN_00467c80 ();
67+ LegoS32 FUN_00467cc0 (InitStruct* p_initStruct);
68+ LegoS32 FUN_00467d70 ();
69+ LegoS32 FUN_00467d80 (undefined4 p_elapsedMs);
70+ LegoS32 FUN_00467e00 ();
71+
72+ InputManager* m_inputManager; // 0x00
73+ GolExport* m_golExport; // 0x04
74+ BronzeFalcon0xc8770* m_renderer; // 0x08
75+ UtopianPan0xa4* m_rendererObject; // 0x0c
76+ SilverDune0x30::Rect m_bounds; // 0x10
77+ SilverDune0x30::Rect m_sourceRect; // 0x20
78+ LegoS32 m_unk0x30; // 0x30
79+ LegoS32 m_unk0x34; // 0x34
80+ LegoS32 m_unk0x38; // 0x38
81+ LegoS32 m_unk0x3c; // 0x3c
82+ LegoU8 m_unk0x40; // 0x40
83+ LegoU8 m_unk0x41; // 0x41
84+ undefined m_unk0x42[0x44 - 0x42 ]; // 0x42
85+ };
86+
2787 CopperCrest0x40 ();
28- virtual LegoS32 VTable0x00 (); // vtable+0x00
29- virtual LegoS32 VTable0x04 (undefined4 ); // vtable+0x04
30- virtual ~CopperCrest0x40 (); // vtable+0x08
31- virtual LegoS32 VTable0x0c (); // vtable+0x0c
32- virtual LegoS32 VTable0x10 (undefined4); // vtable+0x10
33- virtual void VTable0x14 (); // vtable+0x14
34- virtual void VTable0x18 (); // vtable+0x18
88+ virtual LegoS32 VTable0x00 (); // vtable+0x00
89+ virtual LegoS32 VTable0x04 (ObscureIcon0x1a8* ); // vtable+0x04
90+ virtual ~CopperCrest0x40 (); // vtable+0x08
91+ virtual LegoS32 VTable0x0c (); // vtable+0x0c
92+ virtual LegoS32 VTable0x10 (undefined4); // vtable+0x10
93+ virtual void VTable0x14 (); // vtable+0x14
94+ virtual void VTable0x18 (); // vtable+0x18
3595
3696 // SYNTHETIC: LEGORACERS 0x00468f10
3797 // CopperCrest0x40::`scalar deleting destructor'
3898
3999 LegoS32 FUN_00469040 (InitStruct* p_initStruct);
40100 void FUN_00469550 ();
41- undefined4* GetUnk0x10 () { return &m_unk0x10; }
101+ void * GetUnk0x10 () { return &m_unk0x10; }
102+ void SetUnk0x54 (ImaginaryTool0x368* p_unk0x54) { m_unk0x54 = p_unk0x54; }
103+ void SetCursorInside (LegoU8 p_cursorInside) { m_unk0x10.m_unk0x40 = p_cursorInside; }
104+ void SetCursorPosition (undefined4 p_x, undefined4 p_y)
105+ {
106+ m_unk0x10.m_unk0x30 = p_x - m_unk0x10.m_unk0x38 ;
107+ m_unk0x10.m_unk0x34 = p_y - m_unk0x10.m_unk0x3c ;
108+ }
42109
43110private:
44- undefined m_unk0x04[0x10 - 0x04 ]; // 0x04
45- undefined4 m_unk0x10; // 0x10
46- undefined m_unk0x14[0x40 - 0x14 ]; // 0x14
111+ LegoS32 FUN_00468fa0 (InitStruct* p_initStruct);
112+ LegoS32 FUN_004690f0 (OnyxCircularBuffer0x1c::Item* p_item);
113+ void FUN_004691e0 (MouseInputDevice* p_mouse);
114+
115+ GolCommonDrawState* m_drawState; // 0x04
116+ InputManager* m_inputManager; // 0x08
117+ OnyxCircularBuffer0x1c* m_inputBindingContainer; // 0x0c
118+ Helper0x44 m_unk0x10; // 0x10
119+ ImaginaryTool0x368* m_unk0x54; // 0x54
120+ LegoS32 m_unk0x58; // 0x58
121+ LegoS32 m_unk0x5c; // 0x5c
47122};
48123
49124#endif // COPPERCREST0X40_H
0 commit comments