games-fps/gzdoom: treeclean
This commit is contained in:
		@@ -1,54 +0,0 @@
 | 
			
		||||
AUX 0001-Add-casts-to-F32-Map-MapIterator-functions-to-get-ri.patch 1456 BLAKE2B 9f2b914ff41c671f12e5ec7840cff901b40ffafe525572fc58b0b11d12fc7902921fb81a9da0b4054f299f0e6da12dd164776ec21d3372c4a3f4266fe5acccc5 SHA512 6d989d7381fee0a4cbff8ff73fdb93d27c0176593fb92f63d082f49e38607f8b91d8f94b7772934899be69802627207ceae817aa82a4a2bd7921fa60ed7a3a25
 | 
			
		||||
AUX 0002-Fix-PMapValueReader-warning-on-Clang-GCC.patch 843 BLAKE2B ffc17e9671ad7db66a7600ef788245c904a6cd3ae097357b073f9e667aeffe30570931e5c7ae3d5b3d2aba349889bb7e16a7940a67904072bfe30d7299c5cec7 SHA512 f3ccf5cf7cbdf89ae933c60c2b6d04f1030f3087f5b49e110595037459d5c77a10cc9f287676d0ad9a77c50f50fe0b8acf2d3f44b815196714da0df650e54a15
 | 
			
		||||
AUX 0003-Fix-Quicksave-Rotation.patch 765 BLAKE2B 3d25b8e8f83286fd06d042ad2cb6d6628592655d749ad9bbdf3a900c1cbcb213e2f39f1059e9e4248ad863ca74da9aadbe4166a21956a7f91402fd0112c40878 SHA512 2f9ea45b230068a0c80c5fb526dd1bc0fb57836a12a17e48c026d54e7d3b1097ef1faecdceacfccfe263054ac899ed63248c851c0258766b2d39b516f1e4b167
 | 
			
		||||
AUX 0004-fixed-some-bad-character-offsets-in-Doom-s-and-Raven.patch 8532 BLAKE2B ac46b7068b6bdb2d29674a8fe42dbaa6ae9fb69c54d651162afb8866c3637dd32f45acaf55b2781f6e2c81e9ab185d056ca63d4b6a2d82f750526ef2c03d03e5 SHA512 66f2753f09957e881ab14df5b27ba46aaea516f84bbb85982741c0ca17b2347347bb6a87fd84318187905655e500007055f6aef7b2cbfa7afd961d46f164522d
 | 
			
		||||
AUX 0005-fixed-GC-FullGC-not-collecting-everything-anymore.patch 1948 BLAKE2B 59ef34a0240c5a92a60240e8e1324b4c83e290adaa12c3a9d5040df013e7d0529ba0d7291c301330662d5c20677ffeb02ef9710f99891d12cdf8466def278621 SHA512 9b32f343df38365dde2b0aac8b289f5e81a7ea1d73f296d937ed61917c2d0a8553f446b4a72f8208db976a091a734cf5e282b914c9f42ecee144f295827ad1db
 | 
			
		||||
AUX 0006-Fix-wrong-assumptions-about-actor-initialization-in-.patch 1720 BLAKE2B 0690194614019ea1bda135dbb9c805abfd5fe63c268b13c856c3602347e6a46d406e5fbd00c2e00725b2e0ddc81470eb8343933e540bc288bf5bb9fc9c3437be SHA512 3d7c44eb809852cb3b7875696b00bb4b0889ce9bef7f05714f351ca75ffb265b79ebcadee9818022985df5ff0e68d63661113255660dacf507a536e693cea1d5
 | 
			
		||||
AUX 0007-Fixed-IsActorPlayingSound-s-default-argument.patch 1451 BLAKE2B a8f8a1d595aac08593f62eb9c3a49c46dbb67e5ff1c7379d3ce40c9a8b2e7018c4d3b645d1809421f261d9be8e6657420c665367571057eee53d2bcf18ed5a6f SHA512 a31ef8faaa08aed04d9718e68924b0907e84d7b3929eb358ccdd16738f625c6f12593689d62568945ce2609544a2f1c3630aedbd6b27f65eea2c5bd6130b3680
 | 
			
		||||
AUX 0008-removed-clangformat-from-discord-rpc.patch 814 BLAKE2B 3d829420b250dd830028c229c8c9a2ff39064902ad0ab50ac42c83bd454e052966cdb23c1cf08de006878567b66132f83da43aa3c44f71458be0c982f3df73b0 SHA512 bacd20da979045cf07b843de3048c10d2adf6ac45ec48e1bc958a698731c0901b2f5acd0ce2d275298a210c002b07323dbbb591db745063d5078f95c3efe1a8a
 | 
			
		||||
AUX 0009-Error-out-instead-of-crashing-for-vector-out-variabl.patch 1055 BLAKE2B 84daa43accc83e4df92a4d19c38754e5e58a7ffa72deceb53db0ee8dcfb4872b2b49966204c3d6a66ecb26aba15db097a72bfedce882e55c58d37d87acecffc6 SHA512 ac1696c41738b6bba94544013435f59d5f3b72d2aed75756047a38d0a6c2242de5228404c219e61a1bc831f9695be10c51b0384982bbeb633b2456a0a5129224
 | 
			
		||||
AUX 0010-Fix-StripLeftRight.patch 1288 BLAKE2B d6e12b0347c902f7294b1a0f06e792a4280224e982209c609905a418fa8aedd3c6659aa0efd81028700d759bc37d71efc092cc251bcbad771cefe44b70b2c099 SHA512 42ffbb9a8d4f2774e5eb216cc8e016100b827c543d5c3630c8d5ccb5477d50af88bdf7347c28be3c4a2a022944d41eed2d34d87e548facdfbfdfd48bff2b54b9
 | 
			
		||||
