From afe537b99efd37cc998a1f32fbae54d41094f02f Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Tue, 2 Jan 2024 13:32:01 -0500 Subject: [PATCH] Name some MxDSChunk flags (#394) --- LEGO1/mxdsbuffer.cpp | 9 ++++----- LEGO1/mxdschunk.cpp | 3 +-- LEGO1/mxdschunk.h | 6 ++---- LEGO1/mxdssubscriber.cpp | 2 +- LEGO1/mxloopingflcpresenter.cpp | 2 +- LEGO1/mxloopingsmkpresenter.cpp | 2 +- LEGO1/mxmediapresenter.cpp | 2 +- LEGO1/mxstreamchunk.cpp | 14 +++++++------- LEGO1/mxstreamchunk.h | 6 +++--- LEGO1/mxvideopresenter.cpp | 2 +- LEGO1/mxwavepresenter.cpp | 2 +- 11 files changed, 23 insertions(+), 27 deletions(-) diff --git a/LEGO1/mxdsbuffer.cpp b/LEGO1/mxdsbuffer.cpp index da643c17..5e4b277d 100644 --- a/LEGO1/mxdsbuffer.cpp +++ b/LEGO1/mxdsbuffer.cpp @@ -298,18 +298,17 @@ MxResult MxDSBuffer::ParseChunk( p_header->SetTime(p_header->GetTime() + m_unk0x30->GetUnknowna8()); - if (p_header->GetFlags() & MxDSChunk::Flag_Bit5) { + if (p_header->GetFlags() & MxDSChunk::Flag_Split) { MxU32 length = p_header->GetLength() + MxDSChunk::ReturnE() + 8; MxDSBuffer* buffer = new MxDSBuffer(); if (buffer && buffer->AllocateBuffer(length, MxDSBufferType_Allocate) == SUCCESS && buffer->CalcBytesRemaining((MxU8*) p_data) == SUCCESS) { *p_streamingAction = new MxDSStreamingAction((MxDSStreamingAction&) *p_action); - ; if (*p_streamingAction) { MxU16* flags = MxStreamChunk::IntoFlags(buffer->GetBuffer()); - *flags = p_header->GetFlags() & ~MxDSChunk::Flag_Bit5; + *flags = p_header->GetFlags() & ~MxDSChunk::Flag_Split; delete p_header; (*p_streamingAction)->SetUnknowna0(buffer); @@ -324,7 +323,7 @@ MxResult MxDSBuffer::ParseChunk( return FAILURE; } else { - if (p_header->GetFlags() & MxDSChunk::Flag_Bit2) { + if (p_header->GetFlags() & MxDSChunk::Flag_End) { if (m_unk0x30->HasId(p_header->GetObjectId())) { if (m_unk0x30->GetFlags() & MxDSAction::Flag_Bit3 && (m_unk0x30->GetLoopCount() > 1 || m_unk0x30->GetDuration() == -1)) { @@ -474,7 +473,7 @@ MxResult MxDSBuffer::CalcBytesRemaining(MxU8* p_data) memcpy(m_pBuffer + m_writeOffset - m_bytesRemaining, ptr, bytesRead); if (m_writeOffset == m_bytesRemaining) - *(MxU32*) (m_pBuffer + 4) = *MxStreamChunk::IntoPlus0x12(m_pBuffer) + MxStreamChunk::ReturnE(); + *(MxU32*) (m_pBuffer + 4) = *MxStreamChunk::IntoLength(m_pBuffer) + MxStreamChunk::ReturnE(); m_bytesRemaining -= bytesRead; result = SUCCESS; diff --git a/LEGO1/mxdschunk.cpp b/LEGO1/mxdschunk.cpp index bf7e08a6..bee247d2 100644 --- a/LEGO1/mxdschunk.cpp +++ b/LEGO1/mxdschunk.cpp @@ -15,9 +15,8 @@ MxDSChunk::MxDSChunk() // FUNCTION: LEGO1 0x100be170 MxDSChunk::~MxDSChunk() { - if (m_flags & Flag_Bit1) { + if (m_flags & Flag_Bit1) delete[] m_data; - } } // FUNCTION: LEGO1 0x100be1e0 diff --git a/LEGO1/mxdschunk.h b/LEGO1/mxdschunk.h index 9f2ac9b6..83693bc0 100644 --- a/LEGO1/mxdschunk.h +++ b/LEGO1/mxdschunk.h @@ -11,11 +11,9 @@ class MxDSChunk : public MxCore { public: enum { Flag_Bit1 = 0x01, - Flag_Bit2 = 0x02, + Flag_End = 0x02, Flag_Bit3 = 0x04, - Flag_Bit4 = 0x08, - Flag_Bit5 = 0x10, - Flag_Bit8 = 0x80, + Flag_Split = 0x10, Flag_Bit16 = 0x8000 }; diff --git a/LEGO1/mxdssubscriber.cpp b/LEGO1/mxdssubscriber.cpp index 33ee11fc..f50d34a1 100644 --- a/LEGO1/mxdssubscriber.cpp +++ b/LEGO1/mxdssubscriber.cpp @@ -119,7 +119,7 @@ void MxDSSubscriber::FUN_100b8390(MxStreamChunk* p_chunk) if (p_chunk) delete p_chunk; } - else if ((p_chunk->GetFlags() & MxStreamChunk::Flag_Bit1) != 0 && p_chunk) + else if (p_chunk->GetFlags() & MxDSChunk::Flag_Bit1 && p_chunk) delete p_chunk; } } diff --git a/LEGO1/mxloopingflcpresenter.cpp b/LEGO1/mxloopingflcpresenter.cpp index 03b14a5a..152bd385 100644 --- a/LEGO1/mxloopingflcpresenter.cpp +++ b/LEGO1/mxloopingflcpresenter.cpp @@ -40,7 +40,7 @@ void MxLoopingFlcPresenter::NextFrame() { MxStreamChunk* chunk = NextChunk(); - if (chunk->GetFlags() & MxStreamChunk::Flag_Bit2) { + if (chunk->GetFlags() & MxDSChunk::Flag_End) { m_previousTickleStates |= 1 << (unsigned char) m_currentTickleState; m_currentTickleState = TickleState_Repeating; } diff --git a/LEGO1/mxloopingsmkpresenter.cpp b/LEGO1/mxloopingsmkpresenter.cpp index b000c835..11ab8388 100644 --- a/LEGO1/mxloopingsmkpresenter.cpp +++ b/LEGO1/mxloopingsmkpresenter.cpp @@ -51,7 +51,7 @@ void MxLoopingSmkPresenter::NextFrame() { MxStreamChunk* chunk = NextChunk(); - if (chunk->GetFlags() & MxStreamChunk::Flag_Bit2) { + if (chunk->GetFlags() & MxDSChunk::Flag_End) { m_previousTickleStates |= 1 << (unsigned char) m_currentTickleState; m_currentTickleState = TickleState_Repeating; } diff --git a/LEGO1/mxmediapresenter.cpp b/LEGO1/mxmediapresenter.cpp index b3eb2274..ca5eb7d7 100644 --- a/LEGO1/mxmediapresenter.cpp +++ b/LEGO1/mxmediapresenter.cpp @@ -185,7 +185,7 @@ void MxMediaPresenter::StreamingTickle() m_currentChunk = NextChunk(); if (m_currentChunk) { - if (m_currentChunk->GetFlags() & MxDSChunk::Flag_Bit2) { + if (m_currentChunk->GetFlags() & MxDSChunk::Flag_End) { m_subscriber->FUN_100b8390(m_currentChunk); m_currentChunk = NULL; m_previousTickleStates |= 1 << (unsigned char) m_currentTickleState; diff --git a/LEGO1/mxstreamchunk.cpp b/LEGO1/mxstreamchunk.cpp index 8dd9ed67..57945957 100644 --- a/LEGO1/mxstreamchunk.cpp +++ b/LEGO1/mxstreamchunk.cpp @@ -54,7 +54,7 @@ MxResult MxStreamChunk::SendChunk(MxStreamListMxDSSubscriber& p_subscriberList, { for (MxStreamListMxDSSubscriber::iterator it = p_subscriberList.begin(); it != p_subscriberList.end(); it++) { if ((*it)->GetObjectId() == m_objectId && (*it)->GetUnknown48() == p_obj24val) { - if (m_flags & MxDSChunk::Flag_Bit2 && m_buffer) { + if (m_flags & MxDSChunk::Flag_End && m_buffer) { m_buffer->ReleaseRef(this); m_buffer = NULL; } @@ -77,23 +77,23 @@ void MxStreamChunk::SetBuffer(MxDSBuffer* p_buffer) // FUNCTION: LEGO1 0x100c3180 MxU16* MxStreamChunk::IntoFlags(MxU8* p_buffer) { - return (MxU16*) (p_buffer + 8); + return (MxU16*) (p_buffer + 0x08); } // FUNCTION: LEGO1 0x100c3190 -MxU32* MxStreamChunk::IntoPlus0xa(MxU8* p_buffer) +MxU32* MxStreamChunk::IntoObjectId(MxU8* p_buffer) { - return (MxU32*) (p_buffer + 0xa); + return (MxU32*) (p_buffer + 0x0a); } // FUNCTION: LEGO1 0x100c31a0 -MxU32* MxStreamChunk::IntoPlus0xe(MxU8* p_buffer) +MxLong* MxStreamChunk::IntoTime(MxU8* p_buffer) { - return (MxU32*) (p_buffer + 0xe); + return (MxLong*) (p_buffer + 0x0e); } // FUNCTION: LEGO1 0x100c31b0 -MxU32* MxStreamChunk::IntoPlus0x12(MxU8* p_buffer) +MxU32* MxStreamChunk::IntoLength(MxU8* p_buffer) { return (MxU32*) (p_buffer + 0x12); } diff --git a/LEGO1/mxstreamchunk.h b/LEGO1/mxstreamchunk.h index 5b258603..5b9ecb64 100644 --- a/LEGO1/mxstreamchunk.h +++ b/LEGO1/mxstreamchunk.h @@ -35,9 +35,9 @@ public: void SetBuffer(MxDSBuffer* p_buffer); static MxU16* IntoFlags(MxU8* p_buffer); - static MxU32* IntoPlus0x12(MxU8* p_buffer); - static MxU32* IntoPlus0xa(MxU8* p_buffer); - static MxU32* IntoPlus0xe(MxU8* p_buffer); + static MxU32* IntoObjectId(MxU8* p_buffer); + static MxLong* IntoTime(MxU8* p_buffer); + static MxU32* IntoLength(MxU8* p_buffer); private: MxDSBuffer* m_buffer; // 0x1c diff --git a/LEGO1/mxvideopresenter.cpp b/LEGO1/mxvideopresenter.cpp index 0e4f3d5b..5d507409 100644 --- a/LEGO1/mxvideopresenter.cpp +++ b/LEGO1/mxvideopresenter.cpp @@ -240,7 +240,7 @@ void MxVideoPresenter::NextFrame() { MxStreamChunk* chunk = NextChunk(); - if (chunk->GetFlags() & MxStreamChunk::Flag_Bit2) { + if (chunk->GetFlags() & MxDSChunk::Flag_End) { m_subscriber->FUN_100b8390(chunk); m_previousTickleStates |= 1 << (unsigned char) m_currentTickleState; m_currentTickleState = TickleState_Repeating; diff --git a/LEGO1/mxwavepresenter.cpp b/LEGO1/mxwavepresenter.cpp index 80096f73..6d08a899 100644 --- a/LEGO1/mxwavepresenter.cpp +++ b/LEGO1/mxwavepresenter.cpp @@ -201,7 +201,7 @@ void MxWavePresenter::StreamingTickle() if (!(m_action->GetFlags() & MxDSAction::Flag_Looping)) { MxStreamChunk* chunk = FUN_100b5650(); - if (chunk && chunk->GetFlags() & MxDSChunk::Flag_Bit2 && !(chunk->GetFlags() & MxDSChunk::Flag_Bit16)) { + if (chunk && chunk->GetFlags() & MxDSChunk::Flag_End && !(chunk->GetFlags() & MxDSChunk::Flag_Bit16)) { chunk->SetFlags(chunk->GetFlags() | MxDSChunk::Flag_Bit16); m_currentChunk = new MxStreamChunk;