games-fps/gzdoom: new package, add 4.10.0-r1
This commit is contained in:
		@@ -0,0 +1,51 @@
 | 
			
		||||
From ac07dac1782544b61e44b9fe1d5f0fffd356aa15 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sun, 4 Dec 2022 17:10:09 -0300
 | 
			
		||||
Subject: [PATCH 01/51] Add casts to F32 Map/MapIterator functions to get rid
 | 
			
		||||
 of double to float conversion warnings
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/maps.cpp | 20 ++++++++++++++++++--
 | 
			
		||||
 1 file changed, 18 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/maps.cpp b/src/common/scripting/core/maps.cpp
 | 
			
		||||
index bb7cd369b..28fda643e 100644
 | 
			
		||||
--- a/src/common/scripting/core/maps.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/maps.cpp
 | 
			
		||||
@@ -162,7 +162,15 @@ template<typename M> void MapInsert(M * self, expand_types_vm<typename M::KeyTyp
 | 
			
		||||
         MAP_GC_WRITE_BARRIER(self);
 | 
			
		||||
         GC::WriteBarrier(value);
 | 
			
		||||
     }
 | 
			
		||||
-    self->Insert(key, value);
 | 
			
		||||
+
 | 
			
		||||
+    if constexpr(std::is_same_v<typename M::ValueType, float>)
 | 
			
		||||
+    {
 | 
			
		||||
+        self->Insert(key,static_cast<float>(value));
 | 
			
		||||
+    }
 | 
			
		||||
+    else
 | 
			
		||||
+    {
 | 
			
		||||
+        self->Insert(key, value);
 | 
			
		||||
+    }
 | 
			
		||||
     self->info->rev++; // invalidate iterators
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -246,7 +254,15 @@ template<typename I> void MapIteratorSetValue(I * self, expand_types_vm<typename
 | 
			
		||||
         GC::WriteBarrier(val);
 | 
			
		||||
         GC::WriteBarrier(value);
 | 
			
		||||
     }
 | 
			
		||||
-    val = value;
 | 
			
		||||
+
 | 
			
		||||
+    if constexpr(std::is_same_v<typename I::ValueType, float>)
 | 
			
		||||
+    {
 | 
			
		||||
+        val = static_cast<float>(value);
 | 
			
		||||
+    }
 | 
			
		||||
+    else
 | 
			
		||||
+    {
 | 
			
		||||
+        val = value;
 | 
			
		||||
+    }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
From e07fcbfc8f1be46712ce5a3271334b63494ac3d3 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sun, 4 Dec 2022 17:21:09 -0300
 | 
			
		||||
Subject: [PATCH 02/51] Fix PMapValueReader warning on Clang/GCC
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/types.cpp | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/types.cpp b/src/common/scripting/core/types.cpp
 | 
			
		||||
index 702277e89..3054335ac 100644
 | 
			
		||||
--- a/src/common/scripting/core/types.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/types.cpp
 | 
			
		||||
@@ -2603,7 +2603,7 @@ template<typename M>
 | 
			
		||||
 static bool PMapValueReader(FSerializer &ar, M *map, const PMap *m)
 | 
			
		||||
 {
 | 
			
		||||
 	const char * k;
 | 
			
		||||
-	while(k = ar.GetKey())
 | 
			
		||||
+	while((k = ar.GetKey()))
 | 
			
		||||
 	{
 | 
			
		||||
 		typename M::ValueType * val;
 | 
			
		||||
 		if constexpr(std::is_same_v<typename M::KeyType,FString>)
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								games-fps/gzdoom/files/0003-Fix-Quicksave-Rotation.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								games-fps/gzdoom/files/0003-Fix-Quicksave-Rotation.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
From 0d60192f3dfed0c6bf62a037241329543c006b4d Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sun, 4 Dec 2022 22:25:51 -0300
 | 
			
		||||
Subject: [PATCH 03/51] Fix Quicksave Rotation
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/g_game.cpp | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/g_game.cpp b/src/g_game.cpp
 | 
			
		||||
index d015fe837..4a3398fde 100644
 | 
			
		||||
--- a/src/g_game.cpp
 | 
			
		||||
+++ b/src/g_game.cpp
 | 
			
		||||
@@ -2250,7 +2250,7 @@ void G_DoQuickSave ()
 | 
			
		||||
 	num.Int = lastquicksave;
 | 
			
		||||
 	quicksavenum->ForceSet (num, CVAR_Int);
 | 
			
		||||
 
 | 
			
		||||
-	file = G_BuildSaveName(FStringf("quick%02d", nextautosave));
 | 
			
		||||
+	file = G_BuildSaveName(FStringf("quick%02d", lastquicksave));
 | 
			
		||||
 
 | 
			
		||||
 	readableTime = myasctime ();
 | 
			
		||||
 	description.Format("Quicksave %s", readableTime);
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,180 @@
 | 
			
		||||
From 370fcda5fa5fb07bbc6bfbbedb4004e7af0a4119 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Mon, 5 Dec 2022 12:05:26 +0100
 | 
			
		||||
Subject: [PATCH 04/51] - fixed some bad character offsets in Doom's and
 | 
			
		||||
 Raven's small fonts and deleted an incomplete character.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/00CE.lmp  | Bin 94 -> 94 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/00CF.lmp  | Bin 124 -> 124 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/00D1.lmp  | Bin 164 -> 164 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/00D2.lmp  | Bin 136 -> 136 bytes
 | 
			
		||||
 .../game-heretic/fonts/defsmallfont/0404.lmp    | Bin 129 -> 129 bytes
 | 
			
		||||
 .../game-heretic/fonts/defsmallfont/0490.lmp    | Bin 123 -> 123 bytes
 | 
			
		||||
 .../game-hexen/fonts/defsmallfont/0403.png      | Bin 1196 -> 0 bytes
 | 
			
		||||
 .../game-hexen/fonts/defsmallfont/0404.lmp      | Bin 0 -> 129 bytes
 | 
			
		||||
 .../game-hexen/fonts/defsmallfont/0404.png      | Bin 893 -> 0 bytes
 | 
			
		||||
 .../game-hexen/fonts/defsmallfont/0490.lmp      | Bin 0 -> 123 bytes
 | 
			
		||||
 .../game-hexen/fonts/defsmallfont/0490.png      | Bin 891 -> 0 bytes
 | 
			
		||||
 11 files changed, 0 insertions(+), 0 deletions(-)
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0403.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0404.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0404.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0490.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0490.png
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00CE.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00CE.lmp
 | 
			
		||||
index fac2a4633e3c904203afa3c02714f849a4c630ca..30e2b0d3be7650dca0d8b59edb49c108f63835be 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 13
 | 
			
		||||
Ucma!xV`pXHVqjokp2!{!01Pex#Q*>R
 | 
			
		||||
 | 
			
		||||
delta 13
 | 
			
		||||
Scma!xV`pXHVgQ1P?BM_mA_2kx
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00CF.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00CF.lmp
 | 
			
		||||
index 2f6dcf7c27c5b216f5b85965dcc8ef0663d689a1..bf0359c31651ee01f24dbec2ec46df3b1f986af5 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 13
 | 
			
		||||
Ucmb=aVdr4rVqjokp2%Jb01sFKA^-pY
 | 
			
		||||
 | 
			
		||||
delta 13
 | 
			
		||||
Scmb=aVdr4rVgQ1P?4<w?OadPO
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00D1.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00D1.lmp
 | 
			
		||||
index 8550355ab3699de87175570913fb5f65e07a0814..7eb9f80f279da2421d163a9ff03e80d736cc6207 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 15
 | 
			
		||||
WcmZ3&xP+0NgMo{Ifq{7<`&<AOZ~~kF
 | 
			
		||||
 | 
			
		||||
delta 15
 | 
			
		||||
VcmZ3&xP+0NgMo_y2qv=61ppOf0+|2+
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00D2.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/00D2.lmp
 | 
			
		||||
index 0eec3cb2186064aaf0a583716488129222c7faaa..4d0011457d016daf70c24ed5a28e1ed873d2b5ba 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 15
 | 
			
		||||
WcmeBR>|kW)VBlh4U|^oe-Ut8^L;^?v
 | 
			
		||||
 | 
			
		||||
delta 15
 | 
			
		||||
UcmeBR>|kW)VBlf^f{E;n01`L?MF0Q*
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0404.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0404.lmp
 | 
			
		||||
index d515a5a362e89d28f9cd28dd57c7338c14538824..af549dd86f3dd84956c7c3fbe24759017b21c939 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 16
 | 
			
		||||
XcmZo<Y-Hr%U|?rpVEFfcB1a_v8*c<F
 | 
			
		||||
 | 
			
		||||
delta 16
 | 
			
		||||
UcmZo<Y-Hr%U|?qefr%WI01|xyE&u=k
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0490.lmp b/wadsrc_extra/static/filter/game-heretic/fonts/defsmallfont/0490.lmp
 | 
			
		||||
index 4b98625cbe7f45c201de284354c02281c15ccc99..945b1c6bd28470aebc4d4a39a26de61da93cd312 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 14
 | 
			
		||||
Vcmb=f=HOu9U|?YQ|9>J!F#s7f1Q`GT
 | 
			
		||||
 | 
			
		||||
delta 14
 | 
			
		||||
Vcmb=f=HOu9U|?WiVwlKL3;+;E0v!MV
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0403.png b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0403.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index c6ea83aeeb115b78e29217ea6d6686ef4de817aa..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1196
 | 
			
		||||
zcmd^9!K>V45TEBO<hAJ|Vh)i8jF7_~B1Fw0V1&@-)$|#8DNP}i6e8xZhX^S~2ofY<
 | 
			
		||||
z)J66Xbq|Y1h`5Iw7TrS*D{Ntf9=5RPA}j1+4|}M%g+1({hhC)P_xf-6@y!hUhWX9#
 | 
			
		||||
z&5!S^n`h?nr7M>J;P~{$$t@C(h*3v}#J|w__rr6b{n6DANCZTDCc&pHz#-gx@Ah>9
 | 
			
		||||
z2^`Halx0~Y$MZbPvNTOo6eX*IC^4KsF&x;MWGbRA@i-no9S)xi2D^TLTNIm4XPu_Y
 | 
			
		||||
zIG%^$EC{BaH*wv@wnwH}>-s>`N=50*av@1wQOpG)<N1W+VwMdVrcKj6MR^qEP?QZ|
 | 
			
		||||
z0vKez-3A{maXrK31Q!j?YMhoh>0y&U9j5z1ye-2`FIaWGMefWqdzxBJYz`x15b9;1
 | 
			
		||||
z6~5YWmCTV7TMEsVZ-|aASSqi}oFcK3$n5v~?RLA_Y}V`ba=Dz(=d;;tI-QQk<ECkb
 | 
			
		||||
z!(m<5RaN!-{a&xv?RN7#&$28@k|>J8Fbsmg^E}seZQC|Y(=ZH8(^OTJWx3UAiK3Wb
 | 
			
		||||
z6z$vXjqfj9Z)!Uu)2ei%r|P+^#*!R}Er%Bjj#C&`q-l<t*2TE$jQUw!BvmIWv#^&2
 | 
			
		||||
z-Pp@RHx2B>w<6bQJGyVFuAw-(T;)NLIC*F#zTS2e&y;LUG!#C~f+%*|q3s2x<7%d@
 | 
			
		||||
z=%%FVEyQ@Yc2^VQK`D<?q4d~}LB-O!4sgB3$pp(1(-eIlbsYr(0rmio09F8VfGI!&
 | 
			
		||||
zPy>_zU4RTA2519#0AyukU)wFtW;h&TQD7XS<DjY%6%iV82@T;O1f)6#2mze)zPmN9
 | 
			
		||||
zCO9jxNpav|p<%{9iMd_GY}(Aqr{^y9z=p92Bjfp;xI%0Y3&ar7L=+LB)}d0NCqqXh
 | 
			
		||||
z;%pf*uZpb9)1<|7DQN&QfC#_=5D>63aBE>oN^t>;3d#t=It>5#`}kde1NivXnL|?l
 | 
			
		||||