AUX 0011-Fixed-custom-height-and-width-not-saving.patch 987 BLAKE2B 33b32cd6b150a2a28bc2cadc11fecc4e726d9d501072b849a2a7580086a5c20d604e3b99a8b78a8d333010c0d0043caac54ed5e201631b16c0608a9c3dc464f1 SHA512 98334424983c53948000687d41f18a76cbd6d1666f8eeea5584a22e45cabf9eb2250a009a3b47dafcee68f3043d32d12cc56cc75f267d044a05ab43c69ec5aa4
 | 
			
		||||
AUX 0012-Prevent-important-messages-from-being-accidentally-f.patch 7650 BLAKE2B 09dd89592ac214f0ec064606bf0f51081e0fb0aaffd7ae5f00d25ecaf14adc82be8bf190d75384a7d9fdc00d969929caf9dec6ca959f272825ce62dc89825b55 SHA512 ac97d668204188e610f7f6aaee25eaee82d35bc9a9543f38099bed2fbc502e23765f9c0083e9925085b389ea9111a52b2225f5fe9e6352f4cd65930482e98de2
 | 
			
		||||
AUX 0013-fixed-buffer-size-checks-for-raw-textures.patch 1387 BLAKE2B 767d1f5108fcff0a085de443a68dbf40ada25d9183bfdc4f53f52cb2da90ad71dfaf6ffff1e1512fc91e4902cd97a5893a4483eafd30229b6ed8536cb74d14c3 SHA512 e09c445a3cbe1579e84271ebbceb5acb28cc6ef47673b66586319ee128db13fa93b3f94461b33a20ab21351e694980a167c2be9a0dc44b4145cc67fc56e9836b
 | 
			
		||||
AUX 0014-Impel-people-to-include-demo-mods-in-bug-reports.patch 1102 BLAKE2B 7a1efd0b5b0a4bba7efaa57f97f3e24d29fdd1743568da2eff99d10a71b205c6b6ddf48ac8ff04296938b3af16d98e40d35585d0ec86b7b1e780d6bfc0cb1ff7 SHA512 572e5df262dcf88163cb64beceeda9d6eded2d52b9b459817eeea8d4b3332bf94b6b680bbdf235e8b5e01b91542826e30d780cd9d5e395e1c2234b50ebdcb3f6
 | 
			
		||||
AUX 0015-Fixed-a-bug-where-static-events-would-fail-to-halt-p.patch 803 BLAKE2B 8c22648bdb0a5fdf95aad3b632cc3dcac149900b2d850b1f7f6fbdccaf8711633487c1840f41e0bffb231d9642e432fe81580236f9b657b795e3cbc569d2133d SHA512 28766c717660398c9b6b9e15cec9ee3060c2491529165b2e18d2a4870aaf127d790b196ab88354e33fc322f5450ea7141e75b29b419b18724441746bc927b69d
 | 
			
		||||
AUX 0016-Fix-MapIterator-X-String-GetValue.patch 1318 BLAKE2B ffd9be0e59d78acb72940b887780b5e57ca610925f627770cbf2b23e10da2809d391b4b9930b617b6416e02a783f44d67eac76229e88a9834cf919d71f5cffab SHA512 b0301667c1eca2026f68774b95a1c7a14dedcee0a96b4aa07120f60885bd068891c8c8022fb7a02991f7a705f03c60308b8d0c7ba0d9446592ed96a9b7fb3a10
 | 
			
		||||
AUX 0017-Fix-two-different-portable-names.patch 1238 BLAKE2B 7b01baa717ac4d605e2f606914aee2849e7bfcf5a403f6e4e6c6d8df34c2e34e979b2140843e099fddc47d070c9b3e71c61cc9d345a584ab305c1a0f5ad1974d SHA512 bd23ec87123fdbd1610b5c0674e863054d9df58915a13262d5d3d3140fbab25d9525061edb0658087b64c5561f1bbaa6998e8c7e49e0adb74563396fc90f236c
 | 
			
		||||
AUX 0018-indicate-in-the-startup-window-title-when-GZDoom-is-.patch 1163 BLAKE2B ffb0fe6be80c1c5f217f9ee89485157859550ab65908f95db9e47ff1d44e6c58ba808b4038d8b53d45396b021adbeb4b0fcd68374023f01b9e701b01e7fc510a SHA512 8a66a5d5233df2d3007c1476f3c893d13e53cde9482b446203a414c6b6dd13e0d26e8542fc8897449a8f554d4b4ab4ea514b45626fb0f3760a56a4e4d1909787
 | 
			
		||||
AUX 0019-alt-HUD-use-NewSmallFont-for-drawing-player-s-coordi.patch 2924 BLAKE2B 81c63cb2c2d3fbbff60c744d118f5b7506acfde04c25ff638ad57522f44007bdf5ebf511a95a8cdab1338cd7167ce5cbf5a543045358fb3e0730c23fc53e9c95 SHA512 70749d0e82014801d36e8b7295f7bf7d9f8d15698274a98888b4e2d669e6f317afc2cdc6fdb6fb985efb017eb127d8359e9069417c13406436b4d8274b101f31
 | 
			
		||||
