GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities
GPL-3.0 License
Bot releases are hidden (Show)
Full Changelog: https://github.com/ZDoom/gzdoom/compare/g4.12.1...g4.12.2
Published by madame-rachelle 6 months ago
Published by madame-rachelle 6 months ago
set default backend to Vulkan, if Vulkan fails go GLES not OpenGL
add GetChars() accessors to many FString uses where const char* is wanted
make zs Actor.GetReplacement and Actor.GetReplacee clearscope
Improve handling of field names in error messages during Map/MapIterator compilation
Don't try to generate code for abstract functions during JIT dump
Several Backend Updates from Raze
Several Language File Updates
Converted lots of FString getters to .GetChars()
rewrite of HWWalls to allow grabbing the output from the render item generator
do not print all GL extensions to the log for the GLES renderer.
always save the map WAD in a savegame's metadata, even if it is from the IWAD
Add Wall Texture Skewing
hooked up the per-level colormaps with the hardware renderer.
added all required names for the new DSDA UDMF properties to the list of names.
fix int assign optimization constants generating broken code because they weren't expected
use FTranslationID in all places where strict type checking is needed.
Add sv_coopsharekeys - in coop, picking up a key will distribute it to all online players
fix GL ES switch appearing as 'Unknown' in the menu sometimes
Add in VisualThinkers
invert mouse again for movement, so that it cancels out the first inversion
allow comparisons between ints and translation IDs in pre 4.12 ZScript.
add flag +BILLBOARDFACECAMERA - renders actor billboard to always face the camera
Fix vanilla weapon functions passing ammo count to DepleteAmmo
convert many source files to UTF-8
add new ccmd cvarsearch allows searching cvar by name, languageid, or description
internal filesystem handling cleanup
Fixed comment in level_compatibility.zs regarding pc_cp2.wad MAP38 fix
new launcher with new widget system
add two parameters to GetSpriteTexture: spritenum and framenum, since some states are "####" "#"
iwadinfo.txt: resort Order for a better overview in selection box
add new netid system for future use
Implement animated particles that aren't tied to the global animation timer
Better Joystick handling in Linux (particularly for the Steam Deck)
reworked Morph system
Fixed: A_LookEx did not account for the +LOOKALLAROUND flag.
quake radii and explosion distances are no longer int now doubles
libwebp now included in source
allow A_SetCrosshair(-1) to hide the crosshair for effects such as custom scopes
add cvar cl_restartondeath - bypasses autoloading savegame when pressing +use after dying
Published by madame-rachelle 12 months ago
Published by madame-rachelle 12 months ago
Published by madame-rachelle about 1 year ago
Published by coelckers about 1 year ago
Highlights
Bugfixes
A_ChangeModel
Details
name
parameter.A_ChangeModel
vid_gpuswitch
and all its handling; it is only as of now useful in old versions of Windows 7/8/10 which are no longer supportedMaxEffectTics
field to Powerup
NewSmallFont
for drawing player's coordinates if ui_generic
is enabledPublished by coelckers almost 2 years ago
SPF_SCALEDNOLERP
.P_NoInterpolation()
are met.Published by coelckers almost 2 years ago
Inportant note to Windows users:
GZDoom 4.9.0 changes where gzdoom.ini is stored. Unlike older versions this one will always prefer the system's user folder and place the INI in Documents/My Games/GZDoom if no INI is found. This was done to bring handling in line with current guidelines and to make it easier for commecial games that often get installed into a folder without write access. If you still want to store the INI in your game folder you have to create an empty file called GZDoom_portable.ini there before launching. If you still have an old INI in your folder, GZDoom will ask what to do with it, you can either move it to the user folder or convert to a portable install.
Change of savegame storage
This version introduces per-IWAD savegame folders. If you have old savegames you still intend to use, please wait with the update until you can safely delete them.
Highlights
Details
openscreenshots
opensaves
and openconfig
console commands on Windows and Linux and Maci_pauseinbackground
to the menu. note: please pull the language file for thisi_pauseinbackground
to match !(i_soundinbackground)
for all configs before this commit.Published by coelckers over 2 years ago
Published by coelckers over 2 years ago
Mainly a bugfix release, but contains a major update of the Vulkan backend
- let the "abort" button on the network pane of the startup screen do a hard exit on Windows.
- Bugfix for software mode mirrors not working
- make sure ticdup is initialized.
- Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former makes the actor only visible in reflections, while the latter makes the actor not cast reflections in mirrors.
- Vulkan backend update
- validate fountaincolor before using it.
- ZScript: don't allow multiple assignment syntax with only one element.
- fixed type of third argument of MBF21's MonsterMeleeAttack function.
- added an override for NOTAUTOAIMED flag when using P_AimLineAttack for informative CCMDs.
- allow taking screenshots in cutscenes.
- fixed JIT target function for GetTimeFrac.
- fixed: For cutscenes the alternative clean scaling factors need to be activated.
- fixed setup of ready state with Dehacked. This needs to emulate the hard coded chainsaw sound when weapon states get reassigned.
- Fix the discolored sky bug on Vulkan
- check point pushers/pullers by inheritance, not absiolute match
- Implement FVector ZScript for Actor Scale
- added FailSound property to PuzzleItem
- add `i_pauseinbackground` to the menu. note: please pull the language file for this
- set `i_pauseinbackground` to match `!(i_soundinbackground)` for all configs before this commit.
- fixed division by zero with unvalidated ticdup values.
- reinstated con_scale.
- make sure the last notch on the start screen is rendered.
- fix relative include path when loading folders
- avoid storing texture pointers in longer lived data
Published by coelckers over 2 years ago
Highlights
- added Raze-style HUD scaling. Not exposed in the menu yet, Set hud_oldscale to 0 and use shift with the screen resize keys to scale the status bar.
- handle the start/endoom screens with the ingame renderer. They are now present on all platforms and use the full screen size of the game.
- Many MBF21 fixes.
- added the cutscene system from Raze
Details
- the chat should use the console's scaling, not the one for the messages printed with the small font.
- fixed auto-scaling for console.
- removed all vid_fps offsetting. To compensate there is now also a "stat fps" which displays the FPS rate in the lower left corner. This had to go because unconditionally altering positions was causing problems with custom HUDs.
- added Raze-style HUD scaling. Not exposed in the menu yet, Set hud_oldscale to 0 and use shift with the screen resize keys to scale the status bar.
- added a few more names to the reserved names for main folder detection.
- consider "fonts" and "models" reserved folder names.
- fixed undefined behavior with Dehacked's value parser.
- Rebuild nodes for 1024.wad MAP02 to fix invisible obstacle near the exit area
- fixed fast crushers going out of sync if something is being crushed by them.
- fixed: Vulkan descriptor sets must check the real translation, not just the translation ID.
- handle the start/endoom screens with the ingame renderer.
- Create a MainWindow class that manages the main win32 window of the application
- Added Actor::LightLevel. Setting it to any value > -1 will override the sector's light level.
- Implement virtual Actor.FallAndSink for scriptable falling and water physics
- Added Actor.WaterDepth to retrieve how submerged and actor is, in map units
- added cutscene data parser. This covers: game start, episode start, cluster start/end, level start/end.
- MASTERNOSEE flag (#1601) Makes it so that if an actor's master is invisible due to camera/mirror/portal shenanigans, then the actor will also be invisible. Name based off of an Unreal Engine flag that does the exact same thing.
- Made CanCrossLine opt-in by requiring the CROSSLINECHECK flag.
- Added CanCrossLine virtual for actors.Called last after all other line checks occur. Returning false means the actor cannot cross that line.
- Add WorldOffset field. Adjusts the thing's 3D position on render side. This allows for adjusting a thing's visual position without impacting their hitbox.
- fix bad MP start spot in 1024.wad, MAP05
- Enables shortcuts for option menus. Press a key to immediately jump to the next option menu entry which starts with this key. Hold Alt to jump backwards.
- DontLightOthers
: Acts as the inverse of DontLightSelf
, where it won't light actors that aren't the owner.
- DontLightMap
: The light doesn't affect the map.
- Relative Includes for ZScript
- remove m_filter
and simplify related code
- exclude keys from ‚artifact‘ cheats
- fixed MF_SHADOW handling for MBF21. This needs to alter the render style as well.
- fixed handling of automap sprites with negative scale.
- fix dynamic light setup. The level’s global flag is unreliable and cannot be used. The operation this was initially supposed to skip cannot be skipped anyway so the impact should be minor.
- Allow SendNetworkEvent during title level.
- add sv_ammofactor
to change the skill adjustment for ammo
- extended the read buffer for the 'secret' CCMD.
- This is merely preparation - the actual loading is still in one uninterrupted piece.
- Fix that vk_debug doesn't output anything for newer versions of the vulkan sdk
- added JPEG YCCK decoding.
- Added MF8_SEEFRIENDLYMONSTERS. Non-friendly monsters with this flag on will be able to attack friendly monsters on sight.
- fixed mouse coordinate checks for Strife conversations. ypositions needs one entry per response, not one per line.
- fixed radius of BossBrain actor
- Added QF_3D flag for quakes. When used, the quake thinker will perform a 3D distance check instead of 2D.
- removed compat_soundcutoff from the menu. Handling for this was removed 14 years ago when ZDoom transitioned to FModEx 4.x
- add -compatmode for setting a compatibility mode on startup as a replacement for +compatmode not working as intended.
- activate Hungarian in the menu
- Fix off-by-one in Vulkan multisample sample count selection
- completed Hungarian translation.
- Fix co-op softlock in Heretic E4M8 due to multiplayer teleporter.
- added handlers to load Strife’s startup screen images as textures
- added image source handlers for Hexen’s special startup image types
- use the hex font for the Heretic/Endoom text screens.
- fixed setup of files to load on startup.
- fixed return type of MSTimeF script function.
- moved -rngseed init to D_InitGame
- pass ´hashfile´ to filesystem as parameter
- fix TArray::Append with rvalue parameter. This must clear the source array to obey move rules.
- fixed Playdemo and Timedemo check. The assumption that D_DoomLoop never returns does not apply anymore. Let it fall through to the end instead where this is properly handled.
- only check „allowduplicates“ for the final file system init
- added missing BLOCKF_ flags for ZScript.
- added ‚repeat‘ option to SetLineActivation ACS function
- made friendlyseeblocks writable.
- removed all remains of the corpsegibs flag and made vileghosts interactive. Ghosts are still off by default, but they will now be enabled when selecting the vanilla (strict) compatibility mode.
- restrict RealGibs for players only. All non-players will now always act as if the ‚corpsegibs‘ flag was set, regardless of the current setting.
- added Get/SetAmmoCapacity ZScript functions
- expose the ‚attenuatelights‘ map flag.
- added an option to delete a terrain type from a texture.
- add wipe transition support to the screenjob runner.
- migrated intermissions and summary screens to screenjobs.
- timer code fixes.
- added all the cutscene system from Raze
- added compat_nombf21 for cchest2.wad, map 19.
- Fix usage of -1 as OBJ model FrameIndex
- added zip64 handling
- added workaround to Dehacked so that „Doom“ only replaces the music name
- fixed some incorrect array allocation sizes in polyobj code
- added missing range check for scrolling down an option menu with the mouse wheel.
- do not clamp warped textures.
- disabled deletion of previous event handlers when using 'eventhandler' keyword in MAPINFO.
- fixed: decal things failed to spawn their decals on 3D floors.
- validate the index argument for GetSavegame and abort if out of range.
- don't let "give weapons" hand out abstract weapons.
- lock cvar shader uniforms behind a command line parameter for now
- fixed setup of PolyBSPs when the software renderer is active.
- Remain 3, MAP11 also needs compat_nombf21.
- fixed Dehacked drop items.
- added nombf21 compat setting for Heroes Tales MAP31
- fixed: The alt HUD's draw call did not use the virtual interface.
- fixed: group teleporters must always preserve orientation.
- don't move bad polyobjects in the savegame loader.
- cast arguments for fastcos/sinbam
- copy size info from defaults when starting a list menu block.
- handle cases of empty state labels in ZScript.
- GLES: Fix blend flags
- fixed bad color range check in ACS HudMessage code.
- fixed Dehacked check for A_ConsumeAmmo. This must use the internal function name.
- fixed y-offsets of bal7scr* decal images.
- let A_SpawnParticle respect the float bob offset
- separate message for disabling noclip2
- added a nullptr check for StatusBar when drawing „Paused“
- make menu scale adjustments for ultra-wide aspect ratios.
- treat PSP layer ID 0 as invalid. No PSprites with this ID may ever be created, as there is no means to find them again.
- fixed: The skill menu did not remember its last selection.
- allow artifacts that do not automatically activate to be given by the 'give artifacts' cheat
- added vertical bullet spread relative to ssg
- Fixed GUS Emulation with DMXGUS(C) lump conf.
- changed default value for midi_config to empty string since gus is not working with sf2 file
- fixed SetupDMXGUS not loading lump correctly, wrong use of CheckNumForFullName
- midi_config default to empty string, since lzdoom.sf2 doesn't seem supported (distorted sound)
- added absolute paths to FZipPatReader so we can add custom patches to resource files by using gus_patchdir and/or ULTRADIR variable (some custom maps has custom patches that can be added this way without putting them inside the resource file or in the same folder of the configuration file)
- set timidity_reverb_level min value to 0 in menudef.txt, set to 9 by mistake?
- Added the MF8_DONTFOLLOWPLAYERS flag, which allows friendly monsters to not follow their FriendPlayer when they have no target or goal left to head to.
- fixed Font struct export and removed the duplicate handler.
- fix detection for misplaced | when creating the small fallback font
- typo 'Yea' instead of 'Yes'
- implement proper GC handling for AActor::ViewPos.
- Add CHF_DONTIDLE for A_Chase
- fixed exittext definition for Harmony. This wasn't using the string table.
- add gl_satformula == 2 - an optional 'more accurate' desaturation
- fixed order of slope creation so that slope copies are the last thing being done.
- Discord RPC presence. Adds new IWADINFO and GAMEINFO keys: DiscordAppId - this should point to your AppId for your game. It will use a default GZDoom one if not found.
- remove default lost soul translucency
- Added 'ScaleWeaponFOV' flag to MODELDEF. Affects weapon models only; will scale the model along with the user's FOV to reduce distortion.
- Additionally, a 'cl_scaleweaponfov' CVar has been added to allow users to further fine-tune the weapon model scale with higher FOVs
- Terrain small splashes and splash bases now set their target to the thing that spawned them, allowing for extra customization.
- Added GetTerrainDef and Sector variant of GetFloorTerrain.
- Fix 3d floor-related crash in software renderer
- add duplication checking to file list, prevent loading the same file twice unless explicitly asked by the user
- initialize FSwitchDef::QuestPanel when reading a Boom SWITCHES lump.
- added a 'no MBF21' compatibility flag. Turns out that there's a few old maps that have the extended line flags set but not the guard bit that forces their clearance. Astrostein 1's first map is an example for this.
- Initialize some variables in FModelVertex::Set
- Fix wrong normal vector in the FModelVertexBuffer constructor
- virtualize player landing on thing sound
- fixed local vector array initialization.
- Fix func_paletted.fp to use alpha channel for index. This was needed due to GLES renderer change from Raze
- allow floats for uniform cvar defaults
- implement direct cvar linking to custom shader uniforms
- Add per-tier sidedef light levels to UDMF maps
- Add TexMan.SetCameraTextureAspectRatio. Allows ZScript to change the aspect ratio of a camera texture.
- Optimized P_TestMobjZ by not running the iterator if actor
also has THRUACTORS.
- make m_quickexit
a global CVAR
- Added A_SetViewPos(Vector3 Offset, int Flags = -1)
- apply WeaponScaleX/Y to all PSprites on a weapon
- fix logic error with shader compatibility layer
- add debug ccmds to manipulate custom postprocess shaders and their uniforms from the console
- fix mbf21 A_FindTracer fov cone being twice as big as intended
- add SMF_PRECISE flag to mbf21 A_SeekTracer, for accuracy
- fix mbf21 A_SeekTracer not working (arg type shenanigans)
- fix mbf21 A_ConsumeAmmo ignoring explicit amount arg if weapon's ammopershot field set
- fix mbf21 A_ConsumeAmmo taking 0 ammo instead of 1 if ammopershot field not set (need to amend the spec for this, argh)
- fix MBF21 A_WeaponMeleeAttack function name typo & args
- fix MBF21 A_WeaponProjectile spawn position
- fix MBF21 GetSoundArg off-by-one: sound indices are 1-indexed in args because Killough
- fixed logic error with depth bias state in hardware renderer.
- redid postprocessing shader interface to be free of the player dependency.
- separate i_pauseinbackground
and i_soundinbackground
- they probably should ultimately be moved out of the sound code
- Fix GC so collection rate is proportional to alloc rate
- fixed: the powerup item for respawn invulnerability was never given to the player.
- fixed MBF21's A_SeekTracer. This cannot directly call A_SeekerMissile because that has more parameters. It now maps to a wrapper that takes care of these.
- fixed Dehacked parsing issues with weapon properties.
- added proper range check to the main sound playing function.
- fixed potential infinite loop in Hexen-style stair builder.
- create new menu page for simple mouse options menu - remove advanced settings like the individual speed fine-tuning
- Fixed crash with Scroll_Texture_Offsets with non-zero tag
- Fixed: ActorMover was not changing its tracer's flags.
- Added NoTrim support for ANIMDEFS, same syntax as TEXTURES outside a definition.
- Added NoTrim for TEXTURES.
- Exported the "paused" global variable to ZScript
- ACS: fixed an old regression in which printing a map char array did not dereference the given array variable
- Fixed some issues with the scaling feature of DStatusBarCore::DrawString
- GLES: Load default shader if we try to load user shader to avoid crash
- D_ProcessEvents()
: Delay EV_KeyUp
events until any EV_KeyDown
events for the corresponding key have been processed. This makes the mouse under SDL a lot better.
- add SDL hint to not minimize the window on focus loss
- apply clearscope to ApplyDamageFactor
as well
- apply weaponscale relative to baseline
- add WeaponScaleX/WeaponScaleY properties for applying global scaling to a weapon's PSprites
- Fix upload and sampling bug for array textures in the vulkan backend
- apply clearscope for ApplyDamageFactor - https://forum.zdoom.org/viewtopic.php?f=15&t=73830
- add LoadBrightmaps
, LoadLights
, and LoadWidescreen
directives for IWADINFO
- these function exactly the same as their GAMEINFO
equivalents.
- Fix abort with dir command and empty string on Windows.
- Fix vulkan validation errors for wrong image transitions and buffers used after destroyed
- Add a render style parameter to Screen.Dim
- Fix vulkan buffers not using the stream usage for the 2d drawer. Add BufferUsageType enum to clarify what kind of usage is expected by the buffer allocated by SetData
- fixed: menu delegate class error message referenced the wrong gameinfo property
- Added 'NoPerPixelLighting' flag to models to force it to not use per-pixel lighting. Main use case is for voxels that have been converted to models.
- add cvar r_skipmats
- speeds up rendering on slower cards for mods that use a lot of specularity/pbr, effective on both the opengl and vulkan backends
Published by coelckers almost 3 years ago
Mainly a bugfix release addressing the following issues:
New Features:
Published by coelckers about 3 years ago
The major new addition is a new GLES2 backend, meant to improve performance on low end hardware. This was written by emile_b for the Android port but backported to the mainline for old hardware support.
Please note that this backend removes some non-essential features to increase performance, like the entire postprocessing or advanced lighting features like specular or PBR.
Our tests show no performance gains on modern hardware capable of Vulkan, so is not recommended to run it on such systems - it is solely meant for old hardware that have performance issues with the modern GL backend.
On older hardware capable of supporting OpenGL 3.3 our measurements show that performance is generally on par with LZDoom.
Furthermore, to make the new backend available to 32 bit users as well, GZDoom 4.7 will exceptionally provide a 32 bit build as well, but please be aware that it depends on the survey's result whether this will see continued maintenance, as user share was already extremely low two years ago.
The survey has been re-enabled for this version so that we can get some information about how the state of systems being used for GZDoom has developed over the last two year. This is mainly due to the addition of the new GLES backend for old hardware, so we can get an overview of how much of this hardware still exists and how future support needs to be handled. We would like to ask as many users as possible to participate, so that we can make the right decisions based on the information we obtain. Like previous surveys this does not collect any private information - all it sends is basic info about the operating system, the number of CPU cores, the name of the graphics card and supported OpenGL/Vulkan versions.
Highlights:
Details
Published by madame-rachelle about 3 years ago
Fixed bug with BishopPuff moving in wrong direction
a couple important widepix fixes
fix for "Return to Phobos (return01.wad) has an ancient bug in map E1M2 where the switch to raise the exit bridge doesn't work in versions of Doom past patch 1.2."
add missing break statement in level_compatibility.zs
fix DaggerAlert using FindState incorrectly.
Fixed wrong parameter type passed into TryMove here
fixed: Actors did not set the position when spawning a dynamic light.
Add 'AddDialogues' in MAPINFO to additively add Strife NPC dialogs without overwriting each other.
let dynamic lights call UpdateLocation instead of just setting their position right after being spawned. This ensures that the position is correct and that everything gets set up properly.
fixed parsing of MAPxx par times in BEX lumps
Make sprite shadows ignore float bob
fixed explosive damage radius for clericflame.
fixed permission validation in OptionMenuItemCommand.DoCommand. This was missing the InMenu check like the other critical menu functions.
added detection of macOS 12 Monterey
prevent redundant string copying in Strife conversation parser
Fixed impassable exit line in 007ltsd.wad E4M7
fixed initialization of model frames
fix missing border flat on heretic shareware
fixed parsing of 2D vectors in OBJ model loader
added TVector2<>
constructor from float*
fixed bad type in FxFontCast.
fixed potential crash when sound sequence is destroyed. Level can be unset if sound sequence destruction happens after saved game loading failure
report correct macOS version with older SDKs
Add Windows 11 detection
added an OnDestroy method to Shape2D so that its users can explicitly free the data it holds. In this case it is very important to care about management, because this class will hold GPU-side buffers!
prevent appearance of dangling pointers in corpse queue
fixed format specifier compilation warnings
fixed: splashes need the MOVEWITHSECTOR flag.
better sprite shadow control
In both of these cases the shadow math is unable to produce anything useful that doesn't look off.
fixed: shadow alpha for translucent objects was not correct in the hardware renderer.
tweaked shadow code a bit.
fixed brightmap definitions for the SpiderMastermind.
add player setup to simple options menu
do not precache unreferenced textures
added map option to disable shadowmaps. (Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.)
language update
Published by coelckers over 3 years ago
- Account for portals when spawning missiles in A_FireBullets/A_CustomBulletAttack
- fixed return type of Actor.GetCVarString()
- update widescreen submodule
- strip trailing spaces off the lines for intermission texts.
- gave the Raven invulnerability items the BIGPOWERUP flag to ensure proper respawning behavior.
- change switch checking back to vanilla order.
- use stb-image to handle PNGs with 16 bit color channels.
- do not use M_EPI1 and M_EPI2 in any Doom 2 context.
- fixed: explicit float to int casts should not emit truncation warnings.
- tweaked Hexen's weapon pieces so they do not floatbob into the floor with the hardware renderer.
- moved the handling of ending PowerWeaponLevel2 into PlayerPawn.Tick and restored the immediate weapon switch.
- never run the shader timer on the 0th frame. fixes this bug: https://forum.zdoom.org/viewtopic.php?f=2&t=62693
- backend update from Raze.
- fixed time positioning on stat screen.
- pick the proper dot for cutting off the extension in ExtractFileBase.
- added proper string labels for Doom 2 episodes.
- let the CSV parser for the string table handle hex escapes.
- added a few missing statusbar constants-
- don't display keys on the HUD in deathmatch.
- fixed A_CheckTerrain's check for instant death sectors. This was still checking the sector special even though this had been reactored 5 years ago.
- fixed: The PrisonPass's TryPickup method did not properly report successful pickup.
- make the title music only play once, unless a real demo is successfully played.
- SDL: Report Vulkan initialization errors
- give the first 16 DEHEXTRA states proper content.
- make `DI_ALPHAMAPPED` change the style to `STYLE_Shaded` in the status bar drawer
- missing key scan code constants added.
- Screen.ClearScreen and Screen.SetScreenFade script exports.
- PushV function for int and string arrays.
- change `vid_allowtrueultrawide` - -1 allows for any arbitrary ratio for hud aspects, 0 changed to old behavior (max 16:9), 1 changed to old behavior except at 21:9, 1 is now the default.
- `vid_allowtrueultrawide` is now placed in game-specific config, instead of global.
- Don't print the weapon tag if the game is paused
- Allow settable render styles for status bar drawing functions DrawTexture, DrawImage and DrawString
- Made OptionMenuSliderBase::IsGrayed virtual
- Default Heretic's, Hexen's and Strife's default screen wipe styles to match their original counterparts.
- Add sprite shadows for the hardware renderer
- Add sprite shadows for the software renderer
- Expose level_info_t to scripting + helper functions.
- Allow ACS SpawnDecal zoffset and distance args to be fixed point
- Add Polyobj_StopSound special
- handle empty command names when getting key binds
- Don't warn about UDMF comments or user fields
- allow AddPoly for 2D drawer without index buffer, treating the data as a list of triangles.
- filter out macOS resource fork data when loading Zips.
- added a A_SetFriendly function
- remove Vulkan button on startup if Vulkan compilation is disabled
- Fix crash with fog and software light modes.
- Removed depthClamp requirement (note: portals will not render correctly on such devices)
- set libADL and libOPN bank settings (only) to game specific
- A software implementation for gamma, brightness, contrast and saturation effects on SoftPoly. Based on original code by @dpjudas, thanks for the code.
- Bug fix in invulnerability in Doom Software Render Mode and True Color SW Render in SoftPoly.
- Don't let the game start if the saved game passed to -loadgame is invalid. the - improved multithreaded rendering for the software renderer.
- Make i_timescale cvar virtual. Changing i_timescale in a netgame would cause its callback to recurse
- into itself infinitely. CVAR_VIRTUAL prevents this.
- Fixed crash with voodoo dolls in MP after players quit the game.
- account for KEEPDEPLETED flag when destroying items with InterHubAmount of 0 upon leaving a level
- Fix camera texture aspect ratio in hardware renderer
- Add missing tag for Strife's KneelingGuy.
- New letter И for Strife
- Add GetCharacterName() to retrieve an NPC's name as defined in its dialogue script, if it exists. Otherwise it will just return the same output as GetTag().
- Add tag properties to Strife's enemies.
- removed config updates for pre-GZDoom versions of ZDoom.
- adapt mod_dumb_mastervolume to the increased default volume in ZMusic.
- do not sort level names in the statistics output when saving. Instead do this when creating the data to avoid trashing manual edits. The old sorter resorted all data loaded from the old file as well.
- print a message if saving the statistics file fails.
- implemented replay gain calculation and management. This is done entirely on the streamed sound data, unlike the old relative volume which uses the backend's volume setting.
- Show subtitles for the Entity's greeting lines in Strife.
- Fix crash with wind effect on special water sectors.
- Add SetSubtitleNumber(int num, str sound) ACS function. Works exactly like its ZScript counterpart. The activator of the script must be a player.
- bumped CMake version to 3.1.0 in all projects to reduce warning spam in recent versions.
- escape double quotes in Cocoa IWAD picker's extra arguments
- Fix random crash when travelling between hub maps in multiplayer.
- ported Eternity's Line_QuickPortal
- fixed memory leak in UDMF loader.
- DrawRotated function for status bar.
- Fix portals not working in softpoly (#1323)
- Add a null check in PlayerPawn::CheckFOV
- added m_swapbuttons CVAR for the Windows RawInput and DirectInput backends. The problem I discovered is that these backends do not respect the GUI-side system setting for swapping the buttons, so this needs to be done in-application so that swapped buttons can behave the same in the menu and the game.
- Don't make the switch that reveals the computer core in Strife MAP15 to be repeatable.
- fix: MBF's A_Spawn DEH codepointer should use misc2 as spawnheight, not distance
- adjust defaults for DEHEXTRA states to match other ports:
- Properly abort the program if the SDL window can't be created at all (#1296)
- Dynamic number of models per frame instead of a hard limit of four. (#1298)
- Made Strife NPC's dialog voice audible for all players.
- Fix player not being able to talk to a Strife NPC during netplay, if another player talked to that NPC first. (#1312)
- restored sound-related developer messages
- SoftPoly: Fixed the md3 models, you can now correctly display the frame of the model, in addition, interpolation is added to the model.
- Add missing ZScript constants for the Strife targeter PSprite layers
- SoftPoly: Fixed the screen turning white with invulnerability sphere in Doom and in Heretic avoiding color errors in some pixels when activating the "ring of invincibility". (#1307)
- Added a new intrinsic for class pointers to check if the class is abstract (#1308)
- remove doom2 from the wadsmoosh filter in iwadinfo
- Fixed sprites were not affected by dynamic lights on SoftPoly.
- fixed missing 'player left the game' message
- Softpoiy: Fix black wall sprites
- Softpoiy: Fix line portal clipping bug
- add `-noautoexec` command line parameter to disable the execution of autoexec.cfg files
- add Pi and some other constants to ZScript (#1304)
- Fix Additive Shaded renderstyle for UDMF things bugged
- backend update from Raze.
- another wallsprite crash fix: https://forum.zdoom.org/viewtopic.php?f=56&t=71450
- Add support for zero size buffers as the hwrenderer uses that!
- Fix crash when trying to open unreadable IWAD files
- Fix crash when following symlinks to nonexistent IWAD files
- fixed incorrect extension of overridden function prototype. Prototype of overridden function with optional argument(s) missing could extend unrelated prototype of previously defined function when their arguments and return value(s) match
- Fix dancing sprites regression
- fixed uninitialized global rolloff in sound engine. Depending on SNDINFO definitions, type of global rolloff could left uninitialized, and linear rolloff might be treated as logarithmic
- fixed: FTextureManager::ReplaceTexture did not calculate the upscale flags.
- add "hidepartimes" MAPINFO/GameInfo property
- Hitscan attacks can now hit SPECTRAL actors if the hitscan puff has SPECTRAL flag set
- Add progress bar for SDL backend
- Fixed "Messages ON" not being printed.
- added initialization of linked sectors. Resizing of linked sectors arrays during serialization could lead to processing of pointers to junk data
- Fixed nodes were not rebuilt after loading broken extended nodes.
- vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27
- screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false
- Fix ScriptCall missing default arguments
- Add alternate "Full" mode for PowerIronFeet that prevents leaky damage.
- Fix ALWAYSFAST actor flag.
- Side By Side Letterbox Display mode (#1255)
- add sv_instantreaction dmflag
- Fixed: Monster reaction time was always zero with fast monsters and not just on nightmare.
- fixed incorrect sound definition for DSMANATK in Dehacked.
- Fix the "Max" constant being incorrect for unsigned int types.
- add new detection hashes for newer versions of nerve.wad
- update $musicalias to allow iwad remapping when used from game_support.pk3
- add music aliases for the unity version of Doom/Doom2 for digitized game soundtrack
- Modify Shape2D so that it manages its own vertex buffer rather than using the draw list (#1249)
- add support for DEHEXTRA's extended sound range (#1258)
- Fix IfItem amount not being checked (#1262)
- Fix MAPINFO definitions for "enableskyboxao"
- Always allow skyboxes by default
- Add option to disable skyboxes through mapinfo
- Disable AO for skybox portals (can be forced back with MAPINFO flag).
- Add autodetection for GOG's releases of Heretic and Hexen. (#1259)
- Fix model normals being distorted by MODELDEF scaling.
- added check for M_IsAnimated to TryRunTics.
- added the option to look for music by using a truncated 8-character variant of the given name.
- fixed: strbin did not check for a terminating 0-character right after an escaping backslash.
- allow targeting ARM64 on Windows
- fix keyboard repeat events not being sent to menus if TranslateKeyboardEvents is true
- Fixed: RandomSpawner spawning another RandomSpawner spawning a missile could result in the second RandomSpawner being erroneously destroyed.
- Simplify manual sound rolloff handling
- change all optional game support archive loaders to scan the program folder
- allow drawing text using fonts with an external translation
- fixed: IceGuyFX2 set its owner too late.
- implement slider background color change - https://forum.zdoom.org/viewtopic.php?f=15&t=70616
- Fixed: If AbsorbDamage resulted in an item having been destroyed, the following items in the inventory chain were not processed.
- Fixed weapon bob jittering.
- fix missing SKILLP property in zscript code
- do not keep impact decal that fails to stick to a wall
- fixed inverted menu setting for 'Disable menu clean scaling'
- fixed crash when drawing status bar on automap
- fixed issue with parsing useowncoloradd UDMF flags
Published by coelckers almost 4 years ago
Published by coelckers over 4 years ago
- fixed: Inventory items that are terminated by GoAwayAndDie must be removed from the blockmap and sector lists.
- added missing target check to A_RadiusDamageSelf.
- use a full ClearScreen when drawing fullscreen images.
- fix crash in nullptr access to DFrameBuffer object 'screen' if it is uninitialized
- add "restart" button to error pane in Windows
- add keyboard accelerator shortcuts to many Windows-specific dialogs
- fixed some issues with setup parts for ZScript in the wrong place.
- let blastradius work without an effect actor.
- fixed: AActor::GetModifiedDamage must account for the inventory items to get destroyed in its scripted subfunctions.
- fixed: FGameTexture's GlowHeight was not initialized.
- fixed: the attenuation flag wasn't passed to the shader if shadowmaps were disabled.
- fixed bad range check in shadowmap code.
- Fixed: check for bad sidedefs was not taking into account sidedef compression.
- backend update from Raze.
- fixed: The scale vector for detail maps was not passed to the shader.
- fixed: The flags for texture colorization were not passed to the backend.
- fixed: The scissor rectangle must be clipped to the upper left edge of the screen.
- fix missing terminator in vk_shader.cpp on #ifdef guarded line.
- made the new Build light mode operational
Published by coelckers over 4 years ago
added a CCMD that lists all CVARS which don't have a description.
mapped "Smooth mouse" back to m_filter CVAR and removed smooth_mouse.
Fix compilation on DragonFly BSD
fixed code that deternines when to upscale a texture.
fixed fallback lookup for multipatch textures referencing themselves as patch.
fixed the burn shader.
do not allow playing sounds during PlayerFinishLevel.
added 3 more texture samplers to the shaders to compensate for the now always occupied slots for brightmap, glow and detail.
fixed calculation of allocated memory for garbage collection
since we already got lots of CVAR descriptions from the menu's content, let's use that as CVAR description if none is explicitly provided.
fixed bad bit operations when calculating the base palette remap.
fixed: The mutipatch texture builder did not set the source lump.
fixed: When reopening a lump, the full file name must be used.
fixed crash with texture upscaling in the truecolor software renderer.
Fixed crash rendering 3D floors without ceiling or floor textures in software.
Fixed wrong MINDEMOVERSION which was committed in https://github.com/coelckers/gzdoom/pull/360/commits/95f447927aee2350c1dd6bb8a317a69012890a33
Fix Bag of Holding not increasing Firemace ammo capacity
fixed compilation of non-x86 targets
Published by coelckers over 4 years ago
Hotfix: LineTrace now reports the correct number of portal crossings.
fixed incomplete disabling of number field menu option
tighten rules for action functions called from Decorate
fixed: The full dotted lump filter string was never used.
fixed (un)morphing of more than one actor from ACS
fixed setup of JIT functions that require extra frame space
make various getter and pure-math methods clearscope, and where applicable, const
fixed offsets for hires replacements of already scaled textures.
Fix compilation on NetBSD
manually merged PR for kill count in Requiem MAP23.
there is no mace ammo in the bag of holding.
fixed texture sampler generation in the Vulkan backend.
added per pixel lighting for decals.
fixed incorrect offsets for textures in the hires/ folder.
advanced coordinate control for overlays over DTA_Fullscreen images.
fixed: the last frame of the intermission screen wasn't rendered.
added support for replacing the intermission backgrounds in Doom 1 with widescreen images.
fixed font selection on intermission screen.
fixed crash with texture upscaling in the software renderer.
Add option to disable SDL joystick support.
added a compatibility option for a bad teleporter in the final Strife map.
redid mouse control for the conversation menu.
fixed some double to float conversion warnings.
enabled CVAR descriptions.
Strife dynamic light tweaks by ReaperAA.
fixed: vertically mirrored textures should not be subjected to empty space optimizations because the algorithm cannot deal with the inverted case.
fixed: the 3D floor processing code in the renderer did not restore the render style after finishing.
made some changes so that material definitions can properly check automatic layers when determining their material type.
Fixed OpenAL regression with looping sounds with playing length 0.
Allow dialogs to be displayed on other Unix-like OSs
fixed floorclipping checks for 3D floors.
Strip out any color escape sequences before setting a window title.
reject all 0-special lines for activation.
use modulo, not bitwise and-ing to check the damage delay for terrain based damage.
fixed: Copying a texture's size must also copy the offset.
fixed scale setup for multipatch textures.
fixed missing custom shader setup in cases where a shader got used more than once.
make sure that incomplete multipatch textures are technically complete.
Add a cvar to control weapon bobbing while firing
Fixed crash on maps with out of range sidedef and sector numbers, adapted from PRBoom.
removed redundant TextureFilterChanged method from DFrameBuffer.
texture sampler cleanup.
don't let CHANF_AUTO hijack other channels.
more descriptive message for server CVAR change attempt in netgame
removed entry for non-functional linear tonemap.
fixed fullscreen toggle via shortcut
fixed space calculations for oversized episode and skill menus.
fixed: The size parameters for automap sprites are floats, so they need the matching tag.
fixed setup for translated textures in Vulkan.
Single image fonts do not use translations.
fixed: texture upscaling was disabled by default.
fixed shader building.
fixed: V_GetFont must load the translations once the game has been set up.
fixed: TRF_ALLACTORS did not consider actors without any flag being set.
added missing range check to section code.
fixed use of Powerup.Strength in PowerInvisibility.
fixed bad Heretic light definitions.
fixed missing sound for Polyobj_MoveTo.
Add mapinfo option to disable merging of identical pickup messages on same tic
attenuated lights for Strife.
fix "'Dictionary' is freed outside the GC process" warning
fixed map things erroneously treated as polyobject anchors/spots
restored warning about missing aiming camera target
Fixed an issue where multiple invulnerability powerups could cancel each other out from just one expiring.
export common formulae to functions instead of copy-pasting them
screen bevel now enlarges also when screenblocks <= 11
make intermission and status bar scaling game-specific in the config
add scaling customization for classic ui flat scaling
make screen border flat scale up
inter_classic_scaling now defaults to true
fixed: last commit I accidentally left hardcoded testing values and did not change them back to check for the texture's original size
implement cvar 'inter_classic_scaling' to render the intermission flat as if it were 320x200
force player respawn to call up the player's default class settings before determining where to respawn the player
Add optional direction parameters for SprayDecal and its A_SprayDecal zscript counterpart
Revised Serbian characters Ћ/Ђ
fixed: screen resolution changes did not notify the 2D drawer.
fixed secondary ammo display in strife status bar
Fix bouncing missiles not dealing damage when hitting top/bottom (#1068)
Add option to invert mouse x
Add an alpha parameter to StatusBar.DrawBar
moved benchmark fps output to the custom part of it because it depends on game data.
fixed ZScript compiler crash with dereferencing null pointers
moved the frame rate drawer out of DFrameBuffer.
did a bit of cleanup on DFrameBuffer, most notably taking GetCaps out of it. With the old softpoly renderer and OpenGL 2.x being gone there is no more need for such complex handling, it is now a single function in d_main.cpp.
Added MTF_NOCOUNT to spawn flags
split voxels.cpp into a backend and a game dependent part.
made FModelRenderer game independent - the 3 functions in question may just be global functions instead.
changed shadowmap setup so that the AABB tree is owned and controlled by the map, not the renderer.
changed the light parameter of ShadowTest to a position vector.
cleaned up the dependencies in the model rendering code and separated it into game-independent and game-dependent parts.
clean separation of vertex creation from map data and the buffer object.
made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
moved RenderView out of the framebuffer classes to complete the consolidation of the renderer's entry points.
reworked canvas texture updater to avoid passing game data to the render backends.
consolidated the savegame picture code.
consolidated the 3 RenderViewpoint variants and took the function out of the framebuffer class.
consolidated the 3 virtually identical instances of DrawScene and moved the function to HWDrawInfo.
moved the render interface functions out of FGLRenderer into OpenGLFrameBuffer.
fixed: hwrenderer materials were nullptr checked but the pointers were not always properly initialized
fixed crash when loading saved game that has no music
added validation of game skill when changing a level
fixed potential crash on intermission cast screen
set all texture IDs after finishing the initial texture manager initialization. As it turned out, not all textures have a valid ID at that point so it needs to be redone.
block off the Substitute function by making it private to the 3 classes that really need it.
let TeleportSpecial universally map to Teleport when checking action special names.
apply aspect ratio compensation for all fullscreen images with a height of 200 and 400, and not just to 320x200 and 640x400.
fixed incorrect value range for particle's depth value, used for sorting.
made 3D floor damage transfers optional by adding a new flag bit (2048) and made that mode automatic for the old ZDoom-based light only transfer special.
fixed keybinding reader - before trying to load DEFBINDS the lump index wasn't reset.
removed the "no IWAD definitions found" error message because the condition it checks for is not an error.
fixed setup of IPK3's where all content is in a subdirectory.
fixed texture layer management so that each material layer can decide for itself if it wants to allow upscaling.
rewrote the hardware texture precacher to use the new texture management to properly track the data to delete.
store the Vulkan descriptor sets in the material - where they belong! Having them in the base texture object was a major maintenance issue.
store the material layers in reference counted pointers in the FGameTexture object.
major refactor of texture upscaling control. All decisions were done deep inside the texture creation code, leaving zero options to the higher level code for controlling the feature.
moved the decision whether to upscale textures up one level in the function chain. Still not the perfect place, this should be decided before creating the texture, not in the middle of the process.
disabled the selective texture cleaning in the precacher. The logic here turned out to be a serious blocker and needs to be rethought.
allocate the sprite positioning info on demand only.
Moved the raw texture handling into the texture manager as well.
moved the front layer hack for Hexen's skies to the texture manager.
moved the handling for paletted replacements into the texture manager.
use FGameTexture instead of FMaterial for texture tracking in the hardware renderer.
moved the sprite positioning info out of FMaterial back into FTexture.
scale the automap parchment to clean 320x200 dimensions.
made 'supportRemap0' an image property so that the handling for this can be taken out of the actual texture class by just providing a replacement texture for the skies.
decoupled the software renderer entirely from FTexture - it will only look at FSoftwareTexture now, all access to the texture manager has been wrapped.
texture code refactoring to consolidate multiple textures referencing the same backing image.
handle brightmaps in the main shader instead of keeping separate instances around.
added detail and glow layers from Raze.
fixed material setup which could not guarantee that everything was initialized correctly.
for warped textures, warp all layers. With this brightmaps finally work on warped textures.
fixed detection of standalone IWADs
let FSkybox inherit from FImageTexture to simplify the redirection of the base image for the software renderer.
fixed text size calculations in the status bar.
fixed: Setting 'noallies' on the level cleared the player's friendly flag.
Moved TICRATE from Thinker to Object in ZScript so status bars have access to it.
fixed conditions with SND_PlayerReserve flag
added global variants of the main 2D-draw functions taking an F2DDrawer as their first parameter.
separated the Doom specific parts of the ZScript parser from the core into a subclass.
separated the Doom specific parts from the compiler backend into a separate file, these parts now get invoked via callback hooks.
put the state pointer serializer in a virtual function so that types.cpp can operate without any knowledge of Doom states.
split the serializer in two to keep the Doom specific parts out of the main file.
split the TObjPtr serializers into a separate file to avoid polluting everything that needs to use the serializer.
took InitializeDefaults out of PClass and moved it to PClassActor. Like so many other parts, this created a hard dependency of the low level code on very invasive game content.
moved most of the root marking out of the garbage collector, replacing it with callbacks.
use translation slot 0 for reserved content, like font translations.
major dependency reduction of the texture system.
moved some data needed by the texture system into palettecontainer.cpp.
split animation management out of the texture manager into a separate class.
moved game specific data out of the sound backend. In Raze I already had a user data array for that so this gets used here, too, now.
use a TMap to store music volume settings instead of using a homegrown linked list.
separated the game-dependent music lookup parts from the core player.
reduce backend's dependency on game state by using callbacks.
merged FPalette and PaletteContainer.
use an array to store the buttons. This puts a lot less knowledge about the game's features into the low level code.
made console notification scrolling independent of the global game ticker variable.
uncouple console's cursor blinking from the game ticker.
c_dispatch header cleanup and splitting of gamestate into a separate header, to avoid polluting low level code with game specific headers.
CCMD no longer uses copystring function.
ability to dynamically register CCMDs.
removed the 'caller' parameter from the CCMD dispatcher. This can never be anything but players[consoleplayer].mo, so there is no need to pass it through the interface.
separated the button code from c_dispatch.
replaced Travis and AppVeyor with GitHub actions
split off the console's command line class into its own file.
CVAR cleanup, in particular decoupling from game internals, which now get handled via callbacks.
removed a large batch of unused names.
File system refactoring to free this code of direct game dependencies.
renamed the file system related classes to actually use the term "FileSystem".
moved the file name management out of the single resource lumps.
moved the linkedTexture pointer up one level out of the resource descriptor into the file system record.
renamed fullscreen CVar internally to vid_fullscreen to make searching for it easier.
make DumpCPUInfo return a string instead of letting it print the info itself. Also consolidated I_Init, because both existing versions were identical.
major code refactoring to improve reusability of low level utility code
move SuperFastHash to its own set of files, instead of having this tied to the console.
replace swapvalues with std::swap globally.
added printf.h header to avoid including more dirty ones for the console printing functions.
cleaned up the includes in m_png.h, this file had far too many and far too broad dependencies.
moved the dictionary implementation into the 'scripting' folder where it really belongs.
copied some fixes for overlong config entries from Raze.
renamed basictypes.h to basics.h to keep the file name in line with Raze and make comparisons easier.
added some utilities to cmdlib.cpp and changed its license to BSD, because no original Quake code is left here.
avoid using plain char pointers to store script data for FraggleScript.
use FString to manage strings in bot code.
removed use of copystring in Dehacked code and cleaned up the list of includes in cmdlib.cpp
Added $OPTVAL_MBFSTRICT to menudef.txt, and added corresponding case 7 to the compatmode cvar in d_main.cpp
removed the obsolete Doomsday 1.8-style texture pack support. This poorly integrated into the texture system and wasn't compatible with modern texture packs anymore so its usefulness was questionable.
REQUIEM.WAD fixes (#1050)
Fixed sprites sunk into water on Carmack with HQ resize modes.
Fixed tutti-frutti and crash with liquid warp effects on the Carmack renderer when texture resizing was disabled. (#1063)
Fixed: SPECTRAL flag didn't check for DMG_FORCED before aborting DamageMobj.
removed detection of unsupported macOS versions
fix nullptr crash in player.camera reference when player.camera is nullptr
Don't draw weapon tags when player tries to switch weapons while they're dead
add warp2 shader to softpoly2
Added Actor.CopyBloodColor to copy another existing actor's blood color.
Opaque blood decals must be defined with 'OpaqueBlood' keyword in DECALDEF
Colorize opaque decals using the bleeding actor's blood color, if the 'Shaded' keyword is omitted from the DECALDEF.
remove assumption in DFrameBuffer::FillBorder that ultrawide screens will stretch an image, since it is no longer the case.
Fix compile error when using std::sort with Visual Studio 16.5.0
clear the screen before drawing content, not afterward.
fixed file existence check in TRNSLATE parser.
changed translation management so that the fonts also use translation IDs.
allow specifying full palettes in translation definitions.
implemented better aspect ratio control for fullscreen images.
Print weapon name tag when switching with "slot" command (#1048)
Add help messages for most of the deprecated stuff in ZScript.
fixed FLineTraceData scripting definition
replaced assert() in ZScript fields compilation code
added line break to 'No GENMIDI lump' message
fixed A_FireCGun.
fixed: player_t::GetPSprite cannot guarantee success. As a consequence it must return null in the failure case instead of asserting and all calls to this function must check for the failure case.
added autonames for the shareware games
default terrain's DamageTimeMask to a reasonable value.
Add missing segment clipping clamps for decals, sprites and wall sprites
aggregate TMap into Dictionary instead of deriving from it
fix Dictionary and DictionaryIterator memory leaks
Added Pre(Un)Morph and Post(Un)Morph functions.
fixed infinite loop reporting '... before first state' errors
fixed: removed startTime from the wrong function internally.
add checking in S_StartSound for startTime length
Added A_StopSounds(int chanmin, int chanmax).
Added A_StopAllSounds.
fixed: Windows must call the wide version of _mkdir for Unicode support.
prohibit core shaders overriding for OpenGL renderer
stop all sounds after exiting level regardless of intermission screen
fixed comparison with uninitialized data in MAPINFO parser
use GAMENAMELOWERCASE macro for music config defaults
added Romanian to the language selection menu.
removed CD audio support. Mainly because this is an ancient deprecated feature on the system side that serves no good purpose anymore.
fixed wrong name assigned to dummy texture with zero ID
force Greek to use the standard font in Heretic and Hexen.
fix character substitution for mixed case fonts and text update.
Greek letters for Strife's Big and Mini fonts.
Greek characters for old console font.
reformatted getAlternative for compactness.
remap accented Greek uppercase letters to their base variant instead of directly to the Latin/Cyrillic replacement.
added the 7 Greek characters to Strife's SmallFont that cannot be done by remapping to existing Latin or Cyrillic letters.
SoftPoly only worked with Vulkan support on POSIX platforms (#1036)
fix vulkan crash when there are no textures in player's view
Fix vk_hdr looking for the wrong colorspace
backported a few sound code fixes from Raze.
use floats for sprite depth sorting in the hardware renderer.
Upgrade glslang to 8.13.3559 (stable release January 6, 2020)
Fixed a crash when trying to include a missing mixin.
Added source, inflictor and damage flags to AbsorbDamage.
transitioned engine to use ZMusic as a DLL.
Mixins now perform a deep copy of the AST. (Fixes default blocks in mixins)
Fixed colorization not being applicable to bottom wall textures.
autoload nerveunity.wad to doom2unity.wad
let freelook default to true.
Change updaterevision to a CMake script
fix for loading VOC files.
Remove the 'monoize' option from sound loading. Unnecessary with the AL_SOFT_source_spatialize extension, which has been available for over a year.
Remove the fallback for lack of AL_EXT_SOURCE_RADIUS. It's been available in OpenAL Soft for years and the fallback method wasn't very good.
fixed usage of floor sound with Plat_DownWaitUpStayLip special
fixed code generation for very special if+switch combination in ZScript
add Doom2f.wad support
add support for xbox 360 versions of Doom/Doom2
fixed sprite and particle colors when not affected by dynlights
Plutonia 2 Compatibility Fixes (#1026)