mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 10:41:15 +00:00
Match MxDiskStreamController::FUN_100c7980
This commit is contained in:
parent
50dc632492
commit
e6b86a87f4
@ -63,23 +63,28 @@ void MxDiskStreamController::FUN_100c7980()
|
||||
{
|
||||
MxDSBuffer* buffer;
|
||||
MxDSStreamingAction* action = NULL;
|
||||
MxAutoLocker lock(&this->m_criticalSection);
|
||||
|
||||
if (m_unk0x3c.size() != 0 || m_provider->GetStreamBuffersNum() > m_unk0x8c) {
|
||||
buffer = new MxDSBuffer();
|
||||
if (buffer->AllocateBuffer(m_provider->GetFileSize(), MxDSBufferType_Chunk) == SUCCESS) {
|
||||
action = VTable0x28();
|
||||
if (action) {
|
||||
action->SetUnknowna0(buffer);
|
||||
m_unk0x8c++;
|
||||
}
|
||||
else {
|
||||
{
|
||||
MxAutoLocker lock(&this->m_criticalSection);
|
||||
|
||||
if (m_unk0x3c.size() && m_unk0x8c < m_provider->GetStreamBuffersNum()) {
|
||||
buffer = new MxDSBuffer();
|
||||
|
||||
if (buffer->AllocateBuffer(m_provider->GetFileSize(), MxDSBufferType_Chunk) != SUCCESS) {
|
||||
if (buffer)
|
||||
delete buffer;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
delete buffer;
|
||||
return;
|
||||
|
||||
action = VTable0x28();
|
||||
if (!action) {
|
||||
if (buffer)
|
||||
delete buffer;
|
||||
return;
|
||||
}
|
||||
|
||||
action->SetUnknowna0(buffer);
|
||||
m_unk0x8c++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -108,7 +108,7 @@ MxU32 MxDiskStreamProvider::GetFileSize()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100d1ea0
|
||||
MxU32 MxDiskStreamProvider::GetStreamBuffersNum()
|
||||
MxS32 MxDiskStreamProvider::GetStreamBuffersNum()
|
||||
{
|
||||
return m_pFile->GetStreamBuffersNum();
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ class MxDiskStreamProvider : public MxStreamProvider {
|
||||
|
||||
virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; // vtable+0x14
|
||||
virtual MxU32 GetFileSize() override; // vtable+0x18
|
||||
virtual MxU32 GetStreamBuffersNum() override; // vtable+0x1c
|
||||
virtual MxS32 GetStreamBuffersNum() override; // vtable+0x1c
|
||||
virtual void VTable0x20(undefined4) override; // vtable+0x20
|
||||
virtual MxU32 GetLengthInDWords() override; // vtable+0x24
|
||||
virtual MxU32* GetBufferForDWords() override; // vtable+0x28
|
||||
|
||||
@ -23,7 +23,7 @@ MxU32 MxRAMStreamProvider::GetFileSize()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100d0940
|
||||
MxU32 MxRAMStreamProvider::GetStreamBuffersNum()
|
||||
MxS32 MxRAMStreamProvider::GetStreamBuffersNum()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ class MxRAMStreamProvider : public MxStreamProvider {
|
||||
|
||||
virtual MxResult SetResourceToGet(MxStreamController* p_resource) override; // vtable+0x14
|
||||
virtual MxU32 GetFileSize() override; // vtable+0x18
|
||||
virtual MxU32 GetStreamBuffersNum() override; // vtable+0x1c
|
||||
virtual MxS32 GetStreamBuffersNum() override; // vtable+0x1c
|
||||
virtual MxU32 GetLengthInDWords() override; // vtable+0x24
|
||||
virtual MxU32* GetBufferForDWords() override; // vtable+0x28
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ class MxStreamProvider : public MxCore {
|
||||
|
||||
virtual MxResult SetResourceToGet(MxStreamController* p_resource); // vtable+0x14
|
||||
virtual MxU32 GetFileSize() = 0; // vtable+0x18
|
||||
virtual MxU32 GetStreamBuffersNum() = 0; // vtable+0x1c
|
||||
virtual MxS32 GetStreamBuffersNum() = 0; // vtable+0x1c
|
||||
virtual void VTable0x20(undefined4); // vtable+0x20
|
||||
virtual MxU32 GetLengthInDWords() = 0; // vtable+0x24
|
||||
virtual MxU32* GetBufferForDWords() = 0; // vtable+0x28
|
||||
|
||||
Loading…
Reference in New Issue
Block a user