Commit graph

253 commits

Author SHA1 Message Date
Magnus Norddahl
0fd964ec4f Fix compile error 2019-12-15 17:32:12 +01:00
Christoph Oelckers
71d7013255 - better validation checks for CSV-based string files. 2019-12-15 16:42:24 +01:00
alexey.lysiuk
1a19dbb52f - added 'damageonland' property to terrain definition
This property helps to replicate vanilla Hexen behavior of damaging player right after touching lava floor

https://forum.zdoom.org/viewtopic.php?t=66512
2019-12-12 15:14:30 +01:00
Christoph Oelckers
bf8305062a - do not allow summon CCMD to spawn abstract classes 2019-12-12 02:13:19 +01:00
Christoph Oelckers
6725cfcca5 - cleaned the includes of the sound backend code of unwanted content.
Also simplified the sound init decision making. With FMod gone there is no reason to be pedantic here. Even the check of snd_backend for the Null device could be omitted here, its only realistic use is '-nosound'.
2019-12-08 22:17:19 +01:00
alexey.lysiuk
372733da8c - handle mirroring in MNTR sprite renaming
https://forum.zdoom.org/viewtopic.php?t=66583
2019-12-07 14:58:23 +02:00
Rachael Alexanderson
eaab122076 Merge remote-tracking branch 'origin/polybackend' 2019-12-06 09:30:55 -05:00
alexey.lysiuk
ffe8aaa091 - updated xBRZ scaler to 1.8
Removed all C++17 features: std::clamp(), attribute [[likely]], terse static asserts, ...

https://sourceforge.net/projects/xbrz/files/xBRZ/xBRZ_1.8.zip/download
2019-12-06 13:18:43 +02:00
Magnus Norddahl
4a25c9f69b Merge remote-tracking branch 'origin/master' into polybackend 2019-12-01 20:09:19 +01:00
alexey.lysiuk
a7f2df4fef - added ability to set custom alternative HUD
Use GAMEINFO key 'althudclass' to specify own class derived from AltHud

https://forum.zdoom.org/viewtopic.php?t=66422
2019-11-26 15:45:18 +02:00
alexey.lysiuk
20d3752fdd - exported several Wads.GetLump...() methods to ZScript
* GetLumpName() returns 8-characters lump name
* GetLumpFullName() returns full name with path and extension
* GetLumpNamespace() returns lump's namespace
* GetNumLumps() returns total number of lumps

https://forum.zdoom.org/viewtopic.php?t=66285
2019-11-25 17:37:56 +02:00
PaulyB
a74be69371 Added 'NoKeyboardCheats' option to IWADINFO
This is useful for IWADs that do not want to use the hardcoded engine cheats. This can still be overriden with the 'allcheats' CVAR
2019-11-13 17:34:42 +01:00
alexey.lysiuk
fd5e8d6e7b - fixed source lump assignment for multipatch textures
It was impossible to detect a WAD that contains a multipatch texture

https://forum.zdoom.org/viewtopic.php?t=66299
2019-11-05 14:47:13 +02:00
Christoph Oelckers
2ae3f6d326 - fixed bad variable name for lump filter 2019-11-04 00:08:06 +01:00
Christoph Oelckers
077d4e08bb - fixed: lump filters without any dot in the name did not work. 2019-11-03 15:53:41 +01:00
alexey.lysiuk
c45e8b32d0 - fallback to console font in case of missing small font
https://forum.zdoom.org/viewtopic.php?t=66102
2019-10-16 09:46:23 +02:00
Christoph Oelckers
e166563ac9 - removed redundant resource reading. 2019-10-15 18:46:53 +02:00
Christoph Oelckers
2e7af1338c - the big cleanup of the exit cleanup is done!
atterm is gone and only a few system-side functions use atexit.
All game side cleanup is performed in D_DoomMain now.
2019-10-07 20:28:55 +02:00
Christoph Oelckers
5a72e0bfb7 - added a new texture class using stb_image to read a more formats.
This implementation only reads GIF, BMP and PIC formats. No animated GIF support because stb_image does not handle that.
PNG, JPG and TGA are still being handled by the existing dedicated implementations.
PSD and HDR are impractical for reading texture data and thus are disabled.
PnM could be enabled, if its identification semantics were stronger. stb_image only checks the first two characters which simply would falsely identify several flats with the right colors in the first two bytes.