z>+`erk3^p8;=LPp$d+mL+z#OTA6_Qlo2MsNZy$XZJp6rr_|yHjzr6qBZ(l!r{OjFU
 | 
			
		||||
z#kZK(zU5!)&yOx#{^XlKUw`NBE1w_yb%A^~ca|?+yv%&@2C0VA>t`pwTzmhs{{Z$O
 | 
			
		||||
Ba>@Vz
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0404.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0404.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..cec6e159655acc71a3bea2d48f12112da4b75d78
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 129
 | 
			
		||||
zcmX|(!3}^g3<Fb8WiL=wR8{-s$(sQffB_hQ0T`d+BE;jYixY(gGrQZYT*N9iv5P~T
 | 
			
		||||
q;u6D10%*>YF+{SN##mAcpI2lgUGzSqAiq5+`}?Zh)W0~1@6jIQbr0JB
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0404.png b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0404.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 0e4d9ac52322e0ad145632cc74a3a5d257330a17..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 893
 | 
			
		||||
zcmW-fF{s;C6oyaw28E{vQ#1&wK`A0QAc_VJDrgX?-a~yTM31L{C>oR^iicZJL4yi{
 | 
			
		||||
z2r7zOJg6Xw2MroLXfVWs1`i(G5Q-okoZy0?9y|o<!GkF&ghJu;HgNAf+<Q6yf8hUq
 | 
			
		||||
zx_)HcIsf<^0Pb9UadAWIZMvD;XY~AF`0qCWXK?-S@g=<?0N-P5+eSn|5IBxwS(afK
 | 
			
		||||
zMH3~t$BRsl2S=AJRWf7&=ks^d>D$TVI36F0Vm}=2(sUEYD?++3T>AdP^IFH5Syp2h
 | 
			
		||||
z6J4)Vb*w0bERQ597sX5v5}uDaj`Vs1mJJxjXBd}Z8~_Wzq{AHd_-2E<4mS&2x7anf
 | 
			
		||||
ztZ-3co4=c;r%8OM$i57>BY&N{tIS!Zb{kvM$ea+P3iTq;hMt<aO5(`G>IbIe8ltTU
 | 
			
		||||
zhQg~dCriE4>2x?8_WS*Ax7%zstJSLOy5({?pU>O2old7s)6{i69*@hi9F0bKo@ZH>
 | 
			
		||||
zBuNxSgpe={ec$&y&v6{fvP{#|bzRdmMN#_wz9dNrM$u_7*ayMd^Ouf0v+UY1OU=j?
 | 
			
		||||
zEtZu~>brty^1RyPB$nlwWmC-S;cT2WMN$u=DkEhYj$%J2UK%<{U`L)gaE-v$JX3WI
 | 
			
		||||
zrOv}5adToPfiZAZ-;y0&GF2hX!YK9z#PLJR^>oWo4NKOHK4N^_dE15gqEcq5Soz%0
 | 
			
		||||
zWMUa;*0|f@Vu4kKX^KIBhJm6;VK@Q20oVep0G0qPKm$+#i~ur#7+?V41JKB5UWWsA
 | 
			
		||||
z9ZsiM6d1?ox~OTCA}T`{m7y9`fOh8q1i<~@_qfCD0=o*^6em6wI%dM#m_J6n{h+rE
 | 
			
		||||
z*p<h;aA0o1%zQs5ZV_9=0+AqEh!P?+2Gkmq3JfI*XWvu=P2v=Rr55i|(g73ziJ}ca
 | 
			
		||||
z9|3C<4>qQ>71yw?p^AVsg#2**mrB1sySjMr_`5&utsb1i-4D;6|2ew3e|i7u-GA`)
 | 
			
		||||
zkMpmeoc(<9$**7jVn4qsFB|#z+u!`F-~C&!%5QId`s}0btDBe93*hSV(Z#dRpM3ux
 | 
			
		||||
DKQnIz
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0490.lmp b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0490.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..16033384e9ef18923ca85327569eff6e9eb20461
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 123
 | 
			
		||||
zcmXYpK?;B{3<OgYc7G7sL+jB8_y8Z!2YB@A)&E1>N+Gi>$q*XNEMiw4;uKw6;uep1
 | 
			
		||||
kMFI(EfJlngYALgC*|U?{llAxHEWo(iDml;MKFjzOAAP0|fB*mh
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0490.png b/wadsrc_extra/static/filter/game-hexen/fonts/defsmallfont/0490.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 4af1bb68091ca11c81730a6c549cbc56ec9a452b..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 891
 | 
			
		||||
zcmW-fF{s;C6oyYpsKQf%DH;S7)F~QF(V&2!8Wa$XUaCA)o<bDRpn^h0@Ss5y4NB1<
 | 
			
		||||
z8kL&V1+{oEMT4LoGzjW~3MTj!6*8#c!34J$s)C0M9y}QOhK#2-fqU=ap2PXhf&YJY
 | 
			
		||||
z|6IRu^8N_`+&H^;`hdi1Z|=1#<h^`({v6;6-2d$1UGhbs*&byW1|o7C$1n^{(-cLC
 | 
			
		||||
za-SD^Y@h0}U@C$x@v6Y#V)44FE@!jDbh^*7-DuRs@g@vczTbLY<2Xy(u1#~U>!qsB
 | 
			
		||||
z6eX9WsVHWGFy{HR-%mI$V%d;k{9bQJ(=J6h6lGDA37`XLWSPSbUv02!akIpAjctid
 | 
			
		||||
zj>`$w>FX*!&cc1}?<U@M?5tC3m6%Oz)S+Gl+RRsTPsv<)WJ`%9MyBBF16SiMwQtCr
 | 
			
		||||
zDzcKm2z>8&Jnr}V-EP-)-Da~{tyXQ@HchiwEb6+hs;Vr@q9~@*>0~k)kH=}6CP@-S
 | 
			
		||||
zQ4j>a?|Yu-IF4=GrfKTBu4$U0D6%YzqBs}~c%F|i2#&+y&UM$e)0oy=Hwsmo$Z9Ie
 | 
			
		||||
zp&)wvz~cHE%St_lr)idI%4|`L=F_CiqGA-}i9d<Gap<JJ9eZZv8iB11E!8z-TazqR
 | 
			
		||||
zEK)CvtkgFmR~=fCqYI|OYZ4bHUJ%+t-*i0PvK8HwR9%qO0b+RQ?Cnx}k&E-VpF7M*
 | 
			
		||||
zqe20Q*4TBpTw<PM9HZ-^s$##707rmV09$|+Km$+%lmI!v7$5-%0fqn$0FjL7wclgg
 | 
			
		||||
zVpU<5VHl!ip)3;@5ezv5Ll^`=x>Eojz<M+H(BXE8ZH{$}GY2yT6Yer(4?%A?>}_3o
 | 
			
		||||
zWm7LqSm-d<-tLK8#2PU}^bvJL9uZ0v3K=FMjCf+sfhKY?&xjmNM!dC>0w4nL04xAW
 | 
			
		||||
z0u~zX4U9=Eu3=q39)Mr^{_ns2@HZ)ce0KWD!zcfEkFI`wadG?Ge=ly|{BHI5Px|Eg
 | 
			
		||||
zv+v)Pe!l$gj|U%q`TXYN>tFr&^46!HfAGyae_j0opt|>-e(R@SKOzJ;yL*26%biD0
 | 
			
		||||
F{|BW2ZJ7W7
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,70 @@
 | 
			
		||||
From 91930dfe53d6ca1432c9e58cb108124e5b3ea5b0 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Mon, 5 Dec 2022 12:29:03 +0100
 | 
			
		||||
Subject: [PATCH 05/51] - fixed GC::FullGC not collecting everything anymore.
 | 
			
		||||
 | 
			
		||||
With the delayed handling of internal references of destroyed objects the function now returned without making sure that it really got everything.
 | 
			
		||||
Repeating until it cannot delete anything new anymore makes it work again as intended.
 | 
			
		||||
---
 | 
			
		||||
 src/common/objects/dobjgc.cpp | 40 ++++++++++++++++++++---------------
 | 
			
		||||
 1 file changed, 23 insertions(+), 17 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/objects/dobjgc.cpp b/src/common/objects/dobjgc.cpp
 | 
			
		||||
index 34199efff..9baffc3a3 100644
 | 
			
		||||
--- a/src/common/objects/dobjgc.cpp
 | 
			
		||||
+++ b/src/common/objects/dobjgc.cpp
 | 
			
		||||
@@ -550,28 +550,34 @@ void Step()
 | 
			
		||||
 
 | 
			
		||||
 void FullGC()
 | 
			
		||||
 {
 | 
			
		||||
-	if (State <= GCS_Propagate)
 | 
			
		||||
+	bool ContinueCheck = true;
 | 
			
		||||
+	while (ContinueCheck)
 | 
			
		||||
 	{
 | 
			
		||||
-		// Reset sweep mark to sweep all elements (returning them to white)
 | 
			
		||||
-		SweepPos = &Root;
 | 
			
		||||
-		// Reset other collector lists
 | 
			
		||||
-		Gray = nullptr;
 | 
			
		||||
-		State = GCS_Sweep;
 | 
			
		||||
-	}
 | 
			
		||||
-	// Finish any pending GC stages
 | 
			
		||||
-	while (State != GCS_Pause)
 | 
			
		||||
-	{
 | 
			
		||||
-		SingleStep();
 | 
			
		||||
-	}
 | 
			
		||||
-	// Loop until everything that can be destroyed and freed is
 | 
			
		||||
-	do
 | 
			
		||||
-	{
 | 
			
		||||
-		MarkRoot();
 | 
			
		||||
+		ContinueCheck = false;
 | 
			
		||||
+		if (State <= GCS_Propagate)
 | 
			
		||||
+		{
 | 
			
		||||
+			// Reset sweep mark to sweep all elements (returning them to white)
 | 
			
		||||
+			SweepPos = &Root;
 | 
			
		||||
+			// Reset other collector lists
 | 
			
		||||
+			Gray = nullptr;
 | 
			
		||||
+			State = GCS_Sweep;
 | 
			
		||||
+		}
 | 
			
		||||
+		// Finish any pending GC stages
 | 
			
		||||
 		while (State != GCS_Pause)
 | 
			
		||||
 		{
 | 
			
		||||
 			SingleStep();
 | 
			
		||||
 		}
 | 
			
		||||
-	} while (HadToDestroy);
 | 
			
		||||
+		// Loop until everything that can be destroyed and freed is
 | 
			
		||||
+		do
 | 
			
		||||
+		{
 | 
			
		||||
+			MarkRoot();
 | 
			
		||||
+			while (State != GCS_Pause)
 | 
			
		||||
+			{
 | 
			
		||||
+				SingleStep();
 | 
			
		||||
+			}
 | 
			
		||||
+			ContinueCheck |= HadToDestroy;
 | 
			
		||||
+		} while (HadToDestroy);
 | 
			
		||||
+	}
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,55 @@
 | 
			
		||||
From 50c0860dd6dd34c9aeff63e8cc348ecdc103f498 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Mon, 5 Dec 2022 15:05:08 -0300
 | 
			
		||||
Subject: [PATCH 06/51] Fix wrong assumptions about actor initialization in
 | 
			
		||||
 Map/MapIterator
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/types.cpp | 10 ----------
 | 
			
		||||
 1 file changed, 10 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/types.cpp b/src/common/scripting/core/types.cpp
 | 
			
		||||
index 3054335ac..838275dad 100644
 | 
			
		||||
--- a/src/common/scripting/core/types.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/types.cpp
 | 
			
		||||
@@ -2399,10 +2399,6 @@ void PMap::Construct(void * addr) const {
 | 
			
		||||
 
 | 
			
		||||
 void PMap::InitializeValue(void *addr, const void *def) const
 | 
			
		||||
 {
 | 
			
		||||
-	if (def != nullptr)
 | 
			
		||||
-	{
 | 
			
		||||
-		I_Error("Map cannot have default values");
 | 
			
		||||
-	}
 | 
			
		||||
 	Construct(addr);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -2475,7 +2471,6 @@ void PMap::DestroyValue(void *addr) const
 | 
			
		||||
 
 | 
			
		||||
 void PMap::SetDefaultValue(void *base, unsigned offset, TArray<FTypeAndOffset> *special)
 | 
			
		||||
 {
 | 
			
		||||
-	assert(!(base && special));
 | 
			
		||||
 	if (base != nullptr)
 | 
			
		||||
 	{
 | 
			
		||||
 		Construct(((uint8_t*)base)+offset); // is this needed? string/dynarray do this initialization if base != nullptr, but their initialization doesn't need to allocate
 | 
			
		||||
@@ -2868,10 +2863,6 @@ void PMapIterator::Construct(void * addr) const {
 | 
			
		||||
 
 | 
			
		||||
 void PMapIterator::InitializeValue(void *addr, const void *def) const
 | 
			
		||||
 {
 | 
			
		||||
-	if (def != nullptr)
 | 
			
		||||
-	{
 | 
			
		||||
-		I_Error("Map cannot have default values");
 | 
			
		||||
-	}
 | 
			
		||||
 	Construct(addr);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -2944,7 +2935,6 @@ void PMapIterator::DestroyValue(void *addr) const
 | 
			
		||||
 
 | 
			
		||||
 void PMapIterator::SetDefaultValue(void *base, unsigned offset, TArray<FTypeAndOffset> *special)
 | 
			
		||||
 {
 | 
			
		||||
-	assert(!(base && special));
 | 
			
		||||
 	if (base != nullptr)
 | 
			
		||||
 	{
 | 
			
		||||
 		Construct(((uint8_t*)base)+offset);
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
From 7fcd1ab5449e451d1eeb2529839f0cfda7a67724 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Boondorl <59555366+Boondorl@users.noreply.github.com>
 | 
			
		||||
Date: Tue, 6 Dec 2022 06:02:28 -0500
 | 
			
		||||
Subject: [PATCH 07/51] Fixed IsActorPlayingSound's default argument
 | 
			
		||||
 | 
			
		||||
Now properly passes the invalid sound id.
 | 
			
		||||
---
 | 
			
		||||
 wadsrc/static/zscript/actors/actor.zs | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc/static/zscript/actors/actor.zs b/wadsrc/static/zscript/actors/actor.zs
 | 
			
		||||
index 4fbc2e761..978fc34ab 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/actors/actor.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/actors/actor.zs
 | 
			
		||||
@@ -1129,7 +1129,7 @@ class Actor : Thinker native
 | 
			
		||||
 	native void A_StopSounds(int chanmin, int chanmax);
 | 
			
		||||
 	deprecated("2.3", "Use A_StartSound() instead") native void A_PlaySoundEx(sound whattoplay, name slot, bool looping = false, int attenuation = 0);
 | 
			
		||||
 	deprecated("2.3", "Use A_StopSound() instead") native void A_StopSoundEx(name slot);
 | 
			
		||||
-	native clearscope bool IsActorPlayingSound(int channel, Sound snd = 0);
 | 
			
		||||
+	native clearscope bool IsActorPlayingSound(int channel, Sound snd = -1);
 | 
			
		||||
 	native void A_SeekerMissile(int threshold, int turnmax, int flags = 0, int chance = 50, int distance = 10);
 | 
			
		||||
 	native action state A_Jump(int chance, statelabel label, ...);
 | 
			
		||||
 	native Actor A_SpawnProjectile(class<Actor> missiletype, double spawnheight = 32, double spawnofs_xy = 0, double angle = 0, int flags = 0, double pitch = 0, int ptr = AAPTR_TARGET);
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
From 1fcc6826eada90cd550398376ecac9bf582aed2f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: "alexey.lysiuk" <alexey.lysiuk@gmail.com>
 | 
			
		||||
Date: Sun, 11 Dec 2022 17:15:09 +0200
 | 
			
		||||
Subject: [PATCH 08/51] - removed clangformat from discord-rpc
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 libraries/discordrpc/src/CMakeLists.txt | 4 ----
 | 
			
		||||
 1 file changed, 4 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/libraries/discordrpc/src/CMakeLists.txt b/libraries/discordrpc/src/CMakeLists.txt
 | 
			
		||||
index 18c3009e2..34aca1e4b 100644
 | 
			
		||||
--- a/libraries/discordrpc/src/CMakeLists.txt
 | 
			
		||||
+++ b/libraries/discordrpc/src/CMakeLists.txt
 | 
			
		||||
@@ -118,10 +118,6 @@ if (${BUILD_SHARED_LIBS})
 | 
			
		||||
     target_compile_definitions(discord-rpc PRIVATE -DDISCORD_BUILDING_SDK)
 | 
			
		||||
 endif(${BUILD_SHARED_LIBS})
 | 
			
		||||
 
 | 
			
		||||
-if (CLANG_FORMAT_CMD)
 | 
			
		||||
-    add_dependencies(discord-rpc clangformat)
 | 
			
		||||
-endif(CLANG_FORMAT_CMD)
 | 
			
		||||
-
 | 
			
		||||
 # install
 | 
			
		||||
 
 | 
			
		||||
 install(
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
From 7cfb72ee4deead7a800fb9c82719bf0c2b86aa9d Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sun, 18 Dec 2022 15:43:54 -0300
 | 
			
		||||
Subject: [PATCH 09/51] Error out instead of crashing for vector out variables
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/vm/vmexec.h | 4 ++++
 | 
			
		||||
 1 file changed, 4 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/vm/vmexec.h b/src/common/scripting/vm/vmexec.h
 | 
			
		||||
index 671bfc081..6716509da 100644
 | 
			
		||||
--- a/src/common/scripting/vm/vmexec.h
 | 
			
		||||
+++ b/src/common/scripting/vm/vmexec.h
 | 
			
		||||
@@ -824,6 +824,10 @@ static int ExecScriptFunc(VMFrameStack *stack, VMReturn *ret, int numret)
 | 
			
		||||
 					assert(b < f->NumRegF);
 | 
			
		||||
 					::new(param) VMValue(®.f[b]);
 | 
			
		||||
 					break;
 | 
			
		||||
+				case REGT_FLOAT | REGT_MULTIREG2 | REGT_ADDROF:
 | 
			
		||||
+				case REGT_FLOAT | REGT_MULTIREG3 | REGT_ADDROF:
 | 
			
		||||
+				case REGT_FLOAT | REGT_MULTIREG4 | REGT_ADDROF:
 | 
			
		||||
+					I_Error("REGT_ADDROF not implemented for vectors\n");
 | 
			
		||||
 				case REGT_FLOAT | REGT_KONST:
 | 
			
		||||
 					assert(b < sfunc->NumKonstF);
 | 
			
		||||
 					::new(param) VMValue(konstf[b]);
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								games-fps/gzdoom/files/0010-Fix-StripLeftRight.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								games-fps/gzdoom/files/0010-Fix-StripLeftRight.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
From f4374179284cc9581c8ec7d629d1e93cfd443b16 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sun, 18 Dec 2022 21:19:18 -0300
 | 
			
		||||
Subject: [PATCH 10/51] Fix StripLeftRight
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/utility/zstring.cpp | 8 ++++----
 | 
			
		||||
 1 file changed, 4 insertions(+), 4 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/utility/zstring.cpp b/src/common/utility/zstring.cpp
 | 
			
		||||
index 8d4d4d119..2b3c4f1fe 100644
 | 
			
		||||
--- a/src/common/utility/zstring.cpp
 | 
			
		||||
+++ b/src/common/utility/zstring.cpp
 | 
			
		||||
@@ -843,7 +843,7 @@ void FString::StripLeftRight ()
 | 
			
		||||
 	}
 | 
			
		||||
 	for (j = max - 1; j >= i; --j)
 | 
			
		||||
 	{
 | 
			
		||||
-		if (Chars[i] < 0 || !isspace((unsigned char)Chars[j]))
 | 
			
		||||
+		if (Chars[j] < 0 || !isspace((unsigned char)Chars[j]))
 | 
			
		||||
 			break;
 | 
			
		||||
 	}
 | 
			
		||||
 	if (i == 0 && j == max - 1)
 | 
			
		||||
@@ -863,7 +863,7 @@ void FString::StripLeftRight ()
 | 
			
		||||
 	{
 | 
			
		||||
 		FStringData *old = Data();
 | 
			
		||||
 		AllocBuffer(j - i + 1);
 | 
			
		||||
-		StrCopy(Chars, old->Chars(), j - i + 1);
 | 
			
		||||
+		StrCopy(Chars, old->Chars() + i, j - i + 1);
 | 
			
		||||
 		old->Release();
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
@@ -899,8 +899,8 @@ void FString::StripLeftRight (const char *charset)
 | 
			
		||||
 	else
 | 
			
		||||
 	{
 | 
			
		||||
 		FStringData *old = Data();
 | 
			
		||||
-		AllocBuffer (j - i);
 | 
			
		||||
-		StrCopy (Chars, old->Chars(), j - i);
 | 
			
		||||
+		AllocBuffer (j - i + 1);
 | 
			
		||||
+		StrCopy (Chars, old->Chars() + i, j - i + 1);
 | 
			
		||||
 		old->Release();
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
From ab0f928bc324750ae5e8f4b92b308fe8e0a00d7e Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
Date: Sun, 1 Jan 2023 22:51:37 -0500
 | 
			
		||||
Subject: [PATCH 11/51] Fixed custom height and width not saving.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
---
 | 
			
		||||
 src/common/menu/resolutionmenu.cpp | 4 ++--
 | 
			
		||||
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/menu/resolutionmenu.cpp b/src/common/menu/resolutionmenu.cpp
 | 
			
		||||
index 6074d018a..1920927bb 100644
 | 
			
		||||
--- a/src/common/menu/resolutionmenu.cpp
 | 
			
		||||
+++ b/src/common/menu/resolutionmenu.cpp
 | 
			
		||||
@@ -83,8 +83,8 @@ CCMD (menu_resolution_commit_changes)
 | 
			
		||||
 		vid_fullscreen = true;
 | 
			
		||||
 		vid_scalemode = 5;
 | 
			
		||||
 		vid_scalefactor = 1.;
 | 
			
		||||
-		vid_scale_customwidth = menu_resolution_custom_width;
 | 
			
		||||
-		vid_scale_customheight = menu_resolution_custom_height;
 | 
			
		||||
+		vid_scale_customwidth = *menu_resolution_custom_width;
 | 
			
		||||
+		vid_scale_customheight = *menu_resolution_custom_height;
 | 
			
		||||
 		vid_scale_custompixelaspect = 1.0;
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,176 @@
 | 
			
		||||
From 112d0060d58dd2a107fed3c5454504f67128d88f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Marisa the Magician <marisa@sayachan.org>
 | 
			
		||||
Date: Wed, 4 Jan 2023 11:56:15 +0100
 | 
			
		||||
Subject: [PATCH 12/51] Prevent important messages from being accidentally
 | 
			
		||||
 filtered.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/engine/serializer.cpp     | 2 +-
 | 
			
		||||
 src/common/filesystem/filesystem.cpp | 4 ++--
 | 
			
		||||
 src/common/menu/menu.cpp             | 2 +-
 | 
			
		||||
 src/common/scripting/vm/vmframe.cpp  | 2 +-
 | 
			
		||||
 src/d_main.cpp                       | 2 +-
 | 
			
		||||
 src/g_level.cpp                      | 2 +-
 | 
			
		||||
 src/p_conversation.cpp               | 2 +-
 | 
			
		||||
 src/playsim/dthinker.cpp             | 4 ++--
 | 
			
		||||
 src/playsim/p_acs.cpp                | 2 +-
 | 
			
		||||
 src/playsim/p_spec.cpp               | 2 +-
 | 
			
		||||
 src/playsim/p_user.cpp               | 2 +-
 | 
			
		||||
 11 files changed, 13 insertions(+), 13 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/engine/serializer.cpp b/src/common/engine/serializer.cpp
 | 
			
		||||
index 808b0fedc..8c68b5a3b 100644
 | 
			
		||||
--- a/src/common/engine/serializer.cpp
 | 
			
		||||
+++ b/src/common/engine/serializer.cpp
 | 
			
		||||
@@ -683,7 +683,7 @@ void FSerializer::ReadObjects(bool hubtravel)
 | 
			
		||||
 							{
 | 
			
		||||
 								r->mObjects.Clamp(size);	// close all inner objects.
 | 
			
		||||
 								// In case something in here throws an error, let's continue and deal with it later.
 | 
			
		||||
-								Printf(PRINT_NONOTIFY, TEXTCOLOR_RED "'%s'\n while restoring %s\n", err.GetMessage(), obj ? obj->GetClass()->TypeName.GetChars() : "invalid object");
 | 
			
		||||
+								Printf(PRINT_NONOTIFY | PRINT_BOLD, TEXTCOLOR_RED "'%s'\n while restoring %s\n", err.GetMessage(), obj ? obj->GetClass()->TypeName.GetChars() : "invalid object");
 | 
			
		||||
 								mErrors++;
 | 
			
		||||
 							}
 | 
			
		||||
 						}
 | 
			
		||||
diff --git a/src/common/filesystem/filesystem.cpp b/src/common/filesystem/filesystem.cpp
 | 
			
		||||
index 21acc4e2f..f18ad5138 100644
 | 
			
		||||
--- a/src/common/filesystem/filesystem.cpp
 | 
			
		||||
+++ b/src/common/filesystem/filesystem.cpp
 | 
			
		||||
@@ -1696,6 +1696,6 @@ CCMD(fs_dir)
 | 
			
		||||
 		auto fnid = fileSystem.GetResourceId(i);
 | 
			
		||||
 		auto length = fileSystem.FileLength(i);
 | 
			
		||||
 		bool hidden = fileSystem.FindFile(fn1) != i;
 | 
			
		||||
-		Printf(PRINT_NONOTIFY, "%s%-64s %-15s (%5d) %10d %s %s\n", hidden ? TEXTCOLOR_RED : TEXTCOLOR_UNTRANSLATED, fn1, fns, fnid, length, container, hidden ? "(h)" : "");
 | 
			
		||||
+		Printf(PRINT_HIGH | PRINT_NONOTIFY, "%s%-64s %-15s (%5d) %10d %s %s\n", hidden ? TEXTCOLOR_RED : TEXTCOLOR_UNTRANSLATED, fn1, fns, fnid, length, container, hidden ? "(h)" : "");
 | 
			
		||||
 	}
 | 
			
		||||
-}
 | 
			
		||||
\ No newline at end of file
 | 
			
		||||
+}
 | 
			
		||||
diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp
 | 
			
		||||
index deee74597..c5890080c 100644
 | 
			
		||||
--- a/src/common/menu/menu.cpp
 | 
			
		||||
+++ b/src/common/menu/menu.cpp
 | 
			
		||||
@@ -925,7 +925,7 @@ void M_Init (void)
 | 
			
		||||
 	catch (CVMAbortException &err)
 | 
			
		||||
 	{
 | 
			
		||||
 		err.MaybePrintMessage();
 | 
			
		||||
-		Printf(PRINT_NONOTIFY, "%s", err.stacktrace.GetChars());
 | 
			
		||||
+		Printf(PRINT_NONOTIFY | PRINT_BOLD, "%s", err.stacktrace.GetChars());
 | 
			
		||||
 		I_FatalError("Failed to initialize menus");
 | 
			
		||||
 	}
 | 
			
		||||
 	M_CreateMenus();
 | 
			
		||||
diff --git a/src/common/scripting/vm/vmframe.cpp b/src/common/scripting/vm/vmframe.cpp
 | 
			
		||||
index 69b47dfd5..a2c972820 100644
 | 
			
		||||
--- a/src/common/scripting/vm/vmframe.cpp
 | 
			
		||||
+++ b/src/common/scripting/vm/vmframe.cpp
 | 
			
		||||
@@ -682,7 +682,7 @@ void CVMAbortException::MaybePrintMessage()
 | 
			
		||||
 	auto m = GetMessage();
 | 
			
		||||
 	if (m != nullptr)
 | 
			
		||||
 	{
 | 
			
		||||
-		Printf(PRINT_NONOTIFY, TEXTCOLOR_RED "%s\n", m);
 | 
			
		||||
+		Printf(PRINT_NONOTIFY | PRINT_BOLD, TEXTCOLOR_RED "%s\n", m);
 | 
			
		||||
 		SetMessage("");
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
diff --git a/src/d_main.cpp b/src/d_main.cpp
 | 
			
		||||
index 12b3fb9ff..5bf8e8928 100644
 | 
			
		||||
--- a/src/d_main.cpp
 | 
			
		||||
+++ b/src/d_main.cpp
 | 
			
		||||
@@ -1237,7 +1237,7 @@ void D_DoomLoop ()
 | 
			
		||||
 		catch (CVMAbortException &error)
 | 
			
		||||
 		{
 | 
			
		||||
 			error.MaybePrintMessage();
 | 
			
		||||
-			Printf(PRINT_NONOTIFY, "%s", error.stacktrace.GetChars());
 | 
			
		||||
+			Printf(PRINT_NONOTIFY | PRINT_BOLD, "%s", error.stacktrace.GetChars());
 | 
			
		||||
 			D_ErrorCleanup();
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
diff --git a/src/g_level.cpp b/src/g_level.cpp
 | 
			
		||||
index 8aa011506..2fbba84f0 100644
 | 
			
		||||
--- a/src/g_level.cpp
 | 
			
		||||
+++ b/src/g_level.cpp
 | 
			
		||||
@@ -1385,7 +1385,7 @@ void FLevelLocals::DoLoadLevel(const FString &nextmapname, int position, bool au
 | 
			
		||||
 	{
 | 
			
		||||
 		FString mapname = nextmapname;
 | 
			
		||||
 		mapname.ToUpper();
 | 
			
		||||
-		Printf(PRINT_NONOTIFY, "\n" TEXTCOLOR_NORMAL "%s\n\n" TEXTCOLOR_BOLD "%s - %s\n\n", console_bar, mapname.GetChars(), LevelName.GetChars());
 | 
			
		||||
+		Printf(PRINT_HIGH | PRINT_NONOTIFY, "\n" TEXTCOLOR_NORMAL "%s\n\n" TEXTCOLOR_BOLD "%s - %s\n\n", console_bar, mapname.GetChars(), LevelName.GetChars());
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	// Set the sky map.
 | 
			
		||||
diff --git a/src/p_conversation.cpp b/src/p_conversation.cpp
 | 
			
		||||
index 13f54e9ab..47d9a896f 100644
 | 
			
		||||
--- a/src/p_conversation.cpp
 | 
			
		||||
+++ b/src/p_conversation.cpp
 | 
			
		||||
@@ -718,7 +718,7 @@ static void TerminalResponse (const char *str)
 | 
			
		||||
 
 | 
			
		||||
 		if (StatusBar != NULL)
 | 
			
		||||
 		{
 | 
			
		||||
-			Printf(PRINT_NONOTIFY, "%s\n", str);
 | 
			
		||||
+			Printf(PRINT_HIGH | PRINT_NONOTIFY, "%s\n", str);
 | 
			
		||||
 			// The message is positioned a bit above the menu choices, because
 | 
			
		||||
 			// merchants can tell you something like this but continue to show
 | 
			
		||||
 			// their dialogue screen. I think most other conversations use this
 | 
			
		||||
diff --git a/src/playsim/dthinker.cpp b/src/playsim/dthinker.cpp
 | 
			
		||||
index 37e135230..86ef7918c 100644
 | 
			
		||||
--- a/src/playsim/dthinker.cpp
 | 
			
		||||
+++ b/src/playsim/dthinker.cpp
 | 
			
		||||
@@ -538,7 +538,7 @@ bool FThinkerList::DoDestroyThinkers()
 | 
			
		||||
 			{
 | 
			
		||||
 				Printf("VM exception in DestroyThinkers:\n");
 | 
			
		||||
 				exception.MaybePrintMessage();
 | 
			
		||||
-				Printf(PRINT_NONOTIFY, "%s", exception.stacktrace.GetChars());
 | 
			
		||||
+				Printf(PRINT_NONOTIFY | PRINT_BOLD, "%s", exception.stacktrace.GetChars());
 | 
			
		||||
 				// forcibly delete this. Cleanup may be incomplete, though.
 | 
			
		||||
 				node->ObjectFlags |= OF_YesReallyDelete;
 | 
			
		||||
 				delete node;
 | 
			
		||||
@@ -546,7 +546,7 @@ bool FThinkerList::DoDestroyThinkers()
 | 
			
		||||
 			}
 | 
			
		||||
 			catch (CRecoverableError &exception)
 | 
			
		||||
 			{
 | 
			
		||||
-				Printf(PRINT_NONOTIFY, "Error in DestroyThinkers: %s\n", exception.GetMessage());
 | 
			
		||||
+				Printf(PRINT_NONOTIFY | PRINT_BOLD, "Error in DestroyThinkers: %s\n", exception.GetMessage());
 | 
			
		||||
 				// forcibly delete this. Cleanup may be incomplete, though.
 | 
			
		||||
 				node->ObjectFlags |= OF_YesReallyDelete;
 | 
			
		||||
 				delete node;
 | 
			
		||||
diff --git a/src/playsim/p_acs.cpp b/src/playsim/p_acs.cpp
 | 
			
		||||
index 01def4758..9ee22264c 100644
 | 
			
		||||
--- a/src/playsim/p_acs.cpp
 | 
			
		||||
+++ b/src/playsim/p_acs.cpp
 | 
			
		||||
@@ -8769,7 +8769,7 @@ scriptwait:
 | 
			
		||||
 					if (type & HUDMSG_LOG)
 | 
			
		||||
 					{
 | 
			
		||||
 						int consolecolor = color >= CR_BRICK && color < NUM_TEXT_COLORS && color != CR_UNTRANSLATED ? color + 'A' : '-';
 | 
			
		||||
-						Printf(PRINT_NONOTIFY, "\n" TEXTCOLOR_ESCAPESTR "%c%s\n%s\n%s\n", consolecolor, console_bar, work.GetChars(), console_bar);
 | 
			
		||||
+						Printf(PRINT_HIGH | PRINT_NONOTIFY, "\n" TEXTCOLOR_ESCAPESTR "%c%s\n%s\n%s\n", consolecolor, console_bar, work.GetChars(), console_bar);
 | 
			
		||||
 					}
 | 
			
		||||
 				}
 | 
			
		||||
 			}
 | 
			
		||||
diff --git a/src/playsim/p_spec.cpp b/src/playsim/p_spec.cpp
 | 
			
		||||
index ab682f171..52760d935 100644
 | 
			
		||||
--- a/src/playsim/p_spec.cpp
 | 
			
		||||
+++ b/src/playsim/p_spec.cpp
 | 
			
		||||
@@ -622,7 +622,7 @@ void P_GiveSecret(FLevelLocals *Level, AActor *actor, bool printmessage, bool pl
 | 
			
		||||
 				C_MidPrint(nullptr, GStrings["SECRETMESSAGE"]);
 | 
			
		||||
 				if (showsecretsector && sectornum >= 0) 
 | 
			
		||||
 				{
 | 
			
		||||
-					Printf(PRINT_NONOTIFY, "Secret found in sector %d\n", sectornum);
 | 
			
		||||
+					Printf(PRINT_HIGH | PRINT_NONOTIFY, "Secret found in sector %d\n", sectornum);
 | 
			
		||||
 				}
 | 
			
		||||
 			}
 | 
			
		||||
 			if (playsound) S_Sound (CHAN_AUTO, CHANF_UI, "misc/secret", 1, ATTN_NORM);
 | 
			
		||||
diff --git a/src/playsim/p_user.cpp b/src/playsim/p_user.cpp
 | 
			
		||||
index 0fa33a90e..0bc45d1f4 100644
 | 
			
		||||
--- a/src/playsim/p_user.cpp
 | 
			
		||||
+++ b/src/playsim/p_user.cpp
 | 
			
		||||
@@ -422,7 +422,7 @@ void player_t::SetLogText (const char *text)
 | 
			
		||||
 	if (mo && mo->CheckLocalView())
 | 
			
		||||
 	{
 | 
			
		||||
 		// Print log text to console
 | 
			
		||||
-		Printf(PRINT_NONOTIFY, TEXTCOLOR_GOLD "%s\n", LogText[0] == '$' ? GStrings(text + 1) : text);
 | 
			
		||||
+		Printf(PRINT_HIGH | PRINT_NONOTIFY, TEXTCOLOR_GOLD "%s\n", LogText[0] == '$' ? GStrings(text + 1) : text);
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,43 @@
 | 
			
		||||
From 6333e4fefb5c41971ca0d4bf97648f21b693e8f7 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Sat, 7 Jan 2023 16:15:32 +0100
 | 
			
		||||
Subject: [PATCH 13/51] - fixed buffer size checks for raw textures.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/textures/formats/rawpagetexture.cpp | 6 +++---
 | 
			
		||||
 1 file changed, 3 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/textures/formats/rawpagetexture.cpp b/src/common/textures/formats/rawpagetexture.cpp
 | 
			
		||||
index 1ee29e13d..8f1a357b2 100644
 | 
			
		||||
--- a/src/common/textures/formats/rawpagetexture.cpp
 | 
			
		||||
+++ b/src/common/textures/formats/rawpagetexture.cpp
 | 
			
		||||
@@ -94,7 +94,7 @@ bool CheckIfRaw(FileReader & data, int desiredsize)
 | 
			
		||||
 			{
 | 
			
		||||
 				gapAtStart = false;
 | 
			
		||||
 			}
 | 
			
		||||
-			else if (ofs >= 64000-1)	// Need one byte for an empty column
 | 
			
		||||
+			else if (ofs >= desiredsize-1)	// Need one byte for an empty column
 | 
			
		||||
 			{
 | 
			
		||||
 				return true;
 | 
			
		||||
 			}
 | 
			
		||||
@@ -102,7 +102,7 @@ bool CheckIfRaw(FileReader & data, int desiredsize)
 | 
			
		||||
 			{
 | 
			
		||||
 				// Ensure this column does not extend beyond the end of the patch
 | 
			
		||||
 				const uint8_t *foo2 = (const uint8_t *)foo;
 | 
			
		||||
-				while (ofs < 64000)
 | 
			
		||||
+				while (ofs < desiredsize)
 | 
			
		||||
 				{
 | 
			
		||||
 					if (foo2[ofs] == 255)
 | 
			
		||||
 					{
 | 
			
		||||
@@ -110,7 +110,7 @@ bool CheckIfRaw(FileReader & data, int desiredsize)
 | 
			
		||||
 					}
 | 
			
		||||
 					ofs += foo2[ofs+1] + 4;
 | 
			
		||||
 				}
 | 
			
		||||
-				if (ofs >= 64000)
 | 
			
		||||
+				if (ofs >= desiredsize)
 | 
			
		||||
 				{
 | 
			
		||||
 					return true;
 | 
			
		||||
 				}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
From f729f2375fa9f18bfd3cc4fcec8523a0a8e8a325 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Kevin Caccamo <kevin@ciinet.org>
 | 
			
		||||
Date: Wed, 11 Jan 2023 21:43:35 -0500
 | 
			
		||||
Subject: [PATCH 14/51] Impel people to include demo mods in bug reports
 | 
			
		||||
 | 
			
		||||
Since small demo mods are the preferred way for GZDoom developers to reproduce bugs
 | 
			
		||||
---
 | 
			
		||||
 .github/ISSUE_TEMPLATE/bug_report.yml | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
 | 
			
		||||
index d50d02070..7ed0af7ce 100644
 | 
			
		||||
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
 | 
			
		||||
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
 | 
			
		||||
@@ -82,7 +82,7 @@ body:
 | 
			
		||||
     id: description
 | 
			
		||||
     attributes:
 | 
			
		||||
       label: A clear and concise description of what the bug is.
 | 
			
		||||
-      description: Describe what happens, what software were you running? _Include screenshot if possible_
 | 
			
		||||
+      description: Describe what happens, what software were you running? _Include a small mod demonstrating the bug, or a screenshot if possible_
 | 
			
		||||
       placeholder: "How & When does this occur?"
 | 
			
		||||
     validations:
 | 
			
		||||
       required: true
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
From f49d4b9766930fcd78975cf4f2276a9c40113c47 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
Date: Thu, 12 Jan 2023 03:39:56 -0600
 | 
			
		||||
Subject: [PATCH 15/51] Fixed a bug where static events would fail to halt
 | 
			
		||||
 propagation.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
---
 | 
			
		||||
 src/events.cpp | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/events.cpp b/src/events.cpp
 | 
			
		||||
index 315b2d8b8..28caa1c38 100755
 | 
			
		||||
--- a/src/events.cpp
 | 
			
		||||
+++ b/src/events.cpp
 | 
			
		||||
@@ -511,7 +511,7 @@ bool EventManager::Responder(const event_t* ev)
 | 
			
		||||
 				return true; // event was processed
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
-	if (ShouldCallStatic(false)) uiProcessorsFound = staticEventManager.Responder(ev);
 | 
			
		||||
+	if (ShouldCallStatic(false) && staticEventManager.Responder(ev)) return true;
 | 
			
		||||
 
 | 
			
		||||
 	return false;
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
From b11754ec21f7b59c27c703fad2beccabc952d945 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Fri, 13 Jan 2023 19:37:20 -0300
 | 
			
		||||
Subject: [PATCH 16/51] Fix MapIterator<X, String>::GetValue
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/maps.cpp | 6 ++++--
 | 
			
		||||
 1 file changed, 4 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/maps.cpp b/src/common/scripting/core/maps.cpp
 | 
			
		||||
index 28fda643e..68eab6d3d 100644
 | 
			
		||||
--- a/src/common/scripting/core/maps.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/maps.cpp
 | 
			
		||||
@@ -438,10 +438,12 @@ template<typename I> void MapIteratorSetValue(I * self, expand_types_vm<typename
 | 
			
		||||
         PARAM_SELF_STRUCT_PROLOGUE( FMapIterator_I32_Str ); \
 | 
			
		||||
         ACTION_RETURN_INT( MapIteratorGetKey(self) ); \
 | 
			
		||||
     } \
 | 
			
		||||
-    DEFINE_ACTION_FUNCTION_NATIVE( FMapIterator_I32_Str , GetValue , MapIteratorGetValue< FMapIterator_I32_Str > ) \
 | 
			
		||||
+    DEFINE_ACTION_FUNCTION_NATIVE( FMapIterator_I32_Str , GetValue , MapIteratorGetValueString< FMapIterator_I32_Str > ) \
 | 
			
		||||
     { \
 | 
			
		||||
         PARAM_SELF_STRUCT_PROLOGUE( FMapIterator_I32_Str ); \
 | 
			
		||||
-        ACTION_RETURN_STRING( MapIteratorGetValue(self) ); \
 | 
			
		||||
+        FString out; \
 | 
			
		||||
+        MapIteratorGetValueString(self , out); \
 | 
			
		||||
+        ACTION_RETURN_STRING( out ); \
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
 #define DEF_MAP_IT_S_S() \
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
From d279b71b79de02f684525fa660b85778f2d72e63 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Sally Coolatta <tehrealsalt@gmail.com>
 | 
			
		||||
Date: Mon, 16 Jan 2023 22:32:59 -0500
 | 
			
		||||
Subject: [PATCH 17/51] Fix two different portable names
 | 
			
		||||
 | 
			
		||||
M_GetConfigPath uses GAMENAMELOWERCASE_portable.ini, but IsPortable() checks for GAMENAME_portable.ini. Doesn't have much of an impact on base GZDoom since it's case-insensitive, but can matter for engine forks -- IMO it should just be consistent either way.
 | 
			
		||||
---
 | 
			
		||||
 src/common/platform/win32/i_specialpaths.cpp | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/platform/win32/i_specialpaths.cpp b/src/common/platform/win32/i_specialpaths.cpp
 | 
			
		||||
index 0b29a28c5..3bfee00ea 100644
 | 
			
		||||
--- a/src/common/platform/win32/i_specialpaths.cpp
 | 
			
		||||
+++ b/src/common/platform/win32/i_specialpaths.cpp
 | 
			
		||||
@@ -90,7 +90,7 @@ bool IsPortable()
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	// A portable INI means that this storage location should also be portable if the file can be written to.
 | 
			
		||||
-	FStringf path("%s" GAMENAME "_portable.ini", progdir.GetChars());
 | 
			
		||||
+	FStringf path("%s" GAMENAMELOWERCASE "_portable.ini", progdir.GetChars());
 | 
			
		||||
 	if (FileExists(path))
 | 
			
		||||
 	{
 | 
			
		||||
 		file = CreateFile(path.WideString().c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL,
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,40 @@
 | 
			
		||||
From f759dd3d5cb849f713314769c56d36f33375f969 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
 | 
			
		||||
Date: Tue, 17 Jan 2023 02:35:42 -0500
 | 
			
		||||
Subject: [PATCH 18/51] - indicate in the startup window title when GZDoom is
 | 
			
		||||
 compiled for ARM64 Windows
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/platform/win32/i_main.cpp       | 2 ++
 | 
			
		||||
 src/common/platform/win32/i_mainwindow.cpp | 2 ++
 | 
			
		||||
 2 files changed, 4 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/platform/win32/i_main.cpp b/src/common/platform/win32/i_main.cpp
 | 
			
		||||
index f153a1dac..c28a3ff4b 100644
 | 
			
		||||
--- a/src/common/platform/win32/i_main.cpp
 | 
			
		||||
+++ b/src/common/platform/win32/i_main.cpp
 | 
			
		||||
@@ -85,6 +85,8 @@
 | 
			
		||||
 // The main window's title.
 | 
			
		||||
 #ifdef _M_X64
 | 
			
		||||
 #define X64 " 64-bit"
 | 
			
		||||
+#elif _M_ARM64
 | 
			
		||||
+#define X64 " ARM-64"
 | 
			
		||||
 #else
 | 
			
		||||
 #define X64 ""
 | 
			
		||||
 #endif
 | 
			
		||||
diff --git a/src/common/platform/win32/i_mainwindow.cpp b/src/common/platform/win32/i_mainwindow.cpp
 | 
			
		||||
index 3395ec430..5b246e457 100644
 | 
			
		||||
--- a/src/common/platform/win32/i_mainwindow.cpp
 | 
			
		||||
+++ b/src/common/platform/win32/i_mainwindow.cpp
 | 
			
		||||
@@ -17,6 +17,8 @@
 | 
			
		||||
 
 | 
			
		||||
 #ifdef _M_X64
 | 
			
		||||
 #define X64 " 64-bit"
 | 
			
		||||
+#elif _M_ARM64
 | 
			
		||||
+#define X64 " ARM-64"
 | 
			
		||||
 #else
 | 
			
		||||
 #define X64 ""
 | 
			
		||||
 #endif
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,76 @@
 | 
			
		||||
From 5420cc2a601b15a132bacbc245eb231a630316cc Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Blue Shadow <blueshadow_941@yahoo.com>
 | 
			
		||||
Date: Wed, 18 Jan 2023 06:59:11 +0300
 | 
			
		||||
Subject: [PATCH 19/51] - alt HUD: use `NewSmallFont` for drawing player's
 | 
			
		||||
 coordinates if `ui_generic` is enabled
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 wadsrc/static/zscript/ui/statusbar/alt_hud.zs | 22 ++++++++++---------
 | 
			
		||||
 1 file changed, 12 insertions(+), 10 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc/static/zscript/ui/statusbar/alt_hud.zs b/wadsrc/static/zscript/ui/statusbar/alt_hud.zs
 | 
			
		||||
index 8054e3d07..69939da27 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/ui/statusbar/alt_hud.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/ui/statusbar/alt_hud.zs
 | 
			
		||||
@@ -718,9 +718,10 @@ class AltHud ui
 | 
			
		||||
 	//
 | 
			
		||||
 	//---------------------------------------------------------------------------
 | 
			
		||||
 	
 | 
			
		||||
-	void DrawCoordinateEntry(int xpos, int ypos, String coordstr)
 | 
			
		||||
+	void DrawCoordinateEntry(int xpos, int ypos, String coordstr, Font fnt = nullptr)
 | 
			
		||||
 	{
 | 
			
		||||
-		screen.DrawText(SmallFont, hudcolor_xyco, xpos, ypos, coordstr,
 | 
			
		||||
+		if (fnt == nullptr) fnt = SmallFont;
 | 
			
		||||
+		screen.DrawText(fnt, hudcolor_xyco, xpos, ypos, coordstr,
 | 
			
		||||
 						 DTA_KeepRatio, true,
 | 
			
		||||
 						 DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight);
 | 
			
		||||
 	}
 | 
			
		||||
@@ -729,7 +730,8 @@ class AltHud ui
 | 
			
		||||
 	{
 | 
			
		||||
 		Vector3 pos;
 | 
			
		||||
 		String coordstr;
 | 
			
		||||
-		int h = SmallFont.GetHeight();
 | 
			
		||||
+		let fnt = generic_ui ? NewSmallFont : SmallFont;
 | 
			
		||||
+		int h = fnt.GetHeight();
 | 
			
		||||
 		let mo = CPlayer.mo;
 | 
			
		||||
 		
 | 
			
		||||
 		if (!map_point_coordinates || !automapactive) 
 | 
			
		||||
@@ -742,7 +744,7 @@ class AltHud ui
 | 
			
		||||
 			pos.z = Level.PointInSector(pos.xy).floorplane.ZatPoint(pos.xy);
 | 
			
		||||
 		}
 | 
			
		||||
 
 | 
			
		||||
-		int xpos = hudwidth - SmallFont.StringWidth("X: -00000")-6;
 | 
			
		||||
+		int xpos = hudwidth - fnt.StringWidth("X: -00000")-6;
 | 
			
		||||
 		int ypos = 18;
 | 
			
		||||
 
 | 
			
		||||
 		if (withmapname)
 | 
			
		||||
@@ -761,20 +763,20 @@ class AltHud ui
 | 
			
		||||
 			ypos += 2 * hh + h;
 | 
			
		||||
 		}
 | 
			
		||||
 		
 | 
			
		||||
-		DrawCoordinateEntry(xpos, ypos, String.Format("X: %.0f", pos.X));
 | 
			
		||||
+		DrawCoordinateEntry(xpos, ypos, String.Format("X: %.0f", pos.X), fnt);
 | 
			
		||||
 		ypos += h;
 | 
			
		||||
-		DrawCoordinateEntry(xpos, ypos, String.Format("Y: %.0f", pos.Y));
 | 
			
		||||
+		DrawCoordinateEntry(xpos, ypos, String.Format("Y: %.0f", pos.Y), fnt);
 | 
			
		||||
 		ypos += h;
 | 
			
		||||
-		DrawCoordinateEntry(xpos, ypos, String.Format("Z: %.0f", pos.Z));
 | 
			
		||||
+		DrawCoordinateEntry(xpos, ypos, String.Format("Z: %.0f", pos.Z), fnt);
 | 
			
		||||
 		ypos += h;
 | 
			
		||||
 
 | 
			
		||||
 		if (hud_showangles)
 | 
			
		||||
 		{
 | 
			
		||||
-			DrawCoordinateEntry(xpos, ypos, String.Format("Y: %.0f", Actor.Normalize180(mo.Angle)));
 | 
			
		||||
+			DrawCoordinateEntry(xpos, ypos, String.Format("Y: %.0f", Actor.Normalize180(mo.Angle)), fnt);
 | 
			
		||||
 			ypos += h;
 | 
			
		||||
-			DrawCoordinateEntry(xpos, ypos, String.Format("P: %.0f", Actor.Normalize180(mo.Pitch)));
 | 
			
		||||
+			DrawCoordinateEntry(xpos, ypos, String.Format("P: %.0f", Actor.Normalize180(mo.Pitch)), fnt);
 | 
			
		||||
 			ypos += h;
 | 
			
		||||
-			DrawCoordinateEntry(xpos, ypos, String.Format("R: %.0f", Actor.Normalize180(mo.Roll)));
 | 
			
		||||
+			DrawCoordinateEntry(xpos, ypos, String.Format("R: %.0f", Actor.Normalize180(mo.Roll)), fnt);
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
 	
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,502 @@
 | 
			
		||||
From fac072dbfe7a3d7184c0daa9ec921eae7c77b98a Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Fri, 20 Jan 2023 19:43:18 +0100
 | 
			
		||||
Subject: [PATCH 20/51] - new characters for Doom's SmallFont and BigFont.
 | 
			
		||||
 | 
			
		||||
This covers all somewhat relevant languages using the Latin alphabet for these two fonts.
 | 
			
		||||
---
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0100.lmp | Bin 0 -> 320 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/010A.lmp | Bin 0 -> 310 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0112.lmp | Bin 0 -> 321 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0116.lmp | Bin 0 -> 299 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/011E.lmp | Bin 0 -> 411 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0120.lmp | Bin 0 -> 371 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0122.lmp | Bin 0 -> 365 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0126.lmp | Bin 0 -> 149 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/012A.lmp | Bin 0 -> 200 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0136.lmp | Bin 0 -> 347 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/013B.lmp | Bin 0 -> 209 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/013D.lmp | Bin 0 -> 219 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0154.lmp | Bin 0 -> 331 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/016A.lmp | Bin 0 -> 350 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0172.lmp | Bin 0 -> 320 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0174.lmp | Bin 0 -> 356 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/0176.lmp | Bin 0 -> 302 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/1E80.lmp | Bin 0 -> 359 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/1E82.lmp | Bin 0 -> 359 bytes
 | 
			
		||||
 .../static/filter/doom.id/fonts/bigfont/1EF2.lmp | Bin 0 -> 307 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0122.png   | Bin 0 -> 1162 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/012E.png   | Bin 0 -> 1140 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0136.png   | Bin 0 -> 1164 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/013B.png   | Bin 0 -> 1158 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/013D.png   | Bin 0 -> 1152 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0172.png   | Bin 0 -> 1163 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/040D.png   | Bin 0 -> 1178 bytes
 | 
			
		||||
 27 files changed, 0 insertions(+), 0 deletions(-)
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0100.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/010A.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0112.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0116.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/011E.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0120.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0122.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0126.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/012A.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0136.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/013B.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/013D.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0154.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/016A.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0172.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0174.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/0176.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/1E80.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/1E82.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/bigfont/1EF2.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.png
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0100.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0100.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..ec5879e8597a1387e674e77db87a5f14b63e9207
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 320
 | 
			
		||||
zcmYL@%MHRX5JU|TzW~aSB4~pnmk<TZT1%D#r#;aGHBbU2Py$6z1SP<;!^hUMW_EXM
 | 
			
		||||
zSEe$?6lTM@g*|j|f-_v;3OBgJ1D;R}j9I}N7KNtuDo32&qoxy76r1#TmbABZEx5rD
 | 
			
		||||
zr=v2LY}-WK%PdvhLACSFy1p`3-J`sdpWg+QkX%a8C*gRY4arw|zNX!Fd8DtAsk;y)
 | 
			
		||||
lgczykIdYA4ERl5iHycGf+u84ZWc3&cezO0s_YdTcya5$rWuyQA
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/010A.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/010A.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..1e951e746c6b7e9d3b6d2aa9a4c73896fb94bee9
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 310
 | 
			
		||||
zcmY+8(FwvZ5QeWBrAQGUT){nj^|6YDKp-?$g*<l!w{QuUa0$0?f%shr1rNU5<-h+f
 | 
			
		||||
zS<6O5jO;lN(7_c(c)$~0@P-e3VP1)BVF$H|InuHw2k!$ZEmqVn$55`;`@Ro>b}|j!
 | 
			
		||||
zfzacQP|b9Q%5J!6>9S8)X)h|q*znF-hgIx)8bxef5syAby-d!smBALj%9@kWqWDge
 | 
			
		||||
S!0?~LmJv%MkLb75p^<**nqFZ5
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0112.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0112.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..593e1a6d9841a459c93ae1d69769e1184d5187c0
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 321
 | 
			
		||||
zcmY+9%?-jZ424}NKjP5d8G;$Oax775S*>Ih%Ecov1Vb<cLoftGut0f^C@PV@Sbp()
 | 
			
		||||
zRthSKXij_F2T+3xxPlwFg9mtm7kGnZMzjSxu*xl+VX;Q-R6CR*-<b6(BHZ+7vzgDh
 | 
			
		||||
z*f6tjr4Xq!le4Kn;ur#qNvk`HqRLMD)sAX{cLrhN4JWgR1;0FaJtso1#yog^=5G#r
 | 
			
		||||
cQ}21>oO_Y&S#i|hZIPv*aV;zSBhxc{05-K}xc~qF
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0116.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0116.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..a1d8302f127d2b1a79371be1e3668161142c870e
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 299
 | 
			
		||||
zcmX|*%?-jZ3`SkGh##T$&NN&(mMFEXR<a7^;&WGE1$JNvhF}PG;8s2dN~9OdUz{hG
 | 
			
		||||
zR1r~5d)x=mfD0JG72LobJirsYz#FVHq8(Tkmd><Tq4ugh%2aI31{D!*hhN(=vv93w
 | 
			
		||||
z^R1Z*dX6DrJ_S)!+365urAq~G41#~63c=aJ$t=Q|M4mOhxg#R4-R0R))69SFt4pox
 | 
			
		||||
We9U)nuY2MgbdV@$=fJm^&-4MeZeW`L
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/011E.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/011E.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..83e4b77ca55a122cf32a433dbf6502dd6340be63
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 411
 | 
			
		||||
zcmZXP?P<e642CaF-F!5KW`M4d8S?Ya#+YEy>m4QqK}N{$ERZp>MyKc!-N1e1IJA(1
 | 
			
		||||
z$Fkm6camP++BsLaE#Cm|aDXG6;R0Xq4L?v!oO^=}lyHC(EFN_@{cKLmDJ4Sxv{dbO
 | 
			
		||||
ztw>XKq{TC$Tu)2x9>}#=aUsT-QqFmA@>I3H>e6wKH@Z*L=}~=P5QV}QVw=ras5a&_
 | 
			
		||||
zRGS)1oiIsV!YFzf#WGSsa#tA`dO5R(TJih$u2q|{lPH5hkJ}`H*Ua-Fgkh<1dP?e>
 | 
			
		||||
Z<-Py6FHU4YyCk+ZooppLV|V-Qe*t??el-99
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0120.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0120.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..b1e8d26071e682cdd8bebd2a602fd467c031e3f3
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 371
 | 
			
		||||
zcmYL^;cdb&5JnAZ2+$&6h7Q3BNd03sN>P*(mfZ*>OC6yrbcJrwCAtJl@H>4+onYzZ
 | 
			
		||||
z?3XWh&c<wwF@@RlbZ~?Z_=GR`h9CHa3tVA6G3FU|@B$td59zl0a!!pQ1WG?!rqng9
 | 
			
		||||
z$f4>u7LQ2zU#*^>h<fish%uhBkd7#yb!WtMs{4ZG!uu7qjpzwOn)j3rL{+*$zA?7W
 | 
			
		||||
z(n?OgdJ-JQ<h`pSzbth|s@V2ANu%l-@iIDEsI$(w+s(<<gR|BS&T|pXiT+jYr_J*W
 | 
			
		||||
G-S&UilX43H
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0122.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0122.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..7305bbc688acf44fd21f046f9efebeecad51d86d
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 365
 | 
			
		||||
zcmX|+;fVq<5QU>Cw~B}jToD#=;Li*q%d*3TgvEn^9oT{`*o95lghgBdd*8(D4Sa;W
 | 
			
		||||
zym>R(xt+5*fWS9g;0iam!vmi1f?rt8ocn}5d_f0`MJ_eY8_pDC<QQk`oQJMgZI45}
 | 
			
		||||
z>brWbZi6#~5MxT|Tm>C)(lz{;K&tZ6aP}$Z?cCmq++u5(CCE8c@l-{xS=vby#raX3
 | 
			
		||||
zQpOS{thZcQSU%dO?@V(padsLMwagJ>O!FfD-KR<O-cN~vJ<O-}q1tP~rqvq%0Nc@T
 | 
			
		||||
AxBvhE
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0126.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0126.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..264532468249fa0bafb45ae571e84e1fca190c5f
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 149
 | 
			
		||||
zcmY+7!3lsc5CoHtFCi`1f<;(?50RWKcjR?o5mp{IQ4kjfj@gA9LJBPtnaM(Sa*~UL
 | 
			
		||||
u(SNBSxn~Ff5m9zAcDF)R4S7S+;{G@;0E4K4)9%FD&bl~W_kD<wcfA47MJ<c~
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/012A.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/012A.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..760fb438a0fae1e54053582a51404362fb865eef
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 200
 | 
			
		||||
zcmZXOu?@md3`7l~qRA?BX_<i_P!vlie;VW&7=j@ff|kj``w@f!OV6^-ce1zEnptBz
 | 
			
		||||
zdIx(r!WC|ChX*|21*>&ZlWj7GOC8$GQ&erKSvx34xg>XIJ!=GdMMTkf)-T)Rkct)`
 | 
			
		||||
TSufRBLf`D)4IaRk)90Z#7>hp0
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0136.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0136.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..9fb95b3fb50b2665286fdc0e948d80d333d21368
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 347
 | 
			
		||||
zcmY+8!EM7Z3`G?ubsD!uGel<S2t|$(R6-yqz-ZCaUm+`Gg-p>Mx<qHl49=&O9!lUr
 | 
			
		||||
z@}o%qeRv68N1_DeM9$<wzR3^yC08<&{VIe5c_nY;orGuntJ#H`+ElIT1S}$HPB}{{
 | 
			
		||||
z^)6zTm{|Ew6j2j1Z6i-@XKBaS`8ls2faLvw7r=LSTdHEhEiO}Wxf+2eBH5QG^FKC|
 | 
			
		||||
zB`5!O!<12Fg2(!F!SU$v`W`5?e!1JweE?hb#CVy*8sM8pHp()!B-_y{yF<%)1Jf01
 | 
			
		||||
ACIA2c
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/013B.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/013B.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..8f6137574f28d2701143fbbc510ebe21ddf00894
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 209
 | 
			
		||||
zcmYL>O9}!(3`868Gcw9t#uIphRt9ONAtbn}t+((H9>D#q-FmB7X+$eLNGe73X-J_1
 | 
			
		||||
zIg%4GawB*0AWt%r7kQJk#b2I!K(A(|BDC8*idwCu)VOy*E~-*F_BE!KHw$CGh&E5d
 | 
			
		||||
huT=5`u*|y+aF%>&`x+SA$Ga76b~CU9O8asN`3LyBK@<Q0
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/013D.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/013D.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..892a6b034299d578860f6eea443f021ad733fca1
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 219
 | 
			
		||||
zcmYj}K?=e^3`JA0P-&0j3A{m-E`|<-e7efkD|iLBZoPtM@KW_B6l;bD$)CsXWssN?
 | 
			
		||||
zIg<+kxsf}0kSBSOH~A1b`aY}l?zR9hRmOQwYN)l88u#En7Bj7U*n&BI;1_I#I?gn@
 | 
			
		||||
cgZq_bxlFM%Ok(mUTU&R4awH`b`BOq&zjnVvpa1{>
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0154.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0154.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..80e105523b49f94e2ea0a7e7cea630d6db60fab4
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 331
 | 
			
		||||
zcmY+9!41MN3`JeqB1A#-$_k9YnE@IiD~gf|^}@jmbOlym1~y;>R$vJ>DBp=Hgr(Og
 | 
			
		||||
zKi~fDj#?tB=!7qWD;U8I+`$7p!3(^>2doOBJve|Ps5bIflL~PV2{Cwo5lKQ9MGUiZ
 | 
			
		||||
zcu0c5OXnT)ET{uQZYj5z*{KDp*0flQxGZT$(ctQTcS7jd_sMTHlv)^iga!pII)ut}
 | 
			
		||||
s>V_u7Xst080eK;IY*A)jXfW1cKdYNgHSz`zZ;0uimU&WBr-3kh0lE@sx&QzG
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/016A.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/016A.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..195a8da668b386ab88937a2789b6a72303e5e186
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 350
 | 
			
		||||
zcmY+A%?$z}5QW*S2Y;e#1NLAIo;<oHXb2<(Bp#*!d$0(LumxMN1zYgEe&DW&lYC2f
 | 
			
		||||
z`-V5LRE<)qR$IOr5?tU4H@L$Cp74S<Oe&>Tu!aq^P><zTT|E`CA;y#<Vpq-cuQq<`
 | 
			
		||||
zjG`7I=2WCWxhypzhaf((_s+P~YkQxYbLlo@ZB$xi#=08>8jH}9_vg?h4eQ|0!@0!w
 | 
			
		||||
r6&w*mz6;(nr?<t&nB;43U5LRMZ2eu1D2$m+`Lf1XM;`}ve-H5ipbc-F
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0172.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0172.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..0f3898b3eff49740a8ee6a359873612830f12682
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 320
 | 
			
		||||
zcmZ9Hy$u2}3`WC=;=}<*#TM*ANs0(XF|r&*6s{S86<C3mmX?+k*nt&}&&Q8WSb9?Y
 | 
			
		||||
zlFwEau60&x5I_M3a0DlC1{ZJzH*g0J@C4P!xg}TuSL?4jH&IQJb150JbB(Ic@7fP~
 | 
			
		||||
zL6P-SRnBObB9)K$ObcEh>aptPd+-?An_$E2D*T0n*rv=?Ntm&i6T+riJmy4_g(4T}
 | 
			
		||||
gb8vnOhxJ8;ZH;{(#zY7s)?kJ1Ob<Ret01*|0mdh07XSbN
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0174.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0174.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..a25e7a36995049414008518fe9583c62aed69426
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 356
 | 
			
		||||
zcmY+A?Fqs#5Qb9?Dt>^@;0mrF__u^`ggXcgrNT|%3eMmT4&e|E;SlP3rGgDS{qgjD
 | 
			
		||||
zbJuR&);Z_h2~PrNZ~<3v19$KMPw)b7u&bQgg9A8%2>eq2&d0A*6Eh2^)Tn;^TD2x3
 | 
			
		||||
