mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
CustomizeAnimFile MxVariable (#584)
* CustomizeAnimFile MxVariable * Fixes * Remove returns * Add size asserts --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
@@ -21,6 +21,7 @@ public:
|
||||
}
|
||||
|
||||
static void configureLegoBuildingManager(MxS32);
|
||||
static void SetCustomizeAnimFile(const char* p_value);
|
||||
|
||||
void FUN_1002fa00();
|
||||
void FUN_1002fb30();
|
||||
@@ -30,6 +31,8 @@ public:
|
||||
// LegoBuildingManager::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
static char* g_customizeAnimFile;
|
||||
|
||||
void Init();
|
||||
|
||||
undefined m_unk0x08[0x28]; // 0x08
|
||||
|
@@ -24,10 +24,14 @@ public:
|
||||
void FUN_100263a0(undefined4 p_und);
|
||||
void FUN_10027120();
|
||||
|
||||
static void SetCustomizeAnimFile(const char* p_value);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100262a0
|
||||
// LegoPlantManager::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
static char* g_customizeAnimFile;
|
||||
|
||||
void Init();
|
||||
|
||||
undefined m_unk0x08[0x24]; // 0x08
|
||||
|
@@ -3,10 +3,28 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "legovariables.h"
|
||||
#include "mxstl/stlcompat.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class LegoROI;
|
||||
|
||||
#pragma warning(disable : 4237)
|
||||
|
||||
// TODO: generic string comparator?
|
||||
struct LegoUnkSaveDataMapComparator {
|
||||
bool operator()(const char* const& p_a, const char* const& p_b) const { return strcmpi(p_a, p_b) > 0; }
|
||||
};
|
||||
|
||||
// TODO: pair instead?
|
||||
// SIZE 0x08
|
||||
struct LegoUnkSaveDataMapValue {
|
||||
LegoROI* m_roi; // 0x00
|
||||
MxU32 m_counter; // 0x04
|
||||
};
|
||||
|
||||
typedef map<char*, LegoUnkSaveDataMapValue*, LegoUnkSaveDataMapComparator> LegoUnkSaveDataMap;
|
||||
|
||||
struct LegoSaveDataEntry3 {
|
||||
char* m_name;
|
||||
void* m_unk0x04;
|
||||
@@ -38,13 +56,42 @@ public:
|
||||
LegoUnkSaveDataWriter();
|
||||
|
||||
MxResult WriteSaveData3(LegoStorage* p_stream);
|
||||
LegoROI* FUN_10083500(char*, undefined4);
|
||||
LegoROI* FUN_10083500(char*, MxBool);
|
||||
|
||||
static void InitSaveData();
|
||||
static void SetCustomizeAnimFile(const char* p_value);
|
||||
|
||||
void FUN_100832a0();
|
||||
void FUN_10083db0(LegoROI* p_roi);
|
||||
void FUN_10083f10(LegoROI* p_roi);
|
||||
|
||||
private:
|
||||
undefined m_unk0x00[0x08]; // 0x00
|
||||
static char* g_customizeAnimFile;
|
||||
|
||||
LegoUnkSaveDataMap* m_map; // 0x00
|
||||
CustomizeAnimFileVariable* m_customizeAnimFile; // 0x04
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
|
||||
// FUNCTION: LEGO1 0x10082b90
|
||||
// _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::~_Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >
|
||||
|
||||
// FUNCTION: LEGO1 0x10082c60
|
||||
// _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::iterator::_Inc
|
||||
|
||||
// FUNCTION: LEGO1 0x10082ca0
|
||||
// _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::erase
|
||||
|
||||
// FUNCTION: LEGO1 0x100830f0
|
||||
// _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Erase
|
||||
|
||||
// FUNCTION: LEGO1 0x10083130
|
||||
// map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::~map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >
|
||||
|
||||
// GLOBAL: LEGO1 0x100fc508
|
||||
// _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Nil
|
||||
|
||||
// clang-format on
|
||||
|
||||
#endif // LEGOUNKSAVEDATAWRITER_H
|
||||
|
@@ -44,4 +44,13 @@ public:
|
||||
void SetValue(const char* p_value) override; // vtable+0x04
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100da878
|
||||
// SIZE 0x24
|
||||
class CustomizeAnimFileVariable : public MxVariable {
|
||||
public:
|
||||
CustomizeAnimFileVariable(const char* p_key);
|
||||
|
||||
void SetValue(const char* p_value) override; // vtable+0x04
|
||||
};
|
||||
|
||||
#endif // LEGOVARIABLES_H
|
||||
|
Reference in New Issue
Block a user