From 1c179434d36d52f48db2a3eedfcbe1eab7ca29a0 Mon Sep 17 00:00:00 2001 From: rexx <67599507+r-ex@users.noreply.github.com> Date: Thu, 17 Aug 2023 20:22:28 +0100 Subject: [PATCH] fix dedi compile sets pylon language in a cvar change callback instead of accessing directly, as networksystem does not have a DEDICATED define --- r5dev/common/callback.cpp | 7 +++---- r5dev/common/callback.h | 2 +- r5dev/common/global.cpp | 4 ++++ r5dev/networksystem/pylon.cpp | 6 +----- r5dev/networksystem/pylon.h | 3 +++ 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/r5dev/common/callback.cpp b/r5dev/common/callback.cpp index e7b36b31..210164bb 100644 --- a/r5dev/common/callback.cpp +++ b/r5dev/common/callback.cpp @@ -1008,7 +1008,6 @@ void RCON_InputOnlyChanged_f(IConVar* pConVar, const char* pOldString, float flO } #endif // !DEDICATED -#ifndef CLIENT_DLL static const char* s_LanguageNames[] = { "english", @@ -1035,7 +1034,7 @@ static bool IsValidTextLanguage(const char* pLocaleName) return false; } -void SV_LanguageChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue) +void LanguageChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue) { if (ConVar* pConVarRef = g_pCVar->FindVar(pConVar->GetCommandName())) { @@ -1053,11 +1052,11 @@ void SV_LanguageChanged_f(IConVar* pConVar, const char* pOldString, float flOldV else // this shouldn't really happen, but if neither the old nor new values are valid, set to english pConVarRef->SetValue("english"); + + g_pMasterServer->SetLanguage(pConVarRef->GetString()); } } -#endif - /* ===================== RCON_PasswordChanged_f diff --git a/r5dev/common/callback.h b/r5dev/common/callback.h index 050627cd..31f8a2bb 100644 --- a/r5dev/common/callback.h +++ b/r5dev/common/callback.h @@ -53,8 +53,8 @@ void RCON_Disconnect_f(const CCommand& args); void RCON_InputOnlyChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue); #endif // !DEDICATED void RCON_PasswordChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue); +void LanguageChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue); #ifndef CLIENT_DLL -void SV_LanguageChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue); void RCON_WhiteListAddresChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue); void RCON_ConnectionCountChanged_f(IConVar* pConVar, const char* pOldString, float flOldValue); void SQVM_ServerScript_f(const CCommand& args); diff --git a/r5dev/common/global.cpp b/r5dev/common/global.cpp index 7f38e937..3d6b27b1 100644 --- a/r5dev/common/global.cpp +++ b/r5dev/common/global.cpp @@ -322,6 +322,7 @@ void ConVar_StaticInit(void) #endif // !DEDICATED sv_language = ConVar::StaticCreate("sv_language", "english", FCVAR_RELEASE, "Language of the server. Sent to MasterServer for localising error messages.", false, 0.f, false, 0.f, SV_LanguageChanged_f, nullptr); + sv_language = ConVar::StaticCreate("sv_language", "english", FCVAR_RELEASE, "Language of the server. Sent to MasterServer for localising error messages.", false, 0.f, false, 0.f, LanguageChanged_f, nullptr); sv_showconnecting = ConVar::StaticCreate("sv_showconnecting" , "1", FCVAR_RELEASE, "Logs information about the connecting client to the console.", false, 0.f, false, 0.f, nullptr, nullptr); sv_globalBanlist = ConVar::StaticCreate("sv_globalBanlist" , "1", FCVAR_RELEASE, "Determines whether or not to use the global banned list.", false, 0.f, false, 0.f, nullptr, "0 = Disable, 1 = Enable."); sv_pylonVisibility = ConVar::StaticCreate("sv_pylonVisibility", "0", FCVAR_RELEASE, "Determines the visibility to the Pylon master server.", false, 0.f, false, 0.f, nullptr, "0 = Offline, 1 = Hidden, 2 = Public."); @@ -571,6 +572,9 @@ void ConVar_InitShipped(void) mp_gamemode->InstallChangeCallback(MP_GameMode_Changed_f, false); net_usesocketsforloopback->RemoveFlags(FCVAR_DEVELOPMENTONLY); net_usesocketsforloopback->InstallChangeCallback(NET_UseSocketsForLoopbackChanged_f, false); +#ifndef DEDICATED + cl_language->InstallChangeCallback(LanguageChanged_f, false); +#endif // !DEDICATED } //----------------------------------------------------------------------------- diff --git a/r5dev/networksystem/pylon.cpp b/r5dev/networksystem/pylon.cpp index 5bf49e20..51718211 100644 --- a/r5dev/networksystem/pylon.cpp +++ b/r5dev/networksystem/pylon.cpp @@ -361,11 +361,7 @@ bool CPylon::QueryServer(const char* endpoint, const char* request, string finalUrl; CURLFormatUrl(finalUrl, hostName, endpoint); -#ifndef DEDICATED - finalUrl += Format("?language=%s", cl_language->GetString()); -#else - finalUrl += Format("?language=%s", sv_language->GetString()); -#endif + finalUrl += Format("?language=%s", this->m_Language); CURLParams params; diff --git a/r5dev/networksystem/pylon.h b/r5dev/networksystem/pylon.h index b7b7d1c9..7212b3c0 100644 --- a/r5dev/networksystem/pylon.h +++ b/r5dev/networksystem/pylon.h @@ -26,8 +26,11 @@ public: inline void SetCurrentToken(const string& token) { m_Token = token; } inline void SetCurrentError(const string& error) { m_ErrorMsg = error; } + inline void SetLanguage(const char* lang) { m_Language = lang; }; + private: string m_Token; string m_ErrorMsg; + const char* m_Language; }; extern CPylon* g_pMasterServer;