Use type alias for all pak handle variables

* Use type alias 'RPakHandle_t'.
* Improved debug/exception messages.
This commit is contained in:
Kawe Mazidjatari 2022-08-29 17:00:50 +02:00
parent afad5b92ec
commit 23e85cae37
3 changed files with 24 additions and 24 deletions

View File

@ -664,7 +664,7 @@ int32_t RTech::OpenFile(const CHAR* szFilePath, void* unused, LONGLONG* fileSize
//-----------------------------------------------------------------------------
// Purpose: gets information about loaded pak file via pak ID
//-----------------------------------------------------------------------------
RPakLoadedInfo_t* RTech::GetPakLoadedInfo(int nPakId)
RPakLoadedInfo_t* RTech::GetPakLoadedInfo(RPakHandle_t nHandle)
{
for (int16_t i = 0; i < *s_pLoadedPakCount; ++i)
{
@ -672,13 +672,13 @@ RPakLoadedInfo_t* RTech::GetPakLoadedInfo(int nPakId)
if (!info)
continue;
if (info->m_nPakId != nPakId)
if (info->m_nHandle != nHandle)
continue;
return info;
}
Warning(eDLL_T::RTECH, "%s - Failed getting RPakLoadInfo_t for PakId '%d'\n", __FUNCTION__, nPakId);
Warning(eDLL_T::RTECH, "%s - Failed to retrieve pak info for handle '%d'\n", __FUNCTION__, nHandle);
return nullptr;
}
@ -702,7 +702,7 @@ RPakLoadedInfo_t* RTech::GetPakLoadedInfo(const char* szPakName)
return info;
}
Warning(eDLL_T::RTECH, "%s - Failed getting RPakLoadInfo_t for Pak '%s'\n", __FUNCTION__, szPakName);
Warning(eDLL_T::RTECH, "%s - Failed to retrieve pak info for name '%s'\n", __FUNCTION__, szPakName);
return nullptr;
}

View File

