further debugging and fixes

This commit is contained in:
Misha 2023-12-25 08:34:07 -05:00
parent 34849df4b2
commit 33c831c233
No known key found for this signature in database
GPG Key ID: 8441D12AEF33FED8
2 changed files with 13 additions and 8 deletions

View File

@ -190,10 +190,10 @@ MxDSStreamingAction* MxDiskStreamController::FUN_100c7db0()
for (MxStreamListMxNextActionDataStart::iterator it = m_nextActionList.begin(); it != m_nextActionList.end(); for (MxStreamListMxNextActionDataStart::iterator it = m_nextActionList.begin(); it != m_nextActionList.end();
it++) { it++) {
MxNextActionDataStart* data = *it; MxNextActionDataStart* data = *it;
OutputDebugStringA("found data action start\n");
for (MxStreamListMxDSAction::iterator it2 = m_list0x64.begin(); it2 != m_list0x64.end(); it++) { for (MxStreamListMxDSAction::iterator it2 = m_list0x64.begin(); it2 != m_list0x64.end(); it2++) {
MxDSStreamingAction* streamingAction = (MxDSStreamingAction*) *it2; MxDSStreamingAction* streamingAction = (MxDSStreamingAction*) *it2;
OutputDebugStringA("found streaming action\n");
if (streamingAction->GetObjectId() == data->GetObjectId() && if (streamingAction->GetObjectId() == data->GetObjectId() &&
streamingAction->GetUnknown24() == data->GetUnknown24() && streamingAction->GetUnknown24() == data->GetUnknown24() &&
streamingAction->GetBufferOffset() == data->GetData()) { streamingAction->GetBufferOffset() == data->GetData()) {
@ -224,8 +224,9 @@ MxResult MxDiskStreamController::VTable0x20(MxDSAction* p_action)
MxAutoLocker lock(&this->m_criticalSection); MxAutoLocker lock(&this->m_criticalSection);
MxDSStreamingAction* entry = MxDSStreamingAction* entry =
(MxDSStreamingAction*) m_list0x80.Find(p_action, FALSE); // TODO: is this a seperate class? (MxDSStreamingAction*) m_list0x80.Find(p_action, FALSE); // TODO: is this a seperate class?
OutputDebugStringA("MxDiskStreamController::VTable0x20\n");
if (entry) { if (entry) {
OutputDebugStringA("MxDiskStreamController::VTable0x20 no entry\n");
MxDSStreamingAction* action = new MxDSStreamingAction(*p_action, 0); MxDSStreamingAction* action = new MxDSStreamingAction(*p_action, 0);
action->SetUnknown28(entry->GetUnknown28()); action->SetUnknown28(entry->GetUnknown28());
action->SetUnknown84(entry->GetUnknown84()); action->SetUnknown84(entry->GetUnknown84());
@ -329,10 +330,10 @@ void MxDiskStreamController::FUN_100c8540()
FUN_100c7ce0(buf); FUN_100c7ce0(buf);
} }
} }
MxDSStreamingAction* action;
if (m_nextActionList.size() == 0 && m_list0x64.size() == 0) { if (m_nextActionList.size() == 0 && m_list0x64.size() != 0) {
do { do {
action = (MxDSStreamingAction*)m_list0x64.front(); MxDSStreamingAction* action = (MxDSStreamingAction*) m_list0x64.front();
m_list0xb8.pop_front(); m_list0xb8.pop_front();
FUN_100c7cb0(action); FUN_100c7cb0(action);

View File

@ -78,24 +78,27 @@ MxResult MxDiskStreamProvider::SetResourceToGet(MxStreamController* p_resource)
// STUB: LEGO1 0x100d15e0 // STUB: LEGO1 0x100d15e0
void MxDiskStreamProvider::VTable0x20(MxDSAction* p_action) void MxDiskStreamProvider::VTable0x20(MxDSAction* p_action)
{ {
OutputDebugStringA("MxDiskStreamProvider::VTable0x20");
// TODO // TODO
} }
// FUNCTION: LEGO1 0x100d1750 // FUNCTION: LEGO1 0x100d1750
MxResult MxDiskStreamProvider::WaitForWorkToComplete() MxResult MxDiskStreamProvider::WaitForWorkToComplete()
{ {
OutputDebugStringA("WaitForWorkToComplete\n");
while (m_remainingWork != 0) { while (m_remainingWork != 0) {
m_busySemaphore.Wait(INFINITE); m_busySemaphore.Wait(INFINITE);
if (m_unk0x35 != 0) if (m_unk0x35 != 0)
PerformWork(); PerformWork();
} }
OutputDebugStringA("Work is completed\n");
return SUCCESS; return SUCCESS;
} }
// FUNCTION: LEGO1 0x100d1780 // FUNCTION: LEGO1 0x100d1780
MxResult MxDiskStreamProvider::FUN_100d1780(MxDSStreamingAction* p_action) MxResult MxDiskStreamProvider::FUN_100d1780(MxDSStreamingAction* p_action)
{ {
if (m_remainingWork == 0) { if (m_remainingWork != 0) {
if (p_action->GetUnknown94() > 0 && !p_action->GetUnknowna0()) { if (p_action->GetUnknown94() > 0 && !p_action->GetUnknowna0()) {
MxDSBuffer* buffer = new MxDSBuffer(); MxDSBuffer* buffer = new MxDSBuffer();
if (buffer) { if (buffer) {
@ -129,6 +132,7 @@ MxResult MxDiskStreamProvider::FUN_100d1780(MxDSStreamingAction* p_action)
void MxDiskStreamProvider::PerformWork() void MxDiskStreamProvider::PerformWork()
{ {
// TODO // TODO
OutputDebugStringA("work is not being preformed.");
} }
// FUNCTION: LEGO1 0x100d1e90 // FUNCTION: LEGO1 0x100d1e90