Refactor files based on beta debug build (#645)

* Rename LegoUnkSaveDataWriter -> LegoCharacterManager

* Refactor mxomni into mxomni/mxmisc

* Refactor legoomni into legoomni/misc

* Resolve deps

* Refactor atom

* Refactor mxutil

* Refactor mxio

* Rename/relocate files

* Fix format
This commit is contained in:
Christian Semmler 2024-03-09 15:07:52 -05:00 committed by GitHub
parent c62469fef4
commit 8069923651
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
150 changed files with 734 additions and 609 deletions

View file

@ -211,18 +211,18 @@ add_library(omni STATIC
LEGO1/omni/src/audio/mxsoundmanager.cpp LEGO1/omni/src/audio/mxsoundmanager.cpp
LEGO1/omni/src/audio/mxsoundpresenter.cpp LEGO1/omni/src/audio/mxsoundpresenter.cpp
LEGO1/omni/src/audio/mxwavepresenter.cpp LEGO1/omni/src/audio/mxwavepresenter.cpp
LEGO1/omni/src/common/mxatomidcounter.cpp LEGO1/omni/src/common/mxatom.cpp
LEGO1/omni/src/common/mxatomid.cpp
LEGO1/omni/src/common/mxcompositepresenter.cpp LEGO1/omni/src/common/mxcompositepresenter.cpp
LEGO1/omni/src/common/mxcore.cpp LEGO1/omni/src/common/mxcore.cpp
LEGO1/omni/src/common/mxmediamanager.cpp LEGO1/omni/src/common/mxmediamanager.cpp
LEGO1/omni/src/common/mxmediapresenter.cpp LEGO1/omni/src/common/mxmediapresenter.cpp
LEGO1/omni/src/common/mxmisc.cpp
LEGO1/omni/src/common/mxobjectfactory.cpp LEGO1/omni/src/common/mxobjectfactory.cpp
LEGO1/omni/src/common/mxpresenter.cpp LEGO1/omni/src/common/mxpresenter.cpp
LEGO1/omni/src/common/mxstring.cpp LEGO1/omni/src/common/mxstring.cpp
LEGO1/omni/src/common/mxticklemanager.cpp LEGO1/omni/src/common/mxticklemanager.cpp
LEGO1/omni/src/common/mxtimer.cpp LEGO1/omni/src/common/mxtimer.cpp
LEGO1/omni/src/common/mxutil.cpp LEGO1/omni/src/common/mxutilities.cpp
LEGO1/omni/src/common/mxvariable.cpp LEGO1/omni/src/common/mxvariable.cpp
LEGO1/omni/src/common/mxvariabletable.cpp LEGO1/omni/src/common/mxvariabletable.cpp
LEGO1/omni/src/entity/mxentity.cpp LEGO1/omni/src/entity/mxentity.cpp
@ -241,7 +241,7 @@ add_library(omni STATIC
LEGO1/omni/src/stream/mxdsfile.cpp LEGO1/omni/src/stream/mxdsfile.cpp
LEGO1/omni/src/stream/mxdssource.cpp LEGO1/omni/src/stream/mxdssource.cpp
LEGO1/omni/src/stream/mxdssubscriber.cpp LEGO1/omni/src/stream/mxdssubscriber.cpp
LEGO1/omni/src/stream/mxioinfo.cpp LEGO1/omni/src/stream/mxio.cpp
LEGO1/omni/src/stream/mxramstreamcontroller.cpp LEGO1/omni/src/stream/mxramstreamcontroller.cpp
LEGO1/omni/src/stream/mxramstreamprovider.cpp LEGO1/omni/src/stream/mxramstreamprovider.cpp
LEGO1/omni/src/stream/mxstreamchunk.cpp LEGO1/omni/src/stream/mxstreamchunk.cpp
@ -279,47 +279,62 @@ target_link_libraries(omni PRIVATE dsound winmm Smacker::Smacker)
add_library(lego1 SHARED add_library(lego1 SHARED
LEGO1/define.cpp LEGO1/define.cpp
LEGO1/lego/legoomni/src/act1/act1state.cpp LEGO1/lego/legoomni/src/act1/act1state.cpp
LEGO1/lego/legoomni/src/act2/act2brick.cpp
LEGO1/lego/legoomni/src/act2/act2policestation.cpp
LEGO1/lego/legoomni/src/act2/legoact2.cpp
LEGO1/lego/legoomni/src/act2/legoact2state.cpp LEGO1/lego/legoomni/src/act2/legoact2state.cpp
LEGO1/lego/legoomni/src/act3/act3.cpp
LEGO1/lego/legoomni/src/act3/act3shark.cpp LEGO1/lego/legoomni/src/act3/act3shark.cpp
LEGO1/lego/legoomni/src/act3/act3state.cpp LEGO1/lego/legoomni/src/act3/act3state.cpp
LEGO1/lego/legoomni/src/actors/ambulance.cpp
LEGO1/lego/legoomni/src/actors/bike.cpp
LEGO1/lego/legoomni/src/actors/bumpbouy.cpp
LEGO1/lego/legoomni/src/actors/doors.cpp
LEGO1/lego/legoomni/src/actors/dunebuggy.cpp
LEGO1/lego/legoomni/src/actors/helicopter.cpp
LEGO1/lego/legoomni/src/actors/isleactor.cpp
LEGO1/lego/legoomni/src/actors/islepathactor.cpp
LEGO1/lego/legoomni/src/actors/jetski.cpp
LEGO1/lego/legoomni/src/actors/jukeboxentity.cpp
LEGO1/lego/legoomni/src/actors/motorcycle.cpp
LEGO1/lego/legoomni/src/actors/pizza.cpp
LEGO1/lego/legoomni/src/actors/pizzeria.cpp
LEGO1/lego/legoomni/src/actors/racecar.cpp
LEGO1/lego/legoomni/src/actors/radio.cpp
LEGO1/lego/legoomni/src/actors/skateboard.cpp
LEGO1/lego/legoomni/src/actors/towtrack.cpp
LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp LEGO1/lego/legoomni/src/audio/lego3dwavepresenter.cpp
LEGO1/lego/legoomni/src/audio/legocachesound.cpp LEGO1/lego/legoomni/src/audio/legocachsound.cpp
LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp
LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp
LEGO1/lego/legoomni/src/audio/legounknown100d5778.cpp LEGO1/lego/legoomni/src/audio/legounknown100d5778.cpp
LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp
LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp
LEGO1/lego/legoomni/src/build/buildingentity.cpp LEGO1/lego/legoomni/src/build/buildingentity.cpp
LEGO1/lego/legoomni/src/build/dunebuggy.cpp
LEGO1/lego/legoomni/src/build/helicopter.cpp
LEGO1/lego/legoomni/src/build/helicopterstate.cpp LEGO1/lego/legoomni/src/build/helicopterstate.cpp
LEGO1/lego/legoomni/src/build/jetski.cpp
LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp
LEGO1/lego/legoomni/src/build/legocarbuild.cpp LEGO1/lego/legoomni/src/build/legocarbuild.cpp
LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp
LEGO1/lego/legoomni/src/build/racecar.cpp
LEGO1/lego/legoomni/src/common/animstate.cpp LEGO1/lego/legoomni/src/common/animstate.cpp
LEGO1/lego/legoomni/src/common/legoactioncontrolpresenter.cpp LEGO1/lego/legoomni/src/common/legoactioncontrolpresenter.cpp
LEGO1/lego/legoomni/src/common/legoanimationmanager.cpp
LEGO1/lego/legoomni/src/common/legoanimmmpresenter.cpp
LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp
LEGO1/lego/legoomni/src/common/legocharactermanager.cpp
LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp
LEGO1/lego/legoomni/src/common/legogamestate.cpp LEGO1/lego/legoomni/src/common/legogamestate.cpp
LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp
LEGO1/lego/legoomni/src/common/legoplantmanager.cpp LEGO1/lego/legoomni/src/common/legoplantmanager.cpp
LEGO1/lego/legoomni/src/common/legostate.cpp LEGO1/lego/legoomni/src/common/legostate.cpp
LEGO1/lego/legoomni/src/common/legotextureinfo.cpp LEGO1/lego/legoomni/src/common/legotextureinfo.cpp
LEGO1/lego/legoomni/src/common/legounksavedatawriter.cpp LEGO1/lego/legoomni/src/common/legoutils.cpp
LEGO1/lego/legoomni/src/common/legoutil.cpp
LEGO1/lego/legoomni/src/common/legovariables.cpp LEGO1/lego/legoomni/src/common/legovariables.cpp
LEGO1/lego/legoomni/src/common/misc.cpp
LEGO1/lego/legoomni/src/common/mxcompositemediapresenter.cpp LEGO1/lego/legoomni/src/common/mxcompositemediapresenter.cpp
LEGO1/lego/legoomni/src/common/mxcontrolpresenter.cpp
LEGO1/lego/legoomni/src/common/mxtransitionmanager.cpp
LEGO1/lego/legoomni/src/control/legocontrolmanager.cpp LEGO1/lego/legoomni/src/control/legocontrolmanager.cpp
LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp LEGO1/lego/legoomni/src/control/legometerpresenter.cpp
LEGO1/lego/legoomni/src/entity/act2brick.cpp
LEGO1/lego/legoomni/src/entity/act2policestation.cpp
LEGO1/lego/legoomni/src/entity/legoactor.cpp LEGO1/lego/legoomni/src/entity/legoactor.cpp
LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp
LEGO1/lego/legoomni/src/entity/legoanimactor.cpp
LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp LEGO1/lego/legoomni/src/entity/legocameracontroller.cpp
LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp LEGO1/lego/legoomni/src/entity/legocarraceactor.cpp
LEGO1/lego/legoomni/src/entity/legoentity.cpp LEGO1/lego/legoomni/src/entity/legoentity.cpp
@ -327,79 +342,65 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/entity/legojetski.cpp LEGO1/lego/legoomni/src/entity/legojetski.cpp
LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp
LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp
LEGO1/lego/legoomni/src/entity/legopathactor.cpp
LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp LEGO1/lego/legoomni/src/entity/legopovcontroller.cpp
LEGO1/lego/legoomni/src/entity/legorace.cpp
LEGO1/lego/legoomni/src/entity/legoraceactor.cpp
LEGO1/lego/legoomni/src/entity/legoracecar.cpp
LEGO1/lego/legoomni/src/entity/legoworld.cpp LEGO1/lego/legoomni/src/entity/legoworld.cpp
LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp
LEGO1/lego/legoomni/src/gasstation/gasstation.cpp
LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp
LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp
LEGO1/lego/legoomni/src/hospital/ambulance.cpp
LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp
LEGO1/lego/legoomni/src/hospital/hospital.cpp
LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp
LEGO1/lego/legoomni/src/hospital/hospitalstate.cpp LEGO1/lego/legoomni/src/hospital/hospitalstate.cpp
LEGO1/lego/legoomni/src/infocenter/elevatorbottom.cpp
LEGO1/lego/legoomni/src/infocenter/infocenter.cpp
LEGO1/lego/legoomni/src/infocenter/infocenterdoor.cpp
LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp
LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp
LEGO1/lego/legoomni/src/infocenter/registrationbook.cpp
LEGO1/lego/legoomni/src/infocenter/score.cpp
LEGO1/lego/legoomni/src/infocenter/scorestate.cpp LEGO1/lego/legoomni/src/infocenter/scorestate.cpp
LEGO1/lego/legoomni/src/input/legoinputmanager.cpp LEGO1/lego/legoomni/src/input/legoinputmanager.cpp
LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp
LEGO1/lego/legoomni/src/isle/bike.cpp
LEGO1/lego/legoomni/src/isle/bumpbouy.cpp
LEGO1/lego/legoomni/src/isle/doors.cpp
LEGO1/lego/legoomni/src/isle/historybook.cpp
LEGO1/lego/legoomni/src/isle/isleactor.cpp
LEGO1/lego/legoomni/src/isle/isle.cpp
LEGO1/lego/legoomni/src/isle/islepathactor.cpp
LEGO1/lego/legoomni/src/isle/jukebox.cpp
LEGO1/lego/legoomni/src/isle/jukeboxentity.cpp
LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp
LEGO1/lego/legoomni/src/isle/motocycle.cpp
LEGO1/lego/legoomni/src/isle/radio.cpp
LEGO1/lego/legoomni/src/isle/radiostate.cpp LEGO1/lego/legoomni/src/isle/radiostate.cpp
LEGO1/lego/legoomni/src/isle/skateboard.cpp
LEGO1/lego/legoomni/src/main/legoomni.cpp LEGO1/lego/legoomni/src/main/legoomni.cpp
LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp
LEGO1/lego/legoomni/src/paths/legoanimactor.cpp
LEGO1/lego/legoomni/src/paths/legopathactor.cpp
LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp
LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp
LEGO1/lego/legoomni/src/pizzeria/pizza.cpp
LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp
LEGO1/lego/legoomni/src/pizzeria/pizzeria.cpp
LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp
LEGO1/lego/legoomni/src/police/police.cpp
LEGO1/lego/legoomni/src/police/policeentity.cpp LEGO1/lego/legoomni/src/police/policeentity.cpp
LEGO1/lego/legoomni/src/police/policestate.cpp LEGO1/lego/legoomni/src/police/policestate.cpp
LEGO1/lego/legoomni/src/race/carrace.cpp LEGO1/lego/legoomni/src/race/carrace.cpp
LEGO1/lego/legoomni/src/race/jetskirace.cpp LEGO1/lego/legoomni/src/race/jetskirace.cpp
LEGO1/lego/legoomni/src/race/legorace.cpp
LEGO1/lego/legoomni/src/race/legoraceactor.cpp
LEGO1/lego/legoomni/src/race/legoracecar.cpp
LEGO1/lego/legoomni/src/race/racestandsentity.cpp LEGO1/lego/legoomni/src/race/racestandsentity.cpp
LEGO1/lego/legoomni/src/race/racestate.cpp LEGO1/lego/legoomni/src/race/racestate.cpp
LEGO1/lego/legoomni/src/towtrack/towtrack.cpp
LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp
LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp
LEGO1/lego/legoomni/src/video/legoanimationmanager.cpp
LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp
LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp
LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp LEGO1/lego/legoomni/src/video/legocarbuildanimpresenter.cpp
LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp LEGO1/lego/legoomni/src/video/legoflctexturepresenter.cpp
LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp LEGO1/lego/legoomni/src/video/legohideanimpresenter.cpp
LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp
LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp LEGO1/lego/legoomni/src/video/legoloopinganimpresenter.cpp
LEGO1/lego/legoomni/src/video/legometerpresenter.cpp
LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp
LEGO1/lego/legoomni/src/video/legopalettepresenter.cpp LEGO1/lego/legoomni/src/video/legopalettepresenter.cpp
LEGO1/lego/legoomni/src/video/legopartpresenter.cpp LEGO1/lego/legoomni/src/video/legopartpresenter.cpp
LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp
LEGO1/lego/legoomni/src/video/legotexturepresenter.cpp LEGO1/lego/legoomni/src/video/legotexturepresenter.cpp
LEGO1/lego/legoomni/src/video/legovideomanager.cpp LEGO1/lego/legoomni/src/video/legovideomanager.cpp
LEGO1/lego/legoomni/src/video/mxtransitionmanager.cpp LEGO1/lego/legoomni/src/worlds/act3.cpp
LEGO1/lego/legoomni/src/worlds/elevatorbottom.cpp
LEGO1/lego/legoomni/src/worlds/gasstation.cpp
LEGO1/lego/legoomni/src/worlds/historybook.cpp
LEGO1/lego/legoomni/src/worlds/hospital.cpp
LEGO1/lego/legoomni/src/worlds/infocenter.cpp
LEGO1/lego/legoomni/src/worlds/infocenterdoor.cpp
LEGO1/lego/legoomni/src/worlds/isle.cpp
LEGO1/lego/legoomni/src/worlds/jukebox.cpp
LEGO1/lego/legoomni/src/worlds/legoact2.cpp
LEGO1/lego/legoomni/src/worlds/police.cpp
LEGO1/lego/legoomni/src/worlds/registrationbook.cpp
LEGO1/lego/legoomni/src/worlds/score.cpp
LEGO1/main.cpp LEGO1/main.cpp
LEGO1/modeldb/modeldb.cpp LEGO1/modeldb/modeldb.cpp
) )

View file

@ -10,8 +10,10 @@
#include "legopartpresenter.h" #include "legopartpresenter.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworldpresenter.h" #include "legoworldpresenter.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxdsaction.h" #include "mxdsaction.h"
#include "mxmisc.h"
#include "mxomnicreateflags.h" #include "mxomnicreateflags.h"
#include "mxomnicreateparam.h" #include "mxomnicreateparam.h"
#include "mxstreamer.h" #include "mxstreamer.h"

View file

@ -2,7 +2,7 @@
#define LEGOACTIONCONTROLPRESENTER_H #define LEGOACTIONCONTROLPRESENTER_H
#include "decomp.h" #include "decomp.h"
#include "legoutil.h" #include "legoutils.h"
#include "mxmediapresenter.h" #include "mxmediapresenter.h"
// VTABLE: LEGO1 0x100d5118 // VTABLE: LEGO1 0x100d5118

View file

@ -2,7 +2,7 @@
#define LEGOACTOR_H #define LEGOACTOR_H
#include "decomp.h" #include "decomp.h"
#include "legocachesound.h" #include "legocachsound.h"
#include "legoentity.h" #include "legoentity.h"
// VTABLE: LEGO1 0x100d6d68 // VTABLE: LEGO1 0x100d6d68

View file

@ -1,11 +1,10 @@
#ifndef LEGOCACHESOUNDLIST_H #ifndef LEGOCACHESOUNDLIST_H
#define LEGOCACHESOUNDLIST_H #define LEGOCACHESOUNDLIST_H
#include "legocachsound.h"
#include "mxlist.h" #include "mxlist.h"
#include "mxtypes.h" #include "mxtypes.h"
class LegoCacheSound;
// VTABLE: LEGO1 0x100d63b0 // VTABLE: LEGO1 0x100d63b0
// class MxCollection<LegoCacheSound *> // class MxCollection<LegoCacheSound *>

View file

@ -1,5 +1,5 @@
#ifndef LEGOCACHESOUND_H #ifndef LEGOCACHSOUND_H
#define LEGOCACHESOUND_H #define LEGOCACHSOUND_H
#include "decomp.h" #include "decomp.h"
#include "legounknown100d5778.h" #include "legounknown100d5778.h"
@ -60,4 +60,4 @@ class LegoCacheSound : public MxCore {
undefined m_unk0x84; // 0x84 undefined m_unk0x84; // 0x84
}; };
#endif // LEGOCACHESOUND_H #endif // LEGOCACHSOUND_H

View file

@ -1,5 +1,5 @@
#ifndef LEGOUNKSAVEDATAWRITER_H #ifndef LEGOCHARACTERMANAGER_H
#define LEGOUNKSAVEDATAWRITER_H #define LEGOCHARACTERMANAGER_H
#include "decomp.h" #include "decomp.h"
#include "legovariables.h" #include "legovariables.h"
@ -51,9 +51,9 @@ struct LegoSaveDataEntry3 {
}; };
// SIZE 0x08 // SIZE 0x08
class LegoUnkSaveDataWriter { class LegoCharacterManager {
public: public:
LegoUnkSaveDataWriter(); LegoCharacterManager();
MxResult WriteSaveData3(LegoStorage* p_storage); MxResult WriteSaveData3(LegoStorage* p_storage);
MxResult ReadSaveData3(LegoStorage* p_storage); MxResult ReadSaveData3(LegoStorage* p_storage);
@ -80,7 +80,6 @@ class LegoUnkSaveDataWriter {
}; };
// clang-format off // clang-format off
// FUNCTION: LEGO1 0x10082b90 // 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 *> > // _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 *> >
@ -98,7 +97,6 @@ class LegoUnkSaveDataWriter {
// GLOBAL: LEGO1 0x100fc508 // GLOBAL: LEGO1 0x100fc508
// _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Nil // _Tree<char *,pair<char * const,LegoUnkSaveDataMapValue *>,map<char *,LegoUnkSaveDataMapValue *,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Kfn,LegoUnkSaveDataMapComparator,allocator<LegoUnkSaveDataMapValue *> >::_Nil
// clang-format on // clang-format on
#endif // LEGOUNKSAVEDATAWRITER_H #endif // LEGOCHARACTERMANAGER_H

View file

@ -5,12 +5,11 @@
#include "mxdsaction.h" #include "mxdsaction.h"
#include "mxomni.h" #include "mxomni.h"
class LegoTextureContainer;
class Isle; class Isle;
class IslePathActor; class IslePathActor;
class LegoAnimationManager; class LegoAnimationManager;
class LegoBuildingManager; class LegoBuildingManager;
class LegoControlManager; class LegoCharacterManager;
class LegoEntity; class LegoEntity;
class LegoGameState; class LegoGameState;
class LegoInputManager; class LegoInputManager;
@ -19,16 +18,14 @@ class LegoPathBoundary;
class LegoPlantManager; class LegoPlantManager;
class LegoROI; class LegoROI;
class LegoSoundManager; class LegoSoundManager;
class LegoUnkSaveDataWriter; class LegoTextureContainer;
class LegoVideoManager; class LegoVideoManager;
class LegoWorld; class LegoWorld;
class LegoWorldList; class LegoWorldList;
class MxAtomId; class MxAtomId;
class MxBackgroundAudioManager; class MxBackgroundAudioManager;
class MxDSFile;
class MxTransitionManager; class MxTransitionManager;
class ViewLODListManager; class ViewLODListManager;
class ViewManager;
extern MxAtomId* g_copterScript; extern MxAtomId* g_copterScript;
extern MxAtomId* g_dunecarScript; extern MxAtomId* g_dunecarScript;
@ -224,7 +221,7 @@ class LegoOmni : public MxOmni {
MxBackgroundAudioManager* GetBackgroundAudioManager() { return m_bkgAudioManager; } MxBackgroundAudioManager* GetBackgroundAudioManager() { return m_bkgAudioManager; }
MxTransitionManager* GetTransitionManager() { return m_transitionManager; } MxTransitionManager* GetTransitionManager() { return m_transitionManager; }
MxDSAction& GetCurrentAction() { return m_action; } MxDSAction& GetCurrentAction() { return m_action; }
LegoUnkSaveDataWriter* GetUnkSaveDataWriter() { return m_saveDataWriter; } LegoCharacterManager* GetCharacterManager() { return m_characterManager; }
LegoWorldList* GetWorldList() { return m_worldList; } LegoWorldList* GetWorldList() { return m_worldList; }
inline void SetNavController(LegoNavController* p_navController) { m_navController = p_navController; } inline void SetNavController(LegoNavController* p_navController) { m_navController = p_navController; }
@ -247,7 +244,7 @@ class LegoOmni : public MxOmni {
MxBool m_exit; // 0x80 MxBool m_exit; // 0x80
LegoNavController* m_navController; // 0x84 LegoNavController* m_navController; // 0x84
IslePathActor* m_currentActor; // 0x88 IslePathActor* m_currentActor; // 0x88
LegoUnkSaveDataWriter* m_saveDataWriter; // 0x8c LegoCharacterManager* m_characterManager; // 0x8c
LegoPlantManager* m_plantManager; // 0x90 LegoPlantManager* m_plantManager; // 0x90
LegoAnimationManager* m_animationManager; // 0x94 LegoAnimationManager* m_animationManager; // 0x94
LegoBuildingManager* m_buildingManager; // 0x98 LegoBuildingManager* m_buildingManager; // 0x98
@ -258,39 +255,12 @@ class LegoOmni : public MxOmni {
MxBool m_unk0x13c; // 0x13c MxBool m_unk0x13c; // 0x13c
}; };
MxBackgroundAudioManager* BackgroundAudioManager();
LegoGameState* GameState();
const char* GetNoCD_SourceName(); const char* GetNoCD_SourceName();
LegoInputManager* InputManager();
LegoOmni* Lego();
LegoEntity* PickEntity(MxLong, MxLong); LegoEntity* PickEntity(MxLong, MxLong);
LegoROI* PickROI(MxLong, MxLong); LegoROI* PickROI(MxLong, MxLong);
LegoSoundManager* SoundManager();
MxTransitionManager* TransitionManager();
LegoVideoManager* VideoManager();
LegoAnimationManager* AnimationManager();
LegoNavController* NavController();
LegoBuildingManager* BuildingManager();
LegoControlManager* ControlManager();
IslePathActor* CurrentActor();
ViewManager* GetViewManager();
LegoPlantManager* PlantManager();
LegoWorld* CurrentWorld();
LegoUnkSaveDataWriter* UnkSaveDataWriter();
LegoTextureContainer* TextureContainer();
ViewLODListManager* GetViewLODListManager();
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
void SetROIUnknown0x0c(const char* p_name, undefined p_unk0x0c);
void SetCurrentActor(IslePathActor* p_currentActor);
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
LegoROI* FindROI(const char* p_name);
MxDSAction& GetCurrentAction();
void PlayMusic(MxU32 p_index);
void SetIsWorldActive(MxBool p_isWorldActive);
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
void CreateScripts(); void CreateScripts();
void DestroyScripts(); void DestroyScripts();
void SetCurrentWorld(LegoWorld* p_world);
#endif // LEGOOMNI_H #endif // LEGOOMNI_H

View file

@ -2,7 +2,7 @@
#define LEGOUNKNOWN100D6B4C_H #define LEGOUNKNOWN100D6B4C_H
#include "decomp.h" #include "decomp.h"
#include "legocachesound.h" #include "legocachsound.h"
#include "mxstl/stlcompat.h" #include "mxstl/stlcompat.h"
#include "mxtypes.h" #include "mxtypes.h"

View file

@ -1,12 +1,12 @@
#ifndef LEGOUTIL_H #ifndef LEGOUTILS_H
#define LEGOUTIL_H #define LEGOUTILS_H
#include "extra.h" #include "extra.h"
#include "misc/legostorage.h" #include "misc/legostorage.h"
#include "misc/legotexture.h" #include "misc/legotexture.h"
#include "mxstring.h" #include "mxstring.h"
#include "mxtypes.h" #include "mxtypes.h"
#include "mxutil.h" #include "mxutilities.h"
#include <windows.h> #include <windows.h>
@ -33,4 +33,4 @@ void WriteNamedTexture(LegoFile* p_file, LegoNamedTexture* p_texture);
// SYNTHETIC: LEGO1 0x10034b40 // SYNTHETIC: LEGO1 0x10034b40
// LegoTexture::`scalar deleting destructor' // LegoTexture::`scalar deleting destructor'
#endif // LEGOUTIL_H #endif // LEGOUTILS_H

View file

@ -1,8 +1,8 @@
#ifndef LEGOWORLD_H #ifndef LEGOWORLD_H
#define LEGOWORLD_H #define LEGOWORLD_H
#include "legocachesound.h"
#include "legocachesoundlist.h" #include "legocachesoundlist.h"
#include "legocachsound.h"
#include "legocameracontroller.h" #include "legocameracontroller.h"
#include "legoentity.h" #include "legoentity.h"
#include "legoentitylist.h" #include "legoentitylist.h"

View file

@ -0,0 +1,58 @@
#ifndef MISC_H
#define MISC_H
#include "decomp.h"
#include "mxtypes.h"
class IslePathActor;
class LegoAnimationManager;
class LegoBuildingManager;
class LegoCharacterManager;
class LegoControlManager;
class LegoGameState;
class LegoInputManager;
class LegoNavController;
class LegoOmni;
class LegoPlantManager;
class LegoROI;
class LegoSoundManager;
class LegoTextureContainer;
class LegoVideoManager;
class LegoWorld;
class MxAtomId;
class MxBackgroundAudioManager;
class MxDSAction;
class MxTransitionManager;
class ViewLODListManager;
class ViewManager;
LegoOmni* Lego();
LegoInputManager* InputManager();
LegoSoundManager* SoundManager();
MxBackgroundAudioManager* BackgroundAudioManager();
LegoGameState* GameState();
MxTransitionManager* TransitionManager();
LegoVideoManager* VideoManager();
LegoAnimationManager* AnimationManager();
LegoNavController* NavController();
LegoBuildingManager* BuildingManager();
LegoControlManager* ControlManager();
IslePathActor* CurrentActor();
ViewManager* GetViewManager();
LegoPlantManager* PlantManager();
LegoWorld* CurrentWorld();
LegoCharacterManager* CharacterManager();
LegoTextureContainer* TextureContainer();
ViewLODListManager* GetViewLODListManager();
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
LegoROI* FindROI(const char* p_name);
MxDSAction& GetCurrentAction();
void PlayMusic(MxU32 p_index);
void SetIsWorldActive(MxBool p_isWorldActive);
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
void SetCurrentWorld(LegoWorld* p_world);
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
void SetROIUnknown0x0c(const char* p_name, undefined p_unk0x0c);
void SetCurrentActor(IslePathActor* p_currentActor);
#endif // MISC_H

View file

@ -1,13 +1,15 @@
#ifndef MXTRANSITIONMANAGER_H #ifndef MXTRANSITIONMANAGER_H
#define MXTRANSITIONMANAGER_H #define MXTRANSITIONMANAGER_H
#include "legoomni.h" #include "decomp.h"
#include "mxcore.h" #include "mxcore.h"
#include "mxvideopresenter.h"
#include <ddraw.h> #include <ddraw.h>
class MxVideoPresenter;
// VTABLE: LEGO1 0x100d7ea0 // VTABLE: LEGO1 0x100d7ea0
// SIZE 0x900
class MxTransitionManager : public MxCore { class MxTransitionManager : public MxCore {
public: public:
MxTransitionManager(); MxTransitionManager();

View file

@ -3,10 +3,6 @@
#include "decomp.h" #include "decomp.h"
#include "isleactor.h" #include "isleactor.h"
#include "mxcore.h"
#include "mxomni.h"
#include "mxticklemanager.h"
#include "mxtypes.h"
// VTABLE: LEGO1 0x100d7380 // VTABLE: LEGO1 0x100d7380
// SIZE 0x9c // SIZE 0x9c

View file

@ -1,6 +1,6 @@
#include "act1state.h" #include "act1state.h"
#include "legoutil.h" #include "legoutils.h"
DECOMP_SIZE_ASSERT(Act1State, 0x26c) DECOMP_SIZE_ASSERT(Act1State, 0x26c)
DECOMP_SIZE_ASSERT(Act1State::NamedPlane, 0x4c) DECOMP_SIZE_ASSERT(Act1State::NamedPlane, 0x4c)

View file

@ -3,8 +3,9 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoutil.h" #include "legoutils.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(Bike, 0x164); DECOMP_SIZE_ASSERT(Bike, 0x164);

View file

@ -8,8 +8,9 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoutil.h" #include "legoutils.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
DECOMP_SIZE_ASSERT(Helicopter, 0x230) DECOMP_SIZE_ASSERT(Helicopter, 0x230)

View file

@ -4,8 +4,11 @@
#include "islepathactor.h" #include "islepathactor.h"
#include "jukeboxstate.h" #include "jukeboxstate.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoutil.h" #include "legoomni.h"
#include "legoutils.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View file

@ -1,5 +1,8 @@
#include "pizza.h" #include "pizza.h"
#include "mxmisc.h"
#include "mxticklemanager.h"
DECOMP_SIZE_ASSERT(Pizza, 0x9c); DECOMP_SIZE_ASSERT(Pizza, 0x9c);
// FUNCTION: LEGO1 0x10037ef0 // FUNCTION: LEGO1 0x10037ef0

View file

@ -1,7 +1,7 @@
#include "racecar.h" #include "racecar.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legoomni.h" #include "misc.h"
DECOMP_SIZE_ASSERT(RaceCar, 0x164); DECOMP_SIZE_ASSERT(RaceCar, 0x164);

View file

@ -3,8 +3,10 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxcontrolpresenter.h" #include "mxcontrolpresenter.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
DECOMP_SIZE_ASSERT(Radio, 0x10); DECOMP_SIZE_ASSERT(Radio, 0x10);

View file

@ -1,8 +1,8 @@
#include "skateboard.h" #include "skateboard.h"
#include "decomp.h" #include "decomp.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxomni.h"
DECOMP_SIZE_ASSERT(SkateBoard, 0x168); DECOMP_SIZE_ASSERT(SkateBoard, 0x168);

View file

@ -1,7 +1,7 @@
#include "legocachesound.h" #include "legocachsound.h"
#include "legoomni.h"
#include "legosoundmanager.h" #include "legosoundmanager.h"
#include "misc.h"
#include "mxomni.h" #include "mxomni.h"
DECOMP_SIZE_ASSERT(LegoCacheSound, 0x88) DECOMP_SIZE_ASSERT(LegoCacheSound, 0x88)

View file

@ -1,6 +1,6 @@
#include "legoloadcachesoundpresenter.h" #include "legoloadcachesoundpresenter.h"
#include "legocachesound.h" #include "legocachsound.h"
#include "mxstreamchunk.h" #include "mxstreamchunk.h"
#include "mxwavepresenter.h" #include "mxwavepresenter.h"

View file

@ -1,6 +1,7 @@
#include "legosoundmanager.h" #include "legosoundmanager.h"
#include "mxautolocker.h" #include "mxautolocker.h"
#include "mxomni.h"
// FUNCTION: LEGO1 0x100298a0 // FUNCTION: LEGO1 0x100298a0
LegoSoundManager::LegoSoundManager() LegoSoundManager::LegoSoundManager()

View file

@ -1,7 +1,8 @@
#include "legounknown100d5778.h" #include "legounknown100d5778.h"
#include "legoomni.h" #include "legocharactermanager.h"
#include "legounksavedatawriter.h" #include "misc.h"
#include "mxomni.h"
DECOMP_SIZE_ASSERT(LegoUnknown100d5778, 0x30) DECOMP_SIZE_ASSERT(LegoUnknown100d5778, 0x30)
@ -56,12 +57,12 @@ void LegoUnknown100d5778::Destroy()
m_dsBuffer = NULL; m_dsBuffer = NULL;
} }
if (m_unk0x14 && m_unk0xc && UnkSaveDataWriter()) { if (m_unk0x14 && m_unk0xc && CharacterManager()) {
if (m_unk0x15) { if (m_unk0x15) {
UnkSaveDataWriter()->FUN_10083db0(m_unk0xc); CharacterManager()->FUN_10083db0(m_unk0xc);
} }
else { else {
UnkSaveDataWriter()->FUN_10083f10(m_unk0xc); CharacterManager()->FUN_10083f10(m_unk0xc);
} }
} }

View file

@ -1,7 +1,7 @@
#include "legounknown100d6b4c.h" #include "legounknown100d6b4c.h"
#include "legoomni.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(Element100d6b4c, 0x08) DECOMP_SIZE_ASSERT(Element100d6b4c, 0x08)
DECOMP_SIZE_ASSERT(LegoUnknown100d6b4c, 0x20) DECOMP_SIZE_ASSERT(LegoUnknown100d6b4c, 0x20)

View file

@ -1,13 +1,14 @@
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxcompositepresenter.h" #include "mxcompositepresenter.h"
#include "mxdssound.h" #include "mxdssound.h"
#include "mxomni.h" #include "mxmisc.h"
#include "mxpresenter.h" #include "mxpresenter.h"
#include "mxstreamer.h" #include "mxstreamer.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxutil.h" #include "mxutilities.h"
DECOMP_SIZE_ASSERT(MxBackgroundAudioManager, 0x150) DECOMP_SIZE_ASSERT(MxBackgroundAudioManager, 0x150)

View file

@ -1,6 +1,6 @@
#include "buildingentity.h" #include "buildingentity.h"
#include "legoomni.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
// FUNCTION: LEGO1 0x10014e20 // FUNCTION: LEGO1 0x10014e20

View file

@ -3,10 +3,10 @@
#include "define.h" #include "define.h"
#include "extra.h" #include "extra.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoutil.h" #include "legoutils.h"
#include "mxcompositepresenter.h" #include "mxcompositepresenter.h"
#include "mxmediapresenter.h" #include "mxmediapresenter.h"
#include "mxomni.h" #include "mxmisc.h"
#include "mxstreamchunk.h" #include "mxstreamchunk.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"

View file

@ -1,9 +1,9 @@
#include "legobackgroundcolor.h" #include "legobackgroundcolor.h"
#include "decomp.h" #include "decomp.h"
#include "legoomni.h" #include "legoutils.h"
#include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(LegoBackgroundColor, 0x30) DECOMP_SIZE_ASSERT(LegoBackgroundColor, 0x30)

View file

@ -1,23 +1,23 @@
#include "legounksavedatawriter.h" #include "legocharactermanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoomni.h" #include "mxmisc.h"
#include "roi/legoroi.h" #include "roi/legoroi.h"
DECOMP_SIZE_ASSERT(LegoUnkSaveDataWriter, 0x08) DECOMP_SIZE_ASSERT(LegoCharacterManager, 0x08)
DECOMP_SIZE_ASSERT(LegoSaveDataEntry3, 0x108) DECOMP_SIZE_ASSERT(LegoSaveDataEntry3, 0x108)
// GLOBAL: LEGO1 0x100f80c0 // GLOBAL: LEGO1 0x100f80c0
LegoSaveDataEntry3 g_saveDataInit[66]; // TODO: add data LegoSaveDataEntry3 g_saveDataInit[66]; // TODO: add data
// GLOBAL: LEGO1 0x100fc4e4 // GLOBAL: LEGO1 0x100fc4e4
char* LegoUnkSaveDataWriter::g_customizeAnimFile = NULL; char* LegoCharacterManager::g_customizeAnimFile = NULL;
// GLOBAL: LEGO1 0x10104f20 // GLOBAL: LEGO1 0x10104f20
LegoSaveDataEntry3 g_saveData3[66]; LegoSaveDataEntry3 g_saveData3[66];
// FUNCTION: LEGO1 0x10082a20 // FUNCTION: LEGO1 0x10082a20
LegoUnkSaveDataWriter::LegoUnkSaveDataWriter() LegoCharacterManager::LegoCharacterManager()
{ {
m_map = new LegoUnkSaveDataMap(); m_map = new LegoUnkSaveDataMap();
InitSaveData(); InitSaveData();
@ -27,7 +27,7 @@ LegoUnkSaveDataWriter::LegoUnkSaveDataWriter()
} }
// FUNCTION: LEGO1 0x10083270 // FUNCTION: LEGO1 0x10083270
void LegoUnkSaveDataWriter::InitSaveData() void LegoCharacterManager::InitSaveData()
{ {
for (MxS32 i = 0; i < 66; i++) { for (MxS32 i = 0; i < 66; i++) {
g_saveData3[i] = g_saveDataInit[i]; g_saveData3[i] = g_saveDataInit[i];
@ -35,13 +35,13 @@ void LegoUnkSaveDataWriter::InitSaveData()
} }
// STUB: LEGO1 0x100832a0 // STUB: LEGO1 0x100832a0
void LegoUnkSaveDataWriter::FUN_100832a0() void LegoCharacterManager::FUN_100832a0()
{ {
// TODO // TODO
} }
// FUNCTION: LEGO1 0x10083310 // FUNCTION: LEGO1 0x10083310
MxResult LegoUnkSaveDataWriter::WriteSaveData3(LegoStorage* p_storage) MxResult LegoCharacterManager::WriteSaveData3(LegoStorage* p_storage)
{ {
MxResult result = FAILURE; MxResult result = FAILURE;
@ -91,13 +91,13 @@ MxResult LegoUnkSaveDataWriter::WriteSaveData3(LegoStorage* p_storage)
} }
// STUB: LEGO1 0x100833f0 // STUB: LEGO1 0x100833f0
MxResult LegoUnkSaveDataWriter::ReadSaveData3(LegoStorage* p_storage) MxResult LegoCharacterManager::ReadSaveData3(LegoStorage* p_storage)
{ {
return SUCCESS; return SUCCESS;
} }
// STUB: LEGO1 0x10083500 // STUB: LEGO1 0x10083500
LegoROI* LegoUnkSaveDataWriter::FUN_10083500(const char* p_key, MxBool p_option) LegoROI* LegoCharacterManager::FUN_10083500(const char* p_key, MxBool p_option)
{ {
// TODO // TODO
// involves an STL map with a _Nil node at 0x100fc508 // involves an STL map with a _Nil node at 0x100fc508
@ -105,33 +105,33 @@ LegoROI* LegoUnkSaveDataWriter::FUN_10083500(const char* p_key, MxBool p_option)
} }
// STUB: LEGO1 0x10083db0 // STUB: LEGO1 0x10083db0
void LegoUnkSaveDataWriter::FUN_10083db0(LegoROI* p_roi) void LegoCharacterManager::FUN_10083db0(LegoROI* p_roi)
{ {
// TODO // TODO
} }
// STUB: LEGO1 0x10083f10 // STUB: LEGO1 0x10083f10
void LegoUnkSaveDataWriter::FUN_10083f10(LegoROI* p_roi) void LegoCharacterManager::FUN_10083f10(LegoROI* p_roi)
{ {
// TODO // TODO
} }
// STUB: LEGO1 0x10084c00 // STUB: LEGO1 0x10084c00
MxBool LegoUnkSaveDataWriter::FUN_10084c00(const LegoChar*) MxBool LegoCharacterManager::FUN_10084c00(const LegoChar*)
{ {
// TODO // TODO
return FALSE; return FALSE;
} }
// STUB: LEGO1 0x10085140 // STUB: LEGO1 0x10085140
MxU32 LegoUnkSaveDataWriter::FUN_10085140(LegoROI*, MxBool) MxU32 LegoCharacterManager::FUN_10085140(LegoROI*, MxBool)
{ {
// TODO // TODO
return 0; return 0;
} }
// FUNCTION: LEGO1 0x100851a0 // FUNCTION: LEGO1 0x100851a0
void LegoUnkSaveDataWriter::SetCustomizeAnimFile(const char* p_value) void LegoCharacterManager::SetCustomizeAnimFile(const char* p_value)
{ {
if (g_customizeAnimFile != NULL) { if (g_customizeAnimFile != NULL) {
delete[] g_customizeAnimFile; delete[] g_customizeAnimFile;
@ -150,13 +150,13 @@ void LegoUnkSaveDataWriter::SetCustomizeAnimFile(const char* p_value)
} }
// STUB: LEGO1 0x10085210 // STUB: LEGO1 0x10085210
LegoROI* LegoUnkSaveDataWriter::FUN_10085210(const LegoChar*, LegoChar*, undefined) LegoROI* LegoCharacterManager::FUN_10085210(const LegoChar*, LegoChar*, undefined)
{ {
return NULL; return NULL;
} }
// FUNCTION: LEGO1 0x10085a80 // FUNCTION: LEGO1 0x10085a80
LegoROI* LegoUnkSaveDataWriter::FUN_10085a80(LegoChar* p_und1, LegoChar* p_und2, undefined p_und3) LegoROI* LegoCharacterManager::FUN_10085a80(LegoChar* p_und1, LegoChar* p_und2, undefined p_und3)
{ {
return FUN_10085210(p_und1, p_und2, p_und3); return FUN_10085210(p_und1, p_und2, p_und3);
} }

View file

@ -1,8 +1,8 @@
#include "legofullscreenmovie.h" #include "legofullscreenmovie.h"
#include "decomp.h" #include "decomp.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxtypes.h" #include "mxtypes.h"
DECOMP_SIZE_ASSERT(LegoFullScreenMovie, 0x24) DECOMP_SIZE_ASSERT(LegoFullScreenMovie, 0x24)

View file

@ -10,15 +10,17 @@
#include "jetski.h" #include "jetski.h"
#include "legoanimationmanager.h" #include "legoanimationmanager.h"
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legocharactermanager.h"
#include "legonavcontroller.h" #include "legonavcontroller.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legostate.h" #include "legostate.h"
#include "legounksavedatawriter.h" #include "legoutils.h"
#include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h"
#include "mxobjectfactory.h" #include "mxobjectfactory.h"
#include "mxstring.h" #include "mxstring.h"
#include "mxvariabletable.h" #include "mxvariabletable.h"
@ -144,7 +146,7 @@ void LegoGameState::SetActor(MxU8 p_actorId)
IslePathActor* newActor = new IslePathActor(); IslePathActor* newActor = new IslePathActor();
const char* actorName = LegoActor::GetActorName(m_actorId); const char* actorName = LegoActor::GetActorName(m_actorId);
LegoROI* roi = UnkSaveDataWriter()->FUN_10083500(actorName, FALSE); LegoROI* roi = CharacterManager()->FUN_10083500(actorName, FALSE);
MxDSAction action; MxDSAction action;
action.SetAtomId(*g_isleScript); action.SetAtomId(*g_isleScript);
@ -232,7 +234,7 @@ MxResult LegoGameState::Save(MxULong p_slot)
} }
WriteEndOfVariables(&fileStorage); WriteEndOfVariables(&fileStorage);
UnkSaveDataWriter()->WriteSaveData3(&fileStorage); CharacterManager()->WriteSaveData3(&fileStorage);
PlantManager()->Save(&fileStorage); PlantManager()->Save(&fileStorage);
result = BuildingManager()->Save(&fileStorage); result = BuildingManager()->Save(&fileStorage);
@ -331,7 +333,7 @@ MxResult LegoGameState::Load(MxULong p_slot)
SetLightPosition(atoi(lightPosition)); SetLightPosition(atoi(lightPosition));
} }
if (UnkSaveDataWriter()->ReadSaveData3(&fileStorage) == FAILURE) { if (CharacterManager()->ReadSaveData3(&fileStorage) == FAILURE) {
goto done; goto done;
} }
if (PlantManager()->Load(&fileStorage) == FAILURE) { if (PlantManager()->Load(&fileStorage) == FAILURE) {
@ -1048,7 +1050,7 @@ void LegoGameState::Init()
SetLightPosition(2); SetLightPosition(2);
PlantManager()->Init(); PlantManager()->Init();
BuildingManager()->Init(); BuildingManager()->Init();
UnkSaveDataWriter()->InitSaveData(); CharacterManager()->InitSaveData();
AnimationManager()->FUN_1005ee80(TRUE); AnimationManager()->FUN_1005ee80(TRUE);
SetColors(); SetColors();
RemoveActor(); RemoveActor();

View file

@ -1,7 +1,7 @@
#include "legotextureinfo.h" #include "legotextureinfo.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "misc/legoimage.h" #include "misc/legoimage.h"
#include "misc/legotexture.h" #include "misc/legotexture.h"
#include "tgl/d3drm/impl.h" #include "tgl/d3drm/impl.h"

View file

@ -1,13 +1,14 @@
#include "legoutil.h" #include "legoutils.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legonamedtexture.h" #include "legonamedtexture.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoworld.h" #include "legoworld.h"
#include "legoworldlist.h" #include "legoworldlist.h"
#include "misc.h"
#include "mxdsaction.h" #include "mxdsaction.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxomni.h"
#include "mxstreamer.h" #include "mxstreamer.h"
#include "mxtypes.h" #include "mxtypes.h"

View file

@ -1,9 +1,9 @@
#include "legovariables.h" #include "legovariables.h"
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legoomni.h" #include "legocharactermanager.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legounksavedatawriter.h" #include "misc.h"
DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24) DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24)
DECOMP_SIZE_ASSERT(CameraLocationVariable, 0x24) DECOMP_SIZE_ASSERT(CameraLocationVariable, 0x24)
@ -62,7 +62,7 @@ void CustomizeAnimFileVariable::SetValue(const char* p_value)
{ {
// STRING: LEGO1 0x100fc4f4 // STRING: LEGO1 0x100fc4f4
if (strcmp(m_key.GetData(), "CUSTOMIZE_ANIM_FILE") == 0) { if (strcmp(m_key.GetData(), "CUSTOMIZE_ANIM_FILE") == 0) {
UnkSaveDataWriter()->SetCustomizeAnimFile(p_value); CharacterManager()->SetCustomizeAnimFile(p_value);
PlantManager()->SetCustomizeAnimFile(p_value); PlantManager()->SetCustomizeAnimFile(p_value);
BuildingManager()->SetCustomizeAnimFile(p_value); BuildingManager()->SetCustomizeAnimFile(p_value);
} }

View file

@ -0,0 +1,198 @@
#include "misc.h"
#include "legoinputmanager.h"
#include "legoomni.h"
#include "legovideomanager.h"
#include "mxbackgroundaudiomanager.h"
#include "mxmisc.h"
// GLOBAL: LEGO1 0x100f4c58
MxBool g_isWorldActive = TRUE;
// FUNCTION: LEGO1 0x10015700
LegoOmni* Lego()
{
return LegoOmni::GetInstance();
}
// FUNCTION: LEGO1 0x10015710
LegoSoundManager* SoundManager()
{
return LegoOmni::GetInstance()->GetSoundManager();
}
// FUNCTION: LEGO1 0x10015720
LegoVideoManager* VideoManager()
{
return LegoOmni::GetInstance()->GetVideoManager();
}
// FUNCTION: LEGO1 0x10015730
MxBackgroundAudioManager* BackgroundAudioManager()
{
return LegoOmni::GetInstance()->GetBackgroundAudioManager();
}
// FUNCTION: LEGO1 0x10015740
LegoInputManager* InputManager()
{
return LegoOmni::GetInstance()->GetInputManager();
}
// FUNCTION: LEGO1 0x10015750
LegoControlManager* ControlManager()
{
return LegoOmni::GetInstance()->GetInputManager()->GetControlManager();
}
// FUNCTION: LEGO1 0x10015760
LegoGameState* GameState()
{
return LegoOmni::GetInstance()->GetGameState();
}
// FUNCTION: LEGO1 0x10015770
LegoAnimationManager* AnimationManager()
{
return LegoOmni::GetInstance()->GetAnimationManager();
}
// FUNCTION: LEGO1 0x10015780
LegoNavController* NavController()
{
return LegoOmni::GetInstance()->GetNavController();
}
// FUNCTION: LEGO1 0x10015790
IslePathActor* CurrentActor()
{
return LegoOmni::GetInstance()->GetCurrentActor();
}
// FUNCTION: LEGO1 0x100157a0
LegoWorld* CurrentWorld()
{
return LegoOmni::GetInstance()->GetCurrentWorld();
}
// FUNCTION: LEGO1 0x100157b0
LegoCharacterManager* CharacterManager()
{
return LegoOmni::GetInstance()->GetCharacterManager();
}
// FUNCTION: LEGO1 0x100157c0
ViewManager* GetViewManager()
{
return VideoManager()->Get3DManager()->GetLego3DView()->GetViewManager();
}
// FUNCTION: LEGO1 0x100157e0
LegoPlantManager* PlantManager()
{
return LegoOmni::GetInstance()->GetLegoPlantManager();
}
// FUNCTION: LEGO1 0x100157f0
LegoBuildingManager* BuildingManager()
{
return LegoOmni::GetInstance()->GetLegoBuildingManager();
}
// FUNCTION: LEGO1 0x10015800
LegoTextureContainer* TextureContainer()
{
return LegoOmni::GetInstance()->GetTextureContainer();
}
// FUNCTION: LEGO1 0x10015810
ViewLODListManager* GetViewLODListManager()
{
return LegoOmni::GetInstance()->GetViewLODListManager();
}
// FUNCTION: LEGO1 0x10015820
void FUN_10015820(MxBool p_disable, MxU16 p_flags)
{
LegoOmni::GetInstance()->FUN_1005b4f0(p_disable, p_flags);
}
// FUNCTION: LEGO1 0x10015840
LegoROI* FindROI(const char* p_name)
{
return LegoOmni::GetInstance()->FindROI(p_name);
}
// FUNCTION: LEGO1 0x10015860
void SetROIUnknown0x0c(const char* p_name, undefined p_unk0x0c)
{
LegoROI* roi = FindROI(p_name);
if (roi) {
roi->SetUnknown0x0c(p_unk0x0c);
}
}
// FUNCTION: LEGO1 0x10015880
void SetCurrentActor(IslePathActor* p_currentActor)
{
LegoOmni::GetInstance()->SetCurrentActor(p_currentActor);
}
// FUNCTION: LEGO1 0x100158c0
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid)
{
return LegoOmni::GetInstance()->FindWorld(p_atom, p_entityid);
}
// FUNCTION: LEGO1 0x100158e0
MxDSAction& GetCurrentAction()
{
return LegoOmni::GetInstance()->GetCurrentAction();
}
// FUNCTION: LEGO1 0x100158f0
void SetCurrentWorld(LegoWorld* p_world)
{
LegoOmni::GetInstance()->SetCurrentWorld(p_world);
}
// FUNCTION: LEGO1 0x10015900
MxTransitionManager* TransitionManager()
{
return LegoOmni::GetInstance()->GetTransitionManager();
}
// FUNCTION: LEGO1 0x10015910
void PlayMusic(MxU32 p_index)
{
// index is the entityid of the music in jukebox.si
MxDSAction action;
action.SetAtomId(*g_jukeboxScript);
action.SetObjectId(p_index);
LegoOmni::GetInstance()->GetBackgroundAudioManager()->PlayMusic(action, 5, 4);
}
// FUNCTION: LEGO1 0x100159c0
void SetIsWorldActive(MxBool p_isWorldActive)
{
if (!p_isWorldActive) {
LegoOmni::GetInstance()->GetInputManager()->SetCamera(NULL);
}
g_isWorldActive = p_isWorldActive;
}
// FUNCTION: LEGO1 0x100159e0
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last)
{
MxDSAction action;
action.SetAtomId(*p_id);
action.SetUnknown24(-2);
for (MxS32 first = p_first, last = p_last; first <= last; first++) {
action.SetObjectId(first);
DeleteObject(action);
}
}

View file

@ -1,11 +1,12 @@
#include "mxcompositemediapresenter.h" #include "mxcompositemediapresenter.h"
#include "legoomni.h"
#include "legosoundmanager.h" #include "legosoundmanager.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxautolocker.h" #include "mxautolocker.h"
#include "mxdsmultiaction.h" #include "mxdsmultiaction.h"
#include "mxmediapresenter.h" #include "mxmediapresenter.h"
#include "mxmisc.h"
#include "mxobjectfactory.h" #include "mxobjectfactory.h"
#include "mxtimer.h" #include "mxtimer.h"

View file

@ -3,9 +3,10 @@
#include "define.h" #include "define.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "mxdsmultiaction.h" #include "mxdsmultiaction.h"
#include "mxmisc.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxtimer.h" #include "mxtimer.h"
#include "mxutil.h" #include "mxutilities.h"
#include "mxvideopresenter.h" #include "mxvideopresenter.h"
DECOMP_SIZE_ASSERT(MxControlPresenter, 0x5c) DECOMP_SIZE_ASSERT(MxControlPresenter, 0x5c)

View file

@ -1,12 +1,15 @@
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoutil.h" #include "legoutils.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h"
#include "mxparam.h" #include "mxparam.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxvideopresenter.h"
DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900); DECOMP_SIZE_ASSERT(MxTransitionManager, 0x900);

View file

@ -1,9 +1,10 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legoeventnotificationparam.h" #include "legoeventnotificationparam.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxcontrolpresenter.h" #include "mxcontrolpresenter.h"
#include "mxmisc.h"
#include "mxpresenter.h" #include "mxpresenter.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"

View file

@ -2,7 +2,7 @@
#include "decomp.h" #include "decomp.h"
#include "mxbitmap.h" #include "mxbitmap.h"
#include "mxutil.h" #include "mxutilities.h"
DECOMP_SIZE_ASSERT(LegoMeterPresenter, 0x94) DECOMP_SIZE_ASSERT(LegoMeterPresenter, 0x94)

View file

@ -1,7 +1,7 @@
#include "legoactorpresenter.h" #include "legoactorpresenter.h"
#include "legoentity.h" #include "legoentity.h"
#include "legoomni.h" #include "misc.h"
// FUNCTION: LEGO1 0x10076c30 // FUNCTION: LEGO1 0x10076c30
void LegoActorPresenter::ReadyTickle() void LegoActorPresenter::ReadyTickle()

View file

@ -2,8 +2,8 @@
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legonotify.h" #include "legonotify.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(LegoCameraController, 0xc8); DECOMP_SIZE_ASSERT(LegoCameraController, 0xc8);

View file

@ -2,12 +2,13 @@
#include "define.h" #include "define.h"
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legoomni.h" #include "legocharactermanager.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legounksavedatawriter.h" #include "legoutils.h"
#include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "mxmisc.h"
DECOMP_SIZE_ASSERT(LegoEntity, 0x68) DECOMP_SIZE_ASSERT(LegoEntity, 0x68)
@ -86,7 +87,7 @@ void LegoEntity::Destroy(MxBool p_fromDestructor)
m_roi->SetEntity(NULL); m_roi->SetEntity(NULL);
} }
UnkSaveDataWriter()->FUN_10083db0(m_roi); CharacterManager()->FUN_10083db0(m_roi);
} }
else { else {
VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi); VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi);
@ -214,7 +215,7 @@ void LegoEntity::VTable0x34(MxBool p_und)
switch (m_unk0x59) { switch (m_unk0x59) {
case 0: case 0:
objectId = UnkSaveDataWriter()->FUN_10085140(m_roi, p_und); objectId = CharacterManager()->FUN_10085140(m_roi, p_und);
break; break;
case 1: case 1:
break; break;
@ -228,7 +229,7 @@ void LegoEntity::VTable0x34(MxBool p_und)
if (objectId) { if (objectId) {
MxDSAction action; MxDSAction action;
action.SetAtomId(MxAtomId(UnkSaveDataWriter()->GetCustomizeAnimFile(), e_lowerCase2)); action.SetAtomId(MxAtomId(CharacterManager()->GetCustomizeAnimFile(), e_lowerCase2));
action.SetObjectId(objectId); action.SetObjectId(objectId);
action.AppendData(strlen(roiName) + 1, roiName); action.AppendData(strlen(roiName) + 1, roiName);
Start(&action); Start(&action);

View file

@ -1,8 +1,8 @@
#include "legoentitypresenter.h" #include "legoentitypresenter.h"
#include "islepathactor.h" #include "islepathactor.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(LegoEntityPresenter, 0x50); DECOMP_SIZE_ASSERT(LegoEntityPresenter, 0x50);

View file

@ -1,32 +1,44 @@
#include "legonavcontroller.h" #include "legonavcontroller.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoutils.h"
#include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxmisc.h"
// GLOBAL: LEGO1 0x100f4c28 // GLOBAL: LEGO1 0x100f4c28
int g_mouseDeadzone = 40; int g_mouseDeadzone = 40;
// GLOBAL: LEGO1 0x100f4c2c // GLOBAL: LEGO1 0x100f4c2c
float g_zeroThreshold = 0.001f; float g_zeroThreshold = 0.001f;
// GLOBAL: LEGO1 0x100f4c30 // GLOBAL: LEGO1 0x100f4c30
float g_movementMaxSpeed = 40.0f; float g_movementMaxSpeed = 40.0f;
// GLOBAL: LEGO1 0x100f4c34 // GLOBAL: LEGO1 0x100f4c34
float g_turnMaxSpeed = 20.0f; float g_turnMaxSpeed = 20.0f;
// GLOBAL: LEGO1 0x100f4c38 // GLOBAL: LEGO1 0x100f4c38
float g_movementMaxAccel = 15.0f; float g_movementMaxAccel = 15.0f;
// GLOBAL: LEGO1 0x100f4c3c // GLOBAL: LEGO1 0x100f4c3c
float g_turnMaxAccel = 30.0f; float g_turnMaxAccel = 30.0f;
// GLOBAL: LEGO1 0x100f4c40 // GLOBAL: LEGO1 0x100f4c40
float g_movementMinAccel = 4.0f; float g_movementMinAccel = 4.0f;
// GLOBAL: LEGO1 0x100f4c44 // GLOBAL: LEGO1 0x100f4c44
float g_turnMinAccel = 15.0f; float g_turnMinAccel = 15.0f;
// GLOBAL: LEGO1 0x100f4c48 // GLOBAL: LEGO1 0x100f4c48
float g_movementDecel = 50.0f; float g_movementDecel = 50.0f;
// GLOBAL: LEGO1 0x100f4c4c // GLOBAL: LEGO1 0x100f4c4c
float g_turnDecel = 50.0f; float g_turnDecel = 50.0f;
// GLOBAL: LEGO1 0x100f4c50 // GLOBAL: LEGO1 0x100f4c50
float g_turnSensitivity = 0.4f; float g_turnSensitivity = 0.4f;
// GLOBAL: LEGO1 0x100f4c54 // GLOBAL: LEGO1 0x100f4c54
MxBool g_turnUseVelocity = FALSE; MxBool g_turnUseVelocity = FALSE;

View file

@ -1,6 +1,7 @@
#include "legonavcontroller.h" #include "legonavcontroller.h"
#include "legoomni.h" #include "legoomni.h"
#include "legopointofviewcontroller.h" #include "legopointofviewcontroller.h"
#include "mxmisc.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
DECOMP_SIZE_ASSERT(LegoMouseController, 0x20); DECOMP_SIZE_ASSERT(LegoMouseController, 0x20);

View file

@ -11,13 +11,14 @@
#include "legoomni.h" #include "legoomni.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legosoundmanager.h" #include "legosoundmanager.h"
#include "legoutil.h" #include "legoutils.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxcontrolpresenter.h" #include "mxcontrolpresenter.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxnotificationparam.h" #include "mxnotificationparam.h"
#include "mxomni.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
DECOMP_SIZE_ASSERT(LegoWorld, 0xf8) DECOMP_SIZE_ASSERT(LegoWorld, 0xf8)

View file

@ -12,6 +12,7 @@
#include "legotexturepresenter.h" #include "legotexturepresenter.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "modeldb/modeldb.h" #include "modeldb/modeldb.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxautolocker.h" #include "mxautolocker.h"
@ -19,11 +20,12 @@
#include "mxdschunk.h" #include "mxdschunk.h"
#include "mxdsmediaaction.h" #include "mxdsmediaaction.h"
#include "mxdsmultiaction.h" #include "mxdsmultiaction.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxobjectfactory.h" #include "mxobjectfactory.h"
#include "mxpresenter.h" #include "mxpresenter.h"
#include "mxstl/stlcompat.h" #include "mxstl/stlcompat.h"
#include "mxutil.h" #include "mxutilities.h"
#include <io.h> #include <io.h>

View file

@ -3,6 +3,7 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxautolocker.h" #include "mxautolocker.h"
#include "roi/legoroi.h" #include "roi/legoroi.h"

View file

@ -2,6 +2,7 @@
#include "jukebox.h" #include "jukebox.h"
#include "legoomni.h" #include "legoomni.h"
#include "mxmisc.h"
#include "mxtimer.h" #include "mxtimer.h"
// GLOBAL: LEGO1 0x100f3218 // GLOBAL: LEGO1 0x100f3218

View file

@ -2,22 +2,24 @@
#include "legoanimationmanager.h" #include "legoanimationmanager.h"
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legocharactermanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoobjectfactory.h" #include "legoobjectfactory.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legosoundmanager.h" #include "legosoundmanager.h"
#include "legounksavedatawriter.h" #include "legoutils.h"
#include "legoutil.h"
#include "legovariables.h" #include "legovariables.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "legoworldlist.h" #include "legoworldlist.h"
#include "misc.h"
#include "misc/legocontainer.h" #include "misc/legocontainer.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxautolocker.h" #include "mxautolocker.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxdsfile.h" #include "mxdsfile.h"
#include "mxmisc.h"
#include "mxomnicreateflags.h" #include "mxomnicreateflags.h"
#include "mxomnicreateparam.h" #include "mxomnicreateparam.h"
#include "mxstreamer.h" #include "mxstreamer.h"
@ -118,200 +120,9 @@ MxAtomId* g_nocdSourceName = NULL;
// STRING: LEGO1 0x100f6710 // STRING: LEGO1 0x100f6710
const char* g_current = "current"; const char* g_current = "current";
// GLOBAL: LEGO1 0x100f4c58
MxBool g_isWorldActive = TRUE;
// GLOBAL: LEGO1 0x10102b28 // GLOBAL: LEGO1 0x10102b28
LegoOmni::PathContainer g_extraPaths[29]; LegoOmni::PathContainer g_extraPaths[29];
// FUNCTION: LEGO1 0x10015700
LegoOmni* Lego()
{
return LegoOmni::GetInstance();
}
// FUNCTION: LEGO1 0x10015710
LegoSoundManager* SoundManager()
{
return LegoOmni::GetInstance()->GetSoundManager();
}
// FUNCTION: LEGO1 0x10015720
LegoVideoManager* VideoManager()
{
return LegoOmni::GetInstance()->GetVideoManager();
}
// FUNCTION: LEGO1 0x10015730
MxBackgroundAudioManager* BackgroundAudioManager()
{
return LegoOmni::GetInstance()->GetBackgroundAudioManager();
}
// FUNCTION: LEGO1 0x10015740
LegoInputManager* InputManager()
{
return LegoOmni::GetInstance()->GetInputManager();
}
// FUNCTION: LEGO1 0x10015750
LegoControlManager* ControlManager()
{
return LegoOmni::GetInstance()->GetInputManager()->GetControlManager();
}
// FUNCTION: LEGO1 0x10015760
LegoGameState* GameState()
{
return LegoOmni::GetInstance()->GetGameState();
}
// FUNCTION: LEGO1 0x10015770
LegoAnimationManager* AnimationManager()
{
return LegoOmni::GetInstance()->GetAnimationManager();
}
// FUNCTION: LEGO1 0x10015780
LegoNavController* NavController()
{
return LegoOmni::GetInstance()->GetNavController();
}
// FUNCTION: LEGO1 0x10015790
IslePathActor* CurrentActor()
{
return LegoOmni::GetInstance()->GetCurrentActor();
}
// FUNCTION: LEGO1 0x100157a0
LegoWorld* CurrentWorld()
{
return LegoOmni::GetInstance()->GetCurrentWorld();
}
// FUNCTION: LEGO1 0x100157b0
LegoUnkSaveDataWriter* UnkSaveDataWriter()
{
return LegoOmni::GetInstance()->GetUnkSaveDataWriter();
}
// FUNCTION: LEGO1 0x100157c0
ViewManager* GetViewManager()
{
return VideoManager()->Get3DManager()->GetLego3DView()->GetViewManager();
}
// FUNCTION: LEGO1 0x100157e0
LegoPlantManager* PlantManager()
{
return LegoOmni::GetInstance()->GetLegoPlantManager();
}
// FUNCTION: LEGO1 0x100157f0
LegoBuildingManager* BuildingManager()
{
return LegoOmni::GetInstance()->GetLegoBuildingManager();
}
// FUNCTION: LEGO1 0x10015800
LegoTextureContainer* TextureContainer()
{
return LegoOmni::GetInstance()->GetTextureContainer();
}
// FUNCTION: LEGO1 0x10015810
ViewLODListManager* GetViewLODListManager()
{
return LegoOmni::GetInstance()->GetViewLODListManager();
}
// FUNCTION: LEGO1 0x10015820
void FUN_10015820(MxBool p_disable, MxU16 p_flags)
{
LegoOmni::GetInstance()->FUN_1005b4f0(p_disable, p_flags);
}
// FUNCTION: LEGO1 0x10015840
LegoROI* FindROI(const char* p_name)
{
return LegoOmni::GetInstance()->FindROI(p_name);
}
// FUNCTION: LEGO1 0x10015860
void SetROIUnknown0x0c(const char* p_name, undefined p_unk0x0c)
{
LegoROI* roi = FindROI(p_name);
if (roi) {
roi->SetUnknown0x0c(p_unk0x0c);
}
}
// FUNCTION: LEGO1 0x10015880
void SetCurrentActor(IslePathActor* p_currentActor)
{
LegoOmni::GetInstance()->SetCurrentActor(p_currentActor);
}
// FUNCTION: LEGO1 0x100158c0
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid)
{
return LegoOmni::GetInstance()->FindWorld(p_atom, p_entityid);
}
// FUNCTION: LEGO1 0x100158e0
MxDSAction& GetCurrentAction()
{
return LegoOmni::GetInstance()->GetCurrentAction();
}
// FUNCTION: LEGO1 0x100158f0
void SetCurrentWorld(LegoWorld* p_world)
{
LegoOmni::GetInstance()->SetCurrentWorld(p_world);
}
// FUNCTION: LEGO1 0x10015900
MxTransitionManager* TransitionManager()
{
return LegoOmni::GetInstance()->GetTransitionManager();
}
// FUNCTION: LEGO1 0x10015910
void PlayMusic(MxU32 p_index)
{
// index is the entityid of the music in jukebox.si
MxDSAction action;
action.SetAtomId(*g_jukeboxScript);
action.SetObjectId(p_index);
LegoOmni::GetInstance()->GetBackgroundAudioManager()->PlayMusic(action, 5, 4);
}
// FUNCTION: LEGO1 0x100159c0
void SetIsWorldActive(MxBool p_isWorldActive)
{
if (!p_isWorldActive) {
LegoOmni::GetInstance()->GetInputManager()->SetCamera(NULL);
}
g_isWorldActive = p_isWorldActive;
}
// FUNCTION: LEGO1 0x100159e0
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last)
{
MxDSAction action;
action.SetAtomId(*p_id);
action.SetUnknown24(-2);
for (MxS32 first = p_first, last = p_last; first <= last; first++) {
action.SetObjectId(first);
DeleteObject(action);
}
}
// FUNCTION: LEGO1 0x1001a700 // FUNCTION: LEGO1 0x1001a700
void RegisterExtraPaths() void RegisterExtraPaths()
{ {
@ -485,7 +296,7 @@ void LegoOmni::Init()
m_currentWorld = NULL; m_currentWorld = NULL;
m_exit = FALSE; m_exit = FALSE;
m_currentActor = NULL; m_currentActor = NULL;
m_saveDataWriter = NULL; m_characterManager = NULL;
m_plantManager = NULL; m_plantManager = NULL;
m_gameState = NULL; m_gameState = NULL;
m_animationManager = NULL; m_animationManager = NULL;
@ -517,9 +328,9 @@ void LegoOmni::Destroy()
m_animationManager = NULL; m_animationManager = NULL;
} }
if (m_saveDataWriter) { if (m_characterManager) {
delete m_saveDataWriter; delete m_characterManager;
m_saveDataWriter = NULL; m_characterManager = NULL;
} }
if (m_plantManager) { if (m_plantManager) {
@ -621,14 +432,14 @@ MxResult LegoOmni::Create(MxOmniCreateParam& p_param)
m_textureContainer->SetOwnership(FALSE); m_textureContainer->SetOwnership(FALSE);
// FUN_10046c10 // FUN_10046c10
m_saveDataWriter = new LegoUnkSaveDataWriter(); m_characterManager = new LegoCharacterManager();
m_plantManager = new LegoPlantManager(); m_plantManager = new LegoPlantManager();
m_animationManager = new LegoAnimationManager(); m_animationManager = new LegoAnimationManager();
m_buildingManager = new LegoBuildingManager(); m_buildingManager = new LegoBuildingManager();
m_gameState = new LegoGameState(); m_gameState = new LegoGameState();
m_worldList = new LegoWorldList(TRUE); m_worldList = new LegoWorldList(TRUE);
if (!m_viewLODListManager || !m_textureContainer || !m_worldList || !m_saveDataWriter || !m_plantManager || if (!m_viewLODListManager || !m_textureContainer || !m_worldList || !m_characterManager || !m_plantManager ||
!m_animationManager || !m_buildingManager) { !m_animationManager || !m_buildingManager) {
goto done; goto done;
} }

View file

@ -1,7 +1,7 @@
#include "legopathpresenter.h" #include "legopathpresenter.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxautolocker.h" #include "mxautolocker.h"
DECOMP_SIZE_ASSERT(LegoPathPresenter, 0x54); DECOMP_SIZE_ASSERT(LegoPathPresenter, 0x54);

View file

@ -2,8 +2,9 @@
#include "islepathactor.h" #include "islepathactor.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxdsaction.h" #include "mxdsaction.h"
#include "mxomni.h" #include "mxmisc.h"
#include "police.h" #include "police.h"
#include <stdlib.h> #include <stdlib.h>

View file

@ -1,5 +1,6 @@
#include "legorace.h" #include "legorace.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
DECOMP_SIZE_ASSERT(LegoRace, 0x144) DECOMP_SIZE_ASSERT(LegoRace, 0x144)

View file

@ -1,12 +1,13 @@
#include "legoanimpresenter.h" #include "legoanimpresenter.h"
#include "legoanimmmpresenter.h" #include "legoanimmmpresenter.h"
#include "legoomni.h" #include "legocharactermanager.h"
#include "legounksavedatawriter.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "mxcompositepresenter.h" #include "mxcompositepresenter.h"
#include "mxdsanim.h" #include "mxdsanim.h"
#include "mxmisc.h"
#include "mxstreamchunk.h" #include "mxstreamchunk.h"
#include "mxtimer.h" #include "mxtimer.h"
#include "mxvideomanager.h" #include "mxvideomanager.h"
@ -113,7 +114,7 @@ LegoChar* LegoAnimPresenter::FUN_10069150(const LegoChar* p_und1)
{ {
LegoChar* str; LegoChar* str;
if (LegoUnkSaveDataWriter::FUN_10084c00(p_und1 + 1)) { if (LegoCharacterManager::FUN_10084c00(p_und1 + 1)) {
str = new LegoChar[strlen(p_und1)]; str = new LegoChar[strlen(p_und1)];
if (str != NULL) { if (str != NULL) {
@ -157,7 +158,7 @@ void LegoAnimPresenter::FUN_100692b0()
src = str; src = str;
} }
roi = UnkSaveDataWriter()->FUN_10083500(src, TRUE); roi = CharacterManager()->FUN_10083500(src, TRUE);
if (roi != NULL && str[0] == '*') { if (roi != NULL && str[0] == '*') {
roi->SetUnknown0x0c(0); roi->SetUnknown0x0c(0);
@ -169,7 +170,7 @@ void LegoAnimPresenter::FUN_100692b0()
strlwr(src); strlwr(src);
LegoChar* und = FUN_10069150(str); LegoChar* und = FUN_10069150(str);
roi = UnkSaveDataWriter()->FUN_10085a80(und, src, 1); roi = CharacterManager()->FUN_10085a80(und, src, 1);
if (roi != NULL) { if (roi != NULL) {
roi->SetUnknown0x0c(0); roi->SetUnknown0x0c(0);
@ -193,7 +194,7 @@ void LegoAnimPresenter::FUN_100692b0()
strlwr(src); strlwr(src);
LegoChar* und = FUN_10069150(str); LegoChar* und = FUN_10069150(str);
roi = UnkSaveDataWriter()->FUN_10085210(und, src, 1); roi = CharacterManager()->FUN_10085210(und, src, 1);
if (roi != NULL) { if (roi != NULL) {
roi->SetUnknown0x0c(0); roi->SetUnknown0x0c(0);
@ -238,7 +239,7 @@ void LegoAnimPresenter::FUN_100695c0()
strlwr(dest); strlwr(dest);
UnkSaveDataWriter()->FUN_10085210(str, dest, 0); CharacterManager()->FUN_10085210(str, dest, 0);
FUN_100698b0(rois, str); FUN_100698b0(rois, str);
} }
} }

View file

@ -2,6 +2,7 @@
#include "legoomni.h" #include "legoomni.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(LegoLocomotionAnimPresenter, 0xd8) DECOMP_SIZE_ASSERT(LegoLocomotionAnimPresenter, 0xd8)

View file

@ -2,17 +2,17 @@
#include "anim/legoanim.h" #include "anim/legoanim.h"
#include "define.h" #include "define.h"
#include "legocharactermanager.h"
#include "legoentity.h" #include "legoentity.h"
#include "legoentitypresenter.h" #include "legoentitypresenter.h"
#include "legoomni.h"
#include "legounksavedatawriter.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "misc/legocontainer.h" #include "misc/legocontainer.h"
#include "misc/legotexture.h" #include "misc/legotexture.h"
#include "misc/version.h" #include "misc/version.h"
#include "mxcompositepresenter.h" #include "mxcompositepresenter.h"
#include "mxutil.h" #include "mxutilities.h"
#include "roi/legoroi.h" #include "roi/legoroi.h"
// GLOBAL: LEGO1 0x100f7ae0 // GLOBAL: LEGO1 0x100f7ae0
@ -308,7 +308,7 @@ void LegoModelPresenter::ParseExtra()
char* token = strtok(output, g_parseExtraTokens); char* token = strtok(output, g_parseExtraTokens);
if (m_roi == NULL) { if (m_roi == NULL) {
m_roi = UnkSaveDataWriter()->FUN_10083500(token, FALSE); m_roi = CharacterManager()->FUN_10083500(token, FALSE);
m_addedToView = FALSE; m_addedToView = FALSE;
} }
} }

View file

@ -1,7 +1,7 @@
#include "legopalettepresenter.h" #include "legopalettepresenter.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "misc/legostorage.h" #include "misc/legostorage.h"
#include "mxstreamchunk.h" #include "mxstreamchunk.h"

View file

@ -1,7 +1,7 @@
#include "legopartpresenter.h" #include "legopartpresenter.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "misc/legocontainer.h" #include "misc/legocontainer.h"
#include "misc/legostorage.h" #include "misc/legostorage.h"
#include "misc/legotexture.h" #include "misc/legotexture.h"

View file

@ -1,7 +1,7 @@
#include "legotexturepresenter.h" #include "legotexturepresenter.h"
#include "legoomni.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "misc/legocontainer.h" #include "misc/legocontainer.h"
#include "misc/legoimage.h" #include "misc/legoimage.h"
#include "misc/legostorage.h" #include "misc/legostorage.h"

View file

@ -1,6 +1,8 @@
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxmisc.h"
#include "mxtimer.h" #include "mxtimer.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
#include "realtime/matrix.h" #include "realtime/matrix.h"

View file

@ -7,8 +7,9 @@
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "legovariables.h" #include "legovariables.h"
#include "misc.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxomni.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
DECOMP_SIZE_ASSERT(ElevatorBottom, 0xfc) DECOMP_SIZE_ASSERT(ElevatorBottom, 0xfc)

View file

@ -3,7 +3,8 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "misc.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"

View file

@ -3,9 +3,9 @@
#include "jukebox.h" #include "jukebox.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "misc.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxomni.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
DECOMP_SIZE_ASSERT(HistoryBook, 0x3e4) DECOMP_SIZE_ASSERT(HistoryBook, 0x3e4)

View file

@ -1,7 +1,7 @@
#include "hospital.h" #include "hospital.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxomni.h"
DECOMP_SIZE_ASSERT(Hospital, 0x12c) DECOMP_SIZE_ASSERT(Hospital, 0x12c)

View file

@ -7,17 +7,19 @@
#include "legoact2state.h" #include "legoact2state.h"
#include "legoanimationmanager.h" #include "legoanimationmanager.h"
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legocharactermanager.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legounksavedatawriter.h" #include "legoutils.h"
#include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxcontrolpresenter.h" #include "mxcontrolpresenter.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxstillpresenter.h" #include "mxstillpresenter.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
@ -1284,7 +1286,7 @@ void Infocenter::Reset()
PlantManager()->FUN_10027120(); PlantManager()->FUN_10027120();
BuildingManager()->FUN_10030590(); BuildingManager()->FUN_10030590();
AnimationManager()->FUN_1005ee80(FALSE); AnimationManager()->FUN_1005ee80(FALSE);
UnkSaveDataWriter()->FUN_100832a0(); CharacterManager()->FUN_100832a0();
GameState()->SetCurrentAct(LegoGameState::e_act1); GameState()->SetCurrentAct(LegoGameState::e_act1);
GameState()->SetPreviousArea(LegoGameState::e_noArea); GameState()->SetPreviousArea(LegoGameState::e_noArea);
GameState()->SetUnknown0x42c(LegoGameState::e_noArea); GameState()->SetUnknown0x42c(LegoGameState::e_noArea);

View file

@ -6,8 +6,10 @@
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View file

@ -7,7 +7,9 @@
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoutil.h" #include "legoutils.h"
#include "misc.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
#include "pizza.h" #include "pizza.h"

View file

@ -6,8 +6,9 @@
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxomni.h"
#include "mxstillpresenter.h" #include "mxstillpresenter.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View file

@ -5,7 +5,9 @@
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
#include "policestate.h" #include "policestate.h"

View file

@ -4,8 +4,9 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "misc.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtimer.h" #include "mxtimer.h"

View file

@ -6,7 +6,9 @@
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "misc/legocontainer.h" #include "misc/legocontainer.h"
#include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxnotificationparam.h" #include "mxnotificationparam.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View file

@ -1,7 +1,7 @@
#include "legocontainer.h" #include "legocontainer.h"
#include "lego/legoomni/include/legoomni.h"
#include "lego/legoomni/include/legovideomanager.h" #include "lego/legoomni/include/legovideomanager.h"
#include "lego/legoomni/include/misc.h"
#include "tgl/d3drm/impl.h" #include "tgl/d3drm/impl.h"
DECOMP_SIZE_ASSERT(LegoContainerInfo<LegoTexture>, 0x10); DECOMP_SIZE_ASSERT(LegoContainerInfo<LegoTexture>, 0x10);

View file

@ -1,8 +1,9 @@
#ifndef MXATOMIDCOUNTER_H #ifndef MXATOM_H
#define MXATOMIDCOUNTER_H #define MXATOM_H
#include "mxstl/stlcompat.h" #include "mxstl/stlcompat.h"
#include "mxstring.h" #include "mxstring.h"
#include "mxtypes.h"
// Counts the number of existing MxAtomId objects based // Counts the number of existing MxAtomId objects based
// on the matching char* string. A <map> seems fit for purpose here: // on the matching char* string. A <map> seems fit for purpose here:
@ -43,6 +44,36 @@ struct MxAtomIdCounterCompare {
class MxAtomIdCounterSet : public set<MxAtomIdCounter*, MxAtomIdCounterCompare> {}; class MxAtomIdCounterSet : public set<MxAtomIdCounter*, MxAtomIdCounterCompare> {};
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 // SYNTHETIC: LEGO1 0x100ad170
// MxAtomIdCounter::~MxAtomIdCounter // MxAtomIdCounter::~MxAtomIdCounter
@ -89,4 +120,4 @@ class MxAtomIdCounterSet : public set<MxAtomIdCounter*, MxAtomIdCounterCompare>
// TEMPLATE: LEGO1 0x100afe40 // TEMPLATE: LEGO1 0x100afe40
// Set<MxAtomIdCounter *,MxAtomIdCounterCompare>::~Set<MxAtomIdCounter *,MxAtomIdCounterCompare> // Set<MxAtomIdCounter *,MxAtomIdCounterCompare>::~Set<MxAtomIdCounter *,MxAtomIdCounterCompare>
#endif // MXATOMIDCOUNTER_H #endif // MXATOM_H

View file

@ -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

View file

@ -82,7 +82,7 @@ class MxBitmap : public MxCore {
// https://learn.microsoft.com/en-us/windows/win32/medfound/image-stride // https://learn.microsoft.com/en-us/windows/win32/medfound/image-stride
inline MxLong AlignToFourByte(MxLong p_value) const { return (p_value + 3) & -4; } inline MxLong AlignToFourByte(MxLong p_value) const { return (p_value + 3) & -4; }
// Same as the one from legoutil.h, but flipped the other way // Same as the one from legoutils.h, but flipped the other way
// TODO: While it's not outside the realm of possibility that they // TODO: While it's not outside the realm of possibility that they
// reimplemented Abs for only this file, that seems odd, right? // reimplemented Abs for only this file, that seems odd, right?
inline MxLong AbsFlipped(MxLong p_value) const { return p_value > 0 ? p_value : -p_value; } inline MxLong AbsFlipped(MxLong p_value) const { return p_value > 0 ? p_value : -p_value; }

View file

@ -2,7 +2,7 @@
#define MXDSFILE_H #define MXDSFILE_H
#include "mxdssource.h" #include "mxdssource.h"
#include "mxioinfo.h" #include "mxio.h"
#include "mxstring.h" #include "mxstring.h"
#include "mxtypes.h" #include "mxtypes.h"

Some files were not shown because too many files have changed in this diff Show more