diff --git a/primedev/core/math/bitbuf.h b/primedev/core/math/bitbuf.h index 5246a6465..6992362b8 100644 --- a/primedev/core/math/bitbuf.h +++ b/primedev/core/math/bitbuf.h @@ -554,7 +554,7 @@ class BFRead : public BitBufferBase while (1) { - char val = ReadChar(); + char val = (char)ReadChar(); if (val == 0) break; @@ -745,7 +745,7 @@ class BFWrite : public BitBufferBase INLINE int GetNumBitsLeft() { - return m_OutBitsLeft + (32 * (m_DataEnd - m_DataOut - 1)); + return (int)(m_OutBitsLeft + (32 * (m_DataEnd - m_DataOut - 1))); } INLINE void Reset() @@ -918,7 +918,7 @@ class BFWrite : public BitBufferBase INLINE i32 GetNumBitsWritten() { - return (32 - m_OutBitsLeft) + (32 * (m_DataOut - m_Data)); + return (i32)((32 - m_OutBitsLeft) + (32 * (m_DataOut - m_Data))); } INLINE i32 GetNumBytesWritten() diff --git a/primedev/dllmain.cpp b/primedev/dllmain.cpp index a656dac7a..10624df8b 100644 --- a/primedev/dllmain.cpp +++ b/primedev/dllmain.cpp @@ -18,7 +18,7 @@ #include #include -BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) +BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID /*lpReserved*/) { switch (ul_reason_for_call) { diff --git a/primedev/masterserver/masterserver.cpp b/primedev/masterserver/masterserver.cpp index 499259e57..4c1663fe6 100644 --- a/primedev/masterserver/masterserver.cpp +++ b/primedev/masterserver/masterserver.cpp @@ -618,7 +618,7 @@ void MasterServerManager::AuthenticateWithServer(const char* uid, const char* pl std::string passwordStr(password); std::thread requestThread( - [this, uidStr, tokenStr, serverIdStr, passwordStr, server]() + [&]() { // esnure that any persistence saving is done, so we know masterserver has newest while (m_bSavingPersistentData) @@ -635,7 +635,7 @@ void MasterServerManager::AuthenticateWithServer(const char* uid, const char* pl curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer); { - char* escapedPassword = curl_easy_escape(curl, passwordStr.c_str(), passwordStr.length()); + char* escapedPassword = curl_easy_escape(curl, passwordStr.c_str(), (int)passwordStr.length()); curl_easy_setopt( curl, @@ -734,6 +734,8 @@ void MasterServerManager::AuthenticateWithServer(const char* uid, const char* pl m_bSuccessfullyAuthenticatedWithGameServer = false; m_bScriptAuthenticatingWithGameServer = false; } + + return; }); requestThread.detach(); diff --git a/primedev/mods/autodownload/moddownloader.cpp b/primedev/mods/autodownload/moddownloader.cpp index 950b405c4..821e2d942 100644 --- a/primedev/mods/autodownload/moddownloader.cpp +++ b/primedev/mods/autodownload/moddownloader.cpp @@ -155,7 +155,6 @@ std::optional ModDownloader::FetchModFromDistantStore(std::string_view modState.state = DOWNLOADING; // Download the actual archive - bool failed = false; FILE* fp = fopen(downloadPath.generic_string().c_str(), "wb"); CURLcode result; CURL* easyhandle; @@ -288,7 +287,7 @@ bool ModDownloader::IsModLegit(fs::path modPath, std::string_view expectedChecks std::streamsize bytesRead = fp.gcount(); if (bytesRead > 0) { - status = BCryptHashData(hashHandle, (PBYTE)buffer.data(), bytesRead, 0); + status = BCryptHashData(hashHandle, (PUCHAR)buffer.data(), (ULONG)bytesRead, 0); if (!NT_SUCCESS(status)) { modState.state = MOD_CORRUPTED; diff --git a/primedev/mods/modsavefiles.cpp b/primedev/mods/modsavefiles.cpp index 1af7f43c5..779069050 100644 --- a/primedev/mods/modsavefiles.cpp +++ b/primedev/mods/modsavefiles.cpp @@ -530,7 +530,7 @@ ADD_SQFUNC("int", NSGetTotalSpaceRemaining, "", "", ScriptContext::CLIENT | Scri { Mod* mod = g_pSquirrel->getcallingmod(sqvm); fs::path dir = savePath / fs::path(mod->m_ModDirectory).filename(); - g_pSquirrel->pushinteger(sqvm, (MAX_FOLDER_SIZE - GetSizeOfFolder(dir)) / 1024); + g_pSquirrel->pushinteger(sqvm, (MAX_FOLDER_SIZE - (int)GetSizeOfFolder(dir)) / 1024); return SQRESULT_NOTNULL; } diff --git a/primedev/pch.h b/primedev/pch.h index 8a03b857c..5be26b593 100644 --- a/primedev/pch.h +++ b/primedev/pch.h @@ -29,6 +29,8 @@ typedef void (*callable_v)(void* v); #define assert_msg(exp, msg) assert((exp, msg)) //clang-format on +#define NOTE_UNUSED(unusedVar) (void)unusedVar; + #include "core/macros.h" #include "core/math/color.h" diff --git a/primedev/plugins/plugins.cpp b/primedev/plugins/plugins.cpp index 67d1d03de..a92a85a32 100644 --- a/primedev/plugins/plugins.cpp +++ b/primedev/plugins/plugins.cpp @@ -187,7 +187,7 @@ std::optional PluginManager::LoadPlugin(fs::path path, PluginInitFuncs* plugin.run_frame = (PLUGIN_RUNFRAME)GetProcAddress(pluginLib, "PLUGIN_RUNFRAME"); - plugin.handle = m_vLoadedPlugins.size(); + plugin.handle = (int)m_vLoadedPlugins.size(); plugin.logger = std::make_shared(plugin.displayName.c_str(), NS::Colors::PLUGIN); RegisterLogger(plugin.logger); NS::log::PLUGINSYS->info("Loading plugin {} version {}", plugin.displayName, plugin.version); diff --git a/primedev/scripts/client/clientchathooks.cpp b/primedev/scripts/client/clientchathooks.cpp index e084f47e9..dbccb4412 100644 --- a/primedev/scripts/client/clientchathooks.cpp +++ b/primedev/scripts/client/clientchathooks.cpp @@ -33,7 +33,7 @@ void, __fastcall, (void* self, const char* message, int inboxId, bool isTeam, bo RemoveAsciiControlSequences(const_cast(message), true); SQRESULT result = g_pSquirrel->Call( - "CHudChat_ProcessMessageStartThread", static_cast(senderId) - 1, payload, isTeam, isDead, type); + "CHudChat_ProcessMessageStartThread", senderId - 1, payload, isTeam, isDead, type); if (result == SQRESULT_ERROR) for (CHudChat* hud = *CHudChat::allHuds; hud != NULL; hud = hud->next) CHudChat__AddGameLine(hud, message, inboxId, isTeam, isDead); diff --git a/primedev/scripts/client/scriptmainmenupromos.cpp b/primedev/scripts/client/scriptmainmenupromos.cpp index ecb47af77..61b932773 100644 --- a/primedev/scripts/client/scriptmainmenupromos.cpp +++ b/primedev/scripts/client/scriptmainmenupromos.cpp @@ -23,6 +23,7 @@ enum eMainMenuPromoDataProperty }; ADD_SQFUNC("void", NSRequestCustomMainMenuPromos, "", "", ScriptContext::UI) { + NOTE_UNUSED(sqvm) g_pMasterServerManager->RequestMainMenuPromos(); return SQRESULT_NULL; } diff --git a/primedev/scripts/client/scriptmodmenu.cpp b/primedev/scripts/client/scriptmodmenu.cpp index a88478fb7..844197716 100644 --- a/primedev/scripts/client/scriptmodmenu.cpp +++ b/primedev/scripts/client/scriptmodmenu.cpp @@ -160,6 +160,7 @@ ADD_SQFUNC( ADD_SQFUNC("void", NSReloadMods, "", "", ScriptContext::UI) { + NOTE_UNUSED(sqvm) g_pModManager->LoadMods(); return SQRESULT_NULL; } diff --git a/primedev/scripts/client/scriptserverbrowser.cpp b/primedev/scripts/client/scriptserverbrowser.cpp index a142c3f4e..2e46653d7 100644 --- a/primedev/scripts/client/scriptserverbrowser.cpp +++ b/primedev/scripts/client/scriptserverbrowser.cpp @@ -8,6 +8,7 @@ ADD_SQFUNC("void", NSRequestServerList, "", "", ScriptContext::UI) { + NOTE_UNUSED(sqvm) g_pMasterServerManager->RequestServerList(); return SQRESULT_NULL; } @@ -26,12 +27,13 @@ ADD_SQFUNC("bool", NSMasterServerConnectionSuccessful, "", "", ScriptContext::UI ADD_SQFUNC("int", NSGetServerCount, "", "", ScriptContext::UI) { - g_pSquirrel->pushinteger(sqvm, g_pMasterServerManager->m_vRemoteServers.size()); + g_pSquirrel->pushinteger(sqvm, (SQInteger)g_pMasterServerManager->m_vRemoteServers.size()); return SQRESULT_NOTNULL; } ADD_SQFUNC("void", NSClearRecievedServerList, "", "", ScriptContext::UI) { + NOTE_UNUSED(sqvm) g_pMasterServerManager->ClearServerList(); return SQRESULT_NULL; } @@ -114,6 +116,7 @@ ADD_SQFUNC("void", NSConnectToAuthedServer, "", "", ScriptContext::UI) ADD_SQFUNC("void", NSTryAuthWithLocalServer, "", "", ScriptContext::UI) { + NOTE_UNUSED(sqvm) // do auth request g_pMasterServerManager->AuthenticateWithOwnServer(g_pLocalPlayerUserID, g_pMasterServerManager->m_sOwnClientAuthToken); @@ -122,6 +125,7 @@ ADD_SQFUNC("void", NSTryAuthWithLocalServer, "", "", ScriptContext::UI) ADD_SQFUNC("void", NSCompleteAuthWithLocalServer, "", "", ScriptContext::UI) { + NOTE_UNUSED(sqvm) // literally just set serverfilter // note: this assumes we have no authdata other than our own if (g_pServerAuthentication->m_RemoteAuthenticationData.size()) @@ -139,7 +143,7 @@ ADD_SQFUNC("string", NSGetAuthFailReason, "", "", ScriptContext::UI) ADD_SQFUNC("array", NSGetGameServers, "", "", ScriptContext::UI) { g_pSquirrel->newarray(sqvm, 0); - for (size_t i = 0; i < g_pMasterServerManager->m_vRemoteServers.size(); i++) + for (SQInteger i = 0; i < (SQInteger)g_pMasterServerManager->m_vRemoteServers.size(); i++) { const RemoteServerInfo& remoteServer = g_pMasterServerManager->m_vRemoteServers[i]; diff --git a/primedev/scripts/scriptdatatables.cpp b/primedev/scripts/scriptdatatables.cpp index 87a26dca0..a3b0e3bc8 100644 --- a/primedev/scripts/scriptdatatables.cpp +++ b/primedev/scripts/scriptdatatables.cpp @@ -308,7 +308,7 @@ REPLACE_SQFUNC(GetDataTableRowCount, (ScriptContext::UI | ScriptContext::CLIENT return g_pSquirrel->m_funcOriginals["GetDatatableRowCount"](sqvm); CSVData* csv = *pData; - g_pSquirrel->pushinteger(sqvm, csv->dataPointers.size()); + g_pSquirrel->pushinteger(sqvm, (SQInteger)csv->dataPointers.size()); return SQRESULT_NOTNULL; } @@ -732,7 +732,7 @@ std::string DataTableToString(Datatable* datatable) { sCSVString += '\n'; - bool bShouldComma = false; + bShouldComma = false; for (int col = 0; col < datatable->numColumns; col++) { if (bShouldComma) @@ -815,7 +815,7 @@ void ConCommand_dump_datatable(const CCommand& args) DumpDatatable(args.Arg(1)); } -void ConCommand_dump_datatables(const CCommand& args) +void ConCommand_dump_datatables(const CCommand& /*args*/) { // likely not a comprehensive list, might be missing a couple? static const std::vector VANILLA_DATATABLE_PATHS = { diff --git a/primedev/scripts/scripthttprequesthandler.cpp b/primedev/scripts/scripthttprequesthandler.cpp index aa75127a6..69828a5a2 100644 --- a/primedev/scripts/scripthttprequesthandler.cpp +++ b/primedev/scripts/scripthttprequesthandler.cpp @@ -320,11 +320,11 @@ template int HttpRequestHandler::MakeHttpRequest(const H bool isFirstValue = true; for (const auto& kv : requestParameters.queryParameters) { - char* key = curl_easy_escape(curl, kv.first.c_str(), kv.first.length()); + char* key = curl_easy_escape(curl, kv.first.c_str(), (int)kv.first.length()); for (const std::string& queryValue : kv.second) { - char* value = curl_easy_escape(curl, queryValue.c_str(), queryValue.length()); + char* value = curl_easy_escape(curl, queryValue.c_str(), (int)queryValue.length()); if (isFirstValue && !bUrlContainsQuery) { diff --git a/primedev/server/auth/bansystem.cpp b/primedev/server/auth/bansystem.cpp index 6e4d16447..54e76e1c6 100644 --- a/primedev/server/auth/bansystem.cpp +++ b/primedev/server/auth/bansystem.cpp @@ -211,7 +211,7 @@ void ConCommand_unban(const CCommand& args) g_pBanSystem->UnbanUID(strtoull(args.Arg(1), nullptr, 10)); } -void ConCommand_clearbanlist(const CCommand& args) +void ConCommand_clearbanlist(const CCommand& /*args*/) { g_pBanSystem->ClearBanlist(); } @@ -222,8 +222,8 @@ int ConCommand_banCompletion(const char* const partial, char commands[COMMAND_CO const char* cmdName = partial; const char* query = partial + (space == nullptr ? 0 : space - partial) + 1; - const int queryLength = strlen(query); - const int cmdLength = strlen(cmdName) - queryLength; + const size_t queryLength = strlen(query); + const size_t cmdLength = strlen(cmdName) - queryLength; int numCompletions = 0; for (int i = 0; i < GetMaxPlayers() && numCompletions < COMMAND_COMPLETION_MAXITEMS - 2; i++) diff --git a/primedev/server/auth/serverauthentication.cpp b/primedev/server/auth/serverauthentication.cpp index 0d46426fe..27052131f 100644 --- a/primedev/server/auth/serverauthentication.cpp +++ b/primedev/server/auth/serverauthentication.cpp @@ -93,7 +93,6 @@ bool ServerAuthenticationManager::IsDuplicateAccount(CBaseClient* pPlayer, const if (m_bAllowDuplicateAccounts) return false; - bool bHasUidPlayer = false; for (int i = 0; i < g_pGlobals->m_nMaxClients; i++) if (&g_pClientArray[i] != pPlayer && !strcmp(pPlayerUid, g_pClientArray[i].m_UID)) return true; @@ -291,7 +290,7 @@ void,, (CBaseClient* self)) { g_pServerAuthentication->m_bForceResetLocalPlayerPersistence = false; g_pServerAuthentication->WritePersistentData(self); - g_pServerPresence->SetPlayerCount(g_pServerAuthentication->m_PlayerAuthenticationData.size()); + g_pServerPresence->SetPlayerCount((int)g_pServerAuthentication->m_PlayerAuthenticationData.size()); } CBaseClient__ActivatePlayer(self); @@ -326,12 +325,12 @@ void,, (CBaseClient* self, uint32_t unknownButAlways1, const char* pReason, ...) g_pServerLimits->RemovePlayer(self); } - g_pServerPresence->SetPlayerCount(g_pServerAuthentication->m_PlayerAuthenticationData.size()); + g_pServerPresence->SetPlayerCount((int)g_pServerAuthentication->m_PlayerAuthenticationData.size()); _CBaseClient__Disconnect(self, unknownButAlways1, buf); } -void ConCommand_ns_resetpersistence(const CCommand& args) +void ConCommand_ns_resetpersistence(const CCommand& /*args*/) { if (*g_pServerState == server_state_t::ss_active) { diff --git a/primedev/server/servernethooks.cpp b/primedev/server/servernethooks.cpp index 148b735fa..6521bb789 100644 --- a/primedev/server/servernethooks.cpp +++ b/primedev/server/servernethooks.cpp @@ -7,6 +7,8 @@ #include #include +#define STATUS_SUCCESS 0 // taken from ntstatus.h but redefinition errors + AUTOHOOK_INIT() static ConVar* Cvar_net_debug_atlas_packet; @@ -21,13 +23,13 @@ static bool InitHMACSHA256() DWORD hashLength = 0; ULONG hashLengthSz = 0; - if ((status = BCryptOpenAlgorithmProvider(&HMACSHA256, BCRYPT_SHA256_ALGORITHM, NULL, BCRYPT_ALG_HANDLE_HMAC_FLAG))) + if ((status = BCryptOpenAlgorithmProvider(&HMACSHA256, BCRYPT_SHA256_ALGORITHM, NULL, BCRYPT_ALG_HANDLE_HMAC_FLAG)) != STATUS_SUCCESS) { spdlog::error("failed to initialize HMAC-SHA256: BCryptOpenAlgorithmProvider: error 0x{:08X}", (ULONG)status); return false; } - if ((status = BCryptGetProperty(HMACSHA256, BCRYPT_HASH_LENGTH, (PUCHAR)&hashLength, sizeof(hashLength), &hashLengthSz, 0))) + if ((status = BCryptGetProperty(HMACSHA256, BCRYPT_HASH_LENGTH, (PUCHAR)&hashLength, sizeof(hashLength), &hashLengthSz, 0)) != STATUS_SUCCESS) { spdlog::error("failed to initialize HMAC-SHA256: BCryptGetProperty(BCRYPT_HASH_LENGTH): error 0x{:08X}", (ULONG)status); return false; @@ -51,19 +53,19 @@ static bool VerifyHMACSHA256(std::string key, std::string sig, std::string data) NTSTATUS status; BCRYPT_HASH_HANDLE h = NULL; - if ((status = BCryptCreateHash(HMACSHA256, &h, NULL, 0, (PUCHAR)key.c_str(), (ULONG)key.length(), 0))) + if ((status = BCryptCreateHash(HMACSHA256, &h, NULL, 0, (PUCHAR)key.c_str(), (ULONG)key.length(), 0)) != STATUS_SUCCESS) { spdlog::error("failed to verify HMAC-SHA256: BCryptCreateHash: error 0x{:08X}", (ULONG)status); goto cleanup; } - if ((status = BCryptHashData(h, (PUCHAR)data.c_str(), (ULONG)data.length(), 0))) + if ((status = BCryptHashData(h, (PUCHAR)data.c_str(), (ULONG)data.length(), 0)) != STATUS_SUCCESS) { spdlog::error("failed to verify HMAC-SHA256: BCryptHashData: error 0x{:08X}", (ULONG)status); goto cleanup; } - if ((status = BCryptFinishHash(h, (PUCHAR)&hash, (ULONG)sizeof(hash), 0))) + if ((status = BCryptFinishHash(h, (PUCHAR)&hash, (ULONG)sizeof(hash), 0)) != STATUS_SUCCESS) { spdlog::error("failed to verify HMAC-SHA256: BCryptFinishHash: error 0x{:08X}", (ULONG)status); goto cleanup; diff --git a/primedev/server/serverpresence.cpp b/primedev/server/serverpresence.cpp index 159b9f30a..7978221ef 100644 --- a/primedev/server/serverpresence.cpp +++ b/primedev/server/serverpresence.cpp @@ -41,10 +41,10 @@ std::string UnescapeUnicode(const std::string& str) last_match = *i; result.append(last_match.prefix()); unsigned int cp = 0; - for (int i = 2; i <= 5; ++i) + for (int j = 2; j <= 5; ++j) { cp *= 16; - cp += hctod(last_match.str()[i]); + cp += hctod(last_match.str()[j]); } if (cp <= 0x7F) { @@ -78,18 +78,18 @@ void ServerPresenceManager::CreateConVars() Cvar_ns_server_presence_update_rate = new ConVar( "ns_server_presence_update_rate", "5000", FCVAR_GAMEDLL, "How often we update our server's presence on server lists in ms"); - Cvar_ns_server_name = new ConVar("ns_server_name", "Unnamed Northstar Server", FCVAR_GAMEDLL, "This server's name", false, 0, false, 0, [](ConVar* cvar, const char* pOldValue, float flOldValue) { + Cvar_ns_server_name = new ConVar("ns_server_name", "Unnamed Northstar Server", FCVAR_GAMEDLL, "This server's name", false, 0, false, 0, [](ConVar* /*cvar*/, const char* /*pOldValue*/, float /*flOldValue*/) { g_pServerPresence->SetName(UnescapeUnicode(g_pServerPresence->Cvar_ns_server_name->GetString())); // update engine hostname cvar Cvar_hostname->SetValue(g_pServerPresence->Cvar_ns_server_name->GetString()); }); - Cvar_ns_server_desc = new ConVar("ns_server_desc", "Default server description", FCVAR_GAMEDLL, "This server's description", false, 0, false, 0, [](ConVar* cvar, const char* pOldValue, float flOldValue) { + Cvar_ns_server_desc = new ConVar("ns_server_desc", "Default server description", FCVAR_GAMEDLL, "This server's description", false, 0, false, 0, [](ConVar* /*cvar*/, const char* /*pOldValue*/, float /*flOldValue*/) { g_pServerPresence->SetDescription(UnescapeUnicode(g_pServerPresence->Cvar_ns_server_desc->GetString())); }); - Cvar_ns_server_password = new ConVar("ns_server_password", "", FCVAR_GAMEDLL, "This server's password", false, 0, false, 0, [](ConVar* cvar, const char* pOldValue, float flOldValue) { + Cvar_ns_server_password = new ConVar("ns_server_password", "", FCVAR_GAMEDLL, "This server's password", false, 0, false, 0, [](ConVar* /*cvar*/, const char* /*pOldValue*/, float /*flOldValue*/) { g_pServerPresence->SetPassword(g_pServerPresence->Cvar_ns_server_password->GetString()); }); diff --git a/primedev/shared/exploit_fixes/exploitfixes.cpp b/primedev/shared/exploit_fixes/exploitfixes.cpp index 8064d5aca..060db3113 100644 --- a/primedev/shared/exploit_fixes/exploitfixes.cpp +++ b/primedev/shared/exploit_fixes/exploitfixes.cpp @@ -52,7 +52,7 @@ bool, __fastcall, (void* thisptr, void* buffer)) // 48 89 5C 24 ? 48 89 6C 24 ? // This is unused ingame and a big client=>server=>client exploit vector // clang-format off AUTOHOOK(Base_CmdKeyValues_ReadFromBuffer, engine.dll + 0x220040, -bool, __fastcall, (void* thisptr, void* buffer)) // 40 55 48 81 EC ? ? ? ? 48 8D 6C 24 ? 48 89 5D 70 +bool, __fastcall, (void* /*thisptr*/, void* buffer)) // 40 55 48 81 EC ? ? ? ? 48 8D 6C 24 ? 48 89 5D 70 // clang-format on { return false; @@ -107,11 +107,11 @@ bool, __fastcall, (void* pMsg)) // 48 8B D1 48 8B 49 18 48 8B 01 48 FF 60 10 { // Find null terminators bool nameValid = false, valValid = false; - for (int i = 0; i < ENTRY_STR_LEN; i++) + for (int j = 0; j < ENTRY_STR_LEN; j++) { - if (!entry->name[i]) + if (!entry->name[j]) nameValid = true; - if (!entry->val[i]) + if (!entry->val[j]) valValid = true; } @@ -247,9 +247,14 @@ void, __fastcall, (void* buf, void* pCmd_move, void* pCmd_from)) // 4C 89 44 24 // Fix any gameplay-affecting cmd properties // NOTE: Currently tickcount/frametime is set to 0, this ~shouldn't~ cause any problems - cmd->worldViewAngles = cmd->localViewAngles = cmd->attackangles = cmd->cameraAngles = {0, 0, 0}; - cmd->tick_count = cmd->frameTime = 0; - cmd->move = cmd->cameraPos = {0, 0, 0}; + cmd->worldViewAngles = {0, 0, 0}; + cmd->localViewAngles = {0, 0, 0}; + cmd->attackangles = {0, 0, 0}; + cmd->cameraAngles = {0, 0, 0}; + cmd->tick_count = 0; + cmd->frameTime = 0.0f; + cmd->move = {0, 0, 0}; + cmd->cameraPos = {0, 0, 0}; cmd->buttons = 0; cmd->meleetarget = 0; } @@ -262,7 +267,7 @@ bool, __fastcall, (const char* pModName)) // 48 83 EC 28 48 8B 0D ? ? ? ? 48 8D // clang-format on { // somewhat temp, store the modname here, since we don't have a proper ptr in engine to it rn - int iSize = strlen(pModName); + size_t iSize = strlen(pModName); g_pModName = new char[iSize + 1]; strcpy(g_pModName, pModName); @@ -323,7 +328,7 @@ bool, __fastcall, (CBaseClient* self, uint32_t unknown, const char* pCommandStri "load_recent_checkpoint" // This is the instant-respawn exploit, literally just calls RespawnPlayer() }; - int iCmdLength = strlen(tempCommand.Arg(0)); + size_t iCmdLength = strlen(tempCommand.Arg(0)); bool bIsBadCommand = false; for (auto& blockedCommand : blockedCommands) diff --git a/primedev/shared/exploit_fixes/exploitfixes_lzss.cpp b/primedev/shared/exploit_fixes/exploitfixes_lzss.cpp index ccb6ac18f..4083050d1 100644 --- a/primedev/shared/exploit_fixes/exploitfixes_lzss.cpp +++ b/primedev/shared/exploit_fixes/exploitfixes_lzss.cpp @@ -13,7 +13,7 @@ struct lzss_header_t // out of the bounds of the output buffer. // clang-format off AUTOHOOK(CLZSS__SafeDecompress, engine.dll + 0x432A10, -unsigned int, __fastcall, (void* self, const unsigned char* pInput, unsigned char* pOutput, unsigned int unBufSize)) +unsigned int, __fastcall, (void* /*self*/, const unsigned char* pInput, unsigned char* pOutput, unsigned int unBufSize)) // clang-format on { unsigned int totalBytes = 0; @@ -36,7 +36,7 @@ unsigned int, __fastcall, (void* self, const unsigned char* pInput, unsigned cha if (cmdByte & 0x01) { - int position = *pInput++ << LZSS_LOOKSHIFT; + unsigned int position = *pInput++ << LZSS_LOOKSHIFT; position |= (*pInput >> LZSS_LOOKSHIFT); position += 1; int count = (*pInput++ & 0x0F) + 1; diff --git a/primedev/shared/exploit_fixes/exploitfixes_utf8parser.cpp b/primedev/shared/exploit_fixes/exploitfixes_utf8parser.cpp index 3d97f7501..9fda5c129 100644 --- a/primedev/shared/exploit_fixes/exploitfixes_utf8parser.cpp +++ b/primedev/shared/exploit_fixes/exploitfixes_utf8parser.cpp @@ -42,17 +42,17 @@ bool __fastcall CheckUTF8Valid(INT64* a1, DWORD* a2, char* strData) int v39; // eax int v40; // er10 DWORD v41; // er10 - INT64 v43; // r8 - INT64 v44; // rdx - INT64 v45; // rcx - INT64 v46; // rax - INT64 v47; // rax - char v48; // al - INT64 v49; // r8 - INT64 v50; // rdx - INT64 v51; // rcx - INT64 v52; // rax - INT64 v53; // rax + //INT64 v43; // r8 + //INT64 v44; // rdx + //INT64 v45; // rcx + //INT64 v46; // rax + //INT64 v47; // rax + //char v48; // al + //INT64 v49; // r8 + //INT64 v50; // rdx + //INT64 v51; // rcx + //INT64 v52; // rax + //INT64 v53; // rax v3 = a2[2]; v4 = (char*)(a1[1] + *a2); diff --git a/primedev/shared/exploit_fixes/ns_limits.cpp b/primedev/shared/exploit_fixes/ns_limits.cpp index bd855ee45..bccb36638 100644 --- a/primedev/shared/exploit_fixes/ns_limits.cpp +++ b/primedev/shared/exploit_fixes/ns_limits.cpp @@ -243,9 +243,9 @@ void, __fastcall, (void* self, CBasePlayer* player, SV_CUserCmd* pUserCmd, uint6 { PlayerLimitData* pLimitData = &g_pServerLimits->m_PlayerLimitData[pClient]; - pLimitData->flFrameUserCmdBudget = fmax(0.0, pLimitData->flFrameUserCmdBudget - pUserCmd->frameTime); + pLimitData->flFrameUserCmdBudget = fmax(0.0f, pLimitData->flFrameUserCmdBudget - pUserCmd->frameTime); - if (pLimitData->flFrameUserCmdBudget <= 0.0) + if (pLimitData->flFrameUserCmdBudget <= 0.0f) { spdlog::warn("player {} went over usercmd budget ({})", pClient->m_Name, pLimitData->flFrameUserCmdBudget); return; diff --git a/primedev/shared/maxplayers.cpp b/primedev/shared/maxplayers.cpp index 711193d4a..40533c04c 100644 --- a/primedev/shared/maxplayers.cpp +++ b/primedev/shared/maxplayers.cpp @@ -138,11 +138,11 @@ void,, (bool a1, float a2)) // clang-format on { unsigned char v3; // bl - int v5; // er14 - int i; // edi + unsigned int v5; // er14 + unsigned int i; // edi __int64 v7; // rax DWORD* v8; // rbx - int v9; // edi + unsigned int v9; // edi __int64* v10; // rsi __int64 v11; // rax int v12; // er12 @@ -153,7 +153,7 @@ void,, (bool a1, float a2)) int v17; // edx char v18; // r15 char v19; // bp - int v20; // esi + unsigned int v20; // esi __int64* v21; // rdi __int64 v22; // rcx bool v23; // al @@ -221,7 +221,7 @@ void,, (bool a1, float a2)) v14 = *(DWORD*)(globals + 52); do { - v15 = RandomIntZeroMax(); + v15 = (int)RandomIntZeroMax(); v16 = v25[v13--]; v17 = v15 % v14--; v25[v13 + 1] = v25[v17]; diff --git a/primedev/shared/misccommands.cpp b/primedev/shared/misccommands.cpp index 15da67679..f87cc5749 100644 --- a/primedev/shared/misccommands.cpp +++ b/primedev/shared/misccommands.cpp @@ -19,14 +19,14 @@ void ConCommand_force_newgame(const CCommand& arg) strncpy(g_pHostState->m_levelName, arg.Arg(1), sizeof(g_pHostState->m_levelName)); } -void ConCommand_ns_start_reauth_and_leave_to_lobby(const CCommand& arg) +void ConCommand_ns_start_reauth_and_leave_to_lobby(const CCommand& /*arg*/) { // hack for special case where we're on a local server, so we erase our own newly created auth data on disconnect g_pMasterServerManager->m_bNewgameAfterSelfAuth = true; g_pMasterServerManager->AuthenticateWithOwnServer(g_pLocalPlayerUserID, g_pMasterServerManager->m_sOwnClientAuthToken); } -void ConCommand_ns_end_reauth_and_leave_to_lobby(const CCommand& arg) +void ConCommand_ns_end_reauth_and_leave_to_lobby(const CCommand& /*arg*/) { if (g_pServerAuthentication->m_RemoteAuthenticationData.size()) g_pCVar->FindVar("serverfilter")->SetValue(g_pServerAuthentication->m_RemoteAuthenticationData.begin()->first.c_str()); @@ -60,7 +60,7 @@ void ConCommand_cvar_setdefaultvalue(const CCommand& arg) } // unfortunately no way for us to not leak memory here, as default value might not be in writeable memory by default - int nLen = strlen(arg.Arg(2)); + size_t nLen = strlen(arg.Arg(2)); char* pBuf = new char[nLen + 1]; strncpy_s(pBuf, nLen + 1, arg.Arg(2), nLen); @@ -83,7 +83,7 @@ void ConCommand_cvar_setvalueanddefaultvalue(const CCommand& arg) } // unfortunately no way for us to not leak memory here, as default value might not be in writeable memory by default - int nLen = strlen(arg.Arg(2)); + size_t nLen = strlen(arg.Arg(2)); char* pBuf = new char[nLen + 1]; strncpy_s(pBuf, nLen + 1, arg.Arg(2), nLen); diff --git a/primedev/squirrel/squirrel.cpp b/primedev/squirrel/squirrel.cpp index 43e43398a..f3c346d93 100644 --- a/primedev/squirrel/squirrel.cpp +++ b/primedev/squirrel/squirrel.cpp @@ -407,6 +407,7 @@ template void* __fastcall sq_compiler_createHook(HSquirr template SQInteger (*SQPrint)(HSquirrelVM* sqvm, const char* fmt); template SQInteger SQPrintHook(HSquirrelVM* sqvm, const char* fmt, ...) { + NOTE_UNUSED(sqvm) va_list va; va_start(va, fmt); @@ -553,14 +554,14 @@ template bool __fastcall CallScriptInitCallbackHook(void ScriptContext realContext = context; bool bShouldCallCustomCallbacks = true; - if (context == ScriptContext::CLIENT) + if constexpr (context == ScriptContext::CLIENT) { if (!strcmp(callback, "UICodeCallback_UIInit")) realContext = ScriptContext::UI; else if (strcmp(callback, "ClientCodeCallback_MapSpawn")) bShouldCallCustomCallbacks = false; } - else if (context == ScriptContext::SERVER) + else if constexpr (context == ScriptContext::SERVER) bShouldCallCustomCallbacks = !strcmp(callback, "CodeCallback_MapSpawn"); if (bShouldCallCustomCallbacks) @@ -659,7 +660,7 @@ template void SquirrelManager::ProcessMessageBu pushobject(m_pSQVM->sqvm, &functionobj); // Push the function object pushroottable(m_pSQVM->sqvm); - int argsAmount = message.args.size(); + size_t argsAmount = message.args.size(); if (message.isExternal && message.externalFunc != NULL) { @@ -674,7 +675,7 @@ template void SquirrelManager::ProcessMessageBu } } - _call(m_pSQVM->sqvm, argsAmount); + _call(m_pSQVM->sqvm, (SQInteger)argsAmount); } } diff --git a/primedev/squirrel/squirrel.h b/primedev/squirrel/squirrel.h index a4932044d..17f4186d7 100644 --- a/primedev/squirrel/squirrel.h +++ b/primedev/squirrel/squirrel.h @@ -399,7 +399,7 @@ template class SquirrelManager : public virtual Squirrel v(); } - return _call(m_pSQVM->sqvm, functionVector.size()); + return _call(m_pSQVM->sqvm, (SQInteger)functionVector.size()); } #pragma endregion @@ -470,7 +470,7 @@ template requires (std::convertible_to || std::is_constructible_v) inline VoidFunction SQMessageBufferPushArg(T& arg) { auto converted = std::string(arg); - return [converted]{ g_pSquirrel->pushstring(g_pSquirrel->m_pSQVM->sqvm, converted.c_str(), converted.length()); }; + return [converted]{ g_pSquirrel->pushstring(g_pSquirrel->m_pSQVM->sqvm, converted.c_str(), (int)converted.length()); }; } // Assets template diff --git a/primedev/util/printcommands.cpp b/primedev/util/printcommands.cpp index 34d566669..67c0c7877 100644 --- a/primedev/util/printcommands.cpp +++ b/primedev/util/printcommands.cpp @@ -52,12 +52,12 @@ void PrintCommandHelpDialogue(const ConCommandBase* command, const char* name) void TryPrintCvarHelpForCommand(const char* pCommand) { // try to display help text for an inputted command string from the console - int pCommandLen = strlen(pCommand); + size_t pCommandLen = strlen(pCommand); char* pCvarStr = new char[pCommandLen]; strcpy(pCvarStr, pCommand); // trim whitespace from right - for (int i = pCommandLen - 1; i; i--) + for (size_t i = pCommandLen - 1; i; i--) { if (isspace(pCvarStr[i])) pCvarStr[i] = '\0'; @@ -117,11 +117,11 @@ void ConCommand_find(const CCommand& arg) strncpy_s(pTempName, sizeof(pTempName), map.second->m_pszName, sizeof(pTempName) - 1); strncpy_s(pTempSearchTerm, sizeof(pTempSearchTerm), arg.Arg(i + 1), sizeof(pTempSearchTerm) - 1); - for (int i = 0; pTempName[i]; i++) - pTempName[i] = tolower(pTempName[i]); + for (int j = 0; pTempName[j]; j++) + pTempName[j] = (char)tolower(pTempName[j]); - for (int i = 0; pTempSearchTerm[i]; i++) - pTempSearchTerm[i] = tolower(pTempSearchTerm[i]); + for (int j = 0; pTempSearchTerm[j]; j++) + pTempSearchTerm[j] = (char)tolower(pTempSearchTerm[j]); if (!strstr(pTempName, pTempSearchTerm)) { @@ -151,7 +151,7 @@ void ConCommand_findflags(const CCommand& arg) strcpy(upperFlag, arg.Arg(1)); for (int i = 0; upperFlag[i]; i++) - upperFlag[i] = toupper(upperFlag[i]); + upperFlag[i] = (char)toupper(upperFlag[i]); // resolve flag name => int flags int resolvedFlag = FCVAR_NONE; @@ -186,7 +186,7 @@ void ConCommand_findflags(const CCommand& arg) delete[] upperFlag; } -void ConCommand_list(const CCommand& arg) +void ConCommand_list(const CCommand& /*arg*/) { ConCommandBase* var; CCVarIteratorInternal* itint = g_pCVar->FactoryInternalIterator(); @@ -208,7 +208,7 @@ void ConCommand_list(const CCommand& arg) spdlog::info("{} total convars/concommands", sorted.size()); } -void ConCommand_differences(const CCommand& arg) +void ConCommand_differences(const CCommand& /*arg*/) { CCVarIteratorInternal* itint = g_pCVar->FactoryInternalIterator(); std::map sorted; diff --git a/primedev/util/printmaps.cpp b/primedev/util/printmaps.cpp index d32536051..906bed06f 100644 --- a/primedev/util/printmaps.cpp +++ b/primedev/util/printmaps.cpp @@ -136,9 +136,9 @@ int, __fastcall, (const char *const cmdname, const char *const partial, char com RefreshMapList(); // use a custom autocomplete func for all map loading commands - const int cmdLength = strlen(cmdname); + const size_t cmdLength = strlen(cmdname); const char* query = partial + cmdLength; - const int queryLength = strlen(query); + const size_t queryLength = strlen(query); int numMaps = 0; for (int i = 0; i < vMapList.size() && numMaps < COMMAND_COMPLETION_MAXITEMS; i++)