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

[AI] Represents the Brickster actor in Act 3, with AI and scene logic for stealing pizzas and causing endgame actions. More...

#include <act3actors.h>

Inheritance diagram for Act3Brickster:
Collaboration diagram for Act3Brickster:

Public Member Functions

 Act3Brickster ()
 [AI] Constructs a Brickster character, setting default animation and navigation state. More...
 
 ~Act3Brickster () override
 [AI] Frees Brickster resources, implemented for correct inheritance. More...
 
void ParseAction (char *p_extra) override
 [AI] Parses Brickster-specific commands from action strings; sets its world reference and triggers the correct animation set. More...
 
void Animate (float p_time) override
 [AI] Main logic for Brickster's per-frame AI behavior: handles pizza seeking, plant/building attacks, state transitions, and special cutscene triggers. More...
 
MxResult HitActor (LegoPathActor *p_actor, MxBool p_bool) override
 [AI] Handles Brickster being hit by an actor (e.g., cop, pizza ammo), processes pizza counters and determines state transitions. More...
 
void SwitchBoundary (LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4) override
 [AI] Switches navigation/path boundary for Brickster and updates edge and offset (stateful for when escaping or maneuvering cops). More...
 
MxResult VTable0x9c () override
 [AI] Handles AI updates post pathfinding/state transition recalculation. More...
 
MxFloat GetUnknown0x20 ()
 [AI] Gets a custom timer or marker for the Brickster state machine. More...
 
MxFloat GetUnknown0x24 ()
 [AI] Gets another stateful marker (delays, cooldown, or pizza effect timer). More...
 
MxFloat GetUnknown0x50 ()
 [AI] Gets the duration/target for building/plant attack animation. More...
 
void SetUnknown0x20 (MxFloat p_unk0x20)
 [AI] Sets custom Brickster timers/markers (see getters). More...
 
void SetUnknown0x24 (MxFloat p_unk0x24)
 
void SetUnknown0x50 (MxFloat p_unk0x50)
 
MxResult FUN_100417a0 (Act3Ammo &p_ammo, const Vector3 &)
 [AI] Triggers the Brickster to react to a thrown pizza. More...
 
MxResult FUN_100417c0 ()
 [AI] Recalculates Brickster's navigation to a new plant/building/target as dictated by AI logic. More...
 
- Public Member Functions inherited from Act3Actor
 Act3Actor ()
 [AI] Constructs a new Act3Actor, initializing state. More...
 
MxU32 VTable0x90 (float p_time, Matrix4 &p_transform) override
 [AI] Handles transformation updates for the actor. More...
 
MxResult HitActor (LegoPathActor *p_actor, MxBool p_bool) override
 [AI] Called when this actor is hit/collided by another actor, such as a projectile or another character. More...
 
const char * ClassName () const override
 [AI] Returns the class name string for debugging/instancing. More...
 
MxFloat GetUnknown0x1c ()
 [AI] Gets the custom time marker or value for animation/transformation logic. More...
 
void SetUnknown0x1c (MxFloat p_unk0x1c)
 [AI] Sets the custom time marker or value. More...
 
- Public Member Functions inherited from LegoAnimActor
 LegoAnimActor ()
 [AI] Initializes LegoAnimActor and sets the current animation index to -1. More...
 
 ~LegoAnimActor () override
 [AI] Destructor cleans up all animation map structures. More...
 
void ParseAction (char *p_extra) override
 [AI] Handles extra action strings, looks for animation assignments and delegates to presenters (overrides parent). More...
 
void SetWorldSpeed (MxFloat p_worldSpeed) override
 [AI] Sets the current world speed and chooses which animation (from the animation map list) should be used; see source for selection logic. More...
 
void Animate (float p_time) override
 [AI] Performs per-frame update; applies the appropriate animation to mesh ROIs based on speed and state. More...
 
void VTable0x74 (Matrix4 &p_transform) override
 [AI] Applies the current animation's transforms to the provided matrix, propagates to mesh hierarchies. More...
 
virtual MxResult FUN_1001c1f0 (float &p_und)
 [AI] Computes the animation phase offset within the current animation, adjusts for looping. More...
 
virtual MxResult FUN_1001c360 (float p_und, Matrix4 &p_transform)
 [AI] Applies the animation transform for the current animation at the given phase, writes to matrix. More...
 
virtual MxResult FUN_1001c450 (LegoAnim *p_AnimTreePtr, float p_unk0x00, LegoROI **p_roiMap, MxU32 p_numROIs)
 [AI] Adds a new animation mapping (LegoAnimActorStruct) with a tree, threshold, and mesh mapping. More...
 
virtual void ClearMaps ()
 [AI] Deallocates all animation map structures and selects no animation; resets current animation index. More...
 
const char * ClassName () const override
 [AI] Returns the class name string for RTTI and type checking. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Checks for runtime type equality ("IsA" support); matches for this class or parent. 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 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 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 LegoAnimActor
vector< LegoAnimActorStruct * > m_animMaps
 [AI] List of animation structures, each representing a valid animation for different speed/phase ranges. [AI] More...
 
