Isle
Loading...
Searching...
No Matches
Ambulance Class Reference

Main game logic and control entity for the Ambulance gameplay activity. More...

#include <ambulance.h>

Inheritance diagram for Ambulance:
Collaboration diagram for Ambulance:

Public Member Functions

 Ambulance ()
 [AI] Creates and initializes the ambulance actor; sets default velocities and initial mission state. [AI] More...
 
 ~Ambulance () override
 [AI] Destructor—unregisters the Ambulance from control and tickle managers and performs cleanup. [AI] More...
 
MxLong Notify (MxParam &p_param) override
 [AI] Handles notifications from the system (events, actions, button presses, etc.). More...
 
MxResult Tickle () override
 [AI] Called on each game "tick" to update state, handle random sounds, etc. More...
 
void Destroy (MxBool p_fromDestructor) override
 [AI] Does nothing for Ambulance; stub for virtual destroy. More...
 
const char * ClassName () const override
 [AI] Returns the class name "Ambulance" for RTTI. [AI] More...
 
MxBool IsA (const char *p_name) const override
 [AI] Checks whether this object is of type "Ambulance" or inherits from a type with the given name. More...
 
MxResult Create (MxDSAction &p_dsAction) override
 [AI] Creates this Ambulance object based on the provided DS action (from scripts/etc). More...
 
void Animate (float p_time) override
 [AI] Per-frame update for position, fuel, and any animation logic. More...
 
MxLong HandleClick () override
 [AI] Handles a "click" on this Ambulance actor (starts mission, triggers transitions, etc.). More...
 
MxLong HandleControl (LegoControlManagerNotificationParam &p_param) override
 [AI] Responds to control (UI/keyboard/joystick) input events. More...
 
MxLong HandlePathStruct (LegoPathStructNotificationParam &p_param) override
 [AI] Handles notifications related to path structure triggers such as mission segments or locations. More...
 
void Exit () override
 [AI] Exits the mission; triggers cleanup, world removal, and area/state updates. [AI] More...
 
virtual MxLong HandleButtonDown (LegoControlManagerNotificationParam &p_param)
 [AI] Handles button down events in the mission interface (e.g., gate click). More...
 
virtual MxLong HandleEndAction (MxEndActionNotificationParam &p_param)
 [AI] Handles end action notifications (e.g., animation completion), progresses mission or triggers feedback. More...
 
void CreateState ()
 [AI] Ensures AmbulanceMissionState is present in the game state manager; creates if missing. [AI] More...
 
void FUN_10036e60 ()
 [AI] Marks mission as failed/successful, triggers cutscene/animation for mission outcome. [AI_SUGGESTED_NAME: SetMissionOutcomeAnimation] More...
 
void ActivateSceneActions ()
 [AI] Handles the enabling of in-game ambient/scene actions when player enters the hospital scene. [AI] More...
 
void StopActions ()
 [AI] Stops currently running scripted actions/animations associated with the Ambulance mission. [AI] More...
 
void FUN_10037250 ()
 [AI] Resets game- and mission-related state after the mission; restores music, resets state objects, etc. [AI_SUGGESTED_NAME: ResetAfterMission] More...
 
- Public Member Functions inherited from IslePathActor
 IslePathActor ()
 [AI] Constructs a new IslePathActor and resets its world state. More...
 
virtual MxLong HandleClick ()
 [AI] Handles a click event for interaction with this actor. More...
 
virtual MxLong HandleNotification0 ()
 [AI] Handles custom notification type 0 for this actor. More...
 
virtual MxLong HandleControl (LegoControlManagerNotificationParam &)
 [AI] Handles in-game player controls notifications for this actor. More...
 
virtual MxLong HandleEndAnim (LegoEndAnimNotificationParam &)
 [AI] Handles end-of-animation notifications for this actor. More...
 
virtual MxLong HandlePathStruct (LegoPathStructNotificationParam &)
 [AI] Handles structure/path-related notifications for this actor. More...
 
virtual void Enter ()
 [AI] Called when the actor is made active in a new area or context, setting navigation and visibility state. More...
 
virtual void Exit ()
 [AI] Called when the actor is deactivated or moved out of player control, restoring previous actor if available. More...
 
virtual void SpawnPlayer (LegoGameState::Area p_area, MxBool p_enter, MxU8 p_flags)
 [AI] Spawns the player in a specific area/location, potentially triggering music and animation. More...
 
