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
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
(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)
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
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
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
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
Due to recent changes in the widgets code, newer versions of GZDoom will probably no longer run on Windows 7 natively. If you cannot run GZDoom on Windows 7, you can try VxKex to see if it fixes the problem for you.
Highlights:
New launcher screen with custom widgets
VisualThinkers
Reworked Morph System
Many DSDA/MBF21 compatibility fixes
mapinfo and cvarsearch ccmds
better joystick handling in Linux (particularly for the Steam Deck)
Due to recent changes in the widgets code, newer versions of Raze will probably no longer run on Windows 7 natively. If you cannot run Raze on Windows 7, you can try VxKex to see if it fixes the problem for you.