24void LegoPhonemePresenter::Init()
38 if (m_textureInfo ==
NULL) {
44 if (extraData !=
NULL) {
45 m_roiName = extraData;
66 if (!cursor.
Find(phoneme)) {
73 phonemeList->
Append(phoneme);
74 m_textureInfo = textureInfo;
96 m_rectCount = *(
MxS32*) data;
97 data +=
sizeof(
MxS32);
100 data += m_rectCount *
sizeof(
MxRect32);
116 if (m_textureInfo !=
NULL && m_rectCount != 0) {
134 if (cursor.
Find(phoneme)) {
void ReleaseActor(const char *p_name)
[AI] Releases a character/ROI by name, decrementing its reference count and deleting if zero.
LegoROI * GetActorROI(const char *p_name, MxBool p_createEntity)
[AI] Returns a LegoROI for the given character name, creating and registering the actor if necessary.
MxBool FUN_100849a0(LegoROI *p_roi, LegoTextureInfo *p_texture)
[AI] Replaces the head LOD of a character ROI with a new LOD list built using the provided texture.
Cursor class for iterating over LegoPhonemeList.
Specialized list class for managing LegoPhoneme objects.
Class responsible for presenting lip-synced ("phoneme") mouth animations on LEGO character head textu...
void EndAction() override
Called when the associated action concludes.
void PutFrame() override
Applies the loaded frame data to the cached texture, updating the target ROI's mouth/phoneme region.
~LegoPhonemePresenter() override
Destructor.
void StartingTickle() override
Called on media/actor action start.
void LoadFrame(MxStreamChunk *p_chunk) override
Loads FLC frame data describing mouth region updates and decodes frame information for use in texture...
[AI] Represents a single phoneme (mouth shape) used for character lip-sync and speech animation.
virtual void VTable0x14(LegoTextureInfo *p_unk0x1c)
[AI] Sets the alternate texture info for this phoneme.
virtual LegoTextureInfo * VTable0x08()
[AI] Retrieves the primary texture info associated with this phoneme.
virtual void VTable0x0c(LegoTextureInfo *p_unk0x18)
[AI] Sets the primary texture info for this phoneme.
virtual undefined4 VTable0x00()
[AI] Retrieves the value of the unknown property at offset 0x14.
virtual LegoTextureInfo * VTable0x10()
[AI] Retrieves an alternate texture info for this phoneme.
virtual void VTable0x04(undefined4 p_unk0x14)
[AI] Sets the value of the unknown property at offset 0x14.
[AI] Represents a Real-time Object Instance enriched with LEGO-specific functionality.
LegoResult GetTextureInfo(LegoTextureInfo *&p_textureInfo)
[AI] Attempts to retrieve a texture info pointer used by any LOD in this ROI or its children.
LegoROI * FindChildROI(const LegoChar *p_name, LegoROI *p_roi)
[AI] Recursively searches for a child ROI by name, starting at the given ROI.
void EraseCached(LegoTextureInfo *p_textureInfo)
Mark a cached texture as unused and release its Direct3D/DirectDraw resources if its reference count ...
LegoTextureInfo * GetCached(LegoTextureInfo *p_textureInfo)
Attempt to find and return a cached LegoTextureInfo with the same properties as p_textureInfo,...
[AI] Contains DirectDraw and Direct3DRM handles and metadata for a texture used in the LEGO Island re...
LegoResult FUN_10066010(const LegoU8 *p_bits)
[AI] Updates the pixel bits for the current surface/texture with the provided bitmap data.
virtual LegoPhonemeList * GetPhonemeList()
[AI] Returns the currently installed phoneme list for in-game speech synchronization.
MxBITMAPINFO * GetBitmapInfo() const
[AI] Retrieves the pointer to the underlying MxBITMAPINFO struct (header and palette).
MxU8 * GetImage() const
[AI] Retrieves the pointer to the image pixel data.
MxBool IsA(const char *p_name) const override
[AI] Runtime type checking for presenter class hierarchy, supporting parent/child class checks.
void GetExtra(MxU16 &p_extraLength, char *&p_extraData)
[AI] Retrieves the extra data and its length for this action.
MxU8 * GetData()
[AI] Returns a pointer to the start of the data payload. [AI]
FLIC_HEADER * m_flcHeader
[AI] Internal cached FLIC header for video decoding and playback.
MxBool Current(T &p_obj)
[AI]
void SetValue(T p_obj)
[AI]
MxDSAction * m_action
[AI] The associated action currently being presented by this presenter.
virtual void StartingTickle()
[AI] Handles actions required when first starting presentation. Advances to streaming state.
MxCompositePresenter * m_compositePresenter
[AI] Owner composite presenter, if any.
[AI] Rectangle using 32-bit signed integer coordinates.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
char * GetData() const
Returns a pointer to the internal character buffer.
void ToUpperCase()
Converts the string contents to uppercase in-place.
MxBitmap * m_frameBitmap
Bitmap for current video frame. [AI].
#define DECOMP_SIZE_ASSERT(T, S)
void DecodeFLCFrame(LPBITMAPINFOHEADER p_bitmapHeader, BYTE *p_pixelData, FLIC_HEADER *p_flcHeader, FLIC_FRAME *p_flcFrame, BYTE *p_decodedColorMap)
[AI] Decodes a single FLIC (FLI/FLC) animation frame and updates the pixel data and palette.
#define NULL
[AI] Null pointer value (C/C++ semantics).
LegoVideoManager * VideoManager()
[AI] Accessor for the game's LegoVideoManager subsystem. Used for managing 3D/video hardware....
LegoCharacterManager * CharacterManager()
[AI] Accessor for the character manager, which manages in-game characters/NPCs. [AI]
LegoTextureContainer * TextureContainer()
[AI] Accessor for the texture container used for global texture management. [AI]
LegoROI * FindROI(const char *p_name)
[AI] Looks up a LegoROI (Real-time Object Instance) by name in the current world or global registry.
[AI] Structure describing the header of a FLIC animation frame, used to organize frame subchunks and ...
BITMAPINFOHEADER m_bmiHeader
[AI] Standard DIB bitmap header (size 0x28 bytes).