mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-26 17:46:38 -05:00
114a959741
* mxdiskstreamcontroller vtable + MxStreamController::vtable0x20
* stub MxDiskStreamController::Open
* MxDiskStreamProvider
* MxNextActionDataStart
* Revert "MxNextActionDataStart"
This reverts commit 41e8cfa2f1
.
* Match MxStreamController::vtable0x20
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
85 lines
1.6 KiB
C++
85 lines
1.6 KiB
C++
#include "mxdiskstreamprovider.h"
|
|
|
|
#include "mxthread.h"
|
|
|
|
DECOMP_SIZE_ASSERT(MxDiskStreamProvider, 0x60);
|
|
|
|
// OFFSET: LEGO1 0x100d0f30
|
|
MxResult MxDiskStreamProviderThread::Run()
|
|
{
|
|
if (m_target != NULL)
|
|
m_target->WaitForWorkToComplete();
|
|
MxThread::Run();
|
|
// They should probably have writen "return MxThread::Run()" but they didn't.
|
|
return SUCCESS;
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d0f70
|
|
MxDiskStreamProvider::MxDiskStreamProvider()
|
|
{
|
|
this->m_pFile = NULL;
|
|
this->m_remainingWork = 0;
|
|
this->m_unk35 = 0;
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d1240
|
|
MxDiskStreamProvider::~MxDiskStreamProvider()
|
|
{
|
|
// TODO
|
|
}
|
|
|
|
// Matching but with esi / edi swapped
|
|
// OFFSET: LEGO1 0x100d1750
|
|
MxResult MxDiskStreamProvider::WaitForWorkToComplete()
|
|
{
|
|
while (m_remainingWork != 0)
|
|
{
|
|
m_busySemaphore.Wait(INFINITE);
|
|
if (m_unk35 != 0)
|
|
PerformWork();
|
|
}
|
|
return SUCCESS;
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d1760 STUB
|
|
void MxDiskStreamProvider::PerformWork()
|
|
{
|
|
// TODO
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d13d0 STUB
|
|
MxResult MxDiskStreamProvider::SetResourceToGet(void* p_resource)
|
|
{
|
|
// TODO
|
|
return FAILURE;
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d1e90
|
|
MxU32 MxDiskStreamProvider::GetFileSize()
|
|
{
|
|
return m_pFile->GetBufferSize();
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d1ea0
|
|
MxU32 MxDiskStreamProvider::GetStreamBuffersNum()
|
|
{
|
|
return m_pFile->GetStreamBuffersNum();
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d15e0 STUB
|
|
void MxDiskStreamProvider::vtable0x20(undefined4 p_unknown1)
|
|
{
|
|
// TODO
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d1eb0
|
|
MxU32 MxDiskStreamProvider::GetLengthInDWords()
|
|
{
|
|
return m_pFile->GetLengthInDWords();
|
|
}
|
|
|
|
// OFFSET: LEGO1 0x100d1ec0
|
|
MxU32* MxDiskStreamProvider::GetBufferForDWords()
|
|
{
|
|
return m_pFile->GetBuffer();
|
|
}
|