AUX 0020-new-characters-for-Doom-s-SmallFont-and-BigFont.patch 24590 BLAKE2B 97bcbc8e4e2f38bafbd9356ef4fbc958a5a8eabf131a3499fcd0e065f55c3c05b82f92cf8774c9251f54edfbe6300d3061fd50b72e0467c601a48031e0a0e994 SHA512 30e7676386d5ae1691a63df5b3f5f8b3bd906609b8e82f9ac28638f03b7534423aa3656c91d00ccba9dbc177145aed2c497058d2755aa4e483184e330d6999ff
 | 
			
		||||
AUX 0021-4-non-letter-characters-for-Chex.patch 3356 BLAKE2B c15174981469a24b3070d0351c292ece1c18c755ebe2b0270a431ed44955a2360cbf23c5069aa7acd0e062c77907b6d4a8da8c998991c5d99ea95a050b799e52 SHA512 39a0889571bcbdf4bc265550d5fff9eb003b2c07c274de68ea18ba71b3b590819ceafd835e9fe7db8957b5768b740078ed599afe4bfdd225b870591c8fc1ef52
 | 
			
		||||
AUX 0022-Fixed-global-TerrainDef-array-not-being-exported-cor.patch 952 BLAKE2B 3f0c89165c4d4047e5774e01900f46c885ce6f7eb4f5e8f0221048faf74a36e1ad29dbd2b2d775f7a3ad844c9e96e7778ce8572a9faa65958b5a2657d5147887 SHA512 b060d2fc4091f5c82c04e7551ff071b2336993600abe5d82a9ee128730ab50c86c39fbbb60959901ea8574c948362eb2dc7023d3c1582744f33072454b916e38
 | 
			
		||||
AUX 0023-convert-characters-to-Doom-patch-format.patch 17507 BLAKE2B 56ce3b780636e751c316be4fd75ff16d37cb020dafa9f5a33424aa80a0bea49e8ce0132df2a889d60944b27751419a867945afc1448db93d8c5aaa07566e7fd0 SHA512 da87583292167475af6f75409b6e7bdcffe3abc0eff9b697bd65ae1d5768d0af871a31aa63ebf62e026a0d17d0b5303959ff723eed386920de3dfa3ddda9662a
 | 
			
		||||
AUX 0024-Mark-non-modifying-map-functions-as-const.patch 8847 BLAKE2B 97180c261bd1228d798ead59a7bf83b5f137a740b4a5bd3149b8d4f299207e664459dcf00ffbdf1b6aeef53773fe4ad3d181628a8eed876a8c14516e065c2b94 SHA512 5527569a52f929232aefb874f413084d880ba79a0937822820feaa3cd2580c15d0941d4e54651b8316b467d94cba5c4c2e398e12cba6020bad3c922945d8f9a4
 | 
			
		||||
AUX 0025-Fix-iterator-invalidation-for-Map-Get.patch 1027 BLAKE2B f2360c2546aeebfed91a34fcc714879763005263940b87ad02f39397d348ff1c89fcb2b352a0784ff2c4e10e13b65da4528b8747aab34f029444d5f0fb6f926b SHA512 624c2d1a72e5ad3f531aba3ccc67588c4d0d1b4bd1386ee58181aacfa8777846674a0a6a8bd7aff5bc3c1fad7af92bbf1e1f1638bdbbabe990f91dc68c7bbda3
 | 
			
		||||
AUX 0026-Add-Missing-Read-Barriers-to-Map-Get-Functions.patch 1853 BLAKE2B 289b7988c7ac2e94b5aef45561559b8a7aacc0f954707a9e72babc2411affbc8601c5d445e55c05ef18fdf1cb7cb0a38d02e58eb7a12020ca4464e87c6d06166 SHA512 a5f0026c715a8035b4d799815b2dba10cffe55011efed17e6376077e2f9ca7ee172630e5a93d36cca111ce453b81888030a8f868be513554b5f90da696effddf
 | 
			
		||||
AUX 0027-cleanup-of-the-Chex-Quest-small-font.patch 51380 BLAKE2B f55a209204ed08b8f6b9ac1a59e405e7f77577b812b99415118ba1e37164ba93c4b616770d797ff9fe9b8a3aeabe1c5f31be7aadcc3b3509cf5b129dca92647a SHA512 7dd652af071dd727b8dd4d2fbe3674354e360f5dd206956bb1ad02e1a1f6f3452491dcca84f3e9a99e07478792664a28ed642b40ac27f5c9edf2a01376a6ed95
 | 
			
		||||
AUX 0028-refactor-add-some-logs-to-help-understand-what-is-ha.patch 1570 BLAKE2B 26445bf09b1dc03d5346751f1046987c8e198ab42498a5bf3e01e3803a74d884747b30fd0c3f9ebb7fe7c6fdde443a9b24d43c4c1abba91442499777c4bc974e SHA512 01c2f3fc8dc8a4d9d6a05ff074fba1fb98951797820da6a8145a15d03ac958069e9f54adb8c2fe45e0d58174073fa6fe292425ab3db38ac89d7e4ba603889b3a
 | 
			
		||||
AUX 0029-Added-check-for-invalid-class-on-in-VM-instantiation.patch 1320 BLAKE2B 393795d4bddf50de35ca9154126a462eb436d3165e7f2da2a14c62e2ba0e23adde405363619b57d46287138dd46c5ce57066cef2ebe2e0351815a7c419500cf1 SHA512 c040918c8e3fe3acc879d186d8eb58723ef4ea96cd3fcb3938b2aa3685fb2e4e3ebfdf891f870e097da812fb3a5fc11cb14c829900bfeb34b841d991c39976c9
 | 
			
		||||
