mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-04-01 23:42:03 +00:00
StringTable cleanup and improvements
cleaned up function interface to avoid referencing the file system in the worker functions. replaced StringTable's operators with functions.. The main reason is that these are far easier to look up when browsing the source. This also fixes a premature translation in SBARINFO that was done in the parsing stage, not the printing stage.
This commit is contained in:
parent
f4a42dae1d
commit
ebd4ebf298
50 changed files with 245 additions and 246 deletions
|
@ -216,19 +216,19 @@ CCMD(am_togglefollow)
|
|||
am_followplayer = !am_followplayer;
|
||||
if (primaryLevel && primaryLevel->automap)
|
||||
primaryLevel->automap->ResetFollowLocation();
|
||||
Printf("%s\n", GStrings(am_followplayer ? "AMSTR_FOLLOWON" : "AMSTR_FOLLOWOFF"));
|
||||
Printf("%s\n", GStrings.GetString(am_followplayer ? "AMSTR_FOLLOWON" : "AMSTR_FOLLOWOFF"));
|
||||
}
|
||||
|
||||
CCMD(am_togglegrid)
|
||||
{
|
||||
am_showgrid = !am_showgrid;
|
||||
Printf("%s\n", GStrings(am_showgrid ? "AMSTR_GRIDON" : "AMSTR_GRIDOFF"));
|
||||
Printf("%s\n", GStrings.GetString(am_showgrid ? "AMSTR_GRIDON" : "AMSTR_GRIDOFF"));
|
||||
}
|
||||
|
||||
CCMD(am_toggletexture)
|
||||
{
|
||||
am_textured = !am_textured;
|
||||
Printf("%s\n", GStrings(am_textured ? "AMSTR_TEXON" : "AMSTR_TEXOFF"));
|
||||
Printf("%s\n", GStrings.GetString(am_textured ? "AMSTR_TEXON" : "AMSTR_TEXOFF"));
|
||||
}
|
||||
|
||||
CCMD(am_setmark)
|
||||
|
@ -238,7 +238,7 @@ CCMD(am_setmark)
|
|||
int m = primaryLevel->automap->addMark();
|
||||
if (m >= 0)
|
||||
{
|
||||
Printf("%s %d\n", GStrings("AMSTR_MARKEDSPOT"), m);
|
||||
Printf("%s %d\n", GStrings.GetString("AMSTR_MARKEDSPOT"), m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ CCMD(am_clearmarks)
|
|||
{
|
||||
if (primaryLevel && primaryLevel->automap && primaryLevel->automap->clearMarks())
|
||||
{
|
||||
Printf("%s\n", GStrings("AMSTR_MARKSCLEARED"));
|
||||
Printf("%s\n", GStrings.GetString("AMSTR_MARKSCLEARED"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -261,7 +261,7 @@ bool AnnounceKill (AActor *killer, AActor *killee)
|
|||
playSound |= killer->CheckLocalView();
|
||||
}
|
||||
|
||||
message = GStrings(choice->Message);
|
||||
message = GStrings.GetString(choice->Message);
|
||||
if (message != NULL)
|
||||
{
|
||||
char assembled[1024];
|
||||
|
@ -293,7 +293,7 @@ bool AnnounceTelefrag (AActor *killer, AActor *killee)
|
|||
|
||||
if (cl_bbannounce && multiplayer)
|
||||
{
|
||||
const char *message = GStrings("OB_MPTELEFRAG");
|
||||
const char *message = GStrings.GetString("OB_MPTELEFRAG");
|
||||
if (message != NULL)
|
||||
{
|
||||
char assembled[1024];
|
||||
|
|
|
@ -380,7 +380,7 @@ void DrawText(F2DDrawer *drawer, FFont* font, int normalcolor, double x, double
|
|||
{
|
||||
return;
|
||||
}
|
||||
const char *txt = (parms.localize && string[0] == '$') ? GStrings(&string[1]) : string;
|
||||
const char *txt = (parms.localize && string[0] == '$') ? GStrings.GetString(&string[1]) : string;
|
||||
DrawTextCommon(drawer, font, normalcolor, x, y, (const uint8_t*)string, parms);
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ void DrawText(F2DDrawer *drawer, FFont *font, int normalcolor, double x, double
|
|||
{
|
||||
return;
|
||||
}
|
||||
const char *txt = (parms.localize && string[0] == '$') ? GStrings(&string[1]) : string.GetChars();
|
||||
const char *txt = (parms.localize && string[0] == '$') ? GStrings.GetString(&string[1]) : string.GetChars();
|
||||
DrawTextCommon(drawer, font, normalcolor, x, y, (uint8_t*)txt, parms);
|
||||
}
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ CCMD (print)
|
|||
Printf ("print <name>: Print a string from the string table\n");
|
||||
return;
|
||||
}
|
||||
const char *str = GStrings[argv[1]];
|
||||
const char *str = GStrings.CheckString(argv[1]);
|
||||
if (str == NULL)
|
||||
{
|
||||
Printf ("%s unknown\n", argv[1]);
|
||||
|
@ -304,7 +304,7 @@ CCMD(printlocalized)
|
|||
return;
|
||||
}
|
||||
}
|
||||
Printf("%s\n", GStrings(argv[1]));
|
||||
Printf("%s\n", GStrings.GetString(argv[1]));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -47,29 +47,29 @@
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void FStringTable::LoadStrings (FileSys::FileSystem& fileSystem_, const char *language)
|
||||
void FStringTable::LoadStrings (FileSys::FileSystem& fileSystem, const char *language)
|
||||
{
|
||||
int lastlump, lump;
|
||||
|
||||
fileSystem = &fileSystem_;
|
||||
allStrings.Clear();
|
||||
lastlump = 0;
|
||||
while ((lump = fileSystem->FindLump("LMACROS", &lastlump)) != -1)
|
||||
while ((lump = fileSystem.FindLump("LMACROS", &lastlump)) != -1)
|
||||
{
|
||||
readMacros(lump);
|
||||
auto lumpdata = fileSystem.ReadFile(lump);
|
||||
readMacros(lumpdata.string(), lumpdata.size());
|
||||
}
|
||||
|
||||
lastlump = 0;
|
||||
while ((lump = fileSystem->FindLump ("LANGUAGE", &lastlump)) != -1)
|
||||
while ((lump = fileSystem.FindLump ("LANGUAGE", &lastlump)) != -1)
|
||||
{
|
||||
auto lumpdata = fileSystem->ReadFile(lump);
|
||||
auto lumpdata = fileSystem.ReadFile(lump);
|
||||
auto filenum = fileSystem.GetFileContainer(lump);
|
||||
|
||||
if (!ParseLanguageCSV(lump, lumpdata.string(), lumpdata.size()))
|
||||
LoadLanguage (lump, lumpdata.string(), lumpdata.size());
|
||||
if (!ParseLanguageCSV(filenum, lumpdata.string(), lumpdata.size()))
|
||||
LoadLanguage (filenum, lumpdata.string(), lumpdata.size());
|
||||
}
|
||||
UpdateLanguage(language);
|
||||
allMacros.Clear();
|
||||
fileSystem = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -159,13 +159,12 @@ TArray<TArray<FString>> FStringTable::parseCSV(const char* buffer, size_t size)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
bool FStringTable::readMacros(int lumpnum)
|
||||
bool FStringTable::readMacros(const char* buffer, size_t size)
|
||||
{
|
||||
auto lumpdata = fileSystem->ReadFile(lumpnum);
|
||||
auto data = parseCSV(lumpdata.string(), lumpdata.size());
|
||||
auto data = parseCSV(buffer, size);
|
||||
|
||||
allMacros.Clear();
|
||||
for (unsigned i = 1; i < data.Size(); i++)
|
||||
for (unsigned i = 1; i < size; i++)
|
||||
{
|
||||
auto macroname = data[i][0];
|
||||
FName name = macroname.GetChars();
|
||||
|
@ -187,7 +186,7 @@ bool FStringTable::readMacros(int lumpnum)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
bool FStringTable::ParseLanguageCSV(int lumpnum, const char* buffer, size_t size)
|
||||
bool FStringTable::ParseLanguageCSV(int filenum, const char* buffer, size_t size)
|
||||
{
|
||||
if (size < 11) return false;
|
||||
if (strnicmp(buffer, "default,", 8) && strnicmp(buffer, "identifier,", 11 )) return false;
|
||||
|
@ -258,14 +257,14 @@ bool FStringTable::ParseLanguageCSV(int lumpnum, const char* buffer, size_t size
|
|||
FName strName = row[labelcol].GetChars();
|
||||
if (hasDefaultEntry)
|
||||
{
|
||||
DeleteForLabel(lumpnum, strName);
|
||||
DeleteForLabel(filenum, strName);
|
||||
}
|
||||
for (auto &langentry : langrows)
|
||||
{
|
||||
auto str = row[langentry.first];
|
||||
if (str.Len() > 0)
|
||||
{
|
||||
InsertString(lumpnum, langentry.second, strName, str);
|
||||
InsertString(filenum, langentry.second, strName, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -409,11 +408,10 @@ void FStringTable::DeleteString(int langid, FName label)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void FStringTable::DeleteForLabel(int lumpnum, FName label)
|
||||
void FStringTable::DeleteForLabel(int filenum, FName label)
|
||||
{
|
||||
decltype(allStrings)::Iterator it(allStrings);
|
||||
decltype(allStrings)::Pair *pair;
|
||||
auto filenum = fileSystem->GetFileContainer(lumpnum);
|
||||
|
||||
while (it.NextPair(pair))
|
||||
{
|
||||
|
@ -432,10 +430,10 @@ void FStringTable::DeleteForLabel(int lumpnum, FName label)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
void FStringTable::InsertString(int lumpnum, int langid, FName label, const FString &string)
|
||||
void FStringTable::InsertString(int filenum, int langid, FName label, const FString &string)
|
||||
{
|
||||
const char *strlangid = (const char *)&langid;
|
||||
TableElement te = { fileSystem->GetFileContainer(lumpnum), { string, string, string, string } };
|
||||
TableElement te = { filenum, { string, string, string, string } };
|
||||
ptrdiff_t index;
|
||||
while ((index = te.strings[0].IndexOf("@[")) >= 0)
|
||||
{
|
||||
|
@ -579,7 +577,7 @@ bool FStringTable::exists(const char *name)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
const char *FStringTable::GetString(const char *name, uint32_t *langtable, int gender) const
|
||||
const char *FStringTable::CheckString(const char *name, uint32_t *langtable, int gender) const
|
||||
{
|
||||
if (name == nullptr || *name == 0)
|
||||
{
|
||||
|
@ -590,15 +588,22 @@ const char *FStringTable::GetString(const char *name, uint32_t *langtable, int g
|
|||
FName nm(name, true);
|
||||
if (nm != NAME_None)
|
||||
{
|
||||
TableElement* bestItem = nullptr;
|
||||
for (auto map : currentLanguageSet)
|
||||
{
|
||||
auto item = map.second->CheckKey(nm);
|
||||
if (item)
|
||||
{
|
||||
if (bestItem && bestItem->filenum > item->filenum)
|
||||
{
|
||||
// prioritize content from later files, even if the language doesn't fully match.
|
||||
// This is mainly for Dehacked content.
|
||||
continue;
|
||||
}
|
||||
if (langtable) *langtable = map.first;
|
||||
auto c = item->strings[gender].GetChars();
|
||||
if (c && *c == '$' && c[1] == '$')
|
||||
return GetString(c + 2, langtable, gender);
|
||||
c = CheckString(c + 2, langtable, gender);
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
@ -608,7 +613,7 @@ const char *FStringTable::GetString(const char *name, uint32_t *langtable, int g
|
|||
|
||||
//==========================================================================
|
||||
//
|
||||
// Finds a string by name in a given language
|
||||
// Finds a string by name in a given language without attempting any substitution
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
|
@ -655,9 +660,9 @@ bool FStringTable::MatchDefaultString(const char *name, const char *content) con
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
const char *FStringTable::operator() (const char *name) const
|
||||
const char *FStringTable::GetString(const char *name) const
|
||||
{
|
||||
const char *str = operator[] (name);
|
||||
const char *str = CheckString(name, nullptr);
|
||||
return str ? str : name;
|
||||
}
|
||||
|
||||
|
|
|
@ -95,20 +95,15 @@ public:
|
|||
|
||||
const char *GetLanguageString(const char *name, uint32_t langtable, int gender = -1) const;
|
||||
bool MatchDefaultString(const char *name, const char *content) const;
|
||||
const char *GetString(const char *name, uint32_t *langtable, int gender = -1) const;
|
||||
const char *operator() (const char *name) const; // Never returns NULL
|
||||
const char* operator() (const FString& name) const { return operator()(name.GetChars()); }
|
||||
const char *operator[] (const char *name) const
|
||||
{
|
||||
return GetString(name, nullptr);
|
||||
}
|
||||
const char *CheckString(const char *name, uint32_t *langtable = nullptr, int gender = -1) const;
|
||||
const char* GetString(const char* name) const;
|
||||
const char* GetString(const FString& name) const { return GetString(name.GetChars()); }
|
||||
bool exists(const char *name);
|
||||
|
||||
void InsertString(int lumpnum, int langid, FName label, const FString& string);
|
||||
void InsertString(int filenum, int langid, FName label, const FString& string);
|
||||
|
||||
private:
|
||||
|
||||
FileSys::FileSystem* fileSystem;
|
||||
FString activeLanguage;
|
||||
StringMacroMap allMacros;
|
||||
LangMap allStrings;
|
||||
|
@ -116,11 +111,11 @@ private:
|
|||
|
||||
void LoadLanguage (int lumpnum, const char* buffer, size_t size);
|
||||
TArray<TArray<FString>> parseCSV(const char* buffer, size_t size);
|
||||
bool ParseLanguageCSV(int lumpnum, const char* buffer, size_t size);
|
||||
bool ParseLanguageCSV(int filenum, const char* buffer, size_t size);
|
||||
|
||||
bool readMacros(int lumpnum);
|
||||
bool readMacros(const char* buffer, size_t size);
|
||||
void DeleteString(int langid, FName label);
|
||||
void DeleteForLabel(int lumpnum, FName label);
|
||||
void DeleteForLabel(int filenum, FName label);
|
||||
|
||||
static size_t ProcessEscapes (char *str);
|
||||
public:
|
||||
|
@ -138,7 +133,7 @@ public:
|
|||
|
||||
const char* localize(const char* str)
|
||||
{
|
||||
return *str == '$' ? operator()(str + 1) : str;
|
||||
return *str == '$' ? GetString(str + 1) : str;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -271,12 +271,12 @@ bool CheckFontComplete(FFont* font)
|
|||
{
|
||||
// Also check if the SmallFont contains all characters this language needs.
|
||||
// If not, switch back to the original one.
|
||||
return font->CanPrint(GStrings["REQUIRED_CHARACTERS"]);
|
||||
return font->CanPrint(GStrings.CheckString("REQUIRED_CHARACTERS"));
|
||||
}
|
||||
|
||||
void UpdateGenericUI(bool cvar)
|
||||
{
|
||||
auto switchstr = GStrings["USE_GENERIC_FONT"];
|
||||
auto switchstr = GStrings.CheckString("USE_GENERIC_FONT");
|
||||
generic_ui = (cvar || (switchstr && strtoll(switchstr, nullptr, 0)));
|
||||
if (!generic_ui)
|
||||
{
|
||||
|
@ -311,7 +311,7 @@ void UpdateGenericUI(bool cvar)
|
|||
}
|
||||
}
|
||||
// Turkish i crap. What a mess, just to save two code points... :(
|
||||
switchstr = GStrings["REQUIRED_CHARACTERS"];
|
||||
switchstr = GStrings.CheckString("REQUIRED_CHARACTERS");
|
||||
special_i = switchstr && strstr(switchstr, "\xc4\xb0") != nullptr; // capital dotted i (İ).
|
||||
if (special_i)
|
||||
{
|
||||
|
|
|
@ -470,7 +470,7 @@ DEFINE_ACTION_FUNCTION(FSavegameManager, GetSavegame)
|
|||
|
||||
void FSavegameManagerBase::InsertNewSaveNode()
|
||||
{
|
||||
NewSaveNode.SaveTitle = GStrings("NEWSAVE");
|
||||
NewSaveNode.SaveTitle = GStrings.GetString("NEWSAVE");
|
||||
NewSaveNode.bNoDelete = true;
|
||||
SaveGames.Insert(0, &NewSaveNode);
|
||||
}
|
||||
|
|
|
@ -282,9 +282,9 @@ DEFINE_ACTION_FUNCTION(FStringStruct, DeleteLastCharacter)
|
|||
|
||||
static void LocalizeString(const FString &label, bool prefixed, FString *result)
|
||||
{
|
||||
if (!prefixed) *result = GStrings(label);
|
||||
if (!prefixed) *result = GStrings.GetString(label);
|
||||
else if (label[0] != '$') *result = label;
|
||||
else *result = GStrings(&label[1]);
|
||||
else *result = GStrings.GetString(&label[1]);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(FStringTable, Localize, LocalizeString)
|
||||
|
|
|
@ -670,7 +670,7 @@ DEFINE_ACTION_FUNCTION_NATIVE(FFont, GetBottomAlignOffset, GetBottomAlignOffset)
|
|||
|
||||
static int StringWidth(FFont *font, const FString &str, int localize)
|
||||
{
|
||||
const char *txt = (localize && str[0] == '$') ? GStrings(&str[1]) : str.GetChars();
|
||||
const char *txt = (localize && str[0] == '$') ? GStrings.GetString(&str[1]) : str.GetChars();
|
||||
return font->StringWidth(txt);
|
||||
}
|
||||
|
||||
|
@ -684,7 +684,7 @@ DEFINE_ACTION_FUNCTION_NATIVE(FFont, StringWidth, StringWidth)
|
|||
|
||||
static int GetMaxAscender(FFont* font, const FString& str, int localize)
|
||||
{
|
||||
const char* txt = (localize && str[0] == '$') ? GStrings(&str[1]) : str.GetChars();
|
||||
const char* txt = (localize && str[0] == '$') ? GStrings.GetString(&str[1]) : str.GetChars();
|
||||
return font->GetMaxAscender(txt);
|
||||
}
|
||||
|
||||
|
@ -698,7 +698,7 @@ DEFINE_ACTION_FUNCTION_NATIVE(FFont, GetMaxAscender, GetMaxAscender)
|
|||
|
||||
static int CanPrint(FFont *font, const FString &str, int localize)
|
||||
{
|
||||
const char *txt = (localize && str[0] == '$') ? GStrings(&str[1]) : str.GetChars();
|
||||
const char *txt = (localize && str[0] == '$') ? GStrings.GetString(&str[1]) : str.GetChars();
|
||||
return font->CanPrint(txt);
|
||||
}
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ FEndoomScreen::FEndoomScreen(int loading_lump)
|
|||
StartupBitmap.Create(80 * 8, 26 * 16); // line 26 is for our own 'press any key to quit' message.
|
||||
DrawTextScreen(StartupBitmap, endoom_screen);
|
||||
ClearBlock(StartupBitmap, {0, 0, 0, 255}, 0, 25*16, 640, 16);
|
||||
DrawString(StartupBitmap, 0, 25, GStrings("TXT_QUITENDOOM"), { 128, 128, 128 ,255}, { 0, 0, 0, 255});
|
||||
DrawString(StartupBitmap, 0, 25, GStrings.GetString("TXT_QUITENDOOM"), { 128, 128, 128 ,255}, { 0, 0, 0, 255});
|
||||
lastUpdateTime = I_msTime();
|
||||
|
||||
// Does this screen need blinking?
|
||||
|
|
|
@ -607,7 +607,7 @@ bool FStartScreen::NetInit(const char* message, int numplayers)
|
|||
{
|
||||
NetMaxPos = numplayers;
|
||||
NetCurPos = 0;
|
||||
NetMessageString.Format("%s %s", message, GStrings("TXT_NET_PRESSESC"));
|
||||
NetMessageString.Format("%s %s", message, GStrings.GetString("TXT_NET_PRESSESC"));
|
||||
NetProgress(1); // You always know about yourself
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -378,7 +378,7 @@ FGameTexture *FTextureManager::FindGameTexture(const char *texname, ETextureType
|
|||
bool FTextureManager::OkForLocalization(FTextureID texnum, const char *substitute, int locmode)
|
||||
{
|
||||
uint32_t langtable = 0;
|
||||
if (*substitute == '$') substitute = GStrings.GetString(substitute+1, &langtable);
|
||||
if (*substitute == '$') substitute = GStrings.CheckString(substitute+1, &langtable);
|
||||
else return true; // String literals from the source data should never override graphics from the same definition.
|
||||
if (substitute == nullptr) return true; // The text does not exist.
|
||||
|
||||
|
|
|
@ -313,7 +313,7 @@ CCMD (idclev)
|
|||
return;
|
||||
|
||||
// So be it.
|
||||
Printf ("%s\n", GStrings("STSTR_CLEV"));
|
||||
Printf ("%s\n", GStrings.GetString("STSTR_CLEV"));
|
||||
G_DeferedInitNew (mapname.GetChars());
|
||||
//players[0].health = 0; // Force reset
|
||||
}
|
||||
|
@ -337,7 +337,7 @@ CCMD (hxvisit)
|
|||
if (P_CheckMapData(mapname.GetChars()))
|
||||
{
|
||||
// So be it.
|
||||
Printf ("%s\n", GStrings("STSTR_CLEV"));
|
||||
Printf ("%s\n", GStrings.GetString("STSTR_CLEV"));
|
||||
G_DeferedInitNew (mapname.GetChars());
|
||||
return;
|
||||
}
|
||||
|
@ -1067,7 +1067,7 @@ static void PrintSecretString(const char *string, bool thislevel)
|
|||
else colstr = TEXTCOLOR_GREEN;
|
||||
}
|
||||
}
|
||||
auto brok = V_BreakLines(CurrentConsoleFont, twod->GetWidth()*95/100, *string == '$' ? GStrings(++string) : string);
|
||||
auto brok = V_BreakLines(CurrentConsoleFont, twod->GetWidth()*95/100, *string == '$' ? GStrings.GetString(++string) : string);
|
||||
|
||||
for (auto &line : brok)
|
||||
{
|
||||
|
@ -1200,7 +1200,7 @@ CCMD(idmus)
|
|||
}
|
||||
else
|
||||
{
|
||||
Printf("%s\n", GStrings("STSTR_NOMUS"));
|
||||
Printf("%s\n", GStrings.GetString("STSTR_NOMUS"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1214,12 +1214,12 @@ CCMD(idmus)
|
|||
if (info->Music.IsNotEmpty())
|
||||
{
|
||||
S_ChangeMusic(info->Music.GetChars(), info->musicorder);
|
||||
Printf("%s\n", GStrings("STSTR_MUS"));
|
||||
Printf("%s\n", GStrings.GetString("STSTR_MUS"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Printf("%s\n", GStrings("STSTR_NOMUS"));
|
||||
Printf("%s\n", GStrings.GetString("STSTR_NOMUS"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -261,7 +261,7 @@ void CT_Drawer (void)
|
|||
if (!!rv) return;
|
||||
}
|
||||
|
||||
FStringf prompt("%s ", GStrings("TXT_SAY"));
|
||||
FStringf prompt("%s ", GStrings.GetString("TXT_SAY"));
|
||||
int x, scalex, y, promptwidth;
|
||||
|
||||
y = (viewactive || gamestate != GS_LEVEL) ? -displayfont->GetHeight()-2 : -displayfont->GetHeight() - 22;
|
||||
|
|
|
@ -260,7 +260,7 @@ CUSTOM_CVAR (Int, fraglimit, 0, CVAR_SERVERINFO)
|
|||
{
|
||||
if (playeringame[i] && self <= D_GetFragCount(&players[i]))
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_FRAGLIMIT"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_FRAGLIMIT"));
|
||||
primaryLevel->ExitLevel (0, false);
|
||||
break;
|
||||
}
|
||||
|
@ -1097,7 +1097,7 @@ void D_Display ()
|
|||
if (paused && multiplayer)
|
||||
{
|
||||
FFont *font = generic_ui? NewSmallFont : SmallFont;
|
||||
FString pstring = GStrings("TXT_BY");
|
||||
FString pstring = GStrings.GetString("TXT_BY");
|
||||
pstring.Substitute("%s", players[paused - 1].userinfo.GetName());
|
||||
DrawText(twod, font, CR_RED,
|
||||
(twod->GetWidth() - font->StringWidth(pstring)*CleanXfac) / 2,
|
||||
|
@ -1295,7 +1295,7 @@ void D_PageDrawer (void)
|
|||
if (Subtitle != nullptr)
|
||||
{
|
||||
FFont* font = generic_ui ? NewSmallFont : SmallFont;
|
||||
DrawFullscreenSubtitle(font, GStrings[Subtitle]);
|
||||
DrawFullscreenSubtitle(font, GStrings.CheckString(Subtitle));
|
||||
}
|
||||
if (Advisory.isValid())
|
||||
{
|
||||
|
@ -2162,7 +2162,7 @@ static void CheckCmdLine()
|
|||
|
||||
if (devparm)
|
||||
{
|
||||
Printf ("%s", GStrings("D_DEVSTR"));
|
||||
Printf ("%s", GStrings.GetString("D_DEVSTR"));
|
||||
}
|
||||
|
||||
// turbo option // [RH] (now a cvar)
|
||||
|
@ -3456,7 +3456,7 @@ static int D_InitGame(const FIWADInfo* iwad_info, std::vector<std::string>& allw
|
|||
for (int p = 0; p < 5; ++p)
|
||||
{
|
||||
// At this point we cannot use the player's gender info yet so force 'male' here.
|
||||
const char *str = GStrings.GetString(startupString[p], nullptr, 0);
|
||||
const char *str = GStrings.CheckString(startupString[p], nullptr, 0);
|
||||
if (str != NULL && str[0] != '\0')
|
||||
{
|
||||
Printf("%s\n", str);
|
||||
|
|
|
@ -2260,7 +2260,7 @@ void Net_DoCommand (int type, uint8_t **stream, int player)
|
|||
cht_Give (&players[player], s, ReadInt32 (stream));
|
||||
if (player != consoleplayer)
|
||||
{
|
||||
FString message = GStrings("TXT_X_CHEATS");
|
||||
FString message = GStrings.GetString("TXT_X_CHEATS");
|
||||
message.Substitute("%s", players[player].userinfo.GetName());
|
||||
Printf("%s: give %s\n", message.GetChars(), s);
|
||||
}
|
||||
|
|
|
@ -321,7 +321,7 @@ static void UpdateTeam (int pnum, int team, bool update)
|
|||
|
||||
if ((dmflags2 & DF2_NO_TEAM_SWITCH) && (alwaysapplydmflags || deathmatch) && TeamLibrary.IsValidTeam (info->GetTeam()))
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_NO_TEAM_CHANGE"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_NO_TEAM_CHANGE"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -339,12 +339,12 @@ static void UpdateTeam (int pnum, int team, bool update)
|
|||
FString message;
|
||||
if (TeamLibrary.IsValidTeam (team))
|
||||
{
|
||||
message = GStrings("TXT_JOINED_TEAM");
|
||||
message = GStrings.GetString("TXT_JOINED_TEAM");
|
||||
message.Substitute("%t", Teams[team].GetName());
|
||||
}
|
||||
else
|
||||
{
|
||||
message = GStrings("TXT_LONER");
|
||||
message = GStrings.GetString("TXT_LONER");
|
||||
}
|
||||
message.Substitute("%s", info->GetName());
|
||||
Printf("%s\n", message.GetChars());
|
||||
|
|
|
@ -1825,7 +1825,7 @@ void G_DoPlayerPop(int playernum)
|
|||
{
|
||||
playeringame[playernum] = false;
|
||||
|
||||
FString message = GStrings(deathmatch? "TXT_LEFTWITHFRAGS" : "TXT_LEFTTHEGAME");
|
||||
FString message = GStrings.GetString(deathmatch? "TXT_LEFTWITHFRAGS" : "TXT_LEFTTHEGAME");
|
||||
message.Substitute("%s", players[playernum].userinfo.GetName());
|
||||
message.Substitute("%d", FStringf("%d", players[playernum].fragcount));
|
||||
Printf("%s\n", message.GetChars());
|
||||
|
@ -1903,7 +1903,7 @@ static bool CheckSingleWad (const char *name, bool &printRequires, bool printwar
|
|||
{
|
||||
if (!printRequires)
|
||||
{
|
||||
Printf ("%s:\n%s", GStrings("TXT_SAVEGAMENEEDS"), name);
|
||||
Printf ("%s:\n%s", GStrings.GetString("TXT_SAVEGAMENEEDS"), name);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1941,7 +1941,7 @@ bool G_CheckSaveGameWads (FSerializer &arc, bool printwarn)
|
|||
|
||||
static void LoadGameError(const char *label, const char *append = "")
|
||||
{
|
||||
FString message = GStrings(label);
|
||||
FString message = GStrings.GetString(label);
|
||||
message.Substitute("%s", savename);
|
||||
Printf ("%s %s\n", message.GetChars(), append);
|
||||
}
|
||||
|
@ -2060,12 +2060,12 @@ void G_DoLoadGame ()
|
|||
FString message;
|
||||
if (SaveVersion < MINSAVEVER)
|
||||
{
|
||||
message = GStrings("TXT_TOOOLDSG");
|
||||
message = GStrings.GetString("TXT_TOOOLDSG");
|
||||
message.Substitute("%e", FStringf("%d", MINSAVEVER));
|
||||
}
|
||||
else
|
||||
{
|
||||
message = GStrings("TXT_TOONEWSG");
|
||||
message = GStrings.GetString("TXT_TOONEWSG");
|
||||
message.Substitute("%e", FStringf("%d", SAVEVER));
|
||||
}
|
||||
message.Substitute("%d", FStringf("%d", SaveVersion));
|
||||
|
@ -2175,19 +2175,19 @@ void G_SaveGame (const char *filename, const char *description)
|
|||
{
|
||||
if (sendsave || gameaction == ga_savegame)
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_SAVEPENDING"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_SAVEPENDING"));
|
||||
}
|
||||
else if (!usergame)
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_NOTSAVEABLE"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_NOTSAVEABLE"));
|
||||
}
|
||||
else if (gamestate != GS_LEVEL)
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_NOTINLEVEL"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_NOTINLEVEL"));
|
||||
}
|
||||
else if (players[consoleplayer].health <= 0 && !multiplayer)
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_SPPLAYERDEAD"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_SPPLAYERDEAD"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2311,7 +2311,7 @@ static void PutSaveComment (FSerializer &arc)
|
|||
comment.Format("%s - %s\n", primaryLevel->MapName.GetChars(), primaryLevel->LevelName.GetChars());
|
||||
|
||||
// Append elapsed time
|
||||
const char *const time = GStrings("SAVECOMMENT_TIME");
|
||||
const char *const time = GStrings.GetString("SAVECOMMENT_TIME");
|
||||
levelTime = primaryLevel->time / TICRATE;
|
||||
comment.AppendFormat("%s: %02d:%02d:%02d", time, levelTime/3600, (levelTime%3600)/60, levelTime%60);
|
||||
|
||||
|
@ -2463,12 +2463,12 @@ void G_DoSaveGame (bool okForQuicksave, bool forceQuicksave, FString filename, c
|
|||
savegameManager.NotifyNewSave(filename, description, okForQuicksave, forceQuicksave);
|
||||
BackupSaveName = filename;
|
||||
|
||||
if (longsavemessages) Printf("%s (%s)\n", GStrings("GGSAVED"), filename.GetChars());
|
||||
else Printf("%s\n", GStrings("GGSAVED"));
|
||||
if (longsavemessages) Printf("%s (%s)\n", GStrings.GetString("GGSAVED"), filename.GetChars());
|
||||
else Printf("%s\n", GStrings.GetString("GGSAVED"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Printf(PRINT_HIGH, "%s\n", GStrings("TXT_SAVEFAILED"));
|
||||
Printf(PRINT_HIGH, "%s\n", GStrings.GetString("TXT_SAVEFAILED"));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ void G_LeavingHub(FLevelLocals *Level, int mode, cluster_info_t * cluster, wbsta
|
|||
{
|
||||
if (cluster->flags & CLUSTER_LOOKUPNAME)
|
||||
{
|
||||
wbs->thisname = GStrings(cluster->ClusterName);
|
||||
wbs->thisname = GStrings.GetString(cluster->ClusterName);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -2450,7 +2450,7 @@ DEFINE_ACTION_FUNCTION(FLevelLocals, GetClusterName)
|
|||
if (cluster)
|
||||
{
|
||||
if (cluster->flags & CLUSTER_LOOKUPNAME)
|
||||
retval = GStrings(cluster->ClusterName);
|
||||
retval = GStrings.GetString(cluster->ClusterName);
|
||||
else
|
||||
retval = cluster->ClusterName;
|
||||
}
|
||||
|
|
|
@ -824,10 +824,7 @@ class CommandDrawString : public SBarInfoCommand
|
|||
{
|
||||
strValue = CONSTANT;
|
||||
sc.MustGetToken(TK_StringConst);
|
||||
if(sc.String[0] == '$')
|
||||
str = GStrings[sc.String+1];
|
||||
else
|
||||
str = sc.String;
|
||||
label = sc.String;
|
||||
}
|
||||
}
|
||||
void Reset()
|
||||
|
@ -923,9 +920,10 @@ class CommandDrawString : public SBarInfoCommand
|
|||
break;
|
||||
}
|
||||
case LOGTEXT:
|
||||
str = GStrings(statusBar->CPlayer->LogText);
|
||||
str = GStrings.GetString(statusBar->CPlayer->LogText);
|
||||
break;
|
||||
default:
|
||||
str = GStrings.localize(label.GetChars());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -993,6 +991,7 @@ class CommandDrawString : public SBarInfoCommand
|
|||
StringValueType strValue;
|
||||
int valueArgument;
|
||||
FString str;
|
||||
FString label;
|
||||
StringAlignment alignment;
|
||||
|
||||
private:
|
||||
|
|
|
@ -550,7 +550,7 @@ void DBaseStatusBar::DoDrawAutomapHUD(int crdefault, int highlight)
|
|||
if (!generic_ui)
|
||||
{
|
||||
// If the original font does not have accents this will strip them - but a fallback to the VGA font is not desirable here for such cases.
|
||||
if (!font->CanPrint(GStrings("AM_MONSTERS")) || !font->CanPrint(GStrings("AM_SECRETS")) || !font->CanPrint(GStrings("AM_ITEMS"))) font2 = OriginalSmallFont;
|
||||
if (!font->CanPrint(GStrings.GetString("AM_MONSTERS")) || !font->CanPrint(GStrings.GetString("AM_SECRETS")) || !font->CanPrint(GStrings.GetString("AM_ITEMS"))) font2 = OriginalSmallFont;
|
||||
}
|
||||
|
||||
if (am_showtime)
|
||||
|
@ -575,14 +575,14 @@ void DBaseStatusBar::DoDrawAutomapHUD(int crdefault, int highlight)
|
|||
y = 0;
|
||||
if (am_showmonsters)
|
||||
{
|
||||
textbuffer.Format("%s\34%c %d/%d", GStrings("AM_MONSTERS"), crdefault + 65, primaryLevel->killed_monsters, primaryLevel->total_monsters);
|
||||
textbuffer.Format("%s\34%c %d/%d", GStrings.GetString("AM_MONSTERS"), crdefault + 65, primaryLevel->killed_monsters, primaryLevel->total_monsters);
|
||||
DrawText(twod, font2, highlight, textdist, y, textbuffer.GetChars(), DTA_KeepRatio, true, DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight, TAG_DONE);
|
||||
y += fheight;
|
||||
}
|
||||
|
||||
if (am_showsecrets)
|
||||
{
|
||||
textbuffer.Format("%s\34%c %d/%d", GStrings("AM_SECRETS"), crdefault + 65, primaryLevel->found_secrets, primaryLevel->total_secrets);
|
||||
textbuffer.Format("%s\34%c %d/%d", GStrings.GetString("AM_SECRETS"), crdefault + 65, primaryLevel->found_secrets, primaryLevel->total_secrets);
|
||||
DrawText(twod, font2, highlight, textdist, y, textbuffer.GetChars(), DTA_KeepRatio, true, DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight, TAG_DONE);
|
||||
y += fheight;
|
||||
}
|
||||
|
@ -590,7 +590,7 @@ void DBaseStatusBar::DoDrawAutomapHUD(int crdefault, int highlight)
|
|||
// Draw item count
|
||||
if (am_showitems)
|
||||
{
|
||||
textbuffer.Format("%s\34%c %d/%d", GStrings("AM_ITEMS"), crdefault + 65, primaryLevel->found_items, primaryLevel->total_items);
|
||||
textbuffer.Format("%s\34%c %d/%d", GStrings.GetString("AM_ITEMS"), crdefault + 65, primaryLevel->found_items, primaryLevel->total_items);
|
||||
DrawText(twod, font2, highlight, textdist, y, textbuffer.GetChars(), DTA_KeepRatio, true, DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight, TAG_DONE);
|
||||
y += fheight;
|
||||
}
|
||||
|
@ -1121,7 +1121,7 @@ void DBaseStatusBar::DrawLog ()
|
|||
FFont *font = (generic_ui || log_vgafont)? NewSmallFont : SmallFont;
|
||||
|
||||
int linelen = hudwidth<640? Scale(hudwidth,9,10)-40 : 560;
|
||||
auto lines = V_BreakLines (font, linelen, text[0] == '$'? GStrings(text.GetChars()+1) : text.GetChars());
|
||||
auto lines = V_BreakLines (font, linelen, text[0] == '$'? GStrings.GetString(text.GetChars()+1) : text.GetChars());
|
||||
int height = 20;
|
||||
|
||||
for (unsigned i = 0; i < lines.Size(); i++) height += font->GetHeight ();
|
||||
|
|
|
@ -218,7 +218,7 @@ static void PrintMessage (const char *str)
|
|||
{
|
||||
if (str[0]=='$')
|
||||
{
|
||||
str = GStrings(str+1);
|
||||
str = GStrings.GetString(str+1);
|
||||
}
|
||||
C_MidPrint (nullptr, str);
|
||||
}
|
||||
|
|
|
@ -323,7 +323,7 @@ FString level_info_t::LookupLevelName(uint32_t *langtable)
|
|||
if (flags & LEVEL_LOOKUPLEVELNAME)
|
||||
{
|
||||
const char *thename;
|
||||
const char *lookedup = GStrings.GetString(LevelName.GetChars(), langtable);
|
||||
const char *lookedup = GStrings.CheckString(LevelName.GetChars(), langtable);
|
||||
if (lookedup == NULL)
|
||||
{
|
||||
thename = LevelName.GetChars();
|
||||
|
|
|
@ -499,7 +499,7 @@ const char * G_SkillName()
|
|||
if (pmnm != NULL) name = pmnm->GetChars();
|
||||
}
|
||||
|
||||
if (*name == '$') name = GStrings(name+1);
|
||||
if (*name == '$') name = GStrings.GetString(name+1);
|
||||
return name;
|
||||
}
|
||||
|
||||
|
|
|
@ -469,7 +469,7 @@ void STAT_ChangeLevel(const char *newl, FLevelLocals *Level)
|
|||
section.ToUpper();
|
||||
|
||||
const char *ep_name = StartEpisode->mEpisodeName.GetChars();
|
||||
if (*ep_name == '$') ep_name = GStrings(ep_name+1);
|
||||
if (*ep_name == '$') ep_name = GStrings.GetString(ep_name+1);
|
||||
FStatistics *sl = GetStatisticsList(EpisodeStatistics, section.GetChars(), ep_name);
|
||||
|
||||
int statvals[6] = {0,0,0,0,0,0};
|
||||
|
|
|
@ -336,10 +336,10 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
|
|||
y += (BigFont->GetHeight() + 8) * CleanYfac;
|
||||
}
|
||||
|
||||
const char *text_color = GStrings("SCORE_COLOR"),
|
||||
*text_frags = GStrings(deathmatch ? "SCORE_FRAGS" : "SCORE_KILLS"),
|
||||
*text_name = GStrings("SCORE_NAME"),
|
||||
*text_delay = GStrings("SCORE_DELAY");
|
||||
const char *text_color = GStrings.GetString("SCORE_COLOR"),
|
||||
*text_frags = GStrings.GetString(deathmatch ? "SCORE_FRAGS" : "SCORE_KILLS"),
|
||||
*text_name = GStrings.GetString("SCORE_NAME"),
|
||||
*text_delay = GStrings.GetString("SCORE_DELAY");
|
||||
|
||||
col2 = (displayFont->StringWidth(text_color) + 16) * FontScale;
|
||||
col3 = col2 + (displayFont->StringWidth(text_frags) + 16) * FontScale;
|
||||
|
|
|
@ -95,7 +95,7 @@ DEFINE_ACTION_FUNCTION(_Screen, GetTextScreenSize)
|
|||
void DrawFullscreenSubtitle(FFont* font, const char *text)
|
||||
{
|
||||
if (!text || !*text || !inter_subtitles) return;
|
||||
if (*text == '$') text = GStrings[text + 1];
|
||||
text = GStrings.localize(text);
|
||||
|
||||
// This uses the same scaling as regular HUD messages
|
||||
auto scale = active_con_scaletext(twod, generic_ui);
|
||||
|
@ -170,7 +170,7 @@ void DIntermissionScreen::Init(FIntermissionAction *desc, bool first)
|
|||
}
|
||||
else if (*texname == '$')
|
||||
{
|
||||
texname = GStrings(texname+1);
|
||||
texname = GStrings.GetString(texname+1);
|
||||
}
|
||||
if (texname[0] != 0)
|
||||
{
|
||||
|
@ -330,7 +330,7 @@ void DIntermissionScreenText::Init(FIntermissionAction *desc, bool first)
|
|||
{
|
||||
Super::Init(desc, first);
|
||||
mText = static_cast<FIntermissionActionTextscreen*>(desc)->mText;
|
||||
if (mText[0] == '$') mText = GStrings(&mText[1]);
|
||||
if (mText[0] == '$') mText = GStrings.GetString(&mText[1]);
|
||||
|
||||
auto lines = mText.Split("\n");
|
||||
mText = "";
|
||||
|
@ -659,7 +659,7 @@ void DIntermissionScreenCast::Drawer ()
|
|||
if (name != NULL)
|
||||
{
|
||||
auto font = generic_ui ? NewSmallFont : SmallFont;
|
||||
if (*name == '$') name = GStrings(name+1);
|
||||
if (*name == '$') name = GStrings.GetString(name+1);
|
||||
DrawText(twod, font, CR_UNTRANSLATED,
|
||||
(twod->GetWidth() - font->StringWidth (name) * CleanXfac)/2,
|
||||
(twod->GetHeight() * 180) / 200,
|
||||
|
|
|
@ -935,7 +935,7 @@ CCMD(testfinale)
|
|||
|
||||
if (argv.argc() == 2)
|
||||
{
|
||||
text = GStrings.GetString(argv[1], nullptr);
|
||||
text = GStrings.CheckString(argv[1], nullptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -17,7 +17,7 @@ LauncherBanner::LauncherBanner(Widget* parent) : Widget(parent)
|
|||
|
||||
void LauncherBanner::UpdateLanguage()
|
||||
{
|
||||
FString versionText = GStrings("PICKER_VERSION");
|
||||
FString versionText = GStrings.GetString("PICKER_VERSION");
|
||||
versionText.Substitute("%s", GetVersionString());
|
||||
VersionLabel->SetText(versionText.GetChars());
|
||||
}
|
||||
|
|
|
@ -15,8 +15,8 @@ LauncherButtonbar::LauncherButtonbar(LauncherWindow* parent) : Widget(parent)
|
|||
|
||||
void LauncherButtonbar::UpdateLanguage()
|
||||
{
|
||||
PlayButton->SetText(GStrings("PICKER_PLAY"));
|
||||
ExitButton->SetText(GStrings("PICKER_EXIT"));
|
||||
PlayButton->SetText(GStrings.GetString("PICKER_PLAY"));
|
||||
ExitButton->SetText(GStrings.GetString("PICKER_EXIT"));
|
||||
}
|
||||
|
||||
double LauncherButtonbar::GetPreferredHeight() const
|
||||
|
|
|
@ -72,8 +72,8 @@ void LauncherWindow::Exit()
|
|||
|
||||
void LauncherWindow::UpdateLanguage()
|
||||
{
|
||||
Pages->SetTabText(PlayGame, GStrings("PICKER_TAB_PLAY"));
|
||||
Pages->SetTabText(Settings, GStrings("OPTMNU_TITLE"));
|
||||
Pages->SetTabText(PlayGame, GStrings.GetString("PICKER_TAB_PLAY"));
|
||||
Pages->SetTabText(Settings, GStrings.GetString("OPTMNU_TITLE"));
|
||||
Banner->UpdateLanguage();
|
||||
PlayGame->UpdateLanguage();
|
||||
Settings->UpdateLanguage();
|
||||
|
|
|
@ -52,9 +52,9 @@ int PlayGamePage::GetSelectedGame()
|
|||
|
||||
void PlayGamePage::UpdateLanguage()
|
||||
{
|
||||
SelectLabel->SetText(GStrings("PICKER_SELECT"));
|
||||
ParametersLabel->SetText(GStrings("PICKER_ADDPARM"));
|
||||
FString welcomeText = GStrings("PICKER_WELCOME");
|
||||
SelectLabel->SetText(GStrings.GetString("PICKER_SELECT"));
|
||||
ParametersLabel->SetText(GStrings.GetString("PICKER_ADDPARM"));
|
||||
FString welcomeText = GStrings.GetString("PICKER_WELCOME");
|
||||
welcomeText.Substitute("%s", GAMENAME);
|
||||
WelcomeLabel->SetText(welcomeText.GetChars());
|
||||
}
|
||||
|
|
|
@ -132,21 +132,21 @@ void SettingsPage::Save()
|
|||
|
||||
void SettingsPage::UpdateLanguage()
|
||||
{
|
||||
LangLabel->SetText(GStrings("OPTMNU_LANGUAGE"));
|
||||
GeneralLabel->SetText(GStrings("PICKER_GENERAL"));
|
||||
ExtrasLabel->SetText(GStrings("PICKER_EXTRA"));
|
||||
FullscreenCheckbox->SetText(GStrings("PICKER_FULLSCREEN"));
|
||||
DisableAutoloadCheckbox->SetText(GStrings("PICKER_NOAUTOLOAD"));
|
||||
DontAskAgainCheckbox->SetText(GStrings("PICKER_DONTASK"));
|
||||
LightsCheckbox->SetText(GStrings("PICKER_LIGHTS"));
|
||||
BrightmapsCheckbox->SetText(GStrings("PICKER_BRIGHTMAPS"));
|
||||
WidescreenCheckbox->SetText(GStrings("PICKER_WIDESCREEN"));
|
||||
LangLabel->SetText(GStrings.GetString("OPTMNU_LANGUAGE"));
|
||||
GeneralLabel->SetText(GStrings.GetString("PICKER_GENERAL"));
|
||||
ExtrasLabel->SetText(GStrings.GetString("PICKER_EXTRA"));
|
||||
FullscreenCheckbox->SetText(GStrings.GetString("PICKER_FULLSCREEN"));
|
||||
DisableAutoloadCheckbox->SetText(GStrings.GetString("PICKER_NOAUTOLOAD"));
|
||||
DontAskAgainCheckbox->SetText(GStrings.GetString("PICKER_DONTASK"));
|
||||
LightsCheckbox->SetText(GStrings.GetString("PICKER_LIGHTS"));
|
||||
BrightmapsCheckbox->SetText(GStrings.GetString("PICKER_BRIGHTMAPS"));
|
||||
WidescreenCheckbox->SetText(GStrings.GetString("PICKER_WIDESCREEN"));
|
||||
|
||||
#ifdef RENDER_BACKENDS
|
||||
BackendLabel->SetText(GStrings("PICKER_PREFERBACKEND"));
|
||||
VulkanCheckbox->SetText(GStrings("OPTVAL_VULKAN"));
|
||||
OpenGLCheckbox->SetText(GStrings("OPTVAL_OPENGL"));
|
||||
GLESCheckbox->SetText(GStrings("OPTVAL_OPENGLES"));
|
||||
BackendLabel->SetText(GStrings.GetString("PICKER_PREFERBACKEND"));
|
||||
VulkanCheckbox->SetText(GStrings.GetString("OPTVAL_VULKAN"));
|
||||
OpenGLCheckbox->SetText(GStrings.GetString("OPTVAL_OPENGL"));
|
||||
GLESCheckbox->SetText(GStrings.GetString("OPTVAL_OPENGLES"));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
116
src/m_cheat.cpp
116
src/m_cheat.cpp
|
@ -66,7 +66,7 @@ void cht_DoMDK(player_t *player, const char *mod)
|
|||
{
|
||||
if (player->mo == NULL)
|
||||
{
|
||||
Printf("%s\n", GStrings("TXT_WHAT_KILL"));
|
||||
Printf("%s\n", GStrings.GetString("TXT_WHAT_KILL"));
|
||||
}
|
||||
else if (!deathmatch)
|
||||
{
|
||||
|
@ -119,41 +119,41 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
case CHT_GOD:
|
||||
player->cheats ^= CF_GODMODE;
|
||||
if (player->cheats & CF_GODMODE)
|
||||
msg = GStrings("STSTR_DQDON");
|
||||
msg = GStrings.GetString("STSTR_DQDON");
|
||||
else
|
||||
msg = GStrings("STSTR_DQDOFF");
|
||||
msg = GStrings.GetString("STSTR_DQDOFF");
|
||||
break;
|
||||
|
||||
case CHT_BUDDHA:
|
||||
player->cheats ^= CF_BUDDHA;
|
||||
if (player->cheats & CF_BUDDHA)
|
||||
msg = GStrings("TXT_BUDDHAON");
|
||||
msg = GStrings.GetString("TXT_BUDDHAON");
|
||||
else
|
||||
msg = GStrings("TXT_BUDDHAOFF");
|
||||
msg = GStrings.GetString("TXT_BUDDHAOFF");
|
||||
break;
|
||||
|
||||
case CHT_GOD2:
|
||||
player->cheats ^= CF_GODMODE2;
|
||||
if (player->cheats & CF_GODMODE2)
|
||||
msg = GStrings("STSTR_DQD2ON");
|
||||
msg = GStrings.GetString("STSTR_DQD2ON");
|
||||
else
|
||||
msg = GStrings("STSTR_DQD2OFF");
|
||||
msg = GStrings.GetString("STSTR_DQD2OFF");
|
||||
break;
|
||||
|
||||
case CHT_BUDDHA2:
|
||||
player->cheats ^= CF_BUDDHA2;
|
||||
if (player->cheats & CF_BUDDHA2)
|
||||
msg = GStrings("TXT_BUDDHA2ON");
|
||||
msg = GStrings.GetString("TXT_BUDDHA2ON");
|
||||
else
|
||||
msg = GStrings("TXT_BUDDHA2OFF");
|
||||
msg = GStrings.GetString("TXT_BUDDHA2OFF");
|
||||
break;
|
||||
|
||||
case CHT_NOCLIP:
|
||||
player->cheats ^= CF_NOCLIP;
|
||||
if (player->cheats & CF_NOCLIP)
|
||||
msg = GStrings("STSTR_NCON");
|
||||
msg = GStrings.GetString("STSTR_NCON");
|
||||
else
|
||||
msg = GStrings("STSTR_NCOFF");
|
||||
msg = GStrings.GetString("STSTR_NCOFF");
|
||||
break;
|
||||
|
||||
case CHT_NOCLIP2:
|
||||
|
@ -161,12 +161,12 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
if (player->cheats & CF_NOCLIP2)
|
||||
{
|
||||
player->cheats |= CF_NOCLIP;
|
||||
msg = GStrings("STSTR_NC2ON");
|
||||
msg = GStrings.GetString("STSTR_NC2ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
player->cheats &= ~CF_NOCLIP;
|
||||
msg = GStrings("STSTR_NC2OFF");
|
||||
msg = GStrings.GetString("STSTR_NC2OFF");
|
||||
}
|
||||
if (player->mo->Vel.X == 0) player->mo->Vel.X = MinVel; // force some lateral movement so that internal variables are up to date
|
||||
break;
|
||||
|
@ -174,9 +174,9 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
case CHT_NOVELOCITY:
|
||||
player->cheats ^= CF_NOVELOCITY;
|
||||
if (player->cheats & CF_NOVELOCITY)
|
||||
msg = GStrings("TXT_LEADBOOTSON");
|
||||
msg = GStrings.GetString("TXT_LEADBOOTSON");
|
||||
else
|
||||
msg = GStrings("TXT_LEADBOOTSOFF");
|
||||
msg = GStrings.GetString("TXT_LEADBOOTSOFF");
|
||||
break;
|
||||
|
||||
case CHT_FLY:
|
||||
|
@ -187,13 +187,13 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
{
|
||||
player->mo->flags |= MF_NOGRAVITY;
|
||||
player->mo->flags2 |= MF2_FLY;
|
||||
msg = GStrings("TXT_LIGHTER");
|
||||
msg = GStrings.GetString("TXT_LIGHTER");
|
||||
}
|
||||
else
|
||||
{
|
||||
player->mo->flags &= ~MF_NOGRAVITY;
|
||||
player->mo->flags2 &= ~MF2_FLY;
|
||||
msg = GStrings("TXT_GRAVITY");
|
||||
msg = GStrings.GetString("TXT_GRAVITY");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -206,25 +206,25 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
case CHT_NOTARGET:
|
||||
player->cheats ^= CF_NOTARGET;
|
||||
if (player->cheats & CF_NOTARGET)
|
||||
msg = GStrings("TXT_NOTARGET_ON");
|
||||
msg = GStrings.GetString("TXT_NOTARGET_ON");
|
||||
else
|
||||
msg = GStrings("TXT_NOTARGET_OFF");
|
||||
msg = GStrings.GetString("TXT_NOTARGET_OFF");
|
||||
break;
|
||||
|
||||
case CHT_ANUBIS:
|
||||
player->cheats ^= CF_FRIGHTENING;
|
||||
if (player->cheats & CF_FRIGHTENING)
|
||||
msg = GStrings("TXT_ANUBIS_ON");
|
||||
msg = GStrings.GetString("TXT_ANUBIS_ON");
|
||||
else
|
||||
msg = GStrings("TXT_ANUBIS_OFF");
|
||||
msg = GStrings.GetString("TXT_ANUBIS_OFF");
|
||||
break;
|
||||
|
||||
case CHT_CHASECAM:
|
||||
player->cheats ^= CF_CHASECAM;
|
||||
if (player->cheats & CF_CHASECAM)
|
||||
msg = GStrings("TXT_CHASECAM_ON");
|
||||
msg = GStrings.GetString("TXT_CHASECAM_ON");
|
||||
else
|
||||
msg = GStrings("TXT_CHASECAM_OFF");
|
||||
msg = GStrings.GetString("TXT_CHASECAM_OFF");
|
||||
R_ResetViewInterpolation ();
|
||||
break;
|
||||
|
||||
|
@ -236,7 +236,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
{
|
||||
player->mo->GiveInventoryType (type);
|
||||
}
|
||||
msg = GStrings("STSTR_CHOPPERS");
|
||||
msg = GStrings.GetString("STSTR_CHOPPERS");
|
||||
}
|
||||
// [RH] The original cheat also set powers[pw_invulnerability] to true.
|
||||
// Since this is a timer and not a boolean, it effectively turned off
|
||||
|
@ -251,12 +251,12 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
if (item != NULL)
|
||||
{
|
||||
item->Destroy ();
|
||||
msg = GStrings("TXT_CHEATPOWEROFF");
|
||||
msg = GStrings.GetString("TXT_CHEATPOWEROFF");
|
||||
}
|
||||
else
|
||||
{
|
||||
player->mo->GiveInventoryType (PClass::FindActor(NAME_PowerWeaponLevel2));
|
||||
msg = GStrings("TXT_CHEATPOWERON");
|
||||
msg = GStrings.GetString("TXT_CHEATPOWERON");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -267,7 +267,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
cht_Give (player, "ammo");
|
||||
cht_Give (player, "keys");
|
||||
cht_Give (player, "armor");
|
||||
msg = GStrings("STSTR_KFAADDED");
|
||||
msg = GStrings.GetString("STSTR_KFAADDED");
|
||||
break;
|
||||
|
||||
case CHT_IDFA:
|
||||
|
@ -275,7 +275,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
cht_Give (player, "weapons");
|
||||
cht_Give (player, "ammo");
|
||||
cht_Give (player, "armor");
|
||||
msg = GStrings("STSTR_FAADDED");
|
||||
msg = GStrings.GetString("STSTR_FAADDED");
|
||||
break;
|
||||
|
||||
case CHT_BEHOLDV:
|
||||
|
@ -320,7 +320,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
item->Destroy ();
|
||||
}
|
||||
}
|
||||
msg = GStrings("STSTR_BEHOLDX");
|
||||
msg = GStrings.GetString("STSTR_BEHOLDX");
|
||||
break;
|
||||
|
||||
case CHT_MASSACRE:
|
||||
|
@ -330,12 +330,12 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
// killough 3/22/98: make more intelligent about plural
|
||||
if (killcount == 1)
|
||||
{
|
||||
msg = GStrings(cheat == CHT_MASSACRE? "TXT_MONSTER_KILLED" : "TXT_BADDIE_KILLED");
|
||||
msg = GStrings.GetString(cheat == CHT_MASSACRE? "TXT_MONSTER_KILLED" : "TXT_BADDIE_KILLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Note: Do not use the language string directly as a format template!
|
||||
smsg = GStrings(cheat == CHT_MASSACRE? "TXT_MONSTERS_KILLED" : "TXT_BADDIES_KILLED");
|
||||
smsg = GStrings.GetString(cheat == CHT_MASSACRE? "TXT_MONSTERS_KILLED" : "TXT_BADDIES_KILLED");
|
||||
FStringf countstr("%d", killcount);
|
||||
smsg.Substitute("%d", countstr);
|
||||
msg = smsg.GetChars();
|
||||
|
@ -347,13 +347,13 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
if (player->mo != NULL && player->playerstate == PST_LIVE)
|
||||
{
|
||||
player->health = player->mo->health = player->mo->GetDefault()->health;
|
||||
msg = GStrings("TXT_CHEATHEALTH");
|
||||
msg = GStrings.GetString("TXT_CHEATHEALTH");
|
||||
}
|
||||
break;
|
||||
|
||||
case CHT_KEYS:
|
||||
cht_Give (player, "keys");
|
||||
msg = GStrings("TXT_CHEATKEYS");
|
||||
msg = GStrings.GetString("TXT_CHEATKEYS");
|
||||
break;
|
||||
|
||||
// [GRB]
|
||||
|
@ -362,7 +362,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
{
|
||||
if (player->mo->IsKindOf("PlayerChunk"))
|
||||
{
|
||||
Printf("%s\n", GStrings("TXT_NO_RESURRECT"));
|
||||
Printf("%s\n", GStrings.GetString("TXT_NO_RESURRECT"));
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
@ -374,52 +374,52 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
|
||||
case CHT_GIMMIEA:
|
||||
cht_Give (player, "ArtiInvulnerability");
|
||||
msg = GStrings("TAG_ARTIINVULNERABILITY");
|
||||
msg = GStrings.GetString("TAG_ARTIINVULNERABILITY");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEB:
|
||||
cht_Give (player, "ArtiInvisibility");
|
||||
msg = GStrings("TAG_ARTIINVISIBILITY");
|
||||
msg = GStrings.GetString("TAG_ARTIINVISIBILITY");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEC:
|
||||
cht_Give (player, "ArtiHealth");
|
||||
msg = GStrings("TAG_ARTIHEALTH");
|
||||
msg = GStrings.GetString("TAG_ARTIHEALTH");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIED:
|
||||
cht_Give (player, "ArtiSuperHealth");
|
||||
msg = GStrings("TAG_ARTISUPERHEALTH");
|
||||
msg = GStrings.GetString("TAG_ARTISUPERHEALTH");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEE:
|
||||
cht_Give (player, "ArtiTomeOfPower");
|
||||
msg = GStrings("TAG_ARTITOMEOFPOWER");
|
||||
msg = GStrings.GetString("TAG_ARTITOMEOFPOWER");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEF:
|
||||
cht_Give (player, "ArtiTorch");
|
||||
msg = GStrings("TAG_ARTITORCH");
|
||||
msg = GStrings.GetString("TAG_ARTITORCH");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEG:
|
||||
cht_Give (player, "ArtiTimeBomb");
|
||||
msg = GStrings("TAG_ARTIFIREBOMB");
|
||||
msg = GStrings.GetString("TAG_ARTIFIREBOMB");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEH:
|
||||
cht_Give (player, "ArtiEgg");
|
||||
msg = GStrings("TAG_ARTIEGG");
|
||||
msg = GStrings.GetString("TAG_ARTIEGG");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEI:
|
||||
cht_Give (player, "ArtiFly");
|
||||
msg = GStrings("TAG_ARTIFLY");
|
||||
msg = GStrings.GetString("TAG_ARTIFLY");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEJ:
|
||||
cht_Give (player, "ArtiTeleport");
|
||||
msg = GStrings("TAG_ARTITELEPORT");
|
||||
msg = GStrings.GetString("TAG_ARTITELEPORT");
|
||||
break;
|
||||
|
||||
case CHT_GIMMIEZ:
|
||||
|
@ -427,17 +427,17 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
{
|
||||
cht_Give (player, "artifacts");
|
||||
}
|
||||
msg = GStrings("TAG_ALL_ARTIFACTS");
|
||||
msg = GStrings.GetString("TAG_ALL_ARTIFACTS");
|
||||
break;
|
||||
|
||||
case CHT_TAKEWEAPS:
|
||||
cht_Takeweaps(player);
|
||||
msg = GStrings("TXT_CHEATIDKFA");
|
||||
msg = GStrings.GetString("TXT_CHEATIDKFA");
|
||||
break;
|
||||
|
||||
case CHT_NOWUDIE:
|
||||
cht_Suicide (player);
|
||||
msg = GStrings("TXT_CHEATIDDQD");
|
||||
msg = GStrings.GetString("TXT_CHEATIDDQD");
|
||||
break;
|
||||
|
||||
case CHT_ALLARTI:
|
||||
|
@ -445,18 +445,18 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
{
|
||||
cht_Give (player, "artifacts");
|
||||
}
|
||||
msg = GStrings("TXT_CHEATARTIFACTS3");
|
||||
msg = GStrings.GetString("TXT_CHEATARTIFACTS3");
|
||||
break;
|
||||
|
||||
case CHT_PUZZLE:
|
||||
cht_Give (player, "puzzlepieces");
|
||||
msg = GStrings("TXT_CHEATARTIFACTS3");
|
||||
msg = GStrings.GetString("TXT_CHEATARTIFACTS3");
|
||||
break;
|
||||
|
||||
case CHT_MDK:
|
||||
if (player->mo == nullptr)
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_WHAT_KILL"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_WHAT_KILL"));
|
||||
return;
|
||||
}
|
||||
else if (!deathmatch)
|
||||
|
@ -471,7 +471,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
|
||||
case CHT_DONNYTRUMP:
|
||||
cht_Give (player, "HealthTraining");
|
||||
msg = GStrings("TXT_MIDASTOUCH");
|
||||
msg = GStrings.GetString("TXT_MIDASTOUCH");
|
||||
break;
|
||||
|
||||
case CHT_LEGO:
|
||||
|
@ -507,34 +507,34 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
cht_Give (player, "MedPatch");
|
||||
cht_Give (player, "MedicalKit");
|
||||
cht_Give (player, "SurgeryKit");
|
||||
msg = GStrings("TXT_GOTSTUFF");
|
||||
msg = GStrings.GetString("TXT_GOTSTUFF");
|
||||
break;
|
||||
|
||||
case CHT_PUMPUPP:
|
||||
cht_Give (player, "AmmoSatchel");
|
||||
msg = GStrings("TXT_GOTSTUFF");
|
||||
msg = GStrings.GetString("TXT_GOTSTUFF");
|
||||
break;
|
||||
|
||||
case CHT_PUMPUPS:
|
||||
cht_Give (player, "UpgradeStamina", 10);
|
||||
cht_Give (player, "UpgradeAccuracy");
|
||||
msg = GStrings("TXT_GOTSTUFF");
|
||||
msg = GStrings.GetString("TXT_GOTSTUFF");
|
||||
break;
|
||||
|
||||
case CHT_CLEARFROZENPROPS:
|
||||
player->cheats &= ~(CF_FROZEN|CF_TOTALLYFROZEN);
|
||||
msg = GStrings("TXT_NOT_FROZEN");
|
||||
msg = GStrings.GetString("TXT_NOT_FROZEN");
|
||||
break;
|
||||
|
||||
case CHT_FREEZE:
|
||||
globalchangefreeze ^= 1;
|
||||
if (globalfreeze ^ globalchangefreeze)
|
||||
{
|
||||
msg = GStrings("TXT_FREEZEON");
|
||||
msg = GStrings.GetString("TXT_FREEZEON");
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = GStrings("TXT_FREEZEOFF");
|
||||
msg = GStrings.GetString("TXT_FREEZEOFF");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -546,7 +546,7 @@ void cht_DoCheat (player_t *player, int cheat)
|
|||
Printf ("%s\n", msg);
|
||||
else if (cheat != CHT_CHASECAM)
|
||||
{
|
||||
FString message = GStrings("TXT_X_CHEATS");
|
||||
FString message = GStrings.GetString("TXT_X_CHEATS");
|
||||
message.Substitute("%s", player->userinfo.GetName());
|
||||
Printf("%s: %s\n", message.GetChars(), msg);
|
||||
}
|
||||
|
|
|
@ -519,7 +519,7 @@ void WritePNGfile (FileWriter *file, const uint8_t *buffer, const PalEntry *pale
|
|||
!M_AppendPNGText (file, "Software", software) ||
|
||||
!M_FinishPNG (file))
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_SCREENSHOTERR"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_SCREENSHOTERR"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -207,7 +207,7 @@ bool M_SetSpecialMenu(FName& menu, int param)
|
|||
if ((gameinfo.flags & GI_SHAREWARE) && param > 0)
|
||||
{
|
||||
// Only Doom and Heretic have multi-episode shareware versions.
|
||||
M_StartMessage(GStrings("SWSTRING"), 1);
|
||||
M_StartMessage(GStrings.GetString("SWSTRING"), 1);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ bool M_SetSpecialMenu(FName& menu, int param)
|
|||
LastSkill = param;
|
||||
|
||||
const char *msg = AllSkills[param].MustConfirmText.GetChars();
|
||||
if (*msg==0) msg = GStrings("NIGHTMARE");
|
||||
if (*msg==0) msg = GStrings.GetString("NIGHTMARE");
|
||||
M_StartMessage (msg, 0, NAME_StartgameConfirmed);
|
||||
return false;
|
||||
}
|
||||
|
@ -248,7 +248,7 @@ bool M_SetSpecialMenu(FName& menu, int param)
|
|||
if (!usergame || (players[consoleplayer].health <= 0 && !multiplayer) || gamestate != GS_LEVEL)
|
||||
{
|
||||
// cannot save outside the game.
|
||||
M_StartMessage (GStrings("SAVEDEAD"), 1);
|
||||
M_StartMessage (GStrings.GetString("SAVEDEAD"), 1);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
@ -394,11 +394,11 @@ CCMD (menu_quit)
|
|||
{
|
||||
if (msg[1] == '*')
|
||||
{
|
||||
EndString = GStrings(msg + 2);
|
||||
EndString = GStrings.GetString(msg + 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
EndString.Format("%s\n\n%s", GStrings(msg + 1), GStrings("DOSY"));
|
||||
EndString.Format("%s\n\n%s", GStrings.GetString(msg + 1), GStrings.GetString("DOSY"));
|
||||
}
|
||||
}
|
||||
else EndString = gameinfo.quitmessages[messageindex];
|
||||
|
@ -430,7 +430,7 @@ CCMD (menu_quit)
|
|||
|
||||
void ActivateEndGameMenu()
|
||||
{
|
||||
FString tempstring = GStrings(netgame ? "NETEND" : "ENDGAME");
|
||||
FString tempstring = GStrings.GetString(netgame ? "NETEND" : "ENDGAME");
|
||||
DMenu *newmenu = CreateMessageBoxMenu(CurrentMenu, tempstring.GetChars(), 0, false, NAME_None, []()
|
||||
{
|
||||
M_ClearMenus();
|
||||
|
@ -500,7 +500,7 @@ CCMD (quicksave)
|
|||
|
||||
S_Sound(CHAN_VOICE, CHANF_UI, "menu/activate", snd_menuvolume, ATTN_NONE);
|
||||
|
||||
FString tempstring = GStrings("QSPROMPT");
|
||||
FString tempstring = GStrings.GetString("QSPROMPT");
|
||||
tempstring.Substitute("%s", savegameManager.quickSaveSlot->SaveTitle.GetChars());
|
||||
|
||||
DMenu *newmenu = CreateMessageBoxMenu(CurrentMenu, tempstring.GetChars(), 0, false, NAME_None, []()
|
||||
|
@ -524,7 +524,7 @@ CCMD (quickload)
|
|||
if (netgame)
|
||||
{
|
||||
M_StartControlPanel(true);
|
||||
M_StartMessage (GStrings("QLOADNET"), 1);
|
||||
M_StartMessage (GStrings.GetString("QLOADNET"), 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -543,7 +543,7 @@ CCMD (quickload)
|
|||
G_LoadGame(savegameManager.quickSaveSlot->Filename.GetChars());
|
||||
return;
|
||||
}
|
||||
FString tempstring = GStrings("QLPROMPT");
|
||||
FString tempstring = GStrings.GetString("QLPROMPT");
|
||||
tempstring.Substitute("%s", savegameManager.quickSaveSlot->SaveTitle.GetChars());
|
||||
|
||||
M_StartControlPanel(true);
|
||||
|
@ -567,13 +567,13 @@ CCMD (togglemessages)
|
|||
{
|
||||
if (show_messages)
|
||||
{
|
||||
Printf(TEXTCOLOR_RED "%s\n", GStrings("MSGOFF"));
|
||||
Printf(TEXTCOLOR_RED "%s\n", GStrings.GetString("MSGOFF"));
|
||||
show_messages = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
show_messages = true;
|
||||
Printf(TEXTCOLOR_RED "%s\n", GStrings("MSGON"));
|
||||
Printf(TEXTCOLOR_RED "%s\n", GStrings.GetString("MSGON"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -711,7 +711,7 @@ void M_StartupEpisodeMenu(FNewGameStartup *gs)
|
|||
continue; // We do not measure patch based entries. They are assumed to fit
|
||||
}
|
||||
const char *c = AllEpisodes[i].mEpisodeName.GetChars();
|
||||
if (*c == '$') c = GStrings(c + 1);
|
||||
if (*c == '$') c = GStrings.GetString(c + 1);
|
||||
int textwidth = ld->mFont->StringWidth(c);
|
||||
int textright = posx + textwidth;
|
||||
if (posx + textright > 320) posx = max(0, 320 - textright);
|
||||
|
@ -1261,7 +1261,7 @@ void M_StartupSkillMenu(FNewGameStartup *gs)
|
|||
continue;
|
||||
}
|
||||
const char *c = pItemText ? pItemText->GetChars() : skill.MenuName.GetChars();
|
||||
if (*c == '$') c = GStrings(c + 1);
|
||||
if (*c == '$') c = GStrings.GetString(c + 1);
|
||||
int textwidth = ld->mFont->StringWidth(c);
|
||||
int textright = posx + textwidth;
|
||||
if (posx + textright > 320) posx = max(0, 320 - textright);
|
||||
|
|
|
@ -589,7 +589,7 @@ static void HandleReply(player_t *player, bool isconsole, int nodenum, int reply
|
|||
const char *log = reply->LogString.GetChars();
|
||||
if (log[0] == '$')
|
||||
{
|
||||
log = GStrings(log + 1);
|
||||
log = GStrings.GetString(log + 1);
|
||||
}
|
||||
|
||||
player->SetLogText(log);
|
||||
|
@ -713,7 +713,7 @@ static void TerminalResponse (const char *str)
|
|||
// handle string table replacement
|
||||
if (str[0] == '$')
|
||||
{
|
||||
str = GStrings(str + 1);
|
||||
str = GStrings.GetString(str + 1);
|
||||
}
|
||||
|
||||
if (StatusBar != NULL)
|
||||
|
|
|
@ -63,7 +63,7 @@ void PrintPickupMessage(bool localview, const FString &str)
|
|||
StaticLastMessage = str;
|
||||
const char *pstr = str.GetChars();
|
||||
|
||||
if (pstr[0] == '$') pstr = GStrings(pstr + 1);
|
||||
if (pstr[0] == '$') pstr = GStrings.GetString(pstr + 1);
|
||||
if (pstr[0] != 0) Printf(PRINT_LOW, "%s\n", pstr);
|
||||
StatusBar->FlashCrosshair();
|
||||
}
|
||||
|
|
|
@ -3248,7 +3248,7 @@ const char *FBehavior::LookupString (uint32_t index, bool forprint) const
|
|||
token.Truncate(5);
|
||||
|
||||
FStringf label("TXT_ACS_%s_%d_%.5s", Level->MapName.GetChars(), index, token.GetChars());
|
||||
auto p = GStrings[label.GetChars()];
|
||||
auto p = GStrings.CheckString(label.GetChars());
|
||||
if (p) return p;
|
||||
}
|
||||
|
||||
|
@ -8503,7 +8503,7 @@ scriptwait:
|
|||
lookup = Level->Behaviors.LookupString (STACK(1), true);
|
||||
if (pcd == PCD_PRINTLOCALIZED)
|
||||
{
|
||||
lookup = GStrings(lookup);
|
||||
lookup = GStrings.GetString(lookup);
|
||||
}
|
||||
if (lookup != NULL)
|
||||
{
|
||||
|
|
|
@ -1292,7 +1292,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_Print)
|
|||
PARAM_FLOAT (time);
|
||||
PARAM_NAME (fontname);
|
||||
|
||||
if (text[0] == '$') text = GStrings(&text[1]);
|
||||
if (text[0] == '$') text = GStrings.GetString(&text[1]);
|
||||
if (self->CheckLocalView() ||
|
||||
(self->target != NULL && self->target->CheckLocalView()))
|
||||
{
|
||||
|
@ -1330,7 +1330,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_PrintBold)
|
|||
float saved = con_midtime;
|
||||
FFont *font = NULL;
|
||||
|
||||
if (text[0] == '$') text = GStrings(&text[1]);
|
||||
if (text[0] == '$') text = GStrings.GetString(&text[1]);
|
||||
if (fontname != NAME_None)
|
||||
{
|
||||
font = V_GetFont(fontname.GetChars());
|
||||
|
@ -1359,7 +1359,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_Log)
|
|||
|
||||
if (local && !self->CheckLocalView()) return 0;
|
||||
|
||||
if (text[0] == '$') text = GStrings(&text[1]);
|
||||
if (text[0] == '$') text = GStrings.GetString(&text[1]);
|
||||
FString formatted = strbin1(text.GetChars());
|
||||
Printf("%s\n", formatted.GetChars());
|
||||
return 0;
|
||||
|
|
|
@ -249,11 +249,11 @@ void ClientObituary (AActor *self, AActor *inflictor, AActor *attacker, int dmgf
|
|||
else
|
||||
{
|
||||
lookup.Format("$Obituary_%s_%s", attacker->GetClass()->TypeName.GetChars(), mod.GetChars());
|
||||
if (GStrings[lookup.GetChars() + 1]) message = lookup.GetChars();
|
||||
if (GStrings.CheckString(lookup.GetChars() + 1)) message = lookup.GetChars();
|
||||
else
|
||||
{
|
||||
lookup.Format("$Obituary_%s", attacker->GetClass()->TypeName.GetChars());
|
||||
if (GStrings[lookup.GetChars() + 1]) message = lookup.GetChars();
|
||||
if (GStrings.CheckString(lookup.GetChars() + 1)) message = lookup.GetChars();
|
||||
else
|
||||
{
|
||||
IFVIRTUALPTR(attacker, AActor, GetObituary)
|
||||
|
@ -273,7 +273,7 @@ void ClientObituary (AActor *self, AActor *inflictor, AActor *attacker, int dmgf
|
|||
|
||||
if (message != NULL && message[0] == '$')
|
||||
{
|
||||
message = GStrings.GetString(message+1, nullptr, self->player->userinfo.GetGender());
|
||||
message = GStrings.CheckString(message+1, nullptr, self->player->userinfo.GetGender());
|
||||
}
|
||||
|
||||
if (message == NULL)
|
||||
|
@ -283,16 +283,16 @@ void ClientObituary (AActor *self, AActor *inflictor, AActor *attacker, int dmgf
|
|||
if (mod == NAME_Melee)
|
||||
{
|
||||
FStringf ob("DEFHITOB_%s", cls);
|
||||
message = GStrings.GetString(ob.GetChars(), nullptr, self->player->userinfo.GetGender());
|
||||
message = GStrings.CheckString(ob.GetChars(), nullptr, self->player->userinfo.GetGender());
|
||||
}
|
||||
if (message == nullptr)
|
||||
{
|
||||
FStringf ob("DEFOB_%s", cls);
|
||||
message = GStrings.GetString(ob.GetChars(), nullptr, self->player->userinfo.GetGender());
|
||||
message = GStrings.CheckString(ob.GetChars(), nullptr, self->player->userinfo.GetGender());
|
||||
}
|
||||
if (message == nullptr)
|
||||
{
|
||||
message = GStrings.GetString("OB_DEFAULT", nullptr, self->player->userinfo.GetGender());
|
||||
message = GStrings.CheckString("OB_DEFAULT", nullptr, self->player->userinfo.GetGender());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -454,7 +454,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
|||
player->fragcount--;
|
||||
if (deathmatch && player->spreecount >= 5 && cl_showsprees)
|
||||
{
|
||||
PronounMessage (GStrings("SPREEKILLSELF"), buff,
|
||||
PronounMessage (GStrings.GetString("SPREEKILLSELF"), buff,
|
||||
player->userinfo.GetGender(), player->userinfo.GetName(),
|
||||
player->userinfo.GetName());
|
||||
StatusBar->AttachMessage (Create<DHUDMessageFadeOut>(nullptr, buff,
|
||||
|
@ -489,19 +489,19 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
|||
switch (source->player->spreecount)
|
||||
{
|
||||
case 5:
|
||||
spreemsg = GStrings("SPREE5");
|
||||
spreemsg = GStrings.GetString("SPREE5");
|
||||
break;
|
||||
case 10:
|
||||
spreemsg = GStrings("SPREE10");
|
||||
spreemsg = GStrings.GetString("SPREE10");
|
||||
break;
|
||||
case 15:
|
||||
spreemsg = GStrings("SPREE15");
|
||||
spreemsg = GStrings.GetString("SPREE15");
|
||||
break;
|
||||
case 20:
|
||||
spreemsg = GStrings("SPREE20");
|
||||
spreemsg = GStrings.GetString("SPREE20");
|
||||
break;
|
||||
case 25:
|
||||
spreemsg = GStrings("SPREE25");
|
||||
spreemsg = GStrings.GetString("SPREE25");
|
||||
break;
|
||||
default:
|
||||
spreemsg = NULL;
|
||||
|
@ -512,7 +512,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
|||
{
|
||||
if (!AnnounceSpreeLoss (this))
|
||||
{
|
||||
PronounMessage (GStrings("SPREEOVER"), buff, player->userinfo.GetGender(),
|
||||
PronounMessage (GStrings.GetString("SPREEOVER"), buff, player->userinfo.GetGender(),
|
||||
player->userinfo.GetName(), source->player->userinfo.GetName());
|
||||
StatusBar->AttachMessage (Create<DHUDMessageFadeOut> (nullptr, buff,
|
||||
1.5f, 0.2f, 0, 0, CR_WHITE, 3.f, 0.5f), MAKE_ID('K','S','P','R'));
|
||||
|
@ -554,16 +554,16 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
|||
multimsg = NULL;
|
||||
break;
|
||||
case 2:
|
||||
multimsg = GStrings("MULTI2");
|
||||
multimsg = GStrings.GetString("MULTI2");
|
||||
break;
|
||||
case 3:
|
||||
multimsg = GStrings("MULTI3");
|
||||
multimsg = GStrings.GetString("MULTI3");
|
||||
break;
|
||||
case 4:
|
||||
multimsg = GStrings("MULTI4");
|
||||
multimsg = GStrings.GetString("MULTI4");
|
||||
break;
|
||||
default:
|
||||
multimsg = GStrings("MULTI5");
|
||||
multimsg = GStrings.GetString("MULTI5");
|
||||
break;
|
||||
}
|
||||
if (multimsg != NULL)
|
||||
|
@ -587,7 +587,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
|||
if (deathmatch && fraglimit &&
|
||||
fraglimit <= D_GetFragCount (source->player))
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_FRAGLIMIT"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_FRAGLIMIT"));
|
||||
Level->ExitLevel (0, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3258,7 +3258,7 @@ FUNC(LS_SendToCommunicator)
|
|||
// Get the message from the LANGUAGE lump.
|
||||
FString msg;
|
||||
msg.Format("TXT_COMM%d", arg2);
|
||||
const char *str = GStrings[msg.GetChars()];
|
||||
const char *str = GStrings.CheckString(msg.GetChars());
|
||||
if (str != NULL)
|
||||
{
|
||||
Printf (PRINT_CHAT, "%s\n", str);
|
||||
|
|
|
@ -7700,7 +7700,7 @@ const char *AActor::GetTag(const char *def) const
|
|||
const char *tag = Tag->GetChars();
|
||||
if (tag[0] == '$')
|
||||
{
|
||||
return GStrings(tag + 1);
|
||||
return GStrings.GetString(tag + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -7730,7 +7730,7 @@ const char *AActor::GetCharacterName() const
|
|||
const char *cname = Conversation->SpeakerName.GetChars();
|
||||
if (cname[0] == '$')
|
||||
{
|
||||
return GStrings(cname + 1);
|
||||
return GStrings.GetString(cname + 1);
|
||||
}
|
||||
else return cname;
|
||||
}
|
||||
|
|
|
@ -619,7 +619,7 @@ void P_GiveSecret(FLevelLocals *Level, AActor *actor, bool printmessage, bool pl
|
|||
{
|
||||
if (printmessage)
|
||||
{
|
||||
C_MidPrint(nullptr, GStrings["SECRETMESSAGE"]);
|
||||
C_MidPrint(nullptr, GStrings.CheckString("SECRETMESSAGE"));
|
||||
if (showsecretsector && sectornum >= 0)
|
||||
{
|
||||
Printf(PRINT_HIGH | PRINT_NONOTIFY, "Secret found in sector %d\n", sectornum);
|
||||
|
@ -696,7 +696,7 @@ void P_UpdateSpecials (FLevelLocals *Level)
|
|||
{
|
||||
if (Level->maptime >= (int)(timelimit * TICRATE * 60))
|
||||
{
|
||||
Printf ("%s\n", GStrings("TXT_TIMELIMIT"));
|
||||
Printf ("%s\n", GStrings.GetString("TXT_TIMELIMIT"));
|
||||
Level->ExitLevel(0, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -376,7 +376,7 @@ void player_t::SetLogNumber (int num)
|
|||
|
||||
// First look up TXT_LOGTEXT%d in the string table
|
||||
mysnprintf(lumpname, countof(lumpname), "$TXT_LOGTEXT%d", num);
|
||||
auto text = GStrings[lumpname+1];
|
||||
auto text = GStrings.CheckString(lumpname+1);
|
||||
if (text)
|
||||
{
|
||||
SetLogText(lumpname); // set the label, not the content, so that a language change can be picked up.
|
||||
|
@ -394,7 +394,7 @@ void player_t::SetLogNumber (int num)
|
|||
// If this is an original IWAD text, try looking up its lower priority string version first.
|
||||
|
||||
mysnprintf(lumpname, countof(lumpname), "$TXT_ILOG%d", num);
|
||||
auto text = GStrings[lumpname + 1];
|
||||
auto text = GStrings.CheckString(lumpname + 1);
|
||||
if (text)
|
||||
{
|
||||
SetLogText(lumpname); // set the label, not the content, so that a language change can be picked up.
|
||||
|
@ -422,7 +422,7 @@ void player_t::SetLogText (const char *text)
|
|||
if (mo && mo->CheckLocalView())
|
||||
{
|
||||
// Print log text to console
|
||||
Printf(PRINT_HIGH | PRINT_NONOTIFY, TEXTCOLOR_GOLD "%s\n", LogText[0] == '$' ? GStrings(text + 1) : text);
|
||||
Printf(PRINT_HIGH | PRINT_NONOTIFY, TEXTCOLOR_GOLD "%s\n", LogText[0] == '$' ? GStrings.GetString(text + 1) : text);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2635,7 +2635,7 @@ DEFINE_ACTION_FUNCTION(_Console, MidPrint)
|
|||
PARAM_STRING(text);
|
||||
PARAM_BOOL(bold);
|
||||
|
||||
const char* txt = text[0] == '$' ? GStrings(&text[1]) : text.GetChars();
|
||||
const char* txt = text[0] == '$' ? GStrings.GetString(&text[1]) : text.GetChars();
|
||||
C_MidPrint(fnt, txt, bold);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -154,7 +154,7 @@ static FString LookupMusic(const char* musicname, int& order)
|
|||
// handle dehacked replacement.
|
||||
// Any music name defined this way needs to be prefixed with 'D_' because
|
||||
// Doom.exe does not contain the prefix so these strings don't either.
|
||||
const char* mus_string = GStrings[musicname + 1];
|
||||
const char* mus_string = GStrings.CheckString(musicname + 1);
|
||||
if (mus_string != nullptr)
|
||||
{
|
||||
DEH_Music << "D_" << mus_string;
|
||||
|
|
|
@ -456,7 +456,7 @@ static bool Cht_Music (cheatseq_t *cheat)
|
|||
|
||||
static bool Cht_BeholdMenu (cheatseq_t *cheat)
|
||||
{
|
||||
Printf ("%s\n", GStrings("STSTR_BEHOLD"));
|
||||
Printf ("%s\n", GStrings.GetString("STSTR_BEHOLD"));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -518,7 +518,7 @@ static bool Cht_MyPos (cheatseq_t *cheat)
|
|||
static bool Cht_Ticker (cheatseq_t *cheat)
|
||||
{
|
||||
ticker = !ticker;
|
||||
Printf ("%s\n", GStrings(ticker ? "TXT_CHEATTICKERON" : "TXT_CHEATTICKEROFF"));
|
||||
Printf ("%s\n", GStrings.GetString(ticker ? "TXT_CHEATTICKERON" : "TXT_CHEATTICKEROFF"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue