Add LegoOmni::World enum (#1252)

This commit is contained in:
Christian Semmler
2024-12-21 10:08:55 -07:00
committed by GitHub
parent 3e427ab03e
commit bcc41256f8
10 changed files with 93 additions and 70 deletions

View File

@@ -3,6 +3,7 @@
#include "decomp.h"
#include "legolocations.h"
#include "legomain.h"
#include "legostate.h"
#include "legotraninfolist.h"
#include "mxcore.h"
@@ -151,7 +152,7 @@ public:
void Resume();
void FUN_1005f6d0(MxBool p_unk0x400);
void EnableCamAnims(MxBool p_enableCamAnims);
MxResult LoadWorldInfo(MxS32 p_worldId);
MxResult LoadWorldInfo(LegoOmni::World p_worldId);
MxBool FindVehicle(const char* p_name, MxU32& p_index);
MxResult ReadAnimInfo(LegoFile* p_file, AnimInfo* p_info);
MxResult ReadModelInfo(LegoFile* p_file, ModelInfo* p_info);
@@ -247,7 +248,7 @@ private:
void FUN_100648f0(LegoTranInfo* p_tranInfo, MxLong p_unk0x404);
void FUN_10064b50(MxLong p_time);
MxS32 m_worldId; // 0x08
LegoOmni::World m_worldId; // 0x08
MxU16 m_animCount; // 0x0c
MxU16 m_unk0x0e; // 0x0e
MxU16 m_unk0x10; // 0x10

View File

@@ -37,16 +37,39 @@ public:
c_clearScreen = 0x04
};
enum World {
e_undefined = -1,
e_act1 = 0,
e_imain,
e_icube,
e_ireg,
e_ielev,
e_iisle,
e_hosp,
e_police,
e_gmain,
e_bldh,
e_bldd,
e_bldj,
e_bldr,
e_racc,
e_racj,
e_act2,
e_act3,
e_test,
e_numWorlds = e_test + 2 // count e_undefined
};
// SIZE 0x1c
struct WorldContainer {
// FUNCTION: LEGO1 0x1005ac40
WorldContainer()
{
m_id = -1;
m_id = e_undefined;
m_atomId = NULL;
}
WorldContainer(MxS32 p_id, const char* p_key, MxAtomId* p_atomId)
WorldContainer(World p_id, const char* p_key, MxAtomId* p_atomId)
{
m_id = p_id;
@@ -66,10 +89,10 @@ public:
return *this;
}
MxS32 GetId() { return m_id; }
World GetId() { return m_id; }
const char* GetKey() { return m_key; }
MxS32 m_id; // 0x00
World m_id; // 0x00
char m_key[20]; // 0x04
MxAtomId* m_atomId; // 0x18
};
@@ -111,9 +134,9 @@ public:
void CreateBackgroundAudio();
void RemoveWorld(const MxAtomId& p_atom, MxLong p_objectId);
MxResult RegisterWorlds();
const char* GetWorldName(MxU32 p_id);
MxAtomId* GetWorldAtom(MxU32 p_id);
MxS32 GetWorldId(const char* p_key);
const char* GetWorldName(LegoOmni::World p_id);
MxAtomId* GetWorldAtom(LegoOmni::World p_id);
World GetWorldId(const char* p_key);
void DeleteAction();
static MxS32 GetCurrPathInfo(LegoPathBoundary**, MxS32&);

View File

@@ -2,6 +2,7 @@
#define LEGOPLANTMANAGER_H
#include "decomp.h"
#include "legomain.h"
#include "mxcore.h"
class LegoEntity;
@@ -35,8 +36,8 @@ public:
}
void Init();
void LoadWorldInfo(MxS32 p_worldId);
void Reset(MxS32 p_worldId);
void LoadWorldInfo(LegoOmni::World p_worldId);
void Reset(LegoOmni::World p_worldId);
MxResult Write(LegoStorage* p_storage);
MxResult Read(LegoStorage* p_storage);
MxBool SwitchColor(LegoEntity* p_entity);
@@ -60,8 +61,8 @@ public:
// LegoPlantManager::`scalar deleting destructor'
private:
LegoEntity* CreatePlant(MxS32 p_index, LegoWorld* p_world, MxS32 p_worldId);
void RemovePlant(MxS32 p_index, MxS32 p_worldId);
LegoEntity* CreatePlant(MxS32 p_index, LegoWorld* p_world, LegoOmni::World p_worldId);
void RemovePlant(MxS32 p_index, LegoOmni::World p_worldId);
void FUN_10026860(MxS32 p_index);
LegoPlantInfo* GetInfo(LegoEntity* p_entity);
MxBool FUN_10026c80(MxS32 p_index);
@@ -71,11 +72,11 @@ private:
static MxS32 g_maxMove[4];
static MxU32 g_maxSound;
MxS32 m_worldId; // 0x08
undefined m_unk0x0c; // 0x0c
AnimEntry* m_entries[5]; // 0x10
MxS8 m_numEntries; // 0x24
LegoWorld* m_world; // 0x28
LegoOmni::World m_worldId; // 0x08
undefined m_unk0x0c; // 0x0c
AnimEntry* m_entries[5]; // 0x10
MxS8 m_numEntries; // 0x24
LegoWorld* m_world; // 0x28
};
#endif // LEGOPLANTMANAGER_H

View File

@@ -2,6 +2,7 @@
#define LEGOWORLD_H
#include "legoentity.h"
#include "legomain.h"
#include "legopathcontrollerlist.h"
#include "mxpresenterlist.h"
#include "roi/legoroi.h"
@@ -104,12 +105,12 @@ public:
LegoCameraController* GetCamera() { return m_cameraController; }
LegoEntityList* GetEntityList() { return m_entityList; }
MxS32 GetWorldId() { return m_worldId; }
LegoOmni::World GetWorldId() { return m_worldId; }
MxBool GetUnknown0xd0Empty() { return m_set0xd0.empty(); }
list<LegoROI*>& GetROIList() { return m_roiList; }
LegoHideAnimPresenter* GetHideAnimPresenter() { return m_hideAnim; }
void SetWorldId(MxS32 p_worldId) { m_worldId = p_worldId; }
void SetWorldId(LegoOmni::World p_worldId) { m_worldId = p_worldId; }
// SYNTHETIC: LEGO1 0x1001dee0
// LegoWorld::`scalar deleting destructor'
@@ -125,7 +126,7 @@ protected:
MxPresenterList m_controlPresenters; // 0xb8
MxCoreSet m_set0xd0; // 0xd0
list<LegoROI*> m_roiList; // 0xe0
MxS32 m_worldId; // 0xec
LegoOmni::World m_worldId; // 0xec
// name verified by BETA10 0x100c7f59
LegoHideAnimPresenter* m_hideAnim; // 0xf0