virtual void VTable0xec (MxMatrix p_transform, LegoPathBoundary *p_boundary, MxBool p_reset)
 [AI] Places this actor in the current world with a given transformation, resets input if requested. More...
 
 ~IslePathActor () override
 [AI] Destructor; performs resource cleanup by delegating to Destroy(TRUE). More...
 
MxLong Notify (MxParam &p_param) override
 [AI] Dispatches notifications to specialized handlers based on notification type. More...
 
const char * ClassName () const override
 [AI] Get class name string for RTTI/comparison. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Checks if class or any superclass matches the given type string. More...
 
MxResult Create (MxDSAction &p_dsAction) override
 [AI] Initialize this actor from a DSAction. More...
 
void Destroy (MxBool p_fromDestructor) override
 [AI] Cleans up the actor and associated resources. More...
 
void FUN_1001b660 ()
 [AI] Synchronizes the actor's world transformation and ROI. More...
 
void SetWorld (LegoWorld *p_world)
 [AI] Sets the current world this actor belongs to, updating its reference for placement. More...
 
- Public Member Functions inherited from LegoPathActor
 LegoPathActor ()
 [AI] Initializes the path actor, setting up default state and references. [AI] More...
 
 ~LegoPathActor () override
 [AI] Destructor, cleans up allocated containers. [AI] More...
 
void ParseAction (char *p_extra) override
 [AI] Parses a set of key-value action commands and configures path navigation and collision for this actor. More...
 
virtual MxS32 VTable0x68 (Vector3 &p_v1, Vector3 &p_v2, Vector3 &p_v3)
 [AI] Checks for collision/intersection with boundaries, geometry, and other actors along a traced segment; assists in advanced pathfinding by propagation. More...
 
virtual MxU32 VTable0x6c (LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3)
 [AI] Trace movement or collision through presenters (edge test), then through other actors. More...
 
virtual void Animate (float p_time)
 [AI] Per-frame animation update. More...
 
virtual void VTable0x74 (Matrix4 &p_transform)
 [AI] Updates the ROI's transformation (typically matrix) with new values, applies world position/orientation changes. More...
 
virtual void SetUserNavFlag (MxBool p_userNavFlag)
 [AI] Sets whether the actor is controlled by user navigation. More...
 
virtual MxBool GetUserNavFlag ()
 [AI] Returns user navigation state (whether actor follows player input). More...
 
virtual MxResult VTable0x80 (const Vector3 &p_point1, Vector3 &p_point2, Vector3 &p_point3, Vector3 &p_point4)
 [AI] Calculates path interpolation for a set of points, updates state for path animation, and computes Bezier arc duration. More...
 
virtual MxResult VTable0x84 (LegoPathBoundary *p_boundary, float p_time, Vector3 &p_p1, Vector3 &p_p4, LegoUnknown100db7f4 &p_destEdge, float p_destScale)
 [AI] Moves actor to a destination edge. More...
 
virtual MxResult VTable0x88 (LegoPathBoundary *p_boundary, float p_time, LegoEdge &p_srcEdge, float p_srcScale, LegoUnknown100db7f4 &p_destEdge, float p_destScale)
 [AI] Moves the actor between two edges across a boundary, recalculates placement and orientation. More...
 
virtual MxS32 VTable0x8c (float p_time, Matrix4 &p_transform)
 [AI] Advance actor's position/state along the path for a given timeslice. More...
 
virtual MxU32 VTable0x90 (float, Matrix4 &)
 [AI] Placeholder for custom logic during per-timestep simulation for non-user-controlled animation. More...
 
virtual MxResult HitActor (LegoPathActor *, MxBool)
 [AI] Handles logic when this actor hits (collides with) another path actor; can be overridden for custom interaction. More...
 
virtual void SwitchBoundary (LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4)
 [AI] Switches current path boundary and destination edge, typically called on transitions or respawns. More...
 
virtual MxResult VTable0x9c ()
 [AI] Handles exit transition and next-edge search logic; also used for collision reaction and fallback. More...
 
virtual MxS32 VTable0xa0 ()
 [AI] Placeholder for custom extension. More...
 
virtual void VTable0xa4 (MxBool &p_und1, MxS32 &p_und2)
 [AI] Returns information depending on actor type. More...
 
