diff --git a/CMakeLists.txt b/CMakeLists.txt index b2c4e90d..359cdff3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,8 +211,7 @@ add_library(omni STATIC LEGO1/omni/src/audio/mxsoundmanager.cpp LEGO1/omni/src/audio/mxsoundpresenter.cpp LEGO1/omni/src/audio/mxwavepresenter.cpp - LEGO1/omni/src/common/mxatomidcounter.cpp - LEGO1/omni/src/common/mxatomid.cpp + LEGO1/omni/src/common/mxatom.cpp LEGO1/omni/src/common/mxcompositepresenter.cpp LEGO1/omni/src/common/mxcore.cpp LEGO1/omni/src/common/mxmediamanager.cpp diff --git a/LEGO1/omni/include/mxatomidcounter.h b/LEGO1/omni/include/mxatom.h similarity index 82% rename from LEGO1/omni/include/mxatomidcounter.h rename to LEGO1/omni/include/mxatom.h index 4d8bfe38..4f00b23f 100644 --- a/LEGO1/omni/include/mxatomidcounter.h +++ b/LEGO1/omni/include/mxatom.h @@ -1,8 +1,9 @@ -#ifndef MXATOMIDCOUNTER_H -#define MXATOMIDCOUNTER_H +#ifndef MXATOM_H +#define MXATOM_H #include "mxstl/stlcompat.h" #include "mxstring.h" +#include "mxtypes.h" // Counts the number of existing MxAtomId objects based // on the matching char* string. A seems fit for purpose here: @@ -43,6 +44,36 @@ struct MxAtomIdCounterCompare { class MxAtomIdCounterSet : public set {}; +enum LookupMode { + e_exact = 0, + e_lowerCase, + e_upperCase, + e_lowerCase2, +}; + +// SIZE 0x04 +class MxAtomId { +public: + MxAtomId(const char*, LookupMode); + MxAtomId& operator=(const MxAtomId& p_atomId); + ~MxAtomId(); + + MxAtomId() { this->m_internal = 0; } + + inline MxBool operator==(const MxAtomId& p_atomId) const { return this->m_internal == p_atomId.m_internal; } + inline MxBool operator!=(const MxAtomId& p_atomId) const { return this->m_internal != p_atomId.m_internal; } + + void Clear(); + + const char* GetInternal() const { return m_internal; } + +private: + MxAtomIdCounter* GetCounter(const char*, LookupMode); + void Destroy(); + + const char* m_internal; // 0x00 +}; + // SYNTHETIC: LEGO1 0x100ad170 // MxAtomIdCounter::~MxAtomIdCounter @@ -89,4 +120,4 @@ class MxAtomIdCounterSet : public set // TEMPLATE: LEGO1 0x100afe40 // Set::~Set -#endif // MXATOMIDCOUNTER_H +#endif // MXATOM_H diff --git a/LEGO1/omni/include/mxatomid.h b/LEGO1/omni/include/mxatomid.h deleted file mode 100644 index 337f0b76..00000000 --- a/LEGO1/omni/include/mxatomid.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef MXATOMID_H -#define MXATOMID_H - -#include "mxatomidcounter.h" -#include "mxtypes.h" - -enum LookupMode { - e_exact = 0, - e_lowerCase, - e_upperCase, - e_lowerCase2, -}; - -// SIZE 0x04 -class MxAtomId { -public: - MxAtomId(const char*, LookupMode); - MxAtomId& operator=(const MxAtomId& p_atomId); - ~MxAtomId(); - - MxAtomId() { this->m_internal = 0; } - - inline MxBool operator==(const MxAtomId& p_atomId) const { return this->m_internal == p_atomId.m_internal; } - inline MxBool operator!=(const MxAtomId& p_atomId) const { return this->m_internal != p_atomId.m_internal; } - - void Clear(); - - const char* GetInternal() const { return m_internal; } - -private: - MxAtomIdCounter* GetCounter(const char*, LookupMode); - void Destroy(); - - const char* m_internal; // 0x00 -}; - -#endif // MXATOMID_H diff --git a/LEGO1/omni/include/mxdsobject.h b/LEGO1/omni/include/mxdsobject.h index c7156004..48702793 100644 --- a/LEGO1/omni/include/mxdsobject.h +++ b/LEGO1/omni/include/mxdsobject.h @@ -2,7 +2,7 @@ #define MXDSOBJECT_H #include "decomp.h" -#include "mxatomid.h" +#include "mxatom.h" #include "mxcore.h" class MxPresenter; diff --git a/LEGO1/omni/include/mxentity.h b/LEGO1/omni/include/mxentity.h index 217fa397..715b8b10 100644 --- a/LEGO1/omni/include/mxentity.h +++ b/LEGO1/omni/include/mxentity.h @@ -2,7 +2,7 @@ #define MXENTITY_H #include "decomp.h" -#include "mxatomid.h" +#include "mxatom.h" #include "mxcore.h" #include "mxdsaction.h" #include "mxtypes.h" diff --git a/LEGO1/omni/include/mxobjectfactory.h b/LEGO1/omni/include/mxobjectfactory.h index 28301715..882ddc55 100644 --- a/LEGO1/omni/include/mxobjectfactory.h +++ b/LEGO1/omni/include/mxobjectfactory.h @@ -1,7 +1,7 @@ #ifndef MXOBJECTFACTORY_H #define MXOBJECTFACTORY_H -#include "mxatomid.h" +#include "mxatom.h" #include "mxcore.h" #define FOR_MXOBJECTFACTORY_OBJECTS(X) \ diff --git a/LEGO1/omni/include/mxsoundmanager.h b/LEGO1/omni/include/mxsoundmanager.h index 6dde7d5c..24e7111a 100644 --- a/LEGO1/omni/include/mxsoundmanager.h +++ b/LEGO1/omni/include/mxsoundmanager.h @@ -2,7 +2,7 @@ #define MXSOUNDMANAGER_H #include "decomp.h" -#include "mxatomid.h" +#include "mxatom.h" #include "mxaudiomanager.h" #include diff --git a/LEGO1/omni/include/mxstreamcontroller.h b/LEGO1/omni/include/mxstreamcontroller.h index f4bd328f..b623d28f 100644 --- a/LEGO1/omni/include/mxstreamcontroller.h +++ b/LEGO1/omni/include/mxstreamcontroller.h @@ -2,7 +2,7 @@ #define MXSTREAMCONTROLLER_H #include "decomp.h" -#include "mxatomid.h" +#include "mxatom.h" #include "mxcore.h" #include "mxcriticalsection.h" #include "mxdsaction.h" diff --git a/LEGO1/omni/src/common/mxatomid.cpp b/LEGO1/omni/src/common/mxatom.cpp similarity index 86% rename from LEGO1/omni/src/common/mxatomid.cpp rename to LEGO1/omni/src/common/mxatom.cpp index 5701d100..217ab3d4 100644 --- a/LEGO1/omni/src/common/mxatomid.cpp +++ b/LEGO1/omni/src/common/mxatom.cpp @@ -1,8 +1,13 @@ -#include "mxatomid.h" +#include "mxatom.h" +#include "decomp.h" #include "mxmisc.h" #include "mxomni.h" +DECOMP_SIZE_ASSERT(MxAtomId, 0x04); +DECOMP_SIZE_ASSERT(MxAtomIdCounter, 0x14); +DECOMP_SIZE_ASSERT(MxAtomIdCounterSet, 0x10); + // FUNCTION: LEGO1 0x100acf90 MxAtomId::MxAtomId(const char* p_str, LookupMode p_mode) { @@ -108,3 +113,17 @@ void MxAtomId::Clear() Destroy(); m_internal = NULL; } + +// FUNCTION: LEGO1 0x100ad7f0 +void MxAtomIdCounter::Inc() +{ + m_value++; +} + +// FUNCTION: LEGO1 0x100ad800 +void MxAtomIdCounter::Dec() +{ + if (m_value) { + m_value--; + } +} diff --git a/LEGO1/omni/src/common/mxatomidcounter.cpp b/LEGO1/omni/src/common/mxatomidcounter.cpp deleted file mode 100644 index cfec47b1..00000000 --- a/LEGO1/omni/src/common/mxatomidcounter.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "mxatomidcounter.h" - -#include "decomp.h" - -DECOMP_SIZE_ASSERT(MxAtomIdCounter, 0x14); -DECOMP_SIZE_ASSERT(MxAtomIdCounterSet, 0x10); - -// FUNCTION: LEGO1 0x100ad7f0 -void MxAtomIdCounter::Inc() -{ - m_value++; -} - -// FUNCTION: LEGO1 0x100ad800 -void MxAtomIdCounter::Dec() -{ - if (m_value) { - m_value--; - } -} diff --git a/LEGO1/omni/src/main/mxomni.cpp b/LEGO1/omni/src/main/mxomni.cpp index f9bf36dc..b85efed6 100644 --- a/LEGO1/omni/src/main/mxomni.cpp +++ b/LEGO1/omni/src/main/mxomni.cpp @@ -1,7 +1,7 @@ #include "mxomni.h" #include "mxactionnotificationparam.h" -#include "mxatomidcounter.h" +#include "mxatom.h" #include "mxautolocker.h" #include "mxdsmultiaction.h" #include "mxeventmanager.h"