#include "Contents/UserData/AccountLinkedUserDataLoadAsyncWork.h" #include "Contents/UserData/AccountLinkedUserDataSaveAsyncWork.h" #include "Contents/Async/AsyncWorkRecycleObjectPoolMgr.h" #include "Contents/Party/ChangePartyMasterAsyncWork.h" #include "Contents/UserData/CharacterLinkedUserDataLoadAsyncWork.h" #include "Contents/UserData/CharacterLinkedUserDataSaveAsyncWork.h" #include "Contents/Emblems/EmblemDataDownloadAsyncWork.h" #include "Contents/Emblems/EmblemDataUploadAsyncWork.h" #include "Contents/Party/LoadMyPartyAsyncWork.h" #include "Contents/Party/LoadPartyInfoAsyncWork.h" #include "Contents/Party/LoadPartyListAsyncWork.h" #include "Contents/Store/MCStoreInfoBackupAsyncWork.h" #include "Contents/Party/RegisterPartyAsyncWork.h" #include "Contents/Party/StopRecruitingAsyncWork.h" #include #include extern template void std::deque::push_back(CAccountLinkedUserDataLoadAsyncWork*&&); extern template void std::deque::push_back(CAccountLinkedUserDataSaveAsyncWork*&&); extern template void std::deque::push_back(CChangePartyMasterAsyncWork*&&); extern template void std::deque::push_back(CCharacterLinkedUserDataLoadAsyncWork*&&); extern template void std::deque::push_back(CCharacterLinkedUserDataSaveAsyncWork*&&); extern template void std::deque::push_back(CEmblemDataDownloadAsyncWork*&&); extern template void std::deque::push_back(CEmblemDataUploadAsyncWork*&&); extern template void std::deque::push_back(CLoadMyPartyAsyncWork*&&); extern template void std::deque::push_back(CLoadPartyInfoAsyncWork*&&); extern template void std::deque::push_back(CLoadPartyListAsyncWork*&&); extern template void std::deque::push_back(CMCStoreInfoBackupSaveAsyncWork*&&); extern template void std::deque::push_back(CMCStoreInfoBackupLoadAsyncWork*&&); extern template void std::deque::push_back(CRegisterPartyAsyncWork*&&); extern template void std::deque::push_back(CStopRecruitingAsyncWork*&&); // OFFSET: 0x00576660 // FUNCTION: fn_02531 CAsyncWorkRecycleObjectPoolMgr::CAsyncWorkRecycleObjectPoolMgr() : m_registered(false) { if (this->RegisterPools()) { this->m_registered = true; } } // INLINED CAsyncWorkRecycleObjectPoolMgr::~CAsyncWorkRecycleObjectPoolMgr() { for (const auto& entry : this->m_pools) { delete entry.second; } } // OFFSET: 0x00578F30 // FUNCTION: fn_02566 bool CAsyncWorkRecycleObjectPoolMgr::RegisterPools() { if (!this->m_pools.insert(std::make_pair("AccountLinkedUserData_Load", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("AccountLinkedUserData_Save", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("CharacterLinkedUserData_Load", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("CharacterLinkedUserData_Save", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("Emblem_Upload", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("Emblem_Download", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("MerchantStoreInformation_Load", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("MerchantStoreInformation_Save", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("PartyList_Load", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("MyParty_Load", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("Register_Party", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("Stop_Recruiting", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("Change_PartyMaster", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } if (!this->m_pools.insert(std::make_pair("PartyInfo_Load", new (std::nothrow) NRecycleObjectPool(2))).second) { return false; } return true; }