1
0
Fork 0
mirror of https://github.com/isledecomp/isle.git synced 2025-05-15 23:31:48 -04:00

Match MxDiskStreamController::FUN_100c7db0 ()

* Match `MxDiskStreamController::FUN_100c7db0`

* Modern compiler fix
This commit is contained in:
Christian Semmler 2024-12-23 11:06:45 -07:00 committed by GitHub
parent 1b99d75543
commit 5ffa91d5fd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 2 deletions

View file

@ -92,6 +92,9 @@ private:
// List<MxDSBuffer *>::~List<MxDSBuffer *> // List<MxDSBuffer *>::~List<MxDSBuffer *>
// TEMPLATE: LEGO1 0x100c7ef0 // TEMPLATE: LEGO1 0x100c7ef0
// list<MxNextActionDataStart *>::insert // list<MxNextActionDataStart *,allocator<MxNextActionDataStart *> >::insert
// TEMPLATE: BETA10 0x10150e60
// MxUtilityList<MxNextActionDataStart *>::PushBack
#endif // MXDISKSTREAMCONTROLLER_H #endif // MXDISKSTREAMCONTROLLER_H

View file

@ -18,6 +18,9 @@ public:
this->pop_front(); this->pop_front();
return TRUE; return TRUE;
} }
// Note: does not take a reference
void PushBack(T p_obj) { this->push_back(p_obj); }
}; };
#endif // MXUTILITYLIST_H #endif // MXUTILITYLIST_H

View file

@ -248,27 +248,31 @@ MxResult MxDiskStreamController::FUN_100c7d10()
} }
// FUNCTION: LEGO1 0x100c7db0 // FUNCTION: LEGO1 0x100c7db0
// FUNCTION: BETA10 0x101551d0
MxDSStreamingAction* MxDiskStreamController::FUN_100c7db0() MxDSStreamingAction* MxDiskStreamController::FUN_100c7db0()
{ {
AUTOLOCK(m_criticalSection); AUTOLOCK(m_criticalSection);
for (MxNextActionDataStartList::iterator it = m_nextActionList.begin(); it != m_nextActionList.end(); it++) { for (MxNextActionDataStartList::iterator it = m_nextActionList.begin(); it != m_nextActionList.end(); it++) {
MxNextActionDataStart* data = *it; MxNextActionDataStart* data = *it;
for (MxDSObjectList::iterator it2 = m_list0x64.begin(); it2 != m_list0x64.end(); it2++) { for (MxDSObjectList::iterator it2 = m_list0x64.begin(); it2 != m_list0x64.end(); it2++) {
MxDSStreamingAction* streamingAction = (MxDSStreamingAction*) *it2; MxDSStreamingAction* streamingAction = (MxDSStreamingAction*) *it2;
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()) {
m_nextActionList.erase(it); m_nextActionList.erase(it);
data->SetData(m_provider->GetFileSize() + data->GetData()); data->SetData(m_provider->GetFileSize() + data->GetData());
m_nextActionList.push_back(data); m_nextActionList.PushBack(data);
m_list0x64.erase(it2); m_list0x64.erase(it2);
return streamingAction; return streamingAction;
} }
} }
} }
return NULL; return NULL;
} }