From 3ae77d3390daf9453ddbc18a60a802841a84d07a Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Sun, 17 Apr 2016 12:38:05 -1000 Subject: [PATCH] Remaining CStateManager fields, loaders, collision stubs --- Editor/CMakeLists.txt | 1 + Runtime/CMakeLists.txt | 1 + Runtime/CStateManager.cpp | 144 +++++ Runtime/CStateManager.hpp | 63 ++- Runtime/Collision/CCollidableOBBTree.cpp | 0 Runtime/Collision/CCollidableOBBTree.hpp | 13 + Runtime/Collision/CCollidableOBBTreeGroup.cpp | 0 Runtime/Collision/CCollidableOBBTreeGroup.hpp | 13 + Runtime/Collision/CCollisionInfo.cpp | 0 Runtime/Collision/CCollisionInfo.hpp | 13 + Runtime/Collision/CCollisionPrimitive.cpp | 0 Runtime/Collision/CCollisionPrimitive.hpp | 25 + Runtime/Collision/CGameCollision.cpp | 0 Runtime/Collision/CGameCollision.hpp | 20 + Runtime/Collision/CMakeLists.txt | 5 + Runtime/RetroTypes.hpp | 1 + Runtime/ScriptObjectSupport.hpp | 128 +++++ Runtime/World/CMakeLists.txt | 3 + Runtime/World/CWorld.cpp | 0 Runtime/World/CWorld.hpp | 13 + Runtime/World/ScriptLoader.cpp | 514 ++++++++++++++++++ Runtime/World/ScriptLoader.hpp | 149 +++++ 22 files changed, 1105 insertions(+), 1 deletion(-) create mode 100644 Runtime/Collision/CCollidableOBBTree.cpp create mode 100644 Runtime/Collision/CCollidableOBBTree.hpp create mode 100644 Runtime/Collision/CCollidableOBBTreeGroup.cpp create mode 100644 Runtime/Collision/CCollidableOBBTreeGroup.hpp create mode 100644 Runtime/Collision/CCollisionInfo.cpp create mode 100644 Runtime/Collision/CCollisionInfo.hpp create mode 100644 Runtime/Collision/CCollisionPrimitive.cpp create mode 100644 Runtime/Collision/CCollisionPrimitive.hpp create mode 100644 Runtime/Collision/CGameCollision.cpp create mode 100644 Runtime/Collision/CGameCollision.hpp create mode 100644 Runtime/Collision/CMakeLists.txt create mode 100644 Runtime/World/CWorld.cpp create mode 100644 Runtime/World/CWorld.hpp create mode 100644 Runtime/World/ScriptLoader.cpp create mode 100644 Runtime/World/ScriptLoader.hpp diff --git a/Editor/CMakeLists.txt b/Editor/CMakeLists.txt index ee4b327d5..90b2ecb92 100644 --- a/Editor/CMakeLists.txt +++ b/Editor/CMakeLists.txt @@ -45,6 +45,7 @@ target_link_libraries(urde RuntimeCommonCharacter RuntimeCommonInput RuntimeCommonParticle + RuntimeCommonCollision RuntimeCommonGuiSys RuntimeCommonGraphics RuntimeCommonAudio diff --git a/Runtime/CMakeLists.txt b/Runtime/CMakeLists.txt index 66839c502..071046bb8 100644 --- a/Runtime/CMakeLists.txt +++ b/Runtime/CMakeLists.txt @@ -4,6 +4,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${BOO_INCLUDE_DIR} add_subdirectory(Audio) add_subdirectory(Character) add_subdirectory(Graphics) +add_subdirectory(Collision) add_subdirectory(Camera) add_subdirectory(World) add_subdirectory(AutoMapper) diff --git a/Runtime/CStateManager.cpp b/Runtime/CStateManager.cpp index 67bd9aa7a..de6846a9d 100644 --- a/Runtime/CStateManager.cpp +++ b/Runtime/CStateManager.cpp @@ -7,6 +7,8 @@ #include "World/CActorModelParticles.hpp" #include "World/CTeamAiTypes.hpp" #include "Input/CRumbleManager.hpp" +#include "World/CWorld.hpp" +#include "Graphics/CLight.hpp" namespace urde { @@ -15,7 +17,149 @@ CStateManager::CStateManager(const std::weak_ptr&, const std::weak_ptr&, const std::weak_ptr&, const std::weak_ptr&) +: x80c_allObjs(new CObjectList(EGameObjectList::All)), + x814_actorObjs(new CActorList()), + x81c_physActorObjs(new CPhysicsActorList()), + x824_cameraObjs(new CGameCameraList()), + x82c_lightObjs(new CGameLightList()), + x834_listenAiObjs(new CListeningAiList()), + x83c_aiWaypointObjs(new CAiWaypointList()), + x844_platformAndDoorObjs(new CPlatformAndDoorList()), + x870_cameraManager(new CCameraManager(kInvalidUniqueId)), + x874_sortedListManager(new CSortedListManager()), + x878_weaponManager(new CWeaponMgr()), + x87c_fluidPlaneManager(new CFluidPlaneManager()), + x880_envFxManager(new CEnvFxManager()), + x884_actorModelParticles(new CActorModelParticles()), + x888_teamAiTypes(new CTeamAiTypes()), + x88c_rumbleManager(new CRumbleManager()) { + x904_loaderFuncs[int(EScriptObjectType::Actor)] = ScriptLoader::LoadActor; + x904_loaderFuncs[int(EScriptObjectType::Waypoint)] = ScriptLoader::LoadWaypoint; + x904_loaderFuncs[int(EScriptObjectType::DoorArea)] = ScriptLoader::LoadDoorArea; + x904_loaderFuncs[int(EScriptObjectType::Trigger)] = ScriptLoader::LoadTrigger; + x904_loaderFuncs[int(EScriptObjectType::Timer)] = ScriptLoader::LoadTimer; + x904_loaderFuncs[int(EScriptObjectType::Counter)] = ScriptLoader::LoadCounter; + x904_loaderFuncs[int(EScriptObjectType::Effect)] = ScriptLoader::LoadEffect; + x904_loaderFuncs[int(EScriptObjectType::Platform)] = ScriptLoader::LoadPlatform; + x904_loaderFuncs[int(EScriptObjectType::Sound)] = ScriptLoader::LoadSound; + x904_loaderFuncs[int(EScriptObjectType::Generator)] = ScriptLoader::LoadGenerator; + x904_loaderFuncs[int(EScriptObjectType::Camera)] = ScriptLoader::LoadCamera; + x904_loaderFuncs[int(EScriptObjectType::CameraWaypoint)] = ScriptLoader::LoadCameraWaypoint; + x904_loaderFuncs[int(EScriptObjectType::NewIntroBoss)] = ScriptLoader::LoadNewIntroBoss; + x904_loaderFuncs[int(EScriptObjectType::SpawnPoint)] = ScriptLoader::LoadSpawnPoint; + x904_loaderFuncs[int(EScriptObjectType::CameraHint)] = ScriptLoader::LoadCameraHint; + x904_loaderFuncs[int(EScriptObjectType::Pickup)] = ScriptLoader::LoadPickup; + x904_loaderFuncs[int(EScriptObjectType::MemoryRelay)] = ScriptLoader::LoadMemoryRelay; + x904_loaderFuncs[int(EScriptObjectType::RandomRelay)] = ScriptLoader::LoadRandomRelay; + x904_loaderFuncs[int(EScriptObjectType::Relay)] = ScriptLoader::LoadRelay; + x904_loaderFuncs[int(EScriptObjectType::Beetle)] = ScriptLoader::LoadBeetle; + x904_loaderFuncs[int(EScriptObjectType::HUDMemo)] = ScriptLoader::LoadHUDMemo; + x904_loaderFuncs[int(EScriptObjectType::CameraFilterKeyframe)] = ScriptLoader::LoadCameraFilterKeyframe; + x904_loaderFuncs[int(EScriptObjectType::CameraBlurKeyframe)] = ScriptLoader::LoadCameraBlurKeyframe; + x904_loaderFuncs[int(EScriptObjectType::DamageableTrigger)] = ScriptLoader::LoadDamageableTrigger; + x904_loaderFuncs[int(EScriptObjectType::Debris)] = ScriptLoader::LoadDebris; + x904_loaderFuncs[int(EScriptObjectType::CameraShaker)] = ScriptLoader::LoadCameraShaker; + x904_loaderFuncs[int(EScriptObjectType::ActorKeyframe)] = ScriptLoader::LoadActorKeyframe; + x904_loaderFuncs[int(EScriptObjectType::Water)] = ScriptLoader::LoadWater; + x904_loaderFuncs[int(EScriptObjectType::Warwasp)] = ScriptLoader::LoadWarwasp; + x904_loaderFuncs[int(EScriptObjectType::SpacePirate)] = ScriptLoader::LoadSpacePirate; + x904_loaderFuncs[int(EScriptObjectType::FlyingPirate)] = ScriptLoader::LoadFlyingPirate; + x904_loaderFuncs[int(EScriptObjectType::ElitePirate)] = ScriptLoader::LoadElitePirate; + x904_loaderFuncs[int(EScriptObjectType::MetroidBeta)] = ScriptLoader::LoadMetroidBeta; + x904_loaderFuncs[int(EScriptObjectType::ChozoGhost)] = ScriptLoader::LoadChozoGhost; + x904_loaderFuncs[int(EScriptObjectType::CoverPoint)] = ScriptLoader::LoadCoverPoint; + x904_loaderFuncs[int(EScriptObjectType::SpiderBallWaypoint)] = ScriptLoader::LoadSpiderBallWaypoint; + x904_loaderFuncs[int(EScriptObjectType::BloodFlower)] = ScriptLoader::LoadBloodFlower; + x904_loaderFuncs[int(EScriptObjectType::FlickerBat)] = ScriptLoader::LoadFlickerBat; + x904_loaderFuncs[int(EScriptObjectType::PathCamera)] = ScriptLoader::LoadPathCamera; + x904_loaderFuncs[int(EScriptObjectType::GrapplePoint)] = ScriptLoader::LoadGrapplePoint; + x904_loaderFuncs[int(EScriptObjectType::PuddleSpore)] = ScriptLoader::LoadPuddleSpore; + x904_loaderFuncs[int(EScriptObjectType::DebugCameraWaypoint)] = ScriptLoader::LoadDebugCameraWaypoint; + x904_loaderFuncs[int(EScriptObjectType::SpiderBallAttractionSurface)] = ScriptLoader::LoadSpiderBallAttractionSurface; + x904_loaderFuncs[int(EScriptObjectType::PuddleToadGamma)] = ScriptLoader::LoadPuddleToadGamma; + x904_loaderFuncs[int(EScriptObjectType::DistanceFog)] = ScriptLoader::LoadDistanceFog; + x904_loaderFuncs[int(EScriptObjectType::FireFlea)] = ScriptLoader::LoadFireFlea; + x904_loaderFuncs[int(EScriptObjectType::MetareeAlpha)] = ScriptLoader::LoadMetareeAlpha; + x904_loaderFuncs[int(EScriptObjectType::DockAreaChange)] = ScriptLoader::LoadDockAreaChange; + x904_loaderFuncs[int(EScriptObjectType::ActorRotate)] = ScriptLoader::LoadActorRotate; + x904_loaderFuncs[int(EScriptObjectType::SpecialFunction)] = ScriptLoader::LoadSpecialFunction; + x904_loaderFuncs[int(EScriptObjectType::SpankWeed)] = ScriptLoader::LoadSpankWeed; + x904_loaderFuncs[int(EScriptObjectType::Parasite)] = ScriptLoader::LoadParasite; + x904_loaderFuncs[int(EScriptObjectType::PlayerHint)] = ScriptLoader::LoadPlayerHint; + x904_loaderFuncs[int(EScriptObjectType::Ripper)] = ScriptLoader::LoadRipper; + x904_loaderFuncs[int(EScriptObjectType::PickupGenerator)] = ScriptLoader::LoadPickupGenerator; + x904_loaderFuncs[int(EScriptObjectType::AIKeyframe)] = ScriptLoader::LoadAIKeyframe; + x904_loaderFuncs[int(EScriptObjectType::PointOfInterest)] = ScriptLoader::LoadPointOfInterest; + x904_loaderFuncs[int(EScriptObjectType::Drone)] = ScriptLoader::LoadDrone; + x904_loaderFuncs[int(EScriptObjectType::MetroidAlpha)] = ScriptLoader::LoadMetroidAlpha; + x904_loaderFuncs[int(EScriptObjectType::DebrisExtended)] = ScriptLoader::LoadDebrisExtended; + x904_loaderFuncs[int(EScriptObjectType::Steam)] = ScriptLoader::LoadSteam; + x904_loaderFuncs[int(EScriptObjectType::Ripple)] = ScriptLoader::LoadRipple; + x904_loaderFuncs[int(EScriptObjectType::BallTrigger)] = ScriptLoader::LoadBallTrigger; + x904_loaderFuncs[int(EScriptObjectType::TargetingPoint)] = ScriptLoader::LoadTargetingPoint; + x904_loaderFuncs[int(EScriptObjectType::ElectroMagneticPulse)] = ScriptLoader::LoadElectroMagneticPulse; + x904_loaderFuncs[int(EScriptObjectType::IceSheegoth)] = ScriptLoader::LoadIceSheegoth; + x904_loaderFuncs[int(EScriptObjectType::PlayerActor)] = ScriptLoader::LoadPlayerActor; + x904_loaderFuncs[int(EScriptObjectType::Flaahgra)] = ScriptLoader::LoadFlaahgra; + x904_loaderFuncs[int(EScriptObjectType::AreaAttributes)] = ScriptLoader::LoadAreaAttributes; + x904_loaderFuncs[int(EScriptObjectType::FishCloud)] = ScriptLoader::LoadFishCloud; + x904_loaderFuncs[int(EScriptObjectType::FishCloudModifier)] = ScriptLoader::LoadFishCloudModifier; + x904_loaderFuncs[int(EScriptObjectType::VisorFlare)] = ScriptLoader::LoadVisorFlare; + x904_loaderFuncs[int(EScriptObjectType::WorldTeleporterx52)] = ScriptLoader::LoadWorldTeleporter; + x904_loaderFuncs[int(EScriptObjectType::VisorGoo)] = ScriptLoader::LoadVisorGoo; + x904_loaderFuncs[int(EScriptObjectType::JellyZap)] = ScriptLoader::LoadJellyZap; + x904_loaderFuncs[int(EScriptObjectType::ControllerAction)] = ScriptLoader::LoadControllerAction; + x904_loaderFuncs[int(EScriptObjectType::Switch)] = ScriptLoader::LoadSwitch; + x904_loaderFuncs[int(EScriptObjectType::PlayerStateChange)] = ScriptLoader::LoadPlayerStateChange; + x904_loaderFuncs[int(EScriptObjectType::Thardus)] = ScriptLoader::LoadThardus; + x904_loaderFuncs[int(EScriptObjectType::WallCrawlerSwarm)] = ScriptLoader::LoadWallCrawlerSwarm; + x904_loaderFuncs[int(EScriptObjectType::AIJumpPoint)] = ScriptLoader::LoadAIJumpPoint; + x904_loaderFuncs[int(EScriptObjectType::FlaahgraTentacle)] = ScriptLoader::LoadFlaahgraTentacle; + x904_loaderFuncs[int(EScriptObjectType::RoomAcoustics)] = ScriptLoader::LoadRoomAcoustics; + x904_loaderFuncs[int(EScriptObjectType::ColorModulate)] = ScriptLoader::LoadColorModulate; + x904_loaderFuncs[int(EScriptObjectType::ThardusRockProjectile)] = ScriptLoader::LoadThardusRockProjectile; + x904_loaderFuncs[int(EScriptObjectType::Midi)] = ScriptLoader::LoadMidi; + x904_loaderFuncs[int(EScriptObjectType::StreamedAudio)] = ScriptLoader::LoadStreamedAudio; + x904_loaderFuncs[int(EScriptObjectType::WorldTeleporterx62)] = ScriptLoader::LoadWorldTeleporter; + x904_loaderFuncs[int(EScriptObjectType::Repulsor)] = ScriptLoader::LoadRepulsor; + x904_loaderFuncs[int(EScriptObjectType::GunTurret)] = ScriptLoader::LoadGunTurret; + x904_loaderFuncs[int(EScriptObjectType::FogVolume)] = ScriptLoader::LoadFogVolume; + x904_loaderFuncs[int(EScriptObjectType::Babygoth)] = ScriptLoader::LoadBabygoth; + x904_loaderFuncs[int(EScriptObjectType::Eyeball)] = ScriptLoader::LoadEyeball; + x904_loaderFuncs[int(EScriptObjectType::RadialDamage)] = ScriptLoader::LoadRadialDamage; + x904_loaderFuncs[int(EScriptObjectType::CameraPitchVolume)] = ScriptLoader::LoadCameraPitchVolume; + x904_loaderFuncs[int(EScriptObjectType::EnvFxDensityController)] = ScriptLoader::LoadEnvFxDensityController; + x904_loaderFuncs[int(EScriptObjectType::Magdolite)] = ScriptLoader::LoadMagdolite; + x904_loaderFuncs[int(EScriptObjectType::TeamAIMgr)] = ScriptLoader::LoadTeamAIMgr; + x904_loaderFuncs[int(EScriptObjectType::SnakeWeedSwarm)] = ScriptLoader::LoadSnakeWeedSwarm; + x904_loaderFuncs[int(EScriptObjectType::ActorContraption)] = ScriptLoader::LoadActorContraption; + x904_loaderFuncs[int(EScriptObjectType::Oculus)] = ScriptLoader::LoadOculus; + x904_loaderFuncs[int(EScriptObjectType::Geemer)] = ScriptLoader::LoadGeemer; + x904_loaderFuncs[int(EScriptObjectType::SpindleCamera)] = ScriptLoader::LoadSpindleCamera; + x904_loaderFuncs[int(EScriptObjectType::AtomicAlpha)] = ScriptLoader::LoadAtomicAlpha; + x904_loaderFuncs[int(EScriptObjectType::CameraHintTrigger)] = ScriptLoader::LoadCameraHintTrigger; + x904_loaderFuncs[int(EScriptObjectType::RumbleEffect)] = ScriptLoader::LoadRumbleEffect; + x904_loaderFuncs[int(EScriptObjectType::AmbientAI)] = ScriptLoader::LoadAmbientAI; + x904_loaderFuncs[int(EScriptObjectType::AtomicBeta)] = ScriptLoader::LoadAtomicBeta; + x904_loaderFuncs[int(EScriptObjectType::IceZoomer)] = ScriptLoader::LoadIceZoomer; + x904_loaderFuncs[int(EScriptObjectType::Puffer)] = ScriptLoader::LoadPuffer; + x904_loaderFuncs[int(EScriptObjectType::Tryclops)] = ScriptLoader::LoadTryclops; + x904_loaderFuncs[int(EScriptObjectType::Ridley)] = ScriptLoader::LoadRidley; + x904_loaderFuncs[int(EScriptObjectType::Seedling)] = ScriptLoader::LoadSeedling; + x904_loaderFuncs[int(EScriptObjectType::ThermalHeatFader)] = ScriptLoader::LoadThermalHeatFader; + x904_loaderFuncs[int(EScriptObjectType::Burrower)] = ScriptLoader::LoadBurrower; + x904_loaderFuncs[int(EScriptObjectType::ScriptBeam)] = ScriptLoader::LoadScriptBeam; + x904_loaderFuncs[int(EScriptObjectType::WorldLightFader)] = ScriptLoader::LoadWorldLightFader; + x904_loaderFuncs[int(EScriptObjectType::MetroidPrimeStage2)] = ScriptLoader::LoadMetroidPrimeStage2; + x904_loaderFuncs[int(EScriptObjectType::MetroidPrimeStage1)] = ScriptLoader::LoadMetroidPrimeStage1; + x904_loaderFuncs[int(EScriptObjectType::MazeNode)] = ScriptLoader::LoadMazeNode; + x904_loaderFuncs[int(EScriptObjectType::OmegaPirate)] = ScriptLoader::LoadOmegaPirate; + x904_loaderFuncs[int(EScriptObjectType::PhazonPool)] = ScriptLoader::LoadPhazonPool; + x904_loaderFuncs[int(EScriptObjectType::PhazonHealingNodule)] = ScriptLoader::LoadPhazonHealingNodule; + x904_loaderFuncs[int(EScriptObjectType::NewCameraShaker)] = ScriptLoader::LoadNewCameraShaker; + x904_loaderFuncs[int(EScriptObjectType::ShadowProjector)] = ScriptLoader::LoadShadowProjector; + x904_loaderFuncs[int(EScriptObjectType::EnergyBall)] = ScriptLoader::LoadEnergyBall; } void CStateManager::RenderLast(TUniqueId) diff --git a/Runtime/CStateManager.hpp b/Runtime/CStateManager.hpp index 86d3dba97..9495f38ff 100644 --- a/Runtime/CStateManager.hpp +++ b/Runtime/CStateManager.hpp @@ -2,6 +2,7 @@ #define __URDE_CSTATEMANAGER_HPP__ #include +#include #include "CBasics.hpp" #include "ScriptObjectSupport.hpp" #include "GameObjectLists.hpp" @@ -11,6 +12,8 @@ #include "zeus/CAABox.hpp" #include "CWeaponMgr.hpp" #include "World/CAi.hpp" +#include "CToken.hpp" +#include "World/ScriptLoader.hpp" namespace urde { @@ -30,10 +33,21 @@ class CLight; class CDamageInfo; class CMaterialFilter; class CFinalInput; +class CWorld; +class CTexture; + +struct SScriptObjectStream +{ + CEntity* x0_obj; + EScriptObjectType x4_type; + u32 x8_position; + u32 xc_length; +}; class CStateManager { TUniqueId x8_idArr[1024] = {}; + std::unique_ptr x80c_allObjs; std::unique_ptr x814_actorObjs; std::unique_ptr x81c_physActorObjs; @@ -43,6 +57,8 @@ class CStateManager std::unique_ptr x83c_aiWaypointObjs; std::unique_ptr x844_platformAndDoorObjs; + std::unique_ptr x850_world; + /* Used to be a list of 32-element reserved_vectors */ std::vector x858_objectGraveyard; @@ -56,14 +72,59 @@ class CStateManager std::unique_ptr x888_teamAiTypes; std::unique_ptr x88c_rumbleManager; + std::map x890_scriptIdMap; + std::map x8a4_loadedScriptObjects; + + std::shared_ptr x8b8_playerState; + std::shared_ptr x8bc_scriptMailbox; + std::shared_ptr x8c0_mapWorldInfo; + std::shared_ptr x8c4_worldTransManager; + + TAreaId x8c8_currentAreaId; + TAreaId x8cc_nextAreaId; + u32 x8d0_extFrameIdx = 0; + u32 x8d4_updateFrameIdx = 0; + u32 x8d8_drawFrameIdx = 0; + + std::vector x8dc_dynamicLights; + + TLockedToken x8ec_shadowTex; /* DefaultShadow in MiscData */ + CRandom16 x8f8_random; CRandom16* x8fc_activeRandom = nullptr; - std::shared_ptr x8b8_playerState; + FScriptLoader x904_loaderFuncs[int(EScriptObjectType::ScriptObjectTypeMAX)] = {}; + + bool xab0_worldLoaded = false; + + std::set xab4_uniqueInstanceNames; CCameraFilterPass xaf8_camFilterPasses[9]; CCameraBlurPass xc88_camBlurPasses[9]; + s32 xe60_ = -1; + zeus::CVector3f xe64_; + + TUniqueId xe70_ = kInvalidUniqueId; + zeus::CVector3f xe74_ = {0.f, 1.f, 1.f}; + + s32 xe80_ = 2; + TUniqueId xe84_ = kInvalidUniqueId; + + union + { + struct + { + bool xe86_24_; + bool xe86_25_; + bool xe86_26_; + bool xe86_27_; + bool xe86_28_; + bool xe86_29_; + }; + u16 _dummy = 0; + }; + public: enum class EScriptPersistence { diff --git a/Runtime/Collision/CCollidableOBBTree.cpp b/Runtime/Collision/CCollidableOBBTree.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Collision/CCollidableOBBTree.hpp b/Runtime/Collision/CCollidableOBBTree.hpp new file mode 100644 index 000000000..f7eb5c9d5 --- /dev/null +++ b/Runtime/Collision/CCollidableOBBTree.hpp @@ -0,0 +1,13 @@ +#ifndef __URDE_CCOLLIDABLEOBBTREE_HPP__ +#define __URDE_CCOLLIDABLEOBBTREE_HPP__ + +namespace urde +{ + +class CCollidableOBBTree +{ +}; + +} + +#endif // __URDE_CCOLLIDABLEOBBTREE_HPP__ diff --git a/Runtime/Collision/CCollidableOBBTreeGroup.cpp b/Runtime/Collision/CCollidableOBBTreeGroup.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Collision/CCollidableOBBTreeGroup.hpp b/Runtime/Collision/CCollidableOBBTreeGroup.hpp new file mode 100644 index 000000000..19f39060d --- /dev/null +++ b/Runtime/Collision/CCollidableOBBTreeGroup.hpp @@ -0,0 +1,13 @@ +#ifndef __URDE_CCOLLIDABLEOBBTREEGROUP_HPP__ +#define __URDE_CCOLLIDABLEOBBTREEGROUP_HPP__ + +namespace urde +{ + +class CCollidableOBBTreeGroup +{ +}; + +} + +#endif // __URDE_CCOLLIDABLEOBBTREEGROUP_HPP__ diff --git a/Runtime/Collision/CCollisionInfo.cpp b/Runtime/Collision/CCollisionInfo.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Collision/CCollisionInfo.hpp b/Runtime/Collision/CCollisionInfo.hpp new file mode 100644 index 000000000..b22b20b18 --- /dev/null +++ b/Runtime/Collision/CCollisionInfo.hpp @@ -0,0 +1,13 @@ +#ifndef __URDE_CCOLLISIONINFO_HPP__ +#define __URDE_CCOLLISIONINFO_HPP__ + +namespace urde +{ + +class CCollisionInfo +{ +}; + +} + +#endif // __URDE_CCOLLISIONINFO_HPP__ diff --git a/Runtime/Collision/CCollisionPrimitive.cpp b/Runtime/Collision/CCollisionPrimitive.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Collision/CCollisionPrimitive.hpp b/Runtime/Collision/CCollisionPrimitive.hpp new file mode 100644 index 000000000..1aef97b39 --- /dev/null +++ b/Runtime/Collision/CCollisionPrimitive.hpp @@ -0,0 +1,25 @@ +#ifndef __URDE_CCOLLISIONPRIMITIVE_HPP__ +#define __URDE_CCOLLISIONPRIMITIVE_HPP__ + +namespace urde +{ + +class CCollisionPrimitive +{ +public: + enum class Type + { + }; + + static void InitBeginTypes(); + static void InitAddType(Type tp); + static void InitEndTypes(); + + static void InitBeginColliders(); + static void InitAddCollider(Type tp); + static void InitEndTypes(); +}; + +} + +#endif // __URDE_CCOLLISIONPRIMITIVE_HPP__ diff --git a/Runtime/Collision/CGameCollision.cpp b/Runtime/Collision/CGameCollision.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/Collision/CGameCollision.hpp b/Runtime/Collision/CGameCollision.hpp new file mode 100644 index 000000000..522bed5fc --- /dev/null +++ b/Runtime/Collision/CGameCollision.hpp @@ -0,0 +1,20 @@ +#ifndef __URDE_CGAMECOLLISION_HPP__ +#define __URDE_CGAMECOLLISION_HPP__ + +namespace urde +{ + +class CInternalCollisionStructure +{ +}; + +class CGameCollision +{ +public: + static void InitCollision(); + +}; + +} + +#endif // __URDE_CGAMECOLLISION_HPP__ diff --git a/Runtime/Collision/CMakeLists.txt b/Runtime/Collision/CMakeLists.txt new file mode 100644 index 000000000..f5a13c226 --- /dev/null +++ b/Runtime/Collision/CMakeLists.txt @@ -0,0 +1,5 @@ +add_library(RuntimeCommonCollision + CGameCollision.hpp CGameCollision.cpp + CCollisionInfo.hpp CCollisionInfo.cpp + CCollidableOBBTree.hpp CCollidableOBBTree.cpp + CCollidableOBBTreeGroup.hpp CCollidableOBBTreeGroup.cpp) diff --git a/Runtime/RetroTypes.hpp b/Runtime/RetroTypes.hpp index d15fdeb3a..238558137 100644 --- a/Runtime/RetroTypes.hpp +++ b/Runtime/RetroTypes.hpp @@ -34,6 +34,7 @@ struct SObjectTag using TUniqueId = s16; using TEditorId = s32; using TAreaId = s32; +using TGameScriptId = s32; #define kInvalidEditorId TEditorId(-1) #define kInvalidUniqueId TUniqueId(-1) diff --git a/Runtime/ScriptObjectSupport.hpp b/Runtime/ScriptObjectSupport.hpp index 01680504f..f9b158dee 100644 --- a/Runtime/ScriptObjectSupport.hpp +++ b/Runtime/ScriptObjectSupport.hpp @@ -6,6 +6,134 @@ namespace urde enum class EScriptObjectType { + Actor = 0x00, + Waypoint = 0x02, + DoorArea = 0x03, + Trigger = 0x04, + Timer = 0x05, + Counter = 0x06, + Effect = 0x07, + Platform = 0x08, + Sound = 0x09, + Generator = 0x0A, + Dock = 0x0B, + Camera = 0x0C, + CameraWaypoint = 0x0D, + NewIntroBoss = 0x0E, + SpawnPoint = 0x0F, + CameraHint = 0x10, + Pickup = 0x11, + MemoryRelay = 0x13, + RandomRelay = 0x14, + Relay = 0x15, + Beetle = 0x16, + HUDMemo = 0x17, + CameraFilterKeyframe = 0x18, + CameraBlurKeyframe = 0x19, + DamageableTrigger = 0x1A, + Debris = 0x1B, + CameraShaker = 0x1C, + ActorKeyframe = 0x1D, + Water = 0x20, + Warwasp = 0x21, + SpacePirate = 0x24, + FlyingPirate = 0x25, + ElitePirate = 0x26, + MetroidBeta = 0x27, + ChozoGhost = 0x28, + CoverPoint = 0x2A, + SpiderBallWaypoint = 0x2C, + BloodFlower = 0x2D, + FlickerBat = 0x2E, + PathCamera = 0x2F, + GrapplePoint = 0x30, + PuddleSpore = 0x31, + DebugCameraWaypoint = 0x32, + SpiderBallAttractionSurface = 0x33, + PuddleToadGamma = 0x34, + DistanceFog = 0x35, + FireFlea = 0x36, + MetareeAlpha = 0x37, + DockAreaChange = 0x38, + ActorRotate = 0x39, + SpecialFunction = 0x3A, + SpankWeed = 0x3B, + Parasite = 0x3D, + PlayerHint = 0x3E, + Ripper = 0x3F, + PickupGenerator = 0x40, + AIKeyframe = 0x41, + PointOfInterest = 0x42, + Drone = 0x43, + MetroidAlpha = 0x44, + DebrisExtended = 0x45, + Steam = 0x46, + Ripple = 0x47, + BallTrigger = 0x48, + TargetingPoint = 0x49, + ElectroMagneticPulse = 0x4A, + IceSheegoth = 0x4B, + PlayerActor = 0x4C, + Flaahgra = 0x4D, + AreaAttributes = 0x4E, + FishCloud = 0x4F, + FishCloudModifier = 0x50, + VisorFlare = 0x51, + WorldTeleporterx52 = 0x52, + VisorGoo = 0x53, + JellyZap = 0x54, + ControllerAction = 0x55, + Switch = 0x56, + PlayerStateChange = 0x57, + Thardus = 0x58, + WallCrawlerSwarm = 0x5A, + AIJumpPoint = 0x5B, + FlaahgraTentacle = 0x5C, + RoomAcoustics = 0x5D, + ColorModulate = 0x5E, + ThardusRockProjectile = 0x5F, + Midi = 0x60, + StreamedAudio = 0x61, + WorldTeleporterx62 = 0x62, + Repulsor = 0x63, + GunTurret = 0x64, + FogVolume = 0x65, + Babygoth = 0x66, + Eyeball = 0x67, + RadialDamage = 0x68, + CameraPitchVolume = 0x69, + EnvFxDensityController = 0x6A, + Magdolite = 0x6B, + TeamAIMgr = 0x6C, + SnakeWeedSwarm = 0x6D, + ActorContraption = 0x6E, + Oculus = 0x6F, + Geemer = 0x70, + SpindleCamera = 0x71, + AtomicAlpha = 0x72, + CameraHintTrigger = 0x73, + RumbleEffect = 0x74, + AmbientAI = 0x75, + AtomicBeta = 0x77, + IceZoomer = 0x78, + Puffer = 0x79, + Tryclops = 0x7A, + Ridley = 0x7B, + Seedling = 0x7C, + ThermalHeatFader = 0x7D, + Burrower = 0x7F, + ScriptBeam = 0x81, + WorldLightFader = 0x82, + MetroidPrimeStage2 = 0x83, + MetroidPrimeStage1 = 0x84, + MazeNode = 0x85, + OmegaPirate = 0x86, + PhazonPool = 0x87, + PhazonHealingNodule = 0x88, + NewCameraShaker = 0x89, + ShadowProjector = 0x8A, + EnergyBall = 0x8B, + ScriptObjectTypeMAX }; enum class EScriptObjectState diff --git a/Runtime/World/CMakeLists.txt b/Runtime/World/CMakeLists.txt index 18be68d45..55b0d67d2 100644 --- a/Runtime/World/CMakeLists.txt +++ b/Runtime/World/CMakeLists.txt @@ -1,8 +1,10 @@ add_library(RuntimeCommonWorld + CWorld.hpp CWorld.cpp CGameArea.hpp CGameArea.cpp CPathFindArea.hpp CPathFindArea.cpp CAreaOctTree.hpp CAreaOctTree.cpp CActor.hpp CActor.cpp + CPhysicsActor.hpp CPhysicsActor.cpp CAi.hpp CAi.cpp CEntity.hpp CEntity.cpp CPhysicsActor.hpp CPhysicsActor.cpp @@ -10,4 +12,5 @@ add_library(RuntimeCommonWorld CEnvFxManager.hpp CEnvFxManager.cpp CActorModelParticles.hpp CActorModelParticles.cpp CTeamAiTypes.hpp CTeamAiTypes.cpp + ScriptLoader.hpp ScriptLoader.cpp CScriptWater.hpp CScriptWater.cpp) diff --git a/Runtime/World/CWorld.cpp b/Runtime/World/CWorld.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/Runtime/World/CWorld.hpp b/Runtime/World/CWorld.hpp new file mode 100644 index 000000000..37007cec8 --- /dev/null +++ b/Runtime/World/CWorld.hpp @@ -0,0 +1,13 @@ +#ifndef __URDE_CWORLD_HPP__ +#define __URDE_CWORLD_HPP__ + +namespace urde +{ + +class CWorld +{ +}; + +} + +#endif // __URDE_CWORLD_HPP__ diff --git a/Runtime/World/ScriptLoader.cpp b/Runtime/World/ScriptLoader.cpp new file mode 100644 index 000000000..eb99e9176 --- /dev/null +++ b/Runtime/World/ScriptLoader.cpp @@ -0,0 +1,514 @@ +#include "ScriptLoader.hpp" + +namespace urde +{ + +CEntity* ScriptLoader::LoadActor(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDoorArea(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadTimer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCounter(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadEffect(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPlatform(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSound(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadGenerator(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDock(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCamera(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadNewIntroBoss(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpawnPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraHint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPickup(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMemoryRelay(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRandomRelay(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRelay(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadBeetle(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadHUDMemo(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraFilterKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraBlurKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDamageableTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDebris(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraShaker(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadActorKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadWater(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadWarwasp(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpacePirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFlyingPirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadElitePirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMetroidBeta(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadChozoGhost(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCoverPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpiderBallWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadBloodFlower(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFlickerBat(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPathCamera(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadGrapplePoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPuddleSpore(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDebugCameraWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpiderBallAttractionSurface(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPuddleToadGamma(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDistanceFog(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFireFlea(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMetareeAlpha(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDockAreaChange(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadActorRotate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpecialFunction(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpankWeed(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadParasite(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPlayerHint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRipper(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPickupGenerator(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadAIKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPointOfInterest(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDrone(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMetroidAlpha(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadDebrisExtended(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSteam(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRipple(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadBallTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadTargetingPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadElectroMagneticPulse(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadIceSheegoth(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPlayerActor(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFlaahgra(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadAreaAttributes(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFishCloud(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFishCloudModifier(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadVisorFlare(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadWorldTeleporter(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadVisorGoo(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadJellyZap(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadControllerAction(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSwitch(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPlayerStateChange(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadThardus(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadWallCrawlerSwarm(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadAIJumpPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFlaahgraTentacle(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRoomAcoustics(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadColorModulate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadThardusRockProjectile(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMidi(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadStreamedAudio(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRepulsor(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadGunTurret(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadFogVolume(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadBabygoth(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadEyeball(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRadialDamage(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraPitchVolume(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadEnvFxDensityController(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMagdolite(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadTeamAIMgr(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSnakeWeedSwarm(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::Load(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadActorContraption(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadOculus(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadGeemer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSpindleCamera(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadAtomicAlpha(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadCameraHintTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRumbleEffect(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadAmbientAI(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadAtomicBeta(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadIceZoomer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPuffer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadTryclops(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadRidley(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadSeedling(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadThermalHeatFader(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadBurrower(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadScriptBeam(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadWorldLightFader(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMetroidPrimeStage2(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMetroidPrimeStage1(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadMazeNode(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadOmegaPirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPhazonPool(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadPhazonHealingNodule(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadNewCameraShaker(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadShadowProjector(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +CEntity* ScriptLoader::LoadEnergyBall(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info) +{ +} + +} diff --git a/Runtime/World/ScriptLoader.hpp b/Runtime/World/ScriptLoader.hpp new file mode 100644 index 000000000..d258b60b2 --- /dev/null +++ b/Runtime/World/ScriptLoader.hpp @@ -0,0 +1,149 @@ +#ifndef __URDE_SCRIPTLOADER_HPP__ +#define __URDE_SCRIPTLOADER_HPP__ + +#include "IOStreams.hpp" + +namespace urde +{ +class CStateManager; +class CEntityInfo; +class CEntity; + +using FScriptLoader = std::function; + +class ScriptLoader +{ +public: + static CEntity* LoadActor(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDoorArea(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadTimer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCounter(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadEffect(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPlatform(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSound(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadGenerator(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDock(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCamera(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadNewIntroBoss(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpawnPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraHint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPickup(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMemoryRelay(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRandomRelay(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRelay(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadBeetle(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadHUDMemo(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraFilterKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraBlurKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDamageableTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDebris(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraShaker(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadActorKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadWater(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadWarwasp(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpacePirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFlyingPirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadElitePirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMetroidBeta(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadChozoGhost(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCoverPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpiderBallWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadBloodFlower(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFlickerBat(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPathCamera(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadGrapplePoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPuddleSpore(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDebugCameraWaypoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpiderBallAttractionSurface(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPuddleToadGamma(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDistanceFog(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFireFlea(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMetareeAlpha(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDockAreaChange(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadActorRotate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpecialFunction(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpankWeed(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadParasite(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPlayerHint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRipper(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPickupGenerator(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadAIKeyframe(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPointOfInterest(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDrone(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMetroidAlpha(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadDebrisExtended(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSteam(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRipple(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadBallTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadTargetingPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadElectroMagneticPulse(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadIceSheegoth(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPlayerActor(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFlaahgra(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadAreaAttributes(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFishCloud(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFishCloudModifier(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadVisorFlare(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadWorldTeleporter(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadVisorGoo(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadJellyZap(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadControllerAction(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSwitch(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPlayerStateChange(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadThardus(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadWallCrawlerSwarm(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadAIJumpPoint(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFlaahgraTentacle(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRoomAcoustics(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadColorModulate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadThardusRockProjectile(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMidi(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadStreamedAudio(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRepulsor(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadGunTurret(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadFogVolume(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadBabygoth(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadEyeball(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRadialDamage(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraPitchVolume(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadEnvFxDensityController(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMagdolite(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadTeamAIMgr(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSnakeWeedSwarm(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* Load(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadActorContraption(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadOculus(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadGeemer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSpindleCamera(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadAtomicAlpha(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadCameraHintTrigger(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRumbleEffect(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadAmbientAI(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadAtomicBeta(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadIceZoomer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPuffer(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadTryclops(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadRidley(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadSeedling(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadThermalHeatFader(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadBurrower(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadScriptBeam(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadWorldLightFader(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMetroidPrimeStage2(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMetroidPrimeStage1(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadMazeNode(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadOmegaPirate(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPhazonPool(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadPhazonHealingNodule(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadNewCameraShaker(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadShadowProjector(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); + static CEntity* LoadEnergyBall(CStateManager& mgr, CInputStream& in, int, const CEntityInfo& info); +}; + +} + +#endif // __URDE_SCRIPTLOADER_HPP__