AUX 0030-Fixed-a-bug-where-calling-an-invalid-virtual-functio.patch 893 BLAKE2B 3514f0002599bbd85b15693ebb05e7054ccedca48c9d61c93bafc0a1eca0871d42954c9fd9c7011d30319473840da5a6116413e903308fd4d2b252a7324a8837 SHA512 ae6f1cf65920681f7d936a2e7755f3dc62b7dce4aeea13af742ddca509023b651ec4f7224908024bd59f63c98bc962dfd69e75da4f62ef484d69e0edcb4481e1
 | 
			
		||||
AUX 0031-GLES-Fix-first-wipe.patch 792 BLAKE2B e4295d5a2658e30dbc148154417387fcc29e34a4a89d2f9be2598c2032da42a2e4f36fd5709396b851d16116efbb7c55093f5f731143398934ea3ec87f7db639 SHA512 ca296f234e00a352181fbcf5572d5fb2b5a2e94e0aed31e2bdb6a58c7e44675829a6b709c7782d91a1b1f5e50bb0b186d833f7dbd32a3ccb54c83041fb3ae4b5
 | 
			
		||||
AUX 0032-Mark-const-methods-as-const-in-pseudo-generics.patch 3452 BLAKE2B 5dbe86b77d5d61f82c1be53966bd79be0f73833765b9225b4af36261d451ca5addc96e998131a61c3eaf9fff7c41ebaeb28fa4a5e58f54dc832d798cc2c6bb6f SHA512 21456d9f22300c092f2afb9e2769f7713ed8b785f4b1e0e2df524e063bf6bbee4c5f00e5af9e741266fb8232bfdcc086226786a3a50d4643694065a8bfe80437
 | 
			
		||||
AUX 0033-Fixing-GLES-mode-to-work-on-real-GLES-hardware-and-O.patch 14991 BLAKE2B ab325995dda89d624382dee0b0d04b6894177ba8f4c468c76aeb17a00a2ec0aaaec7c5fd0bed12a15b12bf1f64af426dba5ac97ddcab57cbdfe659da6fafed2a SHA512 7dfc6735de633bdb888cd1af36fba9a3ed0c18bc3e415e81bd77d2e2f1213f7d81242efe584f4845b1104a0690e0561d1779a99f6a0f77116668c8f4e5fa92a4
 | 
			
		||||
AUX 0034-Fix-Software-Slope-Rendering-for-non-1.2-pixel-ratio.patch 976 BLAKE2B 650f1a2c7b10d95b1850979137a3bd396dde4f2c9828de43728a0ff0140622ca4f4c7f4611b6b00e9116365caef00b51d87d8ec3943fd0f9fd4968d2b9db2231 SHA512 bff63b8615e0983f7c16cd810da39e48187d24ef8827261aff3afcabcbf6ad21a443f1cc3d2a41c3585594c912c0b5dc5263a4fc5af3473fb6132297968ff2c9
 | 
			
		||||
AUX 0035-Improve-Services.patch 5438 BLAKE2B 346dc0cb29ddd137fbd730054d4022e8511ad13794495c522b150c6fb3aa1a95251215a8812a1773eedabe79dfafaab506b86cae4f7ccb6e2a61607b299eeb05 SHA512 0483a8893d0ad9cbf288f83d8e13a778105569b6892c4cec18d029573c185d4150c978cecaf6fba9249e35ad497428c46ff70f00154ded249a0c3a78c0a5f02f
 | 
			
		||||
AUX 0036-fixed-typo-in-string-label.patch 633 BLAKE2B 7a7c71c2595c1a5456bdd83f60a490bdeddf5f92efd7d1e576cfeddde9a4edaaaa6a894f6417250b4849313a4a27bf918c7068bbc9d6d08c110c9e27bd4ef8db SHA512 3816735c6d8b5d3bd74a3246041a3a13a4a2c7988b2d1440c5677957657784cae3d6ab2eca28bc80f6b4a4818d9d798a7b675bbc4a06cda2dc7d05459119e466
 | 
			
		||||
AUX 0037-Update-service.zs.patch 846 BLAKE2B d422688413b7ad6e8270f9685f211296ef43e5d77051360df79a48de4aadf45c91dc33c825e01c10fe2160ed60a41db754c8c93b90c2bc6eedc1ed348f125fdf SHA512 a4831e68ad13029f7356cf544747ea6dc4bee306588e10768be577de0d478bdc558aa4d2a7828d67bfbe7de7dd495989c0caae4630be85c51f229a7a2bedd765
 | 
			
		||||
AUX 0038-Allow-GAMEINFO-LOAD-to-load-directories.patch 985 BLAKE2B f1491cafdbe2ce28b35d6014a0b125ece148ea58c6112d4e9217e304f1f325b65bab56ec942ccb45ea417fefba172c4855cd82d085884a96ca9cd7e9ab8d40c3 SHA512 dd9af90a268dedc4c241ddddc59821ad4f14ff557331c9d7e6d21fef40cc5a230789d5beb5e376f4e391d86f6b830dd6b7b751c8bb46afd0b928c6975aac6557
 | 
			
		||||
AUX 0039-fixed-bad-character-offset.patch 700 BLAKE2B 8675d782fa14fdb3907e3410cef1b6d384f63bae1260cc8f184217d667bdd6d024e8b3ecc2b1edf691781ef079f0d134d28b5e588c190da140a393fb7860656c SHA512 7075e16c2eac170835d41a2d68fe1afc21ecbe435062345981b356bc72135aa54953b38762e289d2fd598de0d371d7e935f27dfdf4e86eebc07da34519cbb8a7
 | 
			
		||||