zj)ABQf)L;oVz9(?^XrGYu3MPNR5hwD=BUOH1gi2-tU5O*EEaQc6jW#CaN*BI8XR`8
 | 
			
		||||
ziPjakzRQx$*$CWgBVsAdcn^rwA!NJf7H_jiKhZ?$+L9$_=@a-`X)=yTw#N8pd;x~s
 | 
			
		||||
BZ*~9x
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0176.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/0176.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..4443deed608f0593a722189f4c9f6f02e72bde0d
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 302
 | 
			
		||||
zcmYL^!3}~y6huF=Dta&^p1oR&$K8<4&t^#oc>4z%um`)a3ahXSd+>lW5aK3}48zX+
 | 
			
		||||
zPc5~GIJw~IK>}BB19$KMPw)b7@Bv>?6(UD)0%zb#;~AYZivz_PqU)(PW?nO8S>cWk
 | 
			
		||||
zG4W+}zzwse389_BHWo~0v&|m9=G^rIy9Bm2X4@Uo38!VAZq&c4+QDT-3wN$anp2|9
 | 
			
		||||
eVVDv$re)Z)Owjo|mke=g;O2f-=n70PfA<5)qgu}Z
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/1E80.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/1E80.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..9a4901d0b73afabd28b2b6551fcc881cff727258
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 359
 | 
			
		||||
zcmY+9(QU#o5QZIM3Zi}Bg%!F2EASeu$hCZxl_&z~CSV0tU<{UEi4M^X((kMywI_YC
 | 
			
		||||
z{O7;>&s(>3&Uts>8{rHWxWWzY@PIG)hPH8T2k)?l1AKtr=%1SXt7^(QOHOG}o&B3?
 | 
			
		||||
z7h}wQh;jTCB8HqoAD)gnA#`0g;c#ue`i5h@qP-76Okb+TPsEjplBJpvkEy7>n8;WY
 | 
			
		||||
z8;_Hgs<DaXE|^MO?afk5Y8Mt{5&bw0|90V?PFQUHGV!yB)I1Z?X&Q@^BGtizWhj&g
 | 
			
		||||
MYs`LQL!UMO0D`1%O8@`>
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/1E82.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/1E82.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..c4fed22fbb6e09b0289576d8a329ade067adc48a
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 359
 | 
			
		||||
zcmY+9!A%1(5JkO-At-Rjg%)Um7IIyz)nIv$wX0PkO$D?-3)GMvQUp!V1X|u$i3B4(
 | 
			
		||||
zOaA`zXS@r$5JC)lPJtu5!v}oA3C{2Z-|z#ET?kL`410KmxV1mE#Cx+`O3{+@Xtu-$
 | 
			
		||||
zvtC5XkVK}7AQ(zcL%KRzLhAc|#<5=c^=?DskdmUT)@E2YE@@FWb<s?CyLF8;*TRk2
 | 
			
		||||
zORg7@4Sb%9@<w3mE?S#NAQd|fA2dwU_-_~P`9Qa?UuPbxYMbjqKFm|qTD3X&u#S~d
 | 
			
		||||
MW%Lrao_ww47p;?UB>(^b
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/bigfont/1EF2.lmp b/wadsrc_extra/static/filter/doom.id/fonts/bigfont/1EF2.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..f1c3ff3dc03cb69c7356da5729a546eb8abf4c2b
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 307
 | 
			
		||||
zcmYL^K@NgI3`GkJ5H%(&UAy%nE*Z(BX$C{UT^HQJV|WZt;U&C;C(vIe#7Q3cY5RXm
 | 
			
		||||
zLk$r*I^){{0XHy%J9vO6c!4+gfGi{0g9A8%6L5vv`#Pr@CKDyZFq*1VTaG3vO}QEs
 | 
			
		||||
zA7m-Pz*p6Br`mPi_e%~&;lBtP)fNqoaTq7d&1_y&>kTplueX#O!Tc{W4=5J7WhK9G
 | 
			
		||||
f6tSZ1@f>8`W4CxtJ-gJ0#cSucNnxQk=lY93Fz;H&
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..14f48f25d79dfd10510267cf35bbc387692b2de8
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1162
 | 
			
		||||
zcmd^-v8&`%6vmIPko9FBSx6BuYJ?QC5G6&5xC9Mr-jaRBeOX=>BBqEKaEidDh!7!2
 | 
			
		||||
z-~}0ETmnupMU)g%q!@IH6eCVC$|55S>=c6x7-WPMr<h`jS8TV(>;4;F?md@#59fC-
 | 
			
		||||
z_xrxOcV-?Ry>bKq$ESBr&dGk2te3A|A@S{p-@OWO1@3)t|28=a9L+J5Wm$;G^E}J4
 | 
			
		||||
zG)+?!C98rcF`Pg#9N3y<Dxxm&IGsKnk1t1~{cyM|ifymgrs+D4mtnXFg1P6-T(`09
 | 
			
		||||
ziD}llKGL*OQHHWyNK#)Eb3w>>KH<2SWkZJP(zH)e9z{76WdoQ11_182_+*Xk0@pKK
 | 
			
		||||
zHMpp8UgB(kP5yM89!Bx547Y<|)Av@nv&`&yYBjMrj*L;Lmw{IJYR^?NM^0=hG&{Z_
 | 
			
		||||
zI=Wz~ye@N!#7ZJ_I2?An-FCZe+jhNPFPF>3Vlki3r_*WEG~@BOuIs9*hQr}tFzEOD
 | 
			
		||||
zd7fukmLy3OMPV2QLEw3w>$<jWo2F?PhNfw%s>-t5>2yR<OfZTL-R{=+SFSg=or!5x
 | 
			
		||||
zx-n4oTvlUA4#bYb3kJt23@g$!N6qVETJ<KwtS*wO7nNB!NP~Xt<)NDfcH&!+Yjhpm
 | 
			
		||||
zw^Y|q99^#Rph%oNv=U$MI*MmXwk8@1pJqW6yWP<C0@HCd(^hm-QuPjEyl>sj%y?AF
 | 
			
		||||
zlT;`@wr5bW1Vn3WTb#|XEHO>d_fgkT5D?%1@C0B3umqR`GypX~3D5_~0AheHfCoS%
 | 
			
		||||
zBYN$2xLDwLj75QQjE;k<N?b%RWD*Qv5CEyp0YU)hzrOnxH#1z6*rYh}u+T8$FJo>W
 | 
			
		||||
zG21S)@#&>YJ+fhH!o+y~PTU|ihy`MZXd;S;Q0q{sFp!}q5_5J8nO8+t=4sO6xs@~k
 | 
			
		||||
z89)T!0LUd^W#G=jl$7EMRuz;HgmoA`{`>fSfEVDi^D~E}{@3Gs?H`GJ)y>nBTlYWz
 | 
			
		||||