MxS16 m_curAnim
 [AI] Index of currently selected animation map (-1 if none active). [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

[AI] Represents the Brickster actor in Act 3, with AI and scene logic for stealing pizzas and causing endgame actions.

Handles AI for seeking pizzas/buildings, managing states and animations for "bad" outcomes, and shot/planted/scene logic.

Definition at line 245 of file act3actors.h.

Constructor & Destructor Documentation

◆ Act3Brickster()

Act3Brickster::Act3Brickster ( )

[AI] Constructs a Brickster character, setting default animation and navigation state.

Definition at line 526 of file act3actors.cpp.

◆ ~Act3Brickster()

Act3Brickster::~Act3Brickster ( )
override

[AI] Frees Brickster resources, implemented for correct inheritance.

Definition at line 545 of file act3actors.cpp.

Member Function Documentation

◆ Animate()

void Act3Brickster::Animate ( float  p_time)
overridevirtual

[AI] Main logic for Brickster's per-frame AI behavior: handles pizza seeking, plant/building attacks, state transitions, and special cutscene triggers.

Parameters
p_timeCurrent simulation time [AI]

Reimplemented from LegoPathActor.

Definition at line 571 of file act3actors.cpp.

◆ FUN_100417a0()

MxResult Act3Brickster::FUN_100417a0 ( Act3Ammo p_ammo,
const Vector3  
)

[AI] Triggers the Brickster to react to a thrown pizza.

Used for AI transitions when a pizza is received.

Parameters
p_ammoThe pizza thrown/interacted with [AI]
Vector3&Position reference for additional logic [AI]
Returns
Result of handling [AI]

Definition at line 777 of file act3actors.cpp.

◆ FUN_100417c0()

MxResult Act3Brickster::FUN_100417c0 ( )

[AI] Recalculates Brickster's navigation to a new plant/building/target as dictated by AI logic.

Returns
Result of the attempted recalculation [AI]

Definition at line 788 of file act3actors.cpp.

◆ GetUnknown0x20()

MxFloat Act3Brickster::GetUnknown0x20 ( )
inline

[AI] Gets a custom timer or marker for the Brickster state machine.

Returns
m_unk0x20 [AI]

Definition at line 299 of file act3actors.h.

◆ GetUnknown0x24()

MxFloat Act3Brickster::GetUnknown0x24 ( )
inline

[AI] Gets another stateful marker (delays, cooldown, or pizza effect timer).

Returns
m_unk0x24 [AI]

Definition at line 304 of file act3actors.h.

◆ GetUnknown0x50()

MxFloat Act3Brickster::GetUnknown0x50 ( )
inline

[AI] Gets the duration/target for building/plant attack animation.

Returns
m_unk0x50 [AI]

Definition at line 309 of file act3actors.h.

◆ HitActor()

MxResult Act3Brickster::HitActor ( LegoPathActor p_actor,
MxBool  p_bool 
)
overridevirtual

[AI] Handles Brickster being hit by an actor (e.g., cop, pizza ammo), processes pizza counters and determines state transitions.

Parameters
p_actorActor that hit the Brickster [AI]
p_boolShould this hit be applied? [AI]
Returns
SUCCESS or FAILURE depending on game logic [AI]

Reimplemented from Act3Actor.

Definition at line 741 of file act3actors.cpp.

◆ ParseAction()

void Act3Brickster::ParseAction ( char *  p_extra)
overridevirtual

[AI] Parses Brickster-specific commands from action strings; sets its world reference and triggers the correct animation set.

Parameters
p_extraString containing action info [AI]

Reimplemented from LegoEntity.

Definition at line 552 of file act3actors.cpp.

◆ SetUnknown0x20()

void Act3Brickster::SetUnknown0x20 ( MxFloat  p_unk0x20)
inline

[AI] Sets custom Brickster timers/markers (see getters).

Parameters
p_unk0x20Value for m_unk0x20 [AI]

Definition at line 315 of file act3actors.h.

◆ SetUnknown0x24()

void Act3Brickster::SetUnknown0x24 ( MxFloat  p_unk0x24)
inline

Definition at line 316 of file act3actors.h.

◆ SetUnknown0x50()

void Act3Brickster::SetUnknown0x50 ( MxFloat  p_unk0x50)
inline

Definition at line 317 of file act3actors.h.

◆ SwitchBoundary()

void Act3Brickster::SwitchBoundary ( LegoPathBoundary *&  p_boundary,
LegoUnknown100db7f4 *&  p_edge,
float &  p_unk0xe4 
)
overridevirtual

[AI] Switches navigation/path boundary for Brickster and updates edge and offset (stateful for when escaping or maneuvering cops).

Parameters
p_boundaryReference for updated path boundary [AI]
p_edgeReference for updated edge [AI]
p_unk0xe4Reference for updated progress along the edge [-] [AI]

Reimplemented from LegoPathActor.

Definition at line 1112 of file act3actors.cpp.

◆ VTable0x9c()

MxResult Act3Brickster::VTable0x9c ( )
overridevirtual

[AI] Handles AI updates post pathfinding/state transition recalculation.

Returns
Result of recalculation (SUCCESS, else parent call) [AI]

Reimplemented from LegoPathActor.

Definition at line 1121 of file act3actors.cpp.


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