324 MxU8* m_pIntoBuffer2;
328 MxU16 m_referenceCount;
331 MxU32 m_bytesRemaining;
[AI] Base virtual class for all Mindscape engine (Mx) objects.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
[AI] Buffer for managing streamed DS (Data Stream) chunks and actions.
MxU8 * SkipToData()
[AI] Scans this buffer forward to the next valid object or chunk and returns a pointer to its start.
MxResult FUN_100c7090(MxDSBuffer *p_buf)
[AI] Copies buffer data and selected internal state from another buffer, if space allows.
MxU16 GetRefCount()
[AI] Returns the current buffer reference count.
MxResult SetBufferPointer(MxU8 *p_buffer, MxU32 p_size)
[AI] Sets a buffer pointer and records its size.
MxResult CalcBytesRemaining(MxU8 *p_data)
[AI] Calculates pending bytes remaining to be streamed, updates buffer state accordingly.
MxU8 * GetBuffer()
[AI] Returns a pointer to the managed chunk data buffer.
void AddRef(MxDSChunk *p_chunk)
[AI] Increment reference count for this buffer (ownership by a chunk).
void SetUnk30(MxDSStreamingAction *p_unk0x30)
[AI] Sets the pointer to the currently relevant streaming action for this buffer.
Type GetMode()
[AI] Returns the current buffer management mode.
void SetUnknown1c(undefined4 p_unk0x1c)
[AI] Sets the unknown value at offset 0x1c.
MxU8 ReleaseRef(MxDSChunk *)
[AI] Decrement the buffer's chunk reference count.
undefined4 GetUnknown14()
[AI] Returns the internal value at offset 0x14.
MxResult StartPresenterFromAction(MxStreamController *p_controller, MxDSAction *p_action1, MxDSAction *p_action2)
[AI] Launches a presenter for the given action if not already present.
MxResult CreateObject(MxStreamController *p_controller, MxU32 *p_data, MxDSAction *p_action, MxDSStreamingAction **p_streamingAction)
[AI] Creates a presenter/action object by deserializing a data block.
void SetUnknown14(undefined4 p_unk0x14)
[AI] Sets the unknown value at offset 0x14.
MxU32 GetWriteOffset()
[AI] Returns the current buffer write offset (number of bytes with valid data).
~MxDSBuffer() override
[AI] Destructor: Releases memory appropriately based on buffer management mode and asserts no referen...
MxDSBuffer()
[AI] Constructs a buffer object and initializes all internal pointers and counters.
void SetMode(Type p_mode)
[AI] Sets the buffer memory management mode.
const char * ClassName() const override
[AI] Returns the runtime class name for serialization/reflection.
MxU8 * FUN_100c6fa0(MxU8 *p_data)
[AI] Finds the next chunk boundary in the buffer, starting from an optional pointer.
MxResult AllocateBuffer(MxU32 p_bufferSize, Type p_mode)
[AI] Allocates a buffer of a given size and memory mode.
MxResult ParseChunk(MxStreamController *p_controller, MxU32 *p_data, MxDSAction *p_action, MxDSStreamingAction **p_streamingAction, MxStreamChunk *p_header)
[AI] Parses an MxStreamChunk for logical streaming actions, nested chunks, EoS, and splitting.
void FUN_100c6f80(MxU32 p_writeOffset)
[AI] Sets the buffer's internal streaming position to the given write offset.
static MxResult Append(MxU8 *p_buffer1, MxU8 *p_buffer2)
[AI] Appends one chunk/data stream buffer to another, adjusting sizes/headers.
MxResult FUN_100c67b0(MxStreamController *p_controller, MxDSAction *p_action, MxDSStreamingAction **p_streamingAction)
[AI] Executes streaming action startup and object creation loop from an initial SI chunk.
MxU32 GetBytesRemaining()
[AI] Returns the number of bytes remaining to stream in this buffer.
static MxCore * ReadChunk(MxDSBuffer *p_buffer, MxU32 *p_chunkData, MxU16 p_flags)
[AI] Reads an SI file object/chunk at given position in a buffer.
Type
[AI] Buffer memory management type.
@ e_preallocated
[AI] Preallocated memory passed in from outside.
@ e_allocate
[AI] Newly allocated memory with new[].
@ e_chunk
[AI] Chunk-managed memory (from Streamer pool).
@ e_unknown
[AI] Unknown/other (may be unused or special).
MxBool HasRef()
[AI] Checks whether there are any active references to this buffer.
[AI] Represents a chunk of data extracted from a stream (typically from a Mindscape/Mx SI file or str...
[AI] Represents an action that streams data from a buffer within a DirectScript (DS) media timeline.
[AI] Represents a streamable chunk of data, typically sourced from a media buffer and designed for no...
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.