Refactor legoomni into legoomni/misc

This commit is contained in:
Christian Semmler 2024-03-09 14:04:38 -05:00
parent a6dbba4da6
commit 8a904d92a7
52 changed files with 309 additions and 251 deletions

View File

@ -315,6 +315,7 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/common/legotextureinfo.cpp LEGO1/lego/legoomni/src/common/legotextureinfo.cpp
LEGO1/lego/legoomni/src/common/legoutil.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/control/legocontrolmanager.cpp LEGO1/lego/legoomni/src/control/legocontrolmanager.cpp
LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp LEGO1/lego/legoomni/src/control/mxcontrolpresenter.cpp

View File

@ -9,6 +9,7 @@
#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 "mxmisc.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 LegoCharacterManager; 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;
@ -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();
LegoCharacterManager* CharacterManager();
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

@ -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,7 +1,7 @@
#include "legocachesound.h" #include "legocachesound.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,7 +1,8 @@
#include "legounknown100d5778.h" #include "legounknown100d5778.h"
#include "legocharactermanager.h" #include "legocharactermanager.h"
#include "legoomni.h" #include "misc.h"
#include "mxomni.h"
DECOMP_SIZE_ASSERT(LegoUnknown100d5778, 0x30) DECOMP_SIZE_ASSERT(LegoUnknown100d5778, 0x30)

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,6 +1,7 @@
#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 "mxmisc.h" #include "mxmisc.h"

View File

@ -7,9 +7,9 @@
#include "legoanimationmanager.h" #include "legoanimationmanager.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoomni.h"
#include "legoutil.h" #include "legoutil.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

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

@ -1,9 +1,9 @@
#include "legobackgroundcolor.h" #include "legobackgroundcolor.h"
#include "decomp.h" #include "decomp.h"
#include "legoomni.h"
#include "legoutil.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,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

@ -18,6 +18,7 @@
#include "legoutil.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 "mxmisc.h"
#include "mxobjectfactory.h" #include "mxobjectfactory.h"

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

@ -5,6 +5,7 @@
#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 "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"

View File

@ -2,8 +2,8 @@
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legocharactermanager.h" #include "legocharactermanager.h"
#include "legoomni.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24) DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24)
DECOMP_SIZE_ASSERT(CameraLocationVariable, 0x24) DECOMP_SIZE_ASSERT(CameraLocationVariable, 0x24)

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,8 +1,8 @@
#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"

View File

@ -1,8 +1,8 @@
#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 "mxmisc.h"
#include "mxpresenter.h" #include "mxpresenter.h"

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

@ -3,11 +3,11 @@
#include "define.h" #include "define.h"
#include "legobuildingmanager.h" #include "legobuildingmanager.h"
#include "legocharactermanager.h" #include "legocharactermanager.h"
#include "legoomni.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legoutil.h" #include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
DECOMP_SIZE_ASSERT(LegoEntity, 0x68) DECOMP_SIZE_ASSERT(LegoEntity, 0x68)

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,9 +1,9 @@
#include "legonavcontroller.h" #include "legonavcontroller.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h"
#include "legoutil.h" #include "legoutil.h"
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
// GLOBAL: LEGO1 0x100f4c28 // GLOBAL: LEGO1 0x100f4c28

View File

@ -13,6 +13,7 @@
#include "legosoundmanager.h" #include "legosoundmanager.h"
#include "legoutil.h" #include "legoutil.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 "mxmisc.h"

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"

View File

@ -3,7 +3,7 @@
#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 "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"

View File

@ -5,8 +5,8 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h"
#include "legovariables.h" #include "legovariables.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View File

@ -11,10 +11,10 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoomni.h"
#include "legoplantmanager.h" #include "legoplantmanager.h"
#include "legoutil.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"

View File

@ -5,6 +5,7 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "misc.h"
#include "mxactionnotificationparam.h" #include "mxactionnotificationparam.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h" #include "mxmisc.h"

View File

@ -4,7 +4,7 @@
#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 "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"

View File

@ -5,6 +5,7 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "misc.h"
#include "misc/legocontainer.h" #include "misc/legocontainer.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.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

@ -5,6 +5,7 @@
#include "legoomni.h" #include "legoomni.h"
#include "legoutil.h" #include "legoutil.h"
#include "legoworld.h" #include "legoworld.h"
#include "misc.h"
DECOMP_SIZE_ASSERT(Bike, 0x164); DECOMP_SIZE_ASSERT(Bike, 0x164);

View File

@ -3,6 +3,7 @@
#include "jukebox.h" #include "jukebox.h"
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View File

@ -7,6 +7,7 @@
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "legoutil.h" #include "legoutil.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View File

@ -5,6 +5,7 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"
#include "mxstillpresenter.h" #include "mxstillpresenter.h"

View File

@ -5,6 +5,7 @@
#include "jukeboxstate.h" #include "jukeboxstate.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoutil.h" #include "legoutil.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"

View File

@ -3,6 +3,7 @@
#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 "mxmisc.h"

View File

@ -13,6 +13,7 @@
#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"
@ -119,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
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);
}
}
// FUNCTION: LEGO1 0x1001a700 // FUNCTION: LEGO1 0x1001a700
void RegisterExtraPaths() void RegisterExtraPaths()
{ {

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

@ -4,6 +4,7 @@
#include "legocontrolmanager.h" #include "legocontrolmanager.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoinputmanager.h" #include "legoinputmanager.h"
#include "misc.h"
#include "mxbackgroundaudiomanager.h" #include "mxbackgroundaudiomanager.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxnotificationmanager.h" #include "mxnotificationmanager.h"

View File

@ -2,6 +2,7 @@
#include "islepathactor.h" #include "islepathactor.h"
#include "legoomni.h" #include "legoomni.h"
#include "misc.h"
#include "mxdsaction.h" #include "mxdsaction.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "police.h" #include "police.h"

View File

@ -2,9 +2,9 @@
#include "legoanimmmpresenter.h" #include "legoanimmmpresenter.h"
#include "legocharactermanager.h" #include "legocharactermanager.h"
#include "legoomni.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 "mxmisc.h"

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

@ -5,9 +5,9 @@
#include "legocharactermanager.h" #include "legocharactermanager.h"
#include "legoentity.h" #include "legoentity.h"
#include "legoentitypresenter.h" #include "legoentitypresenter.h"
#include "legoomni.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"

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,5 +1,6 @@
#include "legovideomanager.h" #include "legovideomanager.h"
#include "misc.h"
#include "mxmisc.h" #include "mxmisc.h"
#include "mxtimer.h" #include "mxtimer.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"

View File

@ -4,6 +4,7 @@
#include "legoutil.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 "mxmisc.h"
#include "mxparam.h" #include "mxparam.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);