[saco] Match CDownloadManager::FUNC_1000C010 and its empty worker proc; _beginthread per slot

This commit is contained in:
ricardoofnl committed 2026-09-03 02:32:59 +07:00
1 parent 60c7d6ba09
commit 9f962b6477
2 files changed
+41

No files matched your search

+40
View File
@@ -2,6 +2,46 @@
//----------------------------------------------------
// retail spawns the workers on an empty body
void __cdecl DownloadThreadProc(void *pParam)
{
}
//----------------------------------------------------
// spawns a worker for every idle slot and clears its request block
bool CDownloadManager::FUNC_1000C010()
{
for(int i = 0; i < MAX_DOWNLOAD_SLOTS; i++)
{
if(m_Slots[i].field_6)
continue;
m_Slots[i].dwThread = _beginthread(DownloadThreadProc, 0, &m_Slots[i]);
if(m_Slots[i].dwThread == -1)
{
m_Slots[i].field_6 = 0;
m_Slots[i].field_10D = 1;
m_Slots[i].field_10E = -1;
return false;
}
m_Slots[i].field_10E = -1;
m_Slots[i].dwSlotId = i + 1;
m_Slots[i].field_6 = 1;
m_Slots[i].field_7 = 0;
m_Slots[i].field_4 = 0;
m_Slots[i].field_10D = 0;
memset(m_Slots[i].szPath, 0, sizeof(m_Slots[i].szPath));
memset(m_Slots[i].Request, 0, sizeof(m_Slots[i].Request));
}
m_bSlotsReady = 1;
return true;
}
//----------------------------------------------------
// flags every slot for cancellation and drops the ready bit so the next
// request re-spawns the workers
void CDownloadManager::FUNC_1000C0C0()
+1
View File
@@ -31,6 +31,7 @@ public:
BYTE m_bSlotsReady;
DOWNLOAD_SLOT m_Slots[MAX_DOWNLOAD_SLOTS];
bool FUNC_1000C010(); // .text:1000C010
void FUNC_1000C0C0(); // .text:1000C0C0
};