AUX 0040-Fixed-incorrect-parameter-type-in-A_CheckForResurrec.patch 884 BLAKE2B 2d27f953bb7a23e637dfce738f93716f97e7b4ab1e15736c42edd48b8048af165aa58b090152bd302e845ec53ececa6ff48f02dad74e2058187a66bb9efaad50 SHA512 1c3730bad63d52589d378b1dcad67c033c77a205d37e1c2a2b59ab799fecf5ceaad32033e4b3bb7846952a714d10efc966c24ddc59dfc6508ef92174a8bbfa5e
 | 
			
		||||
AUX 0041-Fix-TArray-allocating-0-bytes-in-constructor.patch 883 BLAKE2B ac1832b18047e65af9e30d2a886b3f26bb65255290370dcac67c6cc6520edd8a0a14a0416cad507e9c0b198b06aeb5c1f9f93d57b18596e555c0d81e788d4f77 SHA512 3a77b47332352674940efbfbb5faa3346da49e1e7bb626bbcb02968596f66fa76bf678adeff690678fc2ed70575b905532f244e637cb886d4153f3c8c853f848
 | 
			
		||||
AUX 0042-Use-simpler-constructor-for-TArray-in-FBlockThingsIt.patch 1005 BLAKE2B 30573f45426762ae08ae8481f6e238c7d2bb4f87ff35b40a523c6900cfc0c369e725f234eb6a24c526d6f61fa0eb52fd0165360cc20ceb81f1804725d71e792c SHA512 d0ba0ec3fa6bf9ec3e0a3ac5487fadb4bde9971c35990a4eb660f3118cb05067857350b45311443d696d3a3c10712b76748ed89c97034f6c011f9505c69212bb
 | 
			
		||||
AUX 0043-Fix-possible-memory-corruption-in-TArray-Delete-inde.patch 739 BLAKE2B 9d275d2ba6849c821e7b97e262823167d325fea21c001e2b477e7efe9b9b7cc85e0ff956e84becd1e50f49793753ba47d2c55c7c00cc8366bbf01a85014f8771 SHA512 94f4c5448b8bd08b9734108d16f0719b62a122fac41438b4d2e9363518bd853930532bb2d23cbfdf4797f065a207e8ae892bea12325fa7f623c671e87c63baf5
 | 
			
		||||
AUX 0044-updated-RapidJson-library.patch 460535 BLAKE2B 33a439547b0cc291340e31b5cc471a929442a75acf3dc97f598b2019233499b307be9e4a75eb18f42c2e3f9d489960c12d0427ca5c22b54a38bdf67481948942 SHA512 6b19ba0454a054b02c7faa0f49493511510d2c7451a4e5aa66f8a8004fa257aa4bfe1c31557f8e5e24078b6eba4808298f2cb870a9955abeba85d438fa69ac91
 | 
			
		||||
AUX 0045-made-D_WriteUserInfoStrings-memory-safe.patch 7055 BLAKE2B e65c9ebfe4fad7e67b62a968ab25c412b30936e93576d14e7cbc446491602acc19b4f3de302fa74693b208926f513fa98708c22612c217127def91b40b2e05ae SHA512 596844c81ea53bde64d914907579e70dc994c3ac722178c693aa9a015e7b0c71c8d9699b5fd0b65005cbef93b0e73db85d64452e08951a55179c4e54a721c2fa
 | 
			
		||||
AUX 0046-avoid-arithmetics-with-literal-null-pointers-in-Pars.patch 1910 BLAKE2B 0b6cacd3b9d899bfa1a2bc208e1cb67fa83318ccdd364b5c8739208c53595f5fb68c1721234bb3e9ec6f54458df81f98552fd2c36e932976f11568eb596ef7bb SHA512 b1764a2aac19ddf344a39e5c37354d663fa722593d69aa497180890efdd7800f60ed047a62552f41f3675bf56cf6a6774bd2586ce2ba585e194d22550079385f
 | 
			
		||||
AUX 0047-backported-RapidJSON-fix-from-Raze.patch 2723 BLAKE2B e276f64f80a2164e3b206e99af81255cb1b50e5555bd8c26860c8caeaeff1abc983311cf9e3c787ae1bb251d02c61bc9256270cb4aacbc8da0724084d9fb9789 SHA512 e02f1349102e657a8a408191be75f4e660d4dc11a2805e955d5b99be00aa1c7e3ff2982bf69ca282e0fd889190092355da76810c41d8eb3bee3de9e0cd60c963
 | 
			
		||||
AUX 0048-Fix-value-of-X-Y-when-Y-is-an-int-constant.patch 933 BLAKE2B 562f19d03b102aaf5ce8e61c8a9df57e8b7dfe1b2b0b5ba6a758326754952f438cded34021b581203c4ffe9a5448f8050db7139715ef7c12339ac0995a1c1aec SHA512 b45a265401d0e34964ece6359d7ccd5b896ba33405e4175bacb7162a3efa0d87aaaa65f640d8338f9e9b304c0f49db38bac727b87efc2bc6313460e7418ff866
 | 
			
		||||
AUX 0049-Fix-BUILD_SHARED_LIBS-build-option-on-Windows.patch 985 BLAKE2B 8aa48badc2e3ea5e0667b6d5b7eb40aabb94f9139a52df3eb32f5d1426376343ad1aec4999f98a8bcf4863e41d85785bf121c079487959fe17c53cd6977e1d02 SHA512 2e4c383a45082cfe3de0f6c9932c28655b4ae20ffba6f4b0989e31ac36b5c675a05c907248e968e83d4dd4735ed20c5537343954c00381e6b82d1957aff0689b
 | 
			
		||||
