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