2023-04-27 22:19:39 -04:00
|
|
|
#ifndef LEGOGAMESTATE_H
|
|
|
|
#define LEGOGAMESTATE_H
|
|
|
|
|
2023-09-29 16:38:08 -04:00
|
|
|
#include "decomp.h"
|
2023-07-02 04:05:49 -04:00
|
|
|
#include "mxtypes.h"
|
2023-09-29 16:38:08 -04:00
|
|
|
#include "legobackgroundcolor.h"
|
|
|
|
#include "legofullscreenmovie.h"
|
2023-07-02 04:05:49 -04:00
|
|
|
|
2023-10-12 12:18:24 -04:00
|
|
|
class LegoState;
|
|
|
|
class LegoStream;
|
|
|
|
class MxVariable;
|
|
|
|
class MxString;
|
|
|
|
|
|
|
|
struct ColorStringStruct
|
|
|
|
{
|
|
|
|
const char *m_targetName;
|
|
|
|
const char *m_colorName;
|
|
|
|
};
|
|
|
|
|
2023-09-29 16:38:08 -04:00
|
|
|
// SIZE 0x430 (at least)
|
2023-04-27 22:19:39 -04:00
|
|
|
class LegoGameState
|
|
|
|
{
|
|
|
|
public:
|
2023-06-11 21:03:54 -04:00
|
|
|
__declspec(dllexport) LegoGameState();
|
|
|
|
__declspec(dllexport) ~LegoGameState();
|
2023-07-02 04:05:49 -04:00
|
|
|
__declspec(dllexport) MxResult Load(MxULong);
|
|
|
|
__declspec(dllexport) MxResult Save(MxULong p);
|
2023-07-02 05:07:11 -04:00
|
|
|
__declspec(dllexport) void SerializePlayersInfo(MxS16 p);
|
|
|
|
__declspec(dllexport) void SerializeScoreHistory(MxS16 p);
|
2023-04-27 22:19:39 -04:00
|
|
|
__declspec(dllexport) void SetSavePath(char *p);
|
2023-07-03 13:25:37 -04:00
|
|
|
|
2023-10-12 12:18:24 -04:00
|
|
|
LegoState *GetState(char *p_stateName);
|
|
|
|
LegoState *CreateState(char *p_stateName);
|
|
|
|
|
|
|
|
void GetFileSavePath(MxString *p_outPath, MxULong p_slotn);
|
2023-10-23 07:16:21 -04:00
|
|
|
void FUN_1003a720(MxU32 p_unk);
|
|
|
|
void HandleAction(MxU32 p_unk);
|
|
|
|
|
|
|
|
inline void SetUnknown424(undefined4 p_unk424) { m_unk424 = p_unk424; }
|
2023-10-12 12:18:24 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
void RegisterState(LegoState *p_state);
|
|
|
|
MxResult WriteEndOfVariables(LegoStream *p_stream);
|
|
|
|
|
2023-07-03 13:25:37 -04:00
|
|
|
private:
|
2023-09-29 16:38:08 -04:00
|
|
|
char *m_savePath; // 0x0
|
2023-10-12 12:18:24 -04:00
|
|
|
MxS16 m_stateCount;
|
|
|
|
LegoState **m_stateArray;
|
2023-10-13 17:36:16 -04:00
|
|
|
MxU8 m_unkC;
|
|
|
|
MxU32 m_unk10;
|
2023-10-12 12:18:24 -04:00
|
|
|
undefined4 m_unk0x14;
|
2023-09-29 16:38:08 -04:00
|
|
|
LegoBackgroundColor *m_backgroundColor; // 0x18
|
|
|
|
LegoBackgroundColor *m_tempBackgroundColor; // 0x1c
|
|
|
|
LegoFullScreenMovie *m_fullScreenMovie; // 0x20
|
2023-10-13 17:36:16 -04:00
|
|
|
MxU16 m_unk24; // 0x24
|
2023-10-23 07:16:21 -04:00
|
|
|
undefined m_unk28[1020];
|
|
|
|
undefined4 m_unk424;
|
|
|
|
undefined4 m_unk428;
|
|
|
|
undefined4 m_unk42c;
|
2023-04-27 22:19:39 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // LEGOGAMESTATE_H
|