2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 06:27:43 +00:00

CCameraManager imps

This commit is contained in:
Jack Andersen
2016-04-16 16:50:45 -10:00
parent 7afdc556fd
commit 1817227465
29 changed files with 452 additions and 34 deletions

View File

@@ -6,6 +6,8 @@
#include "ScriptObjectSupport.hpp"
#include "GameObjectLists.hpp"
#include "Camera/CCameraManager.hpp"
#include "Camera/CCameraFilter.hpp"
#include "CRandom16.hpp"
namespace urde
{
@@ -14,26 +16,45 @@ class CMapWorldInfo;
class CPlayerState;
class CWorldTransManager;
class CObjectList;
class CSortedListManager;
class CWeaponMgr;
class CFluidPlaneManager;
class CEnvFxManager;
class CActorModelParticles;
class CTeamAiTypes;
class CRumbleManager;
class CStateManager
{
TUniqueId x8_idArr[1024] = {};
std::unique_ptr<CObjectList> x80c_allObjs;
std::unique_ptr<CActorList> x814_allObjs;
std::unique_ptr<CPhysicsActorList> x81c_allObjs;
std::unique_ptr<CGameCameraList> x824_allObjs;
std::unique_ptr<CGameLightList> x82c_allObjs;
std::unique_ptr<CListeningAiList> x834_allObjs;
std::unique_ptr<CAiWaypointList> x83c_allObjs;
std::unique_ptr<CPlatformAndDoorList> x844_allObjs;
std::unique_ptr<CActorList> x814_actorObjs;
std::unique_ptr<CPhysicsActorList> x81c_physActorObjs;
std::unique_ptr<CGameCameraList> x824_cameraObjs;
std::unique_ptr<CGameLightList> x82c_lightObjs;
std::unique_ptr<CListeningAiList> x834_listenAiObjs;
std::unique_ptr<CAiWaypointList> x83c_aiWaypointObjs;
std::unique_ptr<CPlatformAndDoorList> x844_platformAndDoorObjs;
std::list<u32> x858_;
// x86c_stateManagerContainer;
std::unique_ptr<CCameraManager> x870_cameraManager;
std::unique_ptr<CSortedListManager> x874_sortedListManager;
std::unique_ptr<CWeaponMgr> x878_weaponManager;
std::unique_ptr<CFluidPlaneManager> x87c_fluidPlaneManager;
std::unique_ptr<CEnvFxManager> x880_envFxManager;
std::unique_ptr<CActorModelParticles> x884_actorModelParticles;
std::unique_ptr<CTeamAiTypes> x888_teamAiTypes;
std::unique_ptr<CRumbleManager> x88c_rumbleManager;
CRandom16 x8f8_random;
CRandom16* x8fc_activeRandom = nullptr;
std::shared_ptr<CPlayerState> x8b8_playerState;
CCameraFilterPass xaf8_camFilterPasses[9];
CCameraBlurPass xc88_camBlurPasses[9];
public:
CStateManager(const std::weak_ptr<CScriptMailbox>&,
const std::weak_ptr<CMapWorldInfo>&,
@@ -42,15 +63,27 @@ public:
const std::shared_ptr<CPlayerState>& GetPlayerState() const {return x8b8_playerState;}
void GetObjectListById() const
const CObjectList* GetObjectListById(EGameObjectList type) const
{
const std::unique_ptr<CObjectList>* lists = &x80c_allObjs;
return lists[int(type)].get();
}
void GetObjectById(TUniqueId uid) const
CObjectList* GetObjectListById(EGameObjectList type)
{
std::unique_ptr<CObjectList>* lists = &x80c_allObjs;
return lists[int(type)].get();
}
CEntity* GetObjectById(TUniqueId uid)
{
return x80c_allObjs->GetObjectById(uid);
}
void SendScriptMsg(TUniqueId uid, TEditorId eid, EScriptObjectMessage msg, EScriptObjectState state);
TUniqueId AllocateUniqueId();
CRandom16* GetActiveRandom() {return x8fc_activeRandom;}
CRumbleManager& GetRumbleManager() {return *x88c_rumbleManager;}
CCameraFilterPass& GetCameraFilterPass(int idx) {return xaf8_camFilterPasses[idx];}
};
}