z<F)=T$MD9r7njf4>t8>7_rtqyGCy9w@$=|ndgrHa-nskNM@QfO{^0Sa@fW{Ymlwsg
 | 
			
		||||
dm(G8E{jJW8?Vq1~d5b{c^!C}w5AS_^@h=+(ZxjFk
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..d637b362bf5cf27cbf72ae8f146a164cf6390255
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1140
 | 
			
		||||
zcmd^7zpJEH6h7f?aPxeNkbxCqVZdSv3kwSiLnQGn=3#g)>jMi3282vuVPS{?2|_G}
 | 
			
		||||
zFolK16c!d!SQs({AyW*jfh{bCFvS!TVll-oOfkh28}f=kPVR30j9kwB!R4IqJDl(P
 | 
			
		||||
z;pwgM=<<V00C;rs+4VDWzf1Oe4=>31TlDxxfD3r~`P~yl<XM_!DAP2_o8!3AXhhRA
 | 
			
		||||
zMNyK%3nIhv6vKk0iiRv`B8RKhebc;NEKc+JG0zXv>5wG5DB1);@B5wWt{tbftfgVp
 | 
			
		||||
znzm5YQkLhEl#Aj_5Hg-mIWA_|Xfz5KW<t{*MY$AZQ<Mc@0O$aCI^fG44n6MHxNWho
 | 
			
		||||
zu`6+1V4K}H$$1eS%ivJ>`<c7V>`iKQiP=U*6Y7gVD}6Qhl&K@9wiH`pV2nLour=OP
 | 
			
		||||
zI89<@aU=@N`FuVekB7ry7>3<$x7lp^zVEtjwOX}p+cZsG*Hu-`=kuZ{X0utAWoeqm
 | 
			
		||||
zaU6zW5Cp#OyRPdvj%8VfVd%Q9s;Z(Wk|d4CV?hvN48!wea`3#Z<93$4G|WoV3q{K$
 | 
			
		||||
zB@!iH7~34Lv#iXF1e#{4uFhB0bU9D!Jg%l;nFdAT&muPqoW!?c&kP-XVr!nMIJ#_W
 | 
			
		||||
zQkD66Y-fQPd)ma7T|=}~L6^BC^~1=S1eWU?wxb%BtQn%BjS-{M;Oy7>i&9!9eCdv+
 | 
			
		||||
zIu(gPw8mk;^%~0(lLS2vH4S+l0nPv~0rmhJfDWJqr~yiV89)jU0Zaf~03sRD>v+Vz
 | 
			
		||||
z$ELwN$0$PEMnxemA}}Nf48b4(q&fo#0PHusrvdkC>`QDDT)3F4m~yWp_7pOQ3A6X;
 | 
			
		||||
zjYGY#U}eBkf7>VS5nIF@F+emB1w^Pds1zt9m<q(4V_o7DVI*-hp?GU06+i+I09XL>
 | 
			
		||||
z30UcPG%+EixP@&6We7nX1mE1>lB9Rw>u0z2e`Ieu{C}>?`JW$=Q3*HKpWJ=>hyOeC
 | 
			
		||||
z;Ogq{RrsJNe|`1U)i2MVe|(Ys^Vb(2zW)$@zIn{t<=?#`>2UMp_WGw!zx@7Rnwn^!
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..ab1bc61c19152955ac127820f689f97edaca41ae
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1164
 | 
			
		||||
zcmd^-v8(G;9LIlhhg@#BbjT1iV3dFzqC^RjAw#&Pmv~>~=DwGw0fR&cSS3S-2oW*_
 | 
			
		||||
z3|OQ?h9X5WWatni+*dF|hoT)GTBKlyf&~jkcw&VP9o}%=exCRK4G-u14(I&%eSU}Y
 | 
			
		||||
z{eFFOZJeLIbOr$DSMT;7ko}abv(pn2e|+)yJ-`Xvy!Y^u9C?;zJCtdfh{$mq!!R^W
 | 
			
		||||
zQxqjBydZX1p6ak*siGkZn#kd7c30O=CzHc?ywCG?FxVx@CW=-;u=M?f>&_jgv8<_K
 | 
			
		||||
zRGKzX)k2oXl9Y?$P!KYnPdP4T*@$6+PNz@P9!0qnWmA*|U;yX<cxds-26s!`%yHe|
 | 
			
		||||
zvcg4y^AR@LU7Z{!(Y^@Uk-r_f>&#xI)*>;R$f!eo5@?05=AJTe<kXg8OAL&zrwg{m
 | 
			
		||||
zn+m5%tSmC3&^aED`~ALc+ud%r*=$y;)pEI9EEcobtZACMuB)ml%W^y(k4B^6aF}IT
 | 
			
		||||
znx=6ahhZ25f$#gS>pG5OS(afKx~{9Lswj#iN!@N&5QG@R@YwISp0{?~g=J3-v()sF
 | 
			
		||||
zqGgg2iIOjLZI0JjR_-tYO|#UZ%4g+ZI!>!RE(c+e2BX9uMs5~3iEqW889I93);v>j
 | 
			
		||||
zblKLVGV}A;&H^*`w7xC7hG?mRE^|rhhmq3{EY~+|M>Q;2Gekw}B1VUuvz_aY3u&70
 | 
			
		||||
zh06?dDiVQcjk_Jr=U5b&B<OjlX~^>ka0GY)umxBFEC3pS3ZMWO0;B*DKp(&bAd(Ti
 | 
			
		||||
z_Iq3|v92-CF^bT(QBjDC2!>38Aq)Z_)fqqlU_a}7*x`1L%L1DOCobkHrrgtrJ%pXM
 | 
			
		||||
z-`RTf%Ap=xFf(APKYu4~5gWuDF+emB1w^PcC>0n<Fc642ySl_F0wZxWY4O}jDu4ta
 | 
			
		||||
z0I&e$60p>9Z(>49aSiJdiV%V-2!8$R{2ssy@cDylo235N<5vA!BwwXo^)4QM@%tOA
 | 
			
		||||
z`)BaVY473({OsO$|Li}yegDIouP)Djdi&>>-~8a!Zz=YZ*Z%mkr(FE<?_1ljJ-ySv
 | 
			
		||||
a`R(MOy#DC^r?+<m16P;Vy+`kS{N;aV4RQYf
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..f441d09a5fd26b62561c43424e14d19ea20c006b
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1158
 | 
			
		||||
zcmd^-!K>U<6vj`jklOe<i!1_0NF|FA0)`SKLKd;+)%c9Ql%|kH77;=jFpDfwh!7!Q
 | 
			
		||||
z7K4nE#ViJl8etZJjyj7hW-&s*E+Py#mJtSwFi49-nZ+!+c;M!E?Z4sW-gCM4aDL}<
 | 
			
		||||
zzwh(g=f=s^SFQrU$=Q3ScgTK)te37_Ch@H=zj+nlGTi>)?k#fUS(@!prfDJ~$8ik9
 | 
			
		||||
z&@@d^l%(*2*kgIB$AYDbhAe0zhl|C<Z1!wAJxnJ1Jl_q6U6O2~XcYvl?>DZybe!6<
 | 
			
		||||
z=7v#e+Ei5wS)NEzE{Y>T$ap^GxR_-lh6#GT0Zn@p<x-SQQ5Jv!pabAxhmSYdwYXX0
 | 
			
		||||
zy2iG`roiPG>+E8d9H-H~2zFzCJ95{Vy-KYnG3&^fh59tm3SZ4VW$4JMEyb1?7=2F{
 | 
			
		||||
zY>hV+PLo(!WJIBNJRbM^{cgAGx^A=CtX8YGZJVZ9EEaWL&t|i#s>-sQOeW*;cr+Si
 | 
			
		||||
zS(c`09LHf820`HazU#V<<5-qu7>2Ivs;VlAB1uxe-xmZS#xOh%20PDNJ8omybHgk(
 | 
			
		||||
zeXMAiq(q|R3w@j8b(WQTj6l;Y)l~VS9L^_cmB-~UEYe_{_@l_p0w?jU*fT>%AK02_
 | 
			
		||||
zDvmDOnp9?f9@|-9#-28?W!DfbRnTQFN&PT#27%@JhV7_^C2NMLXnn-!&^g<s{;-hd
 | 
			
		||||
z317I(P^Tghh}PJ3xLjgUV3MHcp{60vBft^hF~AmJ1<(N002M$1Fak&cB7gya3qT|z
 | 
			
		||||
zdhPevwm6$%o?{fDZKI+P7ZD7Z1Vb1EK&mr<0KopQ@1eu(659gn1g9?MDyH1Ch&_b8
 | 
			
		||||
z-JrMi=#@h~v|wStTz~#f+#=S9IbwilAPR_3X;3OKmS89lbM|$KQv^ohXwu@jl~e!;
 | 
			
		||||
zKmcF?$R%K@<KD!Cl;RrJB@`h9RS^98<m7#TOK|_rxlL04>+ys7w@AL~&9l>+cR%^#
 | 
			
		||||
z-WNBn!S$D4_zRmyU;X~ZryqX&=TA?szxc~<Z{PU#$v^ilu08nr-S6!C`h%ZE`uOP5
 | 
			
		||||
Y&FVGk`{MPd1OR8Z&QE`Q=cCX51=ZSc1^@s6
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..96045927b9d5a299400298521ec53fd0ef0958b3
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1152
 | 
			
		||||
zcmd^7F{`9j6h6rYd|7!|SV&@FK$0meEG#T6%*MBv7sGQ|7c49c2s?!V3j+o$Tw*}N
 | 
			
		||||
z1Pn|ug@wfw7LrUJ7E?@Nv5+YyWQr+fSr?|*kSQiG#X`0ToZQ{Nk<0n+<=(^j&f$LF
 | 
			
		||||
z4-an4%ex=m1%S)z&#xYm^MZi7xI^}Li+{fcxC0Nqd~}~&1&-zz%Cam(<awTDS(>IP
 | 
			
		||||
zijq}9lo(E+7!GVrG8Ivmcw8=Dx9zL>{4|>#%koeZLz?d5coT-}Am}}B<+`11FHE!1
 | 
			
		||||
z^|_{1iZYYsQj#X3m<vM2^9jerEE_V+n5KP-@+iuoC>y{8FaYp$z?VB5*0@{Yw!?LU
 | 
			
		||||
zeTAzjcKPczJ<sD~6&|L+e&TI&XOr1|YIU*MM#enUt3WG#wQ!ZpkrP`A&5>`2jxJa#
 | 
			
		||||
zugjbwv69G~&*$UucsLw}Vc6|<o6TmuUiW>!TrRt=YumPIn!2uMv)ObyolGWqo@ZH>
 | 
			
		||||
zBuNxSVHgHM;CY_wy0&ebrfC?4rfI6G%CbBfjYLsQFpAFO@xk}EuGibn!nA7Ln5ud%
 | 
			
		||||
ztFa^p;>h6zgX0v26=|BI`lejg#bTB<Wl|SWm4(wZn8aQlx@ll1z7@H~*wKAUbq&SQ
 | 
			
		||||
z<vI__#K}V|@%6Ezc&21)qM`6<7DTZ-4s9<m9al4LMK>i?A0fu4!QHQnr<J@&h00?K
 | 
			
		||||
zgNh{}TH`R_YK2vWX^Os&x{iW?0B3-g0DFK9Ko8IXGyoOA1Rw*50mc9x0FjL7bv)vF
 | 
			
		||||
zjcto%iE)gMgQ`kgL}*A58p1&cNOcYn0yuB_o(9~na9v@S;@rbh!;F6wbEk+ojG4Vp
 | 
			
		||||
zZ(QoB4NDUi#@jh@kJurWh#{hhC?Z0mL#@J8hC(Ff92qjNimc4jq{Uk+X#g^S2*3f5
 | 
			
		||||
zN5I;^qlGCc#Vu@Ws3HiPF#O}s%P#=lfo~q(I3)GIUO#JpN#v{K>#KW@zI`4%W8VAm
 | 
			
		||||
z)8Bv1HlKVHNI%`a!TY~GV;=wgg5de>2N(Y+PrkngP~3hTJ$~U5+W=hOzq$J5v#-AU
 | 
			
		||||
E5Bp+lwg3PC
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..411693d82027f226fdd98706121a6d056f37e040
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1163
 | 
			
		||||
zcmd^-!K>p`6vmH^ka1$kB8z}gB1Ei^MT8)c$s)X$_lVEP%P<*?kVV7@1+&N^N`x!|
 | 
			
		||||
zW>KU_gbq{*l0_F;l(CBlT~w?xi;9IQSg>G_E=KI4V1>6BMC5p#f5XeY=W_4i{LbZm
 | 
			
		||||
z-zT>&&CZQyZva5&;`OuJWWP?<)7P(&_}ZsmJ_m3OZoPTuoE!y?<`~MdEJWmao@H5@
 | 
			
		||||
zrYVY&RY8;(PM{bLY)vv1QI~j}%^poASL5+vG};%%uHSFdbQ8y`FkA+~!t>^?+t~Kh
 | 
			
		||||
zG;3WSYg(x&BUvsaX&{QZAY?qBa9qr?A;a`&+NUUwq8y5{0Zae`01rESxWRUbn>nr<
 | 
			
		||||
zT-LZKaX!Q*e>6#t<9J_&yJ4^$c<bC*W%eSqn%JB~#yHf=Kr4K;?<$!iC$<!tUEdHL
 | 
			
		||||
zU9ePMmpMgZC6PHEkNf?8x7)RCyV-13tJQM3Tr3u|*{o@r$z)R3byZcP(P%gv4hDlf
 | 
			
		||||
z&$BE`k|c_vFbsnr@I23TUE8)z(=-f2(==68Wm)cayP_y27)8fkZ|D1K*IU@m)U+zy
 | 
			
		||||
z7^-?MtFa^pV%OmXgX0v26=|BI7IiVJ`qNQX7fIER$}AkF!65eX&`kq7@vX=;dXDZ}
 | 
			
		||||
zs%t2YE?0R_Bu*Y$iLdt@#WN*a6Agt=vmlDyUTAxP>A0F{E4nGEdKWQ1wC;9p+%M&6
 | 
			
		||||
zDwH1EH>g+wqBXWH&gWQ`n5O9asOu;Q2yg^=2(SfM0W1I-fEu6#7yx7dF+dN%10a$S
 | 
			
		||||
zz4m)tE^#u!qQE#t$3aykE+QB*35GBTfK=xIA%OE=-$RSrIW9|VQXG3&XqfR=F?WcV
 | 
			
		||||
zU60xN^vb2~+b}a>YCL`?ZV?;A0x?815k*9(b*NMr%Fq{yIlG3;t0F7&G->hJN*aI+
 | 
			
		||||
zAOdgz<PxwlaBpEsN^uSA3d#t=It(BD)_DWq3Hadlr9)Ex>v2!}T_Rs~^WyB}&PTtz
 | 
			
		||||
z`os5~?_PN3sT2SFkLO?M{?*(&x%-|!?tJ?s^Y-8Ga(An%arof<)31Mh`Ncnf{N}Tt
 | 
			
		||||
d{yF{P=I3pf{qX0P-XavZIKMpm>hztD{{`a~asU7T
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..5cd59fa7c3835f3f0db5b661c089afc0a32f32c1
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 1178
 | 
			
		||||
zcmd^7L963b6h1PGJYIMNsTjsAB4nhC2w4OP7$Gy}J>xTvm&arv3_&7hkwwJ7M94tE
 | 
			
		||||
zfLRnNnni^!GLS_VSrjc8q+r1=#z&N*U35{fV!;uMyhRtY7<b3}=5Kho_kP@SIN!P4
 | 
			
		||||
z@B94X+&DUX<q!alPTxJgOYnf~!-E^-{Nd*Q+v`N|;Le8xuj2;y-CMsCfQz$xC*;nv
 | 
			
		||||
zG|Nz?X(A%Wah*<wrfG_zB!w45hUF=S1xpnTS<pldr_*QS@zc@hYB<~##kSYmr0FV-
 | 
			
		||||
z7h%}?{@itEj?-Ay#4u`28>wn3%R@;jM6oXjInQStm#}Qy>4Xdu(6mQUE=AcCWdRrf
 | 
			
		||||
zIsjg6@yQA|Ev{y`Y_P3yUgB(kP5x}0?nm*i47US+-FKI{y~wP2YBsSkj`UHemA+bd
 | 
			
		||||
zO3#rqTS_c3G`gNH*cxvtoF=id*bxP0zu)h6yX|(n*=$y;)nc(|+jc&mPp8wSX~yGm
 | 
			
		||||
zUDs7r4Tr<QV9@XP^E}V8EJ>0mio!7TecyFm$8jvnG7Ll4byZarMUf<_+wBU1kYE(;
 | 
			
		||||
zgJA1<OUIpC_QWtNO&=&)E-A4n`9jy`c%5ZsrX$caOU>(ITJ<KwtS*wO7nNB!Nd127
 | 
			
		||||
z=Ao1NR^pkFqX)L;nTn&!wkB1%UnF)Onu(_cw(J_Br3$*trI{baP7qqIZ`h7%Sh8k_
 | 
			
		||||
ziq=JpuQtwlravyFNy?XQr>9e~2t;e#Y;ZQivcxn+&qGZ^o=1Q^z!QKqzye?n&;Zl`
 | 
			
		||||
zB|sk_1Bd|v02hErM)cb4ux)WX#-hMDM%zY3Aub{`WDy#|K?q294iEy^*K@BnxSnBK
 | 
			
		||||
zVw2*?#X`l5dm6J>5wi`LwMQ=;>ahh=119?Ocj6kcK`anML<3Pkgj$12fq?`)fta(a
 | 
			
		||||
zOPnHfB#tH{o?A%;kN^Y#7JwuHD;;+xrlb{@u&khrAgsgi*T0V519$;GxqEJt(*HWX
 | 
			
		||||
zR{s{sSG{q1eCOW7-(LIa=NIACgUgFgPyTuT{_ECPkN)`a)<y8e<?WZ4vv=P7_v7OS
 | 
			
		||||
kfBMcZ_s=h>M<1PipWnK9)T&>;ObFog<ox)Xw?FvoKSE}3#sB~S
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,74 @@
 | 
			
		||||
From 4551241900a45b6984127346c4163ed7f54bd63f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Fri, 20 Jan 2023 21:03:21 +0100
 | 
			
		||||
Subject: [PATCH 21/51] - 4 non-letter characters for Chex.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 .../filter/game-chex/fonts/defsmallfont/2012.lmp  | Bin 0 -> 104 bytes
 | 
			
		||||
 .../filter/game-chex/fonts/defsmallfont/2012.png  | Bin 0 -> 897 bytes
 | 
			
		||||
 .../filter/game-chex/fonts/defsmallfont/2013.lmp  | Bin 0 -> 116 bytes
 | 
			
		||||
 .../filter/game-chex/fonts/defsmallfont/2026.lmp  | Bin 0 -> 128 bytes
 | 
			
		||||
 4 files changed, 0 insertions(+), 0 deletions(-)
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2013.lmp
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2026.lmp
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.lmp b/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..c9b6cf5af5440c069fc7fd70d22da78d2a2c56a8
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 104
 | 
			
		||||
vcmd;JU}j)o`1fA}NE!gK1rR#`u?G+b0C5BmCjc=6b1ew`2hoKj(ja{R!ciZ2
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.png b/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.png
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..4ffc36ccaceed43e8d9aa10ace07100e8e8eac9b
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 897
 | 
			
		||||
zcmW+!F{q?w5T4`;UrrttLJYC6u-L-F5DN<nx$_;~i{U)tfg~1&SXfw?#6pM!AtqVE
 | 
			
		||||
z78YA9cLoe>VL-?h7F#UD;tGp}Y_Y{cEVj6WEw<R=it94@-@!ls!1poV%rM_CPoJ3A
 | 
			
		||||
z_dmQ30N1yVZ$2aWip0IEd*pxq{-5970pYg~z9JbA@jnT^X9*8aKYjLyKmtc|3}sms
 | 
			
		||||
z;dq{BS(c`0ilSsy5G95aD24-DlT1a_B_7x7H*NcRxjZixr?Nawr(>4wlVlr3LlE?y
 | 
			
		||||
zw{hLhwpXUv==xIADn(hyaw$nOQ7i-@=lPW55|)h^CZuVfqCARnD9Q#f0Sq$V`G~Lf
 | 
			
		||||
zI1aeq;I6}=!M?)H9J}I8n_ZU4sfv#C;4t%cg|p4=KC`;SY-3{?=~bYWzB+Z4+>ujT
 | 
			
		||||
zip+^`h>k8;DzD3&BC(RlTrQW>>2y3E$8p^6_uK7u7>2&@*XwoHb#2==O;gwPVzHRd
 | 
			
		||||
z=d;<YD2hDK(=?6aIEtbm2t3boUDvj4(=-jk&@@d|RaurNlZhybDaP?743ECQbG_bn
 | 
			
		||||
zR;E?!#$444SxqE45GM{V7#ycCtVq)w)i>q3o~{;oQ>OJauJUM}1+&B}A~y@{)VE^S
 | 
			
		||||
z2p!$GRM$`(U9O9uOr0XKQeO`p#WN*a6AgvW@*qy!FtWYCbX?7}72T9neS(;rNB6KX
 | 
			
		||||
zURLrd6Dp6L8dM_P`2fceHyf-f%rf+S)O8dD1h@da0yqF{0eXNApaG}=W&k-r0uTat
 | 
			
		||||
z0OVxkUZ)cd1GX)eB_;_v4yr0~5s@K}$Pf)8K&lIX2*A1Pdmizy!J)z~!=;C%hB^N_
 | 
			
		||||
z;m$F044H#ZZ(Zu84Qmrt#@jjZfY>3Hh!LWRC?Z0mL#@JGhN(!*IWc5j6<L|5NsG5u
 | 
			
		||||
z(g0)t5r6|AAYg6a$-<13;tqB-R53(N6#ezj^(TaW@9W2(lg()MF5ZC`zkWbK_V(t%
 | 
			
		||||
ov#aO9??1i!^WP6Yf{%X#cu~;beDUv(L>S=q(UY4$9)9`5|D%0m`Tzg`
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2013.lmp b/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2013.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..b3bf1609d834f80fd5163627ee672735563d6ba4
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 116
 | 
			
		||||
ycmd;NU}j)o`1fB2NSXk#4G_Bku@4Z30C5ZurvPyd5Hm2>g1~<eT}UPk(hmRyXCrL@
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2026.lmp b/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2026.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..c3a5a81984d743b3598121a24e6cb2c742d061c7
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 128
 | 
			
		||||
zcmd;LU}j)o`19WYNLm1~0}y)vaR3lU0C55kX8>^l5LW;(19L41{0GscP`VgOlOqlQ
 | 
			
		||||
DdNL=O
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
From a68f62ba53f654033c00f0478db7d30aa3856d53 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Boondorl <59555366+Boondorl@users.noreply.github.com>
 | 
			
		||||
Date: Fri, 20 Jan 2023 16:09:20 -0500
 | 
			
		||||
Subject: [PATCH 22/51] Fixed global TerrainDef array not being exported
 | 
			
		||||
 correctly
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/scripting/thingdef_data.cpp | 4 ++++
 | 
			
		||||
 1 file changed, 4 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/scripting/thingdef_data.cpp b/src/scripting/thingdef_data.cpp
 | 
			
		||||
index 890637a37..acc039c5a 100644
 | 
			
		||||
--- a/src/scripting/thingdef_data.cpp
 | 
			
		||||
+++ b/src/scripting/thingdef_data.cpp
 | 
			
		||||
@@ -720,6 +720,10 @@ void InitThingdef()
 | 
			
		||||
 	teamstruct->Size = sizeof(FTeam);
 | 
			
		||||
 	teamstruct->Align = alignof(FTeam);
 | 
			
		||||
 
 | 
			
		||||
+	auto terraindefstruct = NewStruct("TerrainDef", nullptr, true);
 | 
			
		||||
+	terraindefstruct->Size = sizeof(FTerrainDef);
 | 
			
		||||
+	terraindefstruct->Align = alignof(FTerrainDef);
 | 
			
		||||
+
 | 
			
		||||
 	PStruct *pstruct = NewStruct("PlayerInfo", nullptr, true);
 | 
			
		||||
 	pstruct->Size = sizeof(player_t);
 | 
			
		||||
 	pstruct->Align = alignof(player_t);
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,340 @@
 | 
			
		||||
From 0489ca2af443075419606ce3b0c8cd460d1feacb Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Fri, 20 Jan 2023 23:23:50 +0100
 | 
			
		||||
Subject: [PATCH 23/51] - convert characters to Doom patch format.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0122.lmp  | Bin 0 -> 136 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0122.png  | Bin 1162 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/012E.lmp  | Bin 0 -> 90 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/012E.png  | Bin 1140 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0136.lmp  | Bin 0 -> 149 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0136.png  | Bin 1164 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/013B.lmp  | Bin 0 -> 125 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/013B.png  | Bin 1158 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/013D.lmp  | Bin 0 -> 131 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/013D.png  | Bin 1152 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0172.lmp  | Bin 0 -> 142 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0172.png  | Bin 1163 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/040D.lmp  | Bin 137 -> 146 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/040D.png  | Bin 1178 -> 0 bytes
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0419.lmp  | Bin 138 -> 152 bytes
 | 
			
		||||
 .../game-chex/fonts/defsmallfont/0400.lmp       | Bin 0 -> 142 bytes
 | 
			
		||||
 .../game-chex/fonts/defsmallfont/2012.png       | Bin 897 -> 0 bytes
 | 
			
		||||
 17 files changed, 0 insertions(+), 0 deletions(-)
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.png
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.png
 | 
			
		||||
 create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0400.lmp
 | 
			
		||||
 delete mode 100644 wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.png
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..057c1ef0f7ca1076f83eb9ec90081a02999dbcef
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 136
 | 
			
		||||
zcmXYn(FuSs3`C<Mwww4Dzg@ryoWKPfz^Ot?iVhbqr3Vi#_mU`6WCa`8!2wQifg3zv
 | 
			
		||||
qoH*jc%xw0eQ9@HK7BgjLtzR{63YTCO)&3~3r9Cd8RG^*Ed;AB!!X=;p
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0122.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 14f48f25d79dfd10510267cf35bbc387692b2de8..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1162
 | 
			
		||||
zcmd^-v8&`%6vmIPko9FBSx6BuYJ?QC5G6&5xC9Mr-jaRBeOX=>BBqEKaEidDh!7!2
 | 
			
		||||
z-~}0ETmnupMU)g%q!@IH6eCVC$|55S>=c6x7-WPMr<h`jS8TV(>;4;F?md@#59fC-
 | 
			
		||||
z_xrxOcV-?Ry>bKq$ESBr&dGk2te3A|A@S{p-@OWO1@3)t|28=a9L+J5Wm$;G^E}J4
 | 
			
		||||
zG)+?!C98rcF`Pg#9N3y<Dxxm&IGsKnk1t1~{cyM|ifymgrs+D4mtnXFg1P6-T(`09
 | 
			
		||||
ziD}llKGL*OQHHWyNK#)Eb3w>>KH<2SWkZJP(zH)e9z{76WdoQ11_182_+*Xk0@pKK
 | 
			
		||||
zHMpp8UgB(kP5yM89!Bx547Y<|)Av@nv&`&yYBjMrj*L;Lmw{IJYR^?NM^0=hG&{Z_
 | 
			
		||||
zI=Wz~ye@N!#7ZJ_I2?An-FCZe+jhNPFPF>3Vlki3r_*WEG~@BOuIs9*hQr}tFzEOD
 | 
			
		||||
zd7fukmLy3OMPV2QLEw3w>$<jWo2F?PhNfw%s>-t5>2yR<OfZTL-R{=+SFSg=or!5x
 | 
			
		||||
zx-n4oTvlUA4#bYb3kJt23@g$!N6qVETJ<KwtS*wO7nNB!NP~Xt<)NDfcH&!+Yjhpm
 | 
			
		||||
zw^Y|q99^#Rph%oNv=U$MI*MmXwk8@1pJqW6yWP<C0@HCd(^hm-QuPjEyl>sj%y?AF
 | 
			
		||||
zlT;`@wr5bW1Vn3WTb#|XEHO>d_fgkT5D?%1@C0B3umqR`GypX~3D5_~0AheHfCoS%
 | 
			
		||||
zBYN$2xLDwLj75QQjE;k<N?b%RWD*Qv5CEyp0YU)hzrOnxH#1z6*rYh}u+T8$FJo>W
 | 
			
		||||
zG21S)@#&>YJ+fhH!o+y~PTU|ihy`MZXd;S;Q0q{sFp!}q5_5J8nO8+t=4sO6xs@~k
 | 
			
		||||
z89)T!0LUd^W#G=jl$7EMRuz;HgmoA`{`>fSfEVDi^D~E}{@3Gs?H`GJ)y>nBTlYWz
 | 
			
		||||
z<F)=T$MD9r7njf4>t8>7_rtqyGCy9w@$=|ndgrHa-nskNM@QfO{^0Sa@fW{Ymlwsg
 | 
			
		||||
dm(G8E{jJW8?Vq1~d5b{c^!C}w5AS_^@h=+(ZxjFk
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..c4a7effd7e58b66089b904ced7d69a60789ee5ea
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 90
 | 
			
		||||
zcmZQ&;A8*+86egGVlyCi0pcJaW?<Kcf&UDg`uf|!04N0JZQQhZ(`NncP##3#E+CJM
 | 
			
		||||
I8O;6<0L!@*xc~qF
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/012E.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index d637b362bf5cf27cbf72ae8f146a164cf6390255..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1140
 | 
			
		||||
zcmd^7zpJEH6h7f?aPxeNkbxCqVZdSv3kwSiLnQGn=3#g)>jMi3282vuVPS{?2|_G}
 | 
			
		||||
zFolK16c!d!SQs({AyW*jfh{bCFvS!TVll-oOfkh28}f=kPVR30j9kwB!R4IqJDl(P
 | 
			
		||||
z;pwgM=<<V00C;rs+4VDWzf1Oe4=>31TlDxxfD3r~`P~yl<XM_!DAP2_o8!3AXhhRA
 | 
			
		||||
zMNyK%3nIhv6vKk0iiRv`B8RKhebc;NEKc+JG0zXv>5wG5DB1);@B5wWt{tbftfgVp
 | 
			
		||||
znzm5YQkLhEl#Aj_5Hg-mIWA_|Xfz5KW<t{*MY$AZQ<Mc@0O$aCI^fG44n6MHxNWho
 | 
			
		||||
zu`6+1V4K}H$$1eS%ivJ>`<c7V>`iKQiP=U*6Y7gVD}6Qhl&K@9wiH`pV2nLour=OP
 | 
			
		||||
zI89<@aU=@N`FuVekB7ry7>3<$x7lp^zVEtjwOX}p+cZsG*Hu-`=kuZ{X0utAWoeqm
 | 
			
		||||
zaU6zW5Cp#OyRPdvj%8VfVd%Q9s;Z(Wk|d4CV?hvN48!wea`3#Z<93$4G|WoV3q{K$
 | 
			
		||||
zB@!iH7~34Lv#iXF1e#{4uFhB0bU9D!Jg%l;nFdAT&muPqoW!?c&kP-XVr!nMIJ#_W
 | 
			
		||||
zQkD66Y-fQPd)ma7T|=}~L6^BC^~1=S1eWU?wxb%BtQn%BjS-{M;Oy7>i&9!9eCdv+
 | 
			
		||||
zIu(gPw8mk;^%~0(lLS2vH4S+l0nPv~0rmhJfDWJqr~yiV89)jU0Zaf~03sRD>v+Vz
 | 
			
		||||
z$ELwN$0$PEMnxemA}}Nf48b4(q&fo#0PHusrvdkC>`QDDT)3F4m~yWp_7pOQ3A6X;
 | 
			
		||||
zjYGY#U}eBkf7>VS5nIF@F+emB1w^Pds1zt9m<q(4V_o7DVI*-hp?GU06+i+I09XL>
 | 
			
		||||
z30UcPG%+EixP@&6We7nX1mE1>lB9Rw>u0z2e`Ieu{C}>?`JW$=Q3*HKpWJ=>hyOeC
 | 
			
		||||
z;Ogq{RrsJNe|`1U)i2MVe|(Ys^Vb(2zW)$@zIn{t<=?#`>2UMp_WGw!zx@7Rnwn^!
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..ae3589e31da1cd1f373d95e5d85c5ba07e151391
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 149
 | 
			
		||||
zcmXww-4Q@Q420uvaFux57X_$52P#m34z%OkU^ExIjGg(C>?Ua}nADM;3}hq|naM&{
 | 
			
		||||
wVl{rb=2HUPT3|~t?%KKqwWM;>W?aT}F=6zbUfAj73g7@rHvYQhN~^c}0~$Rg>i_@%
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0136.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index ab1bc61c19152955ac127820f689f97edaca41ae..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1164
 | 
			
		||||
zcmd^-v8(G;9LIlhhg@#BbjT1iV3dFzqC^RjAw#&Pmv~>~=DwGw0fR&cSS3S-2oW*_
 | 
			
		||||
z3|OQ?h9X5WWatni+*dF|hoT)GTBKlyf&~jkcw&VP9o}%=exCRK4G-u14(I&%eSU}Y
 | 
			
		||||
z{eFFOZJeLIbOr$DSMT;7ko}abv(pn2e|+)yJ-`Xvy!Y^u9C?;zJCtdfh{$mq!!R^W
 | 
			
		||||
zQxqjBydZX1p6ak*siGkZn#kd7c30O=CzHc?ywCG?FxVx@CW=-;u=M?f>&_jgv8<_K
 | 
			
		||||
zRGKzX)k2oXl9Y?$P!KYnPdP4T*@$6+PNz@P9!0qnWmA*|U;yX<cxds-26s!`%yHe|
 | 
			
		||||
zvcg4y^AR@LU7Z{!(Y^@Uk-r_f>&#xI)*>;R$f!eo5@?05=AJTe<kXg8OAL&zrwg{m
 | 
			
		||||
zn+m5%tSmC3&^aED`~ALc+ud%r*=$y;)pEI9EEcobtZACMuB)ml%W^y(k4B^6aF}IT
 | 
			
		||||
znx=6ahhZ25f$#gS>pG5OS(afKx~{9Lswj#iN!@N&5QG@R@YwISp0{?~g=J3-v()sF
 | 
			
		||||
zqGgg2iIOjLZI0JjR_-tYO|#UZ%4g+ZI!>!RE(c+e2BX9uMs5~3iEqW889I93);v>j
 | 
			
		||||
zblKLVGV}A;&H^*`w7xC7hG?mRE^|rhhmq3{EY~+|M>Q;2Gekw}B1VUuvz_aY3u&70
 | 
			
		||||
zh06?dDiVQcjk_Jr=U5b&B<OjlX~^>ka0GY)umxBFEC3pS3ZMWO0;B*DKp(&bAd(Ti
 | 
			
		||||
z_Iq3|v92-CF^bT(QBjDC2!>38Aq)Z_)fqqlU_a}7*x`1L%L1DOCobkHrrgtrJ%pXM
 | 
			
		||||
z-`RTf%Ap=xFf(APKYu4~5gWuDF+emB1w^PcC>0n<Fc642ySl_F0wZxWY4O}jDu4ta
 | 
			
		||||
z0I&e$60p>9Z(>49aSiJdiV%V-2!8$R{2ssy@cDylo235N<5vA!BwwXo^)4QM@%tOA
 | 
			
		||||
z`)BaVY473({OsO$|Li}yegDIouP)Djdi&>>-~8a!Zz=YZ*Z%mkr(FE<?_1ljJ-ySv
 | 
			
		||||
a`R(MOy#DC^r?+<m16P;Vy+`kS{N;aV4RQYf
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..eb90e106962d0f94df305c87f0acacea2b82a637
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 125
 | 
			
		||||
zcmXZSu?>JQ3<N++1V}ca`+@;jfC;E+Q?eLIB*Sv%9bxI@xBO9(_$;*2MmrsJQl^V!
 | 
			
		||||
n!apW6P*wE>Od@c%)|5|^)GJSczrqNVT0I3OFNC3ozWx3H*SQ~f
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013B.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index f441d09a5fd26b62561c43424e14d19ea20c006b..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1158
 | 
			
		||||
zcmd^-!K>U<6vj`jklOe<i!1_0NF|FA0)`SKLKd;+)%c9Ql%|kH77;=jFpDfwh!7!Q
 | 
			
		||||
z7K4nE#ViJl8etZJjyj7hW-&s*E+Py#mJtSwFi49-nZ+!+c;M!E?Z4sW-gCM4aDL}<
 | 
			
		||||
zzwh(g=f=s^SFQrU$=Q3ScgTK)te37_Ch@H=zj+nlGTi>)?k#fUS(@!prfDJ~$8ik9
 | 
			
		||||
z&@@d^l%(*2*kgIB$AYDbhAe0zhl|C<Z1!wAJxnJ1Jl_q6U6O2~XcYvl?>DZybe!6<
 | 
			
		||||
z=7v#e+Ei5wS)NEzE{Y>T$ap^GxR_-lh6#GT0Zn@p<x-SQQ5Jv!pabAxhmSYdwYXX0
 | 
			
		||||
zy2iG`roiPG>+E8d9H-H~2zFzCJ95{Vy-KYnG3&^fh59tm3SZ4VW$4JMEyb1?7=2F{
 | 
			
		||||
zY>hV+PLo(!WJIBNJRbM^{cgAGx^A=CtX8YGZJVZ9EEaWL&t|i#s>-sQOeW*;cr+Si
 | 
			
		||||
zS(c`09LHf820`HazU#V<<5-qu7>2Ivs;VlAB1uxe-xmZS#xOh%20PDNJ8omybHgk(
 | 
			
		||||
zeXMAiq(q|R3w@j8b(WQTj6l;Y)l~VS9L^_cmB-~UEYe_{_@l_p0w?jU*fT>%AK02_
 | 
			
		||||
zDvmDOnp9?f9@|-9#-28?W!DfbRnTQFN&PT#27%@JhV7_^C2NMLXnn-!&^g<s{;-hd
 | 
			
		||||
z317I(P^Tghh}PJ3xLjgUV3MHcp{60vBft^hF~AmJ1<(N002M$1Fak&cB7gya3qT|z
 | 
			
		||||
zdhPevwm6$%o?{fDZKI+P7ZD7Z1Vb1EK&mr<0KopQ@1eu(659gn1g9?MDyH1Ch&_b8
 | 
			
		||||
z-JrMi=#@h~v|wStTz~#f+#=S9IbwilAPR_3X;3OKmS89lbM|$KQv^ohXwu@jl~e!;
 | 
			
		||||
zKmcF?$R%K@<KD!Cl;RrJB@`h9RS^98<m7#TOK|_rxlL04>+ys7w@AL~&9l>+cR%^#
 | 
			
		||||
z-WNBn!S$D4_zRmyU;X~ZryqX&=TA?szxc~<Z{PU#$v^ilu08nr-S6!C`h%ZE`uOP5
 | 
			
		||||
Y&FVGk`{MPd1OR8Z&QE`Q=cCX51=ZSc1^@s6
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..17fccdc69b5cec2749fd6a8b92b56c786df67da0
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 131
 | 
			
		||||
zcmd;JU}pdU4InlKVtXL=2I6oajtAmwAT9@D1~z>t_|L$uufJu-jvc%7^}*~-TeoiA
 | 
			
		||||
f0c8W#?A#1wvoP!HgJ_Ui5P-3_ZbGmjGW!1kYU3aE
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/013D.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 96045927b9d5a299400298521ec53fd0ef0958b3..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1152
 | 
			
		||||
zcmd^7F{`9j6h6rYd|7!|SV&@FK$0meEG#T6%*MBv7sGQ|7c49c2s?!V3j+o$Tw*}N
 | 
			
		||||
z1Pn|ug@wfw7LrUJ7E?@Nv5+YyWQr+fSr?|*kSQiG#X`0ToZQ{Nk<0n+<=(^j&f$LF
 | 
			
		||||
z4-an4%ex=m1%S)z&#xYm^MZi7xI^}Li+{fcxC0Nqd~}~&1&-zz%Cam(<awTDS(>IP
 | 
			
		||||
zijq}9lo(E+7!GVrG8Ivmcw8=Dx9zL>{4|>#%koeZLz?d5coT-}Am}}B<+`11FHE!1
 | 
			
		||||
z^|_{1iZYYsQj#X3m<vM2^9jerEE_V+n5KP-@+iuoC>y{8FaYp$z?VB5*0@{Yw!?LU
 | 
			
		||||
zeTAzjcKPczJ<sD~6&|L+e&TI&XOr1|YIU*MM#enUt3WG#wQ!ZpkrP`A&5>`2jxJa#
 | 
			
		||||
zugjbwv69G~&*$UucsLw}Vc6|<o6TmuUiW>!TrRt=YumPIn!2uMv)ObyolGWqo@ZH>
 | 
			
		||||
zBuNxSVHgHM;CY_wy0&ebrfC?4rfI6G%CbBfjYLsQFpAFO@xk}EuGibn!nA7Ln5ud%
 | 
			
		||||
ztFa^p;>h6zgX0v26=|BI`lejg#bTB<Wl|SWm4(wZn8aQlx@ll1z7@H~*wKAUbq&SQ
 | 
			
		||||
z<vI__#K}V|@%6Ezc&21)qM`6<7DTZ-4s9<m9al4LMK>i?A0fu4!QHQnr<J@&h00?K
 | 
			
		||||
zgNh{}TH`R_YK2vWX^Os&x{iW?0B3-g0DFK9Ko8IXGyoOA1Rw*50mc9x0FjL7bv)vF
 | 
			
		||||
zjcto%iE)gMgQ`kgL}*A58p1&cNOcYn0yuB_o(9~na9v@S;@rbh!;F6wbEk+ojG4Vp
 | 
			
		||||
zZ(QoB4NDUi#@jh@kJurWh#{hhC?Z0mL#@J8hC(Ff92qjNimc4jq{Uk+X#g^S2*3f5
 | 
			
		||||
zN5I;^qlGCc#Vu@Ws3HiPF#O}s%P#=lfo~q(I3)GIUO#JpN#v{K>#KW@zI`4%W8VAm
 | 
			
		||||
z)8Bv1HlKVHNI%`a!TY~GV;=wgg5de>2N(Y+PrkngP~3hTJ$~U5+W=hOzq$J5v#-AU
 | 
			
		||||
E5Bp+lwg3PC
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..54b92066e9176728d8a77f546965dca6c2459277
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 142
 | 
			
		||||
zcmd;J;A8*+4InlGVp|~g1maL2P6FZrAg%*q23CCt_|L$mufKiU_Fek={~6fz^*3$Z
 | 
			
		||||
rx)sI-s@S|8B+da=yLmg9!>O;o1*B*TjJIt&NH<s$%v3fekdFTVVW=j7
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0172.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 411693d82027f226fdd98706121a6d056f37e040..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1163
 | 
			
		||||
zcmd^-!K>p`6vmH^ka1$kB8z}gB1Ei^MT8)c$s)X$_lVEP%P<*?kVV7@1+&N^N`x!|
 | 
			
		||||
zW>KU_gbq{*l0_F;l(CBlT~w?xi;9IQSg>G_E=KI4V1>6BMC5p#f5XeY=W_4i{LbZm
 | 
			
		||||
z-zT>&&CZQyZva5&;`OuJWWP?<)7P(&_}ZsmJ_m3OZoPTuoE!y?<`~MdEJWmao@H5@
 | 
			
		||||
zrYVY&RY8;(PM{bLY)vv1QI~j}%^poASL5+vG};%%uHSFdbQ8y`FkA+~!t>^?+t~Kh
 | 
			
		||||
zG;3WSYg(x&BUvsaX&{QZAY?qBa9qr?A;a`&+NUUwq8y5{0Zae`01rESxWRUbn>nr<
 | 
			
		||||
zT-LZKaX!Q*e>6#t<9J_&yJ4^$c<bC*W%eSqn%JB~#yHf=Kr4K;?<$!iC$<!tUEdHL
 | 
			
		||||
zU9ePMmpMgZC6PHEkNf?8x7)RCyV-13tJQM3Tr3u|*{o@r$z)R3byZcP(P%gv4hDlf
 | 
			
		||||
z&$BE`k|c_vFbsnr@I23TUE8)z(=-f2(==68Wm)cayP_y27)8fkZ|D1K*IU@m)U+zy
 | 
			
		||||
z7^-?MtFa^pV%OmXgX0v26=|BI7IiVJ`qNQX7fIER$}AkF!65eX&`kq7@vX=;dXDZ}
 | 
			
		||||
zs%t2YE?0R_Bu*Y$iLdt@#WN*a6Agt=vmlDyUTAxP>A0F{E4nGEdKWQ1wC;9p+%M&6
 | 
			
		||||
zDwH1EH>g+wqBXWH&gWQ`n5O9asOu;Q2yg^=2(SfM0W1I-fEu6#7yx7dF+dN%10a$S
 | 
			
		||||
zz4m)tE^#u!qQE#t$3aykE+QB*35GBTfK=xIA%OE=-$RSrIW9|VQXG3&XqfR=F?WcV
 | 
			
		||||
zU60xN^vb2~+b}a>YCL`?ZV?;A0x?815k*9(b*NMr%Fq{yIlG3;t0F7&G->hJN*aI+
 | 
			
		||||
zAOdgz<PxwlaBpEsN^uSA3d#t=It(BD)_DWq3Hadlr9)Ex>v2!}T_Rs~^WyB}&PTtz
 | 
			
		||||
z`os5~?_PN3sT2SFkLO?M{?*(&x%-|!?tJ?s^Y-8Ga(An%arof<)31Mh`Ncnf{N}Tt
 | 
			
		||||
d{yF{P=I3pf{qX0P-XavZIKMpm>hztD{{`a~asU7T
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.lmp
 | 
			
		||||
index 30f1c79d8f49a678ca7efb9830d7c4b131673e9c..2f5ee22b76a1ce965e7ff13818670940834bf02b 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 146
 | 
			
		||||
zcmYL>%ME}q3`0YUpmY*$J}>|?umKaW00Xd3|JxNuLc-E>97~B4FCtb}`bKtgkds{G
 | 
			
		||||
xCJz}WeCl=vN~VA=Mq6!Ci6Lm?0ZyPMS|1iBpb>7y(Nj*fanY+7V=kKi_b-_HCt?5q
 | 
			
		||||
 | 
			
		||||
literal 137
 | 
			
		||||
zcmYL>%ME}q3`0{6&{4SgzyK`30xZA)48TxH`q{3ys1lZ5WIIZtL=g$Ha&BZN2RX?_
 | 
			
		||||
rZt{?6#!w3jkP`(oiEKTa>IelW&hFbNDl<br@#LirZ)PcX|9^b}tR5xZ
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.png b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/040D.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 5cd59fa7c3835f3f0db5b661c089afc0a32f32c1..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 1178
 | 
			
		||||
zcmd^7L963b6h1PGJYIMNsTjsAB4nhC2w4OP7$Gy}J>xTvm&arv3_&7hkwwJ7M94tE
 | 
			
		||||
zfLRnNnni^!GLS_VSrjc8q+r1=#z&N*U35{fV!;uMyhRtY7<b3}=5Kho_kP@SIN!P4
 | 
			
		||||
z@B94X+&DUX<q!alPTxJgOYnf~!-E^-{Nd*Q+v`N|;Le8xuj2;y-CMsCfQz$xC*;nv
 | 
			
		||||
zG|Nz?X(A%Wah*<wrfG_zB!w45hUF=S1xpnTS<pldr_*QS@zc@hYB<~##kSYmr0FV-
 | 
			
		||||
z7h%}?{@itEj?-Ay#4u`28>wn3%R@;jM6oXjInQStm#}Qy>4Xdu(6mQUE=AcCWdRrf
 | 
			
		||||
zIsjg6@yQA|Ev{y`Y_P3yUgB(kP5x}0?nm*i47US+-FKI{y~wP2YBsSkj`UHemA+bd
 | 
			
		||||
zO3#rqTS_c3G`gNH*cxvtoF=id*bxP0zu)h6yX|(n*=$y;)nc(|+jc&mPp8wSX~yGm
 | 
			
		||||
zUDs7r4Tr<QV9@XP^E}V8EJ>0mio!7TecyFm$8jvnG7Ll4byZarMUf<_+wBU1kYE(;
 | 
			
		||||
zgJA1<OUIpC_QWtNO&=&)E-A4n`9jy`c%5ZsrX$caOU>(ITJ<KwtS*wO7nNB!Nd127
 | 
			
		||||
z=Ao1NR^pkFqX)L;nTn&!wkB1%UnF)Onu(_cw(J_Br3$*trI{baP7qqIZ`h7%Sh8k_
 | 
			
		||||
ziq=JpuQtwlravyFNy?XQr>9e~2t;e#Y;ZQivcxn+&qGZ^o=1Q^z!QKqzye?n&;Zl`
 | 
			
		||||
zB|sk_1Bd|v02hErM)cb4ux)WX#-hMDM%zY3Aub{`WDy#|K?q294iEy^*K@BnxSnBK
 | 
			
		||||
zVw2*?#X`l5dm6J>5wi`LwMQ=;>ahh=119?Ocj6kcK`anML<3Pkgj$12fq?`)fta(a
 | 
			
		||||
zOPnHfB#tH{o?A%;kN^Y#7JwuHD;;+xrlb{@u&khrAgsgi*T0V519$;GxqEJt(*HWX
 | 
			
		||||
zR{s{sSG{q1eCOW7-(LIa=NIACgUgFgPyTuT{_ECPkN)`a)<y8e<?WZ4vv=P7_v7OS
 | 
			
		||||
kfBMcZ_s=h>M<1PipWnK9)T&>;ObFog<ox)Xw?FvoKSE}3#sB~S
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0419.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0419.lmp
 | 
			
		||||
index 950f91656cde3f58cc7b989cb6866172d87618f8..c48e80d4f5e61683385155fc0ded67d91f17acf5 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 152
 | 
			
		||||
zcmYj~+X;X`3<M7pk*mbN{jdW&umd}=13R#pdv~Yfsp!Il3|UBTthqA42oub(zzQ4e
 | 
			
		||||
q&~|!q7+bd#iBvU9A$jK>6^n9U+-0;-`ITeH<-JPY`<T$?dvXH38!7Do
 | 
			
		||||
 | 
			
		||||
literal 138
 | 
			
		||||
zcmYL>$qj%o3<Mn>kW%>hK>;*C12jMb6hKdLuI|DFMZ(fp-nG|Wyofki=^N~DzzG-J
 | 
			
		||||
r@W3?dsOA>coG8^M9yewSVF=6;@xF~|Ej=~PQY;nG^JbQEpZ~Wn%e5vA
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0400.lmp b/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/0400.lmp
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000000000000000000000000000000000000..5a41b45e3e0ce65d909ec41c2881c7d0186de6cd
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 142
 | 
			
		||||
zcmXAh%MFAu3`7k9El>$Z&eT8$TftsQLI~1aXdIrkBRy-zzriLm3pP_1SYd-N{NR8a
 | 
			
		||||
y`XJZS^-?Vt&RTDT4>|6+cxRG!DMv(XMyV*(R5Pg^*pA9d1iv~}8UMY1LeC4<i!V|D
 | 
			
		||||
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.png b/wadsrc_extra/static/filter/game-chex/fonts/defsmallfont/2012.png
 | 
			
		||||
deleted file mode 100644
 | 
			
		||||
index 4ffc36ccaceed43e8d9aa10ace07100e8e8eac9b..0000000000000000000000000000000000000000
 | 
			
		||||
GIT binary patch
 | 
			
		||||
literal 0
 | 
			
		||||
HcmV?d00001
 | 
			
		||||
 | 
			
		||||
literal 897
 | 
			
		||||
zcmW+!F{q?w5T4`;UrrttLJYC6u-L-F5DN<nx$_;~i{U)tfg~1&SXfw?#6pM!AtqVE
 | 
			
		||||
z78YA9cLoe>VL-?h7F#UD;tGp}Y_Y{cEVj6WEw<R=it94@-@!ls!1poV%rM_CPoJ3A
 | 
			
		||||
z_dmQ30N1yVZ$2aWip0IEd*pxq{-5970pYg~z9JbA@jnT^X9*8aKYjLyKmtc|3}sms
 | 
			
		||||
z;dq{BS(c`0ilSsy5G95aD24-DlT1a_B_7x7H*NcRxjZixr?Nawr(>4wlVlr3LlE?y
 | 
			
		||||
zw{hLhwpXUv==xIADn(hyaw$nOQ7i-@=lPW55|)h^CZuVfqCARnD9Q#f0Sq$V`G~Lf
 | 
			
		||||
zI1aeq;I6}=!M?)H9J}I8n_ZU4sfv#C;4t%cg|p4=KC`;SY-3{?=~bYWzB+Z4+>ujT
 | 
			
		||||
zip+^`h>k8;DzD3&BC(RlTrQW>>2y3E$8p^6_uK7u7>2&@*XwoHb#2==O;gwPVzHRd
 | 
			
		||||
z=d;<YD2hDK(=?6aIEtbm2t3boUDvj4(=-jk&@@d|RaurNlZhybDaP?743ECQbG_bn
 | 
			
		||||
zR;E?!#$444SxqE45GM{V7#ycCtVq)w)i>q3o~{;oQ>OJauJUM}1+&B}A~y@{)VE^S
 | 
			
		||||
z2p!$GRM$`(U9O9uOr0XKQeO`p#WN*a6AgvW@*qy!FtWYCbX?7}72T9neS(;rNB6KX
 | 
			
		||||
zURLrd6Dp6L8dM_P`2fceHyf-f%rf+S)O8dD1h@da0yqF{0eXNApaG}=W&k-r0uTat
 | 
			
		||||
z0OVxkUZ)cd1GX)eB_;_v4yr0~5s@K}$Pf)8K&lIX2*A1Pdmizy!J)z~!=;C%hB^N_
 | 
			
		||||
z;m$F044H#ZZ(Zu84Qmrt#@jjZfY>3Hh!LWRC?Z0mL#@JGhN(!*IWc5j6<L|5NsG5u
 | 
			
		||||
z(g0)t5r6|AAYg6a$-<13;tqB-R53(N6#ezj^(TaW@9W2(lg()MF5ZC`zkWbK_V(t%
 | 
			
		||||
ov#aO9??1i!^WP6Yf{%X#cu~;beDUv(L>S=q(UY4$9)9`5|D%0m`Tzg`
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,270 @@
 | 
			
		||||
From bc6bf8c3b04fe074020b5de17f5b486bf61b2220 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Tue, 17 Jan 2023 16:27:52 -0300
 | 
			
		||||
Subject: [PATCH 24/51] Mark non-modifying map functions as const
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 wadsrc/static/zscript/engine/maps.zs | 110 +++++++++++++++------------
 | 
			
		||||
 1 file changed, 63 insertions(+), 47 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc/static/zscript/engine/maps.zs b/wadsrc/static/zscript/engine/maps.zs
 | 
			
		||||
index d10ffe5d1..20ef85ab4 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/engine/maps.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/engine/maps.zs
 | 
			
		||||
@@ -5,11 +5,12 @@ struct Map_I32_I8 native
 | 
			
		||||
     native void Move(Map_I32_I8 other);
 | 
			
		||||
     native void Swap(Map_I32_I8 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native int Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,int value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, int value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -33,10 +34,11 @@ struct Map_I32_I16 native
 | 
			
		||||
     native void Move(Map_I32_I16 other);
 | 
			
		||||
     native void Swap(Map_I32_I16 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native int Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
     native void Insert(int key,int value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
@@ -61,11 +63,12 @@ struct Map_I32_I32 native
 | 
			
		||||
     native void Move(Map_I32_I32 other);
 | 
			
		||||
     native void Swap(Map_I32_I32 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native int Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,int value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, int value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -89,11 +92,12 @@ struct Map_I32_F32 native
 | 
			
		||||
     native void Move(Map_I32_F32 other);
 | 
			
		||||
     native void Swap(Map_I32_F32 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native double Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,double value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, double value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -117,11 +121,12 @@ struct Map_I32_F64 native
 | 
			
		||||
     native void Move(Map_I32_F64 other);
 | 
			
		||||
     native void Swap(Map_I32_F64 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native double Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,double value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, double value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -145,11 +150,12 @@ struct Map_I32_Obj native
 | 
			
		||||
     native void Move(Map_I32_Obj other);
 | 
			
		||||
     native void Swap(Map_I32_Obj other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native Object Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,Object value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, Object value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -173,11 +179,12 @@ struct Map_I32_Ptr native
 | 
			
		||||
     native void Move(Map_I32_Ptr other);
 | 
			
		||||
     native void Swap(Map_I32_Ptr other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native voidptr Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,voidptr value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, voidptr value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -198,11 +205,12 @@ struct Map_I32_Str native
 | 
			
		||||
     native void Move(Map_I32_Str other);
 | 
			
		||||
     native void Swap(Map_I32_Str other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native String Get(int key);
 | 
			
		||||
-    native bool CheckKey(int key);
 | 
			
		||||
-    native void Insert(int key,String value);
 | 
			
		||||
+    native bool CheckKey(int key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(int key, String value);
 | 
			
		||||
     native void InsertNew(int key);
 | 
			
		||||
     native void Remove(int key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -228,11 +236,12 @@ struct Map_Str_I8 native
 | 
			
		||||
     native void Move(Map_Str_I8 other);
 | 
			
		||||
     native void Swap(Map_Str_I8 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native int Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,int value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, int value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -256,11 +265,12 @@ struct Map_Str_I16 native
 | 
			
		||||
     native void Move(Map_Str_I16 other);
 | 
			
		||||
     native void Swap(Map_Str_I16 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native int Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,int value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, int value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -284,11 +294,12 @@ struct Map_Str_I32 native
 | 
			
		||||
     native void Move(Map_Str_I32 other);
 | 
			
		||||
     native void Swap(Map_Str_I32 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native int Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,int value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, int value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -312,11 +323,12 @@ struct Map_Str_F32 native
 | 
			
		||||
     native void Move(Map_Str_F32 other);
 | 
			
		||||
     native void Swap(Map_Str_F32 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native double Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,double value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, double value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -340,11 +352,12 @@ struct Map_Str_F64 native
 | 
			
		||||
     native void Move(Map_Str_F64 other);
 | 
			
		||||
     native void Swap(Map_Str_F64 other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native double Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,double value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, double value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -368,11 +381,12 @@ struct Map_Str_Obj native
 | 
			
		||||
     native void Move(Map_Str_Obj other);
 | 
			
		||||
     native void Swap(Map_Str_Obj other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native Object Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,Object value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, Object value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -396,11 +410,12 @@ struct Map_Str_Ptr native
 | 
			
		||||
     native void Move(Map_Str_Ptr other);
 | 
			
		||||
     native void Swap(Map_Str_Ptr other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native voidptr Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,voidptr value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, voidptr value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
@@ -424,11 +439,12 @@ struct Map_Str_Str native
 | 
			
		||||
     native void Move(Map_Str_Str other);
 | 
			
		||||
     native void Swap(Map_Str_Str other);
 | 
			
		||||
     native void Clear();
 | 
			
		||||
-    native uint CountUsed();
 | 
			
		||||
+    native uint CountUsed() const;
 | 
			
		||||
 
 | 
			
		||||
     native String Get(String key);
 | 
			
		||||
-    native bool CheckKey(String key);
 | 
			
		||||
-    native void Insert(String key,String value);
 | 
			
		||||
+    native bool CheckKey(String key) const;
 | 
			
		||||
+    
 | 
			
		||||
+    native void Insert(String key, String value);
 | 
			
		||||
     native void InsertNew(String key);
 | 
			
		||||
     native void Remove(String key);
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,32 @@
 | 
			
		||||
From d09cfff738f53f65efdeb1f39ce5ce1db81ee747 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Tue, 17 Jan 2023 16:33:41 -0300
 | 
			
		||||
Subject: [PATCH 25/51] Fix iterator invalidation for Map::Get
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/maps.cpp | 2 ++
 | 
			
		||||
 1 file changed, 2 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/maps.cpp b/src/common/scripting/core/maps.cpp
 | 
			
		||||
index 68eab6d3d..bfc2b676d 100644
 | 
			
		||||
--- a/src/common/scripting/core/maps.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/maps.cpp
 | 
			
		||||
@@ -125,6 +125,7 @@ template<typename M> expand_types_vm<typename M::ValueType> MapGet(M * self,expa
 | 
			
		||||
     {
 | 
			
		||||
         typename M::ValueType n {};
 | 
			
		||||
         self->Insert(key,n);
 | 
			
		||||
+        self->info->rev++; // invalidate iterators
 | 
			
		||||
         return n;
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
@@ -139,6 +140,7 @@ template<typename M> void MapGetString(M * self,expand_types_vm<typename M::KeyT
 | 
			
		||||
     {
 | 
			
		||||
         out = FString();
 | 
			
		||||
         self->Insert(key,out);
 | 
			
		||||
+        self->info->rev++; // invalidate iterators
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,59 @@
 | 
			
		||||
From 7f0b52de6fcddf98dc07ca3aa1c34e8b03e0416c Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Wed, 18 Jan 2023 21:05:47 -0300
 | 
			
		||||
Subject: [PATCH 26/51] Add Missing Read Barriers to Map Get Functions
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/maps.cpp | 22 ++++++++++++++++++----
 | 
			
		||||
 1 file changed, 18 insertions(+), 4 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/maps.cpp b/src/common/scripting/core/maps.cpp
 | 
			
		||||
index bfc2b676d..b6ae925c6 100644
 | 
			
		||||
--- a/src/common/scripting/core/maps.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/maps.cpp
 | 
			
		||||
@@ -118,8 +118,16 @@ template<typename M> unsigned int MapCountUsed(M * self)
 | 
			
		||||
 template<typename M> expand_types_vm<typename M::ValueType> MapGet(M * self,expand_types_vm<typename M::KeyType> key)
 | 
			
		||||
 {
 | 
			
		||||
     typename M::ValueType * v = self->CheckKey(key);
 | 
			
		||||
-    if (v) {
 | 
			
		||||
-        return *v;
 | 
			
		||||
+    if (v)
 | 
			
		||||
+    {
 | 
			
		||||
+        if constexpr(std::is_same_v<typename M::ValueType, DObject*>)
 | 
			
		||||
+        {
 | 
			
		||||
+            return GC::ReadBarrier(*v);
 | 
			
		||||
+        }
 | 
			
		||||
+        else
 | 
			
		||||
+        {
 | 
			
		||||
+            return *v;
 | 
			
		||||
+        }
 | 
			
		||||
     }
 | 
			
		||||
     else
 | 
			
		||||
     {
 | 
			
		||||
@@ -149,7 +157,6 @@ template<typename M> int MapCheckKey(M * self, expand_types_vm<typename M::KeyTy
 | 
			
		||||
     return self->CheckKey(key) != nullptr;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
 //
 | 
			
		||||
 // MapInsert
 | 
			
		||||
@@ -240,7 +247,14 @@ template<typename I> void MapIteratorGetKeyString(I * self, FString &out)
 | 
			
		||||
 
 | 
			
		||||
 template<typename I> expand_types_vm<typename I::ValueType> MapIteratorGetValue(I * self)
 | 
			
		||||
 {
 | 
			
		||||
-    return self->GetValue();
 | 
			
		||||
+    if constexpr(std::is_same_v<typename I::ValueType, DObject*>)
 | 
			
		||||
+    {
 | 
			
		||||
+        return GC::ReadBarrier(self->GetValue());
 | 
			
		||||
+    }
 | 
			
		||||
+    else
 | 
			
		||||
+    {
 | 
			
		||||
+        return self->GetValue();
 | 
			
		||||
+    }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 template<typename I> void MapIteratorGetValueString(I * self, FString &out)
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
From 083b99557f0b0808088a53f5ea5efca040eb25e9 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Emanuele Disco <emawind84@gmail.com>
 | 
			
		||||
Date: Tue, 24 Jan 2023 11:01:26 +0900
 | 
			
		||||
Subject: [PATCH 28/51] refactor: add some logs to help understand what is
 | 
			
		||||
 happening during soundfont selection.
 | 
			
		||||
 | 
			
		||||
It helps understand what soundfont is currently used
 | 
			
		||||
 | 
			
		||||
refs: https://github.com/ZDoom/ZMusic/pull/44
 | 
			
		||||
---
 | 
			
		||||
 src/common/audio/music/i_soundfont.cpp | 3 +++
 | 
			
		||||
 1 file changed, 3 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/audio/music/i_soundfont.cpp b/src/common/audio/music/i_soundfont.cpp
 | 
			
		||||
index f05f0cb76..af1c5634c 100644
 | 
			
		||||
--- a/src/common/audio/music/i_soundfont.cpp
 | 
			
		||||
+++ b/src/common/audio/music/i_soundfont.cpp
 | 
			
		||||
@@ -45,6 +45,7 @@
 | 
			
		||||
 #include "findfile.h"
 | 
			
		||||
 #include "i_interface.h"
 | 
			
		||||
 #include "configfile.h"
 | 
			
		||||
+#include "printf.h"
 | 
			
		||||
 
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
 //
 | 
			
		||||
@@ -447,6 +448,7 @@ const FSoundFontInfo *FSoundFontManager::FindSoundFont(const char *name, int all
 | 
			
		||||
 		// an empty name will pick the first one in a compatible format.
 | 
			
		||||
 		if (allowed & sfi.type && (name == nullptr || *name == 0 || !sfi.mName.CompareNoCase(name) || !sfi.mNameExt.CompareNoCase(name)))
 | 
			
		||||
 		{
 | 
			
		||||
+			DPrintf(DMSG_NOTIFY, "Found compatible soundfont %s\n", sfi.mNameExt.GetChars());
 | 
			
		||||
 			return &sfi;
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
@@ -455,6 +457,7 @@ const FSoundFontInfo *FSoundFontManager::FindSoundFont(const char *name, int all
 | 
			
		||||
 	{
 | 
			
		||||
 		if (allowed & sfi.type)
 | 
			
		||||
 		{
 | 
			
		||||
+			DPrintf(DMSG_NOTIFY, "Unable to find %s soundfont. Falling back to %s\n", name, sfi.mNameExt.GetChars());
 | 
			
		||||
 			return &sfi;
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
From 79f306ee58a7276d2bf81253540f36995bedb77a Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
Date: Tue, 24 Jan 2023 14:23:04 -0600
 | 
			
		||||
Subject: [PATCH 29/51] Added check for invalid class on in-VM instantiation
 | 
			
		||||
 | 
			
		||||
Signed-off-by: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/scopebarrier.cpp | 1 +
 | 
			
		||||
 1 file changed, 1 insertion(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/scopebarrier.cpp b/src/common/scripting/core/scopebarrier.cpp
 | 
			
		||||
index f4d584c7b..a6c5a2370 100644
 | 
			
		||||
--- a/src/common/scripting/core/scopebarrier.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/scopebarrier.cpp
 | 
			
		||||
@@ -211,6 +211,7 @@ void FScopeBarrier::AddFlags(int flags1, int flags2, const char* name)
 | 
			
		||||
 // these are for vmexec.h
 | 
			
		||||
 void FScopeBarrier::ValidateNew(PClass* cls, int outerside)
 | 
			
		||||
 {
 | 
			
		||||
+	if (cls->VMType == nullptr) ThrowAbortException(X_OTHER,"Cannot instantiate invalid class %s", cls->TypeName.GetChars());
 | 
			
		||||
 	int innerside = FScopeBarrier::SideFromObjectFlags(cls->VMType->ScopeFlags);
 | 
			
		||||
 	if ((outerside != innerside) && (innerside != FScopeBarrier::Side_PlainData)) // "cannot construct ui class ... from data context"
 | 
			
		||||
 		ThrowAbortException(X_OTHER, "Cannot construct %s class %s from %s context", FScopeBarrier::StringFromSide(innerside), cls->TypeName.GetChars(), FScopeBarrier::StringFromSide(outerside));
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
From c0945a116a60e7248bc3356a13b2fa0b49d42db1 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
Date: Thu, 26 Jan 2023 07:39:58 -0600
 | 
			
		||||
Subject: [PATCH 30/51] Fixed a bug where calling an invalid virtual function
 | 
			
		||||
 would cause a crash.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/vm/vmexec.h | 1 +
 | 
			
		||||
 1 file changed, 1 insertion(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/vm/vmexec.h b/src/common/scripting/vm/vmexec.h
 | 
			
		||||
index 6716509da..f303304b8 100644
 | 
			
		||||
--- a/src/common/scripting/vm/vmexec.h
 | 
			
		||||
+++ b/src/common/scripting/vm/vmexec.h
 | 
			
		||||
@@ -849,6 +849,7 @@ static int ExecScriptFunc(VMFrameStack *stack, VMReturn *ret, int numret)
 | 
			
		||||
 				return 0;
 | 
			
		||||
 			}
 | 
			
		||||
 			auto p = o->GetClass();
 | 
			
		||||
+			if(p->Virtuals.Size() <= 0) ThrowAbortException(X_OTHER,"Attempted to call an invalid virtual function in class %s",p->TypeName.GetChars());
 | 
			
		||||
 			assert(C < p->Virtuals.Size());
 | 
			
		||||
 			reg.a[a] = p->Virtuals[C];
 | 
			
		||||
 		}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								games-fps/gzdoom/files/0031-GLES-Fix-first-wipe.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								games-fps/gzdoom/files/0031-GLES-Fix-first-wipe.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
From 6e4521b749d497be67617095786f283afdb3d35c Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Emile Belanger <emile.belanger@gmail.com>
 | 
			
		||||
Date: Sun, 29 Jan 2023 15:56:14 +0000
 | 
			
		||||
Subject: [PATCH 31/51] GLES: Fix first wipe
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/rendering/hwrenderer/data/hw_viewpointbuffer.cpp | 2 ++
 | 
			
		||||
 1 file changed, 2 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.cpp b/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.cpp
 | 
			
		||||
index f60cda5e1..5a94ba0bd 100644
 | 
			
		||||
--- a/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.cpp
 | 
			
		||||
+++ b/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.cpp
 | 
			
		||||
@@ -124,6 +124,8 @@ void HWViewpointBuffer::Clear()
 | 
			
		||||
 
 | 
			
		||||
 	if (needNewPipeline)
 | 
			
		||||
 	{
 | 
			
		||||
+		mLastMappedIndex = UINT_MAX;
 | 
			
		||||
+
 | 
			
		||||
 		mPipelinePos++;
 | 
			
		||||
 		mPipelinePos %= mPipelineNbr;
 | 
			
		||||
 	}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,64 @@
 | 
			
		||||
From 547904ce9a4804a6ccdf7c0ccc7dedfaa60985c9 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Wed, 14 Jun 2023 20:14:13 -0300
 | 
			
		||||
Subject: [PATCH 32/51] Mark const methods as const in pseudo-generics
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/core/types.cpp | 20 ++++++++++----------
 | 
			
		||||
 1 file changed, 10 insertions(+), 10 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/core/types.cpp b/src/common/scripting/core/types.cpp
 | 
			
		||||
index 838275dad..8a4c5bcab 100644
 | 
			
		||||
--- a/src/common/scripting/core/types.cpp
 | 
			
		||||
+++ b/src/common/scripting/core/types.cpp
 | 
			
		||||
@@ -2239,7 +2239,7 @@ enum OverrideFunctionArgType {
 | 
			
		||||
 	OFN_ARG_KEY_VAL,
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
-template<class MT, OverrideFunctionRetType RetType, OverrideFunctionArgType ArgType >
 | 
			
		||||
+template<OverrideFunctionRetType RetType, OverrideFunctionArgType ArgType, int ExtraFlags = 0, class MT>
 | 
			
		||||
 void CreateOverrideFunction(MT *self, FName name)
 | 
			
		||||
 {
 | 
			
		||||
 	auto Fn = Create<PFunction>(self->BackingType, name);
 | 
			
		||||
@@ -2294,7 +2294,7 @@ void CreateOverrideFunction(MT *self, FName name)
 | 
			
		||||
 		argnames.Push(NAME_Value);
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-	Fn->AddVariant(NewPrototype(ret, args), argflags, argnames, *NativeFn->VMPointer, VARF_Method | VARF_Native,SUF_ACTOR | SUF_OVERLAY | SUF_WEAPON | SUF_ITEM);
 | 
			
		||||
+	Fn->AddVariant(NewPrototype(ret, args), argflags, argnames, *NativeFn->VMPointer, VARF_Method | VARF_Native | ExtraFlags, SUF_ACTOR | SUF_OVERLAY | SUF_WEAPON | SUF_ITEM);
 | 
			
		||||
 	self->FnOverrides.Insert(name, Fn);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -2304,11 +2304,11 @@ PMap::PMap(PType *keytype, PType *valtype, PStruct *backing, int backing_class)
 | 
			
		||||
 	mDescriptiveName.Format("Map<%s, %s>", keytype->DescriptiveName(), valtype->DescriptiveName());
 | 
			
		||||
 	Size = sizeof(ZSFMap);
 | 
			
		||||
 	Align = alignof(ZSFMap);
 | 
			
		||||
-	CreateOverrideFunction<PMap, OFN_RET_VAL, OFN_ARG_KEY>(this, NAME_Get);
 | 
			
		||||
-	CreateOverrideFunction<PMap, OFN_RET_BOOL, OFN_ARG_KEY>(this, NAME_CheckKey);
 | 
			
		||||
-	CreateOverrideFunction<PMap, OFN_RET_VOID, OFN_ARG_KEY_VAL>(this, NAME_Insert);
 | 
			
		||||
-	CreateOverrideFunction<PMap, OFN_RET_VOID, OFN_ARG_KEY>(this, NAME_InsertNew);
 | 
			
		||||
-	CreateOverrideFunction<PMap, OFN_RET_VOID, OFN_ARG_KEY>(this, NAME_Remove);
 | 
			
		||||
+	CreateOverrideFunction< OFN_RET_VAL      , OFN_ARG_KEY     > (this, NAME_Get);
 | 
			
		||||
+	CreateOverrideFunction< OFN_RET_BOOL     , OFN_ARG_KEY     , VARF_ReadOnly> (this, NAME_CheckKey);
 | 
			
		||||
+	CreateOverrideFunction< OFN_RET_VOID     , OFN_ARG_KEY_VAL > (this, NAME_Insert);
 | 
			
		||||
+	CreateOverrideFunction< OFN_RET_VOID     , OFN_ARG_KEY     > (this, NAME_InsertNew);
 | 
			
		||||
+	CreateOverrideFunction< OFN_RET_VOID     , OFN_ARG_KEY     > (this, NAME_Remove);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
@@ -2770,9 +2770,9 @@ PMapIterator::PMapIterator(PType *keytype, PType *valtype, PStruct *backing, int
 | 
			
		||||
 	mDescriptiveName.Format("MapIterator<%s, %s>", keytype->DescriptiveName(), valtype->DescriptiveName());
 | 
			
		||||
 	Size = sizeof(ZSFMap);
 | 
			
		||||
 	Align = alignof(ZSFMap);
 | 
			
		||||
-	CreateOverrideFunction<PMapIterator, OFN_RET_KEY, OFN_ARG_VOID>(this, NAME_GetKey);
 | 
			
		||||
-	CreateOverrideFunction<PMapIterator, OFN_RET_VAL, OFN_ARG_VOID>(this, NAME_GetValue);
 | 
			
		||||
-	CreateOverrideFunction<PMapIterator, OFN_RET_VOID, OFN_ARG_VAL>(this, NAME_SetValue);
 | 
			
		||||
+	CreateOverrideFunction<OFN_RET_KEY, OFN_ARG_VOID>(this, NAME_GetKey);
 | 
			
		||||
+	CreateOverrideFunction<OFN_RET_VAL, OFN_ARG_VOID>(this, NAME_GetValue);
 | 
			
		||||
+	CreateOverrideFunction<OFN_RET_VOID, OFN_ARG_VAL>(this, NAME_SetValue);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,474 @@
 | 
			
		||||
From adcb59e00e3f5a4e623be4b0b629b4bd8dfe933f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Emile Belanger <emile.belanger@gmail.com>
 | 
			
		||||
Date: Sat, 4 Feb 2023 22:20:05 +0000
 | 
			
		||||
Subject: [PATCH 33/51] Fixing GLES mode to work on real GLES hardware and
 | 
			
		||||
 OpenGL 2 again
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/rendering/gles/gles_buffers.cpp    |  10 +-
 | 
			
		||||
 src/common/rendering/gles/gles_hwtexture.cpp  |  59 +++----
 | 
			
		||||
 .../rendering/gles/gles_renderstate.cpp       |   2 +-
 | 
			
		||||
 src/common/rendering/gles/gles_system.cpp     | 153 +++++++++++-------
 | 
			
		||||
 src/common/rendering/gles/gles_system.h       |  70 +++++---
 | 
			
		||||
 5 files changed, 172 insertions(+), 122 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/rendering/gles/gles_buffers.cpp b/src/common/rendering/gles/gles_buffers.cpp
 | 
			
		||||
index cf7b8ae97..7f56f737f 100644
 | 
			
		||||
--- a/src/common/rendering/gles/gles_buffers.cpp
 | 
			
		||||
+++ b/src/common/rendering/gles/gles_buffers.cpp
 | 
			
		||||
@@ -234,8 +234,7 @@ void GLBuffer::Resize(size_t newsize)
 | 
			
		||||
 
 | 
			
		||||
 void GLBuffer::GPUDropSync()
 | 
			
		||||
 {
 | 
			
		||||
-#if !(USE_GLES2)  // Only applicable when running on desktop for now
 | 
			
		||||
-	if (gles.useMappedBuffers && glFenceSync && glClientWaitSync)
 | 
			
		||||
+	if (gles.glesMode > GLES_MODE_GLES && gles.useMappedBuffers && glFenceSync && glDeleteSync)
 | 
			
		||||
 	{
 | 
			
		||||
 		if (mGLSync != NULL)
 | 
			
		||||
 		{
 | 
			
		||||
@@ -244,13 +243,11 @@ void GLBuffer::GPUDropSync()
 | 
			
		||||
 
 | 
			
		||||
 		mGLSync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
 | 
			
		||||
 	}
 | 
			
		||||
-#endif
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 void GLBuffer::GPUWaitSync()
 | 
			
		||||
 {
 | 
			
		||||
-#if !(USE_GLES2)  // Only applicable when running on desktop for now
 | 
			
		||||
-	if (gles.useMappedBuffers && glFenceSync && glClientWaitSync)
 | 
			
		||||
+	if (gles.glesMode > GLES_MODE_GLES && gles.useMappedBuffers && glDeleteSync && glClientWaitSync)
 | 
			
		||||
 	{
 | 
			
		||||
 		GLenum status = glClientWaitSync(mGLSync, GL_SYNC_FLUSH_COMMANDS_BIT, 1000 * 1000 * 50); // Wait for a max of 50ms...
 | 
			
		||||
 
 | 
			
		||||
@@ -263,7 +260,6 @@ void GLBuffer::GPUWaitSync()
 | 
			
		||||
 
 | 
			
		||||
 		mGLSync = NULL;
 | 
			
		||||
 	}
 | 
			
		||||
-#endif
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -318,7 +314,7 @@ void GLVertexBuffer::Bind(int *offsets)
 | 
			
		||||
 				glVertexAttribPointer(i, attrinf.size, attrinf.format, attrinf.normalize, (GLsizei)mStride, (void*)(intptr_t)ofs);
 | 
			
		||||
 			else
 | 
			
		||||
 			{
 | 
			
		||||
-				if (gles.gles3Features)
 | 
			
		||||
+				if (gles.glesMode >= GLES_MODE_OGL3)
 | 
			
		||||
 					glVertexAttribIPointer(i, attrinf.size, attrinf.format, (GLsizei)mStride, (void*)(intptr_t)ofs);
 | 
			
		||||
 			}
 | 
			
		||||
 		}
 | 
			
		||||
diff --git a/src/common/rendering/gles/gles_hwtexture.cpp b/src/common/rendering/gles/gles_hwtexture.cpp
 | 
			
		||||
index 43425ce7d..3f07c65d6 100644
 | 
			
		||||
--- a/src/common/rendering/gles/gles_hwtexture.cpp
 | 
			
		||||
+++ b/src/common/rendering/gles/gles_hwtexture.cpp
 | 
			
		||||
@@ -130,44 +130,47 @@ unsigned int FHardwareTexture::CreateTexture(unsigned char * buffer, int w, int
 | 
			
		||||
 
 | 
			
		||||
 	int sourcetype;
 | 
			
		||||
 
 | 
			
		||||
-
 | 
			
		||||
-#if USE_GLES2
 | 
			
		||||
-	if (glTextureBytes == 1)
 | 
			
		||||
+	if (gles.glesMode == GLES_MODE_GLES)
 | 
			
		||||
 	{
 | 
			
		||||
-		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 | 
			
		||||
-		sourcetype = GL_ALPHA;
 | 
			
		||||
-		texformat = GL_ALPHA;
 | 
			
		||||
-	}
 | 
			
		||||
-	else
 | 
			
		||||
-	{
 | 
			
		||||
-		sourcetype = GL_BGRA;
 | 
			
		||||
-		texformat = GL_BGRA;
 | 
			
		||||
-	}
 | 
			
		||||
-#else
 | 
			
		||||
-	if (glTextureBytes == 1)
 | 
			
		||||
-	{
 | 
			
		||||
-		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 | 
			
		||||
-		sourcetype = GL_RED;
 | 
			
		||||
-		texformat = GL_RED;
 | 
			
		||||
+		if (glTextureBytes == 1)
 | 
			
		||||
+		{
 | 
			
		||||
+			glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 | 
			
		||||
+			sourcetype = GL_ALPHA;
 | 
			
		||||
+			texformat = GL_ALPHA;
 | 
			
		||||
+		}
 | 
			
		||||
+		else
 | 
			
		||||
+		{
 | 
			
		||||
+			sourcetype = GL_BGRA; // These two must be the same
 | 
			
		||||
+			texformat = GL_BGRA;
 | 
			
		||||
+		}
 | 
			
		||||
 	}
 | 
			
		||||
 	else
 | 
			
		||||
 	{
 | 
			
		||||
-		sourcetype = GL_BGRA;
 | 
			
		||||
-		texformat = GL_RGBA;
 | 
			
		||||
+		if (glTextureBytes == 1) //Use Red channel instread becuase Alpha does not work in OpenGL, swizzle later
 | 
			
		||||
+		{
 | 
			
		||||
+			glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 | 
			
		||||
+			sourcetype = GL_RED;
 | 
			
		||||
+			texformat = GL_RED;
 | 
			
		||||
+		}
 | 
			
		||||
+		else
 | 
			
		||||
+		{
 | 
			
		||||
+			sourcetype = GL_BGRA;
 | 
			
		||||
+			texformat = GL_RGBA;
 | 
			
		||||
+		}
 | 
			
		||||
 	}
 | 
			
		||||
-#endif
 | 
			
		||||
 
 | 
			
		||||
 	glTexImage2D(GL_TEXTURE_2D, 0, texformat, rw, rh, 0, sourcetype, GL_UNSIGNED_BYTE, buffer);
 | 
			
		||||
 
 | 
			
		||||
-#if !(USE_GLES2)
 | 
			
		||||
-	// The shader is using the alpha channel instead of red, this work on GLES but not on GL
 | 
			
		||||
-	// So the texture uses GL_RED and this swizzels the red channel into the alpha channel
 | 
			
		||||
-	if (glTextureBytes == 1)
 | 
			
		||||
+	if (gles.glesMode != GLES_MODE_GLES)
 | 
			
		||||
 	{
 | 
			
		||||
-		GLint swizzleMask[] = { GL_ZERO, GL_ZERO, GL_ZERO, GL_RED };
 | 
			
		||||
-		glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask);
 | 
			
		||||
+		// The shader is using the alpha channel instead of red, this work on GLES but not on GL
 | 
			
		||||
+		// So the texture uses GL_RED and this swizzels the red channel into the alpha channel
 | 
			
		||||
+		if (glTextureBytes == 1)
 | 
			
		||||
+		{
 | 
			
		||||
+			GLint swizzleMask[] = { GL_ZERO, GL_ZERO, GL_ZERO, GL_RED };
 | 
			
		||||
+			glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask);
 | 
			
		||||
+		}
 | 
			
		||||
 	}
 | 
			
		||||
-#endif
 | 
			
		||||
 
 | 
			
		||||
 	if (deletebuffer && buffer) free(buffer);
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/common/rendering/gles/gles_renderstate.cpp b/src/common/rendering/gles/gles_renderstate.cpp
 | 
			
		||||
index 87cf2681e..5995fd3b6 100644
 | 
			
		||||
--- a/src/common/rendering/gles/gles_renderstate.cpp
 | 
			
		||||
+++ b/src/common/rendering/gles/gles_renderstate.cpp
 | 
			
		||||
@@ -346,7 +346,7 @@ bool FGLRenderState::ApplyShader()
 | 
			
		||||
 		activeShader->cur->muLightRange.Set(range);
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-	if (gles.gles3Features)
 | 
			
		||||
+	if (gles.glesMode >= GLES_MODE_OGL3)
 | 
			
		||||
 	{
 | 
			
		||||
 		// Upload bone data
 | 
			
		||||
 		// NOTE, this is pretty inefficient, it will be reloading the same data over and over in a single frame
 | 
			
		||||
diff --git a/src/common/rendering/gles/gles_system.cpp b/src/common/rendering/gles/gles_system.cpp
 | 
			
		||||
index 22ba8cad6..bb7d61687 100644
 | 
			
		||||
--- a/src/common/rendering/gles/gles_system.cpp
 | 
			
		||||
+++ b/src/common/rendering/gles/gles_system.cpp
 | 
			
		||||
@@ -12,50 +12,16 @@ EXTERN_CVAR(Bool, gl_customshader);
 | 
			
		||||
 void setGlVersion(double glv);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-#if USE_GLES2
 | 
			
		||||
+#if USE_GLAD_LOADER
 | 
			
		||||
 
 | 
			
		||||
 PFNGLMAPBUFFERRANGEEXTPROC glMapBufferRange = NULL;
 | 
			
		||||
 PFNGLUNMAPBUFFEROESPROC glUnmapBuffer = NULL;
 | 
			
		||||
 PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer = NULL;
 | 
			
		||||
+PFNGLFENCESYNCPROC glFenceSync = NULL;
 | 
			
		||||
+PFNGLCLIENTWAITSYNCPROC glClientWaitSync = NULL;
 | 
			
		||||
+PFNGLDELETESYNCPROC glDeleteSync = NULL;
 | 
			
		||||
 
 | 
			
		||||
-#ifdef __ANDROID__
 | 
			
		||||
-#include <dlfcn.h>
 | 
			
		||||
-
 | 
			
		||||
-static void* LoadGLES2Proc(const char* name)
 | 
			
		||||
-{
 | 
			
		||||
-	static void *glesLib = NULL;
 | 
			
		||||
-
 | 
			
		||||
-	if(!glesLib)
 | 
			
		||||
-	{
 | 
			
		||||
-		int flags = RTLD_LOCAL | RTLD_NOW;
 | 
			
		||||
-
 | 
			
		||||
-		glesLib = dlopen("libGLESv2_CM.so", flags);
 | 
			
		||||
-		if(!glesLib)
 | 
			
		||||
-		{
 | 
			
		||||
-			glesLib = dlopen("libGLESv2.so", flags);
 | 
			
		||||
-		}
 | 
			
		||||
-		if(!glesLib)
 | 
			
		||||
-		{
 | 
			
		||||
-			glesLib = dlopen("libGLESv2.so.2", flags);
 | 
			
		||||
-		}
 | 
			
		||||
-	}
 | 
			
		||||
-
 | 
			
		||||
-	void * ret = NULL;
 | 
			
		||||
-	ret =  dlsym(glesLib, name);
 | 
			
		||||
-
 | 
			
		||||
-	if(!ret)
 | 
			
		||||
-	{
 | 
			
		||||
-		//LOGI("Failed to load: %s", name);
 | 
			
		||||
-	}
 | 
			
		||||
-	else
 | 
			
		||||
-	{
 | 
			
		||||
-		//LOGI("Loaded %s func OK", name);
 | 
			
		||||
-	}
 | 
			
		||||
-
 | 
			
		||||
-	return ret;
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
-#elif defined _WIN32
 | 
			
		||||
+#if defined _WIN32
 | 
			
		||||
 
 | 
			
		||||
 #include <windows.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -80,9 +46,38 @@ static void* LoadGLES2Proc(const char* name)
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+#else
 | 
			
		||||
+
 | 
			
		||||
+#include <dlfcn.h>
 | 
			
		||||
+
 | 
			
		||||
+static void* LoadGLES2Proc(const char* name)
 | 
			
		||||
+{
 | 
			
		||||
+	static void* glesLib = NULL;
 | 
			
		||||
+
 | 
			
		||||
+	if (!glesLib)
 | 
			
		||||
+	{
 | 
			
		||||
+		int flags = RTLD_LOCAL | RTLD_NOW;
 | 
			
		||||
+
 | 
			
		||||
+		glesLib = dlopen("libGLESv2_CM.so", flags);
 | 
			
		||||
+		if (!glesLib)
 | 
			
		||||
+		{
 | 
			
		||||
+			glesLib = dlopen("libGLESv2.so", flags);
 | 
			
		||||
+		}
 | 
			
		||||
+		if (!glesLib)
 | 
			
		||||
+		{
 | 
			
		||||
+			glesLib = dlopen("libGLESv2.so.2", flags);
 | 
			
		||||
+		}
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	void* ret = NULL;
 | 
			
		||||
+	ret = dlsym(glesLib, name);
 | 
			
		||||
+
 | 
			
		||||
+	return ret;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-#endif // USE_GLES2
 | 
			
		||||
+#endif // USE_GLAD_LOADER
 | 
			
		||||
 
 | 
			
		||||
 static TArray<FString>  m_Extensions;
 | 
			
		||||
 
 | 
			
		||||
@@ -126,7 +121,7 @@ namespace OpenGLESRenderer
 | 
			
		||||
 	void InitGLES()
 | 
			
		||||
 	{
 | 
			
		||||
 
 | 
			
		||||
-#if USE_GLES2
 | 
			
		||||
+#if USE_GLAD_LOADER
 | 
			
		||||
 
 | 
			
		||||
 		if (!gladLoadGLES2Loader(&LoadGLES2Proc))
 | 
			
		||||
 		{
 | 
			
		||||
@@ -136,6 +131,10 @@ namespace OpenGLESRenderer
 | 
			
		||||
 		glMapBufferRange = (PFNGLMAPBUFFERRANGEEXTPROC)LoadGLES2Proc("glMapBufferRange");
 | 
			
		||||
 		glUnmapBuffer = (PFNGLUNMAPBUFFEROESPROC)LoadGLES2Proc("glUnmapBuffer");
 | 
			
		||||
 		glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)LoadGLES2Proc("glVertexAttribIPointer");
 | 
			
		||||
+
 | 
			
		||||
+		glFenceSync = (PFNGLFENCESYNCPROC)LoadGLES2Proc("glFenceSync");
 | 
			
		||||
+		glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)LoadGLES2Proc("glClientWaitSync");
 | 
			
		||||
+		glDeleteSync = (PFNGLDELETESYNCPROC)LoadGLES2Proc("glDeleteSync");
 | 
			
		||||
 #else
 | 
			
		||||
 		static bool first = true;
 | 
			
		||||
 
 | 
			
		||||
@@ -161,48 +160,78 @@ namespace OpenGLESRenderer
 | 
			
		||||
 		{
 | 
			
		||||
 			Printf(" %s\n", m_Extensions[i].GetChars());
 | 
			
		||||
 		}
 | 
			
		||||
+		const char* glVersionStr = (const char*)glGetString(GL_VERSION);
 | 
			
		||||
+		double glVersion = strtod(glVersionStr, NULL);
 | 
			
		||||
 
 | 
			
		||||
+		Printf("GL Version parsed = %f\n", glVersion);
 | 
			
		||||
 
 | 
			
		||||
 		gles.flags = RFL_NO_CLIP_PLANES;
 | 
			
		||||
 
 | 
			
		||||
 		gles.useMappedBuffers = gles_use_mapped_buffer;
 | 
			
		||||
 		gles.forceGLSLv100 = gles_force_glsl_v100;
 | 
			
		||||
 		gles.maxlights = gles_max_lights_per_surface;
 | 
			
		||||
+		gles.numlightvectors = (gles.maxlights * LIGHT_VEC4_NUM);
 | 
			
		||||
 
 | 
			
		||||
 		gles.modelstring = (char*)glGetString(GL_RENDERER);
 | 
			
		||||
 		gles.vendorstring = (char*)glGetString(GL_VENDOR);
 | 
			
		||||
 
 | 
			
		||||
-		gl_customshader = false;
 | 
			
		||||
+
 | 
			
		||||
+		gl_customshader = false; // Disable user shaders for GLES renderer
 | 
			
		||||
 
 | 
			
		||||
 		GLint maxTextureSize[1];
 | 
			
		||||
 		glGetIntegerv(GL_MAX_TEXTURE_SIZE, maxTextureSize);
 | 
			
		||||
-
 | 
			
		||||
 		gles.max_texturesize = maxTextureSize[0];
 | 
			
		||||
 
 | 
			
		||||
 		Printf("GL_MAX_TEXTURE_SIZE: %d\n", gles.max_texturesize);
 | 
			
		||||
 
 | 
			
		||||
-#if USE_GLES2
 | 
			
		||||
-		gles.gles3Features = false; // Enales IQM bones
 | 
			
		||||
-		gles.shaderVersionString = "100";
 | 
			
		||||
 
 | 
			
		||||
-		gles.depthStencilAvailable = CheckExtension("GL_OES_packed_depth_stencil");
 | 
			
		||||
-		gles.npotAvailable = CheckExtension("GL_OES_texture_npot");
 | 
			
		||||
-		gles.depthClampAvailable = CheckExtension("GL_EXT_depth_clamp");
 | 
			
		||||
-		gles.anistropicFilterAvailable = CheckExtension("GL_EXT_texture_filter_anisotropic");
 | 
			
		||||
-#else
 | 
			
		||||
-		gles.gles3Features = true;
 | 
			
		||||
-		gles.shaderVersionString = "330";
 | 
			
		||||
-		gles.depthStencilAvailable = true;
 | 
			
		||||
-		gles.npotAvailable = true;
 | 
			
		||||
-		gles.useMappedBuffers = true;
 | 
			
		||||
-		gles.depthClampAvailable = true;
 | 
			
		||||
-		gles.anistropicFilterAvailable = true;
 | 
			
		||||
-#endif
 | 
			
		||||
+		// Check if running on a GLES device, version string will start with 'OpenGL ES'
 | 
			
		||||
+		if (!strncmp(glVersionStr, "OpenGL ES", strlen("OpenGL ES")))
 | 
			
		||||
+		{
 | 
			
		||||
+			gles.glesMode = GLES_MODE_GLES;
 | 
			
		||||
+		}
 | 
			
		||||
+		else // Else runnning on Desktop, check OpenGL version is 3 or above
 | 
			
		||||
+		{
 | 
			
		||||
+			if (glVersion > 3.29)
 | 
			
		||||
+				gles.glesMode = GLES_MODE_OGL3; // 3.3 or above
 | 
			
		||||
+			else
 | 
			
		||||
+				gles.glesMode = GLES_MODE_OGL2; // Below 3.3
 | 
			
		||||
+		}
 | 
			
		||||
 
 | 
			
		||||
-		gles.numlightvectors = (gles.maxlights * LIGHT_VEC4_NUM);
 | 
			
		||||
 
 | 
			
		||||
-		const char* glversion = (const char*)glGetString(GL_VERSION);
 | 
			
		||||
-		setGlVersion( strtod(glversion, NULL));
 | 
			
		||||
+		if (gles.glesMode == GLES_MODE_GLES)
 | 
			
		||||
+		{
 | 
			
		||||
+			Printf("GLES choosing mode: GLES_MODE_GLES\n");
 | 
			
		||||
 
 | 
			
		||||
+			gles.shaderVersionString = "100";
 | 
			
		||||
+			gles.depthStencilAvailable = CheckExtension("GL_OES_packed_depth_stencil");
 | 
			
		||||
+			gles.npotAvailable = CheckExtension("GL_OES_texture_npot");
 | 
			
		||||
+			gles.depthClampAvailable = CheckExtension("GL_EXT_depth_clamp");
 | 
			
		||||
+			gles.anistropicFilterAvailable = CheckExtension("GL_EXT_texture_filter_anisotropic");
 | 
			
		||||
+		}
 | 
			
		||||
+		else if (gles.glesMode == GLES_MODE_OGL2)
 | 
			
		||||
+		{
 | 
			
		||||
+			Printf("GLES choosing mode: GLES_MODE_OGL2\n");
 | 
			
		||||
+
 | 
			
		||||
+			gles.shaderVersionString = "100";
 | 
			
		||||
+			gles.depthStencilAvailable = true;
 | 
			
		||||
+			gles.npotAvailable = true;
 | 
			
		||||
+			gles.useMappedBuffers = true;
 | 
			
		||||
+			gles.depthClampAvailable = true;
 | 
			
		||||
+			gles.anistropicFilterAvailable = true;
 | 
			
		||||
+		}
 | 
			
		||||
+		else if (gles.glesMode == GLES_MODE_OGL3)
 | 
			
		||||
+		{
 | 
			
		||||
+			Printf("GLES choosing mode: GLES_MODE_OGL3\n");
 | 
			
		||||
+
 | 
			
		||||
+			gles.shaderVersionString = "330";
 | 
			
		||||
+			gles.depthStencilAvailable = true;
 | 
			
		||||
+			gles.npotAvailable = true;
 | 
			
		||||
+			gles.useMappedBuffers = true;
 | 
			
		||||
+			gles.depthClampAvailable = true;
 | 
			
		||||
+			gles.anistropicFilterAvailable = true;
 | 
			
		||||
+		}
 | 
			
		||||
+		
 | 
			
		||||
+		setGlVersion(glVersion);
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
diff --git a/src/common/rendering/gles/gles_system.h b/src/common/rendering/gles/gles_system.h
 | 
			
		||||
index 481c132d0..0edec6282 100644
 | 
			
		||||
--- a/src/common/rendering/gles/gles_system.h
 | 
			
		||||
+++ b/src/common/rendering/gles/gles_system.h
 | 
			
		||||
@@ -23,32 +23,47 @@
 | 
			
		||||
 #include <sys/stat.h>
 | 
			
		||||
 #include <fcntl.h>
 | 
			
		||||
 
 | 
			
		||||
-#define USE_GLES2 0 // For Desktop PC leave as 0, it will use the exisiting OpenGL context creationg code but run with the GLES2 renderer
 | 
			
		||||
-                    // Set to 1 for when comipling for a real GLES device
 | 
			
		||||
+#define USE_GLAD_LOADER 0 // Set to 1 to use the GLAD loader, otherwise use noramal GZDoom loader for PC
 | 
			
		||||
 
 | 
			
		||||
-#if (USE_GLES2)
 | 
			
		||||
+#if (USE_GLAD_LOADER)
 | 
			
		||||
 	#include "glad/glad.h"
 | 
			
		||||
 
 | 
			
		||||
-// Below are used extensions for GLES
 | 
			
		||||
-typedef void* (APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
 | 
			
		||||
-GLAPI PFNGLMAPBUFFERRANGEEXTPROC glMapBufferRange;
 | 
			
		||||
-
 | 
			
		||||
-typedef GLboolean(APIENTRYP PFNGLUNMAPBUFFEROESPROC)(GLenum target);
 | 
			
		||||
-GLAPI PFNGLUNMAPBUFFEROESPROC glUnmapBuffer;
 | 
			
		||||
-
 | 
			
		||||
-typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer);
 | 
			
		||||
-GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
 | 
			
		||||
-
 | 
			
		||||
-#define GL_DEPTH24_STENCIL8               0x88F0
 | 
			
		||||
-#define GL_MAP_PERSISTENT_BIT             0x0040
 | 
			
		||||
-#define GL_MAP_READ_BIT                   0x0001
 | 
			
		||||
-#define GL_MAP_WRITE_BIT                  0x0002
 | 
			
		||||
-#define GL_MAP_UNSYNCHRONIZED_BIT         0x0020
 | 
			
		||||
-#define GL_MAP_INVALIDATE_BUFFER_BIT      0x0008
 | 
			
		||||
-#define GL_BGRA                           0x80E1
 | 
			
		||||
-#define GL_DEPTH_CLAMP                    0x864F
 | 
			
		||||
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
 | 
			
		||||
-#define GL_INT_2_10_10_10_REV             0x8D9F
 | 
			
		||||
+	// Below are used extensions for GLES
 | 
			
		||||
+	typedef void* (APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
 | 
			
		||||
+	GLAPI PFNGLMAPBUFFERRANGEEXTPROC glMapBufferRange;
 | 
			
		||||
+
 | 
			
		||||
+	typedef GLboolean(APIENTRYP PFNGLUNMAPBUFFEROESPROC)(GLenum target);
 | 
			
		||||
+	GLAPI PFNGLUNMAPBUFFEROESPROC glUnmapBuffer;
 | 
			
		||||
+
 | 
			
		||||
+	typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer);
 | 
			
		||||
+	GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
 | 
			
		||||
+
 | 
			
		||||
+	typedef GLsync(APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
 | 
			
		||||
+	GLAPI PFNGLFENCESYNCPROC glFenceSync;
 | 
			
		||||
+	
 | 
			
		||||
+	typedef GLenum(APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
 | 
			
		||||
+	GLAPI PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
 | 
			
		||||
+
 | 
			
		||||
+	typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync);
 | 
			
		||||
+	GLAPI PFNGLDELETESYNCPROC glDeleteSync;
 | 
			
		||||
+
 | 
			
		||||
+	#define GL_DEPTH24_STENCIL8               0x88F0
 | 
			
		||||
+	#define GL_MAP_PERSISTENT_BIT             0x0040
 | 
			
		||||
+	#define GL_MAP_READ_BIT                   0x0001
 | 
			
		||||
+	#define GL_MAP_WRITE_BIT                  0x0002
 | 
			
		||||
+	#define GL_MAP_UNSYNCHRONIZED_BIT         0x0020
 | 
			
		||||
+	#define GL_MAP_INVALIDATE_BUFFER_BIT      0x0008
 | 
			
		||||
+	#define GL_BGRA                           0x80E1
 | 
			
		||||
+	#define GL_DEPTH_CLAMP                    0x864F
 | 
			
		||||
+	#define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
 | 
			
		||||
+	#define GL_INT_2_10_10_10_REV             0x8D9F
 | 
			
		||||
+	#define GL_RED                            0x1903
 | 
			
		||||
+	#define GL_TEXTURE_SWIZZLE_RGBA           0x8E46
 | 
			
		||||
+	#define GL_SYNC_GPU_COMMANDS_COMPLETE     0x9117
 | 
			
		||||
+	#define GL_SYNC_FLUSH_COMMANDS_BIT        0x00000001
 | 
			
		||||
+	#define GL_ALREADY_SIGNALED               0x911A
 | 
			
		||||
+	#define GL_CONDITION_SATISFIED            0x911C
 | 
			
		||||
+
 | 
			
		||||
 #else
 | 
			
		||||
 	#include "gl_load/gl_load.h"
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -66,6 +81,13 @@ GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
 | 
			
		||||
 
 | 
			
		||||
 namespace OpenGLESRenderer
 | 
			
		||||
 {
 | 
			
		||||
+	enum 
 | 
			
		||||
+	{
 | 
			
		||||
+		GLES_MODE_GLES = 0,
 | 
			
		||||
+		GLES_MODE_OGL2 = 1,
 | 
			
		||||
+		GLES_MODE_OGL3 = 2,
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	struct RenderContextGLES
 | 
			
		||||
 	{
 | 
			
		||||
 		unsigned int flags;
 | 
			
		||||
@@ -77,7 +99,7 @@ namespace OpenGLESRenderer
 | 
			
		||||
 		bool forceGLSLv100;
 | 
			
		||||
 		bool depthClampAvailable;
 | 
			
		||||
 		bool anistropicFilterAvailable;
 | 
			
		||||
-		bool gles3Features;
 | 
			
		||||
+		int glesMode;
 | 
			
		||||
 		const char* shaderVersionString;
 | 
			
		||||
 		int max_texturesize;
 | 
			
		||||
 		char* vendorstring;
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
From fad3284bde35899cb24189cba60fae7ca56ce9ee Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Fri, 17 Feb 2023 16:11:39 -0300
 | 
			
		||||
Subject: [PATCH 34/51] Fix Software Slope Rendering for non-1.2 pixel ratios
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/rendering/swrenderer/viewport/r_viewport.cpp | 3 +++
 | 
			
		||||
 1 file changed, 3 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/rendering/swrenderer/viewport/r_viewport.cpp b/src/rendering/swrenderer/viewport/r_viewport.cpp
 | 
			
		||||
index aa455cf06..63606d467 100644
 | 
			
		||||
--- a/src/rendering/swrenderer/viewport/r_viewport.cpp
 | 
			
		||||
+++ b/src/rendering/swrenderer/viewport/r_viewport.cpp
 | 
			
		||||
@@ -172,6 +172,9 @@ namespace swrenderer
 | 
			
		||||
 
 | 
			
		||||
 		WallTMapScale2 = IYaspectMul / CenterX * 1.2 / ypixelstretch;
 | 
			
		||||
 
 | 
			
		||||
+		// [RicardoLuis0] adjust IYaspectMul for map stretch -- fixes slope rendering on maps that define pixelratio
 | 
			
		||||
+		IYaspectMul *= 1.2 / ypixelstretch;
 | 
			
		||||
+
 | 
			
		||||
 		// thing clipping
 | 
			
		||||
 		fillshort(screenheightarray, viewwidth, (short)viewheight);
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										191
									
								
								games-fps/gzdoom/files/0035-Improve-Services.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								games-fps/gzdoom/files/0035-Improve-Services.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,191 @@
 | 
			
		||||
From ab19c639264fca169dac6f0052dce38bc1c2dab5 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sat, 18 Feb 2023 23:28:54 -0300
 | 
			
		||||
Subject: [PATCH 35/51] Improve Services
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/interface/vmnatives.cpp |  7 +++
 | 
			
		||||
 src/gamedata/info.cpp                        | 27 +++++++++++
 | 
			
		||||
 wadsrc/static/zscript/engine/base.zs         |  1 +
 | 
			
		||||
 wadsrc/static/zscript/engine/service.zs      | 49 ++++++--------------
 | 
			
		||||
 4 files changed, 48 insertions(+), 36 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/interface/vmnatives.cpp b/src/common/scripting/interface/vmnatives.cpp
 | 
			
		||||
index a29a6b711..f268b6e07 100644
 | 
			
		||||
--- a/src/common/scripting/interface/vmnatives.cpp
 | 
			
		||||
+++ b/src/common/scripting/interface/vmnatives.cpp
 | 
			
		||||
@@ -53,6 +53,8 @@
 | 
			
		||||
 #include "s_soundinternal.h"
 | 
			
		||||
 #include "i_time.h"
 | 
			
		||||
 
 | 
			
		||||
+#include "maps.h"
 | 
			
		||||
+
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
 //
 | 
			
		||||
 // status bar exports
 | 
			
		||||
@@ -1114,7 +1116,12 @@ DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, baseorder);
 | 
			
		||||
 DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, loop);
 | 
			
		||||
 DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, handle);
 | 
			
		||||
 
 | 
			
		||||
+extern ZSMap<FName, DObject* > AllServices;
 | 
			
		||||
+
 | 
			
		||||
 DEFINE_GLOBAL_NAMED(PClass::AllClasses, AllClasses)
 | 
			
		||||
+
 | 
			
		||||
+DEFINE_GLOBAL(AllServices)
 | 
			
		||||
+
 | 
			
		||||
 DEFINE_GLOBAL(Bindings)
 | 
			
		||||
 DEFINE_GLOBAL(AutomapBindings)
 | 
			
		||||
 DEFINE_GLOBAL(generic_ui)
 | 
			
		||||
diff --git a/src/gamedata/info.cpp b/src/gamedata/info.cpp
 | 
			
		||||
index 22ad8d42b..ed516a1cf 100644
 | 
			
		||||
--- a/src/gamedata/info.cpp
 | 
			
		||||
+++ b/src/gamedata/info.cpp
 | 
			
		||||
@@ -54,6 +54,7 @@
 | 
			
		||||
 #include "g_levellocals.h"
 | 
			
		||||
 #include "texturemanager.h"
 | 
			
		||||
 #include "d_main.h"
 | 
			
		||||
+#include "maps.h"
 | 
			
		||||
 
 | 
			
		||||
 extern void LoadActors ();
 | 
			
		||||
 extern void InitBotStuff();
 | 
			
		||||
@@ -64,6 +65,7 @@ FRandom FState::pr_statetics("StateTics");
 | 
			
		||||
 
 | 
			
		||||
 cycle_t ActionCycles;
 | 
			
		||||
 
 | 
			
		||||
+void InitServices();
 | 
			
		||||
 
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
 //
 | 
			
		||||
@@ -368,6 +370,18 @@ static void LoadAltHudStuff()
 | 
			
		||||
 //
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
 
 | 
			
		||||
+ZSMap<FName, DObject*> AllServices;
 | 
			
		||||
+
 | 
			
		||||
+static void MarkServices(){
 | 
			
		||||
+
 | 
			
		||||
+	ZSMap<FName, DObject*>::Iterator it(AllServices);
 | 
			
		||||
+	ZSMap<FName, DObject*>::Pair *pair;
 | 
			
		||||
+	while (it.NextPair(pair))
 | 
			
		||||
+	{
 | 
			
		||||
+		GC::Mark<DObject>(pair->Value);
 | 
			
		||||
+	}
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 void PClassActor::StaticInit()
 | 
			
		||||
 {
 | 
			
		||||
 	sprites.Clear();
 | 
			
		||||
@@ -402,6 +416,19 @@ void PClassActor::StaticInit()
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
+	PClass * cls = PClass::FindClass("Service");
 | 
			
		||||
+	for(PClass * clss : PClass::AllClasses)
 | 
			
		||||
+	{
 | 
			
		||||
+		if(clss != cls && cls->IsAncestorOf(clss))
 | 
			
		||||
+		{
 | 
			
		||||
+			DObject * obj = clss->CreateNew();
 | 
			
		||||
+			obj->ObjectFlags |= OF_Transient;
 | 
			
		||||
+			AllServices.Insert(clss->TypeName, obj);
 | 
			
		||||
+		}
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	GC::AddMarkerFunc(&MarkServices);
 | 
			
		||||
+
 | 
			
		||||
 	LoadAltHudStuff();
 | 
			
		||||
 	InitBotStuff();
 | 
			
		||||
 
 | 
			
		||||
diff --git a/wadsrc/static/zscript/engine/base.zs b/wadsrc/static/zscript/engine/base.zs
 | 
			
		||||
index cd2269661..43b998541 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/engine/base.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/engine/base.zs
 | 
			
		||||
@@ -181,6 +181,7 @@ struct Vector3
 | 
			
		||||
 struct _ native	// These are the global variables, the struct is only here to avoid extending the parser for this.
 | 
			
		||||
 {
 | 
			
		||||
 	native readonly Array<class> AllClasses;
 | 
			
		||||
+    native internal readonly Map<Name , Service> AllServices;
 | 
			
		||||
 	native readonly bool multiplayer;
 | 
			
		||||
 	native @KeyBindings Bindings;
 | 
			
		||||
 	native @KeyBindings AutomapBindings;
 | 
			
		||||
diff --git a/wadsrc/static/zscript/engine/service.zs b/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
index 5f834a809..50981ad80 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
@@ -54,6 +54,10 @@ class Service abstract
 | 
			
		||||
 	{
 | 
			
		||||
 		return null;
 | 
			
		||||
 	}
 | 
			
		||||
+    
 | 
			
		||||
+    static Service Find(class<Service> serviceName){
 | 
			
		||||
+        return AllServices.GetIfExists(serviceName.GetClassName());
 | 
			
		||||
+    }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /**
 | 
			
		||||
@@ -88,54 +92,27 @@ class ServiceIterator
 | 
			
		||||
 	static ServiceIterator Find(String serviceName)
 | 
			
		||||
 	{
 | 
			
		||||
 		let result = new("ServiceIterator");
 | 
			
		||||
-
 | 
			
		||||
-		result.mServiceName = serviceName;
 | 
			
		||||
-		result.mClassIndex = 0;
 | 
			
		||||
-		result.FindNextService();
 | 
			
		||||
-
 | 
			
		||||
+		result.mServiceName = serviceName.MakeLower();
 | 
			
		||||
+		result.it.Init(AllServices);
 | 
			
		||||
 		return result;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	/**
 | 
			
		||||
 	 * Gets the service and advances the iterator.
 | 
			
		||||
 	 *
 | 
			
		||||
-	 * @returns service instance, or NULL if no more servers found.
 | 
			
		||||
-	 *
 | 
			
		||||
-	 * @note Each ServiceIterator will return new instances of services.
 | 
			
		||||
+	 * @returns service instance, or NULL if no more services found.
 | 
			
		||||
 	 */
 | 
			
		||||
 	Service Next()
 | 
			
		||||
 	{
 | 
			
		||||
-		uint classesNumber = AllClasses.Size();
 | 
			
		||||
-		Service result = (mClassIndex == classesNumber)
 | 
			
		||||
-			? NULL
 | 
			
		||||
-			: Service(new(AllClasses[mClassIndex]));
 | 
			
		||||
-
 | 
			
		||||
-		++mClassIndex;
 | 
			
		||||
-		FindNextService();
 | 
			
		||||
-
 | 
			
		||||
-		return result;
 | 
			
		||||
-	}
 | 
			
		||||
-
 | 
			
		||||
-	private void FindNextService()
 | 
			
		||||
-	{
 | 
			
		||||
-		uint classesNumber = AllClasses.size();
 | 
			
		||||
-		while (mClassIndex < classesNumber && !ServiceNameContains(AllClasses[mClassIndex], mServiceName))
 | 
			
		||||
+		while(it.Next())
 | 
			
		||||
 		{
 | 
			
		||||
-			++mClassIndex;
 | 
			
		||||
+			String cName = it.GetKey();
 | 
			
		||||
+			if(cName.MakeLower().IndexOf(mServiceName) != -1);
 | 
			
		||||
+				return it.GetValue();
 | 
			
		||||
 		}
 | 
			
		||||
+		return null;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-	private static bool ServiceNameContains(class aClass, String substring)
 | 
			
		||||
-	{
 | 
			
		||||
-		if (!(aClass is "Service")) return false;
 | 
			
		||||
-
 | 
			
		||||
-		String className = aClass.GetClassName();
 | 
			
		||||
-		String lowerClassName = className.MakeLower();
 | 
			
		||||
-		String lowerSubstring = substring.MakeLower();
 | 
			
		||||
-		bool result = lowerClassName.IndexOf(lowerSubstring) != -1;
 | 
			
		||||
-		return result;
 | 
			
		||||
-	}
 | 
			
		||||
-
 | 
			
		||||
+	private MapIterator<Name, Service> it;
 | 
			
		||||
 	private String mServiceName;
 | 
			
		||||
-	private uint mClassIndex;
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								games-fps/gzdoom/files/0036-fixed-typo-in-string-label.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								games-fps/gzdoom/files/0036-fixed-typo-in-string-label.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
From 3c25b83096cda917250ef3d45dde3af297413ec1 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Sun, 19 Feb 2023 12:47:16 +0100
 | 
			
		||||
Subject: [PATCH 36/51] - fixed typo in string label.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/g_game.cpp | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/g_game.cpp b/src/g_game.cpp
 | 
			
		||||
index 4a3398fde..c960bab26 100644
 | 
			
		||||
--- a/src/g_game.cpp
 | 
			
		||||
+++ b/src/g_game.cpp
 | 
			
		||||
@@ -2015,7 +2015,7 @@ void G_DoLoadGame ()
 | 
			
		||||
 		}
 | 
			
		||||
 		else
 | 
			
		||||
 		{
 | 
			
		||||
-			LoadGameError("TXT_IOTHERENGINESG", engine.GetChars());
 | 
			
		||||
+			LoadGameError("TXT_OTHERENGINESG", engine.GetChars());
 | 
			
		||||
 		}
 | 
			
		||||
 		return;
 | 
			
		||||
 	}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								games-fps/gzdoom/files/0037-Update-service.zs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								games-fps/gzdoom/files/0037-Update-service.zs.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
From e160c86c1fac9fcc1336fd81c772af5ad588be1e Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Rachael Alexanderson <18584402+madame-rachelle@users.noreply.github.com>
 | 
			
		||||
Date: Sun, 19 Feb 2023 10:14:36 -0500
 | 
			
		||||
Subject: [PATCH 37/51] Update service.zs
 | 
			
		||||
 | 
			
		||||
remove erroneous semicolon
 | 
			
		||||
---
 | 
			
		||||
 wadsrc/static/zscript/engine/service.zs | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc/static/zscript/engine/service.zs b/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
index 50981ad80..26102b0a2 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
@@ -107,7 +107,7 @@ class ServiceIterator
 | 
			
		||||
 		while(it.Next())
 | 
			
		||||
 		{
 | 
			
		||||
 			String cName = it.GetKey();
 | 
			
		||||
-			if(cName.MakeLower().IndexOf(mServiceName) != -1);
 | 
			
		||||
+			if(cName.MakeLower().IndexOf(mServiceName) != -1)
 | 
			
		||||
 				return it.GetValue();
 | 
			
		||||
 		}
 | 
			
		||||
 		return null;
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,34 @@
 | 
			
		||||
From 698d335ff71d4ad4c830d566ab445ee43aa7c815 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: John Stebbins <jstebbins@jetheaddev.com>
 | 
			
		||||
Date: Thu, 23 Feb 2023 07:32:58 -0700
 | 
			
		||||
Subject: [PATCH 38/51] Allow GAMEINFO LOAD to load directories
 | 
			
		||||
 | 
			
		||||
Addresses part of enhancement issue #2011
 | 
			
		||||
---
 | 
			
		||||
 src/d_main.cpp | 3 ++-
 | 
			
		||||
 1 file changed, 2 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/d_main.cpp b/src/d_main.cpp
 | 
			
		||||
index 5bf8e8928..b34c480ff 100644
 | 
			
		||||
--- a/src/d_main.cpp
 | 
			
		||||
+++ b/src/d_main.cpp
 | 
			
		||||
@@ -1773,6 +1773,7 @@ static FString ParseGameInfo(TArray<FString> &pwads, const char *fn, const char
 | 
			
		||||
 	FScanner sc;
 | 
			
		||||
 	FString iwad;
 | 
			
		||||
 	int pos = 0;
 | 
			
		||||
+	bool isDir;
 | 
			
		||||
 
 | 
			
		||||
 	const char *lastSlash = strrchr (fn, '/');
 | 
			
		||||
 
 | 
			
		||||
@@ -1806,7 +1807,7 @@ static FString ParseGameInfo(TArray<FString> &pwads, const char *fn, const char
 | 
			
		||||
 				{
 | 
			
		||||
 					checkpath = sc.String;
 | 
			
		||||
 				}
 | 
			
		||||
-				if (!FileExists(checkpath))
 | 
			
		||||
+				if (!DirEntryExists(checkpath, &isDir))
 | 
			
		||||
 				{
 | 
			
		||||
 					pos += D_AddFile(pwads, sc.String, true, pos, GameConfig);
 | 
			
		||||
 				}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								games-fps/gzdoom/files/0039-fixed-bad-character-offset.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								games-fps/gzdoom/files/0039-fixed-bad-character-offset.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
From 5b7dd42431b471113b82b1f72aa0f918bc8da641 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Sat, 4 Mar 2023 10:46:37 +0100
 | 
			
		||||
Subject: [PATCH 39/51] - fixed bad character offset.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 .../filter/doom.id/fonts/defsmallfont/0419.lmp  | Bin 152 -> 152 bytes
 | 
			
		||||
 1 file changed, 0 insertions(+), 0 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0419.lmp b/wadsrc_extra/static/filter/doom.id/fonts/defsmallfont/0419.lmp
 | 
			
		||||
index c48e80d4f5e61683385155fc0ded67d91f17acf5..a861df892f13a777b2118a848b230b9cc2d595a8 100644
 | 
			
		||||
GIT binary patch
 | 
			
		||||
delta 15
 | 
			
		||||
WcmbQiID?U$gMo{Ifq{7<`$PZ~6ashv
 | 
			
		||||
 | 
			
		||||
delta 15
 | 
			
		||||
VcmbQiID?U$gMo_y2qv;m1OOBW0(AfY
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
From 9f13bb10d03bac86c19621f828d035b915182faf Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: CandiceJoy <candice@candicejoy.com>
 | 
			
		||||
Date: Fri, 17 Mar 2023 05:51:06 -0500
 | 
			
		||||
Subject: [PATCH 40/51] Fixed incorrect parameter type in
 | 
			
		||||
 A_CheckForResurrection.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/scripting/vmthunks_actors.cpp | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/scripting/vmthunks_actors.cpp b/src/scripting/vmthunks_actors.cpp
 | 
			
		||||
index facbc59e3..25b082e23 100644
 | 
			
		||||
--- a/src/scripting/vmthunks_actors.cpp
 | 
			
		||||
+++ b/src/scripting/vmthunks_actors.cpp
 | 
			
		||||
@@ -1627,7 +1627,7 @@ int CheckForResurrection(AActor *self, FState* state, int sound)
 | 
			
		||||
 DEFINE_ACTION_FUNCTION_NATIVE(AActor, A_CheckForResurrection, CheckForResurrection)
 | 
			
		||||
 {
 | 
			
		||||
 	PARAM_SELF_PROLOGUE(AActor);
 | 
			
		||||
-	PARAM_STATE(state);
 | 
			
		||||
+	PARAM_POINTER(state, FState);
 | 
			
		||||
 	PARAM_INT(sound);
 | 
			
		||||
 	ACTION_RETURN_BOOL(CheckForResurrection(self, state, sound));
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,29 @@
 | 
			
		||||
From d028abc06403377b564623479bd830d8174455ac Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: RaveYard <MrRaveYard@gmail.com>
 | 
			
		||||
Date: Sun, 19 Mar 2023 01:43:24 +0100
 | 
			
		||||
Subject: [PATCH 41/51] Fix TArray allocating 0 bytes in constructor
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/utility/tarray.h | 6 +++---
 | 
			
		||||
 1 file changed, 3 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/utility/tarray.h b/src/common/utility/tarray.h
 | 
			
		||||
index a7decd4f3..8d7037db2 100644
 | 
			
		||||
--- a/src/common/utility/tarray.h
 | 
			
		||||
+++ b/src/common/utility/tarray.h
 | 
			
		||||
@@ -222,9 +222,9 @@ public:
 | 
			
		||||
 	explicit TArray (size_t max, bool reserve = false)
 | 
			
		||||
 	{
 | 
			
		||||
 		Most = (unsigned)max;
 | 
			
		||||
-		Count = (unsigned)(reserve? max : 0);
 | 
			
		||||
-		Array = (T *)M_Malloc (sizeof(T)*max);
 | 
			
		||||
-		if (reserve && Count > 0)
 | 
			
		||||
+		Count = (unsigned)(reserve ? max : 0);
 | 
			
		||||
+		Array = max > 0 ? (T *)M_Malloc (sizeof(T)*max) : nullptr;
 | 
			
		||||
+		if (Count > 0)
 | 
			
		||||
 		{
 | 
			
		||||
 			ConstructEmpty(0, Count - 1);
 | 
			
		||||
 		}
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,35 @@
 | 
			
		||||
From e77c9f5a0e8ccc71b726050625082ada156b2672 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: RaveYard <MrRaveYard@gmail.com>
 | 
			
		||||
Date: Sun, 19 Mar 2023 03:41:27 +0100
 | 
			
		||||
Subject: [PATCH 42/51] Use simpler constructor for TArray in
 | 
			
		||||
 FBlockThingsIterator
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/playsim/p_maputl.cpp | 4 ++--
 | 
			
		||||
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/playsim/p_maputl.cpp b/src/playsim/p_maputl.cpp
 | 
			
		||||
index aca40e741..f883cbc91 100644
 | 
			
		||||
--- a/src/playsim/p_maputl.cpp
 | 
			
		||||
+++ b/src/playsim/p_maputl.cpp
 | 
			
		||||
@@ -889,7 +889,7 @@ void FMultiBlockLinesIterator::Reset()
 | 
			
		||||
 //===========================================================================
 | 
			
		||||
 
 | 
			
		||||
 FBlockThingsIterator::FBlockThingsIterator(FLevelLocals *l)
 | 
			
		||||
-: DynHash(0)
 | 
			
		||||
+: DynHash()
 | 
			
		||||
 {
 | 
			
		||||
 	Level = l;
 | 
			
		||||
 	minx = maxx = 0;
 | 
			
		||||
@@ -899,7 +899,7 @@ FBlockThingsIterator::FBlockThingsIterator(FLevelLocals *l)
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 FBlockThingsIterator::FBlockThingsIterator(FLevelLocals *l, int _minx, int _miny, int _maxx, int _maxy)
 | 
			
		||||
-: DynHash(0)
 | 
			
		||||
+: DynHash()
 | 
			
		||||
 {
 | 
			
		||||
 	Level = l;
 | 
			
		||||
 	minx = _minx;
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
From f658338e869b47321af57838518b7346d8d495df Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Wed, 22 Mar 2023 04:54:29 -0300
 | 
			
		||||
Subject: [PATCH 43/51] Fix possible memory corruption in
 | 
			
		||||
 `TArray::Delete(index, count)`
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/utility/tarray.h | 2 ++
 | 
			
		||||
 1 file changed, 2 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/utility/tarray.h b/src/common/utility/tarray.h
 | 
			
		||||
index 8d7037db2..cc13050b5 100644
 | 
			
		||||
--- a/src/common/utility/tarray.h
 | 
			
		||||
+++ b/src/common/utility/tarray.h
 | 
			
		||||
@@ -453,6 +453,8 @@ public:
 | 
			
		||||
 
 | 
			
		||||
 	void Delete (unsigned int index, int deletecount)
 | 
			
		||||
 	{
 | 
			
		||||
+        if(index >= Count) return;
 | 
			
		||||
+        
 | 
			
		||||
 		if (index + deletecount > Count)
 | 
			
		||||
 		{
 | 
			
		||||
 			deletecount = Count - index;
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10357
									
								
								games-fps/gzdoom/files/0044-updated-RapidJson-library.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10357
									
								
								games-fps/gzdoom/files/0044-updated-RapidJson-library.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -0,0 +1,200 @@
 | 
			
		||||
From 3b52c955b18667bd6ea319f89e762c5331603bc9 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Sun, 26 Mar 2023 09:27:26 +0200
 | 
			
		||||
Subject: [PATCH 45/51] - made D_WriteUserInfoStrings memory safe.
 | 
			
		||||
 | 
			
		||||
Its callers are anything but for now but this function was the main blocker for refactoring so it had to come first.
 | 
			
		||||
---
 | 
			
		||||
 src/d_net.cpp     |   8 +++-
 | 
			
		||||
 src/d_netinf.h    |   2 +-
 | 
			
		||||
 src/d_netinfo.cpp | 106 +++++++++++++++++++++++-----------------------
 | 
			
		||||
 src/g_game.cpp    |  10 +++--
 | 
			
		||||
 4 files changed, 65 insertions(+), 61 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/d_net.cpp b/src/d_net.cpp
 | 
			
		||||
index e83b06939..80f43e1a2 100644
 | 
			
		||||
--- a/src/d_net.cpp
 | 
			
		||||
+++ b/src/d_net.cpp
 | 
			
		||||
@@ -1505,7 +1505,9 @@ bool DoArbitrate (void *userdata)
 | 
			
		||||
 		netbuffer[1] = consoleplayer;
 | 
			
		||||
 		netbuffer[9] = data->gotsetup[0];
 | 
			
		||||
 		stream = &netbuffer[10];
 | 
			
		||||
-		D_WriteUserInfoStrings (consoleplayer, &stream, true);
 | 
			
		||||
+		auto str = D_GetUserInfoStrings (consoleplayer, true);
 | 
			
		||||
+		memcpy(stream, str.GetChars(), str.Len() + 1);
 | 
			
		||||
+		stream += str.Len();
 | 
			
		||||
 		SendSetup (data->playersdetected, data->gotsetup, int(stream - netbuffer));
 | 
			
		||||
 	}
 | 
			
		||||
 	else
 | 
			
		||||
@@ -1520,7 +1522,9 @@ bool DoArbitrate (void *userdata)
 | 
			
		||||
 				{
 | 
			
		||||
 					netbuffer[1] = j;
 | 
			
		||||
 					stream = &netbuffer[9];
 | 
			
		||||
-					D_WriteUserInfoStrings (j, &stream, true);
 | 
			
		||||
+					auto str = D_GetUserInfoStrings(j, true);
 | 
			
		||||
+					memcpy(stream, str.GetChars(), str.Len() + 1);
 | 
			
		||||
+					stream += str.Len();
 | 
			
		||||
 					HSendPacket (i, int(stream - netbuffer));
 | 
			
		||||
 				}
 | 
			
		||||
 			}
 | 
			
		||||
diff --git a/src/d_netinf.h b/src/d_netinf.h
 | 
			
		||||
index 5e46b7b14..56f955e06 100644
 | 
			
		||||
--- a/src/d_netinf.h
 | 
			
		||||
+++ b/src/d_netinf.h
 | 
			
		||||
@@ -58,7 +58,7 @@ bool D_SendServerInfoChange (FBaseCVar *cvar, UCVarValue value, ECVarType type);
 | 
			
		||||
 bool D_SendServerFlagChange (FBaseCVar *cvar, int bitnum, bool set, bool silent);
 | 
			
		||||
 void D_DoServerInfoChange (uint8_t **stream, bool singlebit);
 | 
			
		||||
 
 | 
			
		||||
-void D_WriteUserInfoStrings (int player, uint8_t **stream, bool compact=false);
 | 
			
		||||
+FString D_GetUserInfoStrings(int pnum, bool compact = false);
 | 
			
		||||
 void D_ReadUserInfoStrings (int player, uint8_t **stream, bool update);
 | 
			
		||||
 
 | 
			
		||||
 struct FPlayerColorSet;
 | 
			
		||||
diff --git a/src/d_netinfo.cpp b/src/d_netinfo.cpp
 | 
			
		||||
index 6c31fbe73..bbcd42168 100644
 | 
			
		||||
--- a/src/d_netinfo.cpp
 | 
			
		||||
+++ b/src/d_netinfo.cpp
 | 
			
		||||
@@ -727,67 +727,65 @@ static int namesortfunc(const void *a, const void *b)
 | 
			
		||||
 	return stricmp(name1->GetChars(), name2->GetChars());
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-void D_WriteUserInfoStrings (int pnum, uint8_t **stream, bool compact)
 | 
			
		||||
+FString D_GetUserInfoStrings(int pnum, bool compact)
 | 
			
		||||
 {
 | 
			
		||||
-	if (pnum >= MAXPLAYERS)
 | 
			
		||||
+	FString result;
 | 
			
		||||
+	if (pnum >= 0 && pnum < MAXPLAYERS)
 | 
			
		||||
 	{
 | 
			
		||||
-		WriteByte (0, stream);
 | 
			
		||||
-		return;
 | 
			
		||||
-	}
 | 
			
		||||
-
 | 
			
		||||
-	userinfo_t *info = &players[pnum].userinfo;
 | 
			
		||||
-	TArray<TMap<FName, FBaseCVar *>::Pair *> userinfo_pairs(info->CountUsed());
 | 
			
		||||
-	TMap<FName, FBaseCVar *>::Iterator it(*info);
 | 
			
		||||
-	TMap<FName, FBaseCVar *>::Pair *pair;
 | 
			
		||||
-	UCVarValue cval;
 | 
			
		||||
+		userinfo_t* info = &players[pnum].userinfo;
 | 
			
		||||
+		TArray<TMap<FName, FBaseCVar*>::Pair*> userinfo_pairs(info->CountUsed());
 | 
			
		||||
+		TMap<FName, FBaseCVar*>::Iterator it(*info);
 | 
			
		||||
+		TMap<FName, FBaseCVar*>::Pair* pair;
 | 
			
		||||
+		UCVarValue cval;
 | 
			
		||||
 
 | 
			
		||||
-	// Create a simple array of all userinfo cvars
 | 
			
		||||
-	while (it.NextPair(pair))
 | 
			
		||||
-	{
 | 
			
		||||
-		userinfo_pairs.Push(pair);
 | 
			
		||||
-	}
 | 
			
		||||
-	// For compact mode, these need to be sorted. Verbose mode doesn't matter.
 | 
			
		||||
-	if (compact)
 | 
			
		||||
-	{
 | 
			
		||||
-		qsort(&userinfo_pairs[0], userinfo_pairs.Size(), sizeof(pair), userinfosortfunc);
 | 
			
		||||
-		// Compact mode is signified by starting the string with two backslash characters.
 | 
			
		||||
-		// We output one now. The second will be output as part of the first value.
 | 
			
		||||
-		*(*stream)++ = '\\';
 | 
			
		||||
-	}
 | 
			
		||||
-	for (unsigned int i = 0; i < userinfo_pairs.Size(); ++i)
 | 
			
		||||
-	{
 | 
			
		||||
-		pair = userinfo_pairs[i];
 | 
			
		||||
-
 | 
			
		||||
-		if (!compact)
 | 
			
		||||
-		{ // In verbose mode, prepend the cvar's name
 | 
			
		||||
-			*stream += sprintf(*((char **)stream), "\\%s", pair->Key.GetChars());
 | 
			
		||||
+		// Create a simple array of all userinfo cvars
 | 
			
		||||
+		while (it.NextPair(pair))
 | 
			
		||||
+		{
 | 
			
		||||
+			userinfo_pairs.Push(pair);
 | 
			
		||||
+		}
 | 
			
		||||
+		// For compact mode, these need to be sorted. Verbose mode doesn't matter.
 | 
			
		||||
+		if (compact)
 | 
			
		||||
+		{
 | 
			
		||||
+			qsort(&userinfo_pairs[0], userinfo_pairs.Size(), sizeof(pair), userinfosortfunc);
 | 
			
		||||
+			// Compact mode is signified by starting the string with two backslash characters.
 | 
			
		||||
+			// We output one now. The second will be output as part of the first value.
 | 
			
		||||
+			result += '\\';
 | 
			
		||||
 		}
 | 
			
		||||
-		// A few of these need special handling for compatibility reasons.
 | 
			
		||||
-		switch (pair->Key.GetIndex())
 | 
			
		||||
+		for (unsigned int i = 0; i < userinfo_pairs.Size(); ++i)
 | 
			
		||||
 		{
 | 
			
		||||
-		case NAME_Gender:
 | 
			
		||||
-			*stream += sprintf(*((char **)stream), "\\%s",
 | 
			
		||||
-				*static_cast<FIntCVar *>(pair->Value) == GENDER_FEMALE ? "female" :
 | 
			
		||||
-				*static_cast<FIntCVar *>(pair->Value) == GENDER_NEUTER ? "neutral" :
 | 
			
		||||
-				*static_cast<FIntCVar *>(pair->Value) == GENDER_OBJECT ? "other" : "male");
 | 
			
		||||
-			break;
 | 
			
		||||
-
 | 
			
		||||
-		case NAME_PlayerClass:
 | 
			
		||||
-			*stream += sprintf(*((char **)stream), "\\%s", info->GetPlayerClassNum() == -1 ? "Random" :
 | 
			
		||||
-				D_EscapeUserInfo(info->GetPlayerClassType()->GetDisplayName().GetChars()).GetChars());
 | 
			
		||||
-			break;
 | 
			
		||||
-
 | 
			
		||||
-		case NAME_Skin:
 | 
			
		||||
-			*stream += sprintf(*((char **)stream), "\\%s", D_EscapeUserInfo(Skins[info->GetSkin()].Name).GetChars());
 | 
			
		||||
-			break;
 | 
			
		||||
-
 | 
			
		||||
-		default:
 | 
			
		||||
-			cval = pair->Value->GetGenericRep(CVAR_String);
 | 
			
		||||
-			*stream += sprintf(*((char **)stream), "\\%s", cval.String);
 | 
			
		||||
-			break;
 | 
			
		||||
+			pair = userinfo_pairs[i];
 | 
			
		||||
+
 | 
			
		||||
+			if (!compact)
 | 
			
		||||
+			{ // In verbose mode, prepend the cvar's name
 | 
			
		||||
+				result.AppendFormat("\\%s", pair->Key.GetChars());
 | 
			
		||||
+			}
 | 
			
		||||
+			// A few of these need special handling for compatibility reasons.
 | 
			
		||||
+			switch (pair->Key.GetIndex())
 | 
			
		||||
+			{
 | 
			
		||||
+			case NAME_Gender:
 | 
			
		||||
+				result.AppendFormat("\\%s",
 | 
			
		||||
+					*static_cast<FIntCVar*>(pair->Value) == GENDER_FEMALE ? "female" :
 | 
			
		||||
+					*static_cast<FIntCVar*>(pair->Value) == GENDER_NEUTER ? "neutral" :
 | 
			
		||||
+					*static_cast<FIntCVar*>(pair->Value) == GENDER_OBJECT ? "other" : "male");
 | 
			
		||||
+				break;
 | 
			
		||||
+
 | 
			
		||||
+			case NAME_PlayerClass:
 | 
			
		||||
+				result.AppendFormat("\\%s", info->GetPlayerClassNum() == -1 ? "Random" :
 | 
			
		||||
+					D_EscapeUserInfo(info->GetPlayerClassType()->GetDisplayName().GetChars()).GetChars());
 | 
			
		||||
+				break;
 | 
			
		||||
+
 | 
			
		||||
+			case NAME_Skin:
 | 
			
		||||
+				result.AppendFormat("\\%s", D_EscapeUserInfo(Skins[info->GetSkin()].Name).GetChars());
 | 
			
		||||
+				break;
 | 
			
		||||
+
 | 
			
		||||
+			default:
 | 
			
		||||
+				cval = pair->Value->GetGenericRep(CVAR_String);
 | 
			
		||||
+				result.AppendFormat("\\%s", cval.String);
 | 
			
		||||
+				break;
 | 
			
		||||
+			}
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
-	*(*stream)++ = '\0';
 | 
			
		||||
+	return result;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 void D_ReadUserInfoStrings (int pnum, uint8_t **stream, bool update)
 | 
			
		||||
diff --git a/src/g_game.cpp b/src/g_game.cpp
 | 
			
		||||
index c960bab26..7ac7fd98d 100644
 | 
			
		||||
--- a/src/g_game.cpp
 | 
			
		||||
+++ b/src/g_game.cpp
 | 
			
		||||
@@ -2618,10 +2618,12 @@ void G_BeginRecording (const char *startmap)
 | 
			
		||||
 	{
 | 
			
		||||
 		if (playeringame[i])
 | 
			
		||||
 		{
 | 
			
		||||
-			StartChunk (UINF_ID, &demo_p);
 | 
			
		||||
-			WriteByte ((uint8_t)i, &demo_p);
 | 
			
		||||
-			D_WriteUserInfoStrings (i, &demo_p);
 | 
			
		||||
-			FinishChunk (&demo_p);
 | 
			
		||||
+			StartChunk(UINF_ID, &demo_p);
 | 
			
		||||
+			WriteByte((uint8_t)i, &demo_p);
 | 
			
		||||
+			auto str = D_GetUserInfoStrings(i);
 | 
			
		||||
+			memcpy(demo_p, str.GetChars(), str.Len() + 1);
 | 
			
		||||
+			demo_p += str.Len();
 | 
			
		||||
+			FinishChunk(&demo_p);
 | 
			
		||||
 		}
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,68 @@
 | 
			
		||||
From 43131effaa913a40fe10c15836e272c484b7c4f7 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Sun, 26 Mar 2023 09:49:40 +0200
 | 
			
		||||
Subject: [PATCH 46/51] - avoid arithmetics with literal null pointers in
 | 
			
		||||
 ParseCommandLine.
 | 
			
		||||
 | 
			
		||||
Also avoid using longs.
 | 
			
		||||
---
 | 
			
		||||
 src/m_misc.cpp | 14 ++++++++------
 | 
			
		||||
 1 file changed, 8 insertions(+), 6 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/m_misc.cpp b/src/m_misc.cpp
 | 
			
		||||
index 6e40991da..45af80cec 100644
 | 
			
		||||
--- a/src/m_misc.cpp
 | 
			
		||||
+++ b/src/m_misc.cpp
 | 
			
		||||
@@ -74,7 +74,7 @@ CVAR(String, screenshot_type, "png", CVAR_ARCHIVE|CVAR_GLOBALCONFIG);
 | 
			
		||||
 CVAR(String, screenshot_dir, "", CVAR_ARCHIVE|CVAR_GLOBALCONFIG);
 | 
			
		||||
 EXTERN_CVAR(Bool, longsavemessages);
 | 
			
		||||
 
 | 
			
		||||
-static long ParseCommandLine (const char *args, int *argc, char **argv);
 | 
			
		||||
+static size_t ParseCommandLine (const char *args, int *argc, char **argv);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 //---------------------------------------------------------------------------
 | 
			
		||||
@@ -101,7 +101,7 @@ void M_FindResponseFile (void)
 | 
			
		||||
 			TArray<uint8_t> file;
 | 
			
		||||
 			int		argc = 0;
 | 
			
		||||
 			int 	size;
 | 
			
		||||
-			long	argsize = 0;
 | 
			
		||||
+			size_t	argsize = 0;
 | 
			
		||||
 			int 	index;
 | 
			
		||||
 
 | 
			
		||||
 			// Any more response files after the limit will be removed from the
 | 
			
		||||
@@ -179,17 +179,19 @@ void M_FindResponseFile (void)
 | 
			
		||||
 // This is just like the version in c_dispatch.cpp, except it does not
 | 
			
		||||
 // do cvar expansion.
 | 
			
		||||
 
 | 
			
		||||
-static long ParseCommandLine (const char *args, int *argc, char **argv)
 | 
			
		||||
+static size_t ParseCommandLine (const char *args, int *argc, char **argv)
 | 
			
		||||
 {
 | 
			
		||||
 	int count;
 | 
			
		||||
+	char* buffstart;
 | 
			
		||||
 	char *buffplace;
 | 
			
		||||
 
 | 
			
		||||
 	count = 0;
 | 
			
		||||
-	buffplace = NULL;
 | 
			
		||||
+	buffstart = NULL;
 | 
			
		||||
 	if (argv != NULL)
 | 
			
		||||
 	{
 | 
			
		||||
-		buffplace = argv[0];
 | 
			
		||||
+		buffstart = argv[0];
 | 
			
		||||
 	}
 | 
			
		||||
+	buffplace = buffstart;
 | 
			
		||||
 
 | 
			
		||||
 	for (;;)
 | 
			
		||||
 	{
 | 
			
		||||
@@ -257,7 +259,7 @@ static long ParseCommandLine (const char *args, int *argc, char **argv)
 | 
			
		||||
 	{
 | 
			
		||||
 		*argc = count;
 | 
			
		||||
 	}
 | 
			
		||||
-	return (long)(buffplace - (char *)0);
 | 
			
		||||
+	return (buffplace - buffstart);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,69 @@
 | 
			
		||||
From 08d36a6540644f636466d118f1fa92d23060e24a Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Christoph Oelckers <coelckers@users.noreply.github.com>
 | 
			
		||||
Date: Sat, 1 Apr 2023 12:45:55 +0200
 | 
			
		||||
Subject: [PATCH 47/51] - backported RapidJSON fix from Raze.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/thirdparty/rapidjson/writer.h | 36 +++++++++++++++---------
 | 
			
		||||
 1 file changed, 22 insertions(+), 14 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/thirdparty/rapidjson/writer.h b/src/common/thirdparty/rapidjson/writer.h
 | 
			
		||||
index 50f6af989..bbc944979 100644
 | 
			
		||||
--- a/src/common/thirdparty/rapidjson/writer.h
 | 
			
		||||
+++ b/src/common/thirdparty/rapidjson/writer.h
 | 
			
		||||
@@ -552,30 +552,38 @@ inline bool Writer<StringBuffer>::WriteUint64(uint64_t u) {
 | 
			
		||||
 
 | 
			
		||||
 template<>
 | 
			
		||||
 inline bool Writer<StringBuffer>::WriteDouble(double d) {
 | 
			
		||||
+    bool ret = true;
 | 
			
		||||
     if (internal::Double(d).IsNanOrInf()) {
 | 
			
		||||
         // Note: This code path can only be reached if (RAPIDJSON_WRITE_DEFAULT_FLAGS & kWriteNanAndInfFlag).
 | 
			
		||||
         if (!(kWriteDefaultFlags & kWriteNanAndInfFlag))
 | 
			
		||||
-            return false;
 | 
			
		||||
-        if (internal::Double(d).IsNan()) {
 | 
			
		||||
-            PutReserve(*os_, 3);
 | 
			
		||||
-            PutUnsafe(*os_, 'N'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'N');
 | 
			
		||||
-            return true;
 | 
			
		||||
-        }
 | 
			
		||||
-        if (internal::Double(d).Sign()) {
 | 
			
		||||
-            PutReserve(*os_, 9);
 | 
			
		||||
-            PutUnsafe(*os_, '-');
 | 
			
		||||
+        {
 | 
			
		||||
+            // if we abort here, the writer is left in a broken state, unable to recover, so better write a 0 in addition to returning an error.
 | 
			
		||||
+            ret = false;
 | 
			
		||||
+            d = 0;
 | 
			
		||||
         }
 | 
			
		||||
         else
 | 
			
		||||
-            PutReserve(*os_, 8);
 | 
			
		||||
-        PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f');
 | 
			
		||||
-        PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y');
 | 
			
		||||
-        return true;
 | 
			
		||||
+        {
 | 
			
		||||
+            if (internal::Double(d).IsNan()) {
 | 
			
		||||
+                PutReserve(*os_, 3);
 | 
			
		||||
+                PutUnsafe(*os_, 'N'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'N');
 | 
			
		||||
+                return true;
 | 
			
		||||
+            }
 | 
			
		||||
+            if (internal::Double(d).Sign()) {
 | 
			
		||||
+                PutReserve(*os_, 9);
 | 
			
		||||
+                PutUnsafe(*os_, '-');
 | 
			
		||||
+            }
 | 
			
		||||
+            else
 | 
			
		||||
+                PutReserve(*os_, 8);
 | 
			
		||||
+            PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f');
 | 
			
		||||
+            PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y');
 | 
			
		||||
+            return true;
 | 
			
		||||
+        }
 | 
			
		||||
     }
 | 
			
		||||
     
 | 
			
		||||
     char *buffer = os_->Push(25);
 | 
			
		||||
     char* end = internal::dtoa(d, buffer, maxDecimalPlaces_);
 | 
			
		||||
     os_->Pop(static_cast<size_t>(25 - (end - buffer)));
 | 
			
		||||
-    return true;
 | 
			
		||||
+    return ret;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 #if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42)
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
From 2990caaa937b96c70124258ed48353587dbcdd4f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Sat, 11 Feb 2023 12:51:25 -0300
 | 
			
		||||
Subject: [PATCH 48/51] Fix value of `X = Y` when Y is an int constant
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/scripting/backend/codegen.cpp | 10 +++++++++-
 | 
			
		||||
 1 file changed, 9 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/scripting/backend/codegen.cpp b/src/common/scripting/backend/codegen.cpp
 | 
			
		||||
index 6cf593fa2..7be3c67c1 100644
 | 
			
		||||
--- a/src/common/scripting/backend/codegen.cpp
 | 
			
		||||
+++ b/src/common/scripting/backend/codegen.cpp
 | 
			
		||||
@@ -2571,7 +2571,15 @@ ExpEmit FxAssign::Emit(VMFunctionBuilder *build)
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	pointer.Free(build);
 | 
			
		||||
-	return result;
 | 
			
		||||
+
 | 
			
		||||
+	if(intconst)
 | 
			
		||||
+	{	//fix int constant return for assignment
 | 
			
		||||
+		return Right->Emit(build);
 | 
			
		||||
+	}
 | 
			
		||||
+	else
 | 
			
		||||
+	{
 | 
			
		||||
+		return result;
 | 
			
		||||
+	}
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 //==========================================================================
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
From 571637d6ea1f12f7b86ee223f33de1cc0351e17d Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Chris Cowan <agentme49@gmail.com>
 | 
			
		||||
Date: Sat, 13 May 2023 21:39:55 -0700
 | 
			
		||||
Subject: [PATCH 49/51] Fix BUILD_SHARED_LIBS build option on Windows
 | 
			
		||||
 | 
			
		||||
This commit fixes the build error "unresolved external symbol GetModuleInformation" when the project is built on Windows with BUILD_SHARED_LIBS enabled.
 | 
			
		||||
 | 
			
		||||
Gzdoom must be linked against "psapi". When BUILD_SHARED_LIBS is off (default), it gets linked because the discord-rpc library is linked against it and then statically linked into the project. The issue is fixed by making Gzdoom itself explicitly link against "psapi" too.
 | 
			
		||||
---
 | 
			
		||||
 src/CMakeLists.txt | 1 +
 | 
			
		||||
 1 file changed, 1 insertion(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
 | 
			
		||||
index 911e35dce..889a99dba 100644
 | 
			
		||||
--- a/src/CMakeLists.txt
 | 
			
		||||
+++ b/src/CMakeLists.txt
 | 
			
		||||
@@ -54,6 +54,7 @@ if( WIN32 )
 | 
			
		||||
 	add_definitions( -D_WIN32 )
 | 
			
		||||
 
 | 
			
		||||
 	set( PROJECT_LIBRARIES
 | 
			
		||||
+		psapi
 | 
			
		||||
 		wsock32
 | 
			
		||||
 		winmm
 | 
			
		||||
 		dinput8
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										212
									
								
								games-fps/gzdoom/files/0050-Add-missing-include-guards.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										212
									
								
								games-fps/gzdoom/files/0050-Add-missing-include-guards.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,212 @@
 | 
			
		||||
From 7e650c79a9b06b509a33be59cda816b6272a670c Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: l2ksolkov <jordandare@hotmail.com>
 | 
			
		||||
Date: Sun, 28 May 2023 20:29:24 -0700
 | 
			
		||||
Subject: [PATCH 50/51] Add missing include guards
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/common/console/c_commandbuffer.h                      | 1 +
 | 
			
		||||
 src/common/console/c_consolebuffer.h                      | 1 +
 | 
			
		||||
 src/common/engine/serializer_internal.h                   | 1 +
 | 
			
		||||
 src/common/filesystem/ancientzip.h                        | 1 +
 | 
			
		||||
 src/common/platform/win32/winres.h                        | 1 +
 | 
			
		||||
 src/common/rendering/hwrenderer/data/hw_viewpointbuffer.h | 2 +-
 | 
			
		||||
 src/common/scripting/jit/jitintern.h                      | 2 +-
 | 
			
		||||
 src/common/textures/animlib.h                             | 1 +
 | 
			
		||||
 src/common/textures/hires/hqnx_asm/hqnx_asm_Image.h       | 1 +
 | 
			
		||||
 src/common/utility/weightedlist.h                         | 1 +
 | 
			
		||||
 src/d_defcvars.h                                          | 1 +
 | 
			
		||||
 src/g_pch.h                                               | 1 +
 | 
			
		||||
 src/g_pch2.h                                              | 1 +
 | 
			
		||||
 src/gamedata/doomfont.h                                   | 1 +
 | 
			
		||||
 src/r_data/r_vanillatrans.h                               | 1 +
 | 
			
		||||
 src/rendering/hwrenderer/hw_vertexbuilder.h               | 2 +-
 | 
			
		||||
 src/rendering/swrenderer/textures/warpbuffer.h            | 1 +
 | 
			
		||||
 17 files changed, 17 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/common/console/c_commandbuffer.h b/src/common/console/c_commandbuffer.h
 | 
			
		||||
index 179651c45..637027b27 100644
 | 
			
		||||
--- a/src/common/console/c_commandbuffer.h
 | 
			
		||||
+++ b/src/common/console/c_commandbuffer.h
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include <string>
 | 
			
		||||
 #include "zstring.h"
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/common/console/c_consolebuffer.h b/src/common/console/c_consolebuffer.h
 | 
			
		||||
index 58bc0edea..8d4e235d5 100644
 | 
			
		||||
--- a/src/common/console/c_consolebuffer.h
 | 
			
		||||
+++ b/src/common/console/c_consolebuffer.h
 | 
			
		||||
@@ -32,6 +32,7 @@
 | 
			
		||||
 **---------------------------------------------------------------------------
 | 
			
		||||
 **
 | 
			
		||||
 */
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 #include <limits.h>
 | 
			
		||||
 #include <stdio.h>
 | 
			
		||||
diff --git a/src/common/engine/serializer_internal.h b/src/common/engine/serializer_internal.h
 | 
			
		||||
index 31cf76c1a..05b6dcad0 100644
 | 
			
		||||
--- a/src/common/engine/serializer_internal.h
 | 
			
		||||
+++ b/src/common/engine/serializer_internal.h
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
+#pragma once
 | 
			
		||||
 const char* UnicodeToString(const char* cc);
 | 
			
		||||
 const char* StringToUnicode(const char* cc, int size = -1);
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/common/filesystem/ancientzip.h b/src/common/filesystem/ancientzip.h
 | 
			
		||||
index 621505504..6241f775d 100644
 | 
			
		||||
--- a/src/common/filesystem/ancientzip.h
 | 
			
		||||
+++ b/src/common/filesystem/ancientzip.h
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include "files.h"
 | 
			
		||||
 #include "engineerrors.h"
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/common/platform/win32/winres.h b/src/common/platform/win32/winres.h
 | 
			
		||||
index 6d78230d8..a2b8711a6 100644
 | 
			
		||||
--- a/src/common/platform/win32/winres.h
 | 
			
		||||
+++ b/src/common/platform/win32/winres.h
 | 
			
		||||
@@ -10,6 +10,7 @@
 | 
			
		||||
 
 | 
			
		||||
 // winres.h - Windows resource definitions
 | 
			
		||||
 //  extracted from WINUSER.H and COMMCTRL.H
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 #ifdef _AFX_MINREBUILD
 | 
			
		||||
 #pragma component(minrebuild, off)
 | 
			
		||||
diff --git a/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.h b/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.h
 | 
			
		||||
index f52af7ebc..8efe61738 100644
 | 
			
		||||
--- a/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.h
 | 
			
		||||
+++ b/src/common/rendering/hwrenderer/data/hw_viewpointbuffer.h
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
-
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include "tarray.h"
 | 
			
		||||
 #include "hwrenderer/data/buffers.h"
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/common/scripting/jit/jitintern.h b/src/common/scripting/jit/jitintern.h
 | 
			
		||||
index aaf8d70a6..05dfd62df 100644
 | 
			
		||||
--- a/src/common/scripting/jit/jitintern.h
 | 
			
		||||
+++ b/src/common/scripting/jit/jitintern.h
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
-
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include "jit.h"
 | 
			
		||||
 
 | 
			
		||||
 #include "types.h"
 | 
			
		||||
diff --git a/src/common/textures/animlib.h b/src/common/textures/animlib.h
 | 
			
		||||
index 23d0d89da..661f00fb2 100644
 | 
			
		||||
--- a/src/common/textures/animlib.h
 | 
			
		||||
+++ b/src/common/textures/animlib.h
 | 
			
		||||
@@ -24,6 +24,7 @@ Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
 | 
			
		||||
 Modifications for JonoF's port by Jonathon Fowler (jf@jonof.id.au)
 | 
			
		||||
 */
 | 
			
		||||
 //-------------------------------------------------------------------------
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 #include <stdint.h>
 | 
			
		||||
 /////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
diff --git a/src/common/textures/hires/hqnx_asm/hqnx_asm_Image.h b/src/common/textures/hires/hqnx_asm/hqnx_asm_Image.h
 | 
			
		||||
index 918b904fe..6e2a93108 100644
 | 
			
		||||
--- a/src/common/textures/hires/hqnx_asm/hqnx_asm_Image.h
 | 
			
		||||
+++ b/src/common/textures/hires/hqnx_asm/hqnx_asm_Image.h
 | 
			
		||||
@@ -19,6 +19,7 @@
 | 
			
		||||
 //#ifdef WIN32
 | 
			
		||||
 //#define DLL __declspec(dllexport)
 | 
			
		||||
 //#else
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #define DLL
 | 
			
		||||
 //#endif
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/common/utility/weightedlist.h b/src/common/utility/weightedlist.h
 | 
			
		||||
index cd6a4ba0e..fb956a462 100644
 | 
			
		||||
--- a/src/common/utility/weightedlist.h
 | 
			
		||||
+++ b/src/common/utility/weightedlist.h
 | 
			
		||||
@@ -31,6 +31,7 @@
 | 
			
		||||
 **---------------------------------------------------------------------------
 | 
			
		||||
 **
 | 
			
		||||
 */
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 #include <stdlib.h>
 | 
			
		||||
 #include <stdint.h>
 | 
			
		||||
diff --git a/src/d_defcvars.h b/src/d_defcvars.h
 | 
			
		||||
index 73f110c70..8bf3d7c18 100644
 | 
			
		||||
--- a/src/d_defcvars.h
 | 
			
		||||
+++ b/src/d_defcvars.h
 | 
			
		||||
@@ -19,6 +19,7 @@
 | 
			
		||||
 //		defcvars loader split from d_main.cpp
 | 
			
		||||
 //
 | 
			
		||||
 //-----------------------------------------------------------------------------
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 #define SHOULD_BLACKLIST(name) \
 | 
			
		||||
 	if (#name[0]==CurrentFindCVar[0]) \
 | 
			
		||||
diff --git a/src/g_pch.h b/src/g_pch.h
 | 
			
		||||
index bad3eda56..cf3dfdbd5 100644
 | 
			
		||||
--- a/src/g_pch.h
 | 
			
		||||
+++ b/src/g_pch.h
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include <stddef.h>
 | 
			
		||||
 #include <stdlib.h>
 | 
			
		||||
 #include <stdio.h>
 | 
			
		||||
diff --git a/src/g_pch2.h b/src/g_pch2.h
 | 
			
		||||
index 4cd69197e..f5871488a 100644
 | 
			
		||||
--- a/src/g_pch2.h
 | 
			
		||||
+++ b/src/g_pch2.h
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
 // This is separate because the files being compiled with it use different compiler settings which may affect how the header is compiled
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include <stddef.h>
 | 
			
		||||
 #include <stdlib.h>
 | 
			
		||||
 #include <stdio.h>
 | 
			
		||||
diff --git a/src/gamedata/doomfont.h b/src/gamedata/doomfont.h
 | 
			
		||||
index 9b44a480f..b9d14db7d 100644
 | 
			
		||||
--- a/src/gamedata/doomfont.h
 | 
			
		||||
+++ b/src/gamedata/doomfont.h
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
 //
 | 
			
		||||
 // Globally visible constants.
 | 
			
		||||
 //
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #define HU_FONTSTART	uint8_t('!')		// the first font characters
 | 
			
		||||
 #define HU_FONTEND		uint8_t('\377')	// the last font characters
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/r_data/r_vanillatrans.h b/src/r_data/r_vanillatrans.h
 | 
			
		||||
index 702fc8212..d6b6a5d9e 100644
 | 
			
		||||
--- a/src/r_data/r_vanillatrans.h
 | 
			
		||||
+++ b/src/r_data/r_vanillatrans.h
 | 
			
		||||
@@ -30,6 +30,7 @@
 | 
			
		||||
 **---------------------------------------------------------------------------
 | 
			
		||||
 **
 | 
			
		||||
 */
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 void UpdateVanillaTransparency();
 | 
			
		||||
diff --git a/src/rendering/hwrenderer/hw_vertexbuilder.h b/src/rendering/hwrenderer/hw_vertexbuilder.h
 | 
			
		||||
index 4fbe9916f..0444613be 100644
 | 
			
		||||
--- a/src/rendering/hwrenderer/hw_vertexbuilder.h
 | 
			
		||||
+++ b/src/rendering/hwrenderer/hw_vertexbuilder.h
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
-
 | 
			
		||||
+#pragma once
 | 
			
		||||
 #include "tarray.h"
 | 
			
		||||
 #include "r_defs.h"
 | 
			
		||||
 struct vertex_t;
 | 
			
		||||
diff --git a/src/rendering/swrenderer/textures/warpbuffer.h b/src/rendering/swrenderer/textures/warpbuffer.h
 | 
			
		||||
index 778706850..594903a53 100644
 | 
			
		||||
--- a/src/rendering/swrenderer/textures/warpbuffer.h
 | 
			
		||||
+++ b/src/rendering/swrenderer/textures/warpbuffer.h
 | 
			
		||||
@@ -31,6 +31,7 @@
 | 
			
		||||
 **---------------------------------------------------------------------------
 | 
			
		||||
 **
 | 
			
		||||
 */
 | 
			
		||||
+#pragma once
 | 
			
		||||
 
 | 
			
		||||
 #include "textures.h"
 | 
			
		||||
 #include "texturemanager.h"
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								games-fps/gzdoom/files/0051-Update-service.zs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								games-fps/gzdoom/files/0051-Update-service.zs.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
From d229f9bfaf95dd057f116f72704c74134a511ff6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= <ricolvs123@gmail.com>
 | 
			
		||||
Date: Wed, 14 Jun 2023 20:33:30 -0300
 | 
			
		||||
Subject: [PATCH 51/51] Update service.zs
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 wadsrc/static/zscript/engine/service.zs | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/wadsrc/static/zscript/engine/service.zs b/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
index 26102b0a2..8090fff37 100644
 | 
			
		||||
--- a/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
+++ b/wadsrc/static/zscript/engine/service.zs
 | 
			
		||||
@@ -56,7 +56,7 @@ class Service abstract
 | 
			
		||||
 	}
 | 
			
		||||
     
 | 
			
		||||
     static Service Find(class<Service> serviceName){
 | 
			
		||||
-        return AllServices.GetIfExists(serviceName.GetClassName());
 | 
			
		||||
+        return AllServices.Get(serviceName.GetClassName());
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.39.3
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user