This is more or less a waste product of getting stb_image to work with something actually testable, so it is just provided as-is.
2019-10-06 08:37:23 +02:00
Christoph Oelckers
241a47602b - small fix 2019-10-01 15:24:17 +02:00
Christoph Oelckers
c8c8fecad3 - fixed a few warnings. 2019-09-16 17:30:39 +02:00
alexey.lysiuk
e48edf6199 - fixed compilation with MSVC
src\gamedata\resourcefiles\resourcefile.h(77): error C4716:  'FResourceLump::FillCache': must return a value
2019-09-13 17:35:31 +03:00
Christoph Oelckers
587fd75190 - extended lump injection to allow injecting data into a PWAD's directory, not just the IWAD. 2019-09-13 13:55:53 +02:00
Christoph Oelckers
31aa855a51 - generate a hash identifier for each loaded resource file.
This is not useful by itself but can be used for adding new features later, e.g. mod-wide compatibility settings or file specific lump replacement or injection.
2019-09-13 12:29:17 +02:00
Christoph Oelckers
21a621031b - rename sprite names with '^' in the hires namespace. 2019-09-09 10:52:34 +02:00
Christoph Oelckers
76ee658be4 Made several classes trivially copyable,
Many had leftover non-default constructors/ assignment operators, and some were initialized, even though the initialized data was never used.

