1#ifndef LEGOPLANTMANAGER_H
2#define LEGOPLANTMANAGER_H
74 return "LegoPlantManager";
257 void FUN_10026860(
MxS32 p_index);
282 static char* g_customizeAnimFile;
283 static MxS32 g_maxMove[4];
284 static MxU32 g_maxSound;
288 AnimEntry* m_entries[5];
[AI] Represents an entity that can be placed and managed in the LEGO Island world.
World
[AI] Identifiers for all unique, script-driven world environments in LEGO Island.
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
[AI] Manages the lifecycle, state, and properties for all plant objects (flowers, trees,...
void ScheduleAnimation(LegoEntity *p_entity, MxLong p_length)
[AI] Schedules an animation for the given plant, adding an entry to the internal tickle array.
~LegoPlantManager() override
[AI] Destructor.
MxBool SwitchSound(LegoEntity *p_entity)
[AI] Cycles the sound effect variant for a plant.
LegoEntity * CreatePlant(MxS32 p_index, LegoWorld *p_world, LegoOmni::World p_worldId)
[AI] Instantiates an entity and ROI for the plant at given index in world (if appropriate).
MxResult Read(LegoStorage *p_storage)
[AI] Rehydrates plant state from storage, restoring color/variant/mood/move properties.
static const char * GetCustomizeAnimFile()
[AI] Gets the current file name/path for plant customization animation file.
void FUN_10027120()
[AI] Resets all growth/activity/animation state for all plants in the manager.
MxResult Write(LegoStorage *p_storage)
[AI] Serializes persistent plant state (color, variant, mood, animation, etc) to storage for save gam...
MxBool SwitchColor(LegoEntity *p_entity)
[AI] Cycles the color attribute for the plant and updates its LOD/appearance.
MxResult FUN_10026410()
[AI] Repairs/updates all plant boundary references and vertical position to match world boundaries/pl...
MxResult Tickle() override
[AI] Tickle handler for processing scheduled plant animation entries.
MxBool SwitchVariant(LegoEntity *p_entity)
[AI] Cycles the variant/type for a plant (flower, tree, bush, palm) and updates appearance.
MxU32 GetSoundId(LegoEntity *p_entity, MxBool p_state)
[AI] Returns the sound ID for a plant, used for localized SFX depending on mood/state.
void LoadWorldInfo(LegoOmni::World p_worldId)
[AI] Loads all plant objects/entities for the requested world, instantiates requisite ROIs and entiti...
MxBool FUN_10026c50(LegoEntity *p_entity)
[AI] Triggers a growth decrement or similar on a plant entity, and updates accordingly if possible.
LegoPlantManager()
[AI] Constructs the plant manager and initializes its bookkeeping to match the plant info array.
LegoPlantInfo * GetInfoArray(MxS32 &p_length)
[AI] Returns pointer to plant info array and populates its size.
void Init()
[AI] Zeroes out state, resets world ID, and copies default plant info to runtime plant info array.
MxBool SwitchMood(LegoEntity *p_entity)
[AI] Cycles the plant's "mood" state property (e.g., for appearance/hidden states) [AI]
void FUN_10027200()
[AI] Propagates all plants' current growth/activity state to their restore points.
MxS32 GetNumPlants()
[AI] Returns the total number of plant records referenced by this manager.
const char * ClassName() const override
[AI] Returns the class name "LegoPlantManager".
void Reset(LegoOmni::World p_worldId)
[AI] Completely resets (removes) all plant objects for the supplied world.
MxU32 GetAnimationId(LegoEntity *p_entity)
[AI] Returns the current animation ID for the given plant, based on its variant and move type.
static void SetCustomizeAnimFile(const char *p_value)
[AI] Sets the global file path or name to use for plant customization animations.
MxBool SwitchMove(LegoEntity *p_entity)
[AI] Cycles the movement/animation type for a plant.
[AI] Represents a Real-time Object Instance enriched with LEGO-specific functionality.
Abstract base class providing an interface for file-like storage with binary and text read/write oper...
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
[AI] Base virtual class for all Mindscape engine (Mx) objects.
[AI] Struct representing a single plant's static configuration on LEGO Island, including placement,...
[AI] Structure for scheduling plant ROI/entity animations (i.e.
MxLong m_time
[AI] When the animation should end (absolute time) [AI]
LegoROI * m_roi
[AI] ROI of the animated plant entity [AI]
LegoEntity * m_entity
[AI] Pointer to the plant entity being animated [AI]