From 458378be6675210e95a8cb9bb0d5cf1ebb8fb2f5 Mon Sep 17 00:00:00 2001 From: Fyren Date: Sun, 24 Jul 2011 19:52:22 -0700 Subject: [PATCH] Let logic binary access ServerLang value on startup (bug 4675, r=dvander). --- core/logic/Translator.cpp | 6 ++++++ core/logic/intercom.h | 3 ++- core/logic_bridge.cpp | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/logic/Translator.cpp b/core/logic/Translator.cpp index 5106b269..e68016b8 100644 --- a/core/logic/Translator.cpp +++ b/core/logic/Translator.cpp @@ -750,6 +750,12 @@ void Translator::OnSourceModAllInitialized() { AddLanguage("en", "English"); + const char* lang = smcore.GetCoreConfigValue("ServerLang"); + if (lang) + { + strncpy(m_InitialLang, lang, sizeof(m_InitialLang)); + } + g_pCorePhrases = CreatePhraseCollection(); g_pCorePhrases->AddPhraseFile("core.phrases"); diff --git a/core/logic/intercom.h b/core/logic/intercom.h index 4e007881..d2c968d0 100644 --- a/core/logic/intercom.h +++ b/core/logic/intercom.h @@ -42,7 +42,7 @@ using namespace SourceMod; * Add 1 to the RHS of this expression to bump the intercom file * This is to prevent mismatching core/logic binaries */ -#define SM_LOGIC_MAGIC (0x0F47C0DE - 16) +#define SM_LOGIC_MAGIC (0x0F47C0DE - 17) #if defined SM_LOGIC class IVEngineServer @@ -115,6 +115,7 @@ struct sm_core_t const char * (*GetGameDescription)(); const char * (*GetSourceEngineName)(); bool (*SymbolsAreHidden)(); + const char * (*GetCoreConfigValue)(const char*); /* Data */ ServerGlobals *serverGlobals; void * serverFactory; diff --git a/core/logic_bridge.cpp b/core/logic_bridge.cpp index bd44e32f..4904be13 100644 --- a/core/logic_bridge.cpp +++ b/core/logic_bridge.cpp @@ -49,6 +49,7 @@ #include "PlayerManager.h" #include "AdminCache.h" #include "HalfLife2.h" +#include "CoreConfig.h" #if defined _WIN32 #define MATCHMAKINGDS_SUFFIX "" @@ -176,6 +177,11 @@ static bool symbols_are_hidden() #endif } +static const char* get_core_config_value(const char* key) +{ + return g_CoreConfig.GetCoreConfigValue(key); +} + static ServerGlobals serverGlobals; static sm_core_t core_bridge = @@ -209,6 +215,7 @@ static sm_core_t core_bridge = get_game_description, get_source_engine_name, symbols_are_hidden, + get_core_config_value, &serverGlobals };