In case of FCycler this even caused a default setting to be overwritten when used inside FDynamicLight.
2019-09-09 09:52:33 +02:00
Christoph Oelckers
cbd4479628 - reinstated the old scriptwait implementation as a compatibility option.
Daedalus's MAP19 needs this.
2019-09-07 09:34:50 +02:00
hdr88
554eb1c813 Add current, max and average velocity as stat (#912)
* Add current, max and average velocity as stat
2019-08-28 20:33:07 +02:00
Magnus Norddahl
a410324084 Merge remote-tracking branch 'origin/master' into polybackend 2019-08-25 11:54:45 +02:00
alexey.lysiuk
574e079f17 - use own implementation of iswalpha() function
Character classification is no longer affected by quirks of standard library implementation
Lookup table for own function was generated with Python thanks to Unicode Database module from its standard library
Explicitly set locale for POSIX targets was reverted to C

https://forum.zdoom.org/viewtopic.php?t=65641&start=18#p1115930
2019-08-24 20:52:24 +02:00
Christoph Oelckers
b1953585fe - remove doomtypes.h include from files.h. 2019-08-20 23:14:00 +02:00
Christoph Oelckers
0abc66dbff - uncoupled the decompressors from ZDoom's internal error handling.
This code made it hard to repurpose this code for other tools, so now the error handler must be passed as a callback to OpenDecompressor.
2019-08-20 23:14:00 +02:00
Christoph Oelckers
3cfda930ea - removed all Doom specific dependencies from cmdlib.cpp/h.
This meant moving CleanseString and ParseHex elsewhere and removing the I_Error call from ScanDirectory.
2019-08-20 23:12:23 +02:00
alexey.lysiuk
6e8ee9a684 - applied texture use type to special font with translation disabled 2019-08-18 11:44:00 +03:00
alexey.lysiuk
ce536485e1
- fixed typo in MAPINFO parser warning 2019-08-18 08:58:18 +03:00
alexey.lysiuk
c95a555f5e - added check for multiple parsing of the same MAPINFO
Warning message is issued when such case is detected
2019-08-17 11:53:29 +03:00
alexey.lysiuk
a5e10fd863 - remove '... is already the default skill' error 2019-08-17 11:49:16 +03:00
alexey.lysiuk
06e0c88622 - exposed xBRZ scaler options as CVARs
Added 5 xbrz_... CVARs to control various settings of upscaling process

Added xbrz_colorformat CVAR for buffered (zero) and unbuffered (any other value) color format
The first one requires a restart because settings are applied once to a precalculated buffer
The second one has reduced performance with ability to apply settings on-the-fly
2019-08-14 23:00:53 +03:00
alexey.lysiuk
afab181505 - updated xBRZ scaler to version 1.7
https://sourceforge.net/projects/xbrz/
https://sourceforge.net/projects/xbrz/files/xBRZ/xBRZ_1.7.zip

https://forum.zdoom.org/viewtopic.php?t=65596
2019-08-14 22:51:44 +03:00
alexey.lysiuk
0cae5fc6e4 - removed type punning from xBRZ scaler integration
it was a hack that wouldn't work with xBRZ 1.7
2019-08-14 22:50:38 +03:00
Christoph Oelckers
6cce1f1e52 - fixed uninitialized alpha channel in palette for savegame images. 2019-08-11 21:26:08 +02:00
Christoph Oelckers
cf74118d53 - fixed the extremely long standing bug that Lost Souls didn't reacquire their target when slamming into something.
This was one of that annoying old design mistakes where Doom and Heretic features were poorly merged together. The Heretic Gargoyle uses very similar coding but performs a subtly different action when actually hitting another actor. This different action was made the default, even for the Lost Soul.
It has now been changed that both monsters use their original action, being distinguished by an actor flag. For compatibility with custom definitions Heretic's behavior, which has been the default in ZDoom will be the preferred one. The one of the Lost Soul can be reactivated by a flag.
2019-08-11 09:00:29 +02:00
Christoph Oelckers
5953f492c1 - fixed: The OriginalSmallFont must always be created, even when the actual SmallFont is not the IWAD default. 2019-08-10 20:09:04 +02:00
Christoph Oelckers
53c2d7e8d2 - fixed: in order to ensure that all font characters are of texture type FontChar it is necessary to clone the texture instead of changing its use type.
The use type is being used for texture lookup, so changing this alters the texture lookup rules and may cause return of incorrect textures.
This also ensures that context depending upscaling rules get used, because FontChars are separate from regular textures.
2019-08-09 11:40:21 +02:00
Christoph Oelckers
3c449f3908 - delete the teaser logs from SVE.WAD.
The way Strife has been set uo, it is not possible to have the full game and the teaser coexist without hackery.
2019-08-07 19:22:06 +02:00
Christoph Oelckers
43041c21d8 - made author names work with title patches.
Most importantly, specifying a patch may optionally disallow showing the autor's name - this is for cases where a styled patch gets used for English but text-based translations of the map name should still be possible.
2019-08-07 12:09:47 +02:00
Christoph Oelckers
be0478972a Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-08-05 19:15:16 +02:00
Magnus Norddahl
7940d5fe01 Merge remote-tracking branch 'origin/master' into polybackend 2019-08-04 02:22:55 +02:00
alexey.lysiuk
c05ef39718 - do not set use type on font texture if it is used as a sprite
Setting texture use type in this case would break actors that use the corresponding sprite

https://forum.zdoom.org/viewtopic.php?t=65509
2019-08-03 15:42:06 +03:00
Christoph Oelckers
3e99216967 - added option to print a map author's name on the summary screen
For now only with font-printed map names. Allowing this with titlepatches will require more work and an option to disable.
2019-08-02 09:11:40 +02:00
Christoph Oelckers
154af34cd9 - added an option to always display the log and the subtitles with the generic font.
If this is on it will disable the status bar's pop screen for the log and always use the HUD overlay instead.
2019-07-31 17:02:39 +02:00
Christoph Oelckers
c36dc137ba - made adjustments to the text placement on the summary screen.
With extended fonts much of the old code did not work anymore, this needed more precise checks for the sources of the printed texts.
2019-07-30 10:53:02 +02:00
Christoph Oelckers
4cfc650f5b - fixed line breaking on non-spaces for multi-byte UTF-8 characters.
This needs to backtrack the entire code point, not just one byte.
2019-07-24 21:40:17 +02:00
Magnus Norddahl
e6f6f10e81 Merge remote-tracking branch 'origin/master' into polybackend 2019-07-24 21:39:07 +02:00
Christoph Oelckers
c262591f0e - added alternative character mapping for Greek letters.
Although not really needed yet, this allows striking 19 characters off the support list, except for the Raven fonts without any real work.
2019-07-18 21:40:04 +02:00
Christoph Oelckers
77b1ebe0d7 - moved several IWAD dependent files into the game_support resource
* sprite offset definitions, which are IWAD dependent
* Freedoom's decal overrides
* conversation ID definitions for the Strife teasers
* the fallback BigFont now can also be loaded by IWADs which declare themselves as GAME_Heretic or GAME_Hexen.
2019-07-17 00:54:59 +02:00
alexey.lysiuk
36ed7e5182 - fixed UMAPINFO episode parsing
* bounds checking for accessing episode tokens
* support empty tokens in episode definition
* handle upper cased episode shortcut

https://forum.zdoom.org/viewtopic.php?t=65364
2019-07-16 12:39:36 +03:00
Christoph Oelckers
7916cebdc1 - merged the Hacx extra stuff into zd_extra.pk3 and added the ability to inject data into the resource directory after the IWAD so that the base resources can provide content that can override IWAD data if broken or not usable.
Hacx in particular needs this to fix a handful of buggy actors and to override the IWAD's MAPINFO which is not localizable.
2019-07-15 21:23:46 +02:00
Christoph Oelckers
8177583e2f - treat configurations which load a secondary WAD on top of a primary IWAD like SVE to consider the secondary WAD an actual IWAD as well.
This fixes localization of the SVE menu.
2019-07-15 20:48:00 +02:00
Christoph Oelckers
7346288bf5 - moved some more files. 2019-07-14 21:09:49 +02:00
Christoph Oelckers
ed6ab39b2d - moved third party library projects to a subfolder to reduce size of the root. 2019-07-14 15:06:54 +02:00
Christoph Oelckers
ec52e90e54 - moved more files out of the root src directory. 2019-07-14 14:39:21 +02:00
Christoph Oelckers
cd7438c02e - made some adjustments to the text spacing on the level summary screen.
With the extended fonts some parts here caused too large gaps.
2019-07-14 12:44:42 +02:00
Christoph Oelckers
2fd170b06e - allow setting the font used for the status screen's content text.
This was needed to give Hacx's screen the proper colors.
2019-07-14 09:08:19 +02:00
Christoph Oelckers
89db16393e - offset notification messages so that the accents do not get cut off.
This essentially means that the tallest character in a font determines positioning.
2019-07-12 20:09:15 +02:00
Magnus Norddahl
706bc0b7c6 Merge remote-tracking branch 'origin/master' into polybackend 2019-06-23 20:29:04 +02:00
Christoph Oelckers
860edd490a - defaulted a few empty constructors. 2019-06-21 07:52:25 +02:00
Christoph Oelckers
4722720f4b - fixed incorrect implementation of "episode = clear" in UMAPINFO. 2019-06-19 20:35:41 +02:00
alexey.lysiuk
ade60584cc - fixed incomplete parsing of UMAPINFO when map already exists
https://forum.zdoom.org/viewtopic.php?t=65100
2019-06-19 15:54:24 +03:00
alexey.lysiuk
ceacda6029 - fixed missing skill menu for episodes defined by UMAPINFO
https://forum.zdoom.org/viewtopic.php?t=65096
2019-06-19 14:48:11 +03:00
alexey.lysiuk
1f61b9d24f - fixed: all UMAPINFO definitions were applied to default map slot
https://forum.zdoom.org/viewtopic.php?t=65102
2019-06-19 13:10:47 +03:00
Christoph Oelckers
20b6395cf0 - give UMAPINFO the ability to disable cluster-based exit texts. 2019-06-18 20:40:41 +02:00
Magnus Norddahl
bb47230f79 Merge remote-tracking branch 'origin/master' into polybackend 2019-06-10 22:46:32 +02:00
Christoph Oelckers
2766303cfc - consolidated the 3 atterm implementations.
Each platform had its own copy. Why?
2019-06-10 12:01:01 +02:00
alexey.lysiuk
b8a188705e - fixed hires texture lookup in Doomsday style .pk3
IWAD wasn't detected properly, and wrong texture can be picked as a hires replacement (e.g., SLADRIP1 from Ultimate Doom instead of TNT)

https://forum.zdoom.org/viewtopic.php?t=64915
2019-06-06 12:51:16 +03:00
Magnus Norddahl
bc5b953633 Merge remote-tracking branch 'origin/master' into polybackend 2019-05-27 21:49:12 +02:00
alexey.lysiuk
688f130af6 - fixed character position assignment for multi-lump fonts
https://forum.zdoom.org/viewtopic.php?t=64741#p1104427
2019-05-25 13:16:39 +03:00
David Carlier
57a0a4c066 Fixing crash when loaded module, using proper function liberate them. 2019-05-25 11:37:57 +02:00
alexey.lysiuk
733dea55da - fixed loading of 32-bit TGA textures with alpha channel
https://forum.zdoom.org/viewtopic.php?t=64741#p1104564
2019-05-25 10:47:54 +03:00
Magnus Norddahl
0eda298db2 - create a renderer backend based on softpoly's drawers 2019-05-22 06:29:52 +02:00
Christoph Oelckers
8a90946094 - allow certain replacements to be valid for CanPrint
The Romanian letters with comma below, the second Greek Sigma variant and a few special Cyrillic letters have replacements that should not result in rejection.
2019-05-21 02:00:45 +02:00
Nemrtvi
d9e589ae49 Greek Sigma character fallback
The lowercase Sigma letter in Greek has two different forms (σ and ς), which changes depending on its placement in a word, but in uppercase and smallcaps contexts, it only has one look regardless of word positioning. If the character ς is missing, it should fall back to σ.
2019-05-09 08:09:10 +02:00
pkubaj
3d63f63fb2 Fix build on FreeBSD (#829)
On FreeBSD malloc.h is deprecated.
<cwctype> is needed for iswalpha.
2019-05-05 08:28:46 +03:00
alexey.lysiuk
32aa69f4d8 - fixed 'I' to 'i' upper-to-lower mapping
https://forum.zdoom.org/viewtopic.php?t=64526
2019-05-01 16:09:42 +03:00
Christoph Oelckers
5122aa0571 - fixed the internal name of the original SmallFont to be different from the real SmallFont. This necessitated creating a separate font object, even if it has the same contents.
- added an OriginalBigFont as well.
2019-04-23 09:34:28 +02:00
Christoph Oelckers
ec13d0e4c1 Merge remote-tracking branch 'remotes/origin/vulkan2' 2019-04-22 10:45:32 +02:00
Christoph Oelckers
6f3982865f - refinement of font substitution logic. 2019-04-22 10:23:28 +02:00
Christoph Oelckers
e0a0be4f7b - added a CanPrint function to FFont and used that to handle the statistics display on the automap HUD to only replace the font when actually needed, not based on the language. 2019-04-22 09:08:43 +02:00
Christoph Oelckers
68c33a6e43 - fixed string prioritization when a mod replaces the default language for a given string.
In this case it must override all localized content from previously loaded WADs because that is no longer matching the original text.
2019-04-22 00:21:01 +02:00
Christoph Oelckers
5b6bae409e - automated the SmallFont selection based on a filter string in the language table. 2019-04-21 12:38:43 +02:00
Christoph Oelckers
13841655aa - add color remapping for NewSmallFont as well. 2019-04-21 10:49:27 +02:00
Christoph Oelckers
2e1254d3ba - synthesize a font remapping so that the IWAD SmallFont can be printed in the same color as a mod's.
This is for cases where the font needs to serve as stand-in for an incomplete mod font so that it better blends in.
2019-04-21 09:51:53 +02:00
Christoph Oelckers
c1b0122558 - always construct the original IWAD SmallFont.
This is for printing localized messages without having to fall back on the VGA font.
2019-04-21 08:42:27 +02:00
Christoph Oelckers
fcbde757c9 - do not mix game-specified fonts with the extensions for the stock version.
This generally doesn't look good when different colors are mixed or the mismatch in color ranges causes bad translations to be generated.
2019-04-21 08:09:31 +02:00
Rachael Alexanderson
73efe707ac Merge remote-tracking branch 'origin/master' into vulkan2 2019-04-15 01:34:22 -04:00
Christoph Oelckers
a8c47408fa - implemented 'deletelumps' feature and add Chex Quest 3 texts.
The episode titles required a workaround because the CQ3 episodes do not contain names in text form: If this is the case, the patch name will be used as a string table identifier to get a matching text for localization.
2019-04-14 22:46:03 +02:00
Rachael Alexanderson
b8dfb3c136 Merge remote-tracking branch 'origin/master' into vulkan2 2019-04-14 06:12:32 -04:00
Christoph Oelckers
4668fa95e3 - when altering the default string table, make sure that all existing text for the given label is removed that comes from an older resource file.
If this isn't done there can be a mix of content from different sources, depending on the language. It's better to have correct English text than unfitting localized versions.
2019-04-13 14:43:49 +02:00
Christoph Oelckers
5f2d41884c - make sure that the global and default language tables are always separate, if some other tables is being attempted to be filled in along with them, these tables should be ignored. 2019-04-13 13:58:37 +02:00
Rachael Alexanderson
3deda0efd2 Merge remote-tracking branch 'origin/master' into vulkan2 2019-04-11 17:45:35 -04:00