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

@@ -3,6 +3,8 @@
#include "legostate.h"
#include "decomp.h"
// VTABLE 0x100d93a8
// SIZE 0x94
class InfocenterState : public LegoState
@@ -23,6 +25,40 @@ public:
{
return !strcmp(name, InfocenterState::ClassName()) || LegoState::IsA(name);
}
inline MxU32 GetInfocenterBufferElement(MxS32 p_index) { return m_buffer[p_index]; }
private:
// Members should be renamed with their offsets before use
/*
struct SomeStruct
{
undefined4 unk1;
undefined2 unk2;
undefined2 unk3;
undefined2 unk4;
};
undefined2 unk1;
undefined2 unk2;
undefined4 unk3;
undefined4 padding1;
void *unk4;
undefined2 unk5;
undefined2 unk6;
undefined2 unk7;
undefined2 padding2;
void *unk8;
undefined2 unk9;
undefined2 unk10;
undefined2 unk11;
undefined2 padding3;
SomeStruct unk12[6];
undefined4 unk13;
*/
undefined pad[0x70];
MxU32 m_buffer[7]; // 0x78
};
#endif // INFOCENTERSTATE_H