From 4d2bb11317e1b6a9b0c774cc8b902f00b914d153 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 7 Feb 2019 13:12:39 +0100 Subject: [PATCH] - reworked font loader to make adding multi-lump fonts easier. A multi-lump font can be created by putting all characters into a subdirectory of fonts/ with the intended name. Each character needs to be named by its character index as hex number. So far this is only active for the predefined small fonts --- src/gamedata/w_wad.cpp | 37 +++++++ src/gamedata/w_wad.h | 7 ++ src/scripting/thingdef_data.cpp | 5 +- src/scripting/vm/jit_move.cpp | 2 +- src/scripting/vm/vm.h | 2 +- src/scripting/vmthunks.cpp | 2 +- src/utility/zstring.cpp | 8 +- src/utility/zstring.h | 4 +- src/v_font.cpp | 101 ++++++++++++------ src/v_font.h | 2 +- .../defsmallfont/009F.lmp} | Bin .../game-doom/fonts/defsmallfont/00AB.lmp | Bin 0 -> 89 bytes .../game-doom/fonts/defsmallfont/00BB.lmp | Bin 0 -> 89 bytes .../defsmallfont/00BF.lmp} | Bin .../defsmallfont/00C0.lmp} | Bin .../defsmallfont/00C1.lmp} | Bin .../defsmallfont/00C2.lmp} | Bin .../defsmallfont/00C3.lmp} | Bin .../defsmallfont/00C4.lmp} | Bin .../defsmallfont/00C5.lmp} | Bin .../defsmallfont/00C7.lmp} | Bin .../defsmallfont/00C8.lmp} | Bin .../defsmallfont/00C9.lmp} | Bin .../defsmallfont/00CA.lmp} | Bin .../defsmallfont/00CD.lmp} | Bin .../defsmallfont/00CE.lmp} | Bin .../defsmallfont/00CF.lmp} | Bin .../defsmallfont/00D1.lmp} | Bin .../defsmallfont/00D3.lmp} | Bin .../defsmallfont/00D4.lmp} | Bin .../defsmallfont/00D5.lmp} | Bin .../defsmallfont/00D6.lmp} | Bin .../defsmallfont/00D9.lmp} | Bin .../defsmallfont/00DA.lmp} | Bin .../defsmallfont/00DB.lmp} | Bin .../defsmallfont/00DC.lmp} | Bin .../defsmallfont/00DF.lmp} | Bin .../game-doom/fonts/defsmallfont/0178.lmp | Bin 0 -> 126 bytes .../game-doom/fonts/defsmallfont/0401.lmp | Bin 0 -> 140 bytes .../game-doom/fonts/defsmallfont/0410.lmp | Bin 0 -> 132 bytes .../game-doom/fonts/defsmallfont/0411.lmp | Bin 0 -> 137 bytes .../game-doom/fonts/defsmallfont/0412.lmp | Bin 0 -> 137 bytes .../game-doom/fonts/defsmallfont/0413.lmp | Bin 0 -> 120 bytes .../game-doom/fonts/defsmallfont/0414.lmp | Bin 0 -> 146 bytes .../game-doom/fonts/defsmallfont/0415.lmp | Bin 0 -> 130 bytes .../game-doom/fonts/defsmallfont/0416.lmp | Bin 0 -> 208 bytes .../game-doom/fonts/defsmallfont/0417.lmp | Bin 0 -> 134 bytes .../game-doom/fonts/defsmallfont/0418.lmp | Bin 0 -> 134 bytes .../game-doom/fonts/defsmallfont/0419.lmp | Bin 0 -> 137 bytes .../game-doom/fonts/defsmallfont/041A.lmp | Bin 0 -> 138 bytes .../game-doom/fonts/defsmallfont/041B.lmp | Bin 0 -> 144 bytes .../game-doom/fonts/defsmallfont/041C.lmp | Bin 0 -> 145 bytes .../game-doom/fonts/defsmallfont/041D.lmp | Bin 0 -> 136 bytes .../game-doom/fonts/defsmallfont/041E.lmp | Bin 0 -> 124 bytes .../game-doom/fonts/defsmallfont/041F.lmp | Bin 0 -> 136 bytes .../game-doom/fonts/defsmallfont/0420.lmp | Bin 0 -> 126 bytes .../game-doom/fonts/defsmallfont/0421.lmp | Bin 0 -> 139 bytes .../game-doom/fonts/defsmallfont/0422.lmp | Bin 0 -> 120 bytes .../game-doom/fonts/defsmallfont/0423.lmp | Bin 0 -> 128 bytes .../game-doom/fonts/defsmallfont/0424.lmp | Bin 0 -> 152 bytes .../game-doom/fonts/defsmallfont/0425.lmp | Bin 0 -> 158 bytes .../game-doom/fonts/defsmallfont/0426.lmp | Bin 0 -> 149 bytes .../game-doom/fonts/defsmallfont/0427.lmp | Bin 0 -> 111 bytes .../game-doom/fonts/defsmallfont/0428.lmp | Bin 0 -> 168 bytes .../game-doom/fonts/defsmallfont/0429.lmp | Bin 0 -> 181 bytes .../game-doom/fonts/defsmallfont/042A.lmp | Bin 0 -> 148 bytes .../game-doom/fonts/defsmallfont/042B.lmp | Bin 0 -> 177 bytes .../game-doom/fonts/defsmallfont/042C.lmp | Bin 0 -> 124 bytes .../game-doom/fonts/defsmallfont/042D.lmp | Bin 0 -> 131 bytes .../game-doom/fonts/defsmallfont/042E.lmp | Bin 0 -> 176 bytes .../game-doom/fonts/defsmallfont/042F.lmp | Bin 0 -> 138 bytes .../game-doom/fonts/defsmallfont/2014.lmp | Bin 0 -> 188 bytes .../game-doom/fonts/defsmallfont/201C.lmp | Bin 0 -> 98 bytes .../game-doom/fonts/defsmallfont/201E.lmp | Bin 0 -> 98 bytes .../defsmallfont/005C.lmp} | Bin .../defsmallfont/005D.lmp} | Bin .../defsmallfont/005E.lmp} | Bin .../defsmallfont/005F.lmp} | Bin .../defsmallfont/00C4.lmp} | Bin .../defsmallfont/00C5.lmp} | Bin .../defsmallfont/00D6.lmp} | Bin .../defsmallfont/00DC.lmp} | Bin .../defsmallfont/00DF.lmp} | Bin 83 files changed, 123 insertions(+), 47 deletions(-) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn159.lmp => fonts/defsmallfont/009F.lmp} (100%) create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00AB.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/00BB.lmp rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn191.lmp => fonts/defsmallfont/00BF.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn192.lmp => fonts/defsmallfont/00C0.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn193.lmp => fonts/defsmallfont/00C1.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn194.lmp => fonts/defsmallfont/00C2.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn195.lmp => fonts/defsmallfont/00C3.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn196.lmp => fonts/defsmallfont/00C4.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn197.lmp => fonts/defsmallfont/00C5.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn199.lmp => fonts/defsmallfont/00C7.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn200.lmp => fonts/defsmallfont/00C8.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn201.lmp => fonts/defsmallfont/00C9.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn202.lmp => fonts/defsmallfont/00CA.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn205.lmp => fonts/defsmallfont/00CD.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn206.lmp => fonts/defsmallfont/00CE.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn207.lmp => fonts/defsmallfont/00CF.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn209.lmp => fonts/defsmallfont/00D1.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn211.lmp => fonts/defsmallfont/00D3.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn212.lmp => fonts/defsmallfont/00D4.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn213.lmp => fonts/defsmallfont/00D5.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn214.lmp => fonts/defsmallfont/00D6.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn217.lmp => fonts/defsmallfont/00D9.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn218.lmp => fonts/defsmallfont/00DA.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn219.lmp => fonts/defsmallfont/00DB.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn220.lmp => fonts/defsmallfont/00DC.lmp} (100%) rename wadsrc_extra/static/filter/game-doom/{graphics/stcfn223.lmp => fonts/defsmallfont/00DF.lmp} (100%) create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0178.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0401.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0410.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0411.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0412.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0413.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0414.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0415.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0416.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0417.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0418.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0419.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041A.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041B.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041C.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041D.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041E.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/041F.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0420.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0421.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0422.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0423.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0424.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0425.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0426.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0427.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0428.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/0429.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042A.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042B.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042C.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042D.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042E.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/042F.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/2014.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201C.lmp create mode 100644 wadsrc_extra/static/filter/game-doom/fonts/defsmallfont/201E.lmp rename wadsrc_extra/static/filter/game-raven/{graphics/fonta60.lmp => fonts/defsmallfont/005C.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta61.lmp => fonts/defsmallfont/005D.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta62.lmp => fonts/defsmallfont/005E.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta63.lmp => fonts/defsmallfont/005F.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta164.lmp => fonts/defsmallfont/00C4.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta165.lmp => fonts/defsmallfont/00C5.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta182.lmp => fonts/defsmallfont/00D6.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta188.lmp => fonts/defsmallfont/00DC.lmp} (100%) rename wadsrc_extra/static/filter/game-raven/{graphics/fonta191.lmp => fonts/defsmallfont/00DF.lmp} (100%) 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/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 653bc2d98..f171f33ac 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..9b10ba2bb 100644 --- a/src/v_font.cpp +++ b/src/v_font.cpp @@ -305,21 +305,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 +328,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 +347,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 +403,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 +437,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 { @@ -1826,7 +1857,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) @@ -2228,19 +2259,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 +2302,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_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 0000000000000000000000000000000000000000..b7804d21b7ddf8fb172f19375ef5cc285cfe89c6 GIT binary patch literal 89 zcmXZRF%Ez*3`0@3RXGO}BY$OP=Cr64#|sW(c#e}S>XIT>=VrSdcG_jN08ttYPj$GN Qf8)tt-bU6?^-lXTUdad(NdN!< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..179e0ac79f392301d18e8701bcf54629b43313d8 GIT binary patch literal 89 zcmXAeu?@f=5CaVe=EwrbC3R{_Hbp^<_xOpWvrcwF24ME6t7zgCT?~OpCEYe;^5Z72 Px%@V{WFh%Wi^2B;p>`8; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d57a2dd3eb335f4a3bfa23a61f8c8d938968c634 GIT binary patch literal 126 zcmd;J;9y{2U}Vq$k_JF*1;p+^91O(qK%4`_WkAfxtPcYJ8Cdo8x9V>Ju{iYgH|uZS j3KnK$2T>chZwE?1+1r3JU`1PDia>fd>u&=oftm&YiTEC1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9eedf12eda0fc5f80bccdf86497c6d900f92a682 GIT binary patch literal 140 zcmYj}(FuS+3`2XI;*H{8Z~zx@0S9ma7jP+S(Yo9j`=f=I5_qIY5s@T4b08y`$V?Wp rl8xjBaW!@P_vy?k1u)pIY*7^MYAj(n{P-+`{w!RtmAI1I7-oF{0OutX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f805e3aa6e7adc3137e6363869ed1032dcdf0a61 GIT binary patch literal 132 zcmd;JU}pdU4InlGVp|~g1maL2P6XmyAg%;rCRTk2_|M3uufJ={mM!}F{~6fz^|x=? fzI{8Cy-9y7ND){Zg}n`-e%ods0IC5Q0|Ea5&V(a5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..af5f0f468cd6c2c4b156383e4c6bf51172f56b77 GIT binary patch literal 137 zcmd;JU}pdU4InlFVh14h0pbWCP66TqAg%#o26lZI_zz-l-Uohn31lP-nEVd_y#plb literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..201c48199f67f2751e99d709e84a318ed27919de GIT binary patch literal 137 zcmd;JU}pdU4InlFVh14h0pbWCP66TqAg%#o26lZI_zz-l)8D>ztG+&%y;* mMxe|lD0|bct-E0CjhnY_hN;=PQ-Awzpc+OdkdZ84@;?BE<0SR~ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a33bd8ef648f5ca349871f15a8c7d6f8b0c3b25a GIT binary patch literal 120 zcmd;JU}pdU4InlFVh14h0pbWCP5|NzAT9u626lZI_zz-l1p$41Fni0^t=qOk*&89M Q{xdM^>jT+XX`qt-0RDpGx@7V5X2YXr|n~}L>kqk|a88QUR5R3>RzY$gC{tTov#U!AT9%9CT4vQ_|M3yufKEqE+C769mv|eY3p_< jd+TN(fU>vj+_G~kl)YJhtNs=!dx!o`eVBT%c|dUh>Kh|t literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dc873e301d21ea709ae2f8cd9aa27789d01aae53 GIT binary patch literal 208 zcmZwB!41MN4259}ih5y}ckKdfzyJ)u01UtY4A233ZXKsRGg$c(1&ITezSvS;S&9!TTjpOXmh5vHcP2IteHq2-;8_S{$)H; TtS#@WBA1yx^s=sA{eI;Gs&Y69 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ff1ee0248c7c99cfc2728c2ae3fe60ceda85df03 GIT binary patch literal 134 zcmd;JU}pdU4InlJVn-nM1>#5`P6gsZAg%^t1}1$VUS@rdI>hA)wm>7XZuz-mF0CA!rcmMzZ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7410e87a7d9670c9913f71f4a323685389a8968c GIT binary patch literal 134 zcmd;JU}pdU4InlKVtXL=2I6oaP6pz9Ag%^tMmBvY_|L$uufJ<65a{cJ*;}@5*}enH i*5AE-$8IQl*Ou)dEf6)^HgDPlWpCcRc`H~A!bkvhlO@{# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b22264c4ab927d2e02be5b645a31b872df8367e0 GIT binary patch literal 137 zcmd;J;9y{2U}Vq$lEy%655zt|90|l}KwJdGbwJF-rVj=G8QJyqcWng%ef|Fo96-@6 rTeocA0p)Df-@SduZkWujE!#o5z*@F!+q`KLl)ZWL=B*$_j0jT!>SiYd literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..46423d78f08e5df072c416620979383a84884278 GIT binary patch literal 138 zcmd;JU}pdU4InlFVh14h0pbWCP6FaQAg%>s26lZI_zz-l2LXM3Fni;cO`A4D+4}lh nKIlf1AEO3y=b9U;?RS1(W{)Y8oOP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..af8759ef399971468d5ac49d8c7e7e420e2f3bf4 GIT binary patch literal 144 zcmd;NU}pdU9UwLaVp|~g0OAlJP5|N@Ag%!779eJ2(g%Y7OspVk7m&rsrmw#P2!Kom kc76R#Teof724!yrslmqHx_vub{gzFeHbd1wl=qciWtT9EPdI;%Lx}7M6I!-`Hz00k$nU74LWv_N!XYFvj6}9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fa6e340dd7e5b71355a0a4fc5d828729c5cfad78 GIT binary patch literal 136 zcmd;JU}pdU4InlFVh14h0pbWCP66TqAg%#o26lZI_zz-l0Req|FnjyAT9x7CT4vQ_|M3yufJ=@E+C769mv|ebu)~; aai{*yjZkqAdkaj>)~(w?Y7jbMW&r>YvLa&u literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a478a2da247ac45f016de2ae2cd7e64aea11a6f6 GIT binary patch literal 136 zcmd;JU}pdU4InlFVh14h0pbWCP66TqAg%#o26lZI_zz-l0Req|2zxsaK-pU%s=(qX W?5*3k?|`b=v}Mz#%}_Sf(Ek7|=Oc*# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..52061d8ebb3936a5e154a1d49714bafeb75079d4 GIT binary patch literal 126 zcmd;JU}pdU4InlFVh14h0pbWCP6FZ_AT9%926lZI_zz-l*Wb8ttG+&%y$OlEQGX*y d-G2sFef^DlH^W$4VXR$ScLBv1nZbtr2LQWFAN&9S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3e350d77e489680104eb8e25fc7b7512ccff9d56 GIT binary patch literal 139 zcmd;JU}pdU4InlEVk;na1L7bcjsxOcAg%#oCT4vQ_|M3yufKE0E+C76U0;9K=B=Ay m?9D*-R;c(!pi&_I&j8c~q*)*on7akS-3FBfDg?;_!G8dil_5|7 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2798a47b3a2d1d2d029e9680b68f9bc263b073e4 GIT binary patch literal 120 zcmd;JU}pdU4InlEVhbR40pb84jsfBfAT9u624;N__z$8tfM|9w4G{yfH*N(2sQAWB Un>THSvbTV>LG%IHVErI-0LfAu1^@s6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..429c6a52e5d4e37e70eb17f1022cbcdfee5d92d5 GIT binary patch literal 128 zcmd;JU}pdU4InlHVkaQ>1L7zkP6gt8Ag%yn24;N_U}XZ4{~6fz^*3(O*WV6fZ{DiE i70L$6YzK?8fs}6C1`=k~*WUzG0%WlOSzsZEdH(^S_8$TO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bc5b528c3e2f50486ddc839e571da1808f1649c4 GIT binary patch literal 152 zcmd;LU}pdU10c2lVkaQ>0pbWCP66TqAg%%8HXxn=#7xZkAn>1&6-aJ|u{Lkr3KU~t l2lBT9A(XvwD-gign>KF(Du=1r0n@o-E075>4J-yT9{|qKCkg-n literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad72667cb50a2fa348669e4166d82ed0293748a0 GIT binary patch literal 158 zcmd;NU}pdU9U!&@VhMNw1(O#rF{83fXRVhI4n|0q!a literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..475944d63629829f0d15920b9903abe839d29d67 GIT binary patch literal 149 zcmd;N;9vj&9U!& aAbZQ^jhkTNTQ+arvIV3XtOle+|33gSlp7@g literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..adeadc5edb2672454f029d4ba9f8df94d8cf5b39 GIT binary patch literal 168 zcmd;LU}pdU10c2mVh^IAZ`KT2|zpth#A=RVchAnpL-DL}jsh}Quz1G_#9{0FhOfPlU}n7thc vU~G`0tw`c9_U28SwrqlmBdgf~)C*R_p|1~8vwb^A5s(80APyT7i1{A?d)YIb literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5df82d312140562b9d270b58851562729eb3ea45 GIT binary patch literal 148 zcmd;LU}pdU10c2lVh14h0pbWCP66TqAg%)979j2gVg_b?5cm(Gw}WVQef`Z~At-w* s5J1H@Zr-|e3zV&|zfFG=kj=!ZufKH{oV6Jw&&&ceYd4U=!UQ%O04a4QN&o-= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..250c4f7edb62bb677afbdebd09c6c8ec5f2e2eba GIT binary patch literal 177 zcmd;PU}pdU6Cic~Vjm!m0OAxN&I95KAZ`TWULc+c#7lvgfn6U4{)5+5gR-vnecvFht@-34cD2FWwC=<9Fa4Oa*@4{X485P*tr+_ZVqW;8VbOd2qg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..74f90b8b0cf46f86bbe0639f998f20b4f4adb648 GIT binary patch literal 124 zcmd;JU}pdU4InlFVh14h0pbWCP6FZ_AT9-B26lZI_zz-l-U#5`P6gsZAg%^t1}1$VUS@rdIZr=rDF)@RT)c+3v7z!cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bd3aeb4d1e40f53c15e65bcdd5caa0833b462fca GIT binary patch literal 176 zcmd;PU}pdU6Cic~Vjm!m0OAxN&I95qAZ`QVNkBXgh*tnH1G_#9{0FhOgMhw1n7wh+ z=1rTSY<+zo3&>_<)z{y(c^6c4*XFHo_Qsw1J2%2~0@+(&YPN3O4pI-+xdX&vVg_6J F9{`KUGd=(S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8573a46b9cffd001f72cba215266118b52f34afb GIT binary patch literal 138 zcmd;JU}pdU4InlHVkaQ>1L7zkP6Og1Ag%*qMkakAU||N4`u`c&_4T*w>u=o(WpC2o mxDm$QsK0RsOwGn!8{z6VZru!5zkTcGT|h-(b3h7!;6DH*?j#fd literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..14e398c7cb6eb87695f34f1b360c725c8b6994d1 GIT binary patch literal 188 zcmd;QU}j)o`1juhNcsSA2oT2raS9OU0C5Qr*8p(~5cdG_6d;}h#7ls94G?buVg_b? O5cm(GH`0j)*#`j0@GQ{) literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..255833abf9b6571f2ed1bb37bcc9be1c195e7315 GIT binary patch literal 98 zcmZQ)U||3O6(H6HVlyDN2VxH(4g}&TAZB3E2ZR40#