From 92c19007b88d2182417d65351560e04daa940fb6 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Sat, 3 Feb 2024 00:51:52 +0100 Subject: [PATCH] Apply suggestions --- LEGO1/lego/legoomni/include/act1state.h | 35 ++++++++--------- LEGO1/lego/legoomni/include/legoutil.h | 21 +++++++++++ LEGO1/lego/legoomni/src/act1/act1state.cpp | 42 --------------------- LEGO1/lego/legoomni/src/common/legoutil.cpp | 20 ++++++++++ 4 files changed, 59 insertions(+), 59 deletions(-) diff --git a/LEGO1/lego/legoomni/include/act1state.h b/LEGO1/lego/legoomni/include/act1state.h index b0878998..f595f7bf 100644 --- a/LEGO1/lego/legoomni/include/act1state.h +++ b/LEGO1/lego/legoomni/include/act1state.h @@ -2,11 +2,9 @@ #define ACT1STATE_H #include "legostate.h" -#include "misc/legotexture.h" +#include "legoutil.h" #include "roi/legoroi.h" -class LegoTexture; - // VTABLE: LEGO1 0x100d7028 // SIZE 0x26c class Act1State : public LegoState { @@ -56,7 +54,23 @@ class Act1State : public LegoState { inline void SetName(const char* p_name) { m_name = p_name; } inline const MxString* GetName() const { return &m_name; } - MxS32 Serialize(LegoFile* p_file); + // FUNCTION: LEGO1 0x100344d0 + MxS32 Serialize(LegoFile* p_file) + { + if (p_file->IsWriteMode()) { + p_file->FUN_10006030(m_name); + p_file->WriteVector3(m_point1); + p_file->WriteVector3(m_point2); + p_file->WriteVector3(m_point3); + } + else if (p_file->IsReadMode()) { + p_file->ReadString(&m_name); + p_file->ReadVector3(&m_point1); + p_file->ReadVector3(&m_point2); + p_file->ReadVector3(&m_point3); + } + return 0; + } private: MxString m_name; // 0x00 @@ -65,19 +79,6 @@ class Act1State : public LegoState { Mx3DPointFloat m_point3; // 0x38 }; - // SIZE 0x14 - class NamedTexture { - public: - ~NamedTexture() { delete m_texture; } - // FUNCTION: LEGO1 0x1003f920 - const MxString* GetName() const { return &m_name; } - LegoTexture* GetTexture() { return m_texture; } - - private: - MxString m_name; // 0x00 - LegoTexture* m_texture; // 0x4 - }; - protected: MxS32* m_unk0x008; // 0x008 // FIXME: count for m_unk0x008 diff --git a/LEGO1/lego/legoomni/include/legoutil.h b/LEGO1/lego/legoomni/include/legoutil.h index 922a2c60..06910148 100644 --- a/LEGO1/lego/legoomni/include/legoutil.h +++ b/LEGO1/lego/legoomni/include/legoutil.h @@ -2,6 +2,9 @@ #define LEGOUTIL_H #include "extra.h" +#include "misc/legostorage.h" +#include "misc/legotexture.h" +#include "mxstring.h" #include "mxtypes.h" #include "mxutil.h" @@ -11,6 +14,21 @@ class MxAtomId; class LegoEntity; class LegoAnimPresenter; +class LegoTexture; + +// SIZE 0x14 +class NamedTexture { +public: + ~NamedTexture() { delete m_texture; } + // FUNCTION: LEGO1 0x1003f920 + const MxString* GetName() const { return &m_name; } + LegoTexture* GetTexture() { return m_texture; } + +private: + MxString m_name; // 0x00 + LegoTexture* m_texture; // 0x4 +}; + void FUN_1003e050(LegoAnimPresenter* p_presenter); Extra::ActionType MatchActionString(const char*); void InvokeAction(Extra::ActionType p_actionId, MxAtomId& p_pAtom, int p_targetEntityId, LegoEntity* p_sender); @@ -20,5 +38,8 @@ 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); +NamedTexture* ReadNamedTexture(LegoFile* p_file); +void FUN_1003f540(LegoFile* p_file, const char* p_filename); +void WriteNamedTexture(LegoFile* p_file, NamedTexture* p_texture); #endif // LEGOUTIL_H diff --git a/LEGO1/lego/legoomni/src/act1/act1state.cpp b/LEGO1/lego/legoomni/src/act1/act1state.cpp index 1ed10df9..e8889609 100644 --- a/LEGO1/lego/legoomni/src/act1/act1state.cpp +++ b/LEGO1/lego/legoomni/src/act1/act1state.cpp @@ -2,12 +2,6 @@ DECOMP_SIZE_ASSERT(Act1State, 0x26c) DECOMP_SIZE_ASSERT(Act1State::NamedPlane, 0x4c) -DECOMP_SIZE_ASSERT(Act1State::NamedTexture, 0x14) - -// Forward declarations -Act1State::NamedTexture* ReadNamedTexture(LegoFile* p_file); -void WriteNamedTexture(LegoFile* p_file, Act1State::NamedTexture* p_texture); -void FUN_1003f540(LegoFile* p_file, const char* p_filename); // GLOBAL: ISLE 0x100f37f0 MxS32 g_unk0x100f37f0[] = { @@ -178,24 +172,6 @@ MxResult Act1State::VTable0x1c(LegoFile* p_legoFile) return SUCCESS; } -// FUNCTION: LEGO1 0x100344d0 -MxS32 Act1State::NamedPlane::Serialize(LegoFile* p_file) -{ - if (p_file->IsWriteMode()) { - p_file->FUN_10006030(m_name); - p_file->WriteVector3(m_point1); - p_file->WriteVector3(m_point2); - p_file->WriteVector3(m_point3); - } - else if (p_file->IsReadMode()) { - p_file->ReadString(&m_name); - p_file->ReadVector3(&m_point1); - p_file->ReadVector3(&m_point2); - p_file->ReadVector3(&m_point3); - } - return 0; -} - // FUNCTION: LEGO1 0x100346d0 MxBool Act1State::SetFlag() { @@ -267,21 +243,3 @@ void Act1State::FUN_10034d00() { // TODO } - -// STUB: LEGO1 0x1003f3b0 -Act1State::NamedTexture* ReadNamedTexture(LegoFile* p_file) -{ - return NULL; -} - -// STUB: LEGO1 0x1003f540 -void FUN_1003f540(LegoFile* p_file, const char* p_filename) -{ -} - -// FUNCTION: LEGO1 0x1003f8a0 -void WriteNamedTexture(LegoFile* p_file, Act1State::NamedTexture* p_texture) -{ - p_file->FUN_10006030(*p_texture->GetName()); - p_texture->GetTexture()->Write(p_file); -} diff --git a/LEGO1/lego/legoomni/src/common/legoutil.cpp b/LEGO1/lego/legoomni/src/common/legoutil.cpp index 51cf4342..c6d0c22e 100644 --- a/LEGO1/lego/legoomni/src/common/legoutil.cpp +++ b/LEGO1/lego/legoomni/src/common/legoutil.cpp @@ -10,6 +10,8 @@ #include #include +DECOMP_SIZE_ASSERT(NamedTexture, 0x14) + // STUB: LEGO1 0x1003e050 void FUN_1003e050(LegoAnimPresenter* p_presenter) { @@ -253,3 +255,21 @@ MxBool FUN_1003ef60() { return TRUE; } + +// STUB: LEGO1 0x1003f3b0 +NamedTexture* ReadNamedTexture(LegoFile* p_file) +{ + return NULL; +} + +// STUB: LEGO1 0x1003f540 +void FUN_1003f540(LegoFile* p_file, const char* p_filename) +{ +} + +// FUNCTION: LEGO1 0x1003f8a0 +void WriteNamedTexture(LegoFile* p_file, NamedTexture* p_texture) +{ + p_file->FUN_10006030(*p_texture->GetName()); + p_texture->GetTexture()->Write(p_file); +}