29 if (!p_fromDestructor) {
79 MxRect32 rect(x, y, width + x, height + y);
130 m_chunkTime = chunk->
GetTime();
162 rectA += oldLocation;
187 MxRect32 rect(x, y, width + x, height + y);
208 memcpy(extraCopy, extraData, extraLength);
209 extraCopy[extraLength] =
'\0';
213 if (strcmpi(output,
"FALSE") == 0) {
[AI] Represents an 8bpp or high color device-independent bitmap (DIB) and provides operations for bit...
virtual MxPalette * CreatePalette()
[AI] Allocates or clones the current palette for the bitmap.
virtual MxResult ImportBitmap(MxBitmap *p_bitmap)
[AI] Imports the contents of another bitmap into this bitmap, allocating new storage and copying meta...
virtual MxResult ImportBitmapInfo(MxBITMAPINFO *p_info)
[AI] Imports bitmap header/palette info (but not pixel data) from the given info block.
MxU8 * GetImage() const
[AI] Retrieves the pointer to the image pixel data.
virtual void VTable0x60(MxPresenter *p_presenter)
[AI] Advance sequencing for serial multi-actions: promotes the next presenter in sequence to e_ready ...
void Enter()
[AI] Acquires/gains entry to the critical section or mutex, blocking if not available.
void Leave()
[AI] Releases/leaves the critical section or mutex.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
MxU32 GetFlags()
[AI] Returns the flag field for this action (bitmask).
MxLong GetStartTime() const
[AI] Gets the nominal start time for the action, as loaded or scheduled.
void GetExtra(MxU16 &p_extraLength, char *&p_extraData)
[AI] Retrieves the extra data and its length for this action.
virtual MxLong GetDuration()
[AI] Gets the duration for which this action is intended to run.
virtual MxLong GetElapsedTime()
[AI] Gets elapsed time for this action since the last time field 0x90 was set.
virtual MxDSAction * Clone()
[AI] Clones (deep-copies) this action and returns a new pointer.
@ c_bit5
[AI] Unknown - possibly reserved [AI]
@ c_bit4
[AI] Unknown - possibly reserved [AI]
MxU32 GetLength()
[AI] Returns the length in bytes of the data payload. [AI]
MxLong GetTime()
[AI] Returns the time (timestamp or tick) associated with this chunk. [AI]
MxU8 * GetData()
[AI] Returns a pointer to the start of the data payload. [AI]
void FreeDataChunk(MxStreamChunk *p_chunk)
[AI] Frees (deletes) a data chunk if it's found in the consumed data list; also forcibly deletes sing...
static LPDIRECTDRAWSURFACE CopySurface(LPDIRECTDRAWSURFACE p_src)
[AI] Creates a deep copy of the provided surface (new DirectDraw surface with same content).
virtual LPDIRECTDRAWSURFACE VTable0x44(MxBitmap *p_bitmap, undefined4 *p_ret, undefined4 p_doNotWriteToSurface, undefined4 p_transparent)
[AI] Allocates a DirectDraw surface for a bitmap to allow hardware blitting/transparency.
MxVideoManager * GetVideoManager() const
[AI] Returns the video media manager (for handling FLC/SMK/etc.), if present.
static MxOmni * GetInstance()
[AI] Returns the singleton instance of the MxOmni subsystem coordinator.
[AI] Encapsulates a DirectDraw 8-bit (256 color) palette for use with DirectX rendering.
[AI] 2D point with 32-bit signed integer coordinates.
void SetY(T p_y)
[AI] Set Y coordinate.
T GetY() const
[AI] Get Y coordinate.
void SetX(T p_x)
[AI] Set X coordinate.
T GetX() const
[AI] Get X coordinate.
virtual void ParseExtra()
[AI] Parses additional data from the associated action for configuration or world interaction.
void ProgressTickleState(TickleState p_tickleState)
[AI] Helper for advancing the presenter's tickle state and updating transition history.
virtual void Enable(MxBool p_enable)
[AI] Enables or disables this presenter (controls action flags accordingly).
MxBool IsEnabled()
[AI] Returns whether this presenter is logically enabled (based on the associated action's flags).
MxDSAction * m_action
[AI] The associated action currently being presented by this presenter.
TickleState m_currentTickleState
[AI] Current state in the tickle lifecycle.
@ e_repeating
[AI] Presentation is repeating (e.g., looping media).
@ e_freezing
[AI] Temporarily suspending updates or playback.
@ e_streaming
[AI] Streaming or rendering actively.
MxCriticalSection m_criticalSection
[AI] Thread synchronization for presenter state and data.
MxCompositePresenter * m_compositePresenter
[AI] Owner composite presenter, if any.
MxPoint32 m_location
[AI] 2D display location for the presenter.
MxDSAction * GetAction() const
[AI] Returns the current action being presented.
[AI] Rectangle using 32-bit signed integer coordinates.
T GetTop() const
[AI] Get the top edge.
T GetWidth() const
[AI] Get the rectangle's width.
T GetHeight() const
[AI] Get the rectangle's height.
T GetLeft() const
[AI] Get the left edge.
[AI] Presenter for single still image/bitmap media sources in the game.
void CreateBitmap() override
[AI] Allocates and constructs the bitmap from internal bitmap info, importing palette and image layou...
void ParseExtra() override
[AI] Parses extra action data for bitmap configuration, such as visibility or image mapping,...
void LoadFrame(MxStreamChunk *p_chunk) override
[AI] Copies frame image data from chunk to presenter's bitmap and prepares for rendering,...
void LoadHeader(MxStreamChunk *p_chunk) override
[AI] Loads header chunk data into the presenter's bitmap info buffer (BITMAPINFO structure).
void StartingTickle() override
[AI] Handles transition to the starting state of the presenter, processing palette realization if nee...
void RepeatingTickle() override
[AI] Repetition tickle logic—handles repeated action/time-based state changes.
virtual MxStillPresenter * Clone()
[AI] Clones the presenter, attempting to fully duplicate internal state and associated memory resourc...
MxStillPresenter()
[AI] Constructs an MxStillPresenter.
void Destroy() override
[AI] Destroys the presenter's resources, optionally called by the destructor for complete cleanup.
void RealizePalette() override
[AI] Realizes/updates the palette in the current video environment using the frame bitmap and notifie...
virtual void SetPosition(MxS32 p_x, MxS32 p_y)
[AI] Sets the pixel-based position of the presented image.
void StreamingTickle() override
[AI] Main frame advancing logic, loads the next frame if the elapsed time is appropriate.
void Enable(MxBool p_enable) override
[AI] Sets the enabled/disabled state of the presenter, updating the video manager's rendering as need...
void NextFrame() override
[AI] Loads the next single image frame from the stream and updates the presenter's display state.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
virtual MxResult RealizePalette(MxPalette *p_palette)
[AI] Applies (realizes) the palette to both MxVideoParam and hardware palette, and updates the displa...
virtual void UpdateView(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height)
[AI] Updates the visible video sub-rectangle inside the overall frame; typically for sub-region blits...
void InvalidateRect(MxRect32 &p_rect)
[AI] Invalidates a rectangular region in the display; marks it for redraw on next tick.
MxDisplaySurface * GetDisplaySurface()
[AI] Returns the display surface used for video output; for direct drawing and palette operations.
Opaque mask used for efficient hit testing against video transparency.
BYTE GetBit0()
Gets internal miscellaneous state flags (bits 0-4).
void StartingTickle() override
Advance logic for the "starting" tickle state (frame setup).
MxBitmap * m_frameBitmap
Bitmap for current video frame. [AI].
virtual MxS32 GetHeight()
Returns the height of the current bitmap or alpha mask in pixels.
virtual MxS32 GetWidth()
Returns the width of the current bitmap or alpha mask in pixels.
void SetBit0(BOOL p_e)
Sets internal miscellaneous state flags.
LPDIRECTDRAWSURFACE m_unk0x58
DirectDraw surface for hardware video rendering. [AI].
AlphaMask * m_alpha
Alpha mask for hit testing. May be null. [AI].
MxResult AddToManager() override
Adds this presenter to the global video manager.
void Destroy() override
Destroys internal resources for the presenter.
#define DECOMP_SIZE_ASSERT(T, S)
const char * g_strBMP_ISMAP
[AI] Denotes a BMP resource that acts as a map; used for interpreting image assets as collision/level...
const char * g_strVISIBILITY
[AI] Used when specifying visibility toggles or changes for objects/entities in scripting.
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
MxVideoManager * MVideoManager()
[AI] Returns the video manager used for video/cutscene presenter management.
MxBool KeyValueStringParse(char *, const char *, const char *)
Searches p_string for a key command and copies its associated value to p_output.
[AI] Represents a bitmap information header plus a 256-color palette, matching the layout for 8-bit D...