virtual void VTable0xa8 ()
 [AI] Re-applies transform to ROI, updates camera if needed, and processes per-actor tick actions. More...
 
virtual void SetMaxLinearVel (MxFloat p_maxLinearVel)
 [AI] Sets the maximum linear velocity for actor navigation. More...
 
virtual MxFloat GetMaxLinearVel ()
 [AI] Gets the maximum allowed navigation speed for this actor. More...
 
virtual MxFloat VTable0xb4 ()
 [AI] Returns an internal value used in fallback collision/velocity calculation (proportional fudge factor). More...
 
virtual MxFloat VTable0xb8 ()
 [AI] Returns a damping/multiplier factor used for velocity reduction after collisions. More...
 
virtual void VTable0xbc (MxFloat p_unk0x140)
 [AI] Sets the fudge parameter for fallback collision push-back. More...
 
virtual void VTable0xc0 (MxFloat p_unk0x144)
 [AI] Sets the velocity damping factor after bump. More...
 
virtual void VTable0xc4 ()
 [AI] Empty handler for optional custom per-tick transition logic. More...
 
virtual void VTable0xc8 (MxU8 p_unk0x148)
 [AI] Sets the rolling state (animation index, mainly for camera turning/curves). More...
 
const char * ClassName () const override
 [AI] Returns the class name string for RTTI-style checks. More...
 
MxBool IsA (const char *p_name) const override
 [AI] RTTI-like check, matches against own or base class name for IsA hierarchy checks. More...
 
LegoPathBoundaryGetBoundary ()
 [AI] Retrieves the current path boundary associated with this actor. More...
 
MxU32 GetActorState ()
 [AI] Gets the current navigation/animation state of the actor. More...
 
LegoPathControllerGetController ()
 [AI] Retrieves pointer to the path controller which governs this actor's movement. More...
 
MxBool GetCollideBox ()
 [AI] Gets the actor's collision box flag (if TRUE, actor uses a precise collision shape). More...
 
MxFloat GetLastTime ()
 [AI] Gets the previous animation time value from last simulation tick. More...
 
MxFloat GetActorTime ()
 [AI] Returns the current animation time of the actor. More...
 
void SetBoundary (LegoPathBoundary *p_boundary)
 [AI] Assigns a new boundary for the actor (for path switching). More...
 
void SetActorState (MxU32 p_actorState)
 [AI] Sets the navigation/path state of the actor. More...
 
void SetController (LegoPathController *p_pathController)
 [AI] Assigns a new path controller (used for actor transitions between paths). More...
 
void SetLastTime (MxFloat p_lastTime)
 [AI] Sets the time value for the last performed simulation tick. More...
 
void SetActorTime (MxFloat p_actorTime)
 [AI] Sets the global actor animation time value, adjusting how far along the animation is. More...
 
void UpdatePlane (LegoNamedPlane &p_namedPlane)
 [AI] Updates a named plane to match this actor's world position, direction, and up vector. More...
 
void PlaceActor (LegoNamedPlane &p_namedPlane)
 [AI] Places this actor into the world at the given plane's name, location, and orientation. More...
 
- Public Member Functions inherited from LegoActor
 LegoActor ()
 [AI] Constructs new LegoActor, initializes members. More...
 
 ~LegoActor () override
 [AI] Cleans up LegoActor; stops sound if active. More...
 
const char * ClassName () const override
 [AI] Gets the class name of this object. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Determines if the class is or derives from the given name. More...
 
void ParseAction (char *p_extra) override
 [AI] Parses an action string and applies parsed behaviors to the actor. More...
 