AUX 0050-Add-missing-include-guards.patch 7356 BLAKE2B ea6585c407855027501c2b19c5066b7be632f25eaf644689a2adbf5962b4ef3e860bad43e37094c5e67fe13c476a8a23480b54ef22cf3a52907e826ff0a0fd75 SHA512 bdd5ad506f8f09dd668fd943fb61bc8c919843ca7f4a58142faad395ac6499ac22d79d5bf3fdd2d7d6fdff47f028d8f6ff5ae16687c8cf045bddc61e64a79402
 | 
			
		||||
AUX 0051-Update-service.zs.patch 806 BLAKE2B fb813ae2c68b4736d02a86576922111f7eaaf4b8ac35284240e2a3d1c5f4bdd8347fda2671d618d80aabd3d9c56ed2b186f816a9e724ee586fc63c9d7b9137f6 SHA512 cfa581be100a46b2daf025f4a916fb63d1a9d186e489ddaf66c27253082f6288afd528fb85364df36927f8ea4f7a66807df5ed8b3c48ca3ddc53f2d38785259a
 | 
			
		||||
AUX gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch 1209 BLAKE2B b3cf80ab4d6328dbcb14ceb9514883ed58b8086dab02182f4cf8964140095dd8d6ac0503c68a4c7442c0f9cc92b4bb6b3e084eee026be52842413e15118a13be SHA512 a08c29fe6b867dbbe60035c99c31d1bce73c1ff37ca2c15f659e060b77366f6fcdc11d2319dee3331d9874115e92566b9c0a6364604869f3815fbb0ee7179ef6
 | 
			
		||||
DIST gzdoom-4.10.0.tar.gz 24319337 BLAKE2B a683182ed1bb091d19cff127352068faa846f0a10bc0ade07f8277dca7a5367d0bc19d2828c485fba11cefdb47aa8d99224bb8babbebe3df0b99a6fde577a586 SHA512 fd2f6e34aaa59e3d153de6359211082398878dae3d396ab55fc736f94e1378d5e03193d7912a29a531cf1dc255d30af63ad1c6472784e3745db6ac4a3a9e6fe6
 | 
			
		||||
EBUILD gzdoom-4.10.0-r1.ebuild 5736 BLAKE2B f4f8768736c626e15c6bc3394e424a56af43e84d7175521d59de8800a5a9d8c9654f6d91533d995be6da9af6eff62797687077bce632c8994c260255f1996d0d SHA512 aba87d5389843beb03cbe23af85aba7a66920580aeadf9b09390e8d25df0cf91d7939be390ce32309d624fba9a63ebb566696ec36630490c12530c4acf93e12f
 | 
			
		||||
@@ -1,51 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,180 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,70 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,55 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,27 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,27 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,45 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,176 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,43 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,27 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,40 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,76 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,502 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,74 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,340 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,270 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,32 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,59 +0,0 @@
 | 
			
		||||
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
											
										
									
								
							@@ -1,44 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,64 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,474 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,191 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,21 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,29 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,35 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,200 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,68 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,69 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,33 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,27 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,212 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -1,36 +0,0 @@
 | 
			
		||||
From d164cfcde29980c23ece15f0be1b09dac5853843 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: William Breathitt Gray <vilhelm.gray@gmail.com>
 | 
			
		||||
Date: Sat, 31 Aug 2019 21:23:23 +0900
 | 
			
		||||
Subject: [PATCH] Introduce the BUILD_NONFREE option
 | 
			
		||||
 | 
			
		||||
This allow users to disable building nonfree components (brightmaps.pk3,
 | 
			
		||||
game_support.pk3, and game_widescreen_gfx.pk3) if they so desire.
 | 
			
		||||
---
 | 
			
		||||
 CMakeLists.txt | 9 ++++++---
 | 
			
		||||
 1 file changed, 6 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
 | 
			
		||||
index 9013d8921..77bd703b1 100644
 | 
			
		||||
--- a/CMakeLists.txt
 | 
			
		||||
+++ b/CMakeLists.txt
 | 
			
		||||
@@ -411,11 +411,14 @@ add_subdirectory( libraries/lzma )
 | 
			
		||||
 add_subdirectory( tools )
 | 
			
		||||
 add_subdirectory( libraries/gdtoa )
 | 
			
		||||
 add_subdirectory( wadsrc )
 | 
			
		||||
-add_subdirectory( wadsrc_bm )
 | 
			
		||||
 add_subdirectory( wadsrc_lights )
 | 
			
		||||
-add_subdirectory( wadsrc_extra )
 | 
			
		||||
-add_subdirectory( wadsrc_widepix )
 | 
			
		||||
 add_subdirectory( src )
 | 
			
		||||
+option (BUILD_NONFREE "Build nonfree components" ON)
 | 
			
		||||
+if( BUILD_NONFREE )
 | 
			
		||||
+       add_subdirectory( wadsrc_bm )
 | 
			
		||||
+       add_subdirectory( wadsrc_extra )
 | 
			
		||||
+       add_subdirectory( wadsrc_widepix )
 | 
			
		||||
+endif()
 | 
			
		||||
 
 | 
			
		||||
 if( NOT CMAKE_CROSSCOMPILING )
 | 
			
		||||
 	export(TARGETS ${CROSS_EXPORTS} FILE "${CMAKE_BINARY_DIR}/ImportExecutables.cmake" )
 | 
			
		||||
-- 
 | 
			
		||||
2.33.1
 | 
			
		||||
 | 
			
		||||
@@ -1,140 +0,0 @@
 | 
			
		||||
