diff --git a/src/d_main.cpp b/src/d_main.cpp index a2c758e0b..b6c723704 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -2427,7 +2427,7 @@ void D_DoomMain (void) } // [RH] Initialize localizable strings. - GStrings.LoadStrings (false); + GStrings.LoadStrings (); V_InitFontColors (); diff --git a/src/doomstat.cpp b/src/doomstat.cpp index b6f0e7871..c9ff769b5 100644 --- a/src/doomstat.cpp +++ b/src/doomstat.cpp @@ -56,10 +56,10 @@ CUSTOM_CVAR (Float, teamdamage, 0.f, CVAR_SERVERINFO) } } -CUSTOM_CVAR (String, language, "auto", CVAR_ARCHIVE) +CUSTOM_CVAR (String, language, "auto", CVAR_ARCHIVE|CVAR_NOINITCALL) { SetLanguageIDs (); - GStrings.LoadStrings (false); + GStrings.UpdateLanguage(); for (auto Level : AllLevels()) { // does this even make sense on secondary levels...? diff --git a/src/gamedata/d_dehacked.cpp b/src/gamedata/d_dehacked.cpp index 907af3c70..b6e8dbec3 100644 --- a/src/gamedata/d_dehacked.cpp +++ b/src/gamedata/d_dehacked.cpp @@ -285,7 +285,7 @@ static bool including, includenotext; static const char *unknown_str = "Unknown key %s encountered in %s %d.\n"; -static FStringTable *EnglishStrings; +static StringMap EnglishStrings, DehStrings; // This is an offset to be used for computing the text stuff. // Straight from the DeHackEd source which was @@ -2166,7 +2166,7 @@ static int PatchMusic (int dummy) keystring << "MUSIC_" << Line1; - GStrings.SetString (keystring, newname); + DehStrings.Insert(keystring, newname); DPrintf (DMSG_SPAMMY, "Music %s set to:\n%s\n", keystring.GetChars(), newname); } @@ -2277,11 +2277,11 @@ static int PatchText (int oldSize) const char *str; do { - str = EnglishStrings->MatchString(oldStr); + str = EnglishStrings.MatchString(oldStr); if (str != NULL) { - GStrings.SetString(str, newStr); - EnglishStrings->SetString(str, "~~"); // set to something invalid so that it won't get found again by the next iteration or by another replacement later + DehStrings.Insert(str, newStr); + EnglishStrings.Remove(str); // remove entry so that it won't get found again by the next iteration or by another replacement later good = true; } } @@ -2334,7 +2334,7 @@ static int PatchStrings (int dummy) // Account for a discrepancy between Boom's and ZDoom's name for the red skull key pickup message const char *ll = Line1; if (!stricmp(ll, "GOTREDSKULL")) ll = "GOTREDSKUL"; - GStrings.SetString (ll, holdstring); + DehStrings.Insert(ll, holdstring); DPrintf (DMSG_SPAMMY, "%s set to:\n%s\n", Line1, holdstring.GetChars()); } @@ -2667,11 +2667,6 @@ static void UnloadDehSupp () StyleNames.Reset(); AmmoNames.Reset(); UnchangedSpriteNames.Reset(); - if (EnglishStrings != NULL) - { - delete EnglishStrings; - EnglishStrings = NULL; - } } } @@ -2701,12 +2696,8 @@ static bool LoadDehSupp () return true; } - if (EnglishStrings == NULL) - { - EnglishStrings = new FStringTable; - EnglishStrings->LoadStrings (true); - } - + if (EnglishStrings.CountUsed() == 0) + EnglishStrings = GStrings.GetDefaultStrings(); UnchangedSpriteNames.Resize(sprites.Size()); for (unsigned i = 0; i < UnchangedSpriteNames.Size(); ++i) @@ -3076,6 +3067,8 @@ void FinishDehPatch () StateMap.ShrinkToFit(); TouchedActors.Clear(); TouchedActors.ShrinkToFit(); + EnglishStrings.Clear(); + GStrings.SetDehackedStrings(std::move(DehStrings)); // Now it gets nasty: We have to fiddle around with the weapons' ammo use info to make Doom's original // ammo consumption work as intended. diff --git a/src/gamedata/stringtable.cpp b/src/gamedata/stringtable.cpp index fc5e7ea8a..95c2e754e 100644 --- a/src/gamedata/stringtable.cpp +++ b/src/gamedata/stringtable.cpp @@ -43,119 +43,31 @@ #include "v_text.h" #include "gi.h" -// PassNum identifies which language pass this string is from. -// PassNum 0 is for DeHacked. -// PassNum 1 is for * strings. -// PassNum 2+ are for specific locales. -struct FStringTable::StringEntry -{ - StringEntry *Next; - char *Name; - uint8_t PassNum; - char String[]; -}; - -FStringTable::FStringTable () -{ - for (int i = 0; i < HASH_SIZE; ++i) - { - Buckets[i] = NULL; - } -} - -FStringTable::~FStringTable () -{ - FreeData (); -} - -void FStringTable::FreeData () -{ - for (int i = 0; i < HASH_SIZE; ++i) - { - StringEntry *entry = Buckets[i], *next; - Buckets[i] = NULL; - while (entry != NULL) - { - next = entry->Next; - M_Free (entry); - entry = next; - } - } -} - -void FStringTable::FreeNonDehackedStrings () -{ - for (int i = 0; i < HASH_SIZE; ++i) - { - StringEntry *entry, *next, **pentry; - - for (pentry = &Buckets[i], entry = *pentry; entry != NULL; ) - { - next = entry->Next; - if (entry->PassNum != 0) - { - *pentry = next; - M_Free (entry); - } - else - { - pentry = &entry->Next; - } - entry = next; - } - } -} - -void FStringTable::LoadStrings (bool enuOnly) +void FStringTable::LoadStrings () { int lastlump, lump; - int i, j; - - FreeNonDehackedStrings (); lastlump = 0; while ((lump = Wads.FindLump ("LANGUAGE", &lastlump)) != -1) { - j = 0; - if (!enuOnly) - { - LoadLanguage (lump, MAKE_ID('*',0,0,0), true, ++j); - for (i = 0; i < 4; ++i) - { - LoadLanguage (lump, LanguageIDs[i], true, ++j); - LoadLanguage (lump, LanguageIDs[i] & MAKE_ID(0xff,0xff,0,0), true, ++j); - LoadLanguage (lump, LanguageIDs[i], false, ++j); - } - } - - // Fill in any missing strings with the default language - LoadLanguage (lump, MAKE_ID('*','*',0,0), true, ++j); + LoadLanguage (lump); } + UpdateLanguage(); } -void FStringTable::LoadLanguage (int lumpnum, uint32_t code, bool exactMatch, int passnum) +void FStringTable::LoadLanguage (int lumpnum) { - static bool errordone = false; - const uint32_t orMask = exactMatch ? 0 : MAKE_ID(0,0,0xff,0); - uint32_t inCode = 0; - StringEntry *entry, **pentry; - uint32_t bucket; - int cmpval; - bool skip = true; - - code |= orMask; - + bool errordone = false; + TArray activeMaps; FScanner sc(lumpnum); sc.SetCMode (true); while (sc.GetString ()) { if (sc.Compare ("[")) { // Process language identifiers - bool donot = false; - bool forceskip = false; - skip = true; + activeMaps.Clear(); sc.MustGetString (); do { @@ -164,17 +76,18 @@ void FStringTable::LoadLanguage (int lumpnum, uint32_t code, bool exactMatch, in { if (len == 1 && sc.String[0] == '~') { - donot = true; + // deprecated and ignored + sc.ScriptMessage("Deprecated option '~' found in language list"); sc.MustGetString (); continue; } if (len == 1 && sc.String[0] == '*') { - inCode = MAKE_ID('*',0,0,0); + activeMaps.Push(MAKE_ID('*', 0, 0, 0)); } else if (len == 7 && stricmp (sc.String, "default") == 0) { - inCode = MAKE_ID('*','*',0,0); + activeMaps.Push(MAKE_ID('*', '*', 0, 0)); } else { @@ -184,31 +97,14 @@ void FStringTable::LoadLanguage (int lumpnum, uint32_t code, bool exactMatch, in } else { - inCode = MAKE_ID(tolower(sc.String[0]), tolower(sc.String[1]), tolower(sc.String[2]), 0); - } - if ((inCode | orMask) == code) - { - if (donot) - { - forceskip = true; - donot = false; - } - else - { - skip = false; - } + activeMaps.Push(MAKE_ID(tolower(sc.String[0]), tolower(sc.String[1]), tolower(sc.String[2]), 0)); } sc.MustGetString (); } while (!sc.Compare ("]")); - if (donot) - { - sc.ScriptError ("You must specify a language after ~"); - } - skip |= forceskip; } else { // Process string definitions. - if (inCode == 0) + if (activeMaps.Size() == 0) { // LANGUAGE lump is bad. We need to check if this is an old binary // lump and if so just skip it to allow old WADs to run which contain @@ -222,32 +118,26 @@ void FStringTable::LoadLanguage (int lumpnum, uint32_t code, bool exactMatch, in sc.ScriptError ("Found a string without a language specified."); } - bool savedskip = skip; + bool skip = false; if (sc.Compare("$")) { sc.MustGetStringName("ifgame"); sc.MustGetStringName("("); sc.MustGetString(); - skip |= !sc.Compare(GameTypeName()); + if (sc.Compare("strifeteaser")) + { + skip |= (gameinfo.gametype != GAME_Strife) || !(gameinfo.flags & GI_SHAREWARE); + } + else + { + skip |= !sc.Compare(GameTypeName()); + } sc.MustGetStringName(")"); sc.MustGetString(); } - if (skip) - { // We're not interested in this language, so skip the string. - sc.MustGetStringName ("="); - sc.MustGetString (); - do - { - sc.MustGetString (); - } - while (!sc.Compare (";")); - skip = savedskip; - continue; - } - - FString strName (sc.String); + FName strName (sc.String); sc.MustGetStringName ("="); sc.MustGetString (); FString strText (sc.String, ProcessEscapes (sc.String)); @@ -258,39 +148,39 @@ void FStringTable::LoadLanguage (int lumpnum, uint32_t code, bool exactMatch, in strText += sc.String; sc.MustGetString (); } - - // Does this string exist? If so, should we overwrite it? - bucket = MakeKey (strName.GetChars()) & (HASH_SIZE-1); - pentry = &Buckets[bucket]; - entry = *pentry; - cmpval = 1; - while (entry != NULL) + if (!skip) { - cmpval = stricmp (entry->Name, strName.GetChars()); - if (cmpval >= 0) - break; - pentry = &entry->Next; - entry = *pentry; - } - if (cmpval == 0 && entry->PassNum >= passnum) - { - *pentry = entry->Next; - M_Free (entry); - entry = NULL; - } - if (entry == NULL || cmpval > 0) - { - entry = (StringEntry *)M_Malloc (sizeof(*entry) + strText.Len() + strName.Len() + 2); - entry->Next = *pentry; - *pentry = entry; - strcpy (entry->String, strText.GetChars()); - strcpy (entry->Name = entry->String + strText.Len() + 1, strName.GetChars()); - entry->PassNum = passnum; + // Insert the string into all relevant tables. + for (auto map : activeMaps) + { + allStrings[map].Insert(strName, strText); + } } } } } +void FStringTable::UpdateLanguage() +{ + currentLanguageSet.Clear(); + + auto checkone = [&](uint32_t lang_id) + { + auto list = allStrings.CheckKey(lang_id); + if (list && currentLanguageSet.Find(list) == currentLanguageSet.Size()) + currentLanguageSet.Push(list); + }; + + 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(MAKE_ID('*', '*', 0, 0)); +} + // Replace \ escape sequences in a string with the escaped characters. size_t FStringTable::ProcessEscapes (char *iptr) { @@ -321,27 +211,20 @@ size_t FStringTable::ProcessEscapes (char *iptr) // Finds a string by name and returns its value const char *FStringTable::operator[] (const char *name) const { - if (name == NULL) + if (name == nullptr || *name == 0) { - return NULL; + return nullptr; } - uint32_t bucket = MakeKey (name) & (HASH_SIZE - 1); - StringEntry *entry = Buckets[bucket]; - - while (entry != NULL) + FName nm(name, true); + if (nm != NAME_None) { - int cmpval = stricmp (entry->Name, name); - if (cmpval == 0) + for (auto map : currentLanguageSet) { - return entry->String; + auto item = map->CheckKey(nm); + if (item) return item->GetChars(); } - if (cmpval == 1) - { - return NULL; - } - entry = entry->Next; } - return NULL; + return nullptr; } // Finds a string by name and returns its value. If the string does @@ -352,75 +235,19 @@ const char *FStringTable::operator() (const char *name) const return str ? str : name; } -// Find a string by name. pentry1 is a pointer to a pointer to it, and entry1 is a -// pointer to it. Return NULL for entry1 if it wasn't found. -void FStringTable::FindString (const char *name, StringEntry **&pentry1, StringEntry *&entry1) -{ - uint32_t bucket = MakeKey (name) & (HASH_SIZE - 1); - StringEntry **pentry = &Buckets[bucket], *entry = *pentry; - - while (entry != NULL) - { - int cmpval = stricmp (entry->Name, name); - if (cmpval == 0) - { - pentry1 = pentry; - entry1 = entry; - return; - } - if (cmpval == 1) - { - pentry1 = pentry; - entry1 = NULL; - return; - } - pentry = &entry->Next; - entry = *pentry; - } - pentry1 = pentry; - entry1 = entry; -} // Find a string with the same exact text. Returns its name. -const char *FStringTable::MatchString (const char *string) const +const char *StringMap::MatchString (const char *string) const { - for (int i = 0; i < HASH_SIZE; ++i) + StringMap::ConstIterator it(*this); + StringMap::ConstPair *pair; + + while (it.NextPair(pair)) { - for (StringEntry *entry = Buckets[i]; entry != NULL; entry = entry->Next) + if (pair->Value.Compare(string) == 0) { - if (strcmp (entry->String, string) == 0) - { - return entry->Name; - } + return pair->Key.GetChars(); } } - return NULL; -} - -void FStringTable::SetString (const char *name, const char *newString) -{ - StringEntry **pentry, *oentry; - FindString (name, pentry, oentry); - - size_t newlen = strlen (newString); - size_t namelen = strlen (name); - - // Create a new string entry - StringEntry *entry = (StringEntry *)M_Malloc (sizeof(*entry) + newlen + namelen + 2); - strcpy (entry->String, newString); - strcpy (entry->Name = entry->String + newlen + 1, name); - entry->PassNum = 0; - - // If this is a new string, insert it. Otherwise, replace the old one. - if (oentry == NULL) - { - entry->Next = *pentry; - *pentry = entry; - } - else - { - *pentry = entry; - entry->Next = oentry->Next; - M_Free (oentry); - } + return nullptr; } diff --git a/src/gamedata/stringtable.h b/src/gamedata/stringtable.h index 792ef06b3..1c479ba5a 100644 --- a/src/gamedata/stringtable.h +++ b/src/gamedata/stringtable.h @@ -44,34 +44,41 @@ #include +#include "doomdef.h" #include "doomtype.h" +// This public interface is for Dehacked +class StringMap : public TMap +{ +public: + const char *MatchString(const char *string) const; +}; + + class FStringTable { public: - struct StringEntry; + using LangMap = TMap; - FStringTable (); - ~FStringTable (); - - void LoadStrings (bool enuOnly); + void LoadStrings (); + void UpdateLanguage(); + StringMap GetDefaultStrings() { return allStrings[MAKE_ID('*', '*', 0, 0)]; } // Dehacked needs these for comparison + void SetDehackedStrings(StringMap && map) + { + allStrings.Insert(MAKE_ID('*', '*', '*', 0), map); + UpdateLanguage(); + } const char *operator() (const char *name) const; // Never returns NULL const char *operator[] (const char *name) const; // Can return NULL - const char *MatchString (const char *string) const; - void SetString (const char *name, const char *newString); - private: - enum { HASH_SIZE = 128 }; - StringEntry *Buckets[HASH_SIZE]; + LangMap allStrings; + TArray currentLanguageSet; - void FreeData (); - void FreeNonDehackedStrings (); - void LoadLanguage (int lumpnum, uint32_t code, bool exactMatch, int passnum); + void LoadLanguage (int lumpnum); static size_t ProcessEscapes (char *str); - void FindString (const char *stringName, StringEntry **&pentry, StringEntry *&entry); }; #endif //__STRINGTABLE_H__ diff --git a/src/gamedata/w_wad.cpp b/src/gamedata/w_wad.cpp index 9564bb5ac..505796396 100644 --- a/src/gamedata/w_wad.cpp +++ b/src/gamedata/w_wad.cpp @@ -1260,6 +1260,43 @@ FResourceLump *FWadCollection::GetLumpRecord(int lump) const return LumpInfo[lump].lump; } +//========================================================================== +// +// GetLumpsInFolder +// +// Gets all lumps within a single folder in the hierarchy. +// +//========================================================================== + +static int folderentrycmp(const void *a, const void *b) +{ + auto A = (FolderEntry*)a; + auto B = (FolderEntry*)b; + return strcmp(A->name, B->name); +} + +unsigned FWadCollection::GetLumpsInFolder(const char *inpath, TArray &result) const +{ + FString path = inpath; + FixPathSeperator(path); + path.ToLower(); + if (path[path.Len() - 1] != '/') path += '/'; + result.Clear(); + for (unsigned i = 0; i < LumpInfo.Size(); i++) + { + if (LumpInfo[i].lump->FullName.IndexOf(path) == 0) + { + // Only if it hasn't been replaced. + if (Wads.CheckNumForFullName(LumpInfo[i].lump->FullName) == i) + { + result.Push({ LumpInfo[i].lump->FullName.GetChars(), i }); + } + } + } + qsort(result.Data(), result.Size(), sizeof(FolderEntry), folderentrycmp); + return result.Size(); +} + //========================================================================== // // W_ReadLump diff --git a/src/gamedata/w_wad.h b/src/gamedata/w_wad.h index c223a6bd0..469b3f668 100644 --- a/src/gamedata/w_wad.h +++ b/src/gamedata/w_wad.h @@ -101,6 +101,12 @@ private: friend class FWadCollection; }; +struct FolderEntry +{ + const char *name; + unsigned lumpnum; +}; + class FWadCollection { public: @@ -173,6 +179,7 @@ public: int GetLumpIndexNum (int lump) const; // Returns the RFF index number for this lump FResourceLump *GetLumpRecord(int lump) const; // Returns the FResourceLump, in case the caller wants to have direct access to the lump cache. bool CheckLumpName (int lump, const char *name) const; // [RH] Returns true if the names match + unsigned GetLumpsInFolder(const char *path, TArray &result) const; bool IsEncryptedFile(int lump) const; diff --git a/src/p_conversation.cpp b/src/p_conversation.cpp index cd6b7b803..7b2e08b6a 100644 --- a/src/p_conversation.cpp +++ b/src/p_conversation.cpp @@ -370,7 +370,17 @@ static FStrifeDialogueNode *ReadRetailNode (FLevelLocals *Level, const char *nam // The speaker's name, if any. speech.Sound[0] = 0; //speech.Name[16] = 0; - node->SpeakerName = speech.Name; + if (name && speech.Name[0]) + { + FString label = speech.Name; + label.ReplaceChars(' ', '_'); + label.ReplaceChars('\'', '_'); + node->SpeakerName.Format("$TXT_SPEAKER_%s", label.GetChars()); + } + else + { + node->SpeakerName = speech.Name; + } // The item the speaker should drop when killed. node->DropType = GetStrifeType(speech.DropType); @@ -459,7 +469,17 @@ static FStrifeDialogueNode *ReadTeaserNode (FLevelLocals *Level, const char *nam // The speaker's name, if any. speech.Dialogue[0] = 0; //speech.Name[16] = 0; - node->SpeakerName = speech.Name; + if (name && speech.Name[0]) + { + FString label = speech.Name; + label.ReplaceChars(' ', '_'); + label.ReplaceChars('\'', '_'); + node->SpeakerName.Format("$TXT_SPEAKER_%s", label.GetChars()); + } + else + { + node->SpeakerName = speech.Name; + } // The item the speaker should drop when killed. node->DropType = GetStrifeType (speech.DropType); diff --git a/src/p_user.cpp b/src/p_user.cpp index 6fd7070ec..87359c958 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -371,18 +371,37 @@ size_t player_t::PropagateMark() void player_t::SetLogNumber (int num) { - char lumpname[16]; + char lumpname[26]; int lumpnum; + // First look up TXT_LOGTEXT%d in the string table + mysnprintf(lumpname, countof(lumpname), "$TXT_LOGTEXT%d", num); + auto text = GStrings[lumpname+1]; + if (text) + { + SetLogText(lumpname); // set the label, not the content, so that a language change can be picked up. + return; + } + mysnprintf (lumpname, countof(lumpname), "LOG%d", num); lumpnum = Wads.CheckNumForName (lumpname); - if (lumpnum == -1) - { - // Leave the log message alone if this one doesn't exist. - //SetLogText (lumpname); - } - else + if (lumpnum != -1) { + auto fn = Wads.GetLumpFile(lumpnum); + auto wadname = Wads.GetWadName(fn); + if (!stricmp(wadname, "STRIFE0.WAD") || !stricmp(wadname, "STRIFE1.WAD") || !stricmp(wadname, "SVE.WAD")) + { + // 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]; + if (text) + { + SetLogText(lumpname); // set the label, not the content, so that a language change can be picked up. + return; + } + } + auto lump = Wads.ReadLump(lumpnum); SetLogText (lump.GetString()); } diff --git a/src/scripting/thingdef_data.cpp b/src/scripting/thingdef_data.cpp index 4a73214ab..d4a67339c 100644 --- a/src/scripting/thingdef_data.cpp +++ b/src/scripting/thingdef_data.cpp @@ -987,10 +987,11 @@ FString FStringFormat(VM_ARGS, int offset) ThrowAbortException(X_FORMAT_ERROR, "Cannot mix explicit and implicit arguments."); FString argnumstr = fmt_current.Mid(1); if (!argnumstr.IsInt()) ThrowAbortException(X_FORMAT_ERROR, "Expected a numeric value for argument number, got '%s'.", argnumstr.GetChars()); - argnum = argnumstr.ToLong(); - if (argnum < 1 || argnum >= numparam) ThrowAbortException(X_FORMAT_ERROR, "Not enough arguments for format (tried to access argument %d, %d total).", argnum, numparam); + auto argnum64 = argnumstr.ToLong(); + if (argnum64 < 1 || argnum64 >= numparam) ThrowAbortException(X_FORMAT_ERROR, "Not enough arguments for format (tried to access argument %d, %d total).", argnum64, numparam); fmt_current = "%"; haveargnums = true; + argnum = int(argnum64); } else { diff --git a/src/scripting/vm/jit_move.cpp b/src/scripting/vm/jit_move.cpp index 54c055cb2..ca584a326 100644 --- a/src/scripting/vm/jit_move.cpp +++ b/src/scripting/vm/jit_move.cpp @@ -44,7 +44,7 @@ static void CastF2S(FString *a, double b) { a->Format("%.5f", b); } static void CastV22S(FString *a, double b, double b1) { a->Format("(%.5f, %.5f)", b, b1); } static void CastV32S(FString *a, double b, double b1, double b2) { a->Format("(%.5f, %.5f, %.5f)", b, b1, b2); } static void CastP2S(FString *a, void *b) { if (b == nullptr) *a = "null"; else a->Format("%p", b); } -static int CastS2I(FString *b) { return (VM_SWORD)b->ToLong(); } +static int CastS2I(FString *b) { return (int)b->ToLong(); } static double CastS2F(FString *b) { return b->ToDouble(); } static int CastS2N(FString *b) { return b->Len() == 0 ? FName(NAME_None) : FName(*b); } static void CastN2S(FString *a, int b) { FName name = FName(ENamedName(b)); *a = name.IsValidName() ? name.GetChars() : ""; } diff --git a/src/scripting/vm/vm.h b/src/scripting/vm/vm.h index 8cd666467..d8da4d434 100644 --- a/src/scripting/vm/vm.h +++ b/src/scripting/vm/vm.h @@ -369,7 +369,7 @@ struct VMValue } if (Type == REGT_STRING) { - return s().ToLong(); + return (int)s().ToLong(); } // FIXME return 0; diff --git a/src/scripting/vmthunks.cpp b/src/scripting/vmthunks.cpp index 6512480b2..dfbf559f7 100644 --- a/src/scripting/vmthunks.cpp +++ b/src/scripting/vmthunks.cpp @@ -257,7 +257,7 @@ DEFINE_ACTION_FUNCTION_NATIVE(FStringStruct, ToInt, StringToInt) { PARAM_SELF_STRUCT_PROLOGUE(FString); PARAM_INT(base); - ACTION_RETURN_INT(self->ToLong(base)); + ACTION_RETURN_INT((int)self->ToLong(base)); } static double StringToDbl(FString *self) diff --git a/src/utility/zstring.cpp b/src/utility/zstring.cpp index ff17fd607..0eb8fe67d 100644 --- a/src/utility/zstring.cpp +++ b/src/utility/zstring.cpp @@ -1130,14 +1130,14 @@ digits = [0-9]; return yych == '\0'; } -long FString::ToLong (int base) const +int64_t FString::ToLong (int base) const { - return (long)strtoll (Chars, NULL, base); + return strtoll (Chars, NULL, base); } -unsigned long FString::ToULong (int base) const +uint64_t FString::ToULong (int base) const { - return (unsigned long)strtoull (Chars, NULL, base); + return strtoull (Chars, NULL, base); } double FString::ToDouble () const diff --git a/src/utility/zstring.h b/src/utility/zstring.h index 334fbcb1f..2924de96d 100644 --- a/src/utility/zstring.h +++ b/src/utility/zstring.h @@ -299,8 +299,8 @@ public: bool IsInt () const; bool IsFloat () const; - long ToLong (int base=0) const; - unsigned long ToULong (int base=0) const; + int64_t ToLong (int base=0) const; + uint64_t ToULong (int base=0) const; double ToDouble () const; size_t Len() const { return Data()->Len; } diff --git a/src/v_font.cpp b/src/v_font.cpp index dffdc8884..0b4ebd9a0 100644 --- a/src/v_font.cpp +++ b/src/v_font.cpp @@ -206,12 +206,703 @@ static TArray TranslationColors; // CODE -------------------------------------------------------------------- +uint16_t lowerforupper[65536]; +uint16_t upperforlower[65536]; +bool islowermap[65536]; +bool isuppermap[65536]; + +// This is a supposedly complete mapping of all lower <-> upper pairs. Most will most likely never be needed by Doom but this way there won't be any future surprises +static const uint16_t loweruppercase[] = { +0x0061,0x0041, +0x0062,0x0042, +0x0063,0x0043, +0x0064,0x0044, +0x0065,0x0045, +0x0066,0x0046, +0x0067,0x0047, +0x0068,0x0048, +0x0069,0x0049, +0x006A,0x004A, +0x006B,0x004B, +0x006C,0x004C, +0x006D,0x004D, +0x006E,0x004E, +0x006F,0x004F, +0x0070,0x0050, +0x0071,0x0051, +0x0072,0x0052, +0x0073,0x0053, +0x0074,0x0054, +0x0075,0x0055, +0x0076,0x0056, +0x0077,0x0057, +0x0078,0x0058, +0x0079,0x0059, +0x007A,0x005A, +0x00E0,0x00C0, +0x00E1,0x00C1, +0x00E2,0x00C2, +0x00E3,0x00C3, +0x00E4,0x00C4, +0x00E5,0x00C5, +0x00E6,0x00C6, +0x00E7,0x00C7, +0x00E8,0x00C8, +0x00E9,0x00C9, +0x00EA,0x00CA, +0x00EB,0x00CB, +0x00EC,0x00CC, +0x00ED,0x00CD, +0x00EE,0x00CE, +0x00EF,0x00CF, +0x00F0,0x00D0, +0x00F1,0x00D1, +0x00F2,0x00D2, +0x00F3,0x00D3, +0x00F4,0x00D4, +0x00F5,0x00D5, +0x00F6,0x00D6, +0x00F8,0x00D8, +0x00F9,0x00D9, +0x00FA,0x00DA, +0x00FB,0x00DB, +0x00FC,0x00DC, +0x00FD,0x00DD, +0x00FE,0x00DE, +0x00FF,0x0178, +0x0101,0x0100, +0x0103,0x0102, +0x0105,0x0104, +0x0107,0x0106, +0x0109,0x0108, +0x010B,0x010A, +0x010D,0x010C, +0x010F,0x010E, +0x0111,0x0110, +0x0113,0x0112, +0x0115,0x0114, +0x0117,0x0116, +0x0119,0x0118, +0x011B,0x011A, +0x011D,0x011C, +0x011F,0x011E, +0x0121,0x0120, +0x0123,0x0122, +0x0125,0x0124, +0x0127,0x0126, +0x0129,0x0128, +0x012B,0x012A, +0x012D,0x012C, +0x012F,0x012E, +0x0131,0x0049, +0x0133,0x0132, +0x0135,0x0134, +0x0137,0x0136, +0x013A,0x0139, +0x013C,0x013B, +0x013E,0x013D, +0x0140,0x013F, +0x0142,0x0141, +0x0144,0x0143, +0x0146,0x0145, +0x0148,0x0147, +0x014B,0x014A, +0x014D,0x014C, +0x014F,0x014E, +0x0151,0x0150, +0x0153,0x0152, +0x0155,0x0154, +0x0157,0x0156, +0x0159,0x0158, +0x015B,0x015A, +0x015D,0x015C, +0x015F,0x015E, +0x0161,0x0160, +0x0163,0x0162, +0x0165,0x0164, +0x0167,0x0166, +0x0169,0x0168, +0x016B,0x016A, +0x016D,0x016C, +0x016F,0x016E, +0x0171,0x0170, +0x0173,0x0172, +0x0175,0x0174, +0x0177,0x0176, +0x017A,0x0179, +0x017C,0x017B, +0x017E,0x017D, +0x0183,0x0182, +0x0185,0x0184, +0x0188,0x0187, +0x018C,0x018B, +0x0192,0x0191, +0x0199,0x0198, +0x01A1,0x01A0, +0x01A3,0x01A2, +0x01A5,0x01A4, +0x01A8,0x01A7, +0x01AD,0x01AC, +0x01B0,0x01AF, +0x01B4,0x01B3, +0x01B6,0x01B5, +0x01B9,0x01B8, +0x01BD,0x01BC, +0x01C6,0x01C4, +0x01C9,0x01C7, +0x01CC,0x01CA, +0x01CE,0x01CD, +0x01D0,0x01CF, +0x01D2,0x01D1, +0x01D4,0x01D3, +0x01D6,0x01D5, +0x01D8,0x01D7, +0x01DA,0x01D9, +0x01DC,0x01DB, +0x01DF,0x01DE, +0x01E1,0x01E0, +0x01E3,0x01E2, +0x01E5,0x01E4, +0x01E7,0x01E6, +0x01E9,0x01E8, +0x01EB,0x01EA, +0x01ED,0x01EC, +0x01EF,0x01EE, +0x01F3,0x01F1, +0x01F5,0x01F4, +0x01FB,0x01FA, +0x01FD,0x01FC, +0x01FF,0x01FE, +0x0201,0x0200, +0x0203,0x0202, +0x0205,0x0204, +0x0207,0x0206, +0x0209,0x0208, +0x020B,0x020A, +0x020D,0x020C, +0x020F,0x020E, +0x0211,0x0210, +0x0213,0x0212, +0x0215,0x0214, +0x0217,0x0216, +0x0253,0x0181, +0x0254,0x0186, +0x0257,0x018A, +0x0258,0x018E, +0x0259,0x018F, +0x025B,0x0190, +0x0260,0x0193, +0x0263,0x0194, +0x0268,0x0197, +0x0269,0x0196, +0x026F,0x019C, +0x0272,0x019D, +0x0275,0x019F, +0x0283,0x01A9, +0x0288,0x01AE, +0x028A,0x01B1, +0x028B,0x01B2, +0x0292,0x01B7, +0x03AC,0x0386, +0x03AD,0x0388, +0x03AE,0x0389, +0x03AF,0x038A, +0x03B1,0x0391, +0x03B2,0x0392, +0x03B3,0x0393, +0x03B4,0x0394, +0x03B5,0x0395, +0x03B6,0x0396, +0x03B7,0x0397, +0x03B8,0x0398, +0x03B9,0x0399, +0x03BA,0x039A, +0x03BB,0x039B, +0x03BC,0x039C, +0x03BD,0x039D, +0x03BE,0x039E, +0x03BF,0x039F, +0x03C0,0x03A0, +0x03C1,0x03A1, +0x03C3,0x03A3, +0x03C4,0x03A4, +0x03C5,0x03A5, +0x03C6,0x03A6, +0x03C7,0x03A7, +0x03C8,0x03A8, +0x03C9,0x03A9, +0x03CA,0x03AA, +0x03CB,0x03AB, +0x03CC,0x038C, +0x03CD,0x038E, +0x03CE,0x038F, +0x03E3,0x03E2, +0x03E5,0x03E4, +0x03E7,0x03E6, +0x03E9,0x03E8, +0x03EB,0x03EA, +0x03ED,0x03EC, +0x03EF,0x03EE, +0x0430,0x0410, +0x0431,0x0411, +0x0432,0x0412, +0x0433,0x0413, +0x0434,0x0414, +0x0435,0x0415, +0x0436,0x0416, +0x0437,0x0417, +0x0438,0x0418, +0x0439,0x0419, +0x043A,0x041A, +0x043B,0x041B, +0x043C,0x041C, +0x043D,0x041D, +0x043E,0x041E, +0x043F,0x041F, +0x0440,0x0420, +0x0441,0x0421, +0x0442,0x0422, +0x0443,0x0423, +0x0444,0x0424, +0x0445,0x0425, +0x0446,0x0426, +0x0447,0x0427, +0x0448,0x0428, +0x0449,0x0429, +0x044A,0x042A, +0x044B,0x042B, +0x044C,0x042C, +0x044D,0x042D, +0x044E,0x042E, +0x044F,0x042F, +0x0451,0x0401, +0x0452,0x0402, +0x0453,0x0403, +0x0454,0x0404, +0x0455,0x0405, +0x0456,0x0406, +0x0457,0x0407, +0x0458,0x0408, +0x0459,0x0409, +0x045A,0x040A, +0x045B,0x040B, +0x045C,0x040C, +0x045E,0x040E, +0x045F,0x040F, +0x0461,0x0460, +0x0463,0x0462, +0x0465,0x0464, +0x0467,0x0466, +0x0469,0x0468, +0x046B,0x046A, +0x046D,0x046C, +0x046F,0x046E, +0x0471,0x0470, +0x0473,0x0472, +0x0475,0x0474, +0x0477,0x0476, +0x0479,0x0478, +0x047B,0x047A, +0x047D,0x047C, +0x047F,0x047E, +0x0481,0x0480, +0x0491,0x0490, +0x0493,0x0492, +0x0495,0x0494, +0x0497,0x0496, +0x0499,0x0498, +0x049B,0x049A, +0x049D,0x049C, +0x049F,0x049E, +0x04A1,0x04A0, +0x04A3,0x04A2, +0x04A5,0x04A4, +0x04A7,0x04A6, +0x04A9,0x04A8, +0x04AB,0x04AA, +0x04AD,0x04AC, +0x04AF,0x04AE, +0x04B1,0x04B0, +0x04B3,0x04B2, +0x04B5,0x04B4, +0x04B7,0x04B6, +0x04B9,0x04B8, +0x04BB,0x04BA, +0x04BD,0x04BC, +0x04BF,0x04BE, +0x04C2,0x04C1, +0x04C4,0x04C3, +0x04C8,0x04C7, +0x04CC,0x04CB, +0x04D1,0x04D0, +0x04D3,0x04D2, +0x04D5,0x04D4, +0x04D7,0x04D6, +0x04D9,0x04D8, +0x04DB,0x04DA, +0x04DD,0x04DC, +0x04DF,0x04DE, +0x04E1,0x04E0, +0x04E3,0x04E2, +0x04E5,0x04E4, +0x04E7,0x04E6, +0x04E9,0x04E8, +0x04EB,0x04EA, +0x04EF,0x04EE, +0x04F1,0x04F0, +0x04F3,0x04F2, +0x04F5,0x04F4, +0x04F9,0x04F8, +0x0561,0x0531, +0x0562,0x0532, +0x0563,0x0533, +0x0564,0x0534, +0x0565,0x0535, +0x0566,0x0536, +0x0567,0x0537, +0x0568,0x0538, +0x0569,0x0539, +0x056A,0x053A, +0x056B,0x053B, +0x056C,0x053C, +0x056D,0x053D, +0x056E,0x053E, +0x056F,0x053F, +0x0570,0x0540, +0x0571,0x0541, +0x0572,0x0542, +0x0573,0x0543, +0x0574,0x0544, +0x0575,0x0545, +0x0576,0x0546, +0x0577,0x0547, +0x0578,0x0548, +0x0579,0x0549, +0x057A,0x054A, +0x057B,0x054B, +0x057C,0x054C, +0x057D,0x054D, +0x057E,0x054E, +0x057F,0x054F, +0x0580,0x0550, +0x0581,0x0551, +0x0582,0x0552, +0x0583,0x0553, +0x0584,0x0554, +0x0585,0x0555, +0x0586,0x0556, +0x10D0,0x10A0, +0x10D1,0x10A1, +0x10D2,0x10A2, +0x10D3,0x10A3, +0x10D4,0x10A4, +0x10D5,0x10A5, +0x10D6,0x10A6, +0x10D7,0x10A7, +0x10D8,0x10A8, +0x10D9,0x10A9, +0x10DA,0x10AA, +0x10DB,0x10AB, +0x10DC,0x10AC, +0x10DD,0x10AD, +0x10DE,0x10AE, +0x10DF,0x10AF, +0x10E0,0x10B0, +0x10E1,0x10B1, +0x10E2,0x10B2, +0x10E3,0x10B3, +0x10E4,0x10B4, +0x10E5,0x10B5, +0x10E6,0x10B6, +0x10E7,0x10B7, +0x10E8,0x10B8, +0x10E9,0x10B9, +0x10EA,0x10BA, +0x10EB,0x10BB, +0x10EC,0x10BC, +0x10ED,0x10BD, +0x10EE,0x10BE, +0x10EF,0x10BF, +0x10F0,0x10C0, +0x10F1,0x10C1, +0x10F2,0x10C2, +0x10F3,0x10C3, +0x10F4,0x10C4, +0x10F5,0x10C5, +0x1E01,0x1E00, +0x1E03,0x1E02, +0x1E05,0x1E04, +0x1E07,0x1E06, +0x1E09,0x1E08, +0x1E0B,0x1E0A, +0x1E0D,0x1E0C, +0x1E0F,0x1E0E, +0x1E11,0x1E10, +0x1E13,0x1E12, +0x1E15,0x1E14, +0x1E17,0x1E16, +0x1E19,0x1E18, +0x1E1B,0x1E1A, +0x1E1D,0x1E1C, +0x1E1F,0x1E1E, +0x1E21,0x1E20, +0x1E23,0x1E22, +0x1E25,0x1E24, +0x1E27,0x1E26, +0x1E29,0x1E28, +0x1E2B,0x1E2A, +0x1E2D,0x1E2C, +0x1E2F,0x1E2E, +0x1E31,0x1E30, +0x1E33,0x1E32, +0x1E35,0x1E34, +0x1E37,0x1E36, +0x1E39,0x1E38, +0x1E3B,0x1E3A, +0x1E3D,0x1E3C, +0x1E3F,0x1E3E, +0x1E41,0x1E40, +0x1E43,0x1E42, +0x1E45,0x1E44, +0x1E47,0x1E46, +0x1E49,0x1E48, +0x1E4B,0x1E4A, +0x1E4D,0x1E4C, +0x1E4F,0x1E4E, +0x1E51,0x1E50, +0x1E53,0x1E52, +0x1E55,0x1E54, +0x1E57,0x1E56, +0x1E59,0x1E58, +0x1E5B,0x1E5A, +0x1E5D,0x1E5C, +0x1E5F,0x1E5E, +0x1E61,0x1E60, +0x1E63,0x1E62, +0x1E65,0x1E64, +0x1E67,0x1E66, +0x1E69,0x1E68, +0x1E6B,0x1E6A, +0x1E6D,0x1E6C, +0x1E6F,0x1E6E, +0x1E71,0x1E70, +0x1E73,0x1E72, +0x1E75,0x1E74, +0x1E77,0x1E76, +0x1E79,0x1E78, +0x1E7B,0x1E7A, +0x1E7D,0x1E7C, +0x1E7F,0x1E7E, +0x1E81,0x1E80, +0x1E83,0x1E82, +0x1E85,0x1E84, +0x1E87,0x1E86, +0x1E89,0x1E88, +0x1E8B,0x1E8A, +0x1E8D,0x1E8C, +0x1E8F,0x1E8E, +0x1E91,0x1E90, +0x1E93,0x1E92, +0x1E95,0x1E94, +0x1EA1,0x1EA0, +0x1EA3,0x1EA2, +0x1EA5,0x1EA4, +0x1EA7,0x1EA6, +0x1EA9,0x1EA8, +0x1EAB,0x1EAA, +0x1EAD,0x1EAC, +0x1EAF,0x1EAE, +0x1EB1,0x1EB0, +0x1EB3,0x1EB2, +0x1EB5,0x1EB4, +0x1EB7,0x1EB6, +0x1EB9,0x1EB8, +0x1EBB,0x1EBA, +0x1EBD,0x1EBC, +0x1EBF,0x1EBE, +0x1EC1,0x1EC0, +0x1EC3,0x1EC2, +0x1EC5,0x1EC4, +0x1EC7,0x1EC6, +0x1EC9,0x1EC8, +0x1ECB,0x1ECA, +0x1ECD,0x1ECC, +0x1ECF,0x1ECE, +0x1ED1,0x1ED0, +0x1ED3,0x1ED2, +0x1ED5,0x1ED4, +0x1ED7,0x1ED6, +0x1ED9,0x1ED8, +0x1EDB,0x1EDA, +0x1EDD,0x1EDC, +0x1EDF,0x1EDE, +0x1EE1,0x1EE0, +0x1EE3,0x1EE2, +0x1EE5,0x1EE4, +0x1EE7,0x1EE6, +0x1EE9,0x1EE8, +0x1EEB,0x1EEA, +0x1EED,0x1EEC, +0x1EEF,0x1EEE, +0x1EF1,0x1EF0, +0x1EF3,0x1EF2, +0x1EF5,0x1EF4, +0x1EF7,0x1EF6, +0x1EF9,0x1EF8, +0x1F00,0x1F08, +0x1F01,0x1F09, +0x1F02,0x1F0A, +0x1F03,0x1F0B, +0x1F04,0x1F0C, +0x1F05,0x1F0D, +0x1F06,0x1F0E, +0x1F07,0x1F0F, +0x1F10,0x1F18, +0x1F11,0x1F19, +0x1F12,0x1F1A, +0x1F13,0x1F1B, +0x1F14,0x1F1C, +0x1F15,0x1F1D, +0x1F20,0x1F28, +0x1F21,0x1F29, +0x1F22,0x1F2A, +0x1F23,0x1F2B, +0x1F24,0x1F2C, +0x1F25,0x1F2D, +0x1F26,0x1F2E, +0x1F27,0x1F2F, +0x1F30,0x1F38, +0x1F31,0x1F39, +0x1F32,0x1F3A, +0x1F33,0x1F3B, +0x1F34,0x1F3C, +0x1F35,0x1F3D, +0x1F36,0x1F3E, +0x1F37,0x1F3F, +0x1F40,0x1F48, +0x1F41,0x1F49, +0x1F42,0x1F4A, +0x1F43,0x1F4B, +0x1F44,0x1F4C, +0x1F45,0x1F4D, +0x1F51,0x1F59, +0x1F53,0x1F5B, +0x1F55,0x1F5D, +0x1F57,0x1F5F, +0x1F60,0x1F68, +0x1F61, 0x1F69, +0x1F62, 0x1F6A, +0x1F63, 0x1F6B, +0x1F64, 0x1F6C, +0x1F65, 0x1F6D, +0x1F66, 0x1F6E, +0x1F67, 0x1F6F, +0x1F80, 0x1F88, +0x1F81, 0x1F89, +0x1F82, 0x1F8A, +0x1F83, 0x1F8B, +0x1F84, 0x1F8C, +0x1F85, 0x1F8D, +0x1F86, 0x1F8E, +0x1F87, 0x1F8F, +0x1F90, 0x1F98, +0x1F91, 0x1F99, +0x1F92, 0x1F9A, +0x1F93, 0x1F9B, +0x1F94, 0x1F9C, +0x1F95, 0x1F9D, +0x1F96, 0x1F9E, +0x1F97, 0x1F9F, +0x1FA0, 0x1FA8, +0x1FA1, 0x1FA9, +0x1FA2, 0x1FAA, +0x1FA3, 0x1FAB, +0x1FA4, 0x1FAC, +0x1FA5, 0x1FAD, +0x1FA6, 0x1FAE, +0x1FA7, 0x1FAF, +0x1FB0, 0x1FB8, +0x1FB1, 0x1FB9, +0x1FD0, 0x1FD8, +0x1FD1, 0x1FD9, +0x1FE0, 0x1FE8, +0x1FE1, 0x1FE9, +0x24D0, 0x24B6, +0x24D1, 0x24B7, +0x24D2, 0x24B8, +0x24D3, 0x24B9, +0x24D4, 0x24BA, +0x24D5, 0x24BB, +0x24D6, 0x24BC, +0x24D7, 0x24BD, +0x24D8, 0x24BE, +0x24D9, 0x24BF, +0x24DA, 0x24C0, +0x24DB, 0x24C1, +0x24DC, 0x24C2, +0x24DD, 0x24C3, +0x24DE, 0x24C4, +0x24DF, 0x24C5, +0x24E0, 0x24C6, +0x24E1, 0x24C7, +0x24E2, 0x24C8, +0x24E3, 0x24C9, +0x24E4, 0x24CA, +0x24E5, 0x24CB, +0x24E6, 0x24CC, +0x24E7, 0x24CD, +0x24E8, 0x24CE, +0x24E9, 0x24CF, +0xFF41, 0xFF21, +0xFF42, 0xFF22, +0xFF43, 0xFF23, +0xFF44, 0xFF24, +0xFF45, 0xFF25, +0xFF46, 0xFF26, +0xFF47, 0xFF27, +0xFF48, 0xFF28, +0xFF49, 0xFF29, +0xFF4A, 0xFF2A, +0xFF4B, 0xFF2B, +0xFF4C, 0xFF2C, +0xFF4D, 0xFF2D, +0xFF4E, 0xFF2E, +0xFF4F, 0xFF2F, +0xFF50, 0xFF30, +0xFF51, 0xFF31, +0xFF52, 0xFF32, +0xFF53, 0xFF33, +0xFF54, 0xFF34, +0xFF55, 0xFF35, +0xFF56, 0xFF36, +0xFF57, 0xFF37, +0xFF58, 0xFF38, +0xFF59, 0xFF39, +0xFF5A, 0xFF3A, +0, 0 +}; + +void InitLowerUpper() +{ + for (int i = 0; i < 65536; i++) + { + lowerforupper[i] = i; + upperforlower[i] = i; + } + for (int i = 0; loweruppercase[i]; i += 2) + { + auto lower = loweruppercase[i]; + auto upper = loweruppercase[i + 1]; + if (upperforlower[upper] == upper) lowerforupper[upper] = lower; // This mapping is ambiguous (see 0x0131 -> 0x0049, (small Turkish 'i' without dot.) so only pick the first match. + if (upperforlower[lower] == lower) upperforlower[lower] = upper; + isuppermap[upper] = islowermap[lower] = true; + } +} + + static bool myislower(int code) { - if (code >= 'a' && code <= 'z') - return true; - if (code != 0xF7 && code != 0xFF && (code & 0xE0) == 0xE0) - return true; + if (code >= 0 && code < 65536) return islowermap[code]; return false; } @@ -260,6 +951,7 @@ static int stripaccent(int code) return 'Y' + (code & 0x20); if (acode == 0xDE) // Thorn return 'P' + (code & 0x20); // well, it sort of looks like a 'P' + // fixme: codes above 0x100 not supported yet! return code; } @@ -305,21 +997,16 @@ FFont *V_GetFont(const char *name) // //========================================================================== -FFont::FFont (const char *name, const char *nametemplate, int first, int count, int start, int fdlump, int spacewidth, bool notranslate) +FFont::FFont (const char *name, const char *nametemplate, const char *filetemplate, int lfirst, int lcount, int start, int fdlump, int spacewidth, bool notranslate) { int i; FTextureID lump; char buffer[12]; - TArray charLumps(count, true); int maxyoffs; bool doomtemplate = gameinfo.gametype & GAME_DoomChex ? strncmp (nametemplate, "STCFN", 5) == 0 : false; - bool stcfn121 = false; noTranslate = notranslate; Lump = fdlump; - Chars.Resize(count); - FirstChar = first; - LastChar = first + count - 1; FontHeight = 0; GlobalKerning = false; FontName = name; @@ -333,10 +1020,13 @@ FFont::FFont (const char *name, const char *nametemplate, int first, int count, maxyoffs = 0; - for (i = 0; i < count; i++) + TMap charMap; + int minchar = INT_MAX; + int maxchar = INT_MIN; + for (i = 0; i < lcount; i++) { - charLumps[i] = nullptr; - mysnprintf (buffer, countof(buffer), nametemplate, i + start); + int position = '!' + i; + mysnprintf(buffer, countof(buffer), nametemplate, i + start); lump = TexMan.CheckForTexture(buffer, ETextureType::MiscPatch); if (doomtemplate && lump.isValid() && i + start == 121) @@ -349,21 +1039,55 @@ FFont::FFont (const char *name, const char *nametemplate, int first, int count, !TexMan.CheckForTexture("STCFN122", ETextureType::MiscPatch).isValid()) { // insert the incorrectly named '|' graphic in its correct position. - if (count > 124-start) charLumps[124-start] = TexMan.GetTexture(lump); - lump.SetInvalid(); - stcfn121 = true; + position = 124; } } - if (lump.isValid()) { - FTexture *pic = TexMan.GetTexture(lump); + if (position < minchar) minchar = position; + if (position > maxchar) maxchar = position; + charMap.Insert(position, TexMan.GetTexture(lump)); + } + } + if (filetemplate != nullptr) + { + TArray folderdata; + FStringf path("fonts/%s/", filetemplate); + if (Wads.GetLumpsInFolder(path, folderdata)) + { + // all valid lumps must be named with a hex number that represents its Unicode character index. + for (auto &entry : folderdata) + { + char *endp; + auto base = ExtractFileBase(entry.name); + auto position = strtoll(base.GetChars(), &endp, 16); + if ((*endp == 0 || *endp == '.' && position >= '!' && position < 0xffff)) + { + auto lump = TexMan.CheckForTexture(entry.name, ETextureType::MiscPatch); + if (lump.isValid()) + { + if ((int)position < minchar) minchar = (int)position; + if ((int)position > maxchar) maxchar = (int)position; + charMap.Insert((int)position, TexMan.GetTexture(lump)); + } + } + } + } + } + + FirstChar = minchar; + LastChar = maxchar; + auto count = maxchar - minchar + 1; + Chars.Resize(count); + + for (i = 0; i < count; i++) + { + auto lump = charMap.CheckKey(FirstChar + i); + if (lump != nullptr) + { + FTexture *pic = *lump; if (pic != nullptr) { - // set the lump here only if it represents a valid texture - if (i != 124-start || !stcfn121) - charLumps[i] = pic; - int height = pic->GetDisplayHeight(); int yoffs = pic->GetDisplayTopOffset(); @@ -371,27 +1095,26 @@ FFont::FFont (const char *name, const char *nametemplate, int first, int count, { maxyoffs = yoffs; } - height += abs (yoffs); + height += abs(yoffs); if (height > FontHeight) { FontHeight = height; } } - } - - if (charLumps[i] != nullptr) - { - charLumps[i]->SetUseType(ETextureType::FontChar); + pic->SetUseType(ETextureType::FontChar); if (!noTranslate) { - Chars[i].OriginalPic = charLumps[i]; - Chars[i].TranslatedPic = new FImageTexture(new FFontChar1 (charLumps[i]->GetImage()), ""); - Chars[i].TranslatedPic->Scale = charLumps[i]->Scale; + Chars[i].OriginalPic = pic; + Chars[i].TranslatedPic = new FImageTexture(new FFontChar1 (pic->GetImage()), ""); + Chars[i].TranslatedPic->Scale = pic->Scale; Chars[i].TranslatedPic->SetUseType(ETextureType::FontChar); TexMan.AddTexture(Chars[i].TranslatedPic); } - else Chars[i].TranslatedPic = charLumps[i]; + else + { + Chars[i].TranslatedPic = pic; + } Chars[i].XMove = Chars[i].TranslatedPic->GetDisplayWidth(); } @@ -406,9 +1129,9 @@ FFont::FFont (const char *name, const char *nametemplate, int first, int count, { SpaceWidth = spacewidth; } - else if ('N'-first >= 0 && 'N'-first < count && Chars['N' - first].TranslatedPic != nullptr) + else if ('N'-FirstChar >= 0 && 'N'-FirstChar < count && Chars['N' - FirstChar].TranslatedPic != nullptr) { - SpaceWidth = (Chars['N' - first].XMove + 1) / 2; + SpaceWidth = (Chars['N' - FirstChar].XMove + 1) / 2; } else { @@ -716,7 +1439,7 @@ int FFont::GetCharCode(int code, bool needpic) const // Try converting lowercase characters to uppercase. if (myislower(code)) { - code -= 32; + code = upperforlower[code]; if (code >= FirstChar && code <= LastChar && (!needpic || Chars[code - FirstChar].TranslatedPic != nullptr)) { return code; @@ -1826,7 +2549,7 @@ void V_InitCustomFonts() } if (format == 1) { - FFont *fnt = new FFont (namebuffer, templatebuf, first, count, start, llump, spacewidth, donttranslate); + FFont *fnt = new FFont (namebuffer, templatebuf, nullptr, first, count, start, llump, spacewidth, donttranslate); fnt->SetCursor(cursor); } else if (format == 2) @@ -2215,6 +2938,7 @@ EColorRange V_ParseFontColor (const uint8_t *&color_value, int normalcolor, int void V_InitFonts() { + InitLowerUpper(); V_InitCustomFonts (); // load the heads-up font @@ -2228,19 +2952,19 @@ void V_InitFonts() } else if (Wads.CheckNumForName ("FONTA_S") >= 0) { - SmallFont = new FFont ("SmallFont", "FONTA%02u", HU_FONTSTART, HU_FONTSIZE, 1, -1); + SmallFont = new FFont ("SmallFont", "FONTA%02u", "defsmallfont", HU_FONTSTART, HU_FONTSIZE, 1, -1); SmallFont->SetCursor('['); } else { - SmallFont = new FFont ("SmallFont", "STCFN%.3d", HU_FONTSTART, HU_FONTSIZE, HU_FONTSTART, -1); + SmallFont = new FFont ("SmallFont", "STCFN%.3d", "defsmallfont", HU_FONTSTART, HU_FONTSIZE, HU_FONTSTART, -1); } } if (!(SmallFont2 = FFont::FindFont("SmallFont2"))) // Only used by Strife { if (Wads.CheckNumForName ("STBFN033", ns_graphics) >= 0) { - SmallFont2 = new FFont ("SmallFont2", "STBFN%.3d", HU_FONTSTART, HU_FONTSIZE, HU_FONTSTART, -1); + SmallFont2 = new FFont ("SmallFont2", "STBFN%.3d", "defsmallfont2", HU_FONTSTART, HU_FONTSIZE, HU_FONTSTART, -1); } else { @@ -2271,7 +2995,7 @@ void V_InitFonts() } else { - BigFont = new FFont ("BigFont", "FONTB%02u", HU_FONTSTART, HU_FONTSIZE, 1, -1); + BigFont = new FFont ("BigFont", "FONTB%02u", "defbigfont", HU_FONTSTART, HU_FONTSIZE, 1, -1); } } } diff --git a/src/v_font.h b/src/v_font.h index 7e8373532..d67b1d899 100644 --- a/src/v_font.h +++ b/src/v_font.h @@ -79,7 +79,7 @@ extern int NumTextColors; class FFont { public: - FFont (const char *fontname, const char *nametemplate, int first, int count, int base, int fdlump, int spacewidth=-1, bool notranslate = false); + FFont (const char *fontname, const char *nametemplate, const char *filetemplate, int first, int count, int base, int fdlump, int spacewidth=-1, bool notranslate = false); virtual ~FFont (); virtual FTexture *GetChar (int code, int translation, int *const width, bool *redirected = nullptr) const; diff --git a/wadsrc/static/language.enu b/wadsrc/static/language.enu index 54cb51ef1..7ad4b6ca7 100644 --- a/wadsrc/static/language.enu +++ b/wadsrc/static/language.enu @@ -1,6 +1,6 @@ /* U.S. English. (Sorry, it's not English English.) */ -[enu default] +[en default] SECRETMESSAGE = "A secret is revealed!"; diff --git a/wadsrc/static/language.rus b/wadsrc/static/language.rus new file mode 100644 index 000000000..d43087eeb --- /dev/null +++ b/wadsrc/static/language.rus @@ -0,0 +1,2960 @@ +/* Русский язык */ + +[rus] + +SECRETMESSAGE = "Обнаружен тайник!"; + +D_DEVSTR = "Включен режим разработчика."; +D_CDROM = "Версия для диска: файл zdoom.ini в c:\\zdoomdat\n"; +PRESSKEY = "Нажмите любую клавишу."; +PRESSYN = "Нажмите Y или N."; + +QUITMSG = "Ты действительно хочешь выйти\nиз этой замечательной игры?"; +TXT_YES = "Да"; +TXT_NO = "Нет"; + +// Quit Doom 1 messages +QUITMSG1 = "Пожалуйста, не уходи!\nТут еще много демонов!"; +QUITMSG2 = "Да, давай, убегай, если эта\nкровавая баня тебе не по зубам!"; +QUITMSG3 = "На твоем месте я бы не уходил.\nDOS намного скучнее."; +QUITMSG4 = "Ты хочешь сказать, что DOS\nтебе нравится больше, чем я, а?"; +QUITMSG5 = "Не уходи! За углом\nпритаился еще один монстр!"; +QUITMSG6 = "Знаешь, по возвращении тебя\nбудут ждать большие неприятности."; +QUITMSG7 = "Давай, уходи. Мне совершенно все равно."; + +// Quit Doom II messages +QUITMSG8 = "Всерьез задумываешь выйти?\nПолагаю, это не очень-то разумно!"; +QUITMSG9 = "Не уходи! Тут чудовище из другого\nмира ожидает особого приглашения!"; +QUITMSG10 = "Вот и убирайся отсюда к\nсвоим скучным программам."; +QUITMSG11 = "Будь я твоим боссом,\nразобрался бы с тобой ровно за минуту!"; +QUITMSG12 = "Послушай, дружище. Выйдешь —\nи сбросишь свой счетчик убийств!"; +QUITMSG13 = "Уходи, уходи... но когда вернешься,\nя буду ждать тебя с битой."; +QUITMSG14 = "Тебе повезло, что я не вмажу тебе\nза то, что ты выходишь."; + +// Quit Strife messages +QUITMSG15 = "Куда ты собрался?\nА как же восстание?!"; +QUITMSG16 = "Резня прекращается...\nНа самом интересном месте!"; +QUITMSG17 = "Но на тебя вся надежда —\nты мой единственный шанс!"; +QUITMSG18 = "Никто не бросает Птицу."; +QUITMSG19 = "Я думала, ты другой..."; +QUITMSG20 = "Отлично! Пострелял и смылся!"; +QUITMSG21 = "Ты можешь уйти...\nно не можешь спрятаться..."; +QUITMSG22 = "Ха! В чем дело?\nМама зовет обедать?"; + +// Quit Chex messages +QUITMSG23 = "Не выходи сейчас! Здесь есть\nеще много флемоидов!"; +QUITMSG24 = "Не сдавайся — не то флемоиды\nполучат преимущество!"; +QUITMSG25 = "Не уходи сейчас.\nНам нужна твоя помощь!"; +QUITMSG26 = "Надеюсь, ты лишь делаешь\nперерыв на тарелку хлопьев Chex(R)."; +QUITMSG27 = "Не уходи сейчас!\nНам нужна твоя помощь!"; +QUITMSG28 = "Не оставляй\nМежгалактическую Федерацию Хлопьев!"; +QUITMSG29 = "Настоящий Воин Chex(R)\nне сдастся так быстро!"; + +LOADNET = "Невозможно загрузить сохранение в сетевой игре!\n\nНажмите любую клавишу."; +QLOADNET = "Невозможно загрузить быстрое сохранение в сетевой игре!\n\nНажмите любую клавишу."; +QSAVESPOT = "У Вас не выбран слот быстрого сохранения!\n\nНажмите любую клавишу."; +SAVEDEAD = "Невозможно сохранить игру, не начав ее!\n\nНажмите любую клавишу."; +QSPROMPT = "Перезаписать быстрое сохранение\n\n'%s'?\n\nНажмите Y или N."; +QLPROMPT = "Загрузить быстрое сохранение\n\n'%s'?\n\nНажмите Y или N."; +NEWGAME = "Невозможно начать новую игру\nпри активной сетевой игре.\n\nНажмите любую клавишу."; +NIGHTMARE = "Уверены? Этот уровень сложности\nдаже не близок к честному.\n\nНажмите Y или N."; +SWSTRING = "Это демонстрационная версия Doom.\n\nВам необходимо приобрести всю трилогию.\n\nНажмите любую клавишу."; +MSGOFF = "Сообщения ОТКЛЮЧЕНЫ"; +MSGON = "Сообщения ВКЛЮЧЕНЫ"; +NETEND = "Невозможно закончить сетевую игру!\n\nНажмите любую клавишу."; +ENDGAME = "Вы действительно хотите закончить игру?\n\nНажмите Y или N."; +DOSY = "(Нажмите Y, чтобы выйти)"; +EMPTYSTRING = "Пустой слот"; +GOTARMOR = "Получена броня."; +GOTMEGA = "Получена мегаброня!"; +GOTHTHBONUS = "Получен бонус к здоровью."; +GOTARMBONUS = "Получен бонус к броне."; +GOTSTIM = "Получен стимулятор."; +GOTMEDINEED = "Получена крайне необходимая аптечка!"; +GOTMEDIKIT = "Получена аптечка."; +GOTSUPER = "Сверхзаряд!"; +GOTBLUECARD = "Получена синяя ключ-карта."; +GOTYELWCARD = "Получена желтая ключ-карта"; +GOTREDCARD = "Получена красная ключ-карта."; +GOTBLUESKUL = "Получен синий ключ-череп."; +GOTYELWSKUL = "Получен желтый ключ-череп."; +GOTREDSKUL = "Получен красный ключ-череп."; +GOTINVUL = "Неуязвимость!"; +GOTBERSERK = "Берсерк!"; +GOTINVIS = "Частичная невидимость."; +GOTSUIT = "Костюм радиационной защиты."; +GOTMAP = "Компьютерная карта уровня."; +GOTVISOR = "Очки ночного видения."; +GOTMSPHERE = "Мегасфера!"; +GOTCLIP = "Получен магазин."; +GOTCLIPBOX = "Получена коробка патронов."; +GOTROCKET = "Получена ракета."; +GOTROCKBOX = "Получен ящик ракет."; +GOTCELL = "Получена энергобатарея."; +GOTCELLBOX = "Получен энергоаккумулятор."; +GOTSHELLS = "Получено 4 патрона для дробовика."; +GOTSHELLBOX = "Получена коробка патронов для дробовика."; +GOTBACKPACK = "Получен рюкзак, полный патронов!"; +GOTBFG9000 = "Получено BFG9000! О, да!"; +GOTCHAINGUN = "Получен пулемет!"; +GOTCHAINSAW = "Бензопила! Найди немного мяса!"; +GOTLAUNCHER = "Получена ракетница!"; +GOTPLASMA = "Получен плазмомет!"; +GOTSHOTGUN = "Получен дробовик!"; +GOTSHOTGUN2 = "Получен супер-дробовик!"; +PD_BLUEO = "Для активации нужен синий ключ"; +PD_REDO = "Для активации нужен красный ключ"; +PD_YELLOWO = "Для активации нужен желтый ключ"; +PD_BLUEK = "Нужен синий ключ, чтобы открыть"; +PD_REDK = "Нужен красный ключ, чтобы открыть"; +PD_YELLOWK = "Нужен желтый ключ, чтобы открыть"; +PD_BLUECO = "Для активации нужен синий ключ"; +PD_REDCO = "Для активации нужен красный ключ"; +PD_YELLOWCO = "Для активации нужен желтый ключ"; +PD_BLUESO = "Для активации нужен синий череп."; +PD_REDSO = "Для активации нужен красный череп."; +PD_YELLOWSO = "Для активации нужен желтый череп."; +NEWSAVE = "<Новое сохранение>"; +GGSAVED = "Игра сохранена!"; +HUSTR_MSGU = "[Сообщение не отправлено]"; +PICKUP_PISTOL_DROPPED = "Получен пистолет."; +BETA_BONUS1 = "Вы подобрали демонический кинжал."; +BETA_BONUS2 = "Вы подобрали сундук с черепом."; +BETA_BONUS3 = "Вы подобрали скипетр зла."; +BETA_BONUS4 = "Вы подобрали порочную Библию."; + +// Названия уровней +HUSTR_E1M1 = "E1M1: Ангар"; +HUSTR_E1M2 = "E1M2: Атомная Электростанция"; +HUSTR_E1M3 = "E1M3: Завод По Переработке Токсинов"; +HUSTR_E1M4 = "E1M4: Командный Пункт"; +HUSTR_E1M5 = "E1M5: Лаборатория На Фобосе"; +HUSTR_E1M6 = "E1M6: Центральный Пункт Обработки"; +HUSTR_E1M7 = "E1M7: Вычислительный Центр"; +HUSTR_E1M8 = "E1M8: Аномалия Фобоса"; +HUSTR_E1M9 = "E1M9: Военная База"; +HUSTR_E2M1 = "E2M1: Аномалия Деймоса"; +HUSTR_E2M2 = "E2M2: Хранилище"; +HUSTR_E2M3 = "E2M3: Очистительный Завод"; +HUSTR_E2M4 = "E2M4: Лаборатория На Деймосе"; +HUSTR_E2M5 = "E2M5: Командный Центр"; +HUSTR_E2M6 = "E2M6: Залы Проклятых"; +HUSTR_E2M7 = "E2M7: Нерестилище"; +HUSTR_E2M8 = "E2M8: Вавилонская Башня"; +HUSTR_E2M9 = "E2M9: Крепость Тайн"; +HUSTR_E3M1 = "E3M1: Крепость Ада"; +HUSTR_E3M2 = "E3M2: Трясина Отчаяния"; +HUSTR_E3M3 = "E3M3: Пандемониум"; +HUSTR_E3M4 = "E3M4: Дом Боли"; +HUSTR_E3M5 = "E3M5: Нечестивый Собор"; +HUSTR_E3M6 = "E3M6: Эребус"; +HUSTR_E3M7 = "E3M7: Лимб"; +HUSTR_E3M8 = "E3M8: Дит"; +HUSTR_E3M9 = "E3M9: Кроличий Сад"; +HUSTR_E4M1 = "E4M1: Преисподняя Внизу"; +HUSTR_E4M2 = "E4M2: Полная Ненависть"; +HUSTR_E4M3 = "E4M3: Отделить Злых"; +HUSTR_E4M4 = "E4M4: Неудержимое Зло"; +HUSTR_E4M5 = "E4M5: Они Покаются"; +HUSTR_E4M6 = "E4M6: Против Тебя Нечестиво"; +HUSTR_E4M7 = "E4M7: И Последовал Ад"; +HUSTR_E4M8 = "E4M8: К Мучителю"; +HUSTR_E4M9 = "E4M9: Страх"; + +hustr_1 = "уровень 1: вход"; +hustr_2 = "уровень 2: подземные ходы"; +hustr_3 = "уровень 3: вызов брошен"; +hustr_4 = "уровень 4: средоточие"; +hustr_5 = "уровень 5: сточные туннели"; +hustr_6 = "уровень 6: пресс"; +hustr_7 = "уровень 7: смертельно просто"; +hustr_8 = "уровень 8: уловки и ловушки"; +hustr_9 = "уровень 9: яма"; +hustr_10 = "уровень 10: заправочная база"; +hustr_11 = "уровень 11: круг разрушения!"; +hustr_12 = "уровень 12: фабрика"; +hustr_13 = "уровень 13: деловой район"; +hustr_14 = "уровень 14: глубочайшие логовища"; +hustr_15 = "уровень 15: промышленная зона"; +hustr_16 = "уровень 16: пригород"; +hustr_17 = "уровень 17: владения"; +hustr_18 = "уровень 18: внутренний двор"; +hustr_19 = "уровень 19: цитадель"; +hustr_20 = "уровень 20: попался!"; +hustr_21 = "уровень 21: нирвана"; +hustr_22 = "уровень 22: катакомбы"; +hustr_23 = "уровень 23: бочки веселья"; +hustr_24 = "уровень 24: пропасть"; +hustr_25 = "уровень 25: кровопады"; +hustr_26 = "уровень 26: заброшенные шахты"; +hustr_27 = "уровень 27: жилище монстров"; +hustr_28 = "уровень 28: мир духов"; +hustr_29 = "уровень 29: конец всего живого"; +hustr_30 = "уровень 30: икона греха"; +hustr_31 = "уровень 31: вольфенштайн"; +hustr_32 = "уровень 32: гроссе"; +hustr_31b = "уровень 31: idkfa"; +hustr_32b = "уровень 32: кин"; +hustr_33 = "уровень 33: предательство"; + +NHUSTR_1 = "уровень 1: база на земле"; +NHUSTR_2 = "уровень 2: лаборатории боли"; +NHUSTR_3 = "уровень 3: каньон мертвецов"; +NHUSTR_4 = "уровень 4: адская гора"; +NHUSTR_5 = "уровень 5: вивисекция"; +NHUSTR_6 = "уровень 6: кровавая преисподняя"; +NHUSTR_7 = "уровень 7: банкет у барона"; +NHUSTR_8 = "уровень 8: гробница злобы"; +NHUSTR_9 = "уровень 9: шествие демонов"; + +PHUSTR_1 = "уровень 1: конго"; +PHUSTR_2 = "уровень 2: колодец душ"; +PHUSTR_3 = "уровень 3: ацтек"; +PHUSTR_4 = "уровень 4: запертый в клетке"; +PHUSTR_5 = "уровень 5: город-призрак"; +PHUSTR_6 = "уровень 6: обитель барона"; +PHUSTR_7 = "уровень 7: двор-ловушка"; +PHUSTR_8 = "уровень 8: царство"; +PHUSTR_9 = "уровень 9: аббатство"; +PHUSTR_10 = "уровень 10: натиск"; +PHUSTR_11 = "уровень 11: преследуемый"; +PHUSTR_12 = "уровень 12: скорость"; +PHUSTR_13 = "уровень 13: склеп"; +PHUSTR_14 = "уровень 14: зарождение"; +PHUSTR_15 = "уровень 15: сумерки"; +PHUSTR_16 = "уровень 16: предзнаменование"; +PHUSTR_17 = "уровень 17: компаунд"; +PHUSTR_18 = "уровень 18: нейросфера"; +PHUSTR_19 = "уровень 19: в.р.а.г."; +PHUSTR_20 = "уровень 20: обитель смерти"; +PHUSTR_21 = "уровень 21: убийца"; +PHUSTR_22 = "уровень 22: невыполнимое задание"; +PHUSTR_23 = "уровень 23: надгробие"; +PHUSTR_24 = "уровень 24: последний рубеж"; +PHUSTR_25 = "уровень 25: храм тьмы"; +PHUSTR_26 = "уровень 26: бункер"; +PHUSTR_27 = "уровень 27: антихрист"; +PHUSTR_28 = "уровень 28: канализация"; +PHUSTR_29 = "уровень 29: одиссея шумов"; +PHUSTR_30 = "уровень 30: врата ада"; +PHUSTR_31 = "уровень 31: киберлогово"; +PHUSTR_32 = "уровень 32: иди к сему"; + +THUSTR_1 = "уровень 1: центр управления системой"; +THUSTR_2 = "уровень 2: барбекю из человечины"; +THUSTR_3 = "уровень 3: центр управления питанием"; +THUSTR_4 = "уровень 4: червоточина"; +THUSTR_5 = "уровень 5: виселица"; +THUSTR_6 = "уровень 6: открытый сезон"; +THUSTR_7 = "уровень 7: тюрьма"; +THUSTR_8 = "уровень 8: металл"; +THUSTR_9 = "уровень 9: крепость"; +THUSTR_10 = "уровень 10: искупление"; +THUSTR_11 = "уровень 11: склад"; +THUSTR_12 = "уровень 12: кратер"; +THUSTR_13 = "уровень 13: переработка ядерных отходов"; +THUSTR_14 = "уровень 14: металлургия"; +THUSTR_15 = "уровень 15: мертвая зона"; +THUSTR_16 = "уровень 16: глубочайшие достижения"; +THUSTR_17 = "уровень 17: зона обработки"; +THUSTR_18 = "уровень 18: завод"; +THUSTR_19 = "уровень 19: погрузка/отправка"; +THUSTR_20 = "уровень 20: центральный пункт обработки"; +THUSTR_21 = "уровень 21: административный центр"; +THUSTR_22 = "уровень 22: обиталище"; +THUSTR_23 = "уровень 23: лунный горный проект"; +THUSTR_24 = "уровень 24: карьер"; +THUSTR_25 = "уровень 25: логово барона"; +THUSTR_26 = "уровень 26: баллистикс"; +THUSTR_27 = "уровень 27: гора боль"; +THUSTR_28 = "уровень 28: чертовщина"; +THUSTR_29 = "уровень 29: река стикс"; +THUSTR_30 = "уровень 30: последний вызов"; +THUSTR_31 = "уровень 31: фараон"; +THUSTR_32 = "уровень 32: карибы"; + +HUSTR_TALKTOSELF1 = "Неразборчивое бормотание"; +HUSTR_TALKTOSELF2 = "Кто там?"; +HUSTR_TALKTOSELF3 = "Что это было?"; +HUSTR_TALKTOSELF4 = "Вы бредите."; +HUSTR_TALKTOSELF5 = "Какая досада..."; +HUSTR_MESSAGESENT = "[Сообщение Отправлено]"; + +AMSTR_FOLLOWON = "Привязка к игроку ВКЛЮЧЕНА"; +AMSTR_FOLLOWOFF = "Привязка к игроку ОТКЛЮЧЕНА"; +AMSTR_GRIDON = "Сетка ВКЛЮЧЕНА"; +AMSTR_GRIDOFF = "Сетка ОТКЛЮЧЕНА"; +AMSTR_TEXON = "Текстурный режим ВКЛЮЧЕН"; +AMSTR_TEXOFF = "Текстурный режим ОТКЛЮЧЕН"; +AMSTR_MARKEDSPOT = "Отметка"; +AMSTR_MARKSCLEARED = "Отметки очищены"; +STSTR_MUS = "Смена музыки"; +STSTR_NOMUS = "НЕКОРРЕКТНЫЙ ВЫБОР"; +STSTR_DQDON = "Неуязвимость включена"; +STSTR_DQDOFF = "Неуязвимость выключена"; +STSTR_DQD2ON = "Полная неуязвимость включена"; +STSTR_DQD2OFF = "Полная неуязвимость выключена"; +STSTR_KFAADDED = "Боезапас пополнен"; +STSTR_FAADDED = "Боезапас пополнен (без ключей)"; +STSTR_NCON = "Прохождение сквозь стены включено"; +STSTR_NCOFF = "Прохождение сквозь стены выключено"; +STSTR_NC2ON = "Полёт сковозь стены включен"; +STSTR_BEHOLD = "m=бессм., s=берс., i=нев., r=кос., a=крт., l=виз."; +STSTR_BEHOLDX = "Предмет переключен"; +STSTR_CHOPPERS = "... неплохо — г.м."; +STSTR_CLEV = "Смена уровня...\n"; +TXT_BUDDHAON = "Вы теперь Будда."; +TXT_BUDDHAOFF = "Вы больше не Будда."; +TXT_BUDDHA2ON = "Вы теперь абсолютный Будда."; +TXT_BUDDHA2OFF = "Вы больше не абсолютный Будда."; +TXT_DEFAULTPICKUPMSG = "Что-то подобрано"; + +E1TEXT = + "Уничтожив Баронов Ада и зачистив лунную\n" + "базу, Вы должны были победить, не так ли?\n" + "Не так ли? Где заслуженная награда и\n" + "билет домой? Что это за чертовщина?\n" + "Все должно было закончиться не так!\n" + "\n" + "Это место пахнет как гнилое мясо, а\n" + "выглядит как потерянная база на Деймосе.\n" + "Похоже, Вы застряли на «Берегах Ада», и\n" + "единственный путь теперь — пройти их.\n" + "\n" + "Чтобы продолжить погружение в игру,\n" + "пройдите эпизод «Берега Ада» и его\n" + "замечательный сиквел «Инферно»!"; +E2TEXT = + "У Вас получилось! Ужасный Лорд-\n" + "Кибердемон, правящий потерянной\n" + "деймосовской базой, был повержен\n" + "и Вы торжествуете! Но... Где Вы?\n" + "Подобравшись к краю спутника, Вы\n" + "обращаете взор вниз, чтобы\n" + "увидеть ужасную правду.\n" + "\n" + "Деймос плывет над самим Адом!\n" + "Вы никогда не слышали, чтобы кто-нибудь\n" + "сбегал из Ада, но Вы заставите ублюдков\n" + "пожалеть о том, что они прослышали о Вас.\n" + "Поспешно обвязавшись веревкой, Вы\n" + "спускаетесь на поверхность Ада.\n" + "\n" + "Теперь наступает время последней главы\n" + "— «Инферно»."; +E3TEXT = + "Омерзительный паукодемон,\n" + "руководивший вторжением на лунные\n" + "базы и принесший столь много\n" + "смертей, был окончательно повержен.\n" + "\n" + "Открывается тайникная дверь и Вы\n" + "входите в нее. Вы доказали, что\n" + "слишком круты для ада, и поэтому\n" + "Ад, наконец, поступает справедливо —\n" + "Вы выходите из двери прямо на\n" + "зеленые поля Земли. Наконец-то дом.\n" + "\n" + "Вы спрашиваете себя: что происходило\n" + "на Земле, пока Вы сражались с\n" + "высвободившимся злом? Хорошо, что ни\n" + "одно порождение Ада не смогло пройти\n" + "через эту дверь вместе с Вами..."; +E4TEXT = + "паук-предводитель, должно быть, послал\n" + "вперед свои легионы порождений ада\n" + "перед вашим последним сражением с этим\n" + "ужасным отродьем. но вы пошли до конца\n" + "и принесли вечное проклятье и страдание\n" + "этой орде так, как поступил бы настоящий\n" + "герой перед лицом смертельной опасности.\n" + "\n" + "кроме того, кто-то должен был заплатить\n" + "за то, что случилось с дэйзи, вашей\n" + "домашней крольчихой.\n" + "\n" + "теперь вы видите, сколь много боли и\n" + "крови вам пророчат полчища демонов,\n" + "неистовствующих в наших городах.\n" + "\n" + "следующая остановка — ад на земле!"; +C1TEXT = + "ВЫ ПРОШЛИ ВГЛУБЬ ЗАРАЖЕННОГО КОСМОПОРТА,\n" + "НО ЧТО-ТО ЗДЕСЬ НЕ ТАК. МОНСТРЫ ПРИНЕСЛИ\n" + "С СОБОЙ СВОЮ СОБСТВЕННУЮ РЕАЛЬНОСТЬ,\n" + "И ТЕХНИКА КОСМОПОРТА\n" + "ТРАНСФОРМИРУЕТСЯ ОТ ИХ ПРИСУТСТВИЯ.\n" + "\n" + "ВПЕРЕДИ ВЫ ВИДИТЕ АВАНПОСТ АДА.\n" + "ЕСЛИ ВАМ УДАСТСЯ ПРОБРАТЬСЯ ЧЕРЕЗ НЕГО,\n" + "ВЫ СМОЖЕТЕ ПРОНИКНУТЬ В НАСЕЛЕННЫЙ\n" + "ДЕМОНАМИ ЦЕНТР БАЗЫ И НАЙТИ УПРАВЛЯЮЩИЙ\n" + "ВЫКЛЮЧАТЕЛЬ, ДЕРЖАЩИЙ НАСЕЛЕНИЕ ЗЕМЛИ\n" + "В ЗАЛОЖНИКАХ."; +C2TEXT = + "ВЫ ПОБЕДИЛИ! ВАША ПОБЕДА ПОЗВОЛИЛА\n" + "ЧЕЛОВЕЧЕСТВУ ЭВАКУИРОВАТЬСЯ С ЗЕМЛИ\n" + "И СПАСТИСЬ ОТ КОШМАРА. ТЕПЕРЬ ВЫ —\n" + "ЕДИНСТВЕННЫЙ ЧЕЛОВЕК, ОСТАВШИЙСЯ НА\n" + "ПЛАНЕТЕ, И ЛЮДОЕДЫ-МУТАНТЫ, ХИЩНЫЕ\n" + "ИНОПЛАНЕТЯНЕ И ЗЛЫЕ ДУХИ — ВАШИ\n" + "ЕДИНСТВЕННЫЕ СОСЕДИ. УДОВЛЕТВОРЕННЫЙ\n" + "СПАСЕНИЕМ СВОЕГО ВИДА, ВЫ СПОКОЙНО\n" + "ДОЖИДАЕТЕСЬ НЕМИНУЕМОЙ ГИБЕЛИ.\n" + "\n" + "НО ВСКОРЕ РУКОВОДСТВО ЗЕМЛИ ПЕРЕДАЕТ\n" + "СООБЩЕНИЕ С ОРБИТЫ: «СЕНСОРЫ ОБНАРУЖИЛИ\n" + "ИСТОЧНИК ИНОПЛАНЕТНОГО ВТОРЖЕНИЯ. ВАША\n" + "ЗАДАЧА — ЛИКВИДИРОВАТЬ ЕГО». ИНОПЛАНЕТНАЯ\n" + "БАЗА НАХОДИТСЯ В ЦЕНТРЕ ВАШЕГО ГОРОДА,\n" + "НЕДАЛЕКО ОТ КОСМОПОРТА. МЕДЛЕННО И\n" + "МУЧИТЕЛЬНО ВЫ ВОЗВРАЩАЕТЕСЬ В БОЙ.\n"; +C3TEXT = + "ВЫ НАХОДИТЕСЬ В РАЗЛАГАЮЩЕМСЯ СЕРДЦЕ\n" + "ГОРОДА, В ОКРУЖЕНИИ ТРУПОВ СВОИХ ВРАГОВ.\n" + "ВЫ НЕ ВИДИТЕ НИКАКОГО СПОСОБА УНИЧТОЖИТЬ\n" + "ПОРТАЛ НА ЭТОЙ СТОРОНЕ, И ПОЭТОМУ, СТИСНУВ\n" + "ЗУБЫ, ПРОХОДИТЕ СКВОЗЬ НЕГО.\n" + "\n" + "ДОЛЖЕН БЫТЬ СПОСОБ ЗАКРЫТЬ ПОРТАЛ\n" + "НА ДРУГОЙ СТОРОНЕ. И КАКОЕ ВАМ ДЕЛО ДО\n" + "ТОГО, ЧТО ПРИДЕТСЯ ПРОЙТИ ЧЕРЕЗ АД, ЧТОБЫ\n" + "ДОБРАТЬСЯ ДО НЕГО?"; +C4TEXT = + "ЖУТЧАЙШИЙ ЛИК САМОГО БОЛЬШОГО ДЕМОНА,\n" + "КОТОРОГО ВЫ КОГДА-ЛИБО ВИДЕЛИ, РУШИТСЯ\n" + "НА ВАШИХ ГЛАЗАХ ПОСЛЕ ТОГО, КАК ВЫ\n" + "НАКАЧАЛИ РАКЕТАМИ ЕГО НЕЗАЩИЩЕННЫЙ\n" + "МОЗГ. МОНСТР УГАСАЕТ И ГИБНЕТ,\n" + "РАЗРУШАЯ БЕСЧИСЛЕННЫЕ МИЛИ ПОВЕРХНОСТИ\n" + "АДА.\n" + "\n" + "ВЫ СДЕЛАЛИ ЭТО. ВТОРЖЕНИЮ КОНЕЦ. ЗЕМЛЯ\n" + "СПАСЕНА. АД ПОВЕРЖЕН. ВЫ СПРАШИВАЕТЕ\n" + "СЕБЯ: КУДА ТЕПЕРЬ ПОСЛЕ СМЕРТИ БУДУТ\n" + "ПОПАДАТЬ ПЛОХИЕ ЛЮДИ? УТЕРЕВ ПОТ\n" + "СО ЛБА, ВЫ НАЧИНАЕТЕ ДОЛГОЕ ПУТЕШЕСТВИЕ\n" + "ОБРАТНО ДОМОЙ. ВОССТАНОВЛЕНИЕ ЗЕМЛИ\n" + "ДОЛЖНО БЫТЬ ГОРАЗДО БОЛЕЕ ИНТЕРЕСНЫМ\n" + "ЗАНЯТИЕМ, НЕЖЕЛИ ЕЕ РАЗРУШЕНИЕ."; +C5TEXT = + "ПОЗДРАВЛЯЕМ, ВЫ НАШЛИ СЕКРЕТНЫЙ УРОВЕНЬ!\n" + "ПОХОЖЕ, ОН БЫЛ ПОСТРОЕН ЛЮДЬМИ, А НЕ\n" + "ДЕМОНАМИ. ЛЮБОПЫТНО, КТО ЖЕ НАСЕЛЯЕТ\n" + "ЭТОТ УГОЛОК АДА?\n"; +C6TEXT = + "ПОЗДРАВЛЯЕМ, ВЫ НАШЛИ СВЕРХСЕКРЕТНЫЙ\n" + "УРОВЕНЬ! ЛУЧШЕ БЫ ВАМ СТРЕМИТЕЛЬНО\n" + "ПРОРВАТЬСЯ СКВОЗЬ НЕГО!"; +P1TEXT = + "Вы со злорадством смотрите на горящий\n" + "каркас Стража. С его смертью Вы вырвали\n" + "Ускоритель из зловонных когтей Ада.\n" + "Расслабившись, Вы окидываете взглядом\n" + "помещение. Проклятье! Тут должен быть\n" + "хотя бы один рабочий прототип, но\n" + "демоны, должно быть, забрали его с собой.\n" + "\n" + "Вы должны найти прототип, иначе все Ваши\n" + "прошлые усилия окажутся напрасными.\n" + "Продолжайте двигаться, продолжайте\n" + "сражаться, продолжайте убивать. И да,\n" + "продолжайте выживать."; +P2TEXT = + "Даже смертельный лабиринт арчвайлов не\n" + "смог остановить Вас. Вы добрались до\n" + "прототипа Ускорителя, который вскоре\n" + "был уничтожен раз и навсегда.\n" + "\n" + "Уничтожение — Ваша специальность."; +P3TEXT = + "Вы пробили путь в самое\n" + "сердце дьявольского улья. Настало время\n" + "для миссии «найти и уничтожить»,\n" + "объектом которой станет Привратник,\n" + "чьи нечестивые отпрыски низвергаются\n" + "на Землю.\n" + "\n" + "Да, он плохой. Но Вы знаете кто еще хуже!\n" + "\n" + "Злобно ухмыляясь, Вы проверяете свое\n" + "снаряжение, и готовитесь преподать\n" + "ублюдку немного Ада Вашего\n" + "собственного производства!"; +P4TEXT = + "После уничтожения лика Привратника\n" + "начинают формироваться инвертированные\n" + "Врата, которые затягивают в себя\n" + "последние обломки Ускорителя и\n" + "нескольких оставшихся демонов.\n" + "\n" + "Готово. Ад вернулся на круги своя,\n" + "поглощая лишь грешных людей, а не\n" + "праведных.\n" + "\n" + "Не забудьте попросить внуков положить\n" + "ракетницу в Ваш гроб. Если после смерти\n" + "Вы попадете в Ад, она понадобится\n" + "для небольшой последней зачистки..."; +P5TEXT = + "Вы нашли второй по сложности уровень,\n" + "который у нас есть. Надеемся, Вы\n" + "сохранили игру на предыдущем уровне\n" + "или еще раньше. Если нет, приготовьтесь\n" + "много умирать.\n" + "\n" + "Уровень рассчитан исключительно на\n" + "профессионалов."; +P6TEXT = + "Спорим, Вы удивлялись, какой же уровень\n" + "САМЫЙ сложный? Теперь Вы знаете.\n" + "Никто не выберется живым."; +T1TEXT = + "Сражаясь, Вы выбрались из зараженных\n" + "экспериментальных лабораторий.\n" + "Похоже, ОАК растранжирила и их, несмотря\n" + "на огромные корпоративные доходы. Они\n" + "даже не позаботились о покупке страховок\n" + "для своих сотрудников...\n" + "\n" + "Впереди расположен военный комплекс,\n" + "кишащий вирусами и только ждущий\n" + "как бы вгрызться в Вашу плоть. Что ж,\n" + "если повезет, в комплексе все еще\n" + "должны оставаться боеприпасы."; +T2TEXT = + "Впереди слышен металлический скрежет\n" + "тяжелых механизмов. Вы уверены, что они\n" + "не штампуют очередную партию\n" + "дьявольских отродий, но даже если\n" + "и так, Вы к этому готовы.\n" + "\n" + "Эти звуки могут означать очередной\n" + "кровавый фестиваль, но Вы чувствуете\n" + "себя как тысячи головорезов,\n" + "собранных в одном безумном убийце.\n" + "\n" + "Вы так просто не сдадитесь."; +T3TEXT = + "Открывающаяся перспектива выглядит\n" + "чертовски знакомой и пахнет\n" + "словно зажаренные экскременты.\n" + "Это место не нравилось Вам раньше,\n" + "и Вы чертовски уверены, что не\n" + "понравится и сейчас. Чем больше Вы\n" + "размышляете над этим, тем печальнее\n" + "все становится.\n" + "\n" + "Взвесив свое оружие, Вы зловеще\n" + "ухмыляетесь. Настало время всерьез\n" + "надрать кое-кому задницу."; +T4TEXT = + "Внезапно все окуталось тишиной до\n" + "самого горизонта. Агонизирующее Адское\n" + "эхо стихло, кошмарное небо стало вновь\n" + "голубым, трупы монстров начали\n" + "разлагаться со зловонным смрадом.\n" + "Боже, неужели Вы и правда победили?\n" + "\n" + "После короткого землетрясения, из\n" + "разгромленного черепа Изрыгателя\n" + "Демонов начинает пробиваться яркое\n" + "синее свечение."; +T5TEXT = + "И что теперь? Все выглядит совершенно\n" + "по-другому, словно покои владыки\n" + "Тутанхамона.\n" + "\n" + "Что ж, что бы не ожидало Вас внутри,\n" + "хуже уже быть не может, не так ли?\n" + "Или может лучше не тревожить\n" + "спящих богов..."; +T6TEXT = + "Пришло время для отпуска. Ей-богу,\n" + "вороша недра Ада, Вы только о нем\n" + "и мечтали! Пусть кто-нибудь другой\n" + "теперь борется с полчищами демонов.\n" + "\n" + "Впереди располагается тихий городок с\n" + "неспешно текущей водой, причудливыми\n" + "домиками, и, вероятно, не населенный\n" + "адским отродьем.\n" + "\n" + "Покинув транспортное средство,\n" + "Вы слышите топот железного копыта\n" + "кибердемона." + +NERVETEXT = + "НЕПРИЯТНОСТИ, КАЗАЛОСЬ, НАСТИГЛИ В САМЫЙ\n" + "НЕПОДХОДЯЩИЙ МОМЕНТ...\b" + "НЕСМОТРЯ НА РАЗГРОМНОЕ ПОРАЖЕНИЕ СИЛ\n" + "АДА, ОБЕЗУМЕВШИЙ КИБЕРДЕМОН РЕШИЛ, ЧТО\n" + "СМОЖЕТ ИЗМЕНИТЬ ХОД СОБЫТИЙ И ВНОВЬ\n" + "ПОВЕРГНУТЬ ЗЕМЛЮ В ДЕМОНИЧЕСКИЙ ХАОС.\n" + "\b" + "И МУЧИТЕЛЬНАЯ СМЕРТЬ СТАЛА ПЛАТОЙ ЗА ЭТУ\n" + "РОКОВУЮ ОШИБКУ. СТЕНЫ ЕГО ОБИТЕЛИ ЕЩЕ\n" + "ДОЛГО БУДУТ ПОМНИТЬ ПРЕДСМЕРТНУЮ АГОНИЮ\n" + "ЭТОГО ПОРОЖДЕНИЯ ПОТУСТОРОННИХ СИЛ.\n" + "И ПУСТЬ ЕГО ГНИЮЩИЕ ОСТАНКИ СТАНУТ\n" + "ВЕЧНЫМ НАПОМИНАНИЕМ ДЛЯ ТЕХ, КТО ВНОВЬ\n" + "ОСМЕЛИТСЯ НАРУШИТЬ ПОКОЙ НАШЕГО МИРА.\n" + "\n" + "ЭТА МИССИЯ ЗАВЕРШЕНА."; + +// Cast list (должны идти в этом порядке) +CC_ZOMBIE = "ЗОМБИ"; +CC_SHOTGUN = "ЗОМБИ-СЕРЖАНТ"; +CC_HEAVY = "ПУЛЕМЕТЧИК"; +CC_IMP = "ИМП"; +CC_DEMON = "ДЕМОН"; +CC_LOST = "ПОТЕРЯННАЯ ДУША"; +CC_CACO = "КАКОДЕМОН"; +CC_HELL = "РЫЦАРЬ АДА"; +CC_BARON = "БАРОН АДА"; +CC_ARACH = "АРАХНОТРОН"; +CC_PAIN = "ЭЛЕМЕНТАЛЬ БОЛИ"; +CC_REVEN = "РЕВЕНАНТ"; +CC_MANCU = "МАНКУБУС"; +CC_ARCH = "АРЧВАЙЛ"; +CC_SPIDER = "ПАУК-ПРЕДВОДИТЕЛЬ"; +CC_CYBER = "КИБЕРДЕМОН"; +CC_HERO = "НАШ ГЕРОЙ"; + +// Friendly names +FN_ZOMBIE = "Зомби"; +FN_SHOTGUN = "Сержант"; +FN_HEAVY = "Пулеметчик"; +FN_IMP = "Имп"; +FN_DEMON = "Демон"; +FN_SPECTRE = "Спектр"; +FN_LOST = "Потерянная душа"; +FN_CACO = "Какодемон"; +FN_HELL = "Рыцарь Ада"; +FN_BARON = "Барон Ада"; +FN_ARACH = "Арахнотрон"; +FN_PAIN = "Элементаль боли"; +FN_REVEN = "Ревенант"; +FN_MANCU = "Манкубус"; +FN_ARCH = "Арчвайл"; +FN_SPIDER = "Паук-предводитель"; +FN_CYBER = "Кибердемон"; +FN_WOLFSS = "Нацист"; +FN_DOG = "Собака"; + +// Новые строки из BOOM +PD_BLUEC = "Для активации нужна синяя карта"; +PD_REDC = "Для активации нужна красная карта"; +PD_YELLOWC = "Для активации нужна желтая карта"; +PD_BLUES = "Для активации нужен синий череп"; +PD_REDS = "Для активации нужен красный череп"; +PD_YELLOWS = "Для активации нужен желтый череп"; +PD_ANY = "Для активации нужен любой ключ"; +PD_ANYOBJ = "Для активации нужен любой ключ"; +PD_ALL3 = "Для активации требуются все три ключа"; +PD_ALL3O = "Для активации требуются все три ключа"; +PD_ALL6 = "Для активации требуются все шесть ключей"; +PD_ALL6O = "Для активации требуются все шесть ключей"; +PD_ALLKEYS = "Для активации требуются все ключи"; + +// MBF (BOOM?) narration backgrounds +bgflatE1 = "FLOOR4_8"; +bgflatE2 = "SFLR6_1"; +bgflatE3 = "MFLR8_4"; +bgflatE4 = "MFLR8_3"; +bgflat06 = "SLIME16"; +bgflat11 = "RROCK14"; +bgflat20 = "RROCK07"; +bgflat30 = "RROCK17"; +bgflat15 = "RROCK13"; +bgflat31 = "RROCK19"; +bgcastcall = "BOSSBACK"; + +// Gameflow messages +TXT_FRAGLIMIT = "Достигнут лимит фрагов."; +TXT_TIMELIMIT = "Достигнут лимит времени."; + +// Spree messages +SPREEKILLSELF = "Игрок %o хорошо смотрелся, пока не покончил с собой!"; +SPREEOVER = "Игрок %k прервал череду убийств игрока %o"; +SPREE5 = "Игрок %k совершил череду убийств!"; +SPREE10 = "Игрок %k в неистовстве!"; +SPREE15 = "Игрок %k доминирует!"; +SPREE20 = "Игрок %k неостановимый!"; +SPREE25 = "Игрок %k богоподобен!"; + +// Multikill messages +MULTI2 = "Двойное убийство!"; +MULTI3 = "Массовое убийство!"; +MULTI4 = "Ультра убийство!"; +MULTI5 = "Чудовищное убийство!"; + +// Некрологи +// First the self-kills, then the other-kills +OB_SUICIDE = "Игрок %o покончил с собой."; +OB_FALLING = "Игрок %o упал слишком высоко."; +OB_CRUSH = "Игрок %o был раздавлен."; +OB_EXIT = "Игрок %o попытался свалить."; +OB_WATER = "Игрок %o не умеет плавать."; +OB_SLIME = "Игрок %o мутировал."; +OB_LAVA = "Игрок %o расплавился."; +OB_BARREL = "Игрок %o взорвался."; +OB_SPLASH = "Игрок %o стоял в неверной точке."; +OB_R_SPLASH = "Игрок %o не отступил в сторону."; +OB_ROCKET = "Игрок %o не отступил в сторону."; +OB_KILLEDSELF = "Игрок %o покончил с собой."; + +OB_VOODOO = "Игрока %o убила сила Вуду."; +OB_STEALTHBABY = "Игрок %o краем глаза заметил арахнотрона."; +OB_STEALTHVILE = "Игрок %o краем глаза заметил арчвайла."; +OB_STEALTHBARON = "Игрок %o краем глаза заметил барона Ада."; +OB_STEALTHCACO = "Игрок %o краем глаза заметил какодемона."; +OB_STEALTHCHAINGUY = "Игрок %o краем глаза заметил пулеметчика."; +OB_STEALTHDEMON = "Игрок %o краем глаза заметил демона."; +OB_STEALTHKNIGHT = "Игрок %o краем глаза заметил рыцаря Ада."; +OB_STEALTHIMP = "Игрок %o краем глаза заметил импа."; +OB_STEALTHFATSO = "Игрок %o краем глаза заметил манкубуса."; +OB_STEALTHUNDEAD = "Игрок %o краем глаза заметил ревенанта."; +OB_STEALTHSHOTGUY = "Игрок %o краем глаза заметил сержанта."; +OB_STEALTHZOMBIE = "Игрок %o краем глаза заметил зомби."; +OB_UNDEADHIT = "Игрока %o ударил ревенант."; +OB_IMPHIT = "Игрока %o расцарапал имп."; +OB_CACOHIT = "Игрок %o слишком сблизился с какодемоном."; +OB_DEMONHIT = "Игрока %o укусил демон."; +OB_SPECTREHIT = "Игрока %o сожрал спектр."; +OB_BARONHIT = "Игрока %o разорвал барон Ада."; +OB_KNIGHTHIT = "Игрока %o распотрошил рыцарь Ада."; +OB_ZOMBIE = "Игрока %o убил зомби."; +OB_SHOTGUY = "Игрока %o застрелил сержант."; +OB_VILE = "Игрока %o кремировал арчвайл."; +OB_UNDEAD = "Игрок %o не успел увернуться от снаряда ревенанта."; +OB_FATSO = "Игрока %o раздавил манкубус."; +OB_CHAINGUY = "Игрока %o продырявил пулеметчик."; +OB_SKULL = "Игрок %o испугался потерянной души."; +OB_IMP = "Игрока %o сжег имп."; +OB_CACO = "Игрока %o поразил какодемон."; +OB_BARON = "Игрок %o получил синяк от барона Ада."; +OB_KNIGHT = "Игрока %o распластал рыцарь Ада."; +OB_SPIDER = "Игрок %o стоял в восторге перед пауком-предводителем."; +OB_BABY = "Игрок %o дал арахнотрону себя убить."; +OB_CYBORG = "Игрока %o размазал кибердемон."; +OB_WOLFSS = "Игрок %o встретил нациста."; +OB_DOG = "Игрока %o разорвала собака."; + +OB_CHICKEN = "Игрока %o заклевал до смерти цыпленок."; +OB_BEAST = "Игрока %o обуглил дракон-оборотень."; +OB_CLINK = "Игрока %o нарезал саблекоготь."; +OB_DSPARIL1 = "Игрока %o обжег серпент Д'Спарила."; +OB_DSPARIL1HIT = "Игрока %o пожрал серпент Д'Спарила."; +OB_DSPARIL2 = "Игрок %o был не ровня Д'Спарилу."; +OB_DSPARIL2HIT = "Игрока %o сбил Д'Спарил."; +OB_HERETICIMP = "Игрока %o изуродовала горгулья."; +OB_HERETICIMPHIT = "Игрока %o покалечила горгулья."; +OB_IRONLICH = "Игрока %o растоптал железный лич."; +OB_IRONLICHHIT = "Игрок %o сближался с железным личем."; +OB_BONEKNIGHT = "Игрока %o зарубил воин-нежить."; +OB_BONEKNIGHTHIT = "Игрока %o сразил воин-нежить."; +OB_MINOTAUR = "Игрока %o разнес на сгоревшие части Молотавр."; // fix — «превратил в пепел»? +OB_MINOTAURHIT = "Игрока %o превратил в кровавое месиво Молотавр."; +OB_MUMMY = "Игрока %o разбил голем."; +OB_MUMMYLEADER = "Игрока %o убил криком нитроголем."; +OB_SNAKE = "Игрока %o потряс офидиан."; +OB_WIZARD = "Игрока %o проклял волшебник."; +OB_WIZARDHIT = "Игрока %o нащупал волшебник."; + +OB_FIREDEMON = "Игрок %o отведал огня Африта."; +OB_DEMON1 = "Игрока %o спалил Серпент."; +OB_DEMON2 = "Игрока %o отравил Серпент."; +OB_ETTIN = "Игрока %o раздробил Эттин."; +OB_CENTAUR = "Игрока %o разрезал Кентавр."; +OB_SLAUGHTAURHIT = "Игрока %o разрезал Старший кентавр."; +OB_SLAUGHTAUR = "Игрока %o сбил огненным шаром Старший кентавр."; +OB_BISHOP = "Игрок %o поддался черным силам Епископа."; +OB_ICEGUY = "Игрока %o полностью заморозил Вендиго."; +OB_SERPENTHIT = "Игрока %o сломал Сталкер."; +OB_SERPENT = "Игрока %o расплавил Сталкер."; +OB_WRAITH = "Игрока %o обуглил Грабитель."; +OB_WRAITHHIT = "Жизнь игрока %o украл Грабитель."; +OB_DRAGON = "Игрока %o кремировала Виверна Смерти."; +OB_KORAX = "Игрока %o скинул с доски Коракс."; +OB_FBOSS = "Игрока %o сразил Зедек."; +OB_MBOSS = "Игрок %o не смог бороться с маной Менелкира."; +OB_CBOSS = "Игрока %o крестил Традуктус."; +OB_HERESIARCH = "Ересиарх сыграл в кости игрока %o."; + +OB_ACOLYTE = "Игрока %o ревностно застрелил Аколит."; +OB_MACIL = "Игроку %o не следовало Подобрань мятеж против Мэйсила."; +OB_REBEL = "Игрока %o расстрелял Мятежник."; +OB_BEGGAR = "Игрока %o забили до смерти бедные."; +OB_PEASANT = "Игроку %o не следовало затеять драку с Гражданским."; +OB_ALIENSPECTRE = "Игрока %o сбил Спектр."; +OB_ENTITY = "Игрок %o испытал на себе ярость Единого Бога."; +OB_LOREMASTER = "Игрок %o не смог избежать длани Хранителя Мудрости."; +OB_PROGRAMMER = "Игрока %o удалил Программист."; +OB_STFBISHOP = "Игрока %o отдул Епископ."; +OB_SENTINEL = "Игрока %o уничтожил Страж."; +OB_CRUSADER = "Игрока %o смёл Крестоносец."; +OB_INQUISITOR = "Игрока %o приговорил Инквизитор."; +OB_STALKER = "Игрок %o пугался до смерти из-за Сталкера."; // fix — Оригинал: «%o was bugged by a Stalker.» +OB_TURRET = "Игрок %o включил автоматическую защиту."; +OB_TEMPLARHIT = "Игрока %o расцарапал Тамплиер."; +OB_TEMPLAR = "Игрока %o испарил Тамплиер."; +OB_REAVERHIT = "Игрока %o разрезал на куски Похититель."; +OB_REAVER = "Игрока %o застрелил Похититель."; + +OB_MPFIST = "Игрок %o отведал кулака %k."; +OB_MPCHAINSAW = "Игрок %k скосил бензопилой игрока %o."; +OB_MPPISTOL = "Игрок %k пощекотал пукалкой игрока %o."; +OB_MPSHOTGUN = "Игрок %o отведал дробовик игрока %k."; +OB_MPSSHOTGUN = "Игрок %k размазал из обреза игрока %o."; +OB_MPCHAINGUN = "Игрок %k выкосил с пулемета игрока %o."; +OB_MPROCKET = "Игрок %k прокатил на ракете игрока %о."; +OB_MPR_SPLASH = "Игрок %o почти увильнул от ракеты %k."; +OB_MPPLASMARIFLE = "Игрок %k расплавил плазмометом игрока %o."; +OB_MPBFG_BOOM = "Игрок %k расщепил игрока %o с помощью BFG."; +OB_MPBFG_SPLASH = "Игрок %o не успел спрятаться от BFG игрока %k."; +OB_MPTELEFRAG = "Игрок %k телефрагнул игрока %o."; +OB_RAILGUN = "Игрок %k показал свой рельсотрон игроку %o."; +OB_MPBFG_MBF = "Игрока %o сжег %k с BFG."; + +OB_MPSTAFF = "Игрок %o сел на посох игрока %k."; +OB_MPGAUNTLETS = "Игрок %o шокирован перчатками %k."; +OB_MPGOLDWAND = "Игрок %o узрел прощальный взмах эльфийского жезла %k."; +OB_MPCROSSBOW = "Игрок %o изранен болтами эфирного арбалета %k."; +OB_MPBLASTER = "Игрок %o взорван драконьим когтем %k."; +OB_MPSKULLROD = "Игрок %o сослан в самый низ посохом Ада %k."; +OB_MPPHOENIXROD = "Игрок %o сожжен в пепел жезлом феникса %k."; +OB_MPMACE = "Игрок %o отбит огненной булавой %k."; + +OB_MPPSTAFF = "Игрок %o отведал заряженного посоха %k."; +OB_MPPGAUNTLETS = "Игрок %o опустошен перчатками %k."; +OB_MPPGOLDWAND = "Игрок %o атакован %k с эльфийским жезлом."; +OB_MPPCROSSBOW = "Игрок %o пробит эфирным арбалетом %k."; +OB_MPPBLASTER = "Игрок %o разорван драконьим когтем %k."; +OB_MPPSKULLROD = "%k залил игрока %o горячим дождем, использовав посох ада."; +OB_MPPPHOENIXROD = "Игрок %o сожжен жезлом феникса %k."; +OB_MPPMACE = "Игрок %o раздавлен огромной сферой из огненной булавы %k."; + +OB_MPFWEAPFIST = "Игрок %o избит в мясо голыми руками %k."; +OB_MPFWEAPAXE = "Игрок %o словил топорик %k."; +OB_MPFWEAPHAMMERM = "Голова игрока %o была вдолблена в тело молотом %k."; +OB_MPFWEAPHAMMERR = "Душа игрока %o была перекована молотом %k."; +OB_MPFWEAPQUIETUS = "Игрок %o утихомирен легендарным Последним доводом %k."; +OB_MPCWEAPMACE = "Игрок %o получил по морде булавой %k."; +OB_MPCWEAPSTAFFM = "Игрок %o искусан змеиным посохом %k."; +OB_MPCWEAPSTAFFR = "Игрок %o задушен змеиным посохом %k."; +OB_MPCWEAPFLAME = "Игрок %o сгорел в огне %k."; +OB_MPCWEAPWRAITHVERGE = "Игрок %o очищен Жезлом Духов %k."; +OB_MPMWEAPWAND = "Игрок %o схватил слишком много сапфировых зарядов от %k."; +OB_MPMWEAPFROST = "Игрок %o обращается в ледяную скульптуру благодаря %k."; +OB_MPMWEAPLIGHTNING = "Игрок %o откровенно шокирован %k."; +OB_MPMWEAPBLOODSCOURGE = "Игрок %o стерт с лица вселенной Кровавым бичем %k."; + +OB_MPPUNCHDAGGER = "Игрок %o был непреднамеренно заколот кинжалом %k."; +OB_MPELECTRICBOLT = "Игрок %o был прибит к стене %k."; +OB_MPPOISONBOLT = "Игрок %o получил смертельную дозу гнева %k."; +OB_MPASSAULTGUN = "Игрок %o изрешечен штурмовой винтовкой %k."; +OB_MPMINIMISSILELAUNCHER = "Игрок %o проглотил ракету %k."; +OB_MPSTRIFEGRENADE = "Игрок %o инвертируется H-E гранатой %k."; +OB_MPPHOSPHOROUSGRENADE = "Игрок %o принял горячую ванну из чистого фосфора %k."; +OB_MPFLAMETHROWER = "Игрок %k поджарил игрока %o."; +OB_MPMAULER1 = "Игрок %k ударил током игрока %o."; +OB_MPMAULER = "Игрок %k безжалостно распылил игрока %o."; +OB_MPSIGIL = "Игрок %o склонился перед силой Сигила %k."; + +// Same as OB_MPTELEFRAG, but shown when a monster telefrags you +OB_MONTELEFRAG = "Игрока %o телефрагнуло."; + +OB_DEFAULT = "Игрок %o погиб."; +OB_MPDEFAULT = "Игрок %o убит %k."; +OB_FRIENDLY1 = "Игрок %k убил союзника."; +OB_FRIENDLY2 = "Игроку %k следует проверить свои очки."; +OB_FRIENDLY3 = "Игрок %k преподнес другой команде фраг."; +OB_FRIENDLY4 = "Игрок %k потерял еще одного друга."; + +SAVEGAMENAME = "zdoomsv"; +STARTUP1 = ""; +STARTUP2 = ""; +STARTUP3 = ""; +STARTUP4 = ""; +STARTUP5 = ""; + +// Таблица очков +SCORE_ITEMS = "Предметы"; +SCORE_BONUS = "Бонус"; +SCORE_COLOR = "Цвет"; +SCORE_SECRET = "Тайники"; +SCORE_NAME = "Имя"; +SCORE_DELAY = "Задержка (мс)"; +SCORE_KILLS = "Убийства"; +SCORE_FRAGS = "Фраги"; +SCORE_DEATHS = "Смерти"; +SCORE_MISSED = "Пропущено"; +SCORE_TOTAL = "Всего"; +SCORE_LVLTIME = "Время уровня"; + +// Item tags: Doom weapons +TAG_FIST = "Кулаки"; +TAG_CHAINSAW = "Бензопила"; +TAG_PISTOL = "Пистолет"; +TAG_SHOTGUN = "Дробовик"; +TAG_SUPERSHOTGUN = "Супер-дробовик"; +TAG_CHAINGUN = "Пулемет"; +TAG_ROCKETLAUNCHER = "Ракетница"; +TAG_PLASMARIFLE = "Плазменная пушка"; +TAG_BFG9000 = "BFG 9000"; + +// Item tags: Heretic weapons +TAG_STAFF = "Посох"; +TAG_GAUNTLETS = "Перчатки Некроманта"; +TAG_GOLDWAND = "Эльфийский Жезл"; +TAG_CROSSBOW = "Эфирный Арбалет"; +TAG_BLASTER = "Драконий Коготь"; +TAG_SKULLROD = "Посох Ада"; +TAG_PHOENIXROD = "Жезл Феникса"; +TAG_MACE = "Огненная Булава"; + +TAG_STAFFP = "Посох"; +TAG_GAUNTLETSP = "Перчатки Некроманта"; +TAG_GOLDWANDP = "Эльфийский Жезл"; +TAG_CROSSBOWP = "Эфирный Арбалет"; +TAG_BLASTERP = "Драконий Коготь"; +TAG_SKULLRODP = "Посох Ада"; +TAG_PHOENIXRODP = "Жезл Феникса"; +TAG_MACEP = "Огненная Булава"; + +// Item tags: Heretic artifacts +TAG_ARTIEGG = "Морф Овум"; +TAG_ARTIFIREBOMB = "Часовая бомба Древних"; +TAG_ARTIFLY = "Крылья Призрака"; +TAG_ARTIHEALTH = "Кварцевая колба"; +TAG_ARTIINVISIBILITY = "Тенесфера"; +TAG_ARTIINVULNERABILITY = "Кольцо Невидимости"; +TAG_ARTISUPERHEALTH = "Мистическая Урна"; +TAG_ARTITELEPORT = "Механизм Хаоса"; +TAG_ARTITOMEOFPOWER = "Том Силы"; +TAG_ARTITORCH = "Факел"; + +// Item tags: Hexen weapons +TAG_CWEAPMACE = "Булава Раскаяния"; +TAG_CWEAPSTAFF = "Змеиный Посох"; +TAG_CWEAPFLAME = "Огненный Шторм"; +TAG_CWEAPWRAITHVERGE = "Жезл Духов"; +TAG_FWEAPFIST = "Шипастые Рукавицы"; +TAG_FWEAPAXE = "Топор Тимона"; +TAG_FWEAPHAMMER = "Молот Возмездия"; +TAG_FWEAPQUIETUS = "Последний довод"; +TAG_MWEAPWAND = "Сапфировая волшебная палочка"; +TAG_MWEAPFROST = "Замораживающие Осколки"; +TAG_MWEAPLIGHTNING = "Дуга Смерти"; +TAG_MWEAPBLOODSCOURGE = "Кровавый бич"; + +// Item tags: Hexen artifacts +TAG_ARTIBLASTRADIUS = "Отражающий Диск"; +TAG_ARTIBOOSTARMOR = "Наручи драконьей кожи"; +TAG_ARTIBOOSTMANA = "Кубок Могущества"; +TAG_ARTIPOISONBAG = "Флешетта"; +TAG_ARTIPOISONBAG1 = "Флешетта Ядовитого Облака"; +TAG_ARTIPOISONBAG2 = "Флешетта Часовой бомбы"; +TAG_ARTIPOISONBAG3 = "Флешетта Граната"; +TAG_ARTIHEALINGRADIUS = "Мистический зачарованный свиток"; +TAG_ARTIDEFENDER = "Икона Защитника"; +TAG_ARTIPORK = "Хрякинатор"; +TAG_ARTISPEED = "Сапоги Скорости"; +TAG_ARTISUMMON = "Темный Слуга"; +TAG_ARTITELEPORTOTHER = "Механизм Изгнания"; + +// Item tags: Hexen puzzle items +TAG_ARTIPUZZSKULL = "Череп Йорика"; +TAG_ARTIPUZZGEMBIG = "Серце Д'Спарила"; +TAG_ARTIPUZZGEMRED = "Рубиновая Планета"; +TAG_ARTIPUZZGEMGREEN1 = "Изумрудная Планета (1)"; +TAG_ARTIPUZZGEMGREEN2 = "Изумрудная Планета (2)"; +TAG_ARTIPUZZGEMBLUE1 = "Сапфировая Планета (1)"; +TAG_ARTIPUZZGEMBLUE2 = "Сапфировая Планета (2)"; +TAG_ARTIPUZZBOOK1 = "Кодекс Демона"; +TAG_ARTIPUZZBOOK2 = "Либер Оскура"; +TAG_ARTIPUZZSKULL2 = "Огненная Маска"; +TAG_ARTIPUZZFWEAPON = "Запечатанный Палаш"; +TAG_ARTIPUZZCWEAPON = "Святая Реликвия"; +TAG_ARTIPUZZMWEAPON = "Сигила Магнуса"; +TAG_ARTIPUZZGEAR1 = "Железная шестерня"; +TAG_ARTIPUZZGEAR2 = "Латунная шестерня"; +TAG_ARTIPUZZGEAR3 = "Латунная и железная шестерни"; +TAG_ARTIPUZZGEAR4 = "Серебряная и латунная шестерни"; + +// Item tags: Strife weapons +TAG_PUNCHDAGGER = "Нож"; +TAG_STRIFECROSSBOW1 = "Арбалет"; +TAG_STRIFECROSSBOW2 = "Арбалет"; +TAG_ASSAULTGUN = "Винтовка"; +TAG_MMLAUNCHER = "Мини-ракетница"; +TAG_FLAMER = "Огнемет"; +TAG_MAULER1 = "Истязатель"; +TAG_MAULER2 = "Истязатель"; +TAG_GLAUNCHER1 = "Гранатомет"; +TAG_GLAUNCHER2 = "Гранатомет"; +TAG_SIGIL = "Сигил"; + +// Item tags: Strife artifacts +TAG_COIN = "Монета"; +TAG_MEDPATCH = "Бинт"; +TAG_MEDICALKIT = "Аптечка"; +TAG_SURGERYKIT = "Мед-комплект"; // "full_health" в Тизере +TAG_BELDINSRING = "Кольцо"; +TAG_OFFERINGCHALICE = "Чаша для подаяний"; +TAG_EAR = "Ухо"; +TAG_BROKENCOUPLING = "Сломанное сопряжение"; +TAG_SHADOWARMOR = "Теневая броня"; +TAG_ENVSUIT = "Защитный костюм"; +TAG_GUARDUNIFORM = "Униформа стражника"; +TAG_OFFICERSUNIFORM = "Офицерская униформа"; +TAG_FTHROWERPARTS = "Части огнемета"; +TAG_REPORT = "Отчет"; +TAG_INFO = "Информация"; +TAG_TARGETER = "Целеуказатель"; +TAG_COMMUNICATOR = "Коммуникатор"; +TAG_DEGNINORE = "Денгинская руда"; +TAG_GUNTRAINING = "Меткость"; +TAG_HEALTHTRAINING = "Живучесть"; +TAG_SCANNER = "Сканнер"; +TAG_PRISONPASS = "Пропуск в тюрьму"; +TAG_ALARM = "Тревога"; +TAG_AMMOFILLUP = "Боеприпасы"; +TAG_HEALTHFILLUP = "Здоровье"; +TAG_TELEPORTERBEACON = "z маяк"; +TAG_METALARMOR = "Металлическая броня"; +TAG_LEATHER = "Кожаная броня"; +TAG_HEGRENADES = "Противопехотные гранаты"; +TAG_PHGRENADES = "Зажигательные гранаты"; // "Fire-Grenade_Rounds" в Teaser +TAG_CLIPOFBULLETS = "Обойма пуль"; // "bullets" в Teaser +TAG_BOXOFBULLETS = "Боеприпасы"; +TAG_MINIMISSILES = "Мини-ракеты"; //"rocket" в Teaser +TAG_CRATEOFMISSILES = "Коробка ракет"; //"box_of_rockets" в Teaser +TAG_ENERGYPOD = "Эненгоячейка"; +TAG_ENERGYPACK = "Энергопакет"; +TAG_POISONBOLTS = "Ядовитые стрелы"; // "poison_arrows" в Teaser +TAG_ELECTRICBOLTS = "Электрические стрелы"; // "electric_arrows" в Teaser +TAG_AMMOSATCHEL = "Амуничный рюкзак"; // "Back_pack" в Teaser + +// Item tags: Strife keys +TAG_BASEKEY = "Ключ от базы"; +TAG_GOVSKEY = "Ключ Говса"; // "Rebel_Key" в Teaser +TAG_PASSCARD = "Пропуск"; +TAG_IDBADGE = "Бейдж с ID"; +TAG_PRISONKEY = "Ключ от тюрьмы"; +TAG_SEVEREDHAND = "Оторванная рука"; +TAG_POWER1KEY = "Ключ от Энерния1"; +TAG_POWER2KEY = "Ключ от Энергия2"; +TAG_POWER3KEY = "Ключ от Энергия3"; +TAG_GOLDKEY = "Золотой ключ"; +TAG_IDCARD = "Удостоверение"; +TAG_SILVERKEY = "Серебряный ключ"; +TAG_ORACLEKEY = "Ключ Оракула"; +TAG_MILITARYID = "Военное удостоверение личности"; +TAG_ORDERKEY = "Заказной ключ"; +TAG_WAREHOUSEKEY = "Складской ключ"; +TAG_BRASSKEY = "Латунный ключ"; +TAG_REDCRYSTALKEY = "Красный кристаллический ключ"; +TAG_BLUECRYSTALKEY = "Синий кристаллический ключ"; +TAG_CHAPELKEY = "Ключ от Часовни"; +TAG_CATACOMBKEY = "Ключ от катакомб"; // "Tunnel_Key" в Teaser +TAG_SECURITYKEY = "Ключ охраны"; +TAG_COREKEY = "Ключ Ядра"; // "New_Key1" в Teaser +TAG_MAULERKEY = "Ключ Мучителя"; // "New_Key2" в Teaser +TAG_FACTORYKEY = "Заводской ключ"; // "New_Key3" в Teaser +TAG_MINEKEY = "Ключ от шахты"; // "New_Key4" в Teaser +TAG_NEWKEY5 = "Новый ключ5"; +TAG_ORACLEPASS = "Пропуск Оракула"; + +// Item tags: misc Strife stuff +TAG_10GOLD = "10 золотых"; +TAG_25GOLD = "25 золотых"; +TAG_50GOLD = "50 золотых"; +TAG_300GOLD = "300 золотых"; +TAG_QUEST4 = "задание4"; +TAG_QUEST5 = "задание5"; +TAG_QUEST6 = "задание4"; + +// Item tags: Strife NPCs +TAG_ACOLYTE = "Служитель"; +TAG_ARMORER = "Бронник"; +TAG_BARKEEP = "Бармен"; +TAG_BEGGAR = "Нищий"; +TAG_MACIL1 = "Мэйсил"; +TAG_MACIL2 = "Мэйсил"; +TAG_MEDIC = "Врач"; +TAG_ORACLE = "Оракул"; +TAG_PRIEST = "Жрец"; +TAG_RATBUDDY = "Крыса"; +TAG_REBEL = "Повстанец"; +TAG_TEMPLAR = "Храмовник"; +TAG_WEAPONSMITH = "Оружейник"; + +// Item tags: Chex weapons +TAG_SPOON = "Ложка"; +TAG_SPORK = "Супер Ботинок"; +TAG_MINIZORCHER = "Мини-Зорчер"; +TAG_LARGEZORCHER = "Большой Зорчер"; +TAG_SUPERLARGEZORCHER = "Огромный Зорчер"; +TAG_RAPIDZORCHER = "Скорострельный Зорчер"; +TAG_ZORCHPROPULSOR = "Зорч-пропульсор"; +TAG_PHASINGZORCHER = "Фазовый Зорчер"; +TAG_LAZDEVICE = "Устройство «ЛАЗ»"; + +// Heretic strings +HE1TEXT = + "С уничтожением Железных Личей\n" + "и их приспешников, окрестные земли\n" + "очистились от омерзительной нежити.\n\n" + "Эта нежить, проникшая в наш мир из\n" + "темного измерения, открыла Огненный\n" + "Портал. Он как открытая пылающая\n" + "пасть Ада ведет в свою жуткую утробу.\n\n" + "Угроза исходит из Огненного Портала —\n" + "порождения Ада и черной магии могут\n" // Какой-то бред + "изринуться из него. Ваша цель —\n" + "сойти в Ад и запечатать проклятый\n" + "портал.\n\n" + "Это смертельно опасное деяние, и Вы\n" + "рискуете навсегда увязнуть во Тьме.\n" + "Но кто говорил, что путь истинного\n" + "Еретика легок и прост?"; +HE2TEXT = + "Могучие Молотавры повержены.\n" + "Их дымящиеся трупы падают,\n" + "разваливаясь на куски, к Вашим\n" + "ногам, и мрачное удовлетворение\n" + "наполняет Вас.\n\n" + "Врата, которые они охраняли, открылись.\n" + "Вы шагнули в них, думая, что\n" + "вернетесь в родной мир, но лишь\n" + "громкий, насмешливый хохот был\n" + "ответом на Вашу надежду.\n\n" + "Чей это злобный хохот? Быть может\n" + "это голос демонических сил,\n" + "управляющих Молотаврами? Какие\n" + "чудовищные создания ожидают Вас\n" + "за этими вратами? Не голубое небо\n" + "родного мира над головой, а\n" + "кристальный купол, — это плохой знак..."; +HE3TEXT = + "С гибелью Д'Спарила исчезла магия,\n" + "сохранявшая жизнь порождениям Тьмы.\n" + "Стоны умирающих демонов заглушили\n" + "вопль агонии самого Д'Спарила.\n\n" + "Вы исполнили свою клятву. Месть\n" + "свершилась. И за секунду до\n" + "разрушения хрустального купола,\n" + "Вы наконец-то, входите во врата,\n" + "ведущие в родной мир.\n\n" + "Но и теперь, после гибели Д'Спарила,\n" + "душа Ваша не спокойна, и ее\n" + "одолевают плохие предчувствия. Не был\n" + "ли проклятием его предсмертный\n" + "крик? Или призывом темных сил?\n\n" + "И где таятся другие Змеиные\n" + "Всадники?"; +HE4TEXT = + "С гибелью Д'Спарила умерла и Ваша\n" + "надежда вернуться в родной мир.\n" + "Своим предсмертным проклятьем\n" + "он отправил Вас в те немногие,\n" + "ещё оставшиеся подвластными\n" + "ему земли. Вы разбили последних\n" + "хранителей этих земель и стоите\n" + "перед опустевшим замком Д'Спарила,\n" + "оплотом его темных сил.\n\n" + "Само Сердце Зла растворило перед\n" + "Вами врата. И хотя Д'Спарил\n" + "повержен, глубины, породившие его,\n" + "стоят нерушимы.\n\n" + "Вы сойдете в эту преисподнюю, ибо\n" + "единственный способ вернуться в\n" + "родной мир — отыскать вход в него\n" + "в темных глубинах опустевшей вотчины\n" + "Д'Спарила. Личные стражи мертвого\n" + "господина уже дожидаются Вас..."; +HE5TEXT = + "Наблюдая с мрачным отвращением\n" + "предсмертную агонию последнего\n" + "сраженного Молотавра, Вы только\n" + "теперь понимаете, что смерть еще\n" + "никогда не была так близка. Даже\n" + "во время яростной битвы с самим\n" + "Д'Спарилом и его темными слугами.\n\n" + "С угрюмым отчаянием приближаетесь\n" + "Вы к открытым порталам. Слабая\n" + "надежда теплится в Вашей душе, —\n" + "быть может за ними скрыта дорога\n" + "домой, а не бездны чужих миров?\n\n" + "Отчаяние наделяет Вас мрачной\n" + "решимостью. Ничто не способно\n" + "остановить Вас, одна только — смерть.\n" + "Не сдавайтесь без боя, взгляните в\n" + "глаза своей судьбе. Знайте, если Вы\n" + "упали на самое дно, есть лишь один\n" + "путь — наверх."; + +// ЭПИЗОД 1 - ГОРОД ПРОКЛЯТЫХ +HHUSTR_E1M1 = "Доки"; +HHUSTR_E1M2 = "Темницы"; +HHUSTR_E1M3 = "Привратницкая"; +HHUSTR_E1M4 = "Сторожевая башня"; +HHUSTR_E1M5 = "Цитадель"; +HHUSTR_E1M6 = "Кафедральный собор"; +HHUSTR_E1M7 = "Склепы"; +HHUSTR_E1M8 = "Адская утроба"; +HHUSTR_E1M9 = "Кладбище"; + +// ЭПИЗОД 2 - АДСКАЯ УТРОБА +HHUSTR_E2M1 = "Кратер"; +HHUSTR_E2M2 = "Лавовые очаги"; +HHUSTR_E2M3 = "Река огня"; +HHUSTR_E2M4 = "Ледяной грот"; +HHUSTR_E2M5 = "Катакомбы"; +HHUSTR_E2M6 = "Лабиринт"; +HHUSTR_E2M7 = "Большой зал"; +HHUSTR_E2M8 = "Порталы хаоса"; +HHUSTR_E2M9 = "Ледник"; + +// ЭПИЗОД 3 - КУПОЛ Д'СПАРИЛА +HHUSTR_E3M1 = "Кладовая"; +HHUSTR_E3M2 = "Сточный колодец"; +HHUSTR_E3M3 = "Слияние"; +HHUSTR_E3M4 = "Лазурная крепость"; +HHUSTR_E3M5 = "Логово офидианов"; +HHUSTR_E3M6 = "Залы страха"; +HHUSTR_E3M7 = "Пропасть"; +HHUSTR_E3M8 = "Крепость Д'Спарила"; +HHUSTR_E3M9 = "Водоносный слой"; + +// ЭПИЗОД 4: СКЛЕП +HHUSTR_E4M1 = "Катафалк"; +HHUSTR_E4M2 = "Укрытие"; +HHUSTR_E4M3 = "Монастырская галерея"; +HHUSTR_E4M4 = "Гробница"; +HHUSTR_E4M5 = "Великая лестница"; +HHUSTR_E4M6 = "Залы отступников"; +HHUSTR_E4M7 = "Твердыни погибели"; +HHUSTR_E4M8 = "Разрушенный мост"; +HHUSTR_E4M9 = "Мавзолей"; + +// ЭПИЗОД 5: ЗАСТОЙНЫЕ ВЛАДЕНИЯ +HHUSTR_E5M1 = "Охровые утесы"; +HHUSTR_E5M2 = "Стремнина"; +HHUSTR_E5M3 = "Причал"; +HHUSTR_E5M4 = "Внутренний двор"; +HHUSTR_E5M5 = "Гидротир"; +HHUSTR_E5M6 = "Колоннада"; +HHUSTR_E5M7 = "Зловонный особняк"; +HHUSTR_E5M8 = "Поле высшего суда"; +HHUSTR_E5M9 = "Путаница Д'Спарила"; + +// Keys + +TXT_GOTBLUEKEY = "Синий ключ"; +TXT_GOTYELLOWKEY = "Желтый ключ"; +TXT_GOTGREENKEY = "Зеленый ключ"; + +// Artifacts + +TXT_ARTIHEALTH = "Кварцевый флакон"; +TXT_ARTIFLY = "Крылья гнева"; +TXT_ARTIINVULNERABILITY = "Кольцо неуязвимости"; +TXT_ARTITOMEOFPOWER = "Том могущества"; +TXT_ARTIINVISIBILITY = "Теневая сфера"; +TXT_ARTIEGG = "Морфийное яйцо"; +TXT_ARTISUPERHEALTH = "Мистическая урна"; +TXT_ARTITORCH = "Факел"; +TXT_ARTIFIREBOMB = "Часовая бомба древних"; +TXT_ARTITELEPORT = "Эмблема Хаоса"; + +// Items + +TXT_ITEMHEALTH = "Кристальный флакон"; +TXT_ITEMBAGOFHOLDING = "Носильный кошель"; +TXT_ITEMSHIELD1 = "Серебряный щит"; +TXT_ITEMSHIELD2 = "Зачарованный щит"; +TXT_ITEMSUPERMAP = "Свиток карты"; + +// Ammo + +TXT_AMMOGOLDWAND1 = "Кристалл для эльфийского жезла"; +TXT_AMMOGOLDWAND2 = "Жеода кристалла"; +TXT_AMMOMACE1 = "Сферы для булавы"; +TXT_AMMOMACE2 = "Груда сфер для булавы"; +TXT_AMMOCROSSBOW1 = "Эфирные стрелы"; +TXT_AMMOCROSSBOW2 = "Колчан эфирных стрел"; +TXT_AMMOBLASTER1 = "Когтевой шар"; +TXT_AMMOBLASTER2 = "Энергетический шар"; +TXT_AMMOSKULLROD1 = "Младшая руна"; +TXT_AMMOSKULLROD2 = "Старшая руны"; +TXT_AMMOPHOENIXROD1 = "Пламенный шар"; +TXT_AMMOPHOENIXROD2 = "Инфернальный шар"; + +// Weapons + +TXT_WPNGOLDWAND = "Эльфийский жезл"; +TXT_WPNMACE = "Огненная булава"; +TXT_WPNCROSSBOW = "Эфирный арбалет"; +TXT_WPNBLASTER = "Коготь дракона"; +TXT_WPNSKULLROD = "Посох ада"; +TXT_WPNPHOENIXROD = "Жезл феникса"; +TXT_WPNGAUNTLETS = "Перчатки некроманта"; + +TXT_NEEDBLUEKEY = "Для открытия нужен синий ключ"; +TXT_NEEDGREENKEY = "Для открытия нужен зеленый ключ"; +TXT_NEEDYELLOWKEY = "Для открытия нужен желтый ключ"; + +TXT_CHEATPOWERON = "POWER ON"; +TXT_CHEATPOWEROFF = "POWER OFF"; +TXT_CHEATHEALTH = "Максимальное здоровье"; +TXT_CHEATKEYS = "Все ключи"; +TXT_CHEATSOUNDON = "Отладка звука ВКЮЧЕНА"; +TXT_CHEATSOUNDOFF = "Отладка звука ВЫКЮЧЕНА"; +TXT_CHEATIDDQD = "Жульничаешь, э? Умрешь!"; +TXT_CHEATIDKFA = "Обманщик — ты не заслуживаешь оружия"; +TXT_CHEATTICKERON = "TICKER ON"; +TXT_CHEATTICKEROFF = "TICKER OFF"; +TXT_CHEATARTIFACTS3 = "ВЫ ПОЛУЧИЛИ ЭТО"; +TXT_MIDASTOUCH = "У тебя прикосновение Мидаса, детка"; +TXT_GOTSTUFF = "You got the stuff!"; +TXT_FREEZEON = "Freeze mode on"; +TXT_FREEZEOFF = "Freeze mode off"; +TXT_STRANGE = "Вы чувствуете себя странно..."; +TXT_STRANGER = "Вы чувствуете себя очень странно."; +TXT_NOTSTRANGE = "Вы снова чувствуете себя собой."; +TXT_LEADBOOTSON = "LEAD BOOTS ON"; +TXT_LEADBOOTSOFF = "LEAD BOOTS OFF"; +TXT_LIGHTER = "Вы чувствуете легкость."; +TXT_GRAVITY = "Гравитация тянет Вас вниз."; + +// Raven intermission + +TXT_IMKILLS = "Враги"; +TXT_IMITEMS = "Тайники"; +TXT_IMSECRETS = "Предметы"; +TXT_IMTIME = "Время"; + +RAVENQUITMSG = "Вы действительно желаете выйти?"; + +// Friendly names +FN_CHICKEN = "Цыпленок"; +FN_BEAST = "Дракон-оборотень"; +FN_CLINK = "Саблекоготь"; +FN_DSPARIL = "Д'Спарил"; +FN_HERETICIMP = "Горгулья"; +FN_IRONLICH = "Железный лич"; +FN_BONEKNIGHT = "Воин-нежить"; +FN_MINOTAUR = "Молотавр"; +FN_MUMMY = "Голем"; +FN_MUMMYLEADER = "Нитроголем"; +FN_SNAKE = "Офидиан"; +FN_WIZARD = "Волшебник"; + +// Hexen strings + +// Mana + +TXT_MANA_1 = "Синяя мана"; +TXT_MANA_2 = "Зеленая мана"; +TXT_MANA_BOTH = "Комбинированная мана"; + +// Keys + +TXT_KEY_STEEL = "Стальной ключ"; +TXT_KEY_CAVE = "Пещерный ключ"; +TXT_KEY_AXE = "Ключ-топор"; +TXT_KEY_FIRE = "Огненный ключ"; +TXT_KEY_EMERALD = "Изумрудный ключ"; +TXT_KEY_DUNGEON = "Ключ от подземелья"; +TXT_KEY_SILVER = "Серебряный ключ"; +TXT_KEY_RUSTED = "Ржавый ключ"; +TXT_KEY_HORN = "Роговой ключ"; +TXT_KEY_SWAMP = "Болотный ключ"; +TXT_KEY_CASTLE = "Ключ от замка"; + +TXT_NEED_KEY_STEEL = "Для открытия нужен стальной ключ"; +TXT_NEED_KEY_CAVE = "Для открытия нужен пещерный ключ"; +TXT_NEED_KEY_AXE = "Для открытия нужен ключ-топор"; +TXT_NEED_KEY_FIRE = "Для открытия нужен огненный ключ"; +TXT_NEED_KEY_EMERALD = "Для открытия нужен изумрудный ключ"; +TXT_NEED_KEY_DUNGEON = "Для открытия нужен ключ от подземелья"; +TXT_NEED_KEY_SILVER = "Для открытия нужен серебряный ключ"; +TXT_NEED_KEY_RUSTED = "Для открытия нужен ржавый ключ"; +TXT_NEED_KEY_HORN = "Для открытия нужен роговой ключ"; +TXT_NEED_KEY_SWAMP = "Для открытия нужен болотный ключ"; +TXT_NEED_KEY_CASTLE = "Для открытия нужен ключ от замка"; + +// Artifacts + +TXT_ARTIINVULNERABILITY2 = "Символ защитника"; +TXT_ARTISUMMON = "Темный слуга"; +TXT_ARTIEGG2 = "Свиноморфер"; +TXT_ARTIPOISONBAG = "Зелье"; +TXT_ARTITELEPORTOTHER = "Эмблема изгнания"; +TXT_ARTISPEED = "Сапоги-скороходы"; +TXT_ARTIBOOSTMANA = "Чаша могущества"; +TXT_ARTIBOOSTARMOR = "Наручи из драконьей кожи"; +TXT_ARTIBLASTRADIUS = "Диск отторжения"; +TXT_ARTIHEALINGRADIUS = "Чары магического единства"; + +// Puzzle artifacts + +TXT_ARTIPUZZSKULL = "Череп Йорика"; +TXT_ARTIPUZZGEMBIG = "Сердце Д'Спарила"; +TXT_ARTIPUZZGEMRED = "Рубиновая планета"; +TXT_ARTIPUZZGEMGREEN1 = "Изумрудная планета"; +TXT_ARTIPUZZGEMGREEN2 = "Изумрудная планета"; +TXT_ARTIPUZZGEMBLUE1 = "Сапфировая планета"; +TXT_ARTIPUZZGEMBLUE2 = "Сапфировая планета"; +TXT_ARTIPUZZBOOK1 = "Кодекс демона"; +TXT_ARTIPUZZBOOK2 = "LIBER OSCURA"; +TXT_ARTIPUZZSKULL2 = "Маска пламени"; +TXT_ARTIPUZZFWEAPON = "Печать воителя"; +TXT_ARTIPUZZCWEAPON = "Святая реликвия"; +TXT_ARTIPUZZMWEAPON = "Символ мага"; +TXT_ARTIPUZZGEAR = "Часовая шестерня"; +TXT_USEPUZZLEFAILED = "Здесь это невозможно использовать"; + +// Items + +TXT_ARMOR1 = "Кольчуга"; +TXT_ARMOR2 = "Соколиный щит"; +TXT_ARMOR3 = "Платиновый шлем"; +TXT_ARMOR4 = "Амулет стража"; + +// Weapons + +TXT_WEAPON_F2 = "Топор Тимона"; +TXT_WEAPON_F3 = "Молот возмездия"; +TXT_WEAPON_F4 = "Последний довод собран воедино"; +TXT_WEAPON_C2 = "Змеиный посох"; +TXT_WEAPON_C3 = "Огненный шторм"; +TXT_WEAPON_C4 = "Жезл духов собран воедино"; +TXT_WEAPON_M2 = "Ледяные осколки"; +TXT_WEAPON_M3 = "Дуга смерти"; +TXT_WEAPON_M4 = "Кровавый бич собран воедино"; +TXT_WEAPONPIECE = "Часть оружия! Сегодня Ваш счастливый день!"; +TXT_QUIETUS_PIECE = "Часть последнего довода"; +TXT_WRAITHVERGE_PIECE = "Часть жезла духов"; +TXT_BLOODSCOURGE_PIECE = "Часть кровавого бича"; + +// Friendly names + +FN_FIREDEMON = "Африт"; +FN_DEMON1 = "Серпент"; +FN_ETTIN = "Эттин"; +FN_CENTAUR = "Кентавр"; +FN_SLAUGHTAUR = "Старший кентавр"; +FN_BISHOP = "Епископ"; +FN_ICEGUY = "Вендиго"; +FN_SERPENT = "Сталкер"; +FN_WRAITH = "Грабитель"; +FN_DRAGON = "Виверна Смерти"; +FN_KORAX = "Коракс"; +FN_FBOSS = "Зедек"; +FN_MBOSS = "Менелкир"; +FN_CBOSS = "Традуктус"; +FN_HERESIARCH = "Ересиарх"; + +// Strife locks + +TXT_NEEDKEY = "Нужен ключ"; +TXT_NEED_PASSCARD = "Нужен пропуск"; +TXT_NEED_PASSCARD_DOOR = "Для открытия нужен пропуск"; +TXT_NEED_IDCARD = "Нужна личная карта"; +TXT_NEED_PRISONKEY = "Нужен ключ от тюрьмы"; +TXT_NEED_HANDPRINT = "Отпечаток руки не распознан"; +TXT_NEED_GOLDKEY = "Нужен золотой ключ"; +TXT_NEED_IDBADGE = "Нужна личная карта"; +TXT_NEED_IDBADGE_DOOR = "Для открытия нужна личная карта"; +TXT_NEED_SILVERKEY = "Нужен серебряный ключ"; +TXT_NEED_BRASSKEY = "Нужен латунный ключ"; +TXT_NEED_REDCRYSTAL = "Нужен красный кристалл"; +TXT_NEED_BLUECRYSTAL = "Нужен синий кристалл"; +TXT_RETAIL_ONLY = "ЭТА ЛОКАЦИЯ ДОСТУПНА ТОЛЬКО В ПОЛНОЙ ВЕРСИИ ИГРЫ STRIFE"; +TXT_DOES_NOT_WORK = "Похоже, это не работает"; + +// Strife Quest messages + +TXT_QUEST_14 = "Кристалл взорван"; +TXT_QUEST_16 = "Ворота взорваны"; +TXT_QUEST_27 = "Компьютер взорван"; + +TXT_KILLED_BISHOP = "Епископ убит!"; +TXT_KILLED_ORACLE = "Оракл убит!"; +TXT_KILLED_MACIL = "Мэйсил убит!"; +TXT_KILLED_LOREMASTER = "Хранитель Мудрости убит!"; + +TXT_YOUFOOL = "Придурок. Ты включил сигнализацию!"; +TXT_YOUREDEAD = "Считай, ты мертв; ты включил сигнализацию."; + +// Strife pickup messages + +TXT_METALARMOR = "Получена металлическая броня."; +TXT_LEATHERARMOR = "Получена кожаная броня."; +TXT_MEDPATCH = "Получен медицинский бинт."; +TXT_MEDICALKIT = "Получена аптечка."; +TXT_SURGERYKIT = "Получен медкомплект."; +TXT_STRIFEMAP = "Получена карта."; +TXT_BELDINSRING = "Получено кольцо."; +TXT_OFFERINGCHALICE = "Получена чаша для подношений."; +TXT_EAR = "Получено ухо."; +TXT_BROKENCOUPLING = "Получено сломанное сопряжение."; +TXT_SHADOWARMOR = "Получена теневая броня."; +TXT_ENVSUIT = "Получен защитный костюм."; +TXT_GUARDUNIFORM = "Получена униформа стражника."; +TXT_OFFICERSUNIFORM = "Получена униформа офицера."; +TXT_FTHROWERPARTS = "Получены запчасти для огнемета."; +TXT_REPORT = "Получен отчет."; +TXT_INFO = "Получена сводка."; +TXT_TARGETER = "Получен прицел."; +TXT_COMMUNICATOR = "Получен коммуникатор."; +TXT_COIN = "Получена монета."; +TXT_XGOLD = "Получено %d золотых."; +TXT_BEACON = "Получен z маяк."; +TXT_DEGNINORE = "Получена дегнинская руда."; +TXT_SCANNER = "Получен сканер."; +TXT_NEEDMAP = "Сканер не работает без карты!\n"; +TXT_PRISONPASS = "Получен пропуск в тюрьму."; + +TXT_STRIFECROSSBOW = "Получен арбалет."; +TXT_ASSAULTGUN = "Получена штурмовая винтовка."; +TXT_MMLAUNCHER = "Получена мини-ракетница."; +TXT_FLAMER = "Получен огнемет."; +TXT_MAULER = "Получен истязатель."; +TXT_GLAUNCHER = "Получен гранатомет."; +TXT_SIGIL = "Получен СИГИЛ."; + +TXT_BASEKEY = "Получен ключ от базы."; +TXT_GOVSKEY = "Получен ключ губернатора."; +TXT_PASSCARD = "Получен пропуск."; +TXT_IDBADGE = "Получен идентификационный значок."; +TXT_PRISONKEY = "Получен ключ от тюрьмы."; +TXT_SEVEREDHAND = "Получена отрезанная рука."; +TXT_POWER1KEY = "Получен ключ электростанции 1."; +TXT_POWER2KEY = "Получен ключ электростанции 2."; +TXT_POWER3KEY = "Получен ключ электростанции 3."; +TXT_GOLDKEY = "Получен золотой ключ."; +TXT_IDCARD = "Получен удостоверение."; +TXT_SILVERKEY = "Получен серебряный ключ."; +TXT_ORACLEKEY = "Получен ключ оракула."; +TXT_MILITARYID = "Получен армейский жетон."; +TXT_ORDERKEY = "Получен ключ ордена."; +TXT_WAREHOUSEKEY = "Получен ключ от склада."; +TXT_BRASSKEY = "Получен латунный ключ."; +TXT_REDCRYSTAL = "Получен красный кристалл."; +TXT_BLUECRYSTAL = "Получен синий кристалл."; +TXT_CHAPELKEY = "Получен ключ от капеллы."; +TXT_CATACOMBKEY = "Получен ключ от катакомб."; +TXT_SECURITYKEY = "Получен ключ охраны."; +TXT_COREKEY = "Получен ключ от реактора."; +TXT_MAULERKEY = "Получен ключ истязания."; +TXT_FACTORYKEY = "Получен ключ от завода."; +TXT_MINEKEY = "Получен ключ от шахт."; +TXT_NEWKEY5 = "Получен новый ключ 5."; +TXT_ORACLEPASS = "Получен пропуск оракула."; + +TXT_HEGRENADES = "Получена связка гранат."; +TXT_PHGRENADES = "Получена связка фосфорных гранат."; +TXT_CLIPOFBULLETS = "Получена обойма пуль."; +TXT_BOXOFBULLETS = "Получена коробка пуль."; +TXT_MINIMISSILES = "Получены мини-ракеты."; +TXT_CRATEOFMISSILES = "Получен ящик мини-ракет."; +TXT_ENERGYPOD = "Получена энергоячейка."; +TXT_ENERGYPACK = "Получен энергоблок."; +TXT_POISONBOLTS = "Получены ядовитые болты."; +TXT_ELECTRICBOLTS = "Получены электрические болты."; +TXT_AMMOSATCHEL = "Получен амуничный рюкзак."; + +// Random dialogs + +TXT_RANDOM_PEASANT_01 = "Пожалуйста, не трогай меня."; +TXT_RANDOM_PEASANT_02 = "Если ты собираешься навредить мне, то я не стою твоих усилий."; +TXT_RANDOM_PEASANT_03 = "Я ничего не знаю."; +TXT_RANDOM_PEASANT_04 = "Уходи, или я позову стражу!"; +TXT_RANDOM_PEASANT_05 = "Иногда мне просто хочется, чтобы все эти повстанцы уяснили себе свое место и прекратили весь этот бред."; +TXT_RANDOM_PEASANT_06 = "Просто оставь меня в покое, хорошо?"; +TXT_RANDOM_PEASANT_07 = "Я не уверен, но порой мне кажется, что я узнаю некоторых служителей."; +TXT_RANDOM_PEASANT_08 = "Орден держит тут все под замком."; +TXT_RANDOM_PEASANT_09 = "Эта служба безопасности не дает и шагу ступить без спроса."; +TXT_RANDOM_PEASANT_10 = "Я слыхал, что Орден серьезно обеспокоен действиями повстанцев в этом районе."; + +TXT_RANDOM_REBEL_01 = "Ордену никак не устоять против нас."; +TXT_RANDOM_REBEL_02 = "Мы почти готовы атаковать. Планы Мэйсила становятся ясны."; +TXT_RANDOM_REBEL_03 = "Мы все постоим за тебя. Не беспокойся."; +TXT_RANDOM_REBEL_04 = "Держись подальше от этих больших роботов. Они и мокрого места от тебя не оставят!"; +TXT_RANDOM_REBEL_05 = "Скоро наступит день нашего триумфа, и те, кто противостоит нам, будут сокрушены!"; +TXT_RANDOM_REBEL_06 = "Не расслабляйся. У нас по-прежнему хватает дел."; +TXT_RANDOM_REBEL_07 = "Мэйсил говорит, ты наша новая надежда. Имей это в виду."; +TXT_RANDOM_REBEL_08 = "Когда мы свергнем этих шарлатанов, то сможем воссоздать этот мир таким, каким он должен быть."; +TXT_RANDOM_REBEL_09 = "Помни, ты спаяешься не только за себя, но и за каждого здесь и снаружи."; +TXT_RANDOM_REBEL_10 = "Пока хотя бы один из нас еще дышит, мы не побеждены."; + +TXT_RANDOM_AGUARD_01 = "Проходи, рабочий."; +TXT_RANDOM_AGUARD_02 = "Прими истинную веру. Только тогда ты начнешь понимать."; +TXT_RANDOM_AGUARD_03 = "Истинное перерождение возможно только через смерть."; +TXT_RANDOM_AGUARD_04 = "Мне не интересна твоя бессмысленная болтовня."; +TXT_RANDOM_AGUARD_05 = "Если бы я хотел поговорить с тобой, то сказал бы об этом."; +TXT_RANDOM_AGUARD_06 = "Иди и надоедай кому-нибудь другому!"; +TXT_RANDOM_AGUARD_07 = "Иди куда шел!"; +TXT_RANDOM_AGUARD_08 = "Если поднимется тревога, не попадайся нам под ноги!"; +TXT_RANDOM_AGUARD_09 = "Орден очистит мир и начнется новая эра."; +TXT_RANDOM_AGUARD_10 = "Проблемы? Кажется, нет."; + +TXT_RANDOM_BEGGAR_01 = "У тебя не найдется мелочи для бедняка?"; +TXT_RANDOM_BEGGAR_02 = "На что уставился, незнакомец?"; +TXT_RANDOM_BEGGAR_03 = "У тебя случайно не найдется немного лишней еды?"; +TXT_RANDOM_BEGGAR_04 = "Вы, люди с поверхности, никогда не поймете нас."; +TXT_RANDOM_BEGGAR_05 = "Ха, стражники не могут найти нас. Эти дураки даже не знают, что мы существуем."; +TXT_RANDOM_BEGGAR_06 = "Наступит день, когда все, кроме слуг Ордена, будут вынуждены присоединиться к нам."; +TXT_RANDOM_BEGGAR_07 = "Смотри сколько влезет, но знай, что когда-нибудь так будет выглядеть и твое лицо."; +TXT_RANDOM_BEGGAR_08 = "Ничто так не выводит из себя, как болтун с поверхности!"; +TXT_RANDOM_BEGGAR_09 = "Орден быстро расправится с твоим бессильным сопротивлением."; +TXT_RANDOM_BEGGAR_10 = "Следи за собой, пришедший с поверхности. Мы знаем наших врагов!"; + +TXT_RANDOM_PGUARD_01 = "Мы длани судьбы. Прогневить нас означает встретить забвение!"; +TXT_RANDOM_PGUARD_02 = "Орден очистит мир от слабых и порочных!"; +TXT_RANDOM_PGUARD_03 = "Подчинись воле хозяев!"; +TXT_RANDOM_PGUARD_04 = "Долгой жизни братьям Ордена!"; +TXT_RANDOM_PGUARD_05 = "Свободная воля — лишь иллюзия, присущая слабоумным."; +TXT_RANDOM_PGUARD_06 = "Сила — путь к величию. Вступить в ряды Ордена означает пойти этим путем!"; +TXT_RANDOM_PGUARD_07 = "Займи свое место среди праведников. Присоединись к нам!"; +TXT_RANDOM_PGUARD_08 = "Орден защищает свою собственность."; +TXT_RANDOM_PGUARD_09 = "Служители? Им еще только предстоит узреть подлинное величие Ордена."; +TXT_RANDOM_PGUARD_10 = "Если внутри этой бренной телесной оболочки есть хоть капля чести, ты присоединишься к Ордену."; + +TXT_RANDOMGOODBYE_1 = "Пока!"; +TXT_RANDOMGOODBYE_2 = "Спасибо, пока!"; +TXT_RANDOMGOODBYE_3 = "До встречи!"; +TXT_HAVEENOUGH = "Кажется, тебе хватит!"; +TXT_GOAWAY = "Уходи!"; + +TXT_COMM0 = "Входящее сообщение"; +TXT_COMM1 = "Входящее сообщение от Черной птицы"; + +TXT_TRADE = " за %u"; + +AMMO_CLIP = "Пули"; +AMMO_SHELLS = "Патроны для дробовика"; +AMMO_ROCKETS = "Ракеты"; +AMMO_CELLS = "Энергетические ячейки"; +AMMO_GOLDWAND = "Кристалл для эльфийского жезла"; +AMMO_CROSSBOW = "Эфирные стрелы"; +AMMO_BLASTER = "Когтевой шар"; +AMMO_MACE = "Сферы для булавы"; +AMMO_SKULLROD = "Младшая руна"; +AMMO_PHOENIXROD = "Пламенный шар"; +AMMO_MANA1 = "Синяя Мана"; +AMMO_MANA2 = "Зеленая Мана"; +$ifgame(chex) AMMO_CLIP = "Заряд мини-Зорчера"; +$ifgame(chex) AMMO_SHELLS = "Заряд большого Зорчера"; +$ifgame(chex) AMMO_ROCKETS = "Заряд пропульсора"; +$ifgame(chex) AMMO_CELLS = "Заряд фазового Зорчера"; + +// Menu Strings + +// Main Menu +MNU_NEWGAME = "Новая игра"; +MNU_OPTIONS = "Настройки"; +MNU_GAMEFILES = "Игровые файлы"; +MNU_INFO = "Информация"; +MNU_QUITGAME = "Выход"; + +// Skills +MNU_CHOOSESKILL = "Уровень сложности:"; + +SKILL_BABY = "Мне рано умирать."; +SKILL_EASY = "Эй, не так грубо."; +SKILL_NORMAL = "Сделай мне больно."; +SKILL_HARD = "Ультранасилие"; +SKILL_NIGHTMARE = "КОШМАР!"; + +CSKILL_BABY = "Easy does it"; +CSKILL_EASY = "Не особо липко"; +CSKILL_NORMAL = "Масса слизи"; +CSKILL_HARD = "Экстремальная грязь"; +CSKILL_NIGHTMARE = "Сверхсклизский!"; + +SSKILL_BABY = "Разминка"; +SSKILL_EASY = "Новичок"; +SSKILL_NORMAL = "Ветеран"; +SSKILL_HARD = "Элита"; +SSKILL_NIGHTMARE = "Кровавая бойня"; + +MNU_WETNURSE = "Нянечка надобна мне"; +MNU_YELLOWBELLIES = "Не столь мужественен я"; +MNU_BRINGEST = "Подайте мне их"; +MNU_SMITE = "Искушен я сражениями"; +MNU_BLACKPLAGUE = "Чума овладела мной"; + +MNU_SQUIRE = "Оруженосец"; +MNU_KNIGHT = "Рыцарь"; +MNU_WARRIOR = "Воитель"; +MNU_BERSERKER = "Берсерк"; +MNU_TITAN = "Титан"; + +MNU_ALTARBOY = "Алтарник"; +MNU_ACOLYTE = "Служитель"; +MNU_PRIEST = "Священник"; +MNU_CARDINAL = "Кардинал"; +MNU_POPE = "Епископ"; + +MNU_APPRENTICE = "Ученик"; +MNU_ENCHANTER = "Чародей"; +MNU_SORCERER = "Колдун"; +MNU_WARLOCK = "Чернокнижник"; +MNU_ARCHMAGE = "Архимаг"; + +// Классы +MNU_CHOOSECLASS = "Класс:"; +MNU_FIGHTER = "Воин"; +MNU_CLERIC = "Клерик"; +MNU_MAGE = "Маг"; +MNU_RANDOM = "Наугад"; + +// Game Files +MNU_LOADGAME = "Загрузить игру"; +MNU_SAVEGAME = "Сохранить игру"; +MNU_NOPICTURE = "Нет\nИзображения"; +MNU_DIFFVERSION = "Другая\nВерсия"; +MNU_NOFILES = "Нет файлов"; +MNU_DELETESG = "Вы действительно хотите удалить сохранение\n"; + +// Episodes +MNU_EPISODE = "Выберите эпизод"; +MNU_COTD = "Город проклятых"; +MNU_HELLSMAW = "Адская утроба"; +MNU_DOME = "Купол Д'Спарила"; +MNU_OSSUARY = "Склеп"; +MNU_DEMESNE = "Застойные владения"; +$ifgame(heretic) SWSTRING = "Эпизод недоступен в демоверсии"; + +// Меню настроек +OPTMNU_TITLE = "НАСТРОЙКИ"; +OPTMNU_CONTROLS = "Управление"; +OPTMNU_MOUSE = "Мышь"; +OPTMNU_JOYSTICK = "Джойстик"; +OPTMNU_PLAYER = "Игрок"; +OPTMNU_GAMEPLAY = "Геймплей"; +OPTMNU_COMPATIBILITY = "Совместимость"; +OPTMNU_AUTOMAP = "Автокарта"; +OPTMNU_HUD = "HUD"; +OPTMNU_MISCELLANEOUS = "Дополнительно"; +OPTMNU_NETWORK = "Сеть"; +OPTMNU_SOUND = "Звук"; +OPTMNU_DISPLAY = "Экран"; +OPTMNU_VIDEO = "Видеорежим"; +OPTMNU_CHANGERENDER = "Режим рендеринга"; +OPTMNU_DEFAULTS = "Сбросить все настройки"; +OPTMNU_RESETTOSAVED = "Вернуть предыдущие настройки"; +OPTMNU_CONSOLE = "Открыть консоль"; +OPTMNU_REVERB = "Редактор реверберации"; + +// Controls Menu + +CNTRLMNU_TITLE = "НАСТРОЙКИ УПРАВЛЕНИЯ"; +CNTRLMNU_SWITCHTEXT1 = "ENTER — изменить, BACKSPACE — очистить"; +CNTRLMNU_SWITCHTEXT2 = "Нажмите клавишу управления, ESC для отмены"; +CNTRLMNU_CONTROLS = "Управление"; +CNTRLMNU_ATTACK = "Атака"; +CNTRLMNU_ALTATTACK = "Вторичная атака"; +CNTRLMNU_RELOAD = "Перезарядка"; +CNTRLMNU_ZOOM = "Приближение"; +CNTRLMNU_USER1 = "Положение оружия 1"; +CNTRLMNU_USER2 = "Положение оружия 2"; +CNTRLMNU_USER3 = "Положение оружия 3"; +CNTRLMNU_USER4 = "Положение оружия 4"; +CNTRLMNU_USE = "Использовать/открыть"; +CNTRLMNU_FORWARD = "Движение вперед"; +CNTRLMNU_BACK = "Движение назад"; +CNTRLMNU_MOVELEFT = "Движение влево"; +CNTRLMNU_MOVERIGHT = "Движение вправо"; +CNTRLMNU_TURNLEFT = "Поворот налево"; +CNTRLMNU_TURNRIGHT = "Поворот направо"; +CNTRLMNU_TURN180 = "Быстрый разворот"; +CNTRLMNU_JUMP = "Прыжок"; +CNTRLMNU_CROUCH = "Приседание"; +CNTRLMNU_TOGGLECROUCH = "Сесть/встать"; +CNTRLMNU_MOVEUP = "Лететь/плыть вверх"; +CNTRLMNU_MOVEDOWN = "Лететь/плыть вниз"; +CNTRLMNU_LAND = "Приземлиться"; +CNTRLMNU_MOUSELOOK = "Обзор мышью"; +CNTRLMNU_KEYBOARDLOOK = "Обзор клавиатурой"; +CNTRLMNU_LOOKUP = "Смотреть вверх"; +CNTRLMNU_LOOKDOWN = "Смотреть вниз"; +CNTRLMNU_CENTERVIEW = "Отцентрировать взгляд"; +CNTRLMNU_RUN = "Бег"; +CNTRLMNU_TOGGLERUN = "Бежать/идти"; +CNTRLMNU_STRAFE = "Движение боком"; +CNTRLMNU_SCOREBOARD = "Таблица очков"; +CNTRLMNU_TOGGLESCOREBOARD = "Таблица очков (перекл.)"; +CNTRLMNU_CHAT = "Чат"; +CNTRLMNU_SAY = "Сообщение"; +CNTRLMNU_TEAMSAY = "Сообщение команде"; +CNTRLMNU_WEAPONS = "Оружие"; +CNTRLMNU_NEXTWEAPON = "Следующее оружие"; +CNTRLMNU_PREVIOUSWEAPON = "Предыдущее оружие"; +CNTRLMNU_SLOT1 = "Оружие 1"; +CNTRLMNU_SLOT2 = "Оружие 2"; +CNTRLMNU_SLOT3 = "Оружие 3"; +CNTRLMNU_SLOT4 = "Оружие 4"; +CNTRLMNU_SLOT5 = "Оружие 5"; +CNTRLMNU_SLOT6 = "Оружие 6"; +CNTRLMNU_SLOT7 = "Оружие 7"; +CNTRLMNU_SLOT8 = "Оружие 8"; +CNTRLMNU_SLOT9 = "Оружие 9"; +CNTRLMNU_SLOT0 = "Оружие 0"; +CNTRLMNU_INVENTORY = "Инвентарь"; +CNTRLMNU_USEITEM = "Использовать предмет"; +CNTRLMNU_USEALLITEMS = "Использовать все предметы"; +CNTRLMNU_NEXTITEM = "Следующий предмет"; +CNTRLMNU_PREVIOUSITEM = "Предыдущий предмет"; +CNTRLMNU_DROPITEM = "Выбросить предмет"; +CNTRLMNU_QUERYITEM = "Показать предмет"; +CNTRLMNU_DROPWEAPON = "Выбросить оружие"; +CNTRLMNU_OTHER = "Прочее"; +CNTRLMNU_AUTOMAP = "Переключить автокарту"; +CNTRLMNU_CHASECAM = "Вид от 3-го лица (chasecam)"; +CNTRLMNU_COOPSPY = "Вид от другого игрока"; +CNTRLMNU_SCREENSHOT = "Скриншот"; +CNTRLMNU_CONSOLE = "Открыть консоль"; +CNTRLMNU_POPUPS = "Информация в Strife"; +CNTRLMNU_MISSION = "Текущее задание"; +CNTRLMNU_KEYS = "Список ключей"; +CNTRLMNU_STATS = "Оружие и статистика"; + +// Mouse Menu + +MOUSEMNU_TITLE = "НАСТРОЙКИ МЫШИ"; +MOUSEMNU_ENABLEMOUSE = "Использовать мышь"; +MOUSEMNU_MOUSEINMENU = "Использовать мышь в меню"; +MOUSEMNU_SHOWBACKBUTTON = "Кнопка «назад»"; +MOUSEMNU_CURSOR = "Курсор"; +MOUSEMNU_SENSITIVITY = "Общая чувствительность"; +MOUSEMNU_NOPRESCALE = "Увеличенная чувствительность"; +MOUSEMNU_SMOOTHMOUSE = "Плавное перемещение"; +MOUSEMNU_TURNSPEED = "Скорость поворота"; +MOUSEMNU_MOUSELOOKSPEED = "Скорость обзора"; +MOUSEMNU_FORWBACKSPEED = "Скорость передвижения"; +MOUSEMNU_STRAFESPEED = "Скорость движения боком"; +MOUSEMNU_ALWAYSMOUSELOOK = "Обзор мышью"; +MOUSEMNU_INVERTMOUSE = "Инвертирование мыши"; +MOUSEMNU_LOOKSPRING = "Передвижение мышью"; +MOUSEMNU_LOOKSTRAFE = "Движение боком мышью"; + +// Joystick Menu + +JOYMNU_TITLE = "НАСТРОИТЬ ДЖОЙСТИК"; +JOYMNU_OPTIONS = "Настройки джойстика"; +JOYMNU_NOMENU = "Отключить джойстик в меню"; + +// Player Setup Menu +MNU_PLAYERSETUP = "Настройки игрока"; +PLYRMNU_NAME = "Имя"; +PLYRMNU_TEAM = "Команда"; +PLYRMNU_PLAYERCOLOR = "Цвет"; +PLYRMNU_RED = "Крас."; +PLYRMNU_GREEN = "Зел."; +PLYRMNU_BLUE = "Синий"; +PLYRMNU_PLAYERCLASS = "Класс"; +PLYRMNU_PLAYERSKIN = "Скин"; +PLYRMNU_PLAYERGENDER = "Пол"; +PLYRMNU_AUTOAIM = "Автоприц."; +PLYRMNU_SWITCHONPICKUP = "Перекл. при подборе"; +PLYRMNU_ALWAYSRUN = "Постоянный бег"; +PLYRMNU_PRESSSPACE = "\n\cjSPACE"; +PLYRMNU_SEEFRONT = "\nПовернуть"; +PLYRMNU_SEEBACK = "\nПовернуть"; + +// Display Options +DSPLYMNU_TITLE = "НАСТРОЙКИ ЭКРАНА"; +DSPLYMNU_SCOREBOARD = "Таблица очков"; +DSPLYMNU_SCREENSIZE = "Размер экрана"; +DSPLYMNU_BRIGHTNESS = "Яркость"; +DSPLYMNU_VSYNC = "Вертикальная синхронизация"; +DSPLYMNU_CAPFPS = "Сглаживание рендеринга"; +DSPLYMNU_COLUMNMETHOD = "Режим рендеринга колонок"; +DSPLYMNU_BLENDMETHOD = "Режим рендеринга прозрачности"; + +DSPLYMNU_WIPETYPE = "Эффект плавной смены экранов"; +DSPLYMNU_SHOWENDOOM = "Показать экран ENDOOM"; +DSPLYMNU_BLOODFADE = "Интенсивность вспышки при ранении"; +DSPLYMNU_PICKUPFADE = "Интенсивность вспышки при подборе"; +DSPLYMNU_WATERFADE = "Интенсивность эффекта под водой"; +DSPLYMNU_PALLETEHACK = "DirectDraw хак палитры"; // Не используется +DSPLYMNU_ATTACHEDSURFACES = "Использовать прикрепленные поверхности"; // Не используется +DSPLYMNU_SKYMODE = "Режим отрисовки неба"; +DSPLYMNU_LINEARSKY = "Линейной небо"; +DSPLYMNU_GZDFULLBRIGHT = "Полная яркость замещает цвет сектора"; +DSPLYMNU_MODELS = "Модели"; +DSPLYMNU_SCALEFUZZ = "Масштабировать эффект шума"; +DSPLYMNU_DRAWFUZZ = "Использовать эффект шума"; +DSPLYMNU_OLDTRANS = "Классическая прозрачность"; +DSPLYMNU_TRANSSOUL = "Прозрачность потерянных душ"; +DSPLYMNU_FAKECONTRAST = "Имитация контрастного освещения стен"; +DSPLYMNU_ROCKETTRAILS = "Дымовой след у ракет"; +DSPLYMNU_BLOODTYPE = "Тип крови"; +DSPLYMNU_PUFFTYPE = "Тип рикошетов"; +DSPLYMNU_MAXPARTICLES = "Количество частиц"; +DSPLYMNU_MAXDECALS = "Количество декалей"; +DSPLYMNU_PLAYERSPRITES = "Показывать спрайты игрока"; +DSPLYMNU_DEATHCAM = "Вид от 3-го лица камеры при смерти"; +DSPLYMNU_TELEZOOM = "Зум при телепортации"; +DSPLYMNU_QUAKEINTENSITY = "Интенсивность землетрясений"; +DSPLYMNU_NOMONSTERINTERPOLATION = "Сглаживание движения монстров"; +DSPLYMNU_MENUDIM = "Затемнение фона меню"; +DSPLYMNU_DIMCOLOR = "Цвет затемнения"; +DSPLYMNU_MOVEBOB = "Покачивание камеры при движении"; +DSPLYMNU_STILLBOB = "Покачивание камеры при бездействии"; +DSPLYMNU_BOBSPEED = "Скорость покачивания оружия"; +DSPLYMNU_GPUSWITCH = "Использование GPU ноутбука"; + +// HUD Options +HUDMNU_TITLE = "Настройки HUD"; +HUDMNU_ALTHUD = "Альтернативный HUD"; +HUDMNU_MESSAGE = "Настройки сообщений"; +HUDMNU_UISCALE = "Масштаб. интерфейса"; +HUDMNU_CROSSHAIR = "Тип прицела"; +HUDMNU_FORCECROSSHAIR = "Всегда стандартный прицел"; +HUDMNU_GROWCROSSHAIR = "Увеличение прицела при подборе"; +HUDMNU_CROSSHAIRCOLOR = "Цвет прицела"; +HUDMNU_CROSSHAIRHEALTH = "Цвет прицела по состоянию здоровья"; +HUDMNU_CROSSHAIRSCALE = "Масштаб. прицела"; +HUDMNU_NAMETAGS = "Указание названия предметов"; +HUDMNU_NAMETAGCOLOR = "Цвет названия предметов"; +HUDMNU_SCALEFULLSCREENHUD = "Масштаб. полноэкранного интерфейса"; +HUDMNU_OLDOUCH = "Старая формула для портрета"; +HUDMNU_HEXENFLASHES = "Тип вспышки оружия в Hexen"; +HUDMNU_POISONFLASHES = "Тип вспышки яда"; +HUDMNU_ICEFLASHES = "Тип вспышки при смерти от льда"; +HUDMNU_HAZARDFLASHES = "Тип вспышки при скоплении яда"; +HUDMNU_SCALEOPT = "Настройки масштабирования"; + +// Scaling options +SCALEMNU_TITLE = "НАСТРОЙКИ МАСШТАБИРОВАНИЯ"; +SCALEMNU_OVERRIDE = "Задать специальные настройки"; +SCALEMNU_MESSAGES = "Сообщения"; +SCALEMNU_CONSOLE = "Консоль"; +SCALEMNU_STATBAR = "Строка состояния"; +SCALEMNU_HUD = "Полноэкранный HUD"; +SCALEMNU_ALTHUD = "Альтернативный HUD"; +SCALEMNU_HUDASPECT = "Соотношение сторон"; +SCALEMNU_USEUI = "Размер по умолчанию"; +SCALEMNU_USEFS = "Масштабировать со всем экраном"; +SCALEMNU_ADAPT = "Адаптироваться к размеру экрана"; + +// AltHUD Options +ALTHUDMNU_TITLE = "Альтернативный HUD"; +ALTHUDMNU_ENABLE = "Альтернативный HUD"; +ALTHUDMNU_SHOWSECRETS = "Отображение обнаруженных тайников"; +ALTHUDMNU_SHOWMONSTERS = "Отображение количества монстров"; +ALTHUDMNU_SHOWITEMS = "Отображение количества предметов"; +ALTHUDMNU_SHOWSTATS = "Отображение стойкости и точности"; +ALTHUDMNU_SHOWBERSERK = "Отображение берсерка"; +ALTHUDMNU_SHOWWEAPONS = "Отображение оружия"; +ALTHUDMNU_SHOWAMMO = "Показывать патроны для"; +ALTHUDMNU_SHOWTIME = "Отображение времени"; +ALTHUDMNU_TIMECOLOR = "Цвет времени"; +ALTHUDMNU_SHOWLAG = "Отображение задержки сети"; +ALTHUDMNU_AMMOORDER = "Порядок отображения боеприпасов"; +ALTHUDMNU_AMMORED = "Кр. отображение боеприпасов под %"; +ALTHUDMNU_AMMOYELLOW = "Жл. отображение боеприпасов под %"; +ALTHUDMNU_HEALTHRED = "Красное отображение здоровья под"; +ALTHUDMNU_HEALTHYELLOW = "Желтое отображение здоровья под"; +ALTHUDMNU_HEALTHGREEN = "Зел. отображение здоровья под"; +ALTHUDMNU_ARMORRED = "Красное отображение броня под"; +ALTHUDMNU_ARMORYELLOW = "Желтое отображение броня под"; +ALTHUDMNU_ARMORGREEN = "Зел. отображение броня под"; +ALTHUDMNU_AUTOMAPHUD = "Альт. HUD на автокарте"; +ALTHUDMNU_TITLECOLOR = "Цвет названия уровня"; +ALTHUDMNU_MAPTIMECOLOR = "Цвет времени для уровней"; +ALTHUDMNU_HUBTIMECOLOR = "Цвет времени для хабов"; +ALTHUDMNU_TOTALTIMECOLOR = "Цвет общего времени"; +ALTHUDMNU_COORDINATECOLOR = "Цвет координат"; +ALTHUDMNU_COORDINATEMODE = "Координаты игрока"; +ALTHUDMNU_STATSNAMECOLOR = "Цвет имен в статистике"; +ALTHUDMNU_STATSCOLOR = "Цвет статистики"; + +// Misc. Options +MISCMNU_TITLE = "ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ"; +MISCMNU_MERGEKEYS = "Не разделять левый/правый ALT/CTRL/SHIFT"; +MISCMNU_WINFULLSCREENTOGGLE = "Переключение полного экрана по ALT+ENTER"; +MISCMNU_MACFULLSCREENTOGGLE = "Переключение полного экрана по Command+F"; +MISCMNU_QUERYIWAD = "Выбор IWAD при запуске"; +MISCMNU_ALLCHEATS = "Читы из всех игр"; +MISCMNU_ENABLEAUTOSAVES = "Автосохранения"; +MISCMNU_AUTOSAVECOUNT = "Количество автосохранений"; +MISCMNU_SAVELOADCONFIRMATION = "Подтверждение при сохранении/загрузке"; +MISCMNU_DEHLOAD = "Загружать файлы *.deh/*.bex"; +MISCMNU_CACHENODES = "Кэширование нодов"; +MISCMNU_CACHETIME = "Временной порог для кэширования нодов"; // Имеется в виду количество времени, затрачиваемое на загрузку карты, чтобы ноды начали кешироваться +MISCMNU_CLEARNODECACHE = "Очистить кэш нодов"; +MISCMNU_INTERSCROLL = "Разрешение пропуска текстовых вставок"; +// Automap Options +AUTOMAPMNU_TITLE = "Настройки автокарты"; +AUTOMAPMNU_COLORSET = "Цвета автокарты"; +AUTOMAPMNU_CUSTOMCOLORS = "Настроить цвета автокарты"; +AUTOMAPMNU_SETCUSTOMCOLORS = "Выбор цветов"; +AUTOMAPMNU_CONTROLS = "Управление"; +AUTOMAPMNU_ROTATE = "Вращающаяся автокарта"; +AUTOMAPMNU_OVERLAY = "Прозрачная автокарта"; +AUTOMAPMNU_TEXTURED = "Текстуры на автокарте"; +AUTOMAPMNU_FOLLOW = "Привязка к игроку"; +AUTOMAPMNU_SHOWITEMS = "Количество предметов"; +AUTOMAPMNU_SHOWMONSTERS = "Количество монстов"; +AUTOMAPMNU_SHOWSECRETS = "Количество тайников"; +AUTOMAPMNU_SHOWTIME = "Прошедшее время"; +AUTOMAPMNU_SHOWTOTALTIME = "Общее время"; +AUTOMAPMNU_MAPSECRETS = "Тайники на карте"; +AUTOMAPMNU_SHOWMAPLABEL = "Название карты"; +AUTOMAPMNU_DRAWMAPBACK = "Отображать фон автокарты"; +AUTOMAPMNU_SHOWKEYS = "Отображать ключи (только чит)"; +AUTOMAPMNU_SHOWTRIGGERLINES = "Отображать триггеры"; +AUTOMAPMNU_SHOWTHINGSPRITES = "Отображать спрайты предметов"; +AUTOMAPMNU_PTOVERLAY = "Порталы в прозрачном режиме"; +AUTOMAPMNU_EMPTYSPACEMARGIN = "Край автокарты"; + +// Automap Controls +MAPCNTRLMNU_TITLE = "НАСТРОЙКИ УПРАВЛЕНИЯ КАРТОЙ"; +MAPCNTRLMNU_CONTROLS = "Управление автокартой"; +MAPCNTRLMNU_PANLEFT = "Сдвиг влево"; +MAPCNTRLMNU_PANRIGHT = "Сдвиг вправо"; +MAPCNTRLMNU_PANUP = "Сдвиг вверх"; +MAPCNTRLMNU_PANDOWN = "Сдвиг вниз"; +MAPCNTRLMNU_ZOOMIN = "Увеличить масштаб"; +MAPCNTRLMNU_ZOOMOUT = "Уменьшить масштаб"; +MAPCNTRLMNU_TOGGLEZOOM = "Переключить зум"; +MAPCNTRLMNU_TOGGLEFOLLOW = "Переключить следование"; +MAPCNTRLMNU_TOGGLEGRID = "Переключить сетку"; +MAPCNTRLMNU_TOGGLETEXTURE = "Переключить текстуры"; +MAPCNTRLMNU_SETMARK = "Поставить отметку"; +MAPCNTRLMNU_CLEARMARK = "Убрать отметку"; + +// Automap Colors +MAPCOLORMNU_TITLE = "НАСТРОЙКИ ЦВЕТОВ АВТОКАРТЫ"; +MAPCOLORMNU_DEFAULTMAPCOLORS = "Вернуть стандартные цвета"; +MAPCOLORMNU_BACKCOLOR = "Фон"; +MAPCOLORMNU_YOURCOLOR = "Игрок"; +MAPCOLORMNU_WALLCOLOR = "Односторонние стены"; +MAPCOLORMNU_FDWALLCOLOR = "Двусторонние стены"; +MAPCOLORMNU_CDWALLCOLOR = "Двусторонние стены с разными потолками"; +MAPCOLORMNU_EFWALLCOLOR = "Двусторонние стены с разными полами"; +MAPCOLORMNU_GRIDCOLOR = "Цвет сетки"; +MAPCOLORMNU_XHAIRCOLOR = "Курсор"; +MAPCOLORMNU_NOTSEENCOLOR = "Необнаруженные стены"; +MAPCOLORMNU_LOCKEDCOLOR = "Запертые двери"; +MAPCOLORMNU_INTRALEVELCOLOR = "Телепорт в пределах уровня"; +MAPCOLORMNU_INTERLEVELCOLOR = "Телепорт на другой уровень"; +MAPCOLORMNU_SECRETSECTORCOLOR = "Тайный сектор"; +MAPCOLORMNU_UNEXPLOREDSECRETCOLOR = "Необнаруженный тайник"; +MAPCOLORMNU_SPECIALWALLCOLOR = "Специальные триггер-линии"; +MAPCOLORMNU_CHEATMODE = "Чит-режим"; +MAPCOLORMNU_TSWALLCOLOR = "Невидимые двусторонние стены"; +MAPCOLORMNU_SECRETWALLCOLOR = "Тайные стены"; +MAPCOLORMNU_THINGCOLOR = "Объекты"; +MAPCOLORMNU_MONSTERCOLOR = "Монстры"; +MAPCOLORMNU_NONCOUNTINGMONSTERCOLOR = "Неучитываемые монстры"; +MAPCOLORMNU_FRIENDCOLOR = "Дружественные"; +MAPCOLORMNU_ITEMCOLOR = "Предметы"; +MAPCOLORMNU_COUNTITEMCOLOR = "Учитываемые предметы"; +MAPCOLORMNU_OVERLAY = "Прозрачный режим"; +MAPCOLORMNU_OVCHEATMODE = "Прозрачный чит-режим"; +MAPCOLORMNU_PORTAL = "Порталы в прозрачном режиме"; + +// Message Options +MSGMNU_TITLE = "СООБЩЕНИЯ"; +MSGMNU_SHOWMESSAGES = "Отображение сообщений"; +MSGMNU_SHOWOBITUARIES = "Отображение некрологов"; +MSGMNU_SHOWSECRETS = "Отображение сообщений о тайниках"; +MSGMNU_MESSAGELEVEL = "Минимальный уровень сообщений"; +MSGMNU_CENTERMESSAGES = "Центрирование сообщений"; +MSGMNU_MESSAGECOLORS = "Цвета сообщений"; +MSGMNU_ITEMPICKUP = "Подбор предмета"; +MSGMNU_OBITUARIES = "Некрологи"; +MSGMNU_CRITICALMESSAGES = "Важные сообщения"; +MSGMNU_CHATMESSAGES = "Сообщения в чате"; +MSGMNU_TEAMMESSAGES = "Командные сообщения в чате"; +MSGMNU_CENTEREDMESSAGES = "Центрированные сообщения"; +MSGMNU_SCREENSHOTMESSAGES = "Сообщения о скриншотах"; +MSGMNU_LONGSAVEMESSAGES = "Подробные сообщения о сохранениях"; +MSGMNU_DEVELOPER = "Режим сообщений для разработчиков"; + +// Scoreboard Options +SCRBRDMNU_TITLE = "НАСТРОЙКИ ТАБЛИЦЫ ОЧКОВ"; +SCRBRDMNU_COOPERATIVE = "Настройки для команд"; +SCRBRDMNU_ENABLE = "Включить таблицу очков"; +SCRBRDMNU_HEADERCOLOR = "Цвет заголовка"; +SCRBRDMNU_YOURCOLOR = "Ваш цвет"; +SCRBRDMNU_OTHERPLAYERCOLOR = "Цвет других игроков"; +SCRBRDMNU_DEATHMATCH = "Настройки Deathmatch"; +SCRBRDMNU_TEAMDEATHMATCH = "Настройки командного Deathmatch"; + +// Gameplay Menu +GMPLYMNU_TITLE = "НАСТРОЙКИ ГЕЙМПЛЕЯ"; +GMPLYMNU_TEAMPLAY = "Командный режим"; +GMPLYMNU_TEAMDAMAGE = "Множитель урона по своим"; +GMPLYMNU_SMARTAUTOAIM = "Умное автоприцеливание"; +GMPLYMNU_FALLINGDAMAGE = "Урон от падения"; +GMPLYMNU_DROPWEAPON = "Сохранять оружие после смерти"; +GMPLYMNU_DOUBLEAMMO = "Удвоенные патроны"; +GMPLYMNU_INFINITEAMMO = "Бесконечные патроны"; +GMPLYMNU_INFINITEINVENTORY = "Бесконечный инвентарь"; +GMPLYMNU_NOMONSTERS = "Отключить монстров"; +GMPLYMNU_NOMONSTERSTOEXIT = "Убить всех монстров для выхода"; +GMPLYMNU_MONSTERSRESPAWN = "Монстры воскрешаются"; +GMPLYMNU_NORESPAWN = "Отключение воскрешения"; +GMPLYMNU_ITEMSRESPAWN = "Восстановление предметов"; +GMPLYMNU_SUPERRESPAWN = "Восстановление супер-бонусов"; +GMPLYMNU_FASTMONSTERS = "Ускоренные монстры"; +GMPLYMNU_DEGENERATION = "Уменьшать доп. здоровье"; // Или "Дегенерация" =D +GMPLYMNU_NOAUTOAIM = "Разрешить автоприцеливание"; +GMPLYMNU_ALLOWSUICIDE = "Разрешить суицид"; +GMPLYMNU_ALLOWJUMP = "Прыжки"; +GMPLYMNU_ALLOWCROUCH = "Приседание"; +GMPLYMNU_ALLOWFREELOOK = "Обзор мышью"; +GMPLYMNU_ALLOWFOV = "Разрешить изменение FOV"; +GMPLYMNU_BFGFREEAIM = "Разрешить прицеливание с BFG"; +GMPLYMNU_ALLOWAUTOMAP = "Разрешить использование автокарты"; +GMPLYMNU_AUTOMAPALLIES = "Показывать союзников на автокарте"; +GMPLYMNU_ALLOWSPYING = "Разрешить вид от других игроков"; +GMPLYMNU_CHASECAM = "Разрешить вид от 3-го лица"; +GMPLYMNU_DONTCHECKAMMO = "Проверять патроны при переключении оружия"; // Именно при перелистывании, а не смене на конкретное +GMPLYMNU_KILLBOSSSPAWNS = "Убить порождения Иконы при ее смерти"; +GMPLYMNU_NOCOUNTENDMONSTER = "Считать монстров в конечном секторе убитыми"; // Или "Пройденные сектора считаются за % убийств +GMPLYMNU_DEATHMATCH = "Настройки deathmatch"; +GMPLYMNU_WEAPONSSTAY = "Оставлять оружие после подбора"; +GMPLYMNU_ALLOWPOWERUPS = "Разрешить бонусы"; +GMPLYMNU_ALLOWHEALTH = "Разрешить бонусы к здоровью"; +GMPLYMNU_ALLOWARMOR = "Разрешить броню"; +GMPLYMNU_SPAWNFARTHEST = "Восстановление подальше от остальных"; +GMPLYMNU_SAMEMAP = "Зациклить уровень"; +GMPLYMNU_FORCERESPAWN = "Моментальное восстановление"; +GMPLYMNU_ALLOWEXIT = "Разрешить выход"; +GMPLYMNU_BARRELSRESPAWN = "Восстановление бочек"; +GMPLYMNU_RESPAWNPROTECTION = "Кратковременная защита после воскрешения"; +GMPLYMNU_LOSEFRAG = "Терять фраг при смерти"; +GMPLYMNU_KEEPFRAGS = "Сохранять фраги между уровнями"; +GMPLYMNU_NOTEAMSWITCH = "Запретить переход между командами"; +GMPLYMNU_COOPERATIVE = "Настройки кооператива"; +GMPLYMNU_MULTIPLAYERWEAPONS = "Появление оружия из мультиплеера"; +GMPLYMNU_LOSEINVENTORY = "Терять весь инвентарь при смерти"; +GMPLYMNU_KEEPKEYS = "Сохранять ключи"; +GMPLYMNU_KEEPWEAPONS = "Сохранять оружие"; +GMPLYMNU_KEEPARMOR = "Сохранять броню"; +GMPLYMNU_KEEPPOWERUPS = "Сохранять супер-бонусы"; +GMPLYMNU_KEEPAMMO = "Сохранять патроны"; +GMPLYMNU_LOSEHALFAMMO = "Терять половину патронов"; +GMPLYMNU_SPAWNWHEREDIED = "Восстановление на месте смерти"; + +// Compatibility Options +CMPTMNU_TITLE = "НАСТРОЙКИ СОВМЕСТИМОСТИ"; +CMPTMNU_MODE = "Режим совместимости"; +CMPTMNU_ACTORBEHAVIOR = "Поведение акторов"; +CMPTMNU_CORPSEGIBS = "Раздавленные монстры могут быть воскрешены"; +CMPTMNU_NOBLOCKFRIENDS = "Не блокировать дружественных монстров"; +CMPTMNU_LIMITPAIN = "Ограничить число потер. душ из элементалей боли"; +CMPTMNU_MBFMONSTERMOVE = "Эффекты влияют на движение монстров"; +CMPTMNU_CROSSDROPOFF = "Монстрам нельзя пересекать уступы"; +CMPTMNU_DROPOFF = "Монстры застревают на уступах"; +CMPTMNU_INVISIBILITY = "Монстры видят невидимых игроков"; +CMPTMNU_MINOTAUR = "Минотавры не создают огонь в воде"; +CMPTMNU_NOTOSSDROPS = "Выброшенные предметы создаются на земле"; +CMPTMNU_DEHACKEDBEHAVIOR = "Поведение DeHackEd"; +CMPTMNU_DEHHEALTH = "Настройки здоровья DEH как в Doom2.exe"; +CMPTMNU_MUSHROOM = "Оригинальная скорость A_Mushroom в модах DEH"; +CMPTMNU_MAPACTIONBEHAVIOR = "Поведение уровней/действий"; +CMPTMNU_USEBLOCKING = "Все специальные линии могут блокировать "; +CMPTMNU_ANYBOSSDEATH = "Любой A_BossDeath активирует special на уровне"; +CMPTMNU_NODOORLIGHT = "Отключить световой эффект на дверях из BOOM"; +CMPTMNU_LIGHT = "Искать соседнего света как в Doom"; +CMPTMNU_SHORTTEX = "Искать кратчайшие текстуры как в Doom"; +CMPTMNU_STAIRS = "Использовать неисправленное построение лестниц"; +CMPTMNU_FLOORMOVE = "Поведение движения по полу из Doom"; +CMPTMNU_POINTONLINE = "Использовать алгоритм point-on-line из Doom"; +CMPTMNU_MULTIEXIT = "Выходы могут быть активированы более одного раза"; +CMPTMNU_PHYSICSBEHAVIOR = "Поведение физики"; +CMPTMNU_NOPASSOVER = "Акторы бесконечно высокие"; +CMPTMNU_BOOMSCROLL = "Скроллеры из BOOM являются аддитивными"; +CMPTMNU_BADANGLES = "Запрещено двигаться прямо на С, Ю, З, В"; +CMPTMNU_WALLRUN = "Включить быстрый бег вдоль стен (wallrun)"; +CMPTMNU_RAVENSCROLL = "Raven-скроллеры используют оригинальную скорость"; +CMPTMNU_TRACE = "Самоссылающиеся секторы не блокируют выстрелы"; +CMPTMNU_HITSCAN = "Использовать код из Doom для проверок хит-сканов"; +CMPTMNU_MISSILECLIP = "Использовать высоты из Doom для столкновения ракет"; +CMPTMNU_RENDERINGBEHAVIOR = "Поведение рендеринга"; +CMPTMNU_POLYOBJ = "Рисовать полиобъекты как в Hexen"; +CMPTMNU_MASKEDMIDTEX = "Игнорировать смещение Y на скрытых мид-текстурах"; +CMPTMNU_SPRITESORT = "Инвертировать сортировку спрайтов"; +CMPTMNU_SOUNDBEHAVIOR = "Поведение звуков"; +CMPTMNU_SOUNDSLOTS = "Исказить звуки для трюка бесшумной BFG"; +CMPTMNU_SILENTPICKUP = "Запрещать другим слышать Ваш подбор предметов"; +CMPTMNU_SILENTINSTANTFLOORS = "Мгновенно двигающиеся полы не беззвучны"; +CMPTMNU_SECTORSOUNDS = "Звуки секторов используют центр как источник"; +CMPTMNU_SOUNDCUTOFF = "Останавливать звуки при исчезновении актора"; +CMPTMNU_SOUNDTARGET = "Оригинальная обработка источников звука"; +CMPTMNU_TELEPORT = "Скрипт. телепорты не инициируют действия секторов"; +CMPTMNU_PUSHWINDOW = "Неблокирующие линии могут быть отодвинуты"; + +// Sound Options +SNDMNU_TITLE = "НАСТРОЙКИ ЗВУКА"; +SNDMNU_SFXVOLUME = "Громкость звука"; +SNDMNU_MENUVOLUME = "Громкость меню"; +SNDMNU_MUSICVOLUME = "Громкость музыки"; +SNDMNU_MIDIDEVICE = "MIDI проигрыватель"; +SNDMNU_BACKGROUND = "Звуки в фоне"; +SNDMNU_UNDERWATERREVERB = "Эффект под водой"; +SNDMNU_RANDOMIZEPITCHES = "Изменять высоту"; +SNDMNU_CHANNELS = "Количество каналов"; +SNDMNU_BACKEND = "Звуковая система"; +SNDMNU_OPENAL = "Настройки OpenAL"; +SNDMNU_RESTART = "Перезапустить звук"; +SNDMNU_ADVANCED = "Расширенные настройки"; +SNDMNU_MODREPLAYER = "ПАРАМЕТРЫ МОДУЛЯ ВОСПРОИЗВЕДЕНИЯ"; +SNDMNU_MIDIPLAYER = "НАСТРОЙКИ MIDI-ПРОИГРЫВАТЕЛЯ"; + +// OpenAL Options +OPENALMNU_TITLE = "НАСТРОЙКИ OPENAL"; +OPENALMNU_PLAYBACKDEVICE = "Устройство воспроизведения"; +OPENALMNU_ENABLEEFX = "Включить EFX"; +OPENALMNU_RESAMPLER = "Ресемплер"; + +// Advanced Sound Options +ADVSNDMNU_TITLE = "РАСШИРЕННЫЕ НАСТРОЙКИ"; +ADVSNDMNU_SAMPLERATE = "Частота дискретизации"; +ADVSNDMNU_HRTF = "HRTF"; +ADVSNDMNU_OPLSYNTHESIS = "Синтез OPL"; +ADVSNDMNU_OPLNUMCHIPS = "Количество эмулируемых OPL чипов"; +ADVSNDMNU_OPLFULLPAN = "Полная стереопанорама для MIDI"; +ADVSNDMNU_OPLCORES = "Ядро эмуляции OPL"; +ADVSNDMNU_OPNCORES = "Ядро эмуляции OPN2"; +ADVSNDMNU_GUSEMULATION = "Эмуляция GUS"; +ADVSNDMNU_GUSCONFIG = "Файл конфигурации для GUS"; +ADVSNDMNU_MIDIVOICES = "MIDI-голоса"; +ADVSNDMNU_DMXGUS = "Читать файлы DMXGUS"; +ADVSNDMNU_GUSMEMSIZE = "Размер памяти GUS"; +ADVSNDMNU_FLUIDSYNTH = "FluidSynth"; +ADVSNDMNU_FLUIDPATCHSET = "Патч-набор"; +ADVSNDMNU_FLUIDGAIN = "Усиление"; +ADVSNDMNU_REVERB = "Реверберация"; +ADVSNDMNU_REVERB_LEVEL = "Уровень реверберации"; +ADVSNDMNU_CHORUS = "Хорус"; +ADVSNDMNU_TIMIDITY = "Timidity++"; +ADVSNDMNU_ADLMIDI = "ADLMidi"; +ADVSNDMNU_OPNMIDI = "OPNMidi"; +ADVSNDMNU_TIMIDITYEXE = "Путь к синтезатору"; +ADVSNDMNU_TIMIDITYCONFIG = "Файл конфигурации Timidity"; +ADVSNDMNU_TIMIDITYVOLUME = "Относительная громкость"; +ADVSNDMNU_WILDMIDI = "WildMidi"; +ADVSNDMNU_WILDMIDICONFIG = "Файл конфигурации WildMidi"; +ADVSNDMNU_SELCONFIG = "Выбор конфигурации"; +ADVSNDMNU_GLOBAL = "Общие"; +ADVSNDMNU_FREEVERB = "Freeverb"; +ADVSNDMNU_GLOBAL_FREEVERB = "Global Freeverb"; +ADVSNDMNU_ADVRESAMPLING = "Продвинутый ресемплинг"; +ADVSNDMNU_OPLBANK = "OPL Bank"; +ADVSNDMNU_ADLOPLCORES = "OPL Emulator Core"; +ADVSNDMNU_RUNPCMRATE = "Run emulator at PCM rate"; +ADVSNDMNU_ADLNUMCHIPS = "Number of emulated OPL chips"; +ADVSNDMNU_VLMODEL = "Volume model"; +ADVSNDMNU_OPNNUMCHIPS = "Number of emulated OPN chips"; +ADVSNDMNU_ADLCUSTOMBANK = "Use custom WOPL bank"; +ADVSNDMNU_OPLBANKFILE = "WOPL Bank file"; +ADVSNDMNU_OPNCUSTOMBANK = "Use custom WOPN bank"; +ADVSNDMNU_OPNBANKFILE = "WOPN Bank file"; + +// ADLMIDI's emulation cores + +// ADLMIDI's volume models +ADLVLMODEL_AUTO = "Auto (Use setup of bank)"; +ADLVLMODEL_GENERIC = "Generic"; +ADLVLMODEL_NATIVE = "OPL Native"; +ADLVLMODEL_DMX = "DMX"; +ADLVLMODEL_APOGEE = "Apogee"; +ADLVLMODEL_WIN9X = "Win9X-like"; + +// Module Replayer Options +MODMNU_TITLE = "ПАРАМЕТРЫ МОДУЛЯ ВОСПРОИЗВЕДЕНИЯ"; +MODMNU_REPLAYERENGINE = "Звуковой движок"; +MODMNU_MASTERVOLUME = "Общая громкость"; +MODMNU_QUALITY = "Качество"; +// MODMNU_VOLUMERAMPING = "Объем-рэмпинг"; // TODO: Fix +MODMNU_CHIPOMATIC = "Chip-o-matic"; + +// Renderer Options +RNDMNU_TITLE = "СМЕНИТЬ РЕНДЕРЕР"; +RNDMNU_RENDERER = "Аппаратное ускорение"; +RNDMNU_TRUECOLOR = "Полноцветный програмный"; +RNDMNU_POLY = "Поли-рендерер (экспериментальный)"; +RNDMNU_CANVAS = "Холст для программного рендеринга"; + +// Video Options +VIDMNU_TITLE = "НАСТРОЙКИ ВИДЕОРЕЖИМА"; +VIDMNU_RENDERMODE = "Режим рендеринга"; +VIDMNU_FULLSCREEN = "Полный экран"; +VIDMNU_HIDPI = "Поддержка Retina/HiDPI"; +VIDMNU_BRDLSS = "Безрамочный оконный режим"; +VIDMNU_ASPECTRATIO = "Соотношение сторон"; +VIDMNU_FORCEASPECT = "Принудительное соот. сторон"; +VIDMNU_CROPASPECT = "Принудительный тип соот."; +VIDMNU_5X4ASPECTRATIO = "Включить соотношение сторон 5:4"; +VIDMNU_SCALEMODE = "Масштабирование"; +VIDMNU_SCALEFACTOR = "Значение масштаба"; +VIDMNU_ENTERTEXT = "Нажмите ENTER для установки режима"; +VIDMNU_TESTTEXT1 = "T для просмотра режима в течение 5 секунд"; +VIDMNU_TESTTEXT2 = "Пожалуйста, подождите 5 секунд..."; +VIDMNU_USELINEAR = "Линейное Масшт. (Полный Экран)"; +VIDMNU_CUSTOMRES = "Пользовательское разрешение"; +VIDMNU_CUSTOMX = "Польз. Длина"; +VIDMNU_CUSTOMY = "Польз. Высота"; +VIDMNU_APPLYW = "Сохранить Изменения (Оконный Режим)"; +VIDMNU_APPLYFS = "Сохранить Изменения (Полный Экран)"; +VIDMNU_RESPRESET = "Выбор пресета разрешения"; +VIDMNU_RESPRESETTTL = "ПОЛЬЗОВАТЕЛЬСКИЕ ПРЕСЕТЫ РАЗРЕШЕНИЯ"; +VIDMNU_RESPRESETHEAD = "Доступные разрешения"; +VIDMNU_ASPECT43 = "4:3"; +VIDMNU_ASPECT54 = "5:4"; +VIDMNU_ASPECT169 = "16:9"; +VIDMNU_ASPECT1610 = "16:10"; + +// Network Options +NETMNU_TITLE = "НАСТРОЙКИ СЕТИ"; +NETMNU_LOCALOPTIONS = "Локальные настройки"; +NETMNU_MOVEPREDICTION = "Предсказание движения"; +NETMNU_LINESPECIALPREDICTION = "Предсказание действий на уровне"; +NETMNU_PREDICTIONLERPSCALE = "Предсказание масштаба лэрпа"; // ?? +NETMNU_LERPTHRESHOLD = "Порог лэрпа"; // ?? +NETMNU_HOSTOPTIONS = "Настройки хоста"; +NETMNU_EXTRATICS = "Дополнительные тики"; +NETMNU_TICBALANCE = "Балансировка задержки"; + +// Joystick menu + +JOYMNU_ENABLE = "Включить поддержку джойстика"; +JOYMNU_DINPUT = "Включить джойстики DirectInput"; +JOYMNU_XINPUT = "Включить джойстики XInput"; +JOYMNU_PS2 = "Использовать адаптеры Playstation 2 напрямую"; +JOYMNU_NOCON = "Джойстики не обнаружены"; +JOYMNU_CONFIG = "Настроить джойстик:"; +JOYMNU_DISABLED1 = "Настройка «включить поддержку джойстика»"; +JOYMNU_DISABLED2 = "должна быть включена, чтобы выявить джойстик"; +JOYMNU_INVALID = "Недопустимый джойстик выбран для меню"; +JOYMNU_OVRSENS = "Общая чувствительность"; +JOYMNU_AXIS = "Конфигурация осей"; +JOYMNU_INVERT = "Инвертировать"; +JOYMNU_DEADZONE = "Мертвая зона"; +JOYMNU_NOAXES = "Нет настраиваемых осей"; + +// Option Values +OPTVAL_OFF = "Откл."; +OPTVAL_ON = "Вкл."; +OPTVAL_AUTO = "Авто"; +OPTVAL_MALE = "Мужской"; +OPTVAL_FEMALE = "Женский"; +OPTVAL_NEUTRAL = "Нейтральный"; +OPTVAL_OTHER = "Предмет"; +OPTVAL_UPPERLEFT = "Вверху слева"; +OPTVAL_UPPERRIGHT = "Вверху справа"; +OPTVAL_LOWERLEFT = "Внизу слева"; +OPTVAL_LOWERRIGHT = "Внизу справа"; +OPTVAL_TOUCHSCREENLIKE = "Как сенсорный экран"; +OPTVAL_NONE = "Откл."; +OPTVAL_TURNING = "Поворот"; +OPTVAL_LOOKINGUPDOWN = "Взгляд вверх/вниз"; +OPTVAL_MOVINGFORWARD = "Движение вперед"; +OPTVAL_STRAFING = "Движение боком"; +OPTVAL_MOVINGUPDOWN = "Движение вверх/вниз"; +OPTVAL_INVERTED = "Инвертировано"; +OPTVAL_NOTINVERTED = "Прямо"; +OPTVAL_ORIGINAL = "Оригинальный"; +OPTVAL_OPTIMIZED = "Оптимизированный"; +OPTVAL_CLASSIC = "Классический (более быстрый)"; +OPTVAL_PRECISE = "Точный"; +OPTVAL_NORMAL = "Обычный"; +OPTVAL_STRETCH = "Растянутый"; +OPTVAL_CAPPED = "Ограниченный"; +OPTVAL_PARTICLES = "Частицы"; +OPTVAL_SPRITES = "Спрайты"; +OPTVAL_SPRITESPARTICLES = "Спрайты и частицы"; +OPTVAL_MELT = "Таяние"; +OPTVAL_BURN = "Жжение"; +OPTVAL_CROSSFADE = "Увядание"; +OPTVAL_ONLYMODIFIED = "Только модифицированный"; +OPTVAL_SMOOTH = "Плавно"; +OPTVAL_TRANSLUCENT = "Полупрозрачный"; +OPTVAL_FUZZ = "Шумовой"; +OPTVAL_SHADOW = "Теневой"; +OPTVAL_ITEMS = "Предметы"; +OPTVAL_WEAPONS = "Оружие"; +OPTVAL_BOTH = "Оба"; +OPTVAL_ZDOOM = "ZDoom"; +OPTVAL_STRIFE = "Strife"; +OPTVAL_PLAYER = "Игрок"; +OPTVAL_MAP = "Карта"; +OPTVAL_SCALETO640X400 = "Масштабировать до 640x400"; +OPTVAL_PIXELDOUBLE = "Двойные пиксели"; +OPTVAL_PIXELQUADRUPLE = "Четверные пиксели"; +OPTVAL_CURRENTWEAPON = "Текущее оружие"; +OPTVAL_AVAILABLEWEAPONS = "Доступное оружие"; +OPTVAL_ALLWEAPONS = "Все оружие"; +OPTVAL_LEVELMILLISECONDS = "Уровень, миллисекунды"; +OPTVAL_LEVELSECONDS = "Уровень, секунды"; +OPTVAL_LEVEL = "Уровень"; +OPTVAL_HUBSECONDS = "Хаб, секунды"; +OPTVAL_HUB = "Хаб"; +OPTVAL_TOTALSECONDS = "Общее, секунды"; +OPTVAL_TOTAL = "Общее"; +OPTVAL_SYSTEMSECONDS = "Система, секунды"; +OPTVAL_SYSTEM = "Система"; +OPTVAL_NETGAMESONLY = "Только сетевые игры"; +OPTVAL_ALWAYS = "Всегда"; +OPTVAL_AMMOIMAGETEXT = "Изобр. и текст"; +OPTVAL_AMMOTEXTIMAGE = "Текст и изобр."; +OPTVAL_SCRIPTSONLY = "Только скрипты"; +OPTVAL_NEVER = "Никогда"; +OPTVAL_ALL = "Все"; +OPTVAL_ONLYLASTONE = "Только последнее"; +OPTVAL_CUSTOM = "Пользовательские"; +OPTVAL_TRADITIONALDOOM = "Цвета из Doom"; +OPTVAL_TRADITIONALSTRIFE = "Цвета из Strife"; +OPTVAL_TRADITIONALRAVEN = "Цвета из Raven"; +OPTVAL_ONLYWHENFOUND = "После обнаружения"; +OPTVAL_ONFOROVERLAYONLY = "Только прозрачный"; +OPTVAL_OVERLAYNORMAL = "Прозрач. + обыч."; +OPTVAL_OVERLAYONLY = "Только прозрачный"; +OPTVAL_NOTFORHUBS = "Кроме хабов"; +OPTVAL_FRONT = "Перед"; +OPTVAL_ANIMATED = "Анимированные"; +OPTVAL_ROTATED = "Повернутые"; +OPTVAL_MAPDEFINEDCOLORSONLY = "Только определенные картой цвета"; +OPTVAL_NODOORS = "Кроме дверей"; +OPTVAL_DOUBLE = "Двойной"; +OPTVAL_TRIPLE = "Тройной"; +OPTVAL_QUADRUPLE = "Четверной"; +OPTVAL_ITEMPICKUP = "Подбор"; +OPTVAL_OBITUARIES = "Некрологи"; +OPTVAL_CRITICALMESSAGES = "Важные сообщения"; +OPTVAL_NEVERFRIENDS = "Не для союзников"; +OPTVAL_ONLYMONSTERS = "Для монстров"; +OPTVAL_HEXEN = "Hexen"; +OPTVAL_OLD = "Старый"; +OPTVAL_DEFAULT = "По умол."; +OPTVAL_DOOM = "Doom"; +OPTVAL_DOOMSTRICT = "Doom (строгий)"; +OPTVAL_BOOM = "Boom"; +OPTVAL_BOOMSTRICT = "Boom (строгий)"; +OPTVAL_MBF = "MBF"; +OPTVAL_ZDOOM2063 = "ZDoom 2.0.63"; +OPTVAL_4000HZ = "4000 Гц"; +OPTVAL_8000HZ = "8000 Гц"; +OPTVAL_11025HZ = "11025 Гц"; +OPTVAL_22050HZ = "22050 Гц"; +OPTVAL_32000HZ = "32000 Гц"; +OPTVAL_44100HZ = "44100 Гц"; +OPTVAL_48000HZ = "48000 Гц"; +OPTVAL_64SAMPLES = "64 семпла"; +OPTVAL_128SAMPLES = "128 семплов"; +OPTVAL_256SAMPLES = "256 семплов"; +OPTVAL_512SAMPLES = "512 семплов"; +OPTVAL_1024SAMPLES = "1024 семпла"; +OPTVAL_2048SAMPLES = "2048 семплов"; +OPTVAL_4096SAMPLES = "4096 семплов"; +OPTVAL_UNLIMITED = "Без ограничений"; +OPTVAL_256K = "256K"; +OPTVAL_512K = "512K"; +OPTVAL_768K = "768K"; +OPTVAL_1024K = "1024K"; +OPTVAL_MAMEOPL2 = "MAME OPL2"; +OPTVAL_MAMEOPN2 = "MAME YM2612"; +OPTVAL_DOSBOXOPL3 = "DOSBox OPL3"; +OPTVAL_JAVAOPL3 = "Java OPL3"; +OPTVAL_NUKEDOPL3 = "Nuked OPL3"; +OPTVAL_NUKEDOPL3174 = "Nuked OPL3 v1.7.4"; +OPTVAL_NUKEDOPN2 = "Nuked OPN2"; +OPTVAL_GENSOPN2 = "GENS YM2612"; +OPTVAL_SOUNDSYSTEM = "Аудиосистема"; +OPTVAL_FOO_DUMB = "foo_dumb"; +OPTVAL_ALIASING = "Алиасинг"; +OPTVAL_LINEAR = "Линейный/ое/ая"; +OPTVAL_NEAREST = "Ближайший"; +OPTVAL_PCF_LOW = "PCF (Низкий)"; +OPTVAL_PCF_MEDIUM = "PCF (Средний)"; +OPTVAL_PCF_HIGH = "PCF (Высокий)"; +OPTVAL_CUBIC = "Кубический"; +OPTVAL_BLEP = "Band-limited step"; // fix +OPTVAL_LINEARSLOW = "Линейный (Медленнее)"; +OPTVAL_BLAM = "Band-limited linear"; +OPTVAL_CUBICSLOW = "Кубический (Медленнее)"; +OPTVAL_SINC = "Вход"; +OPTVAL_NOTEONOFFONLY = "Note on/off only"; +OPTVAL_FULLRAMPING = "Full ramping"; +OPTVAL_ALLUNACKNOWLEDGED = "All unacknowledged"; +OPTVAL_ERRORS = "Ошибки"; +OPTVAL_WARNINGS = "Предупреждения"; +OPTVAL_NOTIFICATIONS = "Уведомления"; +OPTVAL_EVERYTHING = "Все"; +OPTVAL_FULLSCREENONLY = "В полном экране"; +OPTVAL_GL = "OpenGL"; +OPTVAL_D3D = "Direct3D"; +OPTVAL_SDL = "SDL"; +OPTVAL_COCOA = "Cocoa"; +OPTVAL_HWPOLY = "OpenGL аппаратный"; +OPTVAL_SWDOOM = "Программный"; +OPTVAL_SWDOOMTC = "Полноцветный програмный"; +OPTVAL_SWPOLY = "Полирендер"; +OPTVAL_SWPOLYTC = "Полноцветный полирендер"; +OPTVAL_DEDICATED = "Высокая производительность"; +OPTVAL_INTEGRATED = "Энергосбережение"; +OPTVAL_VANILLA = "Ванильный"; +OPTVAL_VTFZDOOM = "ZDoom (форсирована)"; +OPTVAL_VTFVANILLA = "Vanilla (форсирована)"; +OPTVAL_VTAZDOOM = "Auto (предпочитать ZDoom)"; +OPTVAL_VTAVANILLA = "Auto (предпочитать Preferred)"; +OPTVAL_SCALENEAREST = "Масштаб. (Nearest)"; +OPTVAL_SCALELINEAR = "Масштаб. (Linear)"; +OPTVAL_LETTERBOX = "Формат Letterbox"; + +// Colors +C_BRICK = "\caКирпичный"; +C_TAN = "\cbБежевый"; +C_GRAY = "\ccСерый"; +C_GREEN = "\cdЗеленый"; +C_BROWN = "\ceКоричневый"; +C_GOLD = "\cfЗолотой"; +C_RED = "\cgКрасный"; +C_BLUE = "\chСиний"; +C_ORANGE = "\ciОранжевый"; +C_WHITE = "\cjБелый"; +C_YELLOW = "\ckЖелтый"; +C_DEFAULT = "\clПо умол."; +C_BLACK = "\cmЧерный"; +C_LIGHTBLUE = "\cnГолубой"; +C_CREAM = "\coКремовый"; +C_OLIVE = "\cpОливковый"; +C_DARKGREEN = "\cqТемно-зеленый"; +C_DARKRED = "\crТемно-красный"; +C_DARKBROWN = "\csТемно-коричневый"; +C_PURPLE = "\ctФиолетовый"; +C_DARKGRAY = "\cuТемно-серый"; +C_CYAN = "\cvСине-зеленый"; +C_ICE = "\cwЛедяной"; +C_FIRE = "\cxОгненный"; +C_SAPPHIRE = "\cyСапфировый"; +C_TEAL = "\czМорской"; +// Option Strings +OPTSTR_SIMPLEARROW = "Стрелка"; +OPTSTR_HERETIC = "Heretic"; +OPTSTR_CHEX = "Chex"; +OPTSTR_SYSTEMCURSOR = "Системный курсор"; +OPTSTR_NOSOUND = "Без звука"; +OPTSTR_AUTO = "Авто"; +OPTSTR_MONO = "Моно"; +OPTSTR_STEREO = "Стерео"; +OPTSTR_PROLOGIC = "Dolby Prologic Декодер"; +OPTSTR_QUAD = "Четырехместный"; +OPTSTR_SURROUND = "5 динамиков"; +OPTSTR_5POINT1 = "Динамики 5.1"; +OPTSTR_7POINT1 = "Динамики 7.1"; +OPTSTR_NOINTERPOLATION = "Без интерполяции"; +OPTSTR_SPLINE = "Сплайн"; +OPTSTR_OPENAL = "OpenAL"; + +NOTSET = "Не задан"; +SAFEMESSAGE = "Вы уверены?"; +MNU_COLORPICKER = "Выбор цветов"; + +WI_FINISHED = "завершен"; +WI_ENTERING = "Загружается уровень:"; + +AM_MONSTERS = "Монстры:"; +AM_SECRETS = "Тайники:"; +AM_ITEMS = "Предметы:"; + +// Bloodbath announcer + +BBA_BONED = "%k boned %o like a fish"; +BBA_CASTRA = "%k castrated %o"; +BBA_CREAMED = "%k creamed %o"; +BBA_DECIMAT = "%k decimated %o"; +BBA_DESTRO = "%k destroyed %o"; +BBA_DICED = "%k diced %o"; +BBA_DISEMBO = "%k disembowled %o"; +BBA_FLATTE = "%k flattened %o"; +BBA_JUSTICE = "%k gave %o Anal Justice"; +BBA_MADNESS = "%k gave AnAl MaDnEsS to %o"; +BBA_KILLED = "%k killed %o"; +BBA_MINCMEAT = "%k made mincemeat out of %o"; +BBA_MASSACR = "%k massacred %o"; +BBA_MUTILA = "%k mutilated %o"; +BBA_REAMED = "%k reamed %o"; +BBA_RIPPED = "%k ripped %o a new orifice"; +BBA_SLAUGHT = "%k slaughtered %o"; +BBA_SMASHED = "%k smashed %o"; +BBA_SODOMIZ = "%k sodomized %o"; +BBA_SPLATT = "%k splattered %o"; +BBA_SQUASH = "%k squashed %o"; +BBA_THROTTL = "%k throttled %o"; +BBA_WASTED = "%k wasted %o"; +BBA_BODYBAG = "%k body bagged %o"; +BBA_HELL = "%k sent %o to Hell"; +BBA_TOAST = "%k toasted %o"; +BBA_SNUFF = "%k snuffed %o"; +BBA_HOSED = "%k hosed %o"; +BBA_SPRAYED = "%k sprayed %o"; +BBA_DOGMEAT = "%k made dog meat out of %o"; +BBA_BEATEN = "%k beat %o like a cur"; + +BBA_EXCREMENT = "%o is excrement"; +BBA_HAMBURGER = "%o is hamburger"; +BBA_SCROTUM = "%o suffered scrotum separation"; +BBA_POPULATION = "%o volunteered for population control"; +BBA_SUICIDE = "%o has suicided"; +BBA_DARWIN = "%o received the Darwin Award"; + +// Chex Quest Strings +CHUSTR_E1M1 = "E1M1: Зона приземления"; +CHUSTR_E1M2 = "E1M2: Хранилище"; +CHUSTR_E1M3 = "E1M3: Лаборатория"; +CHUSTR_E1M4 = "E1M4: Дендрарий"; +CHUSTR_E1M5 = "E1M5: Каверны Базоика"; + +CE1TEXT = + "Миссия выполнена.\n" + "\n" + "Готовы к следующей миссии?\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "Нажмите ESC для продолжения..."; + +CE2TEXT = "Ты сделал это!"; +CE3TEXT = "Превосходная работа!"; +CE4TEXT = "Фантастически."; + +CLOADNET = "you can't do load while in a net quest!\n\npress a key."; +$ifgame(chex) QSPROMPT = "quicksave over your quest named\n\n'%s'?\n\npress y or n."; +$ifgame(chex) QLOADNET = "you can't quickload during a netquest!\n\npress a key."; +$ifgame(chex) QLPROMPT = "do you want to quickload the quest named\n\n'%s'?\n\npress y or n."; +CNEWGAME = "you can't start a new quest\nwhile in a network quest.\n\npress a key."; + +CNIGHTMARE = "Careful, this will be tough.\nDo you wish to continue?\n\npress y or n."; + +CSWSTRING = "это — Chex(R) Quest. look for\n\nfuture levels at www.chexquest.com.\n\npress a key."; // fix + +$ifgame(chex) NETEND = "Невозможно прервать сетевой квест!\n\nНажмите любую клавишу."; +$ifgame(chex) ENDGAME = "Вы точно хотите завершить квест?\n\nНажмите Y или N."; + +GOTCHEXARMOR = "Получена Chex(R)-броня."; +GOTSUPERCHEXARMOR = "Получена Chex(R)-сверхброня!"; +GOTWATER = "Получен стакан воды."; +GOTREPELLENT = "Получен репеллент против слизи."; +GOTBREAKFAST = "Супер-завтрак!"; +GOTCBLUEKEY = "Получен синий ключ."; +GOTCYELLOWKEY = "Получен желтый ключ."; +GOTCREDKEY = "Получен красный ключ."; +GOTFRUIT = "Взята тарелка с фруктами."; +GOTVEGETABLESNEED = "Взяты овощи при крайней необходимости!"; +GOTVEGETABLES = "Взята тарелка с овощами."; +GOTSLIMESUIT = "Найден противослизневый костюм"; +GOTCHEXMAP = "Найдена компьютерная карта местности"; + +GOTZORCHRECHARGE = "Picked up a mini zorch recharge."; +GOTMINIZORCHPACK = "Picked up a mini zorch pack."; +GOTPROPULSORRECHARGE = "Picked up a zorch propulsor recharge."; +GOTPROPULSORPACK = "Picked up a zorch propulsor pack."; +GOTPHASINGZORCHERRECHARGE = "Picked up a phasing zorcher recharge"; +GOTPHASINGZORCHERPACK = "Picked up a phasing zorcher pack."; +GOTLARGEZORCHERRECHARGE = "Picked up a large zorcher recharge."; +GOTLARGEZORCHERPACK = "Picked up a large zorcher pack."; +GOTZORCHPACK = "Picked up a Zorchpak!"; + +GOTLAZDEVICE = "You got the LAZ Device! Woot!"; +GOTRAPIDZORCHER = "You got the Rapid Zorcher!"; +GOTSUPERBOOTSPORK = "You got the Super Bootspork!"; +GOTZORCHPROPULSOR = "You got the Zorch Propulsor!"; +GOTPHASINGZORCHER = "You got the Phasing Zorcher!"; +GOTLARGEZORCHER = "You got the Large Zorcher!"; +GOTSUPERLARGEZORCHER = "You got the Mega Zorcher!"; +GOTMINIZORCHER = "Picked up a Mini Zorcher."; + +$ifgame(chex) STSTR_DQDON = "Invincible Mode ON"; +$ifgame(chex) STSTR_DQDOFF = "Invincible Mode OFF"; +$ifgame(chex) STSTR_FAADDED = "Zorch Added"; +$ifgame(chex) STSTR_KFAADDED = "Super Zorch Added"; +$ifgame(chex) STSTR_CHOPPERS = "... Eat Chex(R)!"; + +OB_COMMONUS = "%o was slimed by a flemoid."; +OB_BIPEDICUS = "%o was slimed by a bipedicus."; +OB_BIPEDICUS2 = "%o was slimed by an armored bipedicus."; +OB_CYCLOPTIS = "%o was slimed by a cycloptis."; +OB_FLEMBRANE = "%o was defeated by the Flembrane."; + +OB_MPSPOON = "%o was spoon fed by %k."; +OB_MPBOOTSPORK = "%o was thoroughly mixed with %k bootspork."; +OB_MPZORCH = "%o was zorched by %k."; +OB_MPMEGAZORCH = "%o was hit by %k mega-zorcher."; +OB_MPRAPIDZORCH = "%o was rapid zorched by %k."; +OB_MPPROPULSOR = "%o was zorched by %k propulsor."; +OB_MPP_SPLASH = "%o was hit by %k propulsor."; +OB_MPPHASEZORCH = "%o was phase zorched by %k."; +OB_MPLAZ_BOOM = "%o fell prey to %k LAZ device."; +OB_MPLAZ_SPLASH = "%o was lazzed by %k."; + +// Music names for Doom. These are needed in the string table only so that they can +// be replaced by Dehacked. +// Note that these names are not prefixed with 'd_' because that's how Dehacked patches +// expect them. + +MUSIC_E1M1 = "e1m1"; +MUSIC_E1M2 = "e1m2"; +MUSIC_E1M3 = "e1m3"; +MUSIC_E1M4 = "e1m4"; +MUSIC_E1M5 = "e1m5"; +MUSIC_E1M6 = "e1m6"; +MUSIC_E1M7 = "e1m7"; +MUSIC_E1M8 = "e1m8"; +MUSIC_E1M9 = "e1m9"; +MUSIC_E2M1 = "e2m1"; +MUSIC_E2M2 = "e2m2"; +MUSIC_E2M3 = "e2m3"; +MUSIC_E2M4 = "e2m4"; +MUSIC_E2M5 = "e2m5"; +MUSIC_E2M6 = "e2m6"; +MUSIC_E2M7 = "e2m7"; +MUSIC_E2M8 = "e2m8"; +MUSIC_E2M9 = "e2m9"; +MUSIC_E3M1 = "e3m1"; +MUSIC_E3M2 = "e3m2"; +MUSIC_E3M3 = "e3m3"; +MUSIC_E3M4 = "e3m4"; +MUSIC_E3M5 = "e3m5"; +MUSIC_E3M6 = "e3m6"; +MUSIC_E3M7 = "e3m7"; +MUSIC_E3M8 = "e3m8"; +MUSIC_E3M9 = "e3m9"; +MUSIC_INTER = "inter"; +MUSIC_INTRO = "intro"; +MUSIC_BUNNY = "bunny"; +MUSIC_VICTOR = "victor"; +MUSIC_INTROA = "introa"; +MUSIC_RUNNIN = "runnin"; +MUSIC_STALKS = "stalks"; +MUSIC_COUNTD = "countd"; +MUSIC_BETWEE = "betwee"; +MUSIC_DOOM = "doom"; +MUSIC_THE_DA = "the_da"; +MUSIC_SHAWN = "shawn"; +MUSIC_DDTBLU = "ddtblu"; +MUSIC_IN_CIT = "in_cit"; +MUSIC_DEAD = "dead"; +MUSIC_STLKS2 = "stlks2"; +MUSIC_THEDA2 = "theda2"; +MUSIC_DOOM2 = "doom2"; +MUSIC_DDTBL2 = "ddtbl2"; +MUSIC_RUNNI2 = "runni2"; +MUSIC_DEAD2 = "dead2"; +MUSIC_STLKS3 = "stlks3"; +MUSIC_ROMERO = "romero"; +MUSIC_SHAWN2 = "shawn2"; +MUSIC_MESSAG = "messag"; +MUSIC_COUNT2 = "count2"; +MUSIC_DDTBL3 = "ddtbl3"; +MUSIC_AMPIE = "ampie"; +MUSIC_THEDA3 = "theda3"; +MUSIC_ADRIAN = "adrian"; +MUSIC_MESSG2 = "messg2"; +MUSIC_ROMER2 = "romer2"; +MUSIC_TENSE = "tense"; +MUSIC_SHAWN3 = "shawn3"; +MUSIC_OPENIN = "openin"; +MUSIC_EVIL = "evil"; +MUSIC_ULTIMA = "ultima"; +MUSIC_READ_M = "read_m"; +MUSIC_DM2TTL = "dm2ttl"; +MUSIC_DM2INT = "dm2int"; + +// GZDoom exclusive: + +DSPLYMNU_GLOPT = "Рендерер OpenGL"; +DSPLYMNU_SWOPT = "Программный рендерер"; +DSPLYMNU_GAMMA = "Гамма-коррекция"; +DSPLYMNU_CONTRAST = "Контраст"; +DSPLYMNU_SATURATION = "Насыщенность"; +DSPLYMNU_HWGAMMA = "Аппаратная гамма"; + +// OpenGL Options +GLMNU_TITLE = "НАСТРОЙКИ OPENGL"; +GLMNU_DYNLIGHT = "Динамическое освещение"; +GLMNU_TEXOPT = "Настройки текстур"; +GLMNU_PREFS = "Предпочтения"; + +// Texture Options +GLTEXMNU_TITLE = "НАСТРОЙКИ ТЕКСТУР"; +GLTEXMNU_TEXENABLED = "Вклюить текстуры"; +GLTEXMNU_TEXFILTER = "Фильтрация текстур"; +GLTEXMNU_ANISOTROPIC = "Анизотропная фильтрация"; +GLTEXMNU_TEXFORMAT = "Формат текстур"; +GLTEXMNU_ENABLEHIRES = "Текстуры с высоким разрешением"; +GLTEXMNU_HQRESIZE = "Масштабирование текстур"; +GLTEXMNU_HQRESIZEMULT = "Множитель масштабирования"; +GLTEXMNU_HQRESIZEWARN = "Потребует в %d раз больше видеопамяти"; +GLTEXMNU_RESIZETEX = "Масштабирование текстур"; +GLTEXMNU_RESIZESPR = "Масштабирование спрайтов"; +GLTEXMNU_RESIZEFNT = "Масштабирование шрифтов"; +GLTEXMNU_PRECACHETEX = "Кэшировать GL-текстур"; +GLTEXMNU_TRIMSPREDGE = "Обрезание краев спрайтов"; +GLTEXMNU_SORTDRAWLIST = "Сортировать списки текстур"; + +// Dynamic Light Options +GLLIGHTMNU_TITLE = "ДИНАМИЧЕСКОЕ ОСВЕЩЕНИЕ"; +GLLIGHTMNU_LIGHTSENABLED = "Динамическое освещение (OpenGL)"; +GLLIGHTMNU_LIGHTDEFS = "Включить определения света"; +GLLIGHTMNU_CLIPLIGHTS = "Обрезать свет"; +GLLIGHTMNU_LIGHTSPRITES = "Освещение спрайтов"; +GLLIGHTMNU_LIGHTPARTICLES = "Освещение частиц"; +GLLIGHTMNU_LIGHTSHADOWMAP = "Свет на теневых картах"; +GLLIGHTMNU_LIGHTSHADOWMAPQUALITY = "Качество теневых карт"; +GLLIGHTMNU_LIGHTSHADOWMAPFILTER = "Фильтр теневых карт"; + +// OpenGL Preferences +GLPREFMNU_TITLE = "НАСТРОЙКИ OPENGL"; +GLPREFMNU_SECLIGHTMODE = "Режим освещения секторов"; +GLPREFMNU_FOGMODE = "Режим тумана"; +GLPREFMNU_FOGFORCEFULLBRIGHT = "Туман увеличивает яркость"; +GLPREFMNU_WPNLIGHTSTR = "Интенсивность вспышек оружия"; +GLPREFMNU_ENVIRONMENTMAPMIRROR = "Карта окружения на зеркалах"; +GLPREFMNU_ENV = "Улучшенный режим ночного видения"; +GLPREFMNU_ENVSTEALTH = "ПНВ показывает скрытых монстров"; +GLPREFMNU_SPRBRIGHTFOG = "Полная яркость в тумане"; +GLPREFMNU_SPRCLIP = "Настроить обрезку спрайтов"; +GLPREFMNU_SPRBLEND = "Размытие краев спрайтов"; +GLPREFMNU_FUZZSTYLE = "Тип шума"; +GLPREFMNU_SPRBILLBOARD = "Поворот спрайтов"; +GLPREFMNU_SPRBILLFACECAMERA = "Спрайты направлены к камере"; +GLPREFMNU_PARTICLESTYLE = "Тип частиц"; +GLPREFMNU_AMBLIGHT = "Уровень рассеяннего света"; +GLPREFMNU_RENDERQUALITY = "Качество рендеринга"; +GLPREFMNU_MENUBLUR = "Размытие фона меню"; +GLPREFMNU_VRMODE = "VR режим"; +GLPREFMNU_VRQUADSTEREO = "Quad Stereo"; +GLPREFMNU_MULTISAMPLE = "Мультисэмплинг"; +GLPREFMNU_TONEMAP = "Режим тоун-мэппинга"; +GLPREFMNU_BLOOM = "Режим блум"; +GLPREFMNU_LENS = "Искажение линзы"; +GLPREFMNU_SSAO = "Качество затенения окружающей среды"; +GLPREFMNU_SSAO_PORTALS = "Количество порталов для Зат. Окр. Среды"; +GLPREFMNU_FXAA = "Качество FXAA"; +GLPREFMNU_DITHER = "Вывод дизеринга"; +GLPREFMNU_PALTONEMAPORDER = "Порядок палитры тоун-мэпа"; +GLPREFMNU_PALTONEMAPPOWER = "Экспонента палитры тоун-мэпа"; +GLPREFMNU_SWLMBANDED = "Banded SW Lightmode"; // fix +GLPREFMNU_VRIPD = "Расстояние Между Глазами"; +GLPREFMNU_VRSCREENDIST = "Расстояние От Экрана"; + +// Option Values +OPTVAL_SMART = "Умный"; +OPTVAL_SMARTER = "Умнее"; +OPTVAL_INFRAREDONLY = "Только инфракрасный"; +OPTVAL_INFRAREDANDTORCH = "Инфракрасный и факел"; +OPTVAL_ANYFIXEDCOLORMAP = "Любая фиксированная цветовая карта"; +OPTVAL_NONENEARESTMIPMAP = "Нет (ближайший мипмап)"; +OPTVAL_NONELINEARMIPMAP = "Нет (линейный мипмап)"; +OPTVAL_NONETRILINEAR = "Нет (трехлинейная)"; +OPTVAL_BILINEAR = "Билинейная"; +OPTVAL_TRILINEAR = "Трехлинейная"; +OPTVAL_RGBA8 = "RGBA8"; +OPTVAL_RGB5A1 = "RGB5_A1"; +OPTVAL_RGBA4 = "RGBA4"; +OPTVAL_RGBA2 = "RGBA2"; +OPTVAL_COMPRRGBA = "COMPR_RGBA"; +OPTVAL_S3TCDXT1 = "S3TC_DXT1"; +OPTVAL_S3TCDXT3 = "S3TC_DXT3"; +OPTVAL_S3TCDXT5 = "S3TC_DXT5"; +OPTVAL_2X = "2x"; +OPTVAL_4X = "4x"; +OPTVAL_8X = "8x"; +OPTVAL_16X = "16x"; +OPTVAL_32X = "32x"; +OPTVAL_USEASPALETTE = "Использовать как палитру"; +OPTVAL_BLEND = "Смешать"; +OPTVAL_STANDARD = "Стандартный"; +OPTVAL_BRIGHT = "Яркий"; +OPTVAL_DARK = "Темный"; +OPTVAL_LEGACY = "Legacy"; +OPTVAL_SOFTWARE = "Программный"; +OPTVAL_SPEED = "Скорость"; +OPTVAL_QUALITY = "Качество"; +OPTVAL_OPTIMAL = "Оптимальный"; +OPTVAL_60 = "60"; +OPTVAL_70 = "70"; +OPTVAL_72 = "72"; +OPTVAL_75 = "75"; +OPTVAL_85 = "85"; +OPTVAL_100 = "100"; +OPTVAL_YAXIS = "По горизонтали"; +OPTVAL_XYAXIS = "По обеим осям"; +OPTVAL_SQUARE = "Квадратный"; +OPTVAL_ROUND = "Круглый"; +OPTVAL_SCALENX = "ScaleNx"; +OPTVAL_NORMALNX = "NormalNx"; +OPTVAL_HQNX = "hqNx"; +OPTVAL_HQNXMMX = "hqNx MMX"; +OPTVAL_NXBRZ = "xBRZ"; +OPTVAL_OLD_NXBRZ = "Старый xBRZ"; +OPTVAL_RADIAL = "Радиальный"; +OPTVAL_PIXELFUZZ = "Пиксельный шум"; +OPTVAL_SMOOTHFUZZ = "Гладкий шум"; +OPTVAL_SWIRLYFUZZ = "Кружащийся шум"; +OPTVAL_TRANSLUCENTFUZZ = "Прозрачный шум"; +OPTVAL_NOISE = "Шум"; // fix? +OPTVAL_SMOOTHNOISE = "Мягкий шум"; // fix? +OPTVAL_JAGGEDFUZZ = "Зазубренный шум"; +OPTVAL_GREENMAGENTA = "Зеленый/Маджента"; +OPTVAL_REDCYAN = "Красный/Голубой"; +OPTVAL_AMBERBLUE = "Янтарный/Синий"; +OPTVAL_LEFTEYE = "Левый глаз"; +OPTVAL_RIGHTEYE = "Правый глаз"; +OPTVAL_SBSFULL = "Бок-о-бок, полно"; +OPTVAL_SBSNARROW = "Бок-о-бок, узко"; +OPTVAL_TOPBOTTOM = "Вверх/вниз"; +OPTVAL_ROWINTERLEAVED = "Row Interleaved"; // fix +OPTVAL_COLUMNINTERLEAVED = "Column Interleaved"; // fix +OPTVAL_CHECKERBOARD = "Шахматная доска"; +OPTVAL_QUADBUFFERED = "Quad-buffered"; // fix +OPTVAL_UNCHARTED2 = "Uncharted 2"; +OPTVAL_HEJLDAWSON = "Хейл Доусон"; +OPTVAL_REINHARD = "Рейнхард"; +OPTVAL_PALETTE = "Doom палитра"; // Чтобы было понятнее +OPTVAL_LOW = "Низкий"; +OPTVAL_MEDIUM = "Средний"; +OPTVAL_HIGH = "Высокий"; +OPTVAL_EXTREME = "Крайний"; +OPTVAL_OBVERSEFIRST = "Лицевой"; +OPTVAL_REVERSEFIRST = "Обратный"; + +DSPLYMNU_TCOPT = "Полноцветность"; + +TCMNU_TITLE = "НАСТРОЙКИ ПОЛНОЦВЕТНОСТИ"; + +TCMNU_TRUECOLOR = "Полноцветный вывод"; +TCMNU_MINFILTER = "Линейная фильтрация при уменьшении"; +TCMNU_MAGFILTER = "Линейная фильтрация при увеличении"; +TCMNU_MIPMAP = "Использовать мип-маппинг"; +TCMNU_DYNLIGHTS = "Динамическое освещение (программное)"; + +// SVE strings: + +TAG_TALISMANRED = "Красный талисман"; +TAG_TALISMANGREEN = "Зеленый талисман"; +TAG_TALISMANBLUE = "Синий талисман"; +MSG_TALISMANRED = "You have a feeling that it wasn't to be touched..."; +MSG_TALISMANGREEN = "Whatever it is, it doesn't belong in this world..."; +MSG_TALISMANBLUE = "It must do something..."; +MSG_TALISMANPOWER = "You have super strength!"; + +GZDRT_LANGUAGE = "Язык"; diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn159.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/009F.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn159.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/009F.lmp diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00AB.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00AB.lmp new file mode 100644 index 000000000..b7804d21b Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00AB.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00BB.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00BB.lmp new file mode 100644 index 000000000..179e0ac79 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00BB.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn191.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00BF.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn191.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00BF.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn192.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C0.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn192.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C0.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn193.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C1.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn193.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C1.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn194.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C2.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn194.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C2.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn195.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C3.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn195.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C3.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn196.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C4.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn196.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C4.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn197.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C5.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn197.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C5.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn199.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C7.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn199.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C7.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn200.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C8.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn200.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C8.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn201.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C9.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn201.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00C9.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn202.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CA.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn202.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CA.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn205.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CD.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn205.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CD.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn206.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CE.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn206.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CE.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn207.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CF.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn207.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00CF.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn209.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D1.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn209.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D1.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn211.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D3.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn211.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D3.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn212.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D4.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn212.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D4.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn213.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D5.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn213.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D5.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn214.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D6.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn214.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D6.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn217.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D9.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn217.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00D9.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn218.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DA.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn218.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DA.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn219.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DB.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn219.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DB.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn220.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DC.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn220.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DC.lmp diff --git a/wadsrc_extra/static/filter/game-doom/graphics/stcfn223.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DF.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-doom/graphics/stcfn223.lmp rename to wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00DF.lmp diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0178.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0178.lmp new file mode 100644 index 000000000..d57a2dd3e Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0178.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0401.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0401.lmp new file mode 100644 index 000000000..9eedf12ed Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0401.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0410.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0410.lmp new file mode 100644 index 000000000..f805e3aa6 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0411.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0411.lmp new file mode 100644 index 000000000..af5f0f468 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0412.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0412.lmp new file mode 100644 index 000000000..201c48199 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0413.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0413.lmp new file mode 100644 index 000000000..a33bd8ef6 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0414.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0414.lmp new file mode 100644 index 000000000..ccbfbde85 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0415.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0415.lmp new file mode 100644 index 000000000..9388132c8 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0416.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0416.lmp new file mode 100644 index 000000000..dc873e301 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0417.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0417.lmp new file mode 100644 index 000000000..ff1ee0248 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0418.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0418.lmp new file mode 100644 index 000000000..7410e87a7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0419.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0419.lmp new file mode 100644 index 000000000..b22264c4a Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041A.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041A.lmp new file mode 100644 index 000000000..46423d78f Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041B.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041B.lmp new file mode 100644 index 000000000..af8759ef3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041C.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041C.lmp new file mode 100644 index 000000000..5c3c3c88d Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041D.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041D.lmp new file mode 100644 index 000000000..fa6e340dd Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041E.lmp new file mode 100644 index 000000000..3a7a4a488 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041F.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041F.lmp new file mode 100644 index 000000000..a478a2da2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0420.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0420.lmp new file mode 100644 index 000000000..52061d8eb Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0421.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0421.lmp new file mode 100644 index 000000000..3e350d77e Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0422.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0422.lmp new file mode 100644 index 000000000..2798a47b3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0423.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0423.lmp new file mode 100644 index 000000000..429c6a52e Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0424.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0424.lmp new file mode 100644 index 000000000..bc5b528c3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0425.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0425.lmp new file mode 100644 index 000000000..ad72667cb Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0426.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0426.lmp new file mode 100644 index 000000000..475944d63 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0427.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0427.lmp new file mode 100644 index 000000000..934df7ba1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0428.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0428.lmp new file mode 100644 index 000000000..adeadc5ed Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0429.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0429.lmp new file mode 100644 index 000000000..7078c714b Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042A.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042A.lmp new file mode 100644 index 000000000..5df82d312 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042B.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042B.lmp new file mode 100644 index 000000000..250c4f7ed Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042C.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042C.lmp new file mode 100644 index 000000000..74f90b8b0 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042D.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042D.lmp new file mode 100644 index 000000000..fc193a530 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042E.lmp new file mode 100644 index 000000000..bd3aeb4d1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042F.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042F.lmp new file mode 100644 index 000000000..8573a46b9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042F.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/2014.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/2014.lmp new file mode 100644 index 000000000..14e398c7c Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/2014.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201C.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201C.lmp new file mode 100644 index 000000000..255833abf Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201C.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201E.lmp new file mode 100644 index 000000000..2c00e7377 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201E.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0410.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0410.lmp new file mode 100644 index 000000000..2ffcdb6b9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0411.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0411.lmp new file mode 100644 index 000000000..bf333fc4b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0412.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0412.lmp new file mode 100644 index 000000000..a57ec1014 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0413.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0413.lmp new file mode 100644 index 000000000..36ad93187 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0414.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0414.lmp new file mode 100644 index 000000000..6bc728471 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0415.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0415.lmp new file mode 100644 index 000000000..5d8205ad0 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0416.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0416.lmp new file mode 100644 index 000000000..494b23530 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0417.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0417.lmp new file mode 100644 index 000000000..8f206672b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0418.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0418.lmp new file mode 100644 index 000000000..290fc2315 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0419.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0419.lmp new file mode 100644 index 000000000..607614072 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041A.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041A.lmp new file mode 100644 index 000000000..72a814c9a Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041B.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041B.lmp new file mode 100644 index 000000000..bb676ac53 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041C.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041C.lmp new file mode 100644 index 000000000..2d13eeb97 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041D.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041D.lmp new file mode 100644 index 000000000..e887cff94 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041E.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041E.lmp new file mode 100644 index 000000000..cbd53e0dc Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041F.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041F.lmp new file mode 100644 index 000000000..a137d9f9d Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0420.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0420.lmp new file mode 100644 index 000000000..928b2f120 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0421.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0421.lmp new file mode 100644 index 000000000..ee9724f75 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0422.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0422.lmp new file mode 100644 index 000000000..d4b5a366f Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0423.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0423.lmp new file mode 100644 index 000000000..e001cbf2b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0424.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0424.lmp new file mode 100644 index 000000000..6cec8edb5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0425.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0425.lmp new file mode 100644 index 000000000..38a4f7b4d Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0426.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0426.lmp new file mode 100644 index 000000000..0777d13d0 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0427.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0427.lmp new file mode 100644 index 000000000..a6202e41d Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0428.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0428.lmp new file mode 100644 index 000000000..c6525098b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0429.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0429.lmp new file mode 100644 index 000000000..5225c051b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042A.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042A.lmp new file mode 100644 index 000000000..852b17a2d Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042B.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042B.lmp new file mode 100644 index 000000000..3af92647e Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042C.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042C.lmp new file mode 100644 index 000000000..eee057f93 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042D.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042D.lmp new file mode 100644 index 000000000..32668b119 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042E.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042E.lmp new file mode 100644 index 000000000..5259b879d Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042F.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042F.lmp new file mode 100644 index 000000000..15f2155da Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defbigfont/042F.lmp differ diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta60.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005C.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta60.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005C.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta61.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005D.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta61.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005D.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta62.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005E.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta62.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005E.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta63.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005F.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta63.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/005F.lmp diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00AB.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00AB.lmp new file mode 100644 index 000000000..d91f95bbe Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00AB.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00BB.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00BB.lmp new file mode 100644 index 000000000..dde0867e4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00BB.lmp differ diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta164.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00C4.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta164.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00C4.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta165.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00C5.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta165.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00C5.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta182.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00D6.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta182.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00D6.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta188.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00DC.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta188.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00DC.lmp diff --git a/wadsrc_extra/static/filter/game-raven/graphics/fonta191.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00DF.lmp similarity index 100% rename from wadsrc_extra/static/filter/game-raven/graphics/fonta191.lmp rename to wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/00DF.lmp diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0401.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0401.lmp new file mode 100644 index 000000000..df10c490c Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0401.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0410.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0410.lmp new file mode 100644 index 000000000..cc9200871 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0411.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0411.lmp new file mode 100644 index 000000000..d64d5b41f Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0412.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0412.lmp new file mode 100644 index 000000000..21468524f Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0413.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0413.lmp new file mode 100644 index 000000000..2db9bdd38 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0414.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0414.lmp new file mode 100644 index 000000000..38227551b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0415.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0415.lmp new file mode 100644 index 000000000..8daa85207 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0416.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0416.lmp new file mode 100644 index 000000000..fc520b5b1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0417.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0417.lmp new file mode 100644 index 000000000..35ffaa7df Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0418.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0418.lmp new file mode 100644 index 000000000..6117f7f7b Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0419.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0419.lmp new file mode 100644 index 000000000..59b8107d1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041A.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041A.lmp new file mode 100644 index 000000000..a99d51da5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041B.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041B.lmp new file mode 100644 index 000000000..6448b5228 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041C.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041C.lmp new file mode 100644 index 000000000..4e565f4ee Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041D.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041D.lmp new file mode 100644 index 000000000..82642cd42 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041E.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041E.lmp new file mode 100644 index 000000000..a240e32e9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041F.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041F.lmp new file mode 100644 index 000000000..c03d05d82 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0420.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0420.lmp new file mode 100644 index 000000000..6052e03f8 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0421.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0421.lmp new file mode 100644 index 000000000..a1347eb80 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0422.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0422.lmp new file mode 100644 index 000000000..80a02b264 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0423.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0423.lmp new file mode 100644 index 000000000..fdbb168c2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0424.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0424.lmp new file mode 100644 index 000000000..787892cff Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0425.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0425.lmp new file mode 100644 index 000000000..d4db7c086 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0426.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0426.lmp new file mode 100644 index 000000000..a395fc8ef Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0427.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0427.lmp new file mode 100644 index 000000000..62c603421 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0428.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0428.lmp new file mode 100644 index 000000000..dad0cc925 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0429.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0429.lmp new file mode 100644 index 000000000..54134a5d6 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042A.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042A.lmp new file mode 100644 index 000000000..82ead3bac Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042B.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042B.lmp new file mode 100644 index 000000000..b3b73944e Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042C.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042C.lmp new file mode 100644 index 000000000..d723760fa Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042D.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042D.lmp new file mode 100644 index 000000000..5d8549788 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042E.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042E.lmp new file mode 100644 index 000000000..b685b3fde Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042F.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042F.lmp new file mode 100644 index 000000000..a954e2a59 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/042F.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/2014.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/2014.lmp new file mode 100644 index 000000000..819abe2ad Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/2014.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/201C.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/201C.lmp new file mode 100644 index 000000000..0317cfd0a Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/201C.lmp differ diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/201E.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/201E.lmp new file mode 100644 index 000000000..9af871b80 Binary files /dev/null and b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/201E.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0410.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0410.lmp new file mode 100644 index 000000000..02de944a2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0411.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0411.lmp new file mode 100644 index 000000000..1288286e5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0412.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0412.lmp new file mode 100644 index 000000000..8306ce470 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0413.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0413.lmp new file mode 100644 index 000000000..102a11795 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0414.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0414.lmp new file mode 100644 index 000000000..2a11c2bd8 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0415.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0415.lmp new file mode 100644 index 000000000..754a65dc0 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0416.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0416.lmp new file mode 100644 index 000000000..4070b0463 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0417.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0417.lmp new file mode 100644 index 000000000..c06bf6134 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0418.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0418.lmp new file mode 100644 index 000000000..83c0424dd Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0419.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0419.lmp new file mode 100644 index 000000000..a46915f32 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041A.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041A.lmp new file mode 100644 index 000000000..caa995e1b Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041B.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041B.lmp new file mode 100644 index 000000000..e3488d655 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041C.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041C.lmp new file mode 100644 index 000000000..5e681a777 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041D.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041D.lmp new file mode 100644 index 000000000..4f1c7fdd9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041E.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041E.lmp new file mode 100644 index 000000000..a34f0ba08 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041F.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041F.lmp new file mode 100644 index 000000000..796c87220 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0420.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0420.lmp new file mode 100644 index 000000000..2bb7db81e Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0421.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0421.lmp new file mode 100644 index 000000000..79cd7ca15 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0422.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0422.lmp new file mode 100644 index 000000000..ad3289cfd Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0423.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0423.lmp new file mode 100644 index 000000000..85b3bdb27 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0424.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0424.lmp new file mode 100644 index 000000000..fbd50a9d8 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0425.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0425.lmp new file mode 100644 index 000000000..1e48b4d2a Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0426.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0426.lmp new file mode 100644 index 000000000..9c2225658 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0427.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0427.lmp new file mode 100644 index 000000000..83ba773c4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0428.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0428.lmp new file mode 100644 index 000000000..c944d9286 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0429.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0429.lmp new file mode 100644 index 000000000..b06c17ea4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042A.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042A.lmp new file mode 100644 index 000000000..4bfb612d3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042B.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042B.lmp new file mode 100644 index 000000000..ad857bb1b Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042C.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042C.lmp new file mode 100644 index 000000000..52f56e394 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042D.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042D.lmp new file mode 100644 index 000000000..839bd6177 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042E.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042E.lmp new file mode 100644 index 000000000..b83a2a43d Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042F.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042F.lmp new file mode 100644 index 000000000..fe9c4a19f Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defbigfont/042F.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005C.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005C.lmp new file mode 100644 index 000000000..bddfa8a35 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005C.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005D.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005D.lmp new file mode 100644 index 000000000..bddfa8a35 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005D.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005E.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005E.lmp new file mode 100644 index 000000000..79af547de Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005E.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005F.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005F.lmp new file mode 100644 index 000000000..bddfa8a35 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/005F.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00AB.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00AB.lmp new file mode 100644 index 000000000..19da358e4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00AB.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00BB.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00BB.lmp new file mode 100644 index 000000000..16eb6067b Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00BB.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00C4.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00C4.lmp new file mode 100644 index 000000000..e93ede553 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00C4.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00C5.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00C5.lmp new file mode 100644 index 000000000..87644a898 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00C5.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00D6.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00D6.lmp new file mode 100644 index 000000000..2fc034052 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00D6.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00DC.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00DC.lmp new file mode 100644 index 000000000..1a06ecd1d Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00DC.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00DF.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00DF.lmp new file mode 100644 index 000000000..8d7f69ec2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/00DF.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0401.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0401.lmp new file mode 100644 index 000000000..fb128a8f5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0401.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0410.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0410.lmp new file mode 100644 index 000000000..86abcf7e8 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0411.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0411.lmp new file mode 100644 index 000000000..fb5961475 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0412.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0412.lmp new file mode 100644 index 000000000..6b966352f Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0413.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0413.lmp new file mode 100644 index 000000000..0a45b8110 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0414.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0414.lmp new file mode 100644 index 000000000..ee0ea2ce1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0415.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0415.lmp new file mode 100644 index 000000000..0934510b3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0416.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0416.lmp new file mode 100644 index 000000000..8a5d3bae3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0417.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0417.lmp new file mode 100644 index 000000000..2efe76f16 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0418.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0418.lmp new file mode 100644 index 000000000..df029aab7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0419.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0419.lmp new file mode 100644 index 000000000..92c6f2152 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041A.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041A.lmp new file mode 100644 index 000000000..6c3796137 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041B.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041B.lmp new file mode 100644 index 000000000..77aef63b3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041C.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041C.lmp new file mode 100644 index 000000000..a7202cdb9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041D.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041D.lmp new file mode 100644 index 000000000..cf7bd0b48 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041E.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041E.lmp new file mode 100644 index 000000000..c25542b72 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041F.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041F.lmp new file mode 100644 index 000000000..da4b9f729 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0420.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0420.lmp new file mode 100644 index 000000000..108eb57ae Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0421.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0421.lmp new file mode 100644 index 000000000..a02f2d1ef Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0422.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0422.lmp new file mode 100644 index 000000000..db269314b Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0423.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0423.lmp new file mode 100644 index 000000000..7978f087d Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0424.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0424.lmp new file mode 100644 index 000000000..09a6efc88 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0425.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0425.lmp new file mode 100644 index 000000000..bef7228e5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0426.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0426.lmp new file mode 100644 index 000000000..6c064144a Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0427.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0427.lmp new file mode 100644 index 000000000..0c3393867 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0428.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0428.lmp new file mode 100644 index 000000000..7467d1268 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0429.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0429.lmp new file mode 100644 index 000000000..9e175125f Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042A.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042A.lmp new file mode 100644 index 000000000..dd96c4ee2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042B.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042B.lmp new file mode 100644 index 000000000..38b777b55 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042C.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042C.lmp new file mode 100644 index 000000000..288cdd383 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042D.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042D.lmp new file mode 100644 index 000000000..7877d45c5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042E.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042E.lmp new file mode 100644 index 000000000..f773c9a73 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042F.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042F.lmp new file mode 100644 index 000000000..425e8d91a Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/042F.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/2014.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/2014.lmp new file mode 100644 index 000000000..59df945dc Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/2014.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/201C.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/201C.lmp new file mode 100644 index 000000000..18f38dddd Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/201C.lmp differ diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/201E.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/201E.lmp new file mode 100644 index 000000000..16271f778 Binary files /dev/null and b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/201E.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/00AB.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/00AB.lmp new file mode 100644 index 000000000..a165eb46a Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/00AB.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/00BB.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/00BB.lmp new file mode 100644 index 000000000..cb6585981 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/00BB.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0401.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0401.lmp new file mode 100644 index 000000000..702b1afea Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0401.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0410.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0410.lmp new file mode 100644 index 000000000..fce625905 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0411.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0411.lmp new file mode 100644 index 000000000..06bf5548e Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0412.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0412.lmp new file mode 100644 index 000000000..e18f7b515 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0413.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0413.lmp new file mode 100644 index 000000000..d98da1877 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0414.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0414.lmp new file mode 100644 index 000000000..581393ea2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0415.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0415.lmp new file mode 100644 index 000000000..2005d3232 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0416.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0416.lmp new file mode 100644 index 000000000..6eb55cab7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0417.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0417.lmp new file mode 100644 index 000000000..adc404bbd Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0418.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0418.lmp new file mode 100644 index 000000000..faafe7529 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0419.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0419.lmp new file mode 100644 index 000000000..5ddbda41d Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041A.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041A.lmp new file mode 100644 index 000000000..f6ee37371 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041B.lmp new file mode 100644 index 000000000..f59666bce Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041C.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041C.lmp new file mode 100644 index 000000000..7e2c112b4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041D.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041D.lmp new file mode 100644 index 000000000..037c65686 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041E.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041E.lmp new file mode 100644 index 000000000..11f11bd0b Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041F.lmp new file mode 100644 index 000000000..8279a0f2d Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0420.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0420.lmp new file mode 100644 index 000000000..61c450d9a Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0421.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0421.lmp new file mode 100644 index 000000000..02f86dce7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0422.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0422.lmp new file mode 100644 index 000000000..eb69d5cd8 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0423.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0423.lmp new file mode 100644 index 000000000..8a9f3ef49 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0424.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0424.lmp new file mode 100644 index 000000000..4ff0d0dbb Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0425.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0425.lmp new file mode 100644 index 000000000..0b4813be9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0426.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0426.lmp new file mode 100644 index 000000000..a6ea425ab Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0427.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0427.lmp new file mode 100644 index 000000000..7e770826e Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0428.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0428.lmp new file mode 100644 index 000000000..3873853b4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0429.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0429.lmp new file mode 100644 index 000000000..7585e2f74 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042A.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042A.lmp new file mode 100644 index 000000000..b51be20f2 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042B.lmp new file mode 100644 index 000000000..8cab9d1d9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042C.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042C.lmp new file mode 100644 index 000000000..21d605b2d Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042D.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042D.lmp new file mode 100644 index 000000000..c0fd6ec57 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042E.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042E.lmp new file mode 100644 index 000000000..39d7b47ab Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042F.lmp new file mode 100644 index 000000000..5a18bb393 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/042F.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/2014.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/2014.lmp new file mode 100644 index 000000000..b153f0aeb Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont/2014.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0410.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0410.lmp new file mode 100644 index 000000000..44a9a6b11 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0410.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0411.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0411.lmp new file mode 100644 index 000000000..f7c64829f Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0411.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0412.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0412.lmp new file mode 100644 index 000000000..4dfcab56f Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0412.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0413.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0413.lmp new file mode 100644 index 000000000..b40403b66 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0413.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0414.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0414.lmp new file mode 100644 index 000000000..23e2073ad Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0414.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0415.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0415.lmp new file mode 100644 index 000000000..1b86650ee Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0415.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0416.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0416.lmp new file mode 100644 index 000000000..26481f37d Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0416.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0417.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0417.lmp new file mode 100644 index 000000000..ca4594384 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0417.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0418.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0418.lmp new file mode 100644 index 000000000..88528c915 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0418.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0419.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0419.lmp new file mode 100644 index 000000000..266504b61 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0419.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041A.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041A.lmp new file mode 100644 index 000000000..217478999 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041A.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041B.lmp new file mode 100644 index 000000000..1b7c3c2d6 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041B.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041C.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041C.lmp new file mode 100644 index 000000000..d521c4cbf Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041C.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041D.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041D.lmp new file mode 100644 index 000000000..202efca51 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041D.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041E.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041E.lmp new file mode 100644 index 000000000..dc7ee6af7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041E.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041F.lmp new file mode 100644 index 000000000..1d03f947e Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/041F.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0420.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0420.lmp new file mode 100644 index 000000000..d83561cb3 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0420.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0421.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0421.lmp new file mode 100644 index 000000000..0ac0c5b09 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0421.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0422.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0422.lmp new file mode 100644 index 000000000..24c47f31d Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0422.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0423.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0423.lmp new file mode 100644 index 000000000..a24240dff Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0423.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0424.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0424.lmp new file mode 100644 index 000000000..1043a50ed Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0424.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0425.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0425.lmp new file mode 100644 index 000000000..c409c5c30 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0425.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0426.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0426.lmp new file mode 100644 index 000000000..d2d623c4c Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0426.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0427.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0427.lmp new file mode 100644 index 000000000..bba0bab24 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0427.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0428.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0428.lmp new file mode 100644 index 000000000..c0a6bf2ee Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0428.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0429.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0429.lmp new file mode 100644 index 000000000..7e7185e69 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0429.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042A.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042A.lmp new file mode 100644 index 000000000..140c1c1a1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042A.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042B.lmp new file mode 100644 index 000000000..bbf2cfefb Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042B.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042C.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042C.lmp new file mode 100644 index 000000000..4e91a02e9 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042C.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042D.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042D.lmp new file mode 100644 index 000000000..e50cdd903 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042D.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042E.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042E.lmp new file mode 100644 index 000000000..3c5e8beb4 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042E.lmp differ diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042F.lmp new file mode 100644 index 000000000..cfa4e9201 Binary files /dev/null and b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/042F.lmp differ diff --git a/wadsrc_extra/static/language.enu b/wadsrc_extra/static/language.enu index a5780be75..0e8daea0b 100644 --- a/wadsrc_extra/static/language.enu +++ b/wadsrc_extra/static/language.enu @@ -1125,3 +1125,163 @@ TXT_DLG_SCRIPT34_d30320_GOODB = "GOOD. BLACKBIRD WILL CONTINUE TO BE YOUR GUIDE. TXT_RPLY0_SCRIPT34_d30320_LETME = "LET ME AT 'EM!"; TXT_RYES0_SCRIPT34_d30320_THATS = "THAT'S THE SPIRIT."; TXT_DLG_SCRIPT34_d31836_WELCO = "WELCOME FRIEND!"; + +// Strife's log texts + +TXT_ILOG1 = "HELLO? COMMAND, A COM UNIT HAS JUST BEEN ACTIVATED... AM RECEIVING VISUALS AND SOUND FROM... SOMEBODY... HEY YOU, GET OUT OF THERE NOW... AND DROP THE CHALICE!"; +TXT_ILOG2 = "LISTEN, THIS COM UNIT TELLS ME THAT YOU'RE 100% HUMAN. I'VE BEEN ORDERED TO BRING YOU IN, WE'RE TALKING TRUST HERE. BETRAY ME AND PAY. OH, AND BY THE WAY, YOU CAN CALL ME BLACKBIRD."; +$ifgame(strifeteaser) TXT_ILOG2 = "LISTEN, THIS COM-UNIT TELLS ME THAT YOU'RE 100% HUMAN. YOU MIGHT BE ONE OF US, AND MAYBE WE CAN TRY AND TRUST EACH OTHER. CONSIDER THIS TEST, THERE'S A FLAMETHROWER IN THE GOVERNOR'S MANSION. GET IT, AND I'LL LEAD YOU TO US"; +TXT_ILOG3 = "HEAD OVER TO THE OLD TOWN HALL. MACIL HAD A TUNNEL BUILT THAT LETS US GET IN AND OUT WITHOUT THE ACOLYTES' KNOWLEDGE."; +TXT_ILOG4 = "GO THROUGH THE DOOR ON YOUR LEFT, THEN THE ONE ON THE RIGHT. THE GUARD'S NAME IS GEOFF. TELL HIM YOU NEED GOLD."; +TXT_ILOG5 = "Don't enter the Town Hall. It's not safe anymore, our cover's been blown. Kill all the big robots, the 'Crusaders' and I'll guide you to us."; +TXT_ILOG6 = "the door next to the weapons shop will open once all the crusaders are dead. Inside the store room there's a teleporter, use it, and it'll bring you to us"; +TXT_ILOG7 = "the door next to the weapons shop will open once all the crusaders are dead. Inside the store room there's a teleporter, use it, and it'll bring you to us"; +TXT_ILOG8 = "KILL AS MANY OF THE BIG ROBOTS, CRUSADERS, AS YOU CAN. WHEN YOU'RE DONE, I'LL GUIDE YOU TO MACIL"; +TXT_ILOG9 = "Go through the door, and talk to Macil."; +TXT_ILOG10 = "FIND THE POWER TAP ON THE MAINS, AND SHUT IT OFF. BRING SOMETHING BACK TO THE GOVERNOR AS PROOF. FIND MACGUFFIN, AND TALK TO HIM."; +TXT_ILOG11 = "FIND THE POWER TAP ON THE MAINS, AND SHUT IT OFF. BRING SOMETHING BACK TO THE GOVERNOR AS PROOF. FIND MACGUFFIN, AND TALK TO HIM. HE'S UP BY THE SEWAGE TREATMENT PLANT, IN THE 'BUM HOLE', DOWN THE STAIRS."; +TXT_ILOG13 = "YOU IDIOT! YOU'VE SHUT OFF THE POWER TO THE JAMMING CIRCUITS WE USE TO CONCEAL OUR BASE FROM THE ORDER. HEAD TO THE TOWN HALL AND TAKE OUT THE SCANNING CREW, NOW! THEN, GO BACK TO THE GOVERNOR AND GIVE HIM THE BROKEN COUPLING."; +TXT_ILOG14 = "OK, 'TRUST NO ONE' IS THE NAME OF THE GAME! LET'S GET THAT PRISON PASS FROM THE GOVERNOR. TAKE THE BROKEN COUPLING TO HIM."; +TXT_ILOG15 = "GOOD MOVE! THE GOVERNOR IS A LIAR. THAT'S OUR POWER COUPLING. WE'RE USING IT TO HIDE THE BASE FROM THE ORDER. TAKE THIS BROKEN COUPLING BACK TO HIM AND LET'S GET THAT PASS."; +TXT_ILOG18 = "USE THE WARDEN'S KEY TO GET INTO THE PRISON CELL BLOCKS AND FIND A WAY TO FREE THE PRISONERS."; +TXT_ILOG19 = "FIND A WAY TO FREE THE PRISONERS. FIND A WAY TO OPEN THE HAND SCANNER SWITCH."; +TXT_ILOG20 = "FIND A WAY TO FREE THE PRISONERS. USE THE JUDGE'S HAND TO OPERATE THE HAND SCANNER SWITCH."; +TXT_ILOG21 = "WAY TO GO MY FRIEND. GOOD WORK FREEING THE PRISONERS. JUMP ON ONE OF THE TELEPORTERS AND IT WILL BRING YOU BACK TO BASE."; +TXT_ILOG22 = "DESTROY THE POWER CRYSTAL THAT RUNS THE POWER GRID WHICH DRIVES THE ORDER'S SHIELDS. GO VISIT WORNER, A SPY WE RECRUITED IN THE WAREHOUSE OF THE POWER STATION."; +TXT_ILOG24 = "LET'S GET LOST. THERE'S MORE FUN TO COME."; +TXT_ILOG25 = "ONE MORE ADVENTURE BEFORE COMMAND FEELS IT'S SAFE TO ATTACK THE CASTLE. MACIL'S ARRANGED FOR IRALE TO GIVE YOU GOLD AND SOME TRAINING. AFTER YOU VISIT HIM, SEE THE MEDIC IN TOWN FOR STRENGTH."; +TXT_ILOG26 = "VISIT IRALE AND THE MEDIC IN TOWN FOR GOLD AND TRAINING, THEN FIND THE SEWERS. HEAD ALONG THE RIVER ACROSS FROM THE GOVERNOR'S MANSION."; +TXT_ILOG28 = "WE'RE LOOKING FOR WERAN, WHO CALLS HIMSELF THE RAT KING. I'M SURE IT'S DESCRIPTIVE AS WELL AS COLORFUL."; +TXT_ILOG33 = "TAKE THE FLAMETHROWER PARTS TO IRALE. DRAIN THE RECLAMATION TANK. AT THE BOTTOM IS A HIDDEN ENTRANCE TO THE SEWERS. THE GATE CONTROLS ARE DOWN THERE, SOMEWHERE. DESTROY THEM."; +TXT_ILOG37 = "COMMAND, HE'S DONE IT! THE GATES ARE OPEN. SEND IN THE SHOCK TROOPS AND TELL MACIL WE'RE COMING IN! LET'S GET BACK TO THE FRONT BASE."; +TXT_ILOG38 = "JOIN THE ASSAULT ON THE CASTLE. FIND AND TAKE OUT THE PROGRAMMER. WE HAVE CONFLICTING REPORTS ABOUT HIS LOCATION. ONE SAYS HE IN A COMPUTER ROOM, ANOTHER HIDING IN A SUB-LEVEL TEMPLE, AND YET ANOTHER AT THE END OF A LONG HALLWAY."; +TXT_ILOG45 = "FIND THE PROGRAMMER AND KILL HIM."; +TXT_ILOG46 = "SEEK OUT THE ORACLE AND ASK IT ABOUT THE OTHER SIGIL PIECES. THE ORACLE RESIDES IN THE BORDERLANDS, JUST OUTSIDE OF TOWN. CROSS THE RIVER, HEAD TOWARDS THE CASTLE AND GO LEFT THROUGH THE ARCHWAY."; +TXT_ILOG47 = "SEEK OUT THE ORACLE AND ASK IT ABOUT THE OTHER SIGIL PIECES. THE ORACLE'S TEMPLE IS IN THE BORDERLANDS, ON THE OUTSKIRTS OF TOWN."; +TXT_ILOG48 = "SEEK OUT THE ORACLE AND ASK IT ABOUT THE OTHER SIGIL PIECES. TAKE YOUR REWARD AND GO ACROSS TO THE MEDIC AND WEAPONS TRAINER FOR HEALTH AND TRAINING. THE ORACLE'S TEMPLE IS IN THE BORDERLANDS, ON THE OUTSKIRTS OF TOWN."; +TXT_ILOG50 = "SEEK OUT THE ORACLE'S TEMPLE AND ASK IT ABOUT THE OTHER SIGIL PIECES. HERE IT IS. I'M RECORDING EVERYTHING. IT'S NOT THAT I DON'T HAVE FAITH THAT YOU'LL SURVIVE. IT'S JUST THAT WE CAN'T LET THE ORDER CONTROL THE SIGIL."; +TXT_ILOG56 = "THE SECOND PIECE LIES AT THE HEART OF THE CRIMSON AND OBSIDIAN TOWER. THERE YOU WILL FIND THE BISHOP. THE BISHOP IS THE ORDER'S MILITARY LEADER. WE OFF HIM AND WE SCORE TWICE. TAKE THE ORACLE'S TOKEN TO THE KEY MASTER IN THE BORDERLANDS."; +TXT_ILOG57 = "THE BISHOP IS GOING TO BE HEAVILY GUARDED, SO WHY DON'T WE SWIPE A UNIFORM AND BLEND IN? LOCATE THE BISHOP. ONCE YOU HAVE DESTROYED HIM, RETURN TO THE ORACLE."; +TXT_ILOG59 = "I JUST GOT WORD THAT WE HAVE AN INFORMER INSIDE THE FORTRESS. LET'S HEAD FOR THE HOSPITAL. HE WORKS THERE. AFTER THAT, LOCATE THE BISHOP AND DESTROY HIM. ONCE HE'S DEAD RETURN TO THE ORACLE."; +TXT_ILOG64 = "DON'T GIVE UP. THIS IS IT. STRAIGHT AHEAD. JUMP ON THE TELEPORTER TO CENTRAL ADMINISTRATION AND DESTROY THE COMPUTER CORE. THIS WILL KILL THE FORCE FIELD ON THE ENTRANCE TO THE BISHOP'S TOWER. ONCE HE'S DEAD, RETURN TO THE ORACLE."; +TXT_ILOG70 = "VERY IMPRESSIVE. LETS BLOW IT UP. THAT SHOULD TAKE CARE OF THE FORCE FIELD. LET'S GET BACK TO THE BAILEY, THEN OFF TO THE TOWER AND THE BISHOP."; +TXT_ILOG74 = "BRAVO, ANOTHER PIECE OF THE SIGIL! DID YOU SEE THAT WEIRD SPECTRE THAT CAME OUT OF THE BISHOP'S BODY? WHERE HAVE I SEEN THAT BEFORE? LET'S GET BACK TO THE ORACLE."; +TXT_ILOG75 = "JUDGMENT CALL TIME... THE ORACLE WANTED US BACK FOR ANOTHER VISIT, BUT NOW THAT WE'VE GOT TWO PIECES, WE MIGHT WANT TO RETURN TO BASE."; +TXT_ILOG76 = "I HAVE A REPORT THAT THE SPECTRAL ENERGY WE FOUND NEAR THE BISHOP IS ALSO PRESENT BY THE ORACLE, LET'S BE CAREFUL"; +TXT_ILOG79 = "RICHTER HAS TAKEN OVER COMMAND OF OUR FORCES. IT LOOKS LIKE MACIL HAS BEEN DECEIVING US ALL ALONG. HIS TRUE ALLEGIANCE WAS TO THE ORDER. WHAT A SNAKE. LET'S GET BACK TO THE ORACLE."; +TXT_ILOG83 = "ANOTHER SIGIL PEICE. WE ARE ONE STEP CLOSER TO FREEDOM. AND YOU ARE ONE STEP CLOSER TO ME. LET'S GET BACK TO THE ORACLE!"; +TXT_ILOG85 = "YOU WIELD THE POWER OF THE COMPLETE SIGIL. WHAT DO YOU SAY WE GET SOME CLOSURE. LET'S SEE WHAT THE LOREMASTER'S BEEN PROTECTING."; +TXT_ILOG87 = "WELL, SO MUCH FOR PROGNOSTICATION. HOLD IT, MACIL IS CALLING US BACK. LET'S GET OUT OF HERE IN ONE PIECE."; +TXT_ILOG88 = "I'M SORRY, AFTER BEING UP TO MY HIPS IN BLOOD I CAN'T THINK OF ANYTHING WITTY TO SAY RIGHT NOW. LET'S JUST GET BACK TO MACIL."; +TXT_ILOG89 = "THE FACTORY IS NEXT TO THE MINES. RICHTER MUST MEAN THE MINES OF DEGNIN. THE DEGNIN ORE IS MAGNETIC AND EXPLOSIVE, JUST THE THING FOR SHUTTING DOWN FORCE FIELDS. LET'S GET THAT KEY FROM THE CATACOMBS, AND THEN OFF TO THE MINES FOR SOME ORE."; +TXT_ILOG93 = "THE FACTORY IS NEXT TO THE MINES. THE DEGNIN ORE IS MAGNETIC AND EXPLOSIVE, JUST THE THING FOR SHUTTING DOWN FORCE FIELDS. LET'S GET THAT KEY FROM THE CATACOMBS, AND THEN WE GO DOWN FOR SOME ORE. THIS MUST BE THE RUINS RICHTER'S AGENTS WERE SEARCHING FOR, BE CAREFUL."; +TXT_ILOG95 = "THE FACTORY IS NEXT TO THE MINES. THE DEGNIN ORE IS MAGNETIC AND EXPLOSIVE, JUST THE THING FOR SHUTTING DOWN FORCE FIELDS. MY FRIEND, WHATEVER IT IS WE'RE FIGHTING, IT'S MORE THAN JUST THE ORDER. BACK TO THE COMMONS THEN OFF TO THE MINES. WE NEED ORE."; +TXT_ILOG96 = "THE FACTORY IS NEXT TO THE MINES. THE DEGNIN ORE IS MAGNETIC AND EXPLOSIVE, JUST THE THING FOR SHUTTING DOWN FORCE FIELDS. WITHOUT LETTING DOWN YOUR GUARD, LOOK FOR DEPOSITS OF ORE."; +TXT_ILOG97 = "WITHOUT LETTING DOWN YOUR GUARD, LOOK FOR DEPOSITS OF ORE. THESE POOR SOULS ARE DRONES. THEIR SYNAPTIC FUNCTIONS ARE BEING JAMMED BY RC IMPLANTS. WE DESTROY THE TRANSMITTER, AND THEY'RE FREE."; +TXT_ILOG99 = "THE FACTORY IS NEXT TO THE MINES. WITHOUT LETTING DOWN YOUR GUARD, LOOK FOR DEPOSITS OF ORE. MY SUGGESTION IS, TOSS THE ORE AT THE FORCE FIELD AND THEN BLAST IT, THE RESULTING COMPRESSION SHOULD CREATE A MAGNETIC BLANKET AND TURN OFF THE LIGHTS."; +TXT_ILOG100 = "NOW ON TO THE FACTORY. EXIT THE MINES AND YOU CAN'T MISS IT. LET'S FIND THAT MACHINE AND SHUT IT DOWN!"; +TXT_ILOG102 = "I'M READING MASSIVE NEURAL WAVE DISTORTIONS FROM STRAIGHT AHEAD. I THINK WE'VE FOUND IT. LET'S GET IN THERE AND SHUT IT DOWN!"; +TXT_ILOG103 = "JUST WHEN I THINK WE'VE SEEN IT ALL! THEY GO IN HUMAN AND COME OUT... I DONT EVEN WANT TO THINK ABOUT IT. DESTROY THIS HORROR!"; +TXT_ILOG104 = "MACIL'S GONE NUTS. HE JUST KNOWINGLY SENT 200 MEN TO THEIR DEATHS. I WANT VENGEANCE! FOR THE DEAD AND FOR THE LIVING DEAD! LET'S GET BACK AND FIND OUT WHAT'S GOING ON."; +TXT_ILOG106 = "THE FACTORY LEADS TO A 'LAB', AND THEY'RE GETTING A SIGIL PIECE POWER SIGNATURE FROM WITHIN. BACK TO THE FACTORY AND OUR NEXT STEP TO FREEDOM."; +TXT_ILOG120 = "FIND THE BISHOP AND DESTROY HIM! ONCE HE'S DEAD, RETURN TO THE ORACLE."; +TXT_ILOG122 = "THE LOREMASTER'S LAB IS BEYOND THE TELEPORTER THAT JUST OPENED. LET'S GO FIND OUT WHAT HE WAS JUST YAPPING ABOUT.AND OUR NEXT STEP TO FREEDOM."; +TXT_ILOG211 = "COME ON, LET'S GET THE HELL OUT OF HERE. THE FORCE FIELD IS DOWN, OFF TO THE BISHOP'S TOWER. ONCE HE'S DEAD, GET BACK TO THE ORACLE."; +TXT_ILOG1001 = "FIND THE SANCTUARY BY THE RIVER. STEAL THE CHALICE FROM INSIDE. BRING IT TO HARRIS IN THE TAVERN."; +TXT_ILOG1002 = "FIND THE GOVERNOR. TALK TO HIM ABOUT YOUR REWARD."; +TXT_ILOG1003 = "FIND THE SANCTUARY BY THE RIVER. INSIDE SOMEONE CALLED BELDIN IS BEING HELD. SHUT HIM UP, AND BRING HIS RING BACK TO ROWAN AS PROOF."; +TXT_ILOG1004 = "FIND THE LOCATION OF THE FRONT AND TALK TO MACIL."; +TXT_ILOG1005 = "GO DOWN THE STAIRS, FIND AND TALK TO MACIL."; +TXT_ILOG1006 = "VISIT IRALE, THE FRONT'S WEAPONS SUPPLIER IN TOWN. HE'S BEHIND THE DOOR NEXT TO THE WEAPONS SHOP. THEN, USE THE KEY MACIL GAVE YOU TO TALK TO THE GOVERNOR."; +TXT_ILOG1007 = "FIND THE POWER TAP ON THE MAINS, AND SHUT IT OFF. BRING SOMETHING BACK TO THE GOVERNOR AS PROOF."; +TXT_ILOG1008 = "FIND DERWIN IN THE WAREHOUSE OF THE POWER STATION. KILL HIM, AND BRING MOUREL HIS EAR."; +TXT_ILOG1009 = "USE THE PASS MOUREL GAVE YOU TO GET INTO THE PRISON. ONCE INSIDE, TALK TO WARDEN MONTAG. FIND A WAY TO FREE THE PRISONERS."; +TXT_ILOG1010 = "USE THE WARDEN'S KEY TO GET INTO THE PRISON CELL BLOCKS AND FIND A WAY TO FREE THE PRISONERS."; +TXT_ILOG1011 = "DESTROY THE POWER CRYSTAL THAT RUNS THE POWER GRID WHICH DRIVES THE ORDER'S SHIELDS. GO VISIT WORNER, A SPY WE RECRUITED IN THE WAREHOUSE OF THE POWER STATION. DON'T FORGET TO VISIT THE MEDIC AND THE WEAPONS TRAINER BEFORE YOU GO"; +TXT_ILOG1012 = "DESTROY THE POWER CRYSTAL THAT RUNS THE POWER GRID WHICH DRIVES THE ORDER'S SHIELDS. USE THE I.D. TO GET INTO THE POWER STATION. YOU MAY WANT TO CHECK OUT THE STOREROOM ABOVE WORNER."; +TXT_ILOG1013 = "DESTROY THE POWER CRYSTAL THAT RUNS THE POWER GRID WHICH DRIVES THE ORDER'S SHIELDS. GO TALK TO KETRICK IN THE CORE AREA."; +TXT_ILOG1014 = "DESTROY THE POWER CRYSTAL. GO TALK TO KETRICK, BRING THE WALKWAY UP USING THE SWITCHES, THEN USE THIS ID FOR THE ELEVATOR."; +TXT_ILOG1015 = "FIND THE TOWN ENTRANCE THAT THE ORDER HAS GUARDED. OPEN THE DOOR AND BRING THE GUARD'S UNIFORM BACK TO WERAN."; +TXT_ILOG1016 = "TAKE THE FLAMETHROWER PARTS TO IRALE. FIND THE SEWER MAINTENANCE DOOR. FIND AND DRAIN THE RECLAMATION TANK INSIDE THE CASTLE. AT THE BOTTOM IS A HIDDEN ENTRANCE TO THE SEWERS. DOWN THAT ENTRANCE IS WHERE THE GATE CONTROLS ARE, SOMEWHERE."; +TXT_ILOG1017 = "JOIN THE ASSAULT ON THE CASTLE. FIND AND TAKE OUT THE PROGRAMMER. SEE THE MEDIC AND THE WEAPONS TRAINER. SPEND EVERYTHING YOU'VE GOT. THIS IS GOING TO BE A HELL OF A FIGHT."; +TXT_ILOG1018 = "USE THE KEY THE FALSE PROGRAMMER GAVE YOU TO OPEN AN ENTRANCE TO THE PROGRAMMER'S KEEP. IT HAS TO BE WHERE HE'S HIDING. FIND THE PROGRAMMER AND KILL HIM."; +TXT_ILOG1019 = "SEEK OUT THE ORACLE AND ASK IT ABOUT THE OTHER SIGIL PIECES. TAKE YOUR REWARD AND GO ACROSS TO THE MEDIC AND WEAPONS TRAINER FOR HEALTH AND TRAINING."; +TXT_ILOG1020 = "THE SECOND PIECE LIES AT THE HEART OF THE CRIMSON AND OBSIDIAN TOWER. THERE YOU MUST FIND THE BISHOP, WHO AWAITS YOU. TAKE THE ORACLE'S TOKEN TO THE KEY MASTER IN THE BORDERLANDS. ONCE YOU HAVE DESTROYED THE BISHOP, RETURN TO THE ORACLE."; +TXT_ILOG1021 = "FIND THE CRIMSON AND OBSIDIAN TOWER. USE THE ID KEY THE KEY MASTER GAVE YOU TO ENTER THE TOWER. ONCE INSIDE YOU MUST LOCATE THE BISHOP. ONCE YOU HAVE DESTROYED THE BISHOP, RETURN TO THE ORACLE."; +TXT_ILOG1022 = "FIND THE SECURITY COMPLEX, FIGHT THROUGH THERE AND USE THE TELEPORTER TO CENTRAL ADMINISTRATION. DESTROY THE COMPUTER CORE IN CENTRAL ADMINISTRATION. THIS WILL KILL THE FORCE FIELD ON THE BISHOP'S TOWER. ONCE THE BISHOP'S DEAD, RETURN TO THE ORACLE."; +TXT_ILOG1023 = "Your next challenge will test your spirit. The third piece is held by your own leader. he is the same as that which he sends you to kill. Confront him and resolve your fate."; +TXT_ILOG1024 = "It is the Oracle who holds the third piece. There's your traitor. RETURN TO THE ORACLE, AND TAKE HIM DOWN. Return to me when it's dead."; +TXT_ILOG1025 = "You have cut the cancer from your body, but your heart still beats. Next you must find the surgeon who butchers and controls your people.... The LoreMaster. Stop him, and the next piece will be yours."; +TXT_ILOG1026 = "Next you must find the surgeon who butchers and controls your people.... The LoreMaster. Stop him, and the next piece will be yours. Use the teleporter I opened to reach him. When he's dead, use the same device to return to me."; +TXT_ILOG1027 = "YOU HAVE CHOSEN WISELY. The third piece is held by your own leader. DESTROY THAT WHICH HIDES WITHIN YOUR HEART AND RETURN TO ME."; +TXT_ILOG1028 = "WE'VE FOUND OUT THAT THE ORDER IS TRANSFORMING OUR PEOPLE INTO BIO-MECHANICAL SOLDIERS. FIND THE FACILITY WHERE THIS IS BEING DONE AND CLOSE IT, PERMANENTLY! FIND RICHTER IN THE COMMONS, NEAR THE WATERFALL AND HE'LL TELL YOU HOW TO STOP THIS ATROCITY."; +TXT_ILOG1029 = "TO ENTER THE FACTORY, YOU NEED A KEY. WE STOLE ONE, BUT THE AGENT WHO HAD IT IS MISSING IN THE CATACOMBS UNDERNEATH THE COMMONS. THERE'S SOMETHING DOWN THERE TAKING OUR MEN. WHATEVER IT IS, YOU HAVE TO FIND IT AND RETRIEVE THE KEY. WHEN YOU'VE GOT IT, THE FACTORY IS NEXT TO THE MINES."; +TXT_ILOG1101 = "Find the chalice in the Sanctuary chapel and bring it to harris upstairs in the tavern."; +TXT_ILOG1102 = "Find the Governor's mansion and talk to the Governor to get your reward"; +TXT_ILOG1201 = "Congratulations! You have earned our gratitude. Visit the Medic and Weapons Trainer and they will get you ready for what lies ahead. Feel free to wander around within the base."; + +// Strife's character names + +TXT_SPEAKER_ORDER_SERGEANT = "ORDER SERGEANT"; +TXT_SPEAKER_ROWAN = "ROWAN"; +TXT_SPEAKER_FERIS = "FERIS"; +TXT_SPEAKER_PRISON_GUARD = "PRISON GUARD"; +TXT_SPEAKER_JUSTIN = "JUSTIN"; +TXT_SPEAKER_MACIL = "MACIL"; +TXT_SPEAKER_ASSISTANT = "ASSISTANT"; +TXT_SPEAKER_KEY_MASTER = "KEY MASTER"; +TXT_SPEAKER_BODYGUARD = "BODYGUARD"; +TXT_SPEAKER_INTERROGATOR = "INTERROGATOR"; +TXT_SPEAKER_WARDEN_MONTAG = "WARDEN MONTAG"; +TXT_SPEAKER_RICHTER = "RICHTER"; +TXT_SPEAKER_MACIL_S_ADVISOR = "MACIL'S ADVISOR"; +TXT_SPEAKER_JUDGE_WOLENICK = "JUDGE WOLENICK"; +TXT_SPEAKER_TEVICK = "TEVICK"; +TXT_SPEAKER_HARRIS = "HARRIS"; +TXT_SPEAKER_FOREMAN = "FOREMAN"; +TXT_SPEAKER_PRISONER = "PRISONER"; +TXT_SPEAKER_SAMMIS = "SAMMIS"; +TXT_SPEAKER_WEAPON_SMITH = "WEAPON SMITH"; +TXT_SPEAKER_REACTOR_GUARD = "REACTOR GUARD"; +TXT_SPEAKER_APPRENTICE = "APPRENTICE"; +TXT_SPEAKER_DOOR_GUARD = "DOOR GUARD"; +TXT_SPEAKER_MASTER_SMITHY = "MASTER SMITHY"; +TXT_SPEAKER_WAREHOUSE_GUARD = "WAREHOUSE GUARD"; +TXT_SPEAKER_BARKEEP = "BARKEEP"; +TXT_SPEAKER_TIMOTHY = "TIMOTHY"; +TXT_SPEAKER_JAMES = "JAMES"; +TXT_SPEAKER_WORNER = "WORNER"; +TXT_SPEAKER_BAILEY_GUARD = "BAILEY GUARD"; +TXT_SPEAKER_DRONE = "DRONE"; +TXT_SPEAKER_FRONT_GUARD = "FRONT GUARD"; +TXT_SPEAKER_QUINCY = "QUINCY"; +TXT_SPEAKER_SERGEANT = "SERGEANT"; +TXT_SPEAKER_TEMPLE_GUARD = "TEMPLE GUARD"; +TXT_SPEAKER_ORACLE = "ORACLE"; +TXT_SPEAKER_ULAINE = "ULAINE"; +TXT_SPEAKER_FRONT_SOLDIER = "FRONT SOLDIER"; +TXT_SPEAKER_PROGRAMMER = "PROGRAMMER"; +TXT_SPEAKER_MEDIC = "MEDIC"; +TXT_SPEAKER_WATCHMAN = "WATCHMAN"; +TXT_SPEAKER_KETRICK = "KETRICK"; +TXT_SPEAKER_WERAN = "WERAN"; +TXT_SPEAKER_ADVISOR = "ADVISOR"; +TXT_SPEAKER_GEOFF = "GEOFF"; +TXT_SPEAKER_OVERSEER = "OVERSEER"; +TXT_SPEAKER_SECURITY_COMPLE = "SECURITY COMPLE"; +TXT_SPEAKER_COMPUTER_TECH = "COMPUTER TECH"; +TXT_SPEAKER_MACGUFFIN = "MACGUFFIN"; +TXT_SPEAKER_ARION = "ARION"; +TXT_SPEAKER_DOCK_WORKER = "DOCK WORKER"; +TXT_SPEAKER_IRALE = "IRALE"; +TXT_SPEAKER_CORE_GUARD = "CORE GUARD"; +TXT_SPEAKER_SEWER_GUARD = "SEWER GUARD"; +TXT_SPEAKER_TECHNICIAN = "TECHNICIAN"; +TXT_SPEAKER_GUARD = "GUARD"; +TXT_SPEAKER_PEASANT = "PEASANT"; +TXT_SPEAKER_ARMORER = "ARMORER"; +TXT_SPEAKER_BELDIN = "BELDIN"; +TXT_SPEAKER_GERARD = "GERARD"; +TXT_SPEAKER_GOVERNOR_MOUREL = "GOVERNOR MOUREL"; +TXT_SPEAKER_BOWYER = "BOWYER"; +TXT_SPEAKER_DERWIN = "DERWIN";