void SetROI (LegoROI *p_roi, MxBool p_bool1, MxBool p_bool2) override
 [AI] Sets the Region of Interest (ROI, i.e. More...
 
virtual MxFloat GetSoundFrequencyFactor ()
 [AI] Returns the current frequency factor for the actor's sound. More...
 
virtual void SetSoundFrequencyFactor (MxFloat p_frequencyFactor)
 [AI] Sets the frequency factor for the actor's sound playback (e.g., to alter pitch). More...
 
virtual void VTable0x58 (MxFloat p_unk0x70)
 [AI] Sets a floating point property, unknown usage (possibly animation or audio parameter). More...
 
virtual MxFloat VTable0x5c ()
 [AI] Gets the unknown floating point property set by VTable0x58. [AI] [AI_SUGGESTED_NAME: GetVoicePitchModifier] More...
 
virtual MxU8 GetActorId ()
 [AI] Gets this actor's numeric ID, corresponding to a known enumeration/actor. More...
 
virtual void SetActorId (MxU8 p_actorId)
 [AI] Sets the actor's numeric ID. More...
 
void Mute (MxBool p_muted)
 [AI] Mutes or unmutes the actor's current sound. More...
 
- Public Member Functions inherited from LegoEntity
 LegoEntity ()
 [AI] Default constructor. Initializes the LegoEntity with default values. [AI] More...
 
 ~LegoEntity () override
 [AI] Destructor. Cleans up resources and ensures ROI and script state are released. [AI] More...
 
MxLong Notify (MxParam &p_param) override
 [AI] Handles event notification for the entity, most notably user clicks, using polymorphic dispatch. More...
 
const char * ClassName () const override
 [AI] Returns the class name string. Used in entity runtime type identification. [AI] More...
 
MxBool IsA (const char *p_name) const override
 [AI] Polymorphic type check for this entity given a string. More...
 
virtual MxResult Create (MxDSAction &p_dsAction)
 [AI] Initializes the entity from a DSAction object, typically from a script or file load. More...
 
virtual void Destroy (MxBool p_fromDestructor)
 [AI] Cleans up the entity, detaching ROI and releasing references. More...
 
virtual void ParseAction (char *p_extra)
 [AI] Parses an action description string (usually from script "extra" data) and sets up this entity's action state. More...
 
virtual void SetROI (LegoROI *p_roi, MxBool p_bool1, MxBool p_bool2)
 [AI] Assigns a 3D ROI (3D object instance) to this entity, controlling how it appears/acts in the world. More...
 
virtual void SetWorldTransform (const Vector3 &p_location, const Vector3 &p_direction, const Vector3 &p_up)
 [AI] Explicitly sets the world transformation (location, direction, up vector) for this entity. More...
 
virtual void ResetWorldTransform (MxBool p_cameraFlag)
 [AI] Resets the transformation for this entity (e.g., used with camera transitions). More...
 
virtual void SetWorldSpeed (MxFloat p_worldSpeed)
 [AI] Sets the current world speed value for this entity (used to control motion/animation rate). More...
 
virtual void ClickSound (MxBool p_und)
 [AI] Plays a click sound, typically in response to user/AI actions, according to entity type. More...
 
virtual void ClickAnimation ()
 [AI] Plays a context-sensitive click animation, driven by current entity type and state. [AI] More...
 
virtual void SwitchVariant ()
 [AI] Switches variants for this entity (e.g., different animation, mesh, or texture variant), based on type. [AI] More...
 
virtual void SwitchSound ()
 [AI] Triggers a context-dependent audio/sound variant switch for this entity. [AI] More...
 
virtual void SwitchMove ()
 [AI] Switches movement/animation variant for this entity, if applicable (e.g., walking/running state). [AI] More...
 
virtual void SwitchColor (LegoROI *p_roi)
 [AI] Switches the color or texture variant for this entity (or target ROI). More...
 
virtual void SwitchMood ()
 [AI] Triggers a mood/state switch for this entity (if supported), often for characters. [AI] More...
 
void FUN_10010c30 ()
 [AI] Updates the camera transformation when this entity is the camera target. Used after movement or position updates. [AI] More...
 
void SetType (MxU8 p_type)
 [AI] Sets the entity's type (actor/plant/building/etc.) [AI] More...
 
void SetLocation (const Vector3 &p_location, const Vector3 &p_direction, const Vector3 &p_up, MxBool p_und)
 [AI] Sets the world-space location, direction, and up, applying normalization and transformation. More...
 
Mx3DPointFloat GetWorldDirection ()
 [AI] Gets the normalized world-space direction vector, optionally updating from ROI. [AI] More...
 
Mx3DPointFloat GetWorldUp ()
 [AI] Gets the normalized world-space up vector, optionally updating from ROI. [AI] More...
 
Mx3DPointFloat GetWorldPosition ()
 [AI] Gets the world-space position vector, optionally updating from ROI. [AI] More...
 
MxBool GetUnknown0x10IsSet (MxU8 p_flag)
 [AI] Checks if a bit flag in m_unk0x10 is set (purpose: state/animation suppression lock). More...
 
MxBool GetFlagsIsSet (MxU8 p_flag)
 [AI] Checks if a flag is set in the primary flags byte (m_flags). More...
 
MxU8 GetFlags ()
 [AI] Returns the value of the flag byte. [AI] More...
 
MxFloat GetWorldSpeed ()
 [AI] Gets the entity's current world speed state. [AI] More...
 
LegoROIGetROI ()
 [AI] Gets the ROI (Realtime Object Instance) associated with this entity. [AI] More...
 
MxU8 GetType ()
 [AI] Gets the type of this entity (one of the enum Type values). [AI] More...
 
MxBool GetCameraFlag ()
 [AI] Returns whether this entity is flagged as camera (affects world/camera synchronization). [AI] More...
 
void SetFlags (MxU8 p_flags)
 [AI] Sets all entity flags at once (replaces previous). More...
 
void SetFlag (MxU8 p_flag)
 [AI] Sets the given flag in the flags byte. More...
 
void ClearFlag (MxU8 p_flag)
 [AI] Clears the given flag in the flags byte. More...
 
void SetUnknown0x10Flag (MxU8 p_flag)
 [AI] Sets the given bit in the unknown (usually internal action suppression) flag byte. More...
 
void ClearUnknown0x10Flag (MxU8 p_flag)
 [AI] Clears the given bit in the unknown flag byte. More...
 
- Public Member Functions inherited from MxEntity
 MxEntity ()
 Default constructor. More...
 
 ~MxEntity () override
 Virtual destructor for MxEntity. More...
 
const char * ClassName () const override
 Returns the class name for type introspection. More...
 
MxBool IsA (const char *p_name) const override
 Checks if the object is of the given class name or a parent type. More...
 
virtual MxResult Create (MxS32 p_entityId, const MxAtomId &p_atomId)
 Initializes the entity from a given entity ID and AtomId. More...
 
MxResult Create (MxDSAction &p_dsAction)
 Initializes the entity from a MxDSAction object. More...
 
MxS32 GetEntityId ()
 Returns the current entity ID. More...
 
MxAtomIdGetAtomId ()
 Returns a reference to the entity AtomId. More...
 
void SetEntityId (MxS32 p_entityId)
 Sets the entity ID to the given value. More...
 
void SetAtomId (const MxAtomId &p_atomId)
 Sets the AtomId to the given value. More...
 
- Public Member Functions inherited from MxCore
 MxCore ()
 [AI] Constructs a new MxCore object and assigns it a unique id. More...
 
virtual ~MxCore ()
 [AI] Virtual destructor. Required for correct polymorphic cleanup in derived classes. More...
 
virtual MxLong Notify (MxParam &p_param)
 [AI] Virtual callback notification mechanism. More...
 
virtual MxResult Tickle ()
 [AI] Called by tickle managers to allow the object to update itself. More...
 
virtual const char * ClassName () const
 [AI] Returns the runtime class name of this object. More...
 
virtual MxBool IsA (const char *p_name) const
 [AI] Checks whether this object's class type or parents match the given name. More...
 
MxU32 GetId ()
 [AI] Gets the unique (per-process) id assigned to this object instance. More...
 

Additional Inherited Members

- Public Types inherited from IslePathActor
enum  { c_LOCATIONS_NUM = 29 }
 
enum  { c_spawnBit1 = 0x01 , c_playMusic = 0x02 , c_spawnBit3 = 0x04 }
 
- Public Types inherited from LegoPathActor
enum  ActorState {
  c_initial = 0 , c_one = 1 , c_two = 2 , c_three = 3 ,
  c_disabled = 4 , c_maxState = 255 , c_noCollide = 0x100
}
 [AI] State and flags for a LegoPathActor during navigation along a path. [AI] More...
 
- Public Types inherited from LegoActor
enum  {
  c_none = 0 , c_pepper , c_mama , c_papa ,
  c_nick , c_laura , c_brickster
}
 [AI] Enumeration of actor IDs for known characters. More...
 
- Public Types inherited from LegoEntity
enum  Type {
  e_actor = 0 , e_unk1 , e_plant , e_building ,
  e_autoROI
}
 [AI] Types of LegoEntity (Actor, Plant, Building, Auto ROI, etc.) [AI] More...
 
enum  { c_bit1 = 0x01 , c_managerOwned = 0x02 }
 [AI] Bit flag constants for entity state management [AI] More...
 
enum  { c_altBit1 = 0x01 }
 [AI] Secondary bit flag constants [AI] More...
 
- Static Public Member Functions inherited from IslePathActor
static void RegisterSpawnLocations ()
 [AI] Static: Registers all known player spawn locations into the global location table. More...
 
- Static Public Member Functions inherited from LegoActor
static const char * GetActorName (MxU8 p_id)
 [AI] Gets the static display name of an actor by ID. More...
 
- Protected Member Functions inherited from LegoPathActor
MxU32 FUN_1002edd0 (list< LegoPathBoundary * > &p_boundaries, LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3, MxS32 p_und)
 [AI] Recursively checks boundaries for collisions or collision path propagation up to a certain recursion depth. More...
 
- Protected Member Functions inherited from LegoEntity
void Init ()
 [AI] Initializes the entity's members to default/neutral values (utility for constructors and resets). [AI] More...
 
void SetWorld ()
 [AI] Registers/attaches this entity to the current world if not already; called on create or location change. [AI] More...
 
- Protected Attributes inherited from IslePathActor
LegoWorldm_world
 [AI] Pointer to the current world instance actor is existing in. [AI] More...
 
LegoPathActorm_previousActor
 [AI] The last active path actor before this one; for restoration after exit. [AI] More...
 
MxFloat m_previousVel
 [AI] Stores previous navigation velocity for actor/handoffs. [AI] More...
 
- Protected Attributes inherited from LegoPathActor
MxFloat m_BADuration
 [AI] Duration of current Bezier arc (distance along path/current edge). [AI] More...
 
MxFloat m_unk0x7c
 [AI] Interpolator/progress state along curve segment. [AI] More...
 
MxFloat m_actorTime
 [AI] Animation time for current path segment. [AI] More...
 
MxFloat m_lastTime
 [AI] Time of last update (used for delta calculations). [AI] More...
 
LegoPathBoundarym_boundary
 [AI] Current boundary the actor is navigating on. [AI] More...
 
LegoUnknown m_unk0x8c
 [AI] Helper object for path curve interpolation and evaluation. [AI] More...
 
MxU32 m_actorState
 [AI] State and flags bitfield for path following logic. [AI] More...
 
LegoUnknown100db7f4m_destEdge
 [AI] Current or target edge for path traversal. [AI] More...
 
MxFloat m_unk0xe4
 [AI] Position scalar on destination edge (0-1 across the edge). [AI] More...
 
MxBool m_collideBox
 [AI] Use bounding-box for more accurate collision. [AI] More...
 
MxBool m_unk0xe9
 [AI] Stores latest intersection/collision status/type. [AI] More...
 
MxBool m_userNavFlag
 [AI] TRUE if this actor is currently user/player controlled. [AI] More...
 
MxMatrix m_unk0xec
 [AI] World-to-local transformation matrix for this actor/ROI. [AI] More...
 
LegoPathEdgeContainerm_grec
 [AI] Edge/boundary helper for tracking transitions and stateful animation. [AI] More...
 
LegoPathControllerm_pathController
 [AI] Path controller/manages permitted boundaries for transitions. [AI] More...
 
MxFloat m_maxLinearVel
 [AI] Maximum speed of actor while moving along path. [AI] More...
 
MxFloat m_unk0x140
 [AI] Scaling factor for fallback/collision response logic. [AI] More...
 
MxFloat m_unk0x144
 [AI] Damping factor for velocity after collision ("bounce" friction). [AI] More...
 
MxU8 m_unk0x148
 [AI] Angle/animation mode for rolling/camera tilting. [AI] More...
 
MxS32 m_unk0x14c
 [AI] Rolling angle delta (variant for camera logic). [AI] More...
 
MxFloat m_unk0x150
 [AI] Scalar factor for camera turn velocity logic. [AI] More...
 
- Protected Attributes inherited from LegoActor
MxFloat m_frequencyFactor
 [AI] The frequency/pitch scaling factor for the actor's sound (default 0 == normal). More...
 
LegoCacheSoundm_sound
 [AI] Pointer to a currently active sound instance played by the actor, if any. More...
 
MxFloat m_unk0x70
 [AI] Unknown float property, likely used for advanced audio/animation control. [AI_SUGGESTED_NAME: m_voicePitchModifier] More...
 
MxU8 m_actorId
 [AI] Unique identifier for this actor, corresponding to enum above. More...
 
- Protected Attributes inherited from LegoEntity
MxU8 m_unk0x10
 [AI] Unknown state/flag, used mainly to guard against repeated actions or manage animation/sound state. [AI] More...
 
MxU8 m_flags
 [AI] Primary entity flags (bitfield); tracks per-entity management status, internal update locks, etc. [AI] More...
 
Mx3DPointFloat m_worldLocation
 [AI] Entity location in world coordinates. [AI] More...
 
Mx3DPointFloat m_worldDirection
 [AI] Entity direction vector in world space (normalized). [AI] More...
 
Mx3DPointFloat m_worldUp
 [AI] Entity up vector in world space (normalized). [AI] More...
 
MxFloat m_worldSpeed
 [AI] World-relative speed (can affect animation/movement logic). [AI] More...
 
LegoROIm_roi
 [AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI] More...
 
MxBool m_cameraFlag
 [AI] Set to TRUE if this entity is currently the camera target. [AI] More...
 
MxU8 m_type
 [AI] The entity type (Type enum value). [AI] More...
 
Extra::ActionType m_actionType
 [AI] Action type, parsed from script/extra string (e.g., openram/run/exit); guides Notify() and click logic. [AI] More...
 
char * m_siFile
 [AI] When parsing ACTION command, this is the SI script/filename to execute (owned, heap-allocated). [AI] More...
 
MxS32 m_targetEntityId
 [AI] When parsing ACTION command, this is the target entity ID for the action (or -1 for none). [AI] More...
 
- Protected Attributes inherited from MxEntity
MxS32 m_entityId
 The unique entity ID, typically used for lookup and reference. More...
 
MxAtomId m_atomId
 The AtomId associated with this entity, used for resource and script identification. More...
 

Detailed Description

Main game logic and control entity for the Ambulance gameplay activity.

[AI]

[AI] Handles player and world interaction during the Ambulance rescue mini-game mission. Manages actor animations, mission state, controls, UI transitions, scoring, audio, and the player's progress. Inherits from IslePathActor to utilize navigation and path-following support. [AI]

Definition at line 75 of file ambulance.h.

Constructor & Destructor Documentation

◆ Ambulance()

Ambulance::Ambulance ( )

[AI] Creates and initializes the ambulance actor; sets default velocities and initial mission state. [AI]

Definition at line 34 of file ambulance.cpp.

◆ ~Ambulance()

Ambulance::~Ambulance ( )
override

[AI] Destructor—unregisters the Ambulance from control and tickle managers and performs cleanup. [AI]

Definition at line 51 of file ambulance.cpp.

Member Function Documentation

◆ ActivateSceneActions()

void Ambulance::ActivateSceneActions ( )

[AI] Handles the enabling of in-game ambient/scene actions when player enters the hospital scene. [AI]

Definition at line 466 of file ambulance.cpp.

◆ Animate()

void Ambulance::Animate ( float  p_time)
overridevirtual

[AI] Per-frame update for position, fuel, and any animation logic.

[AI]

Parameters
p_timeThe animation frame timestamp or delta time. [AI]

Reimplemented from LegoPathActor.

Definition at line 85 of file ambulance.cpp.

◆ ClassName()

const char * Ambulance::ClassName ( ) const
overridevirtual

[AI] Returns the class name "Ambulance" for RTTI. [AI]

Reimplemented from MxCore.

◆ Create()

MxResult Ambulance::Create ( MxDSAction p_dsAction)
overridevirtual

[AI] Creates this Ambulance object based on the provided DS action (from scripts/etc).

[AI]

Parameters
p_dsActionThe action that spawns/configures the Ambulance. [AI]

Reimplemented from LegoEntity.

Definition at line 59 of file ambulance.cpp.

◆ CreateState()

void Ambulance::CreateState ( )

[AI] Ensures AmbulanceMissionState is present in the game state manager; creates if missing. [AI]

Definition at line 111 of file ambulance.cpp.

◆ Destroy()

void Ambulance::Destroy ( MxBool  p_fromDestructor)
inlineoverridevirtual

[AI] Does nothing for Ambulance; stub for virtual destroy.

[AI]

Parameters
p_fromDestructorIs this called from destructor? [AI]

Reimplemented from LegoEntity.

Definition at line 93 of file ambulance.h.

◆ Exit()

void Ambulance::Exit ( )
overridevirtual

[AI] Exits the mission; triggers cleanup, world removal, and area/state updates. [AI]

Reimplemented from IslePathActor.

Definition at line 410 of file ambulance.cpp.

◆ FUN_10036e60()

void Ambulance::FUN_10036e60 ( )

[AI] Marks mission as failed/successful, triggers cutscene/animation for mission outcome. [AI_SUGGESTED_NAME: SetMissionOutcomeAnimation]

Definition at line 401 of file ambulance.cpp.

◆ FUN_10037250()

void Ambulance::FUN_10037250 ( )

[AI] Resets game- and mission-related state after the mission; restores music, resets state objects, etc. [AI_SUGGESTED_NAME: ResetAfterMission]

Definition at line 574 of file ambulance.cpp.

◆ HandleButtonDown()

MxLong Ambulance::HandleButtonDown ( LegoControlManagerNotificationParam p_param)
virtual

[AI] Handles button down events in the mission interface (e.g., gate click).

[AI]

Parameters
p_paramButton down event details. [AI]
Returns
1 if a handled special interaction occurred, else 0. [AI]

Definition at line 242 of file ambulance.cpp.

◆ HandleClick()

MxLong Ambulance::HandleClick ( )
overridevirtual

[AI] Handles a "click" on this Ambulance actor (starts mission, triggers transitions, etc.).

[AI]

Returns
Implementation-defined response; typically 1 = handled. [AI]

Reimplemented from IslePathActor.

Definition at line 365 of file ambulance.cpp.

◆ HandleControl()

MxLong Ambulance::HandleControl ( LegoControlManagerNotificationParam p_param)
overridevirtual

[AI] Responds to control (UI/keyboard/joystick) input events.

[AI]

Parameters
p_paramThe detail of control manager input. [AI]
Returns
Implementation-defined status. [AI]

Reimplemented from IslePathActor.

Definition at line 436 of file ambulance.cpp.

◆ HandleEndAction()

MxLong Ambulance::HandleEndAction ( MxEndActionNotificationParam p_param)
virtual

[AI] Handles end action notifications (e.g., animation completion), progresses mission or triggers feedback.

[AI]

Parameters
p_paramNotification about an action's end. [AI]
Returns
Always 1 for handled. [AI]

Definition at line 156 of file ambulance.cpp.

◆ HandlePathStruct()

MxLong Ambulance::HandlePathStruct ( LegoPathStructNotificationParam p_param)
overridevirtual

[AI] Handles notifications related to path structure triggers such as mission segments or locations.

[AI]

Parameters
p_paramNotification carrying trigger details, e.g. for start, gas, finish locations. [AI]
Returns
0 if not handled, or as otherwise dictated by game logic. [AI]

Reimplemented from IslePathActor.

Definition at line 265 of file ambulance.cpp.

◆ IsA()

MxBool Ambulance::IsA ( const char *  p_name) const
overridevirtual

[AI] Checks whether this object is of type "Ambulance" or inherits from a type with the given name.

[AI]

Parameters
p_nameType name. [AI]
Returns
True if matches type or ancestor. [AI]

Reimplemented from MxCore.

◆ Notify()

MxLong Ambulance::Notify ( MxParam p_param)
overridevirtual

[AI] Handles notifications from the system (events, actions, button presses, etc.).

[AI]

Parameters
p_paramThe notification parameter describing the event. [AI]
Returns
Implementation-defined int status (often 1 for consumed events). [AI]

Reimplemented from MxCore.

Definition at line 125 of file ambulance.cpp.

◆ StopActions()

void Ambulance::StopActions ( )

[AI] Stops currently running scripted actions/animations associated with the Ambulance mission. [AI]

Definition at line 568 of file ambulance.cpp.

◆ Tickle()

MxResult Ambulance::Tickle ( )
overridevirtual

[AI] Called on each game "tick" to update state, handle random sounds, etc.

[AI]

Returns
SUCCESS on successful tick. [AI]

Reimplemented from MxCore.

Definition at line 514 of file ambulance.cpp.


The documentation for this class was generated from the following files: