mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-31 04:01:16 +00:00
Refactor another enum
This commit is contained in:
parent
bf2c4ce6d5
commit
923db8c82f
@ -10,17 +10,17 @@ class MxDSStreamingAction;
|
|||||||
class MxStreamChunk;
|
class MxStreamChunk;
|
||||||
class MxDSChunk;
|
class MxDSChunk;
|
||||||
|
|
||||||
enum MxDSBufferType {
|
|
||||||
MxDSBufferType_Chunk = 0,
|
|
||||||
MxDSBufferType_Allocate = 1,
|
|
||||||
MxDSBufferType_Preallocated = 2,
|
|
||||||
MxDSBufferType_Unknown = 3,
|
|
||||||
};
|
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dcca0
|
// VTABLE: LEGO1 0x100dcca0
|
||||||
// SIZE 0x34
|
// SIZE 0x34
|
||||||
class MxDSBuffer : public MxCore {
|
class MxDSBuffer : public MxCore {
|
||||||
public:
|
public:
|
||||||
|
enum Type {
|
||||||
|
e_chunk = 0,
|
||||||
|
e_allocate = 1,
|
||||||
|
e_preallocated = 2,
|
||||||
|
e_unknown = 3,
|
||||||
|
};
|
||||||
|
|
||||||
MxDSBuffer();
|
MxDSBuffer();
|
||||||
virtual ~MxDSBuffer() override;
|
virtual ~MxDSBuffer() override;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ class MxDSBuffer : public MxCore {
|
|||||||
return "MxDSBuffer";
|
return "MxDSBuffer";
|
||||||
}
|
}
|
||||||
|
|
||||||
MxResult AllocateBuffer(MxU32 p_bufferSize, MxDSBufferType p_mode);
|
MxResult AllocateBuffer(MxU32 p_bufferSize, Type p_mode);
|
||||||
MxResult SetBufferPointer(MxU8* p_buffer, MxU32 p_size);
|
MxResult SetBufferPointer(MxU8* p_buffer, MxU32 p_size);
|
||||||
MxResult FUN_100c67b0(
|
MxResult FUN_100c67b0(
|
||||||
MxStreamController* p_controller,
|
MxStreamController* p_controller,
|
||||||
@ -67,12 +67,12 @@ class MxDSBuffer : public MxCore {
|
|||||||
inline MxU8** GetBufferRef() { return &m_pBuffer; }
|
inline MxU8** GetBufferRef() { return &m_pBuffer; }
|
||||||
inline undefined4 GetUnknown14() { return m_unk0x14; }
|
inline undefined4 GetUnknown14() { return m_unk0x14; }
|
||||||
inline MxU16 GetRefCount() { return m_refcount; }
|
inline MxU16 GetRefCount() { return m_refcount; }
|
||||||
inline MxDSBufferType GetMode() { return m_mode; }
|
inline Type GetMode() { return m_mode; }
|
||||||
inline MxU32 GetWriteOffset() { return m_writeOffset; }
|
inline MxU32 GetWriteOffset() { return m_writeOffset; }
|
||||||
inline MxU32 GetBytesRemaining() { return m_bytesRemaining; }
|
inline MxU32 GetBytesRemaining() { return m_bytesRemaining; }
|
||||||
inline void SetUnknown14(undefined4 p_unk0x14) { m_unk0x14 = p_unk0x14; }
|
inline void SetUnknown14(undefined4 p_unk0x14) { m_unk0x14 = p_unk0x14; }
|
||||||
inline void SetUnknown1c(undefined4 p_unk0x1c) { m_unk0x1c = p_unk0x1c; }
|
inline void SetUnknown1c(undefined4 p_unk0x1c) { m_unk0x1c = p_unk0x1c; }
|
||||||
inline void SetMode(MxDSBufferType p_mode) { m_mode = p_mode; }
|
inline void SetMode(Type p_mode) { m_mode = p_mode; }
|
||||||
inline void SetUnk30(MxDSStreamingAction* p_unk0x30) { m_unk0x30 = p_unk0x30; }
|
inline void SetUnk30(MxDSStreamingAction* p_unk0x30) { m_unk0x30 = p_unk0x30; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -83,7 +83,7 @@ class MxDSBuffer : public MxCore {
|
|||||||
undefined4 m_unk0x18; // 0x18
|
undefined4 m_unk0x18; // 0x18
|
||||||
undefined4 m_unk0x1c; // 0x1c
|
undefined4 m_unk0x1c; // 0x1c
|
||||||
MxU16 m_refcount; // 0x20
|
MxU16 m_refcount; // 0x20
|
||||||
MxDSBufferType m_mode; // 0x24
|
Type m_mode; // 0x24
|
||||||
MxU32 m_writeOffset; // 0x28
|
MxU32 m_writeOffset; // 0x28
|
||||||
MxU32 m_bytesRemaining; // 0x2c
|
MxU32 m_bytesRemaining; // 0x2c
|
||||||
MxDSStreamingAction* m_unk0x30; // 0x30
|
MxDSStreamingAction* m_unk0x30; // 0x30
|
||||||
|
|||||||
@ -129,7 +129,7 @@ void MxDiskStreamController::FUN_100c7980()
|
|||||||
if (m_unk0x3c.size() && m_unk0x8c < m_provider->GetStreamBuffersNum()) {
|
if (m_unk0x3c.size() && m_unk0x8c < m_provider->GetStreamBuffersNum()) {
|
||||||
buffer = new MxDSBuffer();
|
buffer = new MxDSBuffer();
|
||||||
|
|
||||||
if (buffer->AllocateBuffer(m_provider->GetFileSize(), MxDSBufferType_Chunk) != SUCCESS) {
|
if (buffer->AllocateBuffer(m_provider->GetFileSize(), MxDSBuffer::e_chunk) != SUCCESS) {
|
||||||
if (buffer)
|
if (buffer)
|
||||||
delete buffer;
|
delete buffer;
|
||||||
return;
|
return;
|
||||||
@ -213,10 +213,10 @@ void MxDiskStreamController::FUN_100c7cb0(MxDSStreamingAction* p_action)
|
|||||||
void MxDiskStreamController::FUN_100c7ce0(MxDSBuffer* p_buffer)
|
void MxDiskStreamController::FUN_100c7ce0(MxDSBuffer* p_buffer)
|
||||||
{
|
{
|
||||||
switch (p_buffer->GetMode()) {
|
switch (p_buffer->GetMode()) {
|
||||||
case MxDSBufferType_Chunk:
|
case MxDSBuffer::e_chunk:
|
||||||
m_unk0x8c--;
|
m_unk0x8c--;
|
||||||
case MxDSBufferType_Allocate:
|
case MxDSBuffer::e_allocate:
|
||||||
case MxDSBufferType_Unknown:
|
case MxDSBuffer::e_unknown:
|
||||||
delete p_buffer;
|
delete p_buffer;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -174,7 +174,7 @@ MxResult MxDiskStreamProvider::FUN_100d1780(MxDSStreamingAction* p_action)
|
|||||||
if (!buffer)
|
if (!buffer)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
if (buffer->AllocateBuffer(GetFileSize(), MxDSBufferType_Allocate) != SUCCESS) {
|
if (buffer->AllocateBuffer(GetFileSize(), MxDSBuffer::e_allocate) != SUCCESS) {
|
||||||
delete buffer;
|
delete buffer;
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ MxResult MxDiskStreamProvider::FUN_100d1b20(MxDSStreamingAction* p_action)
|
|||||||
MxU32 size = p_action->GetUnknowna0()->GetWriteOffset() - p_action->GetUnknown94() + p_action->GetBufferOffset() +
|
MxU32 size = p_action->GetUnknowna0()->GetWriteOffset() - p_action->GetUnknown94() + p_action->GetBufferOffset() +
|
||||||
(p_action->GetUnknowna4() ? p_action->GetUnknowna4()->GetWriteOffset() : 0);
|
(p_action->GetUnknowna4() ? p_action->GetUnknowna4()->GetWriteOffset() : 0);
|
||||||
|
|
||||||
if (buffer->AllocateBuffer(size, MxDSBufferType_Allocate) != SUCCESS) {
|
if (buffer->AllocateBuffer(size, MxDSBuffer::e_allocate) != SUCCESS) {
|
||||||
if (!buffer)
|
if (!buffer)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
@ -330,12 +330,12 @@ MxResult MxDiskStreamProvider::FUN_100d1b20(MxDSStreamingAction* p_action)
|
|||||||
if (!buffer3)
|
if (!buffer3)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
if (buffer3->AllocateBuffer(size, MxDSBufferType_Allocate) == SUCCESS) {
|
if (buffer3->AllocateBuffer(size, MxDSBuffer::e_allocate) == SUCCESS) {
|
||||||
memcpy(buffer3->GetBuffer(), p_action->GetUnknowna4()->GetBuffer(), size);
|
memcpy(buffer3->GetBuffer(), p_action->GetUnknowna4()->GetBuffer(), size);
|
||||||
p_action->GetUnknowna4()->SetMode(MxDSBufferType_Allocate);
|
p_action->GetUnknowna4()->SetMode(MxDSBuffer::e_allocate);
|
||||||
delete p_action->GetUnknowna4();
|
delete p_action->GetUnknowna4();
|
||||||
|
|
||||||
buffer3->SetMode(MxDSBufferType_Unknown);
|
buffer3->SetMode(MxDSBuffer::e_unknown);
|
||||||
p_action->SetUnknowna4(buffer3);
|
p_action->SetUnknowna4(buffer3);
|
||||||
MxDSBuffer* buffer4 = p_action->GetUnknowna0();
|
MxDSBuffer* buffer4 = p_action->GetUnknowna0();
|
||||||
MxU32 unk0x14 = buffer4->GetUnknown14();
|
MxU32 unk0x14 = buffer4->GetUnknown14();
|
||||||
|
|||||||
@ -22,7 +22,7 @@ MxDSBuffer::MxDSBuffer()
|
|||||||
m_unk0x1c = 0;
|
m_unk0x1c = 0;
|
||||||
m_writeOffset = 0;
|
m_writeOffset = 0;
|
||||||
m_bytesRemaining = 0;
|
m_bytesRemaining = 0;
|
||||||
m_mode = MxDSBufferType_Preallocated;
|
m_mode = e_preallocated;
|
||||||
m_unk0x30 = 0;
|
m_unk0x30 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,12 +31,12 @@ MxDSBuffer::~MxDSBuffer()
|
|||||||
{
|
{
|
||||||
if (m_pBuffer != NULL) {
|
if (m_pBuffer != NULL) {
|
||||||
switch (m_mode) {
|
switch (m_mode) {
|
||||||
case MxDSBufferType_Allocate:
|
case e_allocate:
|
||||||
case MxDSBufferType_Unknown:
|
case e_unknown:
|
||||||
delete[] m_pBuffer;
|
delete[] m_pBuffer;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MxDSBufferType_Chunk: {
|
case e_chunk: {
|
||||||
MxU32 offset = m_writeOffset / 1024;
|
MxU32 offset = m_writeOffset / 1024;
|
||||||
MxStreamer* streamer = Streamer();
|
MxStreamer* streamer = Streamer();
|
||||||
|
|
||||||
@ -77,16 +77,16 @@ MxDSBuffer::~MxDSBuffer()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100c6640
|
// FUNCTION: LEGO1 0x100c6640
|
||||||
MxResult MxDSBuffer::AllocateBuffer(MxU32 p_bufferSize, MxDSBufferType p_mode)
|
MxResult MxDSBuffer::AllocateBuffer(MxU32 p_bufferSize, Type p_mode)
|
||||||
{
|
{
|
||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
|
|
||||||
switch (p_mode) {
|
switch (p_mode) {
|
||||||
case MxDSBufferType_Allocate:
|
case e_allocate:
|
||||||
m_pBuffer = new MxU8[p_bufferSize];
|
m_pBuffer = new MxU8[p_bufferSize];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MxDSBufferType_Chunk: {
|
case e_chunk: {
|
||||||
MxStreamer* streamer = Streamer();
|
MxStreamer* streamer = Streamer();
|
||||||
|
|
||||||
switch (p_bufferSize / 1024) {
|
switch (p_bufferSize / 1024) {
|
||||||
@ -150,7 +150,7 @@ MxResult MxDSBuffer::SetBufferPointer(MxU8* p_buffer, MxU32 p_size)
|
|||||||
m_pIntoBuffer2 = p_buffer;
|
m_pIntoBuffer2 = p_buffer;
|
||||||
m_bytesRemaining = p_size;
|
m_bytesRemaining = p_size;
|
||||||
m_writeOffset = p_size;
|
m_writeOffset = p_size;
|
||||||
m_mode = MxDSBufferType_Preallocated;
|
m_mode = e_preallocated;
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ MxResult MxDSBuffer::ParseChunk(
|
|||||||
MxU32 length = p_header->GetLength() + MxDSChunk::GetHeaderSize() + 8;
|
MxU32 length = p_header->GetLength() + MxDSChunk::GetHeaderSize() + 8;
|
||||||
MxDSBuffer* buffer = new MxDSBuffer();
|
MxDSBuffer* buffer = new MxDSBuffer();
|
||||||
|
|
||||||
if (buffer && buffer->AllocateBuffer(length, MxDSBufferType_Allocate) == SUCCESS &&
|
if (buffer && buffer->AllocateBuffer(length, e_allocate) == SUCCESS &&
|
||||||
buffer->CalcBytesRemaining((MxU8*) p_data) == SUCCESS) {
|
buffer->CalcBytesRemaining((MxU8*) p_data) == SUCCESS) {
|
||||||
*p_streamingAction = new MxDSStreamingAction((MxDSStreamingAction&) *p_action);
|
*p_streamingAction = new MxDSStreamingAction((MxDSStreamingAction&) *p_action);
|
||||||
|
|
||||||
@ -456,7 +456,7 @@ MxResult MxDSBuffer::CalcBytesRemaining(MxU8* p_data)
|
|||||||
{
|
{
|
||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
|
|
||||||
if (m_mode == MxDSBufferType_Allocate && m_bytesRemaining != 0) {
|
if (m_mode == e_allocate && m_bytesRemaining != 0) {
|
||||||
MxU32 bytesRead;
|
MxU32 bytesRead;
|
||||||
MxU8* ptr;
|
MxU8* ptr;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user