mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-02-16 19:50:52 -05:00
Name some MxDSChunk flags (#394)
This commit is contained in:
parent
3f2fac72e4
commit
afe537b99e
11 changed files with 23 additions and 27 deletions
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue