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 zcmZQ$U}a!n`2Sylfq_Adfq_Affq}t-fq}t^fq}t?fq{XEQD0yGKO?ig{uX`x{|v19 e`kVB(LRtFTL2@9mEg`djt&|1&a!WcB|uG3x8<{|5k}b`x>{ 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}Vr>U|=v{U|_IfU|?`(U|koRD_EG39Yk&1zFlAcKa{;~D^$@|m?Dtg&HCFwN}#3z0Eze>U;qFB 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 zcmd;J;9y{2U}Vr>U|=w0U|_IiU|{fKU|jQU|=XcW&OQuMbhRQ-9|csKi$Nty}dsLpdN-`a3|X Q81?n_nOVUG>+Amq008GD6aWAK 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}pdU4F(1VBL)TrTLuOOPX-2tPzDBuLXw0gN*?x*4O_J0M3LXIRF3v 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}pdU4F(1V69xtb2L=WP9|i`72nGg*6b1%{0tN<#8ju2ZeHi%9z^<>qdF$4# zTlMw9?2VhZZruW9Z`!p@e-o6wQGe?$7<;q+*3B?A+w}Ff@7CA<&&UKak_Alu2LQbT BBqO@I5= zt@`?4_GbO9Tem>j8}+y8Z-TNn?b^Bv#@@Jj>t>jmojdin@7CA<&&UKak_Alu2LOiS BB=!IR 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}pdU4F(1V69xtb2L=WP9|i`72nGg*1O^6%3q6$JG4 f!R#$tw{F`GWp9M2`p>|uufGu_hK1JG*Z&Uy{(~Gg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ccbfbde85c3f8c58ff1ba8533a79feff674a4ff6 GIT binary patch literal 146 zcmd;N;9vj&9R>yl69xtbdjRxtUWfn8sJ zhrYi4c71&?d$ax){VhoBO;Glhom+Npg|c^U-n12@o{?2wf2aN~ef|GTjQaZeEFj`P E0CA!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}pdU4F(1VV+IBWdjS w)~#Fh^}*~dTeocA0cGp&-o9ful)Y=qc90f`nr)jmZGwt#-n@A$SPjBR0Ckfk+W-In 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}Vr>U|=w2U|_IkU|{fJU|@)3U|>jNU|=X>U|^_YU|?Wk(}#lpjO_aQ zyS8rKx>aBQKLdxpzW$c2Tek0ja<=O4-o9ful%v0E%XW}1u$C>`HgDRbuMcK#-n@A$ JND(8#Q~>H`Cjq9R&3C z!R(D&Hf`DrW$Wv20jc}X$f~cuY0D0%=*AuTo55^mef@3v`Yg=)`d|%AAhoPu@;?A- C8X_G4 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}pdU9R>ylV+IBWTLuOO4+aK?5C#T@1O^6%90mr43I+y-76t|eRwjLYef|GT ztRQNazW#qkHhujaJ9g~Q*Z$Yv%pzN(6HQ3l&w{M55-?C}bW~ds7a{d1R D>rEv- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5c3c3c88ddc89c3bc06e12e580a3101e225ccdb7 GIT binary patch literal 145 zcmd;NU}pdU9R>yla|Q+mX9flae+CAICqLc~DYHgDa!6{cq1qAf< s!R+nZw`|`IW$Wv21*rpzBeS<}-MW1TRL!O>n>KBRvO$XV_4WS)04mudi2wiq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3a7a4a488004a6a597b5952a97fd35628183c66b GIT binary patch literal 124 zcmd;JU}pdU4F(1V0|o{LD+UGzHwFfVAO;48I0goWECvRK5(WkaCT4vQ_|M3yufJ=@ pE`9y~4D9;)yEbp#3}bKHslRh0R2;q1qAf< lA?)qjw{M5Cw?b5b#ZlN>w{PD8RkLZ!rcIlnY>0CG{{SrKBZ&Y2 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}pdU4F(1V69xtb2L=WP9|i`72nGg*BnAeC90mr4GLQmxeHi%9z^<>qU4P@o tt@`?4_9i6uM*WQ-b^jSy_4POI-3(FzVr_-7c5U6Ium7Ks8Kg-6KLEQ-AN&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}pdU4F(1V0|o{LD+UGzHwFfVAO;48I0goWTm}Y)8U_XiCT4vQ_|M3yufKE0 zE`9y~4D9;)yEbp#3}bKJymj+dsQ5;Gef^CfHZz!Jfl&V$nDzCy=<9>H+n}=g5U#$y G{(k_Kl_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}pdU4F(1V0|o{L3kC)T7X}7~00stz7zPH03sF}v#!Z_yZHBV9fK-6k%=-FUptQce{(k_;QXB>V 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}pdU4F(1VGX@3*Ck6%vKL!SdC>fA&7bZ0ipIE0ssI2 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}pdU0|o{L3kC)TCk6%v9|i`72nGg*6b1%{0tN<#8U_Z2HU(~wR!7Sef|Fo?E3opTlKesL_zG0Terf+H*VUzX){924v-p<89TP_ MfSREX7K51&0M5`S3IG5A 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}pdU9R>ylO9lo84+aK?5C#T@1O^6%ECvRKG6n{QCI$wEi6BKx`uh6%tYGp# z1GB#VW_^7Y2=$+VU0;9eHvMf|_4UE*?I579|DTanUw`XXgy`1o+o3Aps+slmw?hm9 KOM#7tS^@yY|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&9R>yl3kC)T7X}7~00stz7zPH03q z1qAfylQw9bGdjqW%I^OF!3#$H*eVjQVmuEQlkGK05X&tB>(^b 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}pdU0|o{L8wLgj4+aK?5C#T@1O^6%90mr43I+y-76t}}2@DJjb3h8&^DGUq@3mF&~)`1kW z>%+i*26lb@Eg+z;4`y%QzJ2=^C>x|`E0hfqhp{(r+O%a8R2*5&j_upGgVk{8>x0y6 U-wsm50aBu`uMgs|F@ZS$0ejgqoB#j- 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}pdU0|o{L3kC)T2L=WP9|i`72nGg*6b1%{0tN<#Dh39I76t}}UXVg&eGvH1 zz^t#oU0?q{1G~QdW{?Psy>;u>tx)#H&0Du_fwJ}Wx9M-v*ZjB+tyE QufKh_zW#p}CXh-00V#DRN&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}pdU69xtb2L=WP9|i`72nGg*6b1%{JO&1a3I+y-Mg|6kUIqq+nG6gJOF@d+ z^KW)^+@?YrR$ a!RCPt*bV|v@r|1{Z`urHgH`D3{|5j}8ZeUp 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}pdU4F(1V69xtb2L=WP9|i`72nGg*BnAeC90mr4Qjh|6eHi%9z^<>qdF$4# zTlMw9?2VhZZruW9>+5gR-=weqpNUmpf9ozdYcoimnMGfJ`)+;x|13-(v;G4Bxqu)# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fc193a5305bcea7d5bbc885c825a6ccdc0a0ad53 GIT binary patch literal 131 zcmd;JU}pdU4F(1VQw9bGM+OE4Uj_z-NCpOmR0alyLIwtgYLEgZeSLj>RxtUWfn8sJ zhrYi4c71&?d$ax){VhoBO;Glhom+Npg|c^U-n12@o{?2wf9LjH`uhKwm_bJB{|5jV C3L(w_ 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}pdU69xtb2L=WP9|i`72nGg*6b1%{JO&1aDh39IHU%+i*26lb@?I5794`y%Nw0YBJC|h5DGf3TkMpk|OU7L47MR#r93TJQJslRh0R2;Y5UKy4 zfn8sJyT1O`t@;r5CjE^YVeF0i8+YhK#W(KS2+{ynzj5nkxcco|H}Bd3RRdB0QV#$n C?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`1jw1fq}t?fq@}}fq@~0fq@}~fq@~1fq|iffq|ihfq|igfq|iifq`KP o0|Ubx1_p*D3=9lw7#J9~FfcGMFzbWBe-OP