- removed the automatic system language detection for Windows.

Default language is now always American English, just like on Linux and macOS.

# Conflicts:
#	src/g_cvars.cpp
#	src/gamedata/stringtable.cpp
#	src/textures/texturemanager.cpp

# Conflicts:
#	src/win32/i_system.cpp
This commit is contained in:
Christoph Oelckers 2019-03-16 00:07:18 +01:00 committed by drfrag
parent e70810cfdc
commit 3158826ec0
8 changed files with 15 additions and 119 deletions

View file

@ -1269,10 +1269,12 @@ CCMD(secret)
FString levelname;
level_info_t *info = FindLevelInfo(mapname);
const char *ln = !(info->flags & LEVEL_LOOKUPLEVELNAME)? info->LevelName.GetChars() : GStrings[info->LevelName.GetChars()];
levelname.Format("%s - %s\n", mapname, ln);
size_t llen = levelname.Len() - 1;
levelname.Format("%s - %s", mapname, ln);
Printf(TEXTCOLOR_YELLOW "%s\n", levelname.GetChars());
size_t llen = levelname.Len();
levelname = "";
for(size_t ii=0; ii<llen; ii++) levelname += '-';
Printf(TEXTCOLOR_YELLOW"%s\n", levelname.GetChars());
Printf(TEXTCOLOR_YELLOW "%s\n", levelname.GetChars());
foundsome = true;
}
}

View file

@ -57,7 +57,6 @@ CUSTOM_CVAR (Float, teamdamage, 0.f, CVAR_SERVERINFO)
CUSTOM_CVAR (String, language, "auto", CVAR_ARCHIVE|CVAR_NOINITCALL)
{
SetLanguageIDs ();
GStrings.UpdateLanguage();
if (level.info != NULL) level.LevelName = level.info->LookupLevelName();
}

View file

@ -70,21 +70,6 @@ ticcmd_t* I_BaseTiccmd()
//
// SetLanguageIDs
//
void SetLanguageIDs()
{
size_t langlen = strlen(language);
uint32_t lang = (langlen < 2 || langlen > 3)
? MAKE_ID('e', 'n', 'u', '\0')
: MAKE_ID(language[0], language[1], language[2], '\0');
LanguageIDs[3] = LanguageIDs[2] = LanguageIDs[1] = LanguageIDs[0] = lang;
}
double PerfToSec, PerfToMillisec;
static void CalculateCPUSpeed()

View file

@ -43,16 +43,6 @@ struct WadStuff;
#define SHARE_DIR "/usr/local/share/"
#endif
// Index values into the LanguageIDs array
enum
{
LANGIDX_UserPreferred,
LANGIDX_UserDefault,
LANGIDX_SysPreferred,
LANGIDX_SysDefault
};
extern uint32_t LanguageIDs[4];
extern void SetLanguageIDs ();
// Called by DoomMain.
void I_Init (void);

View file

@ -106,20 +106,6 @@ void I_EndRead(void)
}
//
// SetLanguageIDs
//
void SetLanguageIDs ()
{
size_t langlen = strlen(language);
uint32_t lang = (langlen < 2 || langlen > 3) ?
MAKE_ID('e','n','u','\0') :
MAKE_ID(language[0],language[1],language[2],'\0');
LanguageIDs[3] = LanguageIDs[2] = LanguageIDs[1] = LanguageIDs[0] = lang;
}
//
// I_Init
//

View file

@ -44,7 +44,9 @@
#include "c_dispatch.h"
#include "v_text.h"
#include "gi.h"
#include "c_cvars.h"
EXTERN_CVAR(String, language)
void FStringTable::LoadStrings ()
{
@ -56,7 +58,6 @@ void FStringTable::LoadStrings ()
{
LoadLanguage (lump);
}
SetLanguageIDs();
UpdateLanguage();
}
@ -165,6 +166,12 @@ void FStringTable::LoadLanguage (int lumpnum)
void FStringTable::UpdateLanguage()
{
size_t langlen = strlen(language);
int LanguageID = (langlen < 2 || langlen > 3) ?
MAKE_ID('e', 'n', 'u', '\0') :
MAKE_ID(language[0], language[1], language[2], '\0');
currentLanguageSet.Clear();
auto checkone = [&](uint32_t lang_id)
@ -176,11 +183,8 @@ void FStringTable::UpdateLanguage()
checkone(MAKE_ID('*', '*', '*', 0));
checkone(MAKE_ID('*', 0, 0, 0));
for (int i = 0; i < 4; ++i)
{
checkone(LanguageIDs[i]);
checkone(LanguageIDs[i] & MAKE_ID(0xff, 0xff, 0, 0));
}
checkone(LanguageID);
checkone(LanguageID & MAKE_ID(0xff, 0xff, 0, 0));
checkone(MAKE_ID('*', '*', 0, 0));
}

View file

@ -286,65 +286,6 @@ void I_DetectOS(void)
info.dwBuildNumber, info.szCSDVersion);
}
//==========================================================================
//
// SubsetLanguageIDs
//
// Helper function for SetLanguageIDs.
//
//==========================================================================
static void SubsetLanguageIDs(LCID id, LCTYPE type, int idx)
{
char buf[8];
LCID langid;
char *idp;
if (!GetLocaleInfo(id, type, buf, 8))
return;
langid = MAKELCID(strtoul(buf, NULL, 16), SORT_DEFAULT);
if (!GetLocaleInfo(langid, LOCALE_SABBREVLANGNAME, buf, 8))
return;
idp = (char *)(&LanguageIDs[idx]);
memset (idp, 0, 4);
idp[0] = tolower(buf[0]);
idp[1] = tolower(buf[1]);
idp[2] = tolower(buf[2]);
idp[3] = 0;
}
//==========================================================================
//
// SetLanguageIDs
//
//==========================================================================
void SetLanguageIDs()
{
size_t langlen = strlen(language);
if (langlen < 2 || langlen > 3)
{
memset(LanguageIDs, 0, sizeof(LanguageIDs));
SubsetLanguageIDs(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, 0);
SubsetLanguageIDs(LOCALE_USER_DEFAULT, LOCALE_IDEFAULTLANGUAGE, 1);
SubsetLanguageIDs(LOCALE_SYSTEM_DEFAULT, LOCALE_ILANGUAGE, 2);
SubsetLanguageIDs(LOCALE_SYSTEM_DEFAULT, LOCALE_IDEFAULTLANGUAGE, 3);
}
else
{
uint32_t lang = 0;
((uint8_t *)&lang)[0] = (language)[0];
((uint8_t *)&lang)[1] = (language)[1];
((uint8_t *)&lang)[2] = (language)[2];
LanguageIDs[0] = lang;
LanguageIDs[1] = lang;
LanguageIDs[2] = lang;
LanguageIDs[3] = lang;
}
}
//==========================================================================
//
// CalculateCPUSpeed

View file

@ -33,17 +33,6 @@
struct ticcmd_t;
struct WadStuff;
// Index values into the LanguageIDs array
enum
{
LANGIDX_UserPreferred,
LANGIDX_UserDefault,
LANGIDX_SysPreferred,
LANGIDX_SysDefault
};
extern uint32_t LanguageIDs[4];
extern void SetLanguageIDs ();
// [RH] Detects the OS the game is running under.
void I_DetectOS (void);