Please do not post bugs or issues in release threads! Click here
Download (OpenGLES 2.0 and higher)
(note: Linux AppImage is not being published, for now, due to issues, same with Linux Portable)
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
Details
Full Changelog: https://github.com/ZDoom/gzdoom/compare ... ...g4.13.0
Spoiler: This is long
- 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` and `skyspeed2`
- 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 in `F2DDrawer::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 fields.
- Replaced MISSILE(EVEN)MORE with a real property and added related Dehacked options from Crispy Doom.
- the MISSILE(EVEN)MORE flags still need to be accessible by ZScript for backwards compatibility.
- fixed logic bug with HitFriend and Refire functions.
- fixed: MBF21's flag functions did not call the special wrappers for MF_FRIENDLY.
- bFriendly should not be set from scripts because this omits needed bookkeeping.
- fix kill count management in CopyFriendliness when used on corpses.
- fix MBF21 ClearCountItem
- fixed a few memory leaks
- set a default value of 1.0 for `MissileChanceMult` property
- added CVAR to select the preferred MOD player and SNDINFO option to set it per song.
- added a menu option for switching module players.
- Add bounds checking to GetMidTexturePosition, add assert to P_GetMidTexturePosition
- Made GetMidTexturePosition() const.
- Use a `light_` prefix for custom ZDRay stuff, and actually parse light_softshadowradius for map things
- Updated ZDoom UDMF spec changelog.
- Orthographic projection Widescreen aspect ratio horizontal clipping fixed. This one-line change only affects ortho viewpoints. Easy to verify in windowed mode.
- avoid floats in integer math.
- use newer zmusic
- Added MF9_FORCESECTORDAMAGE.
- don't spam the console log if there's math errors - mostly affects Linux/MacOS because there is no distinction from console apps or GUI apps so they put all the data in the console which can cause lag