Releases: ZDoom/gzdoom
Releases · ZDoom/gzdoom
g4.14.0
- Resolve compiler warning about destructor syntax
- Fixed WalkStepTics & RunStepTics in terrain parser
- Interpolate non-Burn screen wipes
- Added LookForEnemiesEx() for returning all enemies in an area. (#2753)
- fix and re-enable non-player sector damage logic from 4.13.0
- Added (SPF_)STRETCHPIXELS.
- Add manual config saving to CVar struct
- allow getting checksum for current map
- FOV scales ortho up to 180 degrees
- do not open resource files from non-open file readers.
- source made FCommandLine::operator[] return a const char * and fixed two places where this triggered a compile error.
- Move no-mipmapping from actor renderflag/particle flag, to a material property in GLDEFS, where it makes more sense. The feature was introduced in the short-lived engine version of 4.13 which was deemed too broken and needed to be replaced with a newer version anyway, so might as well perform an API-breaking change at this point in time. Note that this currently only works for sprites (its primary targeted use case) -- walls, flats and models can be patched in later.
- fixed UMAPINFO's label field to allow 'clear' as argument.
- time footsteps with duration of movement, not with actor age
- make sure WalkStepTics and RunStepTics read ints, not floats
- Add velocity/distance based footsteps
- add CVar to control footstep volume
- change order for Kex edition wads to appear last since they were most recent
- Clarify default value for useowncolors
- Do a check if a local variable exceeds the available stack space.
- Check array size for overflow.
- cap the size of the string copy calls in LevelStatEntry()
- add set/get plane reflectivity
- Reduce number of multiply ops per frame and increase x-axis clipper range for orthographic projection.
- Allow using
Self
as the class name in the default block to refer to the current class - Fixed STRETCHPIXELS flag not being exposed.
- Added net id functions for ACS
- Moved Actor TID selector out of header
- fixed the particle replacement code.
- Reworked player loading
- Limiting r_radarclipper effect to Out-of-Bounds viewpoints only. Opens the possibility of leaving it true by default in the future.
- Fixed startpos not saving
- Added OrthographicCamera actor. Arguments are: - 0: Offset. This pushes the camera further away, going behind the camera. Default is 1.0 (converted to negative - the value cannot go lower than that).
- Fixed crash on functions with missing return values
- Fixed CreateCopy being broken on HexenArmor
- add automap default markers for all games (can be overridden)
- added constants for the most recently added level flags
- Add missing CHANF_ constants and fix the styling of the comments for better readability
- don't fudge light position out of the floor for +NOINTERACTION actors
- Allow property-less flagdefs for non-actors
- Compress visualthinker bools into a flags field
- visualthinkers: move crucial functions out of Tick, so that light custom tick overrides can be done without calling super.Tick for non-moving visualthinkers
- serialize animData, update subsector on deserialize
- export UpdateSpriteInfo
- Updated packet handling
- Fixed static error for SendConAck
- Added stubs for NetClose on other platforms
- Port NCMD_EXIT to i_net file
- Removed network message entirely
- Added CRandom functions
- Added RNG snapshotting for predicting
- Reworked FRandom constructors
- Discs no longer blast players with collision disabled
- Allow easier piece weapon replacing
- Fix and restrict level postprocessor instance
- Fixed view for frozen players
- Added WorldHitscanFired and WorldHitscanPreFired (#2432)
- Fixed poison not clearing on revive
- Fixed missing checks in P_TestMobjZ (#2827)
- contain the statnum hack for visual thinkers on the game side.
- removed -hashfiles after finding out it had been broken for an extended time period.
- Improved "respawn where died" functionality (#2831)
- Add new SBARINFO top level "AppendStatusBar", allowing for extra SBARINFO code to be added to custom SBARINFO definitions.
- make if-checks for AppendStatusBar consistent with Zandronum implementation
- Fixed bouncing on 3D floors (#2835)
- Bandaid fix for 3D floor collision detection in traces
- Fixed incorrect autooff behavior on ceiling bounce (#2837)
- Add WorldRailgunPreFired for railgun attacks and Add WorldRailgunFired
- Fixed angleOffsetTargets not being initialized
- Added ripper damage logic to DoMissileDamage
- Various bouncing fixes
- Fixed A_SprayDecal not working on 3D floors
- Fix M_SaveBitmap stream buffer size
- allow forks to set OPTIONALWAD to (null) to disable searching for it.
- remove version check for array type fix, to prevent crashes/etc with bad types
- remove "DECORATE" from error string
- Fix damage being skipped for spectral puffs
- added config file saving from zscript
Full Changelog: g4.13.0...g4.14.0
g4.13.2
Full Changelog: g4.13.1...g4.13.2
- Do a check if a local variable exceeds the available stack space.
- Check array size for overflow.
- cap the size of the string copy calls in LevelStatEntry()
- Reduce number of multiply ops per frame and increase x-axis clipper range for orthographic projection.
- Allow using
Self
as the class name in the default block to refer to the current class - Fixed STRETCHPIXELS flag not being exposed.
g4.13.1
Full Changelog: g4.13.0...g4.13.1
Highlights
- fixes a couple critical bugs introduced in 4.13.0
- a couple of QOL improvements
Detailed Notes
- Fix OpenGL shader to work with Apple's buggy GLSL compiler
- Resolve compiler warning about deconstructor syntax
- Added (SPF_)STRETCHPIXELS - for actors, makes rollsprites levelstretched, for particles, puts them back to the original stretch math as before, optional opt-in flag
- enable console subsystem for Windows with runtime detection - compiling GZDoom as a console app now shows printf's in the terminal that launched it like in Linux and Mac OS.
- allow getting checksum for current map
- add null check for canvas
- fov scales ortho
- sector damage code reverted due to some critical bugs, feature will be in next release
g4.13.0
Highlights:
- Added pistol start gameplay option
- A few ID24 spec implementations, adds support for new Bethesda DOOM + DOOM II re-release and Legacy of Rust
- Several multiplayer network fixes, especially with prediction
- some savegame fixes, should now be able to delete them on windows
- add Extra Parameters to iwad selection box
- iwad selection box now always shows unless one of the following is true: it is disabled, -iwad is used from command line, or you load in a gameinfo that suggests an iwad
- add mbf21 and mbf21 (strict) compatibility presets
- particles and rollsprites are now square
- ZMusic update, allows selecting a new module player
- forced-perspective sprite clipping (limited ability for sprites to render under the floor)
- support for Orthographic projection
- decoupled animation fixes
- able to now pass optional parameters in any order
Verbose notes
- Added pistol start gameplay option
- StringTable cleanup and improvements
- Instead of going through a global callback function set the string table's default gender at the start of each frame
- Exported FTeam getters
- Added PSpriteTick virtual
- ZWidgets: disabled SetClientFrame.
- dynamically import GetDpiForWindow from USER32.dll, else return a default value
- optimized last commit to not retrieve the function repeatedly if it has already failed.
- Fixed local copies of items not respecting their Amount value
- moved the NetworkEntityManager into the backend code.
- fix lifetime of skyinfo variable in HWWall::SkyPlane.
- ZDRay specs fix
-norun
now implies-stdout
on Windows as it's useless without it- fixed: rollsprites now 'unstretch' properly in regular y-billboarding
- demote SDL_Wait errors to console printouts
- shorten sdl_waitevent error message
- Interpolation fix for network prediction
- Fixed incorrect automap arrow position in multiplayer
- Fixes for client network IDs
- View fixes when predicting
- Fixed changeskill being unnetworked
- Player spawn fix in co-op new games
- Reworked clientside lerping
- Added ShouldShareItem virtual
- Add graycheckVal, expose hud_oldscale/hud_scalefactor to the menu
- added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10
- fixed bad network ID assignment.
- Interpolation fix for network prediction
- fixed: AActor's members must all be native.
- Fixed "PrivateNetOf" function not checking for the entire B class private network range
- fix lifetime of skyinfo variable in HWWall::SkyPlane.
- Fixed prediction not calling virtual Tick function
- Fixed desync in Heretic
- Fixed ViewPos not properly backing up when predicting
- Fixed weapon slots not resetting on unmorph
- restore old fadestep behavior if SPF_NEGATIVE_FADESTEP is not passed in
- Added missing checking for LOOKALLAROUND.
- fixed: for deleting files and folders on Windows we have to call the Unicode variants of these functions.
- fixed: The savegame's PNG loader must use a caching FileReader to avoid holding a handle to the containing file.
- strip spaces from language labels.
- don't abort when parsing the Steam config fails.
- fixed GL nodes loader for maps loaded from mounted folders.
- add mbf21 and mbf21 (strict) compatibility presets
- make particles square
- always show iwad picker, offer option for forks to hide picker by default.
- make roll sprites square
- Ability to add extra args on all platforms similar to how Mac OS always had it
- fix CheckParmList
- Fixed unmorphed Actors still ticking
- don't show secret-flagged linedefs with special color on am_cheat 4 and above
- Provide a diagnostic message for the two 32-bit related static_asserts
- partial fix for
FString::IsInt()
- Fix invisibility affect on enemies
- Added subclassing for use commands
- Inventory item spawn fixes
- Network messages will now show usernames instead of just numbers
- Added ChangeTeam function for teamplay
- Added missing player retranslation
- Scriptified the view squatting.
- Narrow the Launcher check box clickable areas to stop overlap and fix #2558
- Fix memory leak on TDeletingArray move assignment
- Rework named arguments
- restrict new relaxed named arguments to zscript >= 4.13
- Fix A_SetAnimation
- Rename SourceRadius to SoftShadowRadius (to match VKDoom)
- Add X, Y and Z offsets for VOXELDEF. Needed for voxelized weapons which would typically be very large and take up the majority of the 256x256x256 canvas, therefore making precise positioning of the models relative to the screen pretty much impossible without tweakable offsets.
- Added SPF_(NO)FACECAMERA flagst for specifying camera facing on particles and visual thinkers.
- Added SPF_ROLLCENTER for particles and visual thinkers.
- Fixed Pre(Un)Morph being called out of order.
- Turn on the output limiter
- add COMPATF2_NOACSARGCHECK to disable ACS function argument count checks
- add total chaos retro and full maps to compatibility.txt
- Add missing GC write barrier
- Misc network fixes
- handle freeze in decoupled animations
- Fix directory crash for filenames that appear elsewhere in the path
- Clean up lightmap stuff in the namedef
- fixed alignment issue in SBARINFO's DrawString command
- Fixed subnormal float viewpos values breaking rendering
- Disable effects on Actors set not to render locally
- Add SPF_NOMIPMAP to force actor sprites or particles to have no mipmaps. This makes tiny sprites/particles look more crisp and legible in the distance. Mipmapping causes the sprites/particles to have an inconsistent look where they'd sometimes be clearly visible and sometimes less visible depending on camera distance and movement.
- fix: check if bombsource exists when exploding a projectile with a XF_NOALLIES flag
- Fix Specular not using Material definition for Glossiness and Level
- Support the new Doom + Doom II update
- fix MBF21 A_RadiusDamage crash/broken 'distance' arg
- Allow XInput joysticks to work while the game is unfocused
- don't change priority to idle if i_pauseinbackground is false
- Isometric Mode and Robin (#2618)
- Export PlayDiveOrSurfaceSounds to ZScript and made it virtual for mods to customize the diving and surfacing sounds
- mingw64 requires including cstdint
- Fix preprocessor symbol for Windows
- Fix libraries on mingw64
- Fix namespace issue
- sys/stat.h is required on all platforms
- Keep legacy_studio_definitions for non mingw64 toolchain
- Better solution for DwmDefWindowProc on mingw64
- fix faux pas
- Fix to use the correct definition of DwmDefWindowProc
- Fix incorrect return type
- add doomkex doom2kex tntkex and plutoniakex as valid iwad filenames
- add xbox filenames too
- Added GOG path for Doom + Doom II
- Reverted use of tchar.h which should be considered deprecated.
- Allow for Basic and Hexen armor replacing
- Fixed counters not clearing when using shared/local pickups
- Added itemcls to HasReceived
- Made itemcls optional
- Skip bex strings for freedoom if language lump is present (#2682)
- Stop grabbing mouse when game window doesn't have the focus
- Smaller aspect ratio screens were getting clipped a bit too much. This is a brute-force if-else solution. Larger aspect ratios (wider screens) were always good.
- fix A_PlaySound not working for DSDHACKED-defined sounds
- implement +SQUAREPIXELS flag
- add SpawnMultiCoopOnly mapinfo flag to spawn only coop spawns in single-player
- PointToPseudoPitch() was being called even when viewpoint was not allowed out of bounds. And its sqrt was slow even when it was necessary (thanks dpjudas for the speedup code).
- load id24res if present
- Add support for fire textures in ANIMDEFS
- Truecolor sky: Draw opaque black background on transparent texels
- Render the bottom sky layer always with full opacity in the SW true color renderer.
- replace naive interpolation logic with more exact logic
- quick fix for interpolation, TODO better fix
- rework interpolation to allow for precalculated frames
- Properly fix double interpolation for IQM models
- Prevent console from laying open when intro cutscene plays on some systems.
- Fix bug where down arrow does nothing after clicking the main menu
- Fix load/save menus not starting scrolled to the selected entry
- Fix missing serialization for
skyspeed1
andskyspeed2
- Fix billboard facing camera only taking effect when used with XY billboarding
- Fix incorrect boolean logic for
drawBillboardFacingCamera
- export
FFont::GetChar()
to ZScript - Added GetDecalName()
- removal of some redundant checks
- rename 'restart' ccmd to 'debug_restart' since it is in a broken state right now
- implement
SPAC_Walking
, mostly useful for teleports or for line crossings that should not happen when the player is falling or flying - update UDMF spec entry - Added FloatBobFactor
- Add another soundfonts search directory for *nix
- Exported DPrintf
- Add RADF_CIRCULARTHRUST and matching XF_/RTF_ flags
- Search more paths in SHARE_DIR (#2610)
- implement anamorphesis sprite clipping (aka forced-perspective) (#2431)
- Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE.
- Added check for hurt floors in P_IsUnderDamage().
- SetSkin and GetSkinCount added to PlayerInfo class
- bail out if
shape
is null inF2DDrawer::AddShape
- Fix for NoLocalRender not snapshotting between hub levels
- Removing pre-clipping of Frustum if pitch > 46 degrees and viewpoint is not allowed out of bounds. This is like old behavior.
- Fixed problem in CheckForShadows().
- ID24 interlevel lumps implementation
- make the broken ID24 levelnums work somehow so that Legacy of Rust's intermissions play.
- Add bIsPuff flag
- Add damagesource
- Serialize damagesource, fix bad character in actor.zs
- Made DamageSource and bIsPuff readonly
- Fixed MF9_ISPUFF overlapping with MF9_NOSECTORDAMAGE
- Fix broken if statement in ParseFireTexture
- add missing 'author' and 'label' UMAPINFO f...
g4.12.2
Full Changelog: g4.12.1...g4.12.2
- fix issues with GCC 14
- network fixes, including prediction and interpolation
- Fixed changeskill being unnetworked
- added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10
- fix lifetime of skyinfo variable in HWWall::SkyPlane.
- ZDRay specs fix
- -norun now implies -stdout on Windows as it's useless without it
- fixed: rollsprites now 'unstretch' properly in regular y-billboarding
- demote SDL_Wait errors to console printouts
- mirror changes with ZWidget, remove SDL_Wait failure message
- Reworked clientside lerping
- Built with MoltenVK 1.2.6 instead of the latest version
GZDoom 4.12.1
GZDoom 4.12.0
- fixed actor class creation for DSDHacked
- fix DSDHacked state creation.
- - fixed DumpCPUInfo() definition for non-x64 platforms
- update soundfont
- added missing hit obituaries to Hexen's Chaos Serpents.
- set default backend to Vulkan, if Vulkan fails go GLES not OpenGL
- add 'mapinfo' ccmd
- add GetChars() accessors to many FString uses where const char* is wanted
- removed several bad casts to 'long'.
- Fix inheritance for bNoSaveGame
- make zs Actor.GetReplacement and Actor.GetReplacee clearscope
- Deduplicate Map/MapIterator Types' Code
- Improve handling of field names in error messages during Map/MapIterator compilation
- Make sure maps in return type don't segfault
- make Array::Append faster for simple structs
- Don't try to generate code for abstract functions during JIT dump
- Allow dumping jit for mod functions only
- allow "&" instead of "out" in function parameters
- Turn Map/Array assignments into Copy
- Update LZMA SDK to 23.01
- Fix wrong define for PPMd
- Add final and sealed as class options
- Several Backend Updates from Raze
- Several Language File Updates
- Converted lots of FString getters to .GetChars()
- fixed some signed-ness issues.
- fix $PROGDIR expansion being case sensitive
- added missing VMFunction struct definition
- Implement Static Function Pointers
- add forcecullbackfaces in modeldef
- rewrite of HWWalls to allow grabbing the output from the render item generator
- bumped minimum macOS version to 10.13
- Exposed P_GetMidTexturePosition() to ZScript.
- do not print all GL extensions to the log for the GLES renderer.
- widen the special field in FBoomArgs.
- fix UMAPINFO's intermusic being used at the summary screen.
- fixed savegame file name check.
- fix map WAD check for savegame validation.
- always save the map WAD in a savegame's metadata, even if it is from the IWAD
- Add Wall Texture Skewing
- added Wads.GetLumpLength.
- fixed handling of DSDHacked sound replacement in the index range between the regular sounds and the MBF21 extensions.
- Allow setting the colormap from mapinfo (dsda-doom)
- 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.
- implemented DSDA's sector scrolling properties.
- added UDMF wall scrolling properties from DSDA.
- added friction and colormap related properties from DSDA.
- added per-sector sky UDMF properties.
- added DSDA's thrust properties for UDMF
- fixed DEHSUPP multiple load prevention.
- fix int assign optimization constants generating broken code because they weren't expected
- add master levels to game list for steam
- change which config to look for library folders in
- added rudimentary support for DSDA's COMPLVL lump.
- allow defining zero gravity through MAPINFO
- gave translations a dedicated scripted type.
- use FTranslationID in all places where strict type checking is needed.
- Added missing LANGUAGE definition for Mystic Urn's tag
- Add sv_coopsharekeys - in coop, picking up a key will distribute it to all online players
- Serialize Name Keys as Strings for maps
- fix GL ES switch appearing as 'Unknown' in the menu sometimes
- Add missing loop
- 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.
- Decoupled IQM Model Animations
- Expose coop share keys to the options menu
- Add Compatibility=Extended for Blasphemer
- add flag +BILLBOARDFACECAMERA - renders actor billboard to always face the camera
- add actor flag +BILLBOARDNOFACECAMERA which forces sprite aimed at camera heading instead of camera position when gl_billboard_faces_camera is true
- Fixed console rendering crash on wide consoles
- Fix vanilla weapon functions passing ammo count to DepleteAmmo
- added STL compatible access functions to TArray.
- convert many source files to UTF-8
- mark gl_maplightmode as a cheat
- fixed savepic loading.
- [add new ccmd cvarsearch allows searchin...
GZDoom 4.11.3
GZDoom 4.11.2
- fixed savegame file name check.
- fix UMAPINFO's intermusic being used at the summary screen.
- widen the special field in FBoomArgs.
- do not print all GL extensions to the log for the GLES renderer.
- minor backend update from Raze.
- give error instead of warning for zscript 4.12+ on return count mismatch
- warn when fewer returns than expected are given for a function
GZDoom 4.11.1
- fixed actor class creation for DSDHacked
- fix DSDHacked state creation.
- fixed DumpCPUInfo() definition for non-x64 platforms
- update soundfont for all platforms
- set default backend to Vulkan, if Vulkan fails use GLES instead of OpenGL
- removed several bad casts to 'long'.
- Fix inheritance for bNoSaveGame
- make zs Actor.GetReplacement and Actor.GetReplacee clearscope
- fixed another bad string validation check involving GetChars
- use copystring instead of strdup when reading environments.
- disable survey code again.