Implement Save, Load, DeleteState (#602)

* Implement Save, Load, DeleteState

* WIP

* WIP

* Match LegoGameState::Save

* Spacing

* Match LegoGameState::DeleteState()

* More match

* Match

* Move vars

* Other fixes

* Rename

* Fix error

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Nathan M Gilbert
2024-02-27 15:04:17 -05:00
committed by GitHub
parent c0a988b0fe
commit 4d84157888
16 changed files with 300 additions and 54 deletions

View File

@@ -9,6 +9,8 @@ class LegoBackgroundColor : public MxVariable {
public:
LegoBackgroundColor(const char* p_key, const char* p_value);
void SetValue(const char* p_colorString) override;
void SetLights(float p_r, float p_g, float p_b);
void SetLights();
private:
float m_h;

View File

@@ -2,6 +2,7 @@
#define LEGOBUILDINGMANAGER_H
#include "decomp.h"
#include "lego/sources/misc/legostorage.h"
#include "mxcore.h"
// VTABLE: LEGO1 0x100d6f50
@@ -25,6 +26,8 @@ public:
void FUN_1002fa00();
void FUN_1002fb30();
MxResult Save(LegoStorage* p_storage);
MxResult Load(LegoStorage* p_storage);
void FUN_10030590();
// SYNTHETIC: LEGO1 0x1002f940

View File

@@ -120,8 +120,9 @@ public:
LegoGameState();
~LegoGameState();
MxResult Load(MxULong);
MxResult Save(MxULong);
MxResult DeleteState();
MxResult Load(MxULong);
void SerializePlayersInfo(MxS16);
void SerializeScoreHistory(MxS16 p_flags);
void SetSavePath(char*);
@@ -152,7 +153,7 @@ public:
void SetCurrentAct(Act p_currentAct);
void FindLoadedAct();
void SetActor(MxU8 p_actorId);
void FUN_10039940();
void ResetROI();
private:
void RegisterState(LegoState* p_state);

View File

@@ -2,6 +2,7 @@
#define LEGOPLANTMANAGER_H
#include "decomp.h"
#include "lego/sources/misc/legostorage.h"
#include "mxcore.h"
// VTABLE: LEGO1 0x100d6758
@@ -22,6 +23,8 @@ public:
void FUN_10026360(MxS32 p_scriptIndex);
void FUN_100263a0(undefined4 p_und);
void Save(LegoStorage* p_storage);
MxResult Load(LegoStorage* p_storage);
void FUN_10027120();
static void SetCustomizeAnimFile(const char* p_value);

View File

@@ -56,6 +56,7 @@ public:
LegoUnkSaveDataWriter();
MxResult WriteSaveData3(LegoStorage* p_storage);
MxResult ReadSaveData3(LegoStorage* p_storage);
LegoROI* FUN_10083500(const char*, MxBool);
static void InitSaveData();

View File

@@ -41,6 +41,7 @@ void FUN_1003ef00(MxBool);
void SetAppCursor(WPARAM p_wparam);
MxBool FUN_1003ef60();
MxBool RemoveFromWorld(MxAtomId& p_atomId1, MxS32 p_id1, MxAtomId& p_atomId2, MxS32 p_id2);
void SetLightPosition(MxU32);
NamedTexture* ReadNamedTexture(LegoFile* p_file);
void FUN_1003f540(LegoFile* p_file, const char* p_filename);
void WriteNamedTexture(LegoFile* p_file, NamedTexture* p_texture);