100% match of many functions in the LegoGameState::Save codepath (#86)

* Only include decomps

* One more function

* Add offset to endOfVariables

* Remove leftover header

* Use undefined where applicable

* Fixes, refactorings

* Fixes

* Fix calling convention

* Added offset comment

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Mark Langen
2023-10-12 09:18:24 -07:00
committed by GitHub
parent 49ec7364c2
commit 91c3ed3e70
16 changed files with 489 additions and 40 deletions

View File

@@ -6,6 +6,17 @@
#include "legobackgroundcolor.h"
#include "legofullscreenmovie.h"
class LegoState;
class LegoStream;
class MxVariable;
class MxString;
struct ColorStringStruct
{
const char *m_targetName;
const char *m_colorName;
};
// SIZE 0x430 (at least)
class LegoGameState
{
@@ -18,13 +29,27 @@ public:
__declspec(dllexport) void SerializeScoreHistory(MxS16 p);
__declspec(dllexport) void SetSavePath(char *p);
LegoState *GetState(char *p_stateName);
LegoState *CreateState(char *p_stateName);
void GetFileSavePath(MxString *p_outPath, MxULong p_slotn);
private:
void RegisterState(LegoState *p_state);
MxResult WriteEndOfVariables(LegoStream *p_stream);
private:
char *m_savePath; // 0x0
undefined m_unk04[20];
MxS16 m_stateCount;
LegoState **m_stateArray;
MxU8 m_someModeSwitch;
MxU32 m_someEnumState;
undefined4 m_unk0x14;
LegoBackgroundColor *m_backgroundColor; // 0x18
LegoBackgroundColor *m_tempBackgroundColor; // 0x1c
LegoFullScreenMovie *m_fullScreenMovie; // 0x20
undefined m_unk24[1036];
MxU16 m_secondThingWritten;
undefined m_unk24[1032];
};
#endif // LEGOGAMESTATE_H