From 4740ca0c437655eaf68ffe8ed6b7cf77f23c7b85 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Wed, 26 May 2021 10:00:57 -0400 Subject: [PATCH] Add all entities to ImGuiEntitySupport --- Runtime/Camera/CBallCamera.hpp | 1 + Runtime/Camera/CCinematicCamera.hpp | 1 + Runtime/Camera/CFirstPersonCamera.hpp | 1 + Runtime/Camera/CGameCamera.hpp | 1 + Runtime/Camera/CInterpolationCamera.hpp | 1 + Runtime/Camera/CPathCamera.hpp | 1 + Runtime/Collision/CCollisionActor.hpp | 1 + Runtime/ImGuiConsole.cpp | 13 +- Runtime/ImGuiEntitySupport.cpp | 343 +++++++++++++++++- Runtime/MP1/World/CActorContraption.hpp | 1 + Runtime/MP1/World/CBouncyGrenade.hpp | 1 + Runtime/MP1/World/CDroneLaser.hpp | 1 + Runtime/MP1/World/CFireFlea.hpp | 1 + Runtime/MP1/World/CFlaahgra.hpp | 2 + Runtime/MP1/World/CFlaahgraProjectile.hpp | 1 + Runtime/MP1/World/CGrenadeLauncher.hpp | 1 + Runtime/MP1/World/CIceAttackProjectile.hpp | 1 + Runtime/MP1/World/CMetroidPrimeExo.hpp | 1 + Runtime/MP1/World/CMetroidPrimeProjectile.hpp | 1 + Runtime/MP1/World/CMetroidPrimeRelay.hpp | 1 + Runtime/MP1/World/COmegaPirate.hpp | 2 + Runtime/MP1/World/CPhazonPool.hpp | 1 + Runtime/MP1/World/CRipper.hpp | 1 + Runtime/MP1/World/CShockWave.hpp | 1 + Runtime/Weapon/CBeamProjectile.hpp | 1 + Runtime/Weapon/CBomb.hpp | 1 + Runtime/Weapon/CElectricBeamProjectile.hpp | 1 + Runtime/Weapon/CEnergyProjectile.hpp | 1 + Runtime/Weapon/CFlameThrower.hpp | 1 + Runtime/Weapon/CGameProjectile.hpp | 1 + Runtime/Weapon/CNewFlameThrower.hpp | 1 + Runtime/Weapon/CPlasmaProjectile.hpp | 1 + Runtime/Weapon/CPowerBomb.hpp | 1 + Runtime/Weapon/CTargetableProjectile.hpp | 1 + Runtime/Weapon/CWaveBuster.hpp | 1 + Runtime/Weapon/CWeapon.hpp | 1 + Runtime/World/CActor.hpp | 3 +- Runtime/World/CAi.hpp | 3 +- Runtime/World/CAmbientAI.hpp | 1 + Runtime/World/CDestroyableRock.hpp | 1 + Runtime/World/CEffect.hpp | 1 + Runtime/World/CEntity.hpp | 2 + Runtime/World/CExplosion.hpp | 1 + Runtime/World/CFire.hpp | 1 + Runtime/World/CFishCloud.hpp | 1 + Runtime/World/CFishCloudModifier.hpp | 1 + Runtime/World/CGameLight.hpp | 1 + Runtime/World/CHUDBillboardEffect.hpp | 1 + Runtime/World/CIceImpact.hpp | 1 + Runtime/World/CPatterned.hpp | 5 +- Runtime/World/CPhysicsActor.hpp | 3 +- Runtime/World/CPlayer.hpp | 3 +- Runtime/World/CRepulsor.hpp | 1 + Runtime/World/CScriptActor.hpp | 1 + Runtime/World/CScriptActorKeyframe.hpp | 1 + Runtime/World/CScriptActorRotate.hpp | 1 + Runtime/World/CScriptAiJumpPoint.hpp | 1 + Runtime/World/CScriptAreaAttributes.hpp | 1 + Runtime/World/CScriptBallTrigger.hpp | 1 + Runtime/World/CScriptBeam.hpp | 1 + Runtime/World/CScriptCameraBlurKeyframe.hpp | 1 + Runtime/World/CScriptCameraFilterKeyframe.hpp | 1 + Runtime/World/CScriptCameraHint.hpp | 1 + Runtime/World/CScriptCameraHintTrigger.hpp | 1 + Runtime/World/CScriptCameraPitchVolume.hpp | 1 + Runtime/World/CScriptCameraShaker.hpp | 1 + Runtime/World/CScriptCameraWaypoint.hpp | 1 + Runtime/World/CScriptColorModulate.hpp | 1 + Runtime/World/CScriptControllerAction.hpp | 1 + Runtime/World/CScriptCounter.hpp | 1 + Runtime/World/CScriptCoverPoint.hpp | 1 + Runtime/World/CScriptDamageableTrigger.hpp | 1 + Runtime/World/CScriptDebris.hpp | 1 + Runtime/World/CScriptDebugCameraWaypoint.hpp | 1 + Runtime/World/CScriptDistanceFog.hpp | 1 + Runtime/World/CScriptDock.hpp | 1 + Runtime/World/CScriptDockAreaChange.hpp | 1 + Runtime/World/CScriptDoor.hpp | 1 + Runtime/World/CScriptEMPulse.hpp | 1 + Runtime/World/CScriptEffect.hpp | 1 + Runtime/World/CScriptGenerator.hpp | 1 + Runtime/World/CScriptGrapplePoint.hpp | 1 + Runtime/World/CScriptGunTurret.hpp | 1 + Runtime/World/CScriptHUDMemo.hpp | 1 + Runtime/World/CScriptMazeNode.hpp | 1 + Runtime/World/CScriptMemoryRelay.hpp | 1 + Runtime/World/CScriptMidi.hpp | 1 + Runtime/World/CScriptPickup.hpp | 1 + Runtime/World/CScriptPickupGenerator.hpp | 1 + Runtime/World/CScriptPlatform.hpp | 1 + Runtime/World/CScriptPlayerActor.hpp | 1 + Runtime/World/CScriptPlayerHint.hpp | 1 + Runtime/World/CScriptPlayerStateChange.hpp | 1 + Runtime/World/CScriptPointOfInterest.hpp | 1 + Runtime/World/CScriptRandomRelay.hpp | 1 + Runtime/World/CScriptRelay.hpp | 1 + Runtime/World/CScriptRipple.hpp | 1 + Runtime/World/CScriptRoomAcoustics.hpp | 1 + Runtime/World/CScriptShadowProjector.hpp | 1 + Runtime/World/CScriptSound.hpp | 1 + Runtime/World/CScriptSpawnPoint.hpp | 1 + Runtime/World/CScriptSpecialFunction.hpp | 1 + .../CScriptSpiderBallAttractionSurface.hpp | 1 + Runtime/World/CScriptSpiderBallWaypoint.hpp | 1 + Runtime/World/CScriptSpindleCamera.hpp | 1 + Runtime/World/CScriptSteam.hpp | 1 + Runtime/World/CScriptStreamedMusic.hpp | 1 + Runtime/World/CScriptSwitch.hpp | 1 + Runtime/World/CScriptTargetingPoint.hpp | 1 + Runtime/World/CScriptTimer.hpp | 1 + Runtime/World/CScriptTrigger.hpp | 1 + Runtime/World/CScriptVisorFlare.hpp | 1 + Runtime/World/CScriptVisorGoo.hpp | 1 + Runtime/World/CScriptWater.hpp | 1 + Runtime/World/CScriptWaypoint.hpp | 1 + Runtime/World/CScriptWorldTeleporter.hpp | 1 + Runtime/World/CSnakeWeedSwarm.hpp | 1 + Runtime/World/CTeamAiMgr.hpp | 1 + Runtime/World/CWallCrawlerSwarm.hpp | 1 + Runtime/World/CWallWalker.hpp | 1 + 120 files changed, 474 insertions(+), 15 deletions(-) diff --git a/Runtime/Camera/CBallCamera.hpp b/Runtime/Camera/CBallCamera.hpp index 503aa5f13..6cab970ef 100644 --- a/Runtime/Camera/CBallCamera.hpp +++ b/Runtime/Camera/CBallCamera.hpp @@ -53,6 +53,7 @@ public: class CBallCamera : public CGameCamera { public: + DEFINE_ENTITY enum class EBallCameraState { Default, One, Chase, Boost, ToBall, FromBall }; enum class EBallCameraBehaviour { Default, diff --git a/Runtime/Camera/CCinematicCamera.hpp b/Runtime/Camera/CCinematicCamera.hpp index 0f8646b9c..bcdea9e00 100644 --- a/Runtime/Camera/CCinematicCamera.hpp +++ b/Runtime/Camera/CCinematicCamera.hpp @@ -42,6 +42,7 @@ class CCinematicCamera : public CGameCamera { void CalculateWaypoints(CStateManager& mgr); public: + DEFINE_ENTITY CCinematicCamera(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, float shotDuration, float fovy, float znear, float zfar, float aspect, u32 flags); diff --git a/Runtime/Camera/CFirstPersonCamera.hpp b/Runtime/Camera/CFirstPersonCamera.hpp index 55ab79373..b16638e57 100644 --- a/Runtime/Camera/CFirstPersonCamera.hpp +++ b/Runtime/Camera/CFirstPersonCamera.hpp @@ -19,6 +19,7 @@ class CFirstPersonCamera : public CGameCamera { float x1d4_closeInTimer = 0.f; void _fovListener(hecl::CVar* cv); public: + DEFINE_ENTITY CFirstPersonCamera(TUniqueId, const zeus::CTransform& xf, TUniqueId, float orbitCameraSpeed, float fov, float nearplane, float farplane, float aspect); diff --git a/Runtime/Camera/CGameCamera.hpp b/Runtime/Camera/CGameCamera.hpp index 5152252ff..0950cc897 100644 --- a/Runtime/Camera/CGameCamera.hpp +++ b/Runtime/Camera/CGameCamera.hpp @@ -31,6 +31,7 @@ protected: float x184_perspInterpEndFov; public: + DEFINE_ENTITY CGameCamera(TUniqueId, bool active, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, float fov, float nearz, float farz, float aspect, TUniqueId watchedId, bool disableInput, u32 controllerIdx); diff --git a/Runtime/Camera/CInterpolationCamera.hpp b/Runtime/Camera/CInterpolationCamera.hpp index 549fefa5c..2b9ccf688 100644 --- a/Runtime/Camera/CInterpolationCamera.hpp +++ b/Runtime/Camera/CInterpolationCamera.hpp @@ -26,6 +26,7 @@ class CInterpolationCamera : public CGameCamera { float maxTime, float curTime); public: + DEFINE_ENTITY explicit CInterpolationCamera(TUniqueId uid, const zeus::CTransform& xf); void Accept(IVisitor& visitor) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; diff --git a/Runtime/Camera/CPathCamera.hpp b/Runtime/Camera/CPathCamera.hpp index 31df65fec..d7f2f2bb5 100644 --- a/Runtime/Camera/CPathCamera.hpp +++ b/Runtime/Camera/CPathCamera.hpp @@ -22,6 +22,7 @@ private: float x1f4_maxEaseDist; public: + DEFINE_ENTITY CPathCamera(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, float lengthExtent, float filterMag, float filterProportion, float minEaseDist, float maxEaseDist, u32 flags, EInitialSplinePosition initPos); diff --git a/Runtime/Collision/CCollisionActor.hpp b/Runtime/Collision/CCollisionActor.hpp index a108688f4..3647b7f78 100644 --- a/Runtime/Collision/CCollisionActor.hpp +++ b/Runtime/Collision/CCollisionActor.hpp @@ -35,6 +35,7 @@ class CCollisionActor : public CPhysicsActor { CAABoxShader m_aabox; public: + DEFINE_ENTITY CCollisionActor(TUniqueId uid, TAreaId areaId, TUniqueId owner, const zeus::CVector3f& extent, const zeus::CVector3f& center, bool active, float mass, std::string_view name); CCollisionActor(TUniqueId uid, TAreaId areaId, TUniqueId owner, const zeus::CVector3f& boxSize, bool active, diff --git a/Runtime/ImGuiConsole.cpp b/Runtime/ImGuiConsole.cpp index 4fd909560..a09588d91 100644 --- a/Runtime/ImGuiConsole.cpp +++ b/Runtime/ImGuiConsole.cpp @@ -90,12 +90,17 @@ static void Warp(const CAssetId worldId, TAreaId aId) { } } +static bool stepFrame = false; + static void ShowMenuGame() { static bool paused; paused = g_Main->IsPaused(); if (ImGui::MenuItem("Paused", nullptr, &paused)) { g_Main->SetPaused(paused); } + if (ImGui::MenuItem("Step", nullptr, &stepFrame, paused)) { + g_Main->SetPaused(false); + } if (ImGui::BeginMenu("Warp", g_StateManager != nullptr && g_ResFactory != nullptr && g_ResFactory->GetResLoader() != nullptr)) { for (const auto& world : ListWorlds()) { @@ -235,7 +240,13 @@ static void ShowAppMainMenuBar() { } } -void ImGuiConsole::proc() { ShowAppMainMenuBar(); } +void ImGuiConsole::proc() { + if (stepFrame) { + g_Main->SetPaused(true); + stepFrame = false; + } + ShowAppMainMenuBar(); +} ImGuiConsole::~ImGuiConsole() { dummyWorlds.clear(); diff --git a/Runtime/ImGuiEntitySupport.cpp b/Runtime/ImGuiEntitySupport.cpp index 1dd9ca189..1a5e63bda 100644 --- a/Runtime/ImGuiEntitySupport.cpp +++ b/Runtime/ImGuiEntitySupport.cpp @@ -1,8 +1,157 @@ -#include "Runtime/World/CEntity.hpp" #include "Runtime/World/CActor.hpp" #include "Runtime/World/CAi.hpp" +#include "Runtime/World/CAmbientAI.hpp" +#include "Runtime/World/CDestroyableRock.hpp" +#include "Runtime/World/CEffect.hpp" +#include "Runtime/World/CEntity.hpp" +#include "Runtime/World/CExplosion.hpp" +#include "Runtime/World/CFire.hpp" +#include "Runtime/World/CFishCloud.hpp" +#include "Runtime/World/CFishCloudModifier.hpp" +#include "Runtime/World/CGameLight.hpp" +#include "Runtime/World/CHUDBillboardEffect.hpp" +#include "Runtime/World/CIceImpact.hpp" #include "Runtime/World/CPatterned.hpp" #include "Runtime/World/CPlayer.hpp" +#include "Runtime/World/CRepulsor.hpp" +#include "Runtime/World/CScriptActor.hpp" +#include "Runtime/World/CScriptActorKeyframe.hpp" +#include "Runtime/World/CScriptActorRotate.hpp" +#include "Runtime/World/CScriptAiJumpPoint.hpp" +#include "Runtime/World/CScriptAreaAttributes.hpp" +#include "Runtime/World/CScriptBallTrigger.hpp" +#include "Runtime/World/CScriptBeam.hpp" +#include "Runtime/World/CScriptCameraBlurKeyframe.hpp" +#include "Runtime/World/CScriptCameraFilterKeyframe.hpp" +#include "Runtime/World/CScriptCameraHint.hpp" +#include "Runtime/World/CScriptCameraHintTrigger.hpp" +#include "Runtime/World/CScriptCameraPitchVolume.hpp" +#include "Runtime/World/CScriptCameraShaker.hpp" +#include "Runtime/World/CScriptCameraWaypoint.hpp" +#include "Runtime/World/CScriptColorModulate.hpp" +#include "Runtime/World/CScriptControllerAction.hpp" +#include "Runtime/World/CScriptCounter.hpp" +#include "Runtime/World/CScriptCoverPoint.hpp" +#include "Runtime/World/CScriptDamageableTrigger.hpp" +#include "Runtime/World/CScriptDebris.hpp" +#include "Runtime/World/CScriptDebugCameraWaypoint.hpp" +#include "Runtime/World/CScriptDistanceFog.hpp" +#include "Runtime/World/CScriptDock.hpp" +#include "Runtime/World/CScriptDockAreaChange.hpp" +#include "Runtime/World/CScriptDoor.hpp" +#include "Runtime/World/CScriptEMPulse.hpp" +#include "Runtime/World/CScriptEffect.hpp" +#include "Runtime/World/CScriptGenerator.hpp" +#include "Runtime/World/CScriptGrapplePoint.hpp" +#include "Runtime/World/CScriptGunTurret.hpp" +#include "Runtime/World/CScriptHUDMemo.hpp" +#include "Runtime/World/CScriptMazeNode.hpp" +#include "Runtime/World/CScriptMemoryRelay.hpp" +#include "Runtime/World/CScriptMidi.hpp" +#include "Runtime/World/CScriptPickup.hpp" +#include "Runtime/World/CScriptPickupGenerator.hpp" +#include "Runtime/World/CScriptPlatform.hpp" +#include "Runtime/World/CScriptPlayerActor.hpp" +#include "Runtime/World/CScriptPlayerHint.hpp" +#include "Runtime/World/CScriptPlayerStateChange.hpp" +#include "Runtime/World/CScriptPointOfInterest.hpp" +#include "Runtime/World/CScriptRandomRelay.hpp" +#include "Runtime/World/CScriptRelay.hpp" +#include "Runtime/World/CScriptRipple.hpp" +#include "Runtime/World/CScriptRoomAcoustics.hpp" +#include "Runtime/World/CScriptShadowProjector.hpp" +#include "Runtime/World/CScriptSound.hpp" +#include "Runtime/World/CScriptSpawnPoint.hpp" +#include "Runtime/World/CScriptSpecialFunction.hpp" +#include "Runtime/World/CScriptSpiderBallAttractionSurface.hpp" +#include "Runtime/World/CScriptSpiderBallWaypoint.hpp" +#include "Runtime/World/CScriptSpindleCamera.hpp" +#include "Runtime/World/CScriptSteam.hpp" +#include "Runtime/World/CScriptStreamedMusic.hpp" +#include "Runtime/World/CScriptSwitch.hpp" +#include "Runtime/World/CScriptTargetingPoint.hpp" +#include "Runtime/World/CScriptTimer.hpp" +#include "Runtime/World/CScriptTrigger.hpp" +#include "Runtime/World/CScriptVisorFlare.hpp" +#include "Runtime/World/CScriptVisorGoo.hpp" +#include "Runtime/World/CScriptWater.hpp" +#include "Runtime/World/CScriptWaypoint.hpp" +#include "Runtime/World/CScriptWorldTeleporter.hpp" +#include "Runtime/World/CSnakeWeedSwarm.hpp" +#include "Runtime/World/CTeamAiMgr.hpp" +#include "Runtime/World/CWallCrawlerSwarm.hpp" +#include "Runtime/World/CWallWalker.hpp" + +#include "Runtime/Camera/CGameCamera.hpp" +#include "Runtime/Camera/CCinematicCamera.hpp" +#include "Runtime/Camera/CFirstPersonCamera.hpp" +#include "Runtime/Camera/CInterpolationCamera.hpp" +#include "Runtime/Camera/CPathCamera.hpp" + +#include "Runtime/Collision/CCollisionActor.hpp" + +#include "Runtime/Weapon/CWeapon.hpp" +#include "Runtime/Weapon/CBeamProjectile.hpp" +#include "Runtime/Weapon/CBomb.hpp" +#include "Runtime/Weapon/CElectricBeamProjectile.hpp" +#include "Runtime/Weapon/CFlameThrower.hpp" +#include "Runtime/Weapon/CGameProjectile.hpp" +#include "Runtime/Weapon/CNewFlameThrower.hpp" +#include "Runtime/Weapon/CPlasmaProjectile.hpp" +#include "Runtime/Weapon/CPowerBomb.hpp" +#include "Runtime/Weapon/CTargetableProjectile.hpp" +#include "Runtime/Weapon/CWaveBuster.hpp" + +#include "Runtime/MP1/World/CActorContraption.hpp" +#include "Runtime/MP1/World/CAtomicAlpha.hpp" +#include "Runtime/MP1/World/CAtomicBeta.hpp" +#include "Runtime/MP1/World/CBabygoth.hpp" +#include "Runtime/MP1/World/CBeetle.hpp" +#include "Runtime/MP1/World/CBloodFlower.hpp" +#include "Runtime/MP1/World/CBouncyGrenade.hpp" +#include "Runtime/MP1/World/CBurrower.hpp" +#include "Runtime/MP1/World/CChozoGhost.hpp" +#include "Runtime/MP1/World/CDrone.hpp" +#include "Runtime/MP1/World/CDroneLaser.hpp" +#include "Runtime/MP1/World/CElitePirate.hpp" +#include "Runtime/MP1/World/CEnergyBall.hpp" +#include "Runtime/MP1/World/CEyeball.hpp" +#include "Runtime/MP1/World/CFireFlea.hpp" +#include "Runtime/MP1/World/CFlaahgra.hpp" +#include "Runtime/MP1/World/CFlaahgraProjectile.hpp" +#include "Runtime/MP1/World/CFlaahgraTentacle.hpp" +#include "Runtime/MP1/World/CFlickerBat.hpp" +#include "Runtime/MP1/World/CFlyingPirate.hpp" +#include "Runtime/MP1/World/CGrenadeLauncher.hpp" +#include "Runtime/MP1/World/CIceAttackProjectile.hpp" +#include "Runtime/MP1/World/CIceSheegoth.hpp" +#include "Runtime/MP1/World/CJellyZap.hpp" +#include "Runtime/MP1/World/CMagdolite.hpp" +#include "Runtime/MP1/World/CMetaree.hpp" +#include "Runtime/MP1/World/CMetroid.hpp" +#include "Runtime/MP1/World/CMetroidBeta.hpp" +#include "Runtime/MP1/World/CMetroidPrimeEssence.hpp" +#include "Runtime/MP1/World/CMetroidPrimeExo.hpp" +#include "Runtime/MP1/World/CMetroidPrimeProjectile.hpp" +#include "Runtime/MP1/World/CMetroidPrimeRelay.hpp" +#include "Runtime/MP1/World/CNewIntroBoss.hpp" +#include "Runtime/MP1/World/COmegaPirate.hpp" +#include "Runtime/MP1/World/CParasite.hpp" +#include "Runtime/MP1/World/CPhazonHealingNodule.hpp" +#include "Runtime/MP1/World/CPhazonPool.hpp" +#include "Runtime/MP1/World/CPuddleSpore.hpp" +#include "Runtime/MP1/World/CPuddleToadGamma.hpp" +#include "Runtime/MP1/World/CPuffer.hpp" +#include "Runtime/MP1/World/CRidley.hpp" +#include "Runtime/MP1/World/CRipper.hpp" +#include "Runtime/MP1/World/CSeedling.hpp" +#include "Runtime/MP1/World/CShockWave.hpp" +#include "Runtime/MP1/World/CSpacePirate.hpp" +#include "Runtime/MP1/World/CSpankWeed.hpp" +#include "Runtime/MP1/World/CThardus.hpp" +#include "Runtime/MP1/World/CThardusRockProjectile.hpp" +#include "Runtime/MP1/World/CTryclops.hpp" +#include "Runtime/MP1/World/CWarWasp.hpp" #include "imgui.h" @@ -14,6 +163,14 @@ BLOCK \ } +#define BITFIELD_CHECKBOX(label, bf) \ + { \ + bool b = (bf); \ + ImGui::Checkbox(label, &b); \ + if (b != (bf)) \ + (bf) = b; \ + } + namespace metaforce { std::string_view CEntity::ImGuiType() { return "Entity"; } @@ -21,16 +178,196 @@ void CEntity::ImGuiInspect() { if (ImGui::CollapsingHeader("Entity", ImGuiTreeNodeFlags_DefaultOpen)) { ImGui::Text("ID: %x", x8_uid.Value()); ImGui::Text("Name: %s", x10_name.c_str()); + BITFIELD_CHECKBOX("Active", x30_24_active); } } +// <- CEntity IMGUI_ENTITY_INSPECT(CActor, CEntity, Actor, { const zeus::CVector3f& pos = GetTranslation(); ImGui::Text("Position: %f, %f, %f", pos.x(), pos.y(), pos.z()); }) -IMGUI_ENTITY_INSPECT(CPhysicsActor, CActor, Physics Actor, {}) +IMGUI_ENTITY_INSPECT(MP1::CFireFlea::CDeathCameraEffect, CEntity, FireFleaDeathCameraEffect, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroidPrimeRelay, CEntity, MetroidPrimeRelay, {}) +IMGUI_ENTITY_INSPECT(CScriptActorKeyframe, CEntity, ScriptActorKeyframe, {}) +IMGUI_ENTITY_INSPECT(CScriptActorRotate, CEntity, ScriptActorRotate, {}) +IMGUI_ENTITY_INSPECT(CScriptAreaAttributes, CEntity, ScriptAreaAttributes, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraBlurKeyframe, CEntity, ScriptCameraBlurKeyframe, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraFilterKeyframe, CEntity, ScriptCameraFilterKeyframe, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraShaker, CEntity, ScriptCameraShaker, {}) +IMGUI_ENTITY_INSPECT(CScriptColorModulate, CEntity, ScriptColorModulate, {}) +IMGUI_ENTITY_INSPECT(CScriptControllerAction, CEntity, ScriptControllerAction, {}) +IMGUI_ENTITY_INSPECT(CScriptCounter, CEntity, ScriptCounter, {}) +IMGUI_ENTITY_INSPECT(CScriptDistanceFog, CEntity, ScriptDistanceFog, {}) +IMGUI_ENTITY_INSPECT(CScriptDockAreaChange, CEntity, ScriptDockAreaChange, {}) +IMGUI_ENTITY_INSPECT(CScriptGenerator, CEntity, ScriptGenerator, {}) +IMGUI_ENTITY_INSPECT(CScriptHUDMemo, CEntity, ScriptHUDMemo, {}) +IMGUI_ENTITY_INSPECT(CScriptMemoryRelay, CEntity, ScriptMemoryRelay, {}) +IMGUI_ENTITY_INSPECT(CScriptMidi, CEntity, ScriptMidi, {}) +IMGUI_ENTITY_INSPECT(CScriptPickupGenerator, CEntity, ScriptPickupGenerator, {}) +IMGUI_ENTITY_INSPECT(CScriptPlayerStateChange, CEntity, ScriptPlayerStateChange, {}) +IMGUI_ENTITY_INSPECT(CScriptRandomRelay, CEntity, ScriptRandomRelay, {}) +IMGUI_ENTITY_INSPECT(CScriptRelay, CEntity, ScriptRelay, {}) +IMGUI_ENTITY_INSPECT(CScriptRipple, CEntity, ScripleRipple, {}) +IMGUI_ENTITY_INSPECT(CScriptRoomAcoustics, CEntity, ScriptRoomAcoustics, {}) +IMGUI_ENTITY_INSPECT(CScriptSpawnPoint, CEntity, ScriptSpawnPoint, {}) +IMGUI_ENTITY_INSPECT(CScriptStreamedMusic, CEntity, ScriptStreamedMusic, {}) +IMGUI_ENTITY_INSPECT(CScriptSwitch, CEntity, ScriptSwitch, {}) +IMGUI_ENTITY_INSPECT(CScriptTimer, CEntity, ScriptTimer, {}) +IMGUI_ENTITY_INSPECT(CScriptWorldTeleporter, CEntity, ScriptWorldTeleporter, {}) +IMGUI_ENTITY_INSPECT(CTeamAiMgr, CEntity, TeamAiMgr, {}) + +// <- CActor +IMGUI_ENTITY_INSPECT(CPhysicsActor, CActor, PhysicsActor, {}) +IMGUI_ENTITY_INSPECT(MP1::CDroneLaser, CActor, DroneLaser, {}) +IMGUI_ENTITY_INSPECT(CEffect, CActor, Effect, {}) +IMGUI_ENTITY_INSPECT(CFire, CActor, Fire, {}) +IMGUI_ENTITY_INSPECT(CFishCloud, CActor, FishCloud, {}) +IMGUI_ENTITY_INSPECT(CFishCloudModifier, CActor, FishCloudModifier, {}) +IMGUI_ENTITY_INSPECT(MP1::CFlaahgraPlants, CActor, FlaahgraPlants, {}) +IMGUI_ENTITY_INSPECT(MP1::CFlaahgraRenderer, CActor, FlaahgraRenderer, {}) +IMGUI_ENTITY_INSPECT(MP1::COmegaPirate::CFlash, CActor, OmegaPirateFlash, {}) +IMGUI_ENTITY_INSPECT(CGameCamera, CActor, GameCamera, {}) +IMGUI_ENTITY_INSPECT(CGameLight, CActor, GameLight, {}) +IMGUI_ENTITY_INSPECT(MP1::CIceAttackProjectile, CActor, IceAttackProjectile, {}) +IMGUI_ENTITY_INSPECT(CRepulsor, CActor, Repulsor, {}) +IMGUI_ENTITY_INSPECT(CScriptAiJumpPoint, CActor, ScriptAIJumpPoint, {}) +IMGUI_ENTITY_INSPECT(CScriptBeam, CActor, ScriptBeam, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraHint, CActor, ScriptCameraHint, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraHintTrigger, CActor, ScriptCameraHintTrigger, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraPitchVolume, CActor, ScriptCameraPitchVolume, {}) +IMGUI_ENTITY_INSPECT(CScriptCameraWaypoint, CActor, ScriptCameraWaypoint, {}) +IMGUI_ENTITY_INSPECT(CScriptCoverPoint, CActor, ScriptCoverPoint, {}) +IMGUI_ENTITY_INSPECT(CScriptDamageableTrigger, CActor, ScriptDamageableTrigger, {}) +IMGUI_ENTITY_INSPECT(CScriptDebugCameraWaypoint, CActor, ScriptDebugCameraWaypoint, {}) +IMGUI_ENTITY_INSPECT(CScriptEffect, CActor, ScriptEffect, {}) +IMGUI_ENTITY_INSPECT(CScriptEMPulse, CActor, ScriptEMPulse, {}) +IMGUI_ENTITY_INSPECT(CScriptGrapplePoint, CActor, ScriptGrapplePoint, {}) +IMGUI_ENTITY_INSPECT(CScriptMazeNode, CActor, ScriptMazeNode, {}) +IMGUI_ENTITY_INSPECT(CScriptPlayerHint, CActor, ScriptPlayerHint, {}) +IMGUI_ENTITY_INSPECT(CScriptPointOfInterest, CActor, ScriptPointOfInterest, {}) +IMGUI_ENTITY_INSPECT(CScriptShadowProjector, CActor, ScriptShadowProjector, {}) +IMGUI_ENTITY_INSPECT(CScriptSound, CActor, ScriptSound, {}) +IMGUI_ENTITY_INSPECT(CScriptSpecialFunction, CActor, ScriptSpecialFunction, {}) +IMGUI_ENTITY_INSPECT(CScriptSpiderBallAttractionSurface, CActor, ScriptSpiderballAttractionSurface, {}) +IMGUI_ENTITY_INSPECT(CScriptSpiderBallWaypoint, CActor, ScriptSpiderBallWaypoint, {}) +IMGUI_ENTITY_INSPECT(CScriptTargetingPoint, CActor, ScriptTargetingPoint, {}) +IMGUI_ENTITY_INSPECT(CScriptTrigger, CActor, ScriptTrigger, {}) +IMGUI_ENTITY_INSPECT(CScriptVisorFlare, CActor, ScriptVisorFlare, {}) +IMGUI_ENTITY_INSPECT(CScriptVisorGoo, CActor, ScriptVisorGoo, {}) +IMGUI_ENTITY_INSPECT(CScriptWaypoint, CActor, ScriptWaypoint, {}) +IMGUI_ENTITY_INSPECT(MP1::CShockWave, CActor, ShockWave, {}) +IMGUI_ENTITY_INSPECT(CSnakeWeedSwarm, CActor, SnakeWeedSwarm, {}) +IMGUI_ENTITY_INSPECT(CWallCrawlerSwarm, CActor, WallCrawlerSwarm, {}) +IMGUI_ENTITY_INSPECT(CWeapon, CActor, Weapon, {}) + +// <- CEffect +IMGUI_ENTITY_INSPECT(CExplosion, CEffect, Explosion, {}) +IMGUI_ENTITY_INSPECT(CHUDBillboardEffect, CEffect, HUDBillboardEffect, {}) +IMGUI_ENTITY_INSPECT(CIceImpact, CEffect, IceImpact, {}) + +// <- CGameCamera +IMGUI_ENTITY_INSPECT(CBallCamera, CGameCamera, BallCamera, {}) +IMGUI_ENTITY_INSPECT(CCinematicCamera, CGameCamera, CinematicCamera, {}) +IMGUI_ENTITY_INSPECT(CFirstPersonCamera, CGameCamera, FirstPersonCamera, {}) +IMGUI_ENTITY_INSPECT(CInterpolationCamera, CGameCamera, InterpolationCamera, {}) +IMGUI_ENTITY_INSPECT(CPathCamera, CGameCamera, PathCamera, {}) +IMGUI_ENTITY_INSPECT(CScriptSpindleCamera, CGameCamera, ScriptSpindleCamera, {}) + +// <- CScriptTrigger +IMGUI_ENTITY_INSPECT(MP1::CPhazonPool, CScriptTrigger, PhazonPool, {}) +IMGUI_ENTITY_INSPECT(CScriptBallTrigger, CScriptTrigger, ScriptBallTrigger, {}) +IMGUI_ENTITY_INSPECT(CScriptSteam, CScriptTrigger, ScriptSteam, {}) +IMGUI_ENTITY_INSPECT(CScriptWater, CScriptTrigger, ScriptWater, {}) + +// <- CWeapon +IMGUI_ENTITY_INSPECT(CBomb, CWeapon, Bomb, {}) +IMGUI_ENTITY_INSPECT(CGameProjectile, CWeapon, GameProjectile, {}) +IMGUI_ENTITY_INSPECT(CPowerBomb, CWeapon, PowerBomb, {}) + +// <- CGameProjectile +IMGUI_ENTITY_INSPECT(CBeamProjectile, CGameProjectile, BeamProjectile, {}) +IMGUI_ENTITY_INSPECT(CEnergyProjectile, CGameProjectile, EnergyProjectile, {}) +IMGUI_ENTITY_INSPECT(CFlameThrower, CGameProjectile, FlameThrower, {}) +IMGUI_ENTITY_INSPECT(CNewFlameThrower, CGameProjectile, NewFlameThrower, {}) +IMGUI_ENTITY_INSPECT(CWaveBuster, CGameProjectile, WaveBuster, {}) + +// <- CBeamProjectile +IMGUI_ENTITY_INSPECT(CElectricBeamProjectile, CBeamProjectile, ElectricBeamProjectile, {}) +IMGUI_ENTITY_INSPECT(CPlasmaProjectile, CBeamProjectile, PlasmaProjectile, {}) + +// <- CEnergyProjectile +IMGUI_ENTITY_INSPECT(MP1::CFlaahgraProjectile, CEnergyProjectile, FlaahgraProjectile, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroidPrimeProjectile, CEnergyProjectile, MetroidPrimeProjectile, {}) +IMGUI_ENTITY_INSPECT(CTargetableProjectile, CEnergyProjectile, TargetableProjectile, {}) + +// <- CPhysicsActor IMGUI_ENTITY_INSPECT(CAi, CPhysicsActor, AI, {}) +IMGUI_ENTITY_INSPECT(CAmbientAI, CPhysicsActor, AmbientAI, {}) +IMGUI_ENTITY_INSPECT(MP1::CBouncyGrenade, CPhysicsActor, BouncyGrenade, {}) +IMGUI_ENTITY_INSPECT(CCollisionActor, CPhysicsActor, CollisionActor, {}) +IMGUI_ENTITY_INSPECT(MP1::CGrenadeLauncher, CPhysicsActor, GrenadeLauncher, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroidPrimeExo::CPhysicsDummy, CPhysicsActor, MetroidPrimeExoPhysicsDummy, {}) +IMGUI_ENTITY_INSPECT(CPlayer, CPhysicsActor, Player, {}) +IMGUI_ENTITY_INSPECT(CScriptActor, CPhysicsActor, ScriptActor, {}) +IMGUI_ENTITY_INSPECT(CScriptDebris, CPhysicsActor, ScriptDebris, {}) +IMGUI_ENTITY_INSPECT(CScriptDock, CPhysicsActor, ScriptDock, {}) +IMGUI_ENTITY_INSPECT(CScriptDoor, CPhysicsActor, ScriptDoor, {}) +IMGUI_ENTITY_INSPECT(CScriptGunTurret, CPhysicsActor, ScriptGunTurret, {}) +IMGUI_ENTITY_INSPECT(CScriptPickup, CPhysicsActor, ScriptPickup, {}) +IMGUI_ENTITY_INSPECT(CScriptPlatform, CPhysicsActor, ScriptPlatform, {}) + +// <- CScriptActor +IMGUI_ENTITY_INSPECT(MP1::CActorContraption, CScriptActor, ActorContraption, {}) +IMGUI_ENTITY_INSPECT(CScriptPlayerActor, CScriptActor, PlayerActor, {}) + +// <- CScriptPlatform +IMGUI_ENTITY_INSPECT(MP1::CRipperControlledPlatform, CScriptPlatform, RipperControlledPlatform, {}) + +// <- CAi +IMGUI_ENTITY_INSPECT(CDestroyableRock, CAi, DestroyableRock, {}) IMGUI_ENTITY_INSPECT(CPatterned, CAi, Patterned, {}) -IMGUI_ENTITY_INSPECT(CPlayer, CPhysicsActor, Player, {}) +// <- CPatterned +IMGUI_ENTITY_INSPECT(MP1::CAtomicAlpha, CPatterned, AtomicAlpha, {}) +IMGUI_ENTITY_INSPECT(MP1::CAtomicBeta, CPatterned, AtomicBeta, {}) +IMGUI_ENTITY_INSPECT(MP1::CBabygoth, CPatterned, Babygoth, {}) +IMGUI_ENTITY_INSPECT(MP1::CBeetle, CPatterned, Beetle, {}) +IMGUI_ENTITY_INSPECT(MP1::CBloodFlower, CPatterned, BloodFlower, {}) +IMGUI_ENTITY_INSPECT(MP1::CBurrower, CPatterned, Burrower, {}) +IMGUI_ENTITY_INSPECT(MP1::CChozoGhost, CPatterned, ChozoGhost, {}) +IMGUI_ENTITY_INSPECT(MP1::CDrone, CPatterned, Drone, {}) +IMGUI_ENTITY_INSPECT(MP1::CElitePirate, CPatterned, ElitePirate, {}) +IMGUI_ENTITY_INSPECT(MP1::CEnergyBall, CPatterned, EnergyBall, {}) +IMGUI_ENTITY_INSPECT(MP1::CEyeball, CPatterned, EyeBall, {}) +IMGUI_ENTITY_INSPECT(MP1::CFireFlea, CPatterned, FireFlea, {}) +IMGUI_ENTITY_INSPECT(MP1::CFlaahgra, CPatterned, Flaahgra, {}) +IMGUI_ENTITY_INSPECT(MP1::CFlaahgraTentacle, CPatterned, FlaahgraTentacle, {}) +IMGUI_ENTITY_INSPECT(MP1::CFlickerBat, CPatterned, FlickerBat, {}) +IMGUI_ENTITY_INSPECT(MP1::CFlyingPirate, CPatterned, FlyingPirate, {}) +IMGUI_ENTITY_INSPECT(MP1::CIceSheegoth, CPatterned, IceSheegoth, {}) +IMGUI_ENTITY_INSPECT(MP1::CJellyZap, CPatterned, JellyZap, {}) +IMGUI_ENTITY_INSPECT(MP1::CMagdolite, CPatterned, Magdolite, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetaree, CPatterned, Metaree, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroid, CPatterned, Metroid, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroidBeta, CPatterned, MetroidBeta, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroidPrimeEssence, CPatterned, MetroidPrimeEssence, {}) +IMGUI_ENTITY_INSPECT(MP1::CMetroidPrimeExo, CPatterned, MetroidPrimeExo, {}) +IMGUI_ENTITY_INSPECT(MP1::CNewIntroBoss, CPatterned, NewIntroBoss, {}) +IMGUI_ENTITY_INSPECT(MP1::CPhazonHealingNodule, CPatterned, PhazonHealingNodule, {}) +IMGUI_ENTITY_INSPECT(MP1::CPuddleSpore, CPatterned, PuddleSpore, {}) +IMGUI_ENTITY_INSPECT(MP1::CPuddleToadGamma, CPatterned, PuddleToadGamma, {}) +IMGUI_ENTITY_INSPECT(MP1::CPuffer, CPatterned, Puffer, {}) +IMGUI_ENTITY_INSPECT(MP1::CRidley, CPatterned, Ridley, {}) +IMGUI_ENTITY_INSPECT(MP1::CRipper, CPatterned, Ripper, {}) +IMGUI_ENTITY_INSPECT(MP1::CSpacePirate, CPatterned, SpacePirate, {}) +IMGUI_ENTITY_INSPECT(MP1::CSpankWeed, CPatterned, SpankWeed, {}) +IMGUI_ENTITY_INSPECT(MP1::CThardus, CPatterned, Thardus, {}) +IMGUI_ENTITY_INSPECT(MP1::CThardusRockProjectile, CPatterned, ThardusRockProjectile, {}) +IMGUI_ENTITY_INSPECT(MP1::CTryclops, CPatterned, Tryclops, {}) +IMGUI_ENTITY_INSPECT(CWallWalker, CPatterned, WallWalker, {}) +IMGUI_ENTITY_INSPECT(MP1::CParasite, CWallWalker, Parasite, {}) +IMGUI_ENTITY_INSPECT(MP1::CSeedling, CWallWalker, Seedling, {}) +IMGUI_ENTITY_INSPECT(MP1::CWarWasp, CPatterned, WarWasp, {}) +IMGUI_ENTITY_INSPECT(MP1::COmegaPirate, MP1::CElitePirate, OmegaPirate, {}) } // namespace metaforce diff --git a/Runtime/MP1/World/CActorContraption.hpp b/Runtime/MP1/World/CActorContraption.hpp index a120663c9..3b688bfe4 100644 --- a/Runtime/MP1/World/CActorContraption.hpp +++ b/Runtime/MP1/World/CActorContraption.hpp @@ -18,6 +18,7 @@ class CActorContraption : public CScriptActor { CDamageInfo x30c_dInfo; public: + DEFINE_ENTITY CActorContraption(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const zeus::CAABox& aabox, const CMaterialList& matList, float mass, float zMomentum, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln, diff --git a/Runtime/MP1/World/CBouncyGrenade.hpp b/Runtime/MP1/World/CBouncyGrenade.hpp index f3445791f..0a4893ddd 100644 --- a/Runtime/MP1/World/CBouncyGrenade.hpp +++ b/Runtime/MP1/World/CBouncyGrenade.hpp @@ -73,6 +73,7 @@ private: bool x2b4_25_ : 1 = false; public: + DEFINE_ENTITY CBouncyGrenade(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& actParams, TUniqueId parentId, const SBouncyGrenadeData& data, float velocity, float explodePlayerDistance); diff --git a/Runtime/MP1/World/CDroneLaser.hpp b/Runtime/MP1/World/CDroneLaser.hpp index b4b497cb4..24fb82b5b 100644 --- a/Runtime/MP1/World/CDroneLaser.hpp +++ b/Runtime/MP1/World/CDroneLaser.hpp @@ -14,6 +14,7 @@ class CDroneLaser : public CActor { void RenderBeam(u32 w, float f, const zeus::CColor& col, bool) const; public: + DEFINE_ENTITY CDroneLaser(TUniqueId uid, TAreaId aId, const zeus::CTransform& xf, CAssetId particle); void Accept(IVisitor& visitor) override; void Think(float dt, CStateManager& mgr) override; diff --git a/Runtime/MP1/World/CFireFlea.hpp b/Runtime/MP1/World/CFireFlea.hpp index cfae4dd7a..f0792da35 100644 --- a/Runtime/MP1/World/CFireFlea.hpp +++ b/Runtime/MP1/World/CFireFlea.hpp @@ -18,6 +18,7 @@ class CFireFlea : public CPatterned { u32 x44_ = 0; public: + DEFINE_ENTITY static zeus::CColor sCurrentFadeColor; CDeathCameraEffect(TUniqueId, TAreaId, std::string_view); diff --git a/Runtime/MP1/World/CFlaahgra.hpp b/Runtime/MP1/World/CFlaahgra.hpp index 16b349dd3..0962ee213 100644 --- a/Runtime/MP1/World/CFlaahgra.hpp +++ b/Runtime/MP1/World/CFlaahgra.hpp @@ -58,6 +58,7 @@ class CFlaahgraRenderer : public CActor { TUniqueId xe8_owner; public: + DEFINE_ENTITY CFlaahgraRenderer(TUniqueId, TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&); void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override; @@ -75,6 +76,7 @@ class CFlaahgraPlants : public CActor { TUniqueId x16c_colAct = kInvalidUniqueId; public: + DEFINE_ENTITY CFlaahgraPlants(const TToken&, const CActorParameters&, TUniqueId, TAreaId, TUniqueId, const zeus::CTransform&, const CDamageInfo&, const zeus::CVector3f&); diff --git a/Runtime/MP1/World/CFlaahgraProjectile.hpp b/Runtime/MP1/World/CFlaahgraProjectile.hpp index 0a593e2ca..018c90824 100644 --- a/Runtime/MP1/World/CFlaahgraProjectile.hpp +++ b/Runtime/MP1/World/CFlaahgraProjectile.hpp @@ -8,6 +8,7 @@ class CFlaahgraProjectile : public CEnergyProjectile { bool x3d8_bigStrike; public: + DEFINE_ENTITY CFlaahgraProjectile(bool bigStrike, const TToken& desc, const zeus::CTransform& xf, const CDamageInfo& damage, TUniqueId uid, TAreaId aid, TUniqueId owner); diff --git a/Runtime/MP1/World/CGrenadeLauncher.hpp b/Runtime/MP1/World/CGrenadeLauncher.hpp index b0a1c70a2..f3dc57e69 100644 --- a/Runtime/MP1/World/CGrenadeLauncher.hpp +++ b/Runtime/MP1/World/CGrenadeLauncher.hpp @@ -91,6 +91,7 @@ private: bool x3fe_followPlayer = true; public: + DEFINE_ENTITY CGrenadeLauncher(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const zeus::CAABox& bounds, const CHealthInfo& healthInfo, const CDamageVulnerability& vulnerability, const CActorParameters& actParams, TUniqueId parentId, diff --git a/Runtime/MP1/World/CIceAttackProjectile.hpp b/Runtime/MP1/World/CIceAttackProjectile.hpp index 7d753c97e..7d636bdd5 100644 --- a/Runtime/MP1/World/CIceAttackProjectile.hpp +++ b/Runtime/MP1/World/CIceAttackProjectile.hpp @@ -31,6 +31,7 @@ class CIceAttackProjectile : public CActor { int x194_ = 0; public: + DEFINE_ENTITY CIceAttackProjectile(const TToken& gen1, const TToken& gen2, const TToken& gen3, TUniqueId uid, TAreaId areaId, TUniqueId owner, bool active, const zeus::CTransform& xf, const CDamageInfo& dInfo, const zeus::CAABox& bounds, float f1, diff --git a/Runtime/MP1/World/CMetroidPrimeExo.hpp b/Runtime/MP1/World/CMetroidPrimeExo.hpp index f76807295..8e8bf0816 100644 --- a/Runtime/MP1/World/CMetroidPrimeExo.hpp +++ b/Runtime/MP1/World/CMetroidPrimeExo.hpp @@ -92,6 +92,7 @@ struct SPrimeExoRoomParameters { class CMetroidPrimeExo : public CPatterned { class CPhysicsDummy : public CPhysicsActor { public: + DEFINE_ENTITY CPhysicsDummy(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info) : CPhysicsActor(uid, active, name, info, {}, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Target, EMaterialTypes::ExcludeFromRadar), zeus::CAABox{-1.f, 1.f}, diff --git a/Runtime/MP1/World/CMetroidPrimeProjectile.hpp b/Runtime/MP1/World/CMetroidPrimeProjectile.hpp index 677fdc704..40d59b0ed 100644 --- a/Runtime/MP1/World/CMetroidPrimeProjectile.hpp +++ b/Runtime/MP1/World/CMetroidPrimeProjectile.hpp @@ -24,6 +24,7 @@ class CMetroidPrimeProjectile : public CEnergyProjectile { SPrimeProjectileInfo x3d8_auxData; public: + DEFINE_ENTITY CMetroidPrimeProjectile(bool active, const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes materials, const CDamageInfo& damage, TUniqueId uid, TAreaId aid, TUniqueId owner, const SPrimeProjectileInfo& auxData, diff --git a/Runtime/MP1/World/CMetroidPrimeRelay.hpp b/Runtime/MP1/World/CMetroidPrimeRelay.hpp index 1b26592cf..2c97e70e8 100644 --- a/Runtime/MP1/World/CMetroidPrimeRelay.hpp +++ b/Runtime/MP1/World/CMetroidPrimeRelay.hpp @@ -31,6 +31,7 @@ class CMetroidPrimeRelay : public CEntity { void ForwardMessageToMetroidPrimeExo(EScriptObjectMessage msg, CStateManager& mgr); void GetOrBuildMetroidPrimeExo(CStateManager& mgr); public: + DEFINE_ENTITY CMetroidPrimeRelay(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool active, const zeus::CTransform& xf, const zeus::CVector3f& scale, SPrimeExoParameters&& parms, float f1, float f2, float f3, u32 w1, bool b1, u32 w2, const CHealthInfo& hInfo1, const CHealthInfo& hInfo2, diff --git a/Runtime/MP1/World/COmegaPirate.hpp b/Runtime/MP1/World/COmegaPirate.hpp index ef986ea89..bfe036091 100644 --- a/Runtime/MP1/World/COmegaPirate.hpp +++ b/Runtime/MP1/World/COmegaPirate.hpp @@ -17,6 +17,7 @@ private: CTexturedQuadFilter m_thermalSpotSubtract; public: + DEFINE_ENTITY CFlash(TUniqueId uid, const CEntityInfo& info, const zeus::CVector3f& pos, TLockedToken& thermalSpot, float delay); @@ -120,6 +121,7 @@ private: float xb8c_avoidStaticCollisionTime = 0.f; // not initialized in ctr public: + DEFINE_ENTITY COmegaPirate(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CPatternedInfo& pInfo, const CActorParameters& actParms, CElitePirateData data, CAssetId skeletonModelId, CAssetId skeletonSkinRulesId, CAssetId skeletonLayoutInfoId); diff --git a/Runtime/MP1/World/CPhazonPool.hpp b/Runtime/MP1/World/CPhazonPool.hpp index b6f7e1442..e5261047b 100644 --- a/Runtime/MP1/World/CPhazonPool.hpp +++ b/Runtime/MP1/World/CPhazonPool.hpp @@ -35,6 +35,7 @@ private: bool x1e0_25_ : 1 = false; public: + DEFINE_ENTITY CPhazonPool(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, const zeus::CVector3f& scale, bool active, CAssetId w1, CAssetId w2, CAssetId w3, CAssetId w4, u32 p11, const CDamageInfo& dInfo, const zeus::CVector3f& orientedForce, ETriggerFlags triggerFlags, bool p15, diff --git a/Runtime/MP1/World/CRipper.hpp b/Runtime/MP1/World/CRipper.hpp index 7d8b1e19b..4e0430abe 100644 --- a/Runtime/MP1/World/CRipper.hpp +++ b/Runtime/MP1/World/CRipper.hpp @@ -44,6 +44,7 @@ class CRipperControlledPlatform : public CScriptPlatform { float x35c_yaw; public: + DEFINE_ENTITY CRipperControlledPlatform(TUniqueId, TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, const zeus::CAABox&, bool, const std::optional>&); diff --git a/Runtime/MP1/World/CShockWave.hpp b/Runtime/MP1/World/CShockWave.hpp index 742f7d507..99e5b0a55 100644 --- a/Runtime/MP1/World/CShockWave.hpp +++ b/Runtime/MP1/World/CShockWave.hpp @@ -57,6 +57,7 @@ private: TUniqueId x980_id2 = kInvalidUniqueId; public: + DEFINE_ENTITY CShockWave(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, TUniqueId parent, const SShockWaveData& data, float minActiveTime, float knockback); diff --git a/Runtime/Weapon/CBeamProjectile.hpp b/Runtime/Weapon/CBeamProjectile.hpp index 9db00eaeb..011cbb86b 100644 --- a/Runtime/Weapon/CBeamProjectile.hpp +++ b/Runtime/Weapon/CBeamProjectile.hpp @@ -40,6 +40,7 @@ private: void SetCollisionResultData(EDamageType dType, CRayCastResult& res, TUniqueId id); public: + DEFINE_ENTITY CBeamProjectile(const TToken& wDesc, std::string_view name, EWeaponType wType, const zeus::CTransform& xf, s32 maxLength, float beamRadius, float travelSpeed, EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, diff --git a/Runtime/Weapon/CBomb.hpp b/Runtime/Weapon/CBomb.hpp index ebaaf91d5..b5206e029 100644 --- a/Runtime/Weapon/CBomb.hpp +++ b/Runtime/Weapon/CBomb.hpp @@ -27,6 +27,7 @@ class CBomb : public CWeapon { bool x190_26_disableFuse : 1 = false; public: + DEFINE_ENTITY CBomb(const TCachedToken& particle1, const TCachedToken& particle2, TUniqueId uid, TAreaId aid, TUniqueId playerId, float f1, const zeus::CTransform& xf, const CDamageInfo& dInfo); diff --git a/Runtime/Weapon/CElectricBeamProjectile.hpp b/Runtime/Weapon/CElectricBeamProjectile.hpp index 6f19545ec..6ca613969 100644 --- a/Runtime/Weapon/CElectricBeamProjectile.hpp +++ b/Runtime/Weapon/CElectricBeamProjectile.hpp @@ -26,6 +26,7 @@ class CElectricBeamProjectile : public CBeamProjectile { bool x48c_ = false; public: + DEFINE_ENTITY CElectricBeamProjectile(const TToken&, EWeaponType, const SElectricBeamInfo&, const zeus::CTransform&, EMaterialTypes, const CDamageInfo&, TUniqueId, TAreaId, TUniqueId, EProjectileAttrib); diff --git a/Runtime/Weapon/CEnergyProjectile.hpp b/Runtime/Weapon/CEnergyProjectile.hpp index 6b58d3db4..05a37a77e 100644 --- a/Runtime/Weapon/CEnergyProjectile.hpp +++ b/Runtime/Weapon/CEnergyProjectile.hpp @@ -18,6 +18,7 @@ class CEnergyProjectile : public CGameProjectile { void StopProjectile(CStateManager& mgr); public: + DEFINE_ENTITY CEnergyProjectile(bool active, const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes excludeMat, const CDamageInfo& damage, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, bool underwater, const zeus::CVector3f& scale, diff --git a/Runtime/Weapon/CFlameThrower.hpp b/Runtime/Weapon/CFlameThrower.hpp index aa7d307a6..7744c8dec 100644 --- a/Runtime/Weapon/CFlameThrower.hpp +++ b/Runtime/Weapon/CFlameThrower.hpp @@ -42,6 +42,7 @@ private: CRayCastResult DoCollisionCheck(TUniqueId& idOut, const zeus::CAABox& aabb, CStateManager& mgr); void ApplyDamageToActor(CStateManager& mgr, TUniqueId id, float dt); public: + DEFINE_ENTITY CFlameThrower(const TToken& wDesc, std::string_view name, EWeaponType wType, const CFlameInfo& flameInfo, const zeus::CTransform& xf, EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aId, TUniqueId owner, EProjectileAttrib attribs, diff --git a/Runtime/Weapon/CGameProjectile.hpp b/Runtime/Weapon/CGameProjectile.hpp index 39a933995..d3e50bd6d 100644 --- a/Runtime/Weapon/CGameProjectile.hpp +++ b/Runtime/Weapon/CGameProjectile.hpp @@ -55,6 +55,7 @@ protected: bool x2e4_28_sendProjectileCollideMsg : 1; public: + DEFINE_ENTITY CGameProjectile(bool active, const TToken&, std::string_view name, EWeaponType wType, const zeus::CTransform& xf, EMaterialTypes excludeMat, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, bool underwater, diff --git a/Runtime/Weapon/CNewFlameThrower.hpp b/Runtime/Weapon/CNewFlameThrower.hpp index e42ef89d2..32815b21d 100644 --- a/Runtime/Weapon/CNewFlameThrower.hpp +++ b/Runtime/Weapon/CNewFlameThrower.hpp @@ -99,6 +99,7 @@ public: // NFTSecondaryFire // NFTSecondarySparks // + DEFINE_ENTITY CNewFlameThrower(const TToken& desc, std::string_view name, EWeaponType wType, const std::array& resInfo, const zeus::CTransform& xf, EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, EProjectileAttrib attribs); diff --git a/Runtime/Weapon/CPlasmaProjectile.hpp b/Runtime/Weapon/CPlasmaProjectile.hpp index 2b9c60999..7b263ae9c 100644 --- a/Runtime/Weapon/CPlasmaProjectile.hpp +++ b/Runtime/Weapon/CPlasmaProjectile.hpp @@ -116,6 +116,7 @@ private: std::string_view name, CStateManager& mgr); void UpdatePlayerEffects(float dt, CStateManager& mgr); public: + DEFINE_ENTITY CPlasmaProjectile(const TToken& wDesc, std::string_view name, EWeaponType wType, const CBeamInfo& bInfo, const zeus::CTransform& xf, EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, diff --git a/Runtime/Weapon/CPowerBomb.hpp b/Runtime/Weapon/CPowerBomb.hpp index 405cbf80c..b876dd0fb 100644 --- a/Runtime/Weapon/CPowerBomb.hpp +++ b/Runtime/Weapon/CPowerBomb.hpp @@ -21,6 +21,7 @@ class CPowerBomb : public CWeapon { float x16c_radius; public: + DEFINE_ENTITY CPowerBomb(const TToken& particle, TUniqueId uid, TAreaId aid, TUniqueId playerId, const zeus::CTransform& xf, const CDamageInfo& dInfo); diff --git a/Runtime/Weapon/CTargetableProjectile.hpp b/Runtime/Weapon/CTargetableProjectile.hpp index 7f0c3fbb2..c047982ae 100644 --- a/Runtime/Weapon/CTargetableProjectile.hpp +++ b/Runtime/Weapon/CTargetableProjectile.hpp @@ -12,6 +12,7 @@ class CTargetableProjectile : public CEnergyProjectile { CDamageInfo x3e0_damage; public: + DEFINE_ENTITY CTargetableProjectile(const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes materials, const CDamageInfo& damage, const CDamageInfo& damage2, TUniqueId uid, TAreaId aid, TUniqueId owner, const TLockedToken& weapDesc, diff --git a/Runtime/Weapon/CWaveBuster.hpp b/Runtime/Weapon/CWaveBuster.hpp index f3f1faf00..395730f20 100644 --- a/Runtime/Weapon/CWaveBuster.hpp +++ b/Runtime/Weapon/CWaveBuster.hpp @@ -47,6 +47,7 @@ class CWaveBuster : public CGameProjectile { bool x3d0_28_ : 1 = true; public: + DEFINE_ENTITY CWaveBuster(const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attrib); diff --git a/Runtime/Weapon/CWeapon.hpp b/Runtime/Weapon/CWeapon.hpp index de2d5bd8d..14c4ba727 100644 --- a/Runtime/Weapon/CWeapon.hpp +++ b/Runtime/Weapon/CWeapon.hpp @@ -23,6 +23,7 @@ protected: float x154_interferenceDuration = 0.f; public: + DEFINE_ENTITY CWeapon(TUniqueId uid, TAreaId aid, bool active, TUniqueId owner, EWeaponType type, std::string_view name, const zeus::CTransform& xf, const CMaterialFilter& filter, const CMaterialList& mList, const CDamageInfo&, EProjectileAttrib attribs, CModelData&& mData); diff --git a/Runtime/World/CActor.hpp b/Runtime/World/CActor.hpp index a894c8051..58fc8873e 100644 --- a/Runtime/World/CActor.hpp +++ b/Runtime/World/CActor.hpp @@ -91,6 +91,7 @@ public: Done, }; + DEFINE_ENTITY CActor(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CTransform&, CModelData&& mData, const CMaterialList& list, const CActorParameters& params, TUniqueId otherUid); @@ -195,7 +196,5 @@ public: void MoveScannableObjectInfoToActor(CActor*, CStateManager&); const zeus::CAABox& GetRenderBounds() const { return x9c_renderBounds; } void SetNotInSortedLists(bool notIn) { xe4_27_notInSortedLists = notIn; } - - IMGUI_ENTITY_PROTOTYPES }; } // namespace metaforce diff --git a/Runtime/World/CAi.hpp b/Runtime/World/CAi.hpp index e7baa1f58..f70a59655 100644 --- a/Runtime/World/CAi.hpp +++ b/Runtime/World/CAi.hpp @@ -31,6 +31,7 @@ protected: TLockedToken x2c8_stateMachine; public: + DEFINE_ENTITY CAi(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const zeus::CAABox& box, float mass, const CHealthInfo& hInfo, const CDamageVulnerability&, const CMaterialList& list, CAssetId fsm, const CActorParameters&, float f1, float f2); @@ -185,8 +186,6 @@ public: virtual bool FixedRandom(CStateManager&, float) { return false; } virtual bool IsDizzy(CStateManager&, float) { return false; } virtual bool ShouldCallForBackup(CStateManager&, float) { return false; } - - IMGUI_ENTITY_PROTOTYPES }; } // namespace metaforce diff --git a/Runtime/World/CAmbientAI.hpp b/Runtime/World/CAmbientAI.hpp index 30fb4ea9f..ea23d483f 100644 --- a/Runtime/World/CAmbientAI.hpp +++ b/Runtime/World/CAmbientAI.hpp @@ -30,6 +30,7 @@ class CAmbientAI : public CPhysicsActor { bool x2e8_25_animating : 1 = false; public: + DEFINE_ENTITY CAmbientAI(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, CModelData&&, const zeus::CAABox&, const CMaterialList&, float, const CHealthInfo&, const CDamageVulnerability&, const CActorParameters&, float, float, s32, s32, bool); diff --git a/Runtime/World/CDestroyableRock.hpp b/Runtime/World/CDestroyableRock.hpp index 8425f1fb7..8c11ee35e 100644 --- a/Runtime/World/CDestroyableRock.hpp +++ b/Runtime/World/CDestroyableRock.hpp @@ -21,6 +21,7 @@ class CDestroyableRock : public CAi { bool x341_; public: + DEFINE_ENTITY CDestroyableRock(TUniqueId id, bool active, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& modelData, float mass, const CHealthInfo& health, const CDamageVulnerability& vulnerability, const CMaterialList& matList, CAssetId fsm, diff --git a/Runtime/World/CEffect.hpp b/Runtime/World/CEffect.hpp index e1966e2f2..7acd8b288 100644 --- a/Runtime/World/CEffect.hpp +++ b/Runtime/World/CEffect.hpp @@ -6,6 +6,7 @@ namespace metaforce { class CEffect : public CActor { public: + DEFINE_ENTITY CEffect(TUniqueId uid, const CEntityInfo& info, bool active, std::string_view name, const zeus::CTransform& xf); void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {} diff --git a/Runtime/World/CEntity.hpp b/Runtime/World/CEntity.hpp index 971446416..de51a6fea 100644 --- a/Runtime/World/CEntity.hpp +++ b/Runtime/World/CEntity.hpp @@ -19,6 +19,8 @@ #define IMGUI_ENTITY_PROTOTYPES #endif +#define DEFINE_ENTITY IMGUI_ENTITY_PROTOTYPES + namespace metaforce { class CStateManager; class IVisitor; diff --git a/Runtime/World/CExplosion.hpp b/Runtime/World/CExplosion.hpp index 2280234d6..67de3a7e2 100644 --- a/Runtime/World/CExplosion.hpp +++ b/Runtime/World/CExplosion.hpp @@ -22,6 +22,7 @@ class CExplosion : public CEffect { float xf8_time = 0.f; public: + DEFINE_ENTITY CExplosion(const TLockedToken& particle, TUniqueId uid, bool active, const CEntityInfo& info, std::string_view name, const zeus::CTransform& xf, u32, const zeus::CVector3f& scale, const zeus::CColor& color); diff --git a/Runtime/World/CFire.hpp b/Runtime/World/CFire.hpp index c55955d38..e77e941e4 100644 --- a/Runtime/World/CFire.hpp +++ b/Runtime/World/CFire.hpp @@ -28,6 +28,7 @@ class CFire : public CActor { float x15c_ = 0.f; public: + DEFINE_ENTITY CFire(TToken, TUniqueId, TAreaId, bool, TUniqueId, const zeus::CTransform&, const CDamageInfo&, const zeus::CAABox&, const zeus::CVector3f&, bool, CAssetId, bool, bool, bool, float, float, float, float); diff --git a/Runtime/World/CFishCloud.hpp b/Runtime/World/CFishCloud.hpp index 947d1b53b..47064d0d7 100644 --- a/Runtime/World/CFishCloud.hpp +++ b/Runtime/World/CFishCloud.hpp @@ -126,6 +126,7 @@ class CFishCloud : public CActor { void RenderBoid(int idx, const CBoid& boid, u32& drawMask, bool thermalHot, const CModelFlags& flags) const; public: + DEFINE_ENTITY CFishCloud(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& scale, const zeus::CTransform& xf, CModelData&& mData, const CAnimRes& aRes, u32 numBoids, float speed, float separationRadius, float cohesionMagnitude, diff --git a/Runtime/World/CFishCloudModifier.hpp b/Runtime/World/CFishCloudModifier.hpp index f21b320cb..3fb3bdeef 100644 --- a/Runtime/World/CFishCloudModifier.hpp +++ b/Runtime/World/CFishCloudModifier.hpp @@ -10,6 +10,7 @@ class CFishCloudModifier : public CActor { bool xf1_swirl; public: + DEFINE_ENTITY CFishCloudModifier(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& eInfo, const zeus::CVector3f& pos, bool isRepulsor, bool swirl, float radius, float priority); diff --git a/Runtime/World/CGameLight.hpp b/Runtime/World/CGameLight.hpp index 8da595ec8..75ba9311d 100644 --- a/Runtime/World/CGameLight.hpp +++ b/Runtime/World/CGameLight.hpp @@ -18,6 +18,7 @@ class CGameLight : public CActor { std::optional m_debugRes; std::unique_ptr m_debugModel; public: + DEFINE_ENTITY CGameLight(TUniqueId uid, TAreaId aid, bool active, std::string_view name, const zeus::CTransform& xf, TUniqueId parentId, const CLight& light, u32 sourceId, u32 priority, float lifeTime); diff --git a/Runtime/World/CHUDBillboardEffect.hpp b/Runtime/World/CHUDBillboardEffect.hpp index 2794491d4..a7c55a32e 100644 --- a/Runtime/World/CHUDBillboardEffect.hpp +++ b/Runtime/World/CHUDBillboardEffect.hpp @@ -30,6 +30,7 @@ class CHUDBillboardEffect : public CEffect { static float CalcGenRate(); public: + DEFINE_ENTITY CHUDBillboardEffect(const std::optional>& particle, const std::optional>& electric, TUniqueId uid, bool active, std::string_view name, float dist, const zeus::CVector3f& scale0, diff --git a/Runtime/World/CIceImpact.hpp b/Runtime/World/CIceImpact.hpp index 5f9b74a05..b7b8c796b 100644 --- a/Runtime/World/CIceImpact.hpp +++ b/Runtime/World/CIceImpact.hpp @@ -6,6 +6,7 @@ namespace metaforce { class CIceImpact : public CEffect { public: + DEFINE_ENTITY CIceImpact(const TLockedToken& particle, TUniqueId uid, TAreaId aid, bool active, std::string_view name, const zeus::CTransform& xf, u32 flags, const zeus::CVector3f& scale, const zeus::CColor& color); diff --git a/Runtime/World/CPatterned.hpp b/Runtime/World/CPatterned.hpp index 5e5d4f84a..127686c93 100644 --- a/Runtime/World/CPatterned.hpp +++ b/Runtime/World/CPatterned.hpp @@ -19,7 +19,7 @@ #include #ifndef DEFINE_PATTERNED -#define DEFINE_PATTERNED(type) static constexpr ECharacter CharacterType = ECharacter::type +#define DEFINE_PATTERNED(type) DEFINE_ENTITY static constexpr ECharacter CharacterType = ECharacter::type #endif namespace metaforce { @@ -247,6 +247,7 @@ protected: float GetAnimationDistance(const CPASAnimParmData& data) const; public: + DEFINE_ENTITY CPatterned(ECharacter character, TUniqueId uid, std::string_view name, EFlavorType flavor, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CPatternedInfo& pinfo, CPatterned::EMovementType movement, EColliderType collider, EBodyType body, const CActorParameters& params, @@ -419,7 +420,5 @@ public: static void Initialize(); // endregion - - IMGUI_ENTITY_PROTOTYPES }; } // namespace metaforce diff --git a/Runtime/World/CPhysicsActor.hpp b/Runtime/World/CPhysicsActor.hpp index 03d0732da..b7b25ca94 100644 --- a/Runtime/World/CPhysicsActor.hpp +++ b/Runtime/World/CPhysicsActor.hpp @@ -112,6 +112,7 @@ protected: u32 x250_numTicksPartialUpdate = 0; public: + DEFINE_ENTITY CPhysicsActor(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CMaterialList& matList, const zeus::CAABox& box, const SMoverData& moverData, const CActorParameters& actorParms, float stepUp, float stepDown); @@ -208,7 +209,5 @@ public: void UseCollisionImpulses(); static constexpr float GravityConstant() { return 9.81f * 2.5f; } /* 9.81 m/s ^ 2 is normal acceleration under earth gravity, Tallon 4 is 2.5 times that */ - - IMGUI_ENTITY_PROTOTYPES }; } // namespace metaforce diff --git a/Runtime/World/CPlayer.hpp b/Runtime/World/CPlayer.hpp index cd1ab84eb..8917555bf 100644 --- a/Runtime/World/CPlayer.hpp +++ b/Runtime/World/CPlayer.hpp @@ -346,6 +346,7 @@ private: float CalculateOrbitMinDistance(EPlayerOrbitType type) const; public: + DEFINE_ENTITY CPlayer(TUniqueId uid, const zeus::CTransform& xf, const zeus::CAABox& aabb, CAssetId resId, const zeus::CVector3f& playerScale, float mass, float stepUp, float stepDown, float ballRadius, const CMaterialList& ml); @@ -622,7 +623,5 @@ public: bool IsInWaterMovement() const { return x9c4_31_inWaterMovement; } void SetNoDamageLoopSfx(bool val) { x9c7_24_noDamageLoopSfx = val; } void SetAccelerationChangeTimer(float time) { x2d4_accelerationChangeTimer = time; } - - IMGUI_ENTITY_PROTOTYPES }; } // namespace metaforce diff --git a/Runtime/World/CRepulsor.hpp b/Runtime/World/CRepulsor.hpp index 4c2e62c8e..96864c5f8 100644 --- a/Runtime/World/CRepulsor.hpp +++ b/Runtime/World/CRepulsor.hpp @@ -8,6 +8,7 @@ class CRepulsor : public CActor { float xe8_affectRadius; public: + DEFINE_ENTITY CRepulsor(TUniqueId, bool, std::string_view, const CEntityInfo&, const zeus::CVector3f&, float); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptActor.hpp b/Runtime/World/CScriptActor.hpp index 66baaa46b..0a375fa4f 100644 --- a/Runtime/World/CScriptActor.hpp +++ b/Runtime/World/CScriptActor.hpp @@ -28,6 +28,7 @@ protected: bool x2e3_24_isPlayerActor : 1 = false; public: + DEFINE_ENTITY CScriptActor(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const zeus::CAABox& aabb, float mass, float zMomentum, const CMaterialList& matList, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln, const CActorParameters& actParms, diff --git a/Runtime/World/CScriptActorKeyframe.hpp b/Runtime/World/CScriptActorKeyframe.hpp index 951561f26..6acfc5f57 100644 --- a/Runtime/World/CScriptActorKeyframe.hpp +++ b/Runtime/World/CScriptActorKeyframe.hpp @@ -20,6 +20,7 @@ private: bool x44_29_ : 1 = false; public: + DEFINE_ENTITY CScriptActorKeyframe(TUniqueId uid, std::string_view name, const CEntityInfo& info, s32 animId, bool looping, float lifetime, bool isPassive, u32 fadeOut, bool active, float totalPlayback); diff --git a/Runtime/World/CScriptActorRotate.hpp b/Runtime/World/CScriptActorRotate.hpp index 1dc288fd8..1fc8f1e50 100644 --- a/Runtime/World/CScriptActorRotate.hpp +++ b/Runtime/World/CScriptActorRotate.hpp @@ -29,6 +29,7 @@ class CScriptActorRotate : public CEntity { void UpdatePlatformRiders(std::vector&, CScriptPlatform&, const zeus::CTransform&, CStateManager&); public: + DEFINE_ENTITY CScriptActorRotate(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CVector3f&, float, bool, bool, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptAiJumpPoint.hpp b/Runtime/World/CScriptAiJumpPoint.hpp index 5046f8dd5..a55389827 100644 --- a/Runtime/World/CScriptAiJumpPoint.hpp +++ b/Runtime/World/CScriptAiJumpPoint.hpp @@ -19,6 +19,7 @@ private: float x110_timeRemaining = 0.f; public: + DEFINE_ENTITY CScriptAiJumpPoint(TUniqueId, std::string_view, const CEntityInfo&, zeus::CTransform&, bool, float); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptAreaAttributes.hpp b/Runtime/World/CScriptAreaAttributes.hpp index 383449337..e962cf1c2 100644 --- a/Runtime/World/CScriptAreaAttributes.hpp +++ b/Runtime/World/CScriptAreaAttributes.hpp @@ -15,6 +15,7 @@ class CScriptAreaAttributes : public CEntity { EPhazonType x50_phazon; public: + DEFINE_ENTITY CScriptAreaAttributes(TUniqueId uid, const CEntityInfo& info, bool showSkybox, EEnvFxType fxType, float envFxDensity, float thermalHeat, float xrayFogDistance, float worldLightingLevel, CAssetId skybox, EPhazonType phazonType); diff --git a/Runtime/World/CScriptBallTrigger.hpp b/Runtime/World/CScriptBallTrigger.hpp index 7bb377cac..408a5a62a 100644 --- a/Runtime/World/CScriptBallTrigger.hpp +++ b/Runtime/World/CScriptBallTrigger.hpp @@ -16,6 +16,7 @@ class CScriptBallTrigger : public CScriptTrigger { bool x168_25_stopPlayer : 1; public: + DEFINE_ENTITY CScriptBallTrigger(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CVector3f&, const zeus::CVector3f&, bool, float, float, float, const zeus::CVector3f&, bool); diff --git a/Runtime/World/CScriptBeam.hpp b/Runtime/World/CScriptBeam.hpp index 924c0db79..54c659d46 100644 --- a/Runtime/World/CScriptBeam.hpp +++ b/Runtime/World/CScriptBeam.hpp @@ -15,6 +15,7 @@ class CScriptBeam : public CActor { TUniqueId x154_projectileId; public: + DEFINE_ENTITY CScriptBeam(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool, const TToken&, const CBeamInfo&, const CDamageInfo&); diff --git a/Runtime/World/CScriptCameraBlurKeyframe.hpp b/Runtime/World/CScriptCameraBlurKeyframe.hpp index 672350d04..fc297cd93 100644 --- a/Runtime/World/CScriptCameraBlurKeyframe.hpp +++ b/Runtime/World/CScriptCameraBlurKeyframe.hpp @@ -15,6 +15,7 @@ class CScriptCameraBlurKeyframe : public CEntity { float x44_timeOut; public: + DEFINE_ENTITY CScriptCameraBlurKeyframe(TUniqueId uid, std::string_view name, const CEntityInfo& info, EBlurType type, float amount, u32 unk, float timeIn, float timeOut, bool active); diff --git a/Runtime/World/CScriptCameraFilterKeyframe.hpp b/Runtime/World/CScriptCameraFilterKeyframe.hpp index d5f82b3f1..9591650ea 100644 --- a/Runtime/World/CScriptCameraFilterKeyframe.hpp +++ b/Runtime/World/CScriptCameraFilterKeyframe.hpp @@ -20,6 +20,7 @@ class CScriptCameraFilterKeyframe : public CEntity { CAssetId x50_txtr; public: + DEFINE_ENTITY CScriptCameraFilterKeyframe(TUniqueId uid, std::string_view name, const CEntityInfo& info, EFilterType type, EFilterShape shape, u32 filterIdx, u32 unk, const zeus::CColor& color, float timeIn, float timeOut, CAssetId txtr, bool active); diff --git a/Runtime/World/CScriptCameraHint.hpp b/Runtime/World/CScriptCameraHint.hpp index 3b3119e6f..c92d14871 100644 --- a/Runtime/World/CScriptCameraHint.hpp +++ b/Runtime/World/CScriptCameraHint.hpp @@ -89,6 +89,7 @@ class CScriptCameraHint : public CActor { void RemoveHelper(TUniqueId id); public: + DEFINE_ENTITY CScriptCameraHint(TUniqueId, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, s32 priority, CBallCamera::EBallCameraBehaviour behaviour, u32 overrideFlags, float minDist, float maxDist, float backwardsDist, const zeus::CVector3f& lookAtOffset, diff --git a/Runtime/World/CScriptCameraHintTrigger.hpp b/Runtime/World/CScriptCameraHintTrigger.hpp index 63f03050f..1b0b73a05 100644 --- a/Runtime/World/CScriptCameraHintTrigger.hpp +++ b/Runtime/World/CScriptCameraHintTrigger.hpp @@ -18,6 +18,7 @@ class CScriptCameraHintTrigger : public CActor { bool x130_27_playerWasInside : 1 = false; public: + DEFINE_ENTITY CScriptCameraHintTrigger(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& scale, const zeus::CTransform& xf, bool deactivateOnEnter, diff --git a/Runtime/World/CScriptCameraPitchVolume.hpp b/Runtime/World/CScriptCameraPitchVolume.hpp index 094b7d6fc..62801f002 100644 --- a/Runtime/World/CScriptCameraPitchVolume.hpp +++ b/Runtime/World/CScriptCameraPitchVolume.hpp @@ -21,6 +21,7 @@ class CScriptCameraPitchVolume : public CActor { bool x13c_25_occupied : 1 = false; public: + DEFINE_ENTITY CScriptCameraPitchVolume(TUniqueId, bool, std::string_view, const CEntityInfo&, const zeus::CVector3f&, const zeus::CTransform&, const zeus::CRelAngle&, const zeus::CRelAngle&, float); diff --git a/Runtime/World/CScriptCameraShaker.hpp b/Runtime/World/CScriptCameraShaker.hpp index 18df3237f..fc8081291 100644 --- a/Runtime/World/CScriptCameraShaker.hpp +++ b/Runtime/World/CScriptCameraShaker.hpp @@ -11,6 +11,7 @@ class CScriptCameraShaker : public CEntity { CCameraShakeData x34_shakeData; public: + DEFINE_ENTITY CScriptCameraShaker(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool active, const CCameraShakeData& shakeData); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptCameraWaypoint.hpp b/Runtime/World/CScriptCameraWaypoint.hpp index f76e6a2cb..b81e9f11f 100644 --- a/Runtime/World/CScriptCameraWaypoint.hpp +++ b/Runtime/World/CScriptCameraWaypoint.hpp @@ -12,6 +12,7 @@ class CScriptCameraWaypoint : public CActor { u32 xec_; public: + DEFINE_ENTITY CScriptCameraWaypoint(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, float hfov, u32); diff --git a/Runtime/World/CScriptColorModulate.hpp b/Runtime/World/CScriptColorModulate.hpp index 700cd7c6c..aee56dcbe 100644 --- a/Runtime/World/CScriptColorModulate.hpp +++ b/Runtime/World/CScriptColorModulate.hpp @@ -41,6 +41,7 @@ private: bool x55_24_isFadeOutHelper : 1 = false; public: + DEFINE_ENTITY CScriptColorModulate(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CColor& colorA, const zeus::CColor& colorB, EBlendMode blendMode, float timeA2B, float timeB2A, bool doReverse, bool resetTargetWhenDone, bool depthCompare, bool depthUpdate, bool depthBackwards, bool active); diff --git a/Runtime/World/CScriptControllerAction.hpp b/Runtime/World/CScriptControllerAction.hpp index 0290932b7..f321b609b 100644 --- a/Runtime/World/CScriptControllerAction.hpp +++ b/Runtime/World/CScriptControllerAction.hpp @@ -16,6 +16,7 @@ class CScriptControllerAction : public CEntity { bool x3c_26_pressed : 1 = false; public: + DEFINE_ENTITY CScriptControllerAction(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool active, ControlMapper::ECommands command, bool b1, u32 w1, bool b2); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptCounter.hpp b/Runtime/World/CScriptCounter.hpp index aa480e9e1..2412e8427 100644 --- a/Runtime/World/CScriptCounter.hpp +++ b/Runtime/World/CScriptCounter.hpp @@ -14,6 +14,7 @@ class CScriptCounter : public CEntity { bool x40_autoReset; public: + DEFINE_ENTITY CScriptCounter(TUniqueId, std::string_view name, const CEntityInfo& info, s32, s32, bool, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptCoverPoint.hpp b/Runtime/World/CScriptCoverPoint.hpp index ccaade702..25db18051 100644 --- a/Runtime/World/CScriptCoverPoint.hpp +++ b/Runtime/World/CScriptCoverPoint.hpp @@ -27,6 +27,7 @@ class CScriptCoverPoint : public CActor { float x11c_timeLeft = 0.f; public: + DEFINE_ENTITY CScriptCoverPoint(TUniqueId uid, std::string_view name, const CEntityInfo& info, zeus::CTransform xf, bool active, u32 flags, bool crouch, float horizontalAngle, float verticalAngle, float coverTime); diff --git a/Runtime/World/CScriptDamageableTrigger.hpp b/Runtime/World/CScriptDamageableTrigger.hpp index fd13900e9..c6ddc3864 100644 --- a/Runtime/World/CScriptDamageableTrigger.hpp +++ b/Runtime/World/CScriptDamageableTrigger.hpp @@ -45,6 +45,7 @@ public: Orbit, }; + DEFINE_ENTITY CScriptDamageableTrigger(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& position, const zeus::CVector3f& extent, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln, u32 faceFlag, CAssetId patternTex1, CAssetId patternTex2, diff --git a/Runtime/World/CScriptDebris.hpp b/Runtime/World/CScriptDebris.hpp index 937841c3b..15bdd5b70 100644 --- a/Runtime/World/CScriptDebris.hpp +++ b/Runtime/World/CScriptDebris.hpp @@ -55,6 +55,7 @@ private: TReservedAverage x2e0_speedAvg; public: + DEFINE_ENTITY CScriptDebris(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& aParams, CAssetId particleId, const zeus::CVector3f& particleScale, float zImpulse, const zeus::CVector3f& velocity, diff --git a/Runtime/World/CScriptDebugCameraWaypoint.hpp b/Runtime/World/CScriptDebugCameraWaypoint.hpp index 538c648a4..683be3bd3 100644 --- a/Runtime/World/CScriptDebugCameraWaypoint.hpp +++ b/Runtime/World/CScriptDebugCameraWaypoint.hpp @@ -11,6 +11,7 @@ class CScriptDebugCameraWaypoint : public CActor { u32 xe8_w1; public: + DEFINE_ENTITY CScriptDebugCameraWaypoint(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, u32 w1); diff --git a/Runtime/World/CScriptDistanceFog.hpp b/Runtime/World/CScriptDistanceFog.hpp index ae967c4b1..0ea75d5c2 100644 --- a/Runtime/World/CScriptDistanceFog.hpp +++ b/Runtime/World/CScriptDistanceFog.hpp @@ -23,6 +23,7 @@ class CScriptDistanceFog : public CEntity { bool x61_nonZero; public: + DEFINE_ENTITY CScriptDistanceFog(TUniqueId, std::string_view, const CEntityInfo&, ERglFogMode, const zeus::CColor&, const zeus::CVector2f&, float, const zeus::CVector2f&, bool, bool, float, float, float, float); diff --git a/Runtime/World/CScriptDock.hpp b/Runtime/World/CScriptDock.hpp index 083f85fb1..a3e9dd6f7 100644 --- a/Runtime/World/CScriptDock.hpp +++ b/Runtime/World/CScriptDock.hpp @@ -20,6 +20,7 @@ class CScriptDock : public CPhysicsActor { bool x268_26_areaPostConstructed : 1 = false; public: + DEFINE_ENTITY CScriptDock(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& position, const zeus::CVector3f& extent, s32 dock, TAreaId area, bool active, s32 dockReferenceCount, bool loadConnected); diff --git a/Runtime/World/CScriptDockAreaChange.hpp b/Runtime/World/CScriptDockAreaChange.hpp index 9a798399a..13daf627a 100644 --- a/Runtime/World/CScriptDockAreaChange.hpp +++ b/Runtime/World/CScriptDockAreaChange.hpp @@ -10,6 +10,7 @@ class CScriptDockAreaChange : public CEntity { s32 x34_dockReference; public: + DEFINE_ENTITY CScriptDockAreaChange(TUniqueId, std::string_view, const CEntityInfo&, s32, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptDoor.hpp b/Runtime/World/CScriptDoor.hpp index 2b49ffc61..60388efde 100644 --- a/Runtime/World/CScriptDoor.hpp +++ b/Runtime/World/CScriptDoor.hpp @@ -43,6 +43,7 @@ public: bool x2a8_30_doClose : 1 = false; public: + DEFINE_ENTITY CScriptDoor(TUniqueId, std::string_view name, const CEntityInfo& info, const zeus::CTransform&, CModelData&&, const CActorParameters&, const zeus::CVector3f&, const zeus::CAABox&, bool active, bool open, bool, float, bool ballDoor); diff --git a/Runtime/World/CScriptEMPulse.hpp b/Runtime/World/CScriptEMPulse.hpp index d1545d343..f3c87e6d9 100644 --- a/Runtime/World/CScriptEMPulse.hpp +++ b/Runtime/World/CScriptEMPulse.hpp @@ -21,6 +21,7 @@ class CScriptEMPulse : public CActor { zeus::CAABox CalculateBoundingBox() const; public: + DEFINE_ENTITY CScriptEMPulse(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool, float, float, float, float, float, float, float, CAssetId); diff --git a/Runtime/World/CScriptEffect.hpp b/Runtime/World/CScriptEffect.hpp index c7bf07111..aded0ed24 100644 --- a/Runtime/World/CScriptEffect.hpp +++ b/Runtime/World/CScriptEffect.hpp @@ -44,6 +44,7 @@ class CScriptEffect : public CActor { float x140_destroyDelayTimer = 0.f; public: + DEFINE_ENTITY CScriptEffect(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, const zeus::CVector3f& scale, CAssetId partId, CAssetId elscId, bool hotInThermal, bool noTimerUnlessAreaOccluded, bool rebuildSystemsOnActivate, bool active, bool useRateInverseCamDist, diff --git a/Runtime/World/CScriptGenerator.hpp b/Runtime/World/CScriptGenerator.hpp index 90c0a3eff..eb6c9eaff 100644 --- a/Runtime/World/CScriptGenerator.hpp +++ b/Runtime/World/CScriptGenerator.hpp @@ -18,6 +18,7 @@ class CScriptGenerator : public CEntity { float x4c_maxScale; public: + DEFINE_ENTITY CScriptGenerator(TUniqueId uid, std::string_view name, const CEntityInfo& info, u32 spawnCount, bool noReuseFollowers, const zeus::CVector3f& vec1, bool noInheritXf, bool active, float minScale, float maxScale); diff --git a/Runtime/World/CScriptGrapplePoint.hpp b/Runtime/World/CScriptGrapplePoint.hpp index 3547b4b94..5d88ab4f7 100644 --- a/Runtime/World/CScriptGrapplePoint.hpp +++ b/Runtime/World/CScriptGrapplePoint.hpp @@ -13,6 +13,7 @@ class CScriptGrapplePoint : public CActor { CGrappleParameters x100_parameters; public: + DEFINE_ENTITY CScriptGrapplePoint(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& transform, bool active, const CGrappleParameters& params); diff --git a/Runtime/World/CScriptGunTurret.hpp b/Runtime/World/CScriptGunTurret.hpp index 9a4dc7824..8831647d2 100644 --- a/Runtime/World/CScriptGunTurret.hpp +++ b/Runtime/World/CScriptGunTurret.hpp @@ -212,6 +212,7 @@ private: bool IsInsignificantRotation(float) const; public: + DEFINE_ENTITY CScriptGunTurret(TUniqueId uid, std::string_view name, ETurretComponent comp, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const zeus::CAABox& aabb, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln, const CActorParameters& aParms, diff --git a/Runtime/World/CScriptHUDMemo.hpp b/Runtime/World/CScriptHUDMemo.hpp index f0a44af59..b1c76531a 100644 --- a/Runtime/World/CScriptHUDMemo.hpp +++ b/Runtime/World/CScriptHUDMemo.hpp @@ -23,6 +23,7 @@ public: private: public: + DEFINE_ENTITY CScriptHUDMemo(TUniqueId, std::string_view, const CEntityInfo&, const CHUDMemoParms&, CScriptHUDMemo::EDisplayType, CAssetId, bool); diff --git a/Runtime/World/CScriptMazeNode.hpp b/Runtime/World/CScriptMazeNode.hpp index b70c9fa42..f596c7712 100644 --- a/Runtime/World/CScriptMazeNode.hpp +++ b/Runtime/World/CScriptMazeNode.hpp @@ -99,6 +99,7 @@ class CScriptMazeNode : public CActor { bool x13c_26_gateActive : 1 = true; public: + DEFINE_ENTITY CScriptMazeNode(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, s32 col, s32 row, s32 side, const zeus::CVector3f& actorPos, const zeus::CVector3f& triggerPos, const zeus::CVector3f& effectPos); diff --git a/Runtime/World/CScriptMemoryRelay.hpp b/Runtime/World/CScriptMemoryRelay.hpp index 05935d28a..68d08510f 100644 --- a/Runtime/World/CScriptMemoryRelay.hpp +++ b/Runtime/World/CScriptMemoryRelay.hpp @@ -12,6 +12,7 @@ class CScriptMemoryRelay : public CEntity { bool x34_26_ignoreMessages; public: + DEFINE_ENTITY CScriptMemoryRelay(TUniqueId, std::string_view name, const CEntityInfo&, bool, bool, bool); void Accept(IVisitor& visitor) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override; diff --git a/Runtime/World/CScriptMidi.hpp b/Runtime/World/CScriptMidi.hpp index efeb77e30..b48200a67 100644 --- a/Runtime/World/CScriptMidi.hpp +++ b/Runtime/World/CScriptMidi.hpp @@ -19,6 +19,7 @@ class CScriptMidi : public CEntity { void StopInternal(float fadeTime); public: + DEFINE_ENTITY CScriptMidi(TUniqueId id, const CEntityInfo& info, std::string_view name, bool active, CAssetId csng, float, float, s32); diff --git a/Runtime/World/CScriptPickup.hpp b/Runtime/World/CScriptPickup.hpp index 52f26e27b..56dd26658 100644 --- a/Runtime/World/CScriptPickup.hpp +++ b/Runtime/World/CScriptPickup.hpp @@ -24,6 +24,7 @@ class CScriptPickup : public CPhysicsActor { bool x28c_26_enableTractorTest : 1 = false; public: + DEFINE_ENTITY CScriptPickup(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& aParams, const zeus::CAABox& aabb, CPlayerState::EItemType itemType, s32 amount, s32 capacity, CAssetId pickupEffect, diff --git a/Runtime/World/CScriptPickupGenerator.hpp b/Runtime/World/CScriptPickupGenerator.hpp index f42810eb1..1efa86629 100644 --- a/Runtime/World/CScriptPickupGenerator.hpp +++ b/Runtime/World/CScriptPickupGenerator.hpp @@ -17,6 +17,7 @@ class CScriptPickupGenerator : public CEntity { void GeneratePickup(CStateManager& mgr, TEditorId templateId, TUniqueId generatorId) const; public: + DEFINE_ENTITY CScriptPickupGenerator(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CVector3f&, float, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptPlatform.hpp b/Runtime/World/CScriptPlatform.hpp index aaf44c803..4ec8ad2e0 100644 --- a/Runtime/World/CScriptPlatform.hpp +++ b/Runtime/World/CScriptPlatform.hpp @@ -75,6 +75,7 @@ class CScriptPlatform : public CPhysicsActor { std::optional m_boxFilter; public: + DEFINE_ENTITY CScriptPlatform(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& actParms, const zeus::CAABox& aabb, float speed, bool detectCollision, float xrayAlpha, bool active, const CHealthInfo& hInfo, diff --git a/Runtime/World/CScriptPlayerActor.hpp b/Runtime/World/CScriptPlayerActor.hpp index bb71f8633..f22bde1fd 100644 --- a/Runtime/World/CScriptPlayerActor.hpp +++ b/Runtime/World/CScriptPlayerActor.hpp @@ -52,6 +52,7 @@ class CScriptPlayerActor : public CScriptActor { void TouchModels_Internal(const CStateManager& mgr) const; public: + DEFINE_ENTITY CScriptPlayerActor(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, const CAnimRes& animRes, CModelData&& mData, const zeus::CAABox& aabox, bool setBoundingBox, const CMaterialList& list, float mass, float zMomentum, const CHealthInfo& hInfo, diff --git a/Runtime/World/CScriptPlayerHint.hpp b/Runtime/World/CScriptPlayerHint.hpp index 10be641fc..c190e13af 100644 --- a/Runtime/World/CScriptPlayerHint.hpp +++ b/Runtime/World/CScriptPlayerHint.hpp @@ -18,6 +18,7 @@ class CScriptPlayerHint : public CActor { void RemoveFromObjectList(TUniqueId uid); public: + DEFINE_ENTITY CScriptPlayerHint(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, u32 priority, u32 overrideFlags); void Accept(IVisitor& visit) override; diff --git a/Runtime/World/CScriptPlayerStateChange.hpp b/Runtime/World/CScriptPlayerStateChange.hpp index 539679e2c..862178284 100644 --- a/Runtime/World/CScriptPlayerStateChange.hpp +++ b/Runtime/World/CScriptPlayerStateChange.hpp @@ -19,6 +19,7 @@ private: EControlCommandOption x44_ctrlCmdOpt; public: + DEFINE_ENTITY CScriptPlayerStateChange(TUniqueId, std::string_view, const CEntityInfo&, bool, u32, u32, u32, EControl, EControlCommandOption); void Accept(IVisitor& visit) override; diff --git a/Runtime/World/CScriptPointOfInterest.hpp b/Runtime/World/CScriptPointOfInterest.hpp index e7ebcdda0..82e82534d 100644 --- a/Runtime/World/CScriptPointOfInterest.hpp +++ b/Runtime/World/CScriptPointOfInterest.hpp @@ -11,6 +11,7 @@ private: float xe8_pointSize; public: + DEFINE_ENTITY CScriptPointOfInterest(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool, const CScannableParameters&, float); diff --git a/Runtime/World/CScriptRandomRelay.hpp b/Runtime/World/CScriptRandomRelay.hpp index f5a69deba..ec341fb37 100644 --- a/Runtime/World/CScriptRandomRelay.hpp +++ b/Runtime/World/CScriptRandomRelay.hpp @@ -12,6 +12,7 @@ class CScriptRandomRelay : public CEntity { bool x3c_percentSize; public: + DEFINE_ENTITY CScriptRandomRelay(TUniqueId uid, std::string_view name, const CEntityInfo& info, s32 sendSetSize, s32 sendSetVariance, bool percentSize, bool active); diff --git a/Runtime/World/CScriptRelay.hpp b/Runtime/World/CScriptRelay.hpp index c175bed53..774cc92ff 100644 --- a/Runtime/World/CScriptRelay.hpp +++ b/Runtime/World/CScriptRelay.hpp @@ -11,6 +11,7 @@ class CScriptRelay : public CEntity { u32 x38_sendCount = 0; public: + DEFINE_ENTITY CScriptRelay(TUniqueId, std::string_view, const CEntityInfo&, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptRipple.hpp b/Runtime/World/CScriptRipple.hpp index d1fbbe25a..15c8f5cbf 100644 --- a/Runtime/World/CScriptRipple.hpp +++ b/Runtime/World/CScriptRipple.hpp @@ -12,6 +12,7 @@ class CScriptRipple : public CEntity { zeus::CVector3f x38_center; public: + DEFINE_ENTITY CScriptRipple(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CVector3f&, bool, float); void Accept(IVisitor&) override; diff --git a/Runtime/World/CScriptRoomAcoustics.hpp b/Runtime/World/CScriptRoomAcoustics.hpp index dd690b31a..054496b8d 100644 --- a/Runtime/World/CScriptRoomAcoustics.hpp +++ b/Runtime/World/CScriptRoomAcoustics.hpp @@ -27,6 +27,7 @@ class CScriptRoomAcoustics : public CEntity { amuse::EffectDelayInfo x80_delayInfo; public: + DEFINE_ENTITY CScriptRoomAcoustics(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool active, u32 volScale, bool revHi, bool revHiDis, float revHiColoration, float revHiMix, float revHiTime, float revHiDamping, float revHiPreDelay, float revHiCrosstalk, bool chorus, float baseDelay, diff --git a/Runtime/World/CScriptShadowProjector.hpp b/Runtime/World/CScriptShadowProjector.hpp index 5d592b328..eb8a953c5 100644 --- a/Runtime/World/CScriptShadowProjector.hpp +++ b/Runtime/World/CScriptShadowProjector.hpp @@ -24,6 +24,7 @@ class CScriptShadowProjector : public CActor { bool x110_25_shadowInvalidated : 1 = false; public: + DEFINE_ENTITY CScriptShadowProjector(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool, const zeus::CVector3f&, bool, float, float, float, float, s32); diff --git a/Runtime/World/CScriptSound.hpp b/Runtime/World/CScriptSound.hpp index d0ccdef3a..c8c3029a5 100644 --- a/Runtime/World/CScriptSound.hpp +++ b/Runtime/World/CScriptSound.hpp @@ -42,6 +42,7 @@ class CScriptSound : public CActor { static float GetOccludedVolumeAmount(const zeus::CVector3f& pos, const CStateManager& mgr); public: + DEFINE_ENTITY CScriptSound(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, u16 soundId, bool active, float maxDist, float distComp, float startDelay, u32 minVol, u32 vol, u32 w3, u32 prio, u32 pan, u32 w6, bool looped, bool nonEmitter, bool autoStart, bool occlusionTest, bool acoustics, diff --git a/Runtime/World/CScriptSpawnPoint.hpp b/Runtime/World/CScriptSpawnPoint.hpp index 512752d58..e83c63767 100644 --- a/Runtime/World/CScriptSpawnPoint.hpp +++ b/Runtime/World/CScriptSpawnPoint.hpp @@ -18,6 +18,7 @@ class CScriptSpawnPoint : public CEntity { bool x10c_25_morphed : 1; public: + DEFINE_ENTITY CScriptSpawnPoint(TUniqueId, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, const rstl::reserved_vector& itemCounts, bool, bool, bool); diff --git a/Runtime/World/CScriptSpecialFunction.hpp b/Runtime/World/CScriptSpecialFunction.hpp index 572d10592..167883062 100644 --- a/Runtime/World/CScriptSpecialFunction.hpp +++ b/Runtime/World/CScriptSpecialFunction.hpp @@ -112,6 +112,7 @@ private: bool x1e5_26_displayBillboard : 1 = false; TLockedToken x1e8_; // Used to be optional public: + DEFINE_ENTITY CScriptSpecialFunction(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, ESpecialFunction, std::string_view, float, float, float, float, const zeus::CVector3f&, const zeus::CColor&, bool, const CDamageInfo&, s32, s32, CPlayerState::EItemType, s16, s16, s16); diff --git a/Runtime/World/CScriptSpiderBallAttractionSurface.hpp b/Runtime/World/CScriptSpiderBallAttractionSurface.hpp index 4aa116bbb..cb379051e 100644 --- a/Runtime/World/CScriptSpiderBallAttractionSurface.hpp +++ b/Runtime/World/CScriptSpiderBallAttractionSurface.hpp @@ -14,6 +14,7 @@ class CScriptSpiderBallAttractionSurface : public CActor { zeus::CAABox xf4_aabb; public: + DEFINE_ENTITY CScriptSpiderBallAttractionSurface(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, const zeus::CVector3f& scale, bool active); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptSpiderBallWaypoint.hpp b/Runtime/World/CScriptSpiderBallWaypoint.hpp index f9d5cae59..51dbccc7d 100644 --- a/Runtime/World/CScriptSpiderBallWaypoint.hpp +++ b/Runtime/World/CScriptSpiderBallWaypoint.hpp @@ -16,6 +16,7 @@ class CScriptSpiderBallWaypoint : public CActor { std::optional xfc_aabox; public: + DEFINE_ENTITY CScriptSpiderBallWaypoint(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool, u32); void Accept(IVisitor&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; diff --git a/Runtime/World/CScriptSpindleCamera.hpp b/Runtime/World/CScriptSpindleCamera.hpp index 649634cdb..cae6fc45a 100644 --- a/Runtime/World/CScriptSpindleCamera.hpp +++ b/Runtime/World/CScriptSpindleCamera.hpp @@ -83,6 +83,7 @@ class CScriptSpindleCamera : public CGameCamera { float GetInVar(const SSpindleProperty& seg) const { return x18c_inVars[int(seg.x4_input)]; } public: + DEFINE_ENTITY CScriptSpindleCamera(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, u32 flags, float hintToCamDistMin, float hintToCamDistMax, float hintToCamVOffMin, float hintToCamVOffMax, diff --git a/Runtime/World/CScriptSteam.hpp b/Runtime/World/CScriptSteam.hpp index 72a253af5..b356ae24c 100644 --- a/Runtime/World/CScriptSteam.hpp +++ b/Runtime/World/CScriptSteam.hpp @@ -17,6 +17,7 @@ class CScriptSteam : public CScriptTrigger { float x168_ = 0.f; public: + DEFINE_ENTITY CScriptSteam(TUniqueId, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& pos, const zeus::CAABox&, const CDamageInfo& dInfo, const zeus::CVector3f& orientedForce, ETriggerFlags flags, bool active, CAssetId, float, float, float, float, bool); diff --git a/Runtime/World/CScriptStreamedMusic.hpp b/Runtime/World/CScriptStreamedMusic.hpp index 8f2532c0e..b5dc18782 100644 --- a/Runtime/World/CScriptStreamedMusic.hpp +++ b/Runtime/World/CScriptStreamedMusic.hpp @@ -23,6 +23,7 @@ class CScriptStreamedMusic : public CEntity { void TweakOverride(CStateManager& mgr); public: + DEFINE_ENTITY CScriptStreamedMusic(TUniqueId id, const CEntityInfo& info, std::string_view name, bool active, std::string_view fileName, bool noStopOnDeactivate, float fadeIn, float fadeOut, u32 volume, bool loop, bool music); diff --git a/Runtime/World/CScriptSwitch.hpp b/Runtime/World/CScriptSwitch.hpp index f1a3615a8..57e9cc815 100644 --- a/Runtime/World/CScriptSwitch.hpp +++ b/Runtime/World/CScriptSwitch.hpp @@ -9,6 +9,7 @@ class CScriptSwitch : public CEntity { bool x35_closeOnOpened; public: + DEFINE_ENTITY CScriptSwitch(TUniqueId, std::string_view, const CEntityInfo&, bool, bool, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptTargetingPoint.hpp b/Runtime/World/CScriptTargetingPoint.hpp index 0d4475b2b..a474cd9d4 100644 --- a/Runtime/World/CScriptTargetingPoint.hpp +++ b/Runtime/World/CScriptTargetingPoint.hpp @@ -13,6 +13,7 @@ private: float xec_time = 0.f; public: + DEFINE_ENTITY CScriptTargetingPoint(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptTimer.hpp b/Runtime/World/CScriptTimer.hpp index e33aad7bd..a05066e95 100644 --- a/Runtime/World/CScriptTimer.hpp +++ b/Runtime/World/CScriptTimer.hpp @@ -14,6 +14,7 @@ class CScriptTimer : public CEntity { bool x42_isTiming; public: + DEFINE_ENTITY CScriptTimer(TUniqueId, std::string_view name, const CEntityInfo& info, float, float, bool, bool, bool); void Accept(IVisitor& visitor) override; diff --git a/Runtime/World/CScriptTrigger.hpp b/Runtime/World/CScriptTrigger.hpp index ba270a21f..fa864ba7b 100644 --- a/Runtime/World/CScriptTrigger.hpp +++ b/Runtime/World/CScriptTrigger.hpp @@ -62,6 +62,7 @@ protected: bool x148_29_didPhazonDamage : 1 = false; public: + DEFINE_ENTITY CScriptTrigger(TUniqueId, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& pos, const zeus::CAABox&, const CDamageInfo& dInfo, const zeus::CVector3f& orientedForce, ETriggerFlags triggerFlags, bool, bool, bool); diff --git a/Runtime/World/CScriptVisorFlare.hpp b/Runtime/World/CScriptVisorFlare.hpp index 852dddb98..2d7c8f365 100644 --- a/Runtime/World/CScriptVisorFlare.hpp +++ b/Runtime/World/CScriptVisorFlare.hpp @@ -12,6 +12,7 @@ class CScriptVisorFlare : public CActor { bool x11c_notInRenderLast = true; public: + DEFINE_ENTITY CScriptVisorFlare(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool active, const zeus::CVector3f& pos, CVisorFlare::EBlendMode blendMode, bool, float, float, float, u32, u32, std::vector flares); diff --git a/Runtime/World/CScriptVisorGoo.hpp b/Runtime/World/CScriptVisorGoo.hpp index 3ce310c86..63ed4fb0f 100644 --- a/Runtime/World/CScriptVisorGoo.hpp +++ b/Runtime/World/CScriptVisorGoo.hpp @@ -23,6 +23,7 @@ class CScriptVisorGoo : public CActor { bool x118_24_angleTest : 1; public: + DEFINE_ENTITY CScriptVisorGoo(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CAssetId particle, CAssetId electric, float minDist, float maxDist, float nearProb, float farProb, const zeus::CColor& color, int sfx, bool forceShow, bool active); diff --git a/Runtime/World/CScriptWater.hpp b/Runtime/World/CScriptWater.hpp index 6511647ff..be8ffe3e7 100644 --- a/Runtime/World/CScriptWater.hpp +++ b/Runtime/World/CScriptWater.hpp @@ -79,6 +79,7 @@ class CScriptWater : public CScriptTrigger { void UpdateSplashInhabitants(CStateManager& mgr); public: + DEFINE_ENTITY CScriptWater(CStateManager& mgr, TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& pos, const zeus::CAABox& box, const metaforce::CDamageInfo& dInfo, zeus::CVector3f& orientedForce, ETriggerFlags triggerFlags, bool thermalCold, bool allowRender, diff --git a/Runtime/World/CScriptWaypoint.hpp b/Runtime/World/CScriptWaypoint.hpp index 28dbcdab0..81e81ff38 100644 --- a/Runtime/World/CScriptWaypoint.hpp +++ b/Runtime/World/CScriptWaypoint.hpp @@ -19,6 +19,7 @@ class CScriptWaypoint : public CActor { u16 xfa_behaviourModifiers; public: + DEFINE_ENTITY CScriptWaypoint(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active, float speed, float pause, u32 patternTranslate, u32 patternOrient, u32 patternFit, u32 behaviour, u32 behaviourOrient, u32 behaviourModifiers, u32 animation); diff --git a/Runtime/World/CScriptWorldTeleporter.hpp b/Runtime/World/CScriptWorldTeleporter.hpp index 02752e930..f86d2b91e 100644 --- a/Runtime/World/CScriptWorldTeleporter.hpp +++ b/Runtime/World/CScriptWorldTeleporter.hpp @@ -35,6 +35,7 @@ class CScriptWorldTeleporter : public CEntity { CAssetId x90_stringId; public: + DEFINE_ENTITY CScriptWorldTeleporter(TUniqueId, std::string_view, const CEntityInfo&, bool, CAssetId, CAssetId); CScriptWorldTeleporter(TUniqueId, std::string_view, const CEntityInfo&, bool, CAssetId, CAssetId, u16, u8, u8, CAssetId, CAssetId, bool, float, float, float); diff --git a/Runtime/World/CSnakeWeedSwarm.hpp b/Runtime/World/CSnakeWeedSwarm.hpp index 4b4ec94dd..fc86fcb0f 100644 --- a/Runtime/World/CSnakeWeedSwarm.hpp +++ b/Runtime/World/CSnakeWeedSwarm.hpp @@ -90,6 +90,7 @@ private: float x204_particleTimer = 0.f; public: + DEFINE_ENTITY CSnakeWeedSwarm(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& pos, const zeus::CVector3f& scale, const CAnimRes& animRes, const CActorParameters& actParms, float spacing, float height, float f3, float weaponDamageRadius, diff --git a/Runtime/World/CTeamAiMgr.hpp b/Runtime/World/CTeamAiMgr.hpp index 4f7cdd7ea..8193d8110 100644 --- a/Runtime/World/CTeamAiMgr.hpp +++ b/Runtime/World/CTeamAiMgr.hpp @@ -79,6 +79,7 @@ private: void PositionTeam(CStateManager& mgr); public: + DEFINE_ENTITY CTeamAiMgr(TUniqueId uid, std::string_view name, const CEntityInfo& info, const CTeamAiData& data); void Accept(IVisitor&) override; diff --git a/Runtime/World/CWallCrawlerSwarm.hpp b/Runtime/World/CWallCrawlerSwarm.hpp index 661311e23..69636fd11 100644 --- a/Runtime/World/CWallCrawlerSwarm.hpp +++ b/Runtime/World/CWallCrawlerSwarm.hpp @@ -168,6 +168,7 @@ private: void RenderBoid(const CBoid* boid, u32& drawMask, bool thermalHot, const CModelFlags& flags) const; public: + DEFINE_ENTITY CWallCrawlerSwarm(TUniqueId uid, bool active, std::string_view name, const CEntityInfo& info, const zeus::CVector3f& boundingBoxExtent, const zeus::CTransform& xf, EFlavor flavor, const CAnimRes& animRes, s32 launchAnim, s32 attractAnim, diff --git a/Runtime/World/CWallWalker.hpp b/Runtime/World/CWallWalker.hpp index 63ff20aed..96221fad0 100644 --- a/Runtime/World/CWallWalker.hpp +++ b/Runtime/World/CWallWalker.hpp @@ -12,6 +12,7 @@ namespace metaforce { class CWallWalker : public CPatterned { public: + DEFINE_ENTITY enum class EWalkerType { Parasite = 0, Oculus = 1, Geemer = 2, IceZoomer = 3, Seedling = 4 }; protected: