metaforce/Runtime/World/ScriptObjectSupport.hpp

233 lines
4.7 KiB
C++

#pragma once
#include <string_view>
namespace metaforce {
enum class EScriptObjectType {
Actor = 0x00,
Waypoint = 0x02,
Door = 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,
Metaree = 0x37,
DockAreaChange = 0x38,
ActorRotate = 0x39,
SpecialFunction = 0x3A,
SpankWeed = 0x3B,
Parasite = 0x3D,
PlayerHint = 0x3E,
Ripper = 0x3F,
PickupGenerator = 0x40,
AIKeyframe = 0x41,
PointOfInterest = 0x42,
Drone = 0x43,
Metroid = 0x44,
DebrisExtended = 0x45,
Steam = 0x46,
Ripple = 0x47,
BallTrigger = 0x48,
TargetingPoint = 0x49,
EMPulse = 0x4A,
IceSheegoth = 0x4B,
PlayerActor = 0x4C,
Flaahgra = 0x4D,
AreaAttributes = 0x4E,
FishCloud = 0x4F,
FishCloudModifier = 0x50,
VisorFlare = 0x51,
WorldTeleporter = 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,
WorldTeleporterToo = 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 {
Any = -1,
Active = 0,
Arrived = 1,
Closed = 2,
Entered = 3,
Exited = 4,
Inactive = 5,
Inside = 6,
MaxReached = 7,
Open = 8,
Zero = 9,
Attack = 10,
CloseIn = 11,
Retreat = 12,
Patrol = 13,
Dead = 14,
CameraPath = 15,
CameraTarget = 16,
DeactivateState = 17,
Play = 18,
MassiveDeath = 19,
DeathRattle = 20,
AboutToMassivelyDie = 21,
Damage = 22,
InvulnDamage = 23,
MassiveFrozenDeath = 24,
Modify = 25,
ScanStart = 26,
ScanProcessing = 27,
ScanDone = 28,
UnFrozen = 29,
Default = 30,
ReflectedDamage = 31,
InheritBounds = 32
};
enum class EScriptObjectMessage {
None = -1,
UNKM0 = 0,
Activate = 1,
Arrived = 2,
Close = 3,
Deactivate = 4,
Decrement = 5,
Follow = 6,
Increment = 7,
Next = 8,
Open = 9,
Reset = 10,
ResetAndStart = 11,
SetToMax = 12,
SetToZero = 13,
Start = 14,
Stop = 15,
StopAndReset = 16,
ToggleActive = 17,
UNKM18 = 18,
Action = 19,
Play = 20,
Alert = 21,
InternalMessage00 = 22,
OnFloor = 23,
InternalMessage02 = 24,
InternalMessage03 = 25,
Falling = 26,
OnIceSurface = 27,
OnMudSlowSurface = 28,
OnNormalSurface = 29,
Touched = 30,
AddPlatformRider = 31,
LandOnNotFloor = 32,
Registered = 33,
Deleted = 34,
InitializedInArea = 35,
WorldInitialized = 36,
AddSplashInhabitant = 37,
UpdateSplashInhabitant = 38,
RemoveSplashInhabitant = 39,
Jumped = 40,
Damage = 41,
InvulnDamage = 42,
ProjectileCollide = 43,
InSnakeWeed = 44,
AddPhazonPoolInhabitant = 45,
UpdatePhazonPoolInhabitant = 46,
RemovePhazonPoolInhabitant = 47,
SuspendedMove = 48
};
std::string_view ScriptObjectTypeToStr(EScriptObjectType type);
std::string_view ScriptObjectStateToStr(EScriptObjectState state);
std::string_view ScriptObjectMessageToStr(EScriptObjectMessage message);
} // namespace metaforce