# Copyright 1999-2022 Gentoo Authors
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
 | 
			
		||||
EAPI=8
 | 
			
		||||
 | 
			
		||||
inherit cmake desktop xdg flag-o-matic
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="A modder-friendly OpenGL source port based on the DOOM engine"
 | 
			
		||||
HOMEPAGE="https://zdoom.org"
 | 
			
		||||
SRC_URI="https://github.com/coelckers/${PN}/archive/g${PV}.tar.gz -> ${P}.tar.gz"
 | 
			
		||||
 | 
			
		||||
LICENSE="Apache-2.0 BSD BZIP2 GPL-3 LGPL-2.1+ LGPL-3 MIT
 | 
			
		||||
	non-free? ( Activision ChexQuest3 DOOM-COLLECTORS-EDITION freedist WidePix )"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~amd64 ~arm64"
 | 
			
		||||
IUSE="debug gles2 gtk +non-free openmp +swr telemetry vulkan"
 | 
			
		||||
 | 
			
		||||
DEPEND="
 | 
			
		||||
	app-arch/bzip2
 | 
			
		||||
	media-libs/libjpeg-turbo:0=
 | 
			
		||||
	media-libs/libsdl2[gles2?,opengl,vulkan?]
 | 
			
		||||
	media-libs/libvpx:=
 | 
			
		||||
	media-libs/openal
 | 
			
		||||
	media-libs/zmusic
 | 
			
		||||
	sys-libs/zlib
 | 
			
		||||
	gtk? ( x11-libs/gtk+:3 )"
 | 
			
		||||
RDEPEND="${DEPEND}"
 | 
			
		||||
 | 
			
		||||
S="${WORKDIR}/${PN}-g${PV}"
 | 
			
		||||
 | 
			
		||||
