46 void Animate(
float p_time)
override;
75 m_ammoFlag &= ~c_valid;
99 m_ammoFlag &= ~c_bit4;
118 m_ammoFlag &= ~c_sharkFood;
Represents an ammo object (pizza or donut) used in Act 3 gameplay sequence.
void SetBit4(MxBool p_bit4)
Set or clear the bit4 flag, used internally for special state/behavior (e.g.
MxU32 IsPizza()
Returns true if the ammo is a pizza projectile.
MxFloat GetUnknown0x158()
Returns a time/duration parameter used in animation transitions.
MxU32 IsBit4()
Returns true if the internal bit4 flag is set (special usage, e.g.
void SetUnknown0x158(MxFloat p_unk0x158)
Sets a time/duration parameter used for state transitions after collision.
void SetSharkFood(MxBool p_sharkFood)
Sets the "shark food" flag if this ammo should become food for a shark.
@ c_donut
[AI] The ammo is a donut projectile. [AI]
@ c_bit4
[AI] Internal usage (e.g. special event or collision, see SetBit4). [AI]
@ c_sharkFood
[AI] Marks this ammo as "shark food" (special event/consumed). [AI]
@ c_pizza
[AI] The ammo is a pizza projectile. [AI]
@ c_valid
[AI] The ammo is in a valid/active state and available for interaction. [AI]
void Animate(float p_time) override
Updates position, animation, and handles collision or end-of-trajectory logic for this ammo.
MxResult Create(Act3 *p_world, MxU32 p_isPizza, MxS32 p_index)
Creates an ammo (pizza or donut), initializes its ROI, bounding volumes, and enables it in the world.
Mx3DPointFloat * GetUnknown0x160()
Returns the pointer to the second control point of the quadratic trajectory equation.
MxU32 IsDonut()
Returns true if the ammo is a donut projectile.
MxResult FUN_10053cb0(LegoPathController *p_p, LegoPathBoundary *p_boundary, MxFloat p_unk0x19c)
Initializes the path controller/boundary and sets up animation and sound when ammo is fired.
MxU32 IsSharkFood()
Returns true if the ammo became "shark food".
void Destroy(MxBool p_fromDestructor) override
Completely removes this ammo object from all managers.
MxResult FUN_10053b40(const Vector3 &p_srcLoc, const Vector3 &p_srcDir, const Vector3 &p_srcUp)
Sets up trajectory control points for the projectile, calculating a quadratic curve based on origin/d...
MxU32 IsValid()
Returns true if the ammo is valid (active in game/world).
MxFloat * GetUnknown0x19c()
Returns pointer to an internal parameter used in trajectory and animation calculations.
Act3Ammo()
Constructs a new Act3Ammo object.
~Act3Ammo() override
Destructor.
MxResult Remove()
Removes this ammo instance from the world, cleans up path controller/boundary and notifies managers.
void SetValid(MxBool p_valid)
Set or clear the valid flag for the object, making it active or inactive in the world.
MxResult FUN_10053d30(LegoPathController *p_p, MxFloat p_unk0x19c)
Variant of firing logic (uses only controller and param, also sets bit4).
[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects,...
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
[AI] Manager for controlling actors' movement along predefined geometric paths.
4x4 Matrix class with virtual interface for manipulation and transformation.
[AI] Represents a 3D point with floating-point precision, inheriting from Vector3.
[AI] 3D vector class, providing vector and cross-product operations in 3D space.