some gamestate functions (#333)

* some gamestate functions

* fix order

* fix naming convention

* Update legogamestate.cpp

* fix

* Add stub ScoreStruct

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2023-12-15 17:01:09 -05:00
committed by GitHub
parent 540a930494
commit 04d9524a90
4 changed files with 70 additions and 7 deletions

View File

@@ -4,10 +4,10 @@
#include "decomp.h"
#include "legobackgroundcolor.h"
#include "legofullscreenmovie.h"
#include "legostream.h"
#include "mxtypes.h"
class LegoState;
class LegoStream;
class MxVariable;
class MxString;
@@ -24,7 +24,7 @@ public:
__declspec(dllexport) MxResult Load(MxULong);
__declspec(dllexport) MxResult Save(MxULong);
__declspec(dllexport) void SerializePlayersInfo(MxS16);
__declspec(dllexport) void SerializeScoreHistory(MxS16);
__declspec(dllexport) void SerializeScoreHistory(MxS16 p_flags);
__declspec(dllexport) void SetSavePath(char*);
LegoState* GetState(COMPAT_CONST char* p_stateName);
@@ -39,24 +39,34 @@ public:
inline void SetUnknown424(undefined4 p_unk0x424) { m_unk0x424 = p_unk0x424; }
void SetSomeEnumState(undefined4 p_state);
void FUN_1003ceb0();
struct ScoreStruct {
void WriteScoreHistory();
void FUN_1003ccf0(LegoFileStream&);
MxU16 m_unk0x00;
undefined m_unk0x02[0x2c][20];
};
private:
void RegisterState(LegoState* p_state);
MxResult WriteEndOfVariables(LegoStream* p_stream);
void SetROIHandlerFunction();
private:
char* m_savePath; // 0x0
MxS16 m_stateCount; // 0x4
LegoState** m_stateArray; // 0x8
MxU8 m_unk0xc; // 0xc
MxU32 m_unk0x10; // 0x10
undefined4 m_unk0x14; // 0x14
undefined4 m_currentAct; // 0x14
LegoBackgroundColor* m_backgroundColor; // 0x18
LegoBackgroundColor* m_tempBackgroundColor; // 0x1c
LegoFullScreenMovie* m_fullScreenMovie; // 0x20
MxU16 m_unk0x24; // 0x24
undefined m_unk0x28[1020]; // 0x28
undefined m_unk0x28[128]; // 0x28
ScoreStruct m_unk0xa6; // 0xa6
undefined m_unk0x41a[10]; // 0x41a - might be part of the structure at 0xa6
undefined4 m_unk0x424; // 0x424
undefined4 m_unk0x428; // 0x428
undefined4 m_unk0x42c; // 0x42c