@ -416,7 +416,7 @@ static std::map<uint16_t, DXGI_FORMAT> rpakToDxgiFormat {
class RPakLoadedInfo_t
{
public:
int32_t m_nPakId; //0x0000
RPakHandle_t m_nHandle; //0x0000
RPakStatus_t m_nStatus; //0x0004
uint64_t m_nUnk1; //0x0008
uint32_t m_nUnk2; //0x0010
@ -469,7 +469,7 @@ public:
uint64_t __fastcall StringToGuid(const char* pData);
uint8_t __fastcall DecompressPakFile(RPakDecompState_t* state, uint64_t inLen, uint64_t outLen);
uint64_t __fastcall DecompressPakFileInit(RPakDecompState_t* state, uint8_t* fileBuffer, uint64_t fileSize, uint64_t offNoHeader, uint64_t headerSize);
RPakLoadedInfo_t* GetPakLoadedInfo(int nPakId);
RPakLoadedInfo_t* GetPakLoadedInfo(RPakHandle_t nPakId);
RPakLoadedInfo_t* GetPakLoadedInfo(const char* szPakName);
static int32_t OpenFile(const CHAR* szFilePath, void* unused, LONGLONG* fileSizeOut);

View File

@ -185,7 +185,7 @@ void Host_KickID_f(const CCommand& args)
}
catch (std::exception& e)
{
Error(eDLL_T::SERVER, false, "%s - sv_kickid requires a handle or platform id. You can get the handle with the 'status' command.\n Error: %s", __FUNCTION__, e.what());
Error(eDLL_T::SERVER, false, "%s - %s", __FUNCTION__, e.what());
return;
}
}
@ -296,7 +296,7 @@ void Host_BanID_f(const CCommand& args)
}
catch (std::exception& e)
{
Error(eDLL_T::SERVER, false, "%s - Ban error:\n%s\n", __FUNCTION__, e.what());
Error(eDLL_T::SERVER, false, "%s - %s", __FUNCTION__, e.what());
return;
}
}
@ -332,7 +332,7 @@ void Host_Unban_f(const CCommand& args)
}
catch (std::exception& e)
{
Error(eDLL_T::SERVER, false, "%s - Unban error:\n%s\n", __FUNCTION__, e.what());
Error(eDLL_T::SERVER, false, "%s - %s", __FUNCTION__, e.what());
return;
}
}
@ -393,7 +393,7 @@ void Pak_ListPaks_f(const CCommand& args)
rpakStatus = it->second;
// todo: make status into a string from an array/vector
DevMsg(eDLL_T::RTECH, "| %02i | %-50s | %-36s | %11i |\n", info.m_nPakId, info.m_pszFileName, rpakStatus.c_str(), info.m_nAssetCount);
DevMsg(eDLL_T::RTECH, "| %02i | %-50s | %-36s | %11i |\n", info.m_nHandle, info.m_pszFileName, rpakStatus.c_str(), info.m_nAssetCount);
nActuallyLoaded++;
}
DevMsg(eDLL_T::RTECH, "|----|----------------------------------------------------|--------------------------------------|-------------|\n");
@ -417,16 +417,16 @@ void Pak_RequestUnload_f(const CCommand& args)
{
if (args.HasOnlyDigits(1))
{
RPakHandle_t nPakId = std::stoi(args.Arg(1));
RPakLoadedInfo_t* pakInfo = g_pRTech->GetPakLoadedInfo(nPakId);
RPakHandle_t pakHandle = std::stoi(args.Arg(1));
RPakLoadedInfo_t* pakInfo = g_pRTech->GetPakLoadedInfo(pakHandle);
if (!pakInfo)
{
throw std::exception("Found no pak entry for specified ID.");
throw std::exception("Found no pak entry for specified handle.");
}
string pakName = pakInfo->m_pszFileName;
!pakName.empty() ? DevMsg(eDLL_T::RTECH, "Requested pak unload for '%s'\n", pakName.c_str()) : DevMsg(eDLL_T::RTECH, "Requested Pak Unload for '%d'\n", nPakId);
g_pakLoadApi->UnloadPak(nPakId);
!pakName.empty() ? DevMsg(eDLL_T::RTECH, "Requested pak unload for file '%s'\n", pakName.c_str()) : DevMsg(eDLL_T::RTECH, "Requested pak unload for handle '%d'\n", pakHandle);
g_pakLoadApi->UnloadPak(pakHandle);
}
else
{
@ -436,8 +436,8 @@ void Pak_RequestUnload_f(const CCommand& args)
throw std::exception("Found no pak entry for specified name.");
}
DevMsg(eDLL_T::RTECH, "Requested pak unload for '%s'\n", args.Arg(1));
g_pakLoadApi->UnloadPak(pakInfo->m_nPakId);
DevMsg(eDLL_T::RTECH, "Requested pak unload for file '%s'\n", args.Arg(1));
g_pakLoadApi->UnloadPak(pakInfo->m_nHandle);
}
}
catch (std::exception& e)
@ -468,16 +468,16 @@ void Pak_Swap_f(const CCommand& args)
try
{
string pakName;
RPakHandle_t nPakId = 0;
RPakHandle_t pakHandle = 0;
RPakLoadedInfo_t* pakInfo = nullptr;
if (args.HasOnlyDigits(1))
{
nPakId = std::stoi(args.Arg(1));
pakInfo = g_pRTech->GetPakLoadedInfo(nPakId);
pakHandle = std::stoi(args.Arg(1));
pakInfo = g_pRTech->GetPakLoadedInfo(pakHandle);
if (!pakInfo)
{
throw std::exception("Found no pak entry for specified ID.");
throw std::exception("Found no pak entry for specified handle.");
}
pakName = pakInfo->m_pszFileName;
@ -491,12 +491,12 @@ void Pak_Swap_f(const CCommand& args)
throw std::exception("Found no pak entry for specified name.");
}
nPakId = pakInfo->m_nPakId;
pakHandle = pakInfo->m_nHandle;
}
!pakName.empty() ? DevMsg(eDLL_T::RTECH, "Requested pak swap for '%s'\n", pakName.c_str()) : DevMsg(eDLL_T::RTECH, "Requested pak swap for '%d'\n", nPakId);
!pakName.empty() ? DevMsg(eDLL_T::RTECH, "Requested pak swap for file '%s'\n", pakName.c_str()) : DevMsg(eDLL_T::RTECH, "Requested pak swap for handle '%d'\n", pakHandle);
g_pakLoadApi->UnloadPak(nPakId);
g_pakLoadApi->UnloadPak(pakHandle);
while (pakInfo->m_nStatus != RPakStatus_t::PAK_STATUS_FREED) // Wait till this slot gets free'd.
std::this_thread::sleep_for(std::chrono::seconds(1));