Used shared pointers and string streams to read data from the CEterPackManager

This commit is contained in:
2024-12-24 06:54:43 +02:00
parent 603f2207ef
commit c21c99393d
50 changed files with 363 additions and 3668 deletions

View File

@ -33,13 +33,12 @@ bool CPythonNetworkStream::IsInsultIn(const char* c_szMsg)
bool CPythonNetworkStream::LoadInsultList(const char* c_szInsultListFileName)
{
CMappedFile file;
const VOID* pvData;
if (!CEterPackManager::Instance().Get(file, c_szInsultListFileName, &pvData))
CEterPackManager::TPackDataPtr data;
CMemoryTextFileLoader kMemTextFileLoader;
if (!CEterPackManager::Instance().Get(c_szInsultListFileName, data))
return false;
CMemoryTextFileLoader kMemTextFileLoader;
kMemTextFileLoader.Bind(file.Size(), pvData);
kMemTextFileLoader.Bind(data->size(), data->data());
m_kInsultChecker.Clear();
for (DWORD dwLineIndex=0; dwLineIndex<kMemTextFileLoader.GetLineCount(); ++dwLineIndex)
@ -55,9 +54,8 @@ bool CPythonNetworkStream::LoadConvertTable(DWORD dwEmpireID, const char* c_szFi
if (dwEmpireID<1 || dwEmpireID>=4)
return false;
CMappedFile file;
const VOID* pvData;
if (!CEterPackManager::Instance().Get(file, c_szFileName, &pvData))
std::stringstream data;
if (!CEterPackManager::Instance().Get(c_szFileName, data))
return false;
DWORD dwEngCount=26;
@ -65,16 +63,17 @@ bool CPythonNetworkStream::LoadConvertTable(DWORD dwEmpireID, const char* c_szFi
DWORD dwHanSize=dwHanCount*2;
DWORD dwFileSize=dwEngCount*2+dwHanSize;
if (file.Size()<dwFileSize)
if (data.str().length() < dwFileSize)
return false;
char* pcData=(char*)pvData;
STextConvertTable& rkTextConvTable=m_aTextConvTable[dwEmpireID-1];
memcpy(rkTextConvTable.acUpper, pcData, dwEngCount);pcData+=dwEngCount;
memcpy(rkTextConvTable.acLower, pcData, dwEngCount);pcData+=dwEngCount;
memcpy(rkTextConvTable.aacHan, pcData, dwHanSize);
data.read((char*)rkTextConvTable.acUpper, dwEngCount);
data.read((char*)rkTextConvTable.acLower, dwEngCount);
data.read((char*)rkTextConvTable.aacHan, dwHanSize);
if (!data)
return false;
return true;
}