PATCHES=(
 | 
			
		||||
	"${FILESDIR}"/${PN}-4.7.1-Introduce-the-BUILD_NONFREE-option.patch
 | 
			
		||||
	"${FILESDIR}"/0018-indicate-in-the-startup-window-title-when-GZDoom-is-.patch
 | 
			
		||||
	"${FILESDIR}"/0002-Fix-PMapValueReader-warning-on-Clang-GCC.patch
 | 
			
		||||
	"${FILESDIR}"/0020-new-characters-for-Doom-s-SmallFont-and-BigFont.patch
 | 
			
		||||
	"${FILESDIR}"/0032-Mark-const-methods-as-const-in-pseudo-generics.patch
 | 
			
		||||
	"${FILESDIR}"/0013-fixed-buffer-size-checks-for-raw-textures.patch
 | 
			
		||||
	"${FILESDIR}"/0005-fixed-GC-FullGC-not-collecting-everything-anymore.patch
 | 
			
		||||
	"${FILESDIR}"/0016-Fix-MapIterator-X-String-GetValue.patch
 | 
			
		||||
	"${FILESDIR}"/0037-Update-service.zs.patch
 | 
			
		||||
	"${FILESDIR}"/0004-fixed-some-bad-character-offsets-in-Doom-s-and-Raven.patch
 | 
			
		||||
	"${FILESDIR}"/0009-Error-out-instead-of-crashing-for-vector-out-variabl.patch
 | 
			
		||||
	"${FILESDIR}"/0012-Prevent-important-messages-from-being-accidentally-f.patch
 | 
			
		||||
	"${FILESDIR}"/0007-Fixed-IsActorPlayingSound-s-default-argument.patch
 | 
			
		||||
	"${FILESDIR}"/0030-Fixed-a-bug-where-calling-an-invalid-virtual-functio.patch
 | 
			
		||||
	"${FILESDIR}"/0001-Add-casts-to-F32-Map-MapIterator-functions-to-get-ri.patch
 | 
			
		||||
	"${FILESDIR}"/0042-Use-simpler-constructor-for-TArray-in-FBlockThingsIt.patch
 | 
			
		||||
	"${FILESDIR}"/0044-updated-RapidJson-library.patch
 | 
			
		||||
	"${FILESDIR}"/0023-convert-characters-to-Doom-patch-format.patch
 | 
			
		||||
	"${FILESDIR}"/0026-Add-Missing-Read-Barriers-to-Map-Get-Functions.patch
 | 
			
		||||
	"${FILESDIR}"/0049-Fix-BUILD_SHARED_LIBS-build-option-on-Windows.patch
 | 
			
		||||
	"${FILESDIR}"/0036-fixed-typo-in-string-label.patch
 | 
			
		||||
	"${FILESDIR}"/0043-Fix-possible-memory-corruption-in-TArray-Delete-inde.patch
 | 
			
		||||
	"${FILESDIR}"/0021-4-non-letter-characters-for-Chex.patch
 | 
			
		||||
	"${FILESDIR}"/0045-made-D_WriteUserInfoStrings-memory-safe.patch
 | 
			
		||||
	"${FILESDIR}"/0010-Fix-StripLeftRight.patch
 | 
			
		||||
	"${FILESDIR}"/0024-Mark-non-modifying-map-functions-as-const.patch
 | 
			
		||||
	"${FILESDIR}"/0038-Allow-GAMEINFO-LOAD-to-load-directories.patch
 | 
			
		||||
	"${FILESDIR}"/0011-Fixed-custom-height-and-width-not-saving.patch
 | 
			
		||||
	"${FILESDIR}"/0033-Fixing-GLES-mode-to-work-on-real-GLES-hardware-and-O.patch
 | 
			
		||||
	"${FILESDIR}"/0047-backported-RapidJSON-fix-from-Raze.patch
 | 
			
		||||
	"${FILESDIR}"/0028-refactor-add-some-logs-to-help-understand-what-is-ha.patch
 | 
			
		||||
	"${FILESDIR}"/0027-cleanup-of-the-Chex-Quest-small-font.patch
 | 
			
		||||
	"${FILESDIR}"/0015-Fixed-a-bug-where-static-events-would-fail-to-halt-p.patch
 | 
			
		||||
	"${FILESDIR}"/0046-avoid-arithmetics-with-literal-null-pointers-in-Pars.patch
 | 
			
		||||
	"${FILESDIR}"/0040-Fixed-incorrect-parameter-type-in-A_CheckForResurrec.patch
 | 
			
		||||
	"${FILESDIR}"/0025-Fix-iterator-invalidation-for-Map-Get.patch
 | 
			
		||||
	"${FILESDIR}"/0014-Impel-people-to-include-demo-mods-in-bug-reports.patch
 | 
			
		||||
	"${FILESDIR}"/0029-Added-check-for-invalid-class-on-in-VM-instantiation.patch
 | 
			
		||||
	"${FILESDIR}"/0017-Fix-two-different-portable-names.patch
 | 
			
		||||
	"${FILESDIR}"/0008-removed-clangformat-from-discord-rpc.patch
 | 
			
		||||
	"${FILESDIR}"/0050-Add-missing-include-guards.patch
 | 
			
		||||
	"${FILESDIR}"/0006-Fix-wrong-assumptions-about-actor-initialization-in-.patch
 | 
			
		||||
	"${FILESDIR}"/0034-Fix-Software-Slope-Rendering-for-non-1.2-pixel-ratio.patch
 | 
			
		||||
	"${FILESDIR}"/0035-Improve-Services.patch
 | 
			
		||||
	"${FILESDIR}"/0031-GLES-Fix-first-wipe.patch
 | 
			
		||||
	"${FILESDIR}"/0048-Fix-value-of-X-Y-when-Y-is-an-int-constant.patch
 | 
			
		||||
	"${FILESDIR}"/0003-Fix-Quicksave-Rotation.patch
 | 
			
		||||
	"${FILESDIR}"/0039-fixed-bad-character-offset.patch
 | 
			
		||||
	"${FILESDIR}"/0041-Fix-TArray-allocating-0-bytes-in-constructor.patch
 | 
			
		||||
	"${FILESDIR}"/0019-alt-HUD-use-NewSmallFont-for-drawing-player-s-coordi.patch
 | 
			
		||||
	"${FILESDIR}"/0051-Update-service.zs.patch
 | 
			
		||||
	"${FILESDIR}"/0022-Fixed-global-TerrainDef-array-not-being-exported-cor.patch
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
src_prepare() {
 | 
			
		||||
	rm -rf docs/licenses || die
 | 
			
		||||
	rm -rf libraries/{bzip2,jpeg,zlib} || die
 | 
			
		||||
	if ! use non-free ; then
 | 
			
		||||
		rm -rf wadsrc_bm wadsrc_extra wadsrc_widepix || die
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	cmake_src_prepare
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_configure() {
 | 
			
		||||
	# https://bugs.gentoo.org/858749
 | 
			
		||||
	filter-lto
 | 
			
		||||
	append-flags -fno-strict-aliasing
 | 
			
		||||
 | 
			
		||||
	local mycmakeargs=(
 | 
			
		||||
		-DBUILD_SHARED_LIBS=OFF
 | 
			
		||||
		-DINSTALL_DOCS_PATH="${EPREFIX}/usr/share/doc/${PF}"
 | 
			
		||||
		-DINSTALL_PK3_PATH="${EPREFIX}/usr/share/doom"
 | 
			
		||||
		-DINSTALL_SOUNDFONT_PATH="${EPREFIX}/usr/share/doom"
 | 
			
		||||
		-DDYN_OPENAL=OFF
 | 
			
		||||
		-DNO_GTK="$(usex !gtk)"
 | 
			
		||||
		-DNO_OPENAL=OFF
 | 
			
		||||
		-DHAVE_VULKAN="$(usex vulkan)"
 | 
			
		||||
		-DHAVE_GLES2="$(usex gles2)"
 | 
			
		||||
		-DNO_OPENMP="$(usex !openmp)"
 | 
			
		||||
		-DZDOOM_ENABLE_SWR="$(usex swr)"
 | 
			
		||||
		-DBUILD_NONFREE="$(usex non-free)"
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	use debug || append-cppflags -DNDEBUG
 | 
			
		||||
	use telemetry || append-cppflags -DNO_SEND_STATS
 | 
			
		||||
 | 
			
		||||
	cmake_src_configure
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_install() {
 | 
			
		||||
	newicon src/posix/zdoom.xpm "${PN}.xpm"
 | 
			
		||||
	make_desktop_entry "${PN}" "GZDoom" "${PN}" "Game;ActionGame"
 | 
			
		||||
	cmake_src_install
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postinst() {
 | 
			
		||||
	xdg_pkg_postinst
 | 
			
		||||
 | 
			
		||||
	if ! use non-free ; then
 | 
			
		||||
		ewarn
 | 
			
		||||
		ewarn "GZDoom installed without non-free components."
 | 
			
		||||
		ewarn "Note: The non-free game_support.pk3 file is needed to play"
 | 
			
		||||
		ewarn "      games natively supported by GZDoom."
 | 
			
		||||
		ewarn "A list of games natively supported by GZDoom is available"
 | 
			
		||||
		ewarn "on the ZDoom wiki: https://zdoom.org/wiki/IWAD"
 | 
			
		||||
		ewarn
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user