Releases: ZDoom/Raze
Releases · ZDoom/Raze
Raze 1.6.1
This is a bugfix release addressing the following issues:
- Blood: add all statically stored EventObjects to the GC processor.
- fixed: when deactivating the app, pausing the sound system should not depend on the game's internal pause state.
- fixed ESC pressing on Duke's monitors.
- Blood: relax range check in AlignSlopes. This now checks the full range of the wall array and if outside just does nothing. E2M6 has a bogus value for this feature that asserted with the old check.
- Blood: fixed blood splats being spawned in the wrong place.
- Blood: fixed 3 places where 3D distance was used but 2D should have been.
- Fix pitch direction for controller input.
- added a - sign to FindBestSector' default return. This somehow get lost when the code was moved out of clipmove into a separate utility function.
- fixed velocity handling in a few enemy swimChase functions. The one for the gill beast was particularly bad.
- Exhumed: allow Anubis to get out of the walking state if he loses his target.
- fix initialization issues with a few serializer functions.
- fixed bad direction setup for vertically moving SE 0. This also adds missing interpolation for this case.
- Duke/RR: fixed floor alignment of flames in sloped sectors
- Duke: fixed flames not being floor aligned. The same code was correct in the RR variant, so it just got copied over.
- Exhumed: The ObjectList was not properly garbage collected.
- fixed kill counting in Blood.
Raze 1.6.0
- Attempt to fix #647. I'm guessing the
nWalls < -1
is a typo, and it should have beennWalls <= -1
all along. I decided to writenWalls < 0
instead. - Fix
IWADBoxCallback()
and MENUDEF setup for GLES backend. - Make
crosshairscale
slider match GZDoom, including allowing it to slide down to 0 for unscaled. - Draw crosshair at 1:1 scale when
crosshairscale
is 0, just like GZDoom. - RR: initialize the bowling lane displays after loading a savegame.
- try to address some occasional crash with chickens on the bowling lane.
- Duke: Increase the precision of the angle in
handle_se00()
. - Duke: cleanup of weapon draw code.
- Improved crosshair drawing that factor's in look_ang better I've had stashed away for a little bit.
- Duke: Call
movetransports()
before processing any player movement. This simply works much better, transitioning from above water to underwater and vice-versa is interpolated, smooth and seamless. - complete transfer of vk_hdr fix from gzdoom (was missing the shader component)
- Duke: added an ammo check to the chaingun firing loop. With weapon switching disabled it would not stop firing.
- don't print negative ammo numbers on the Duke HUD.
- renamed several of RR's sprites, mostly related to the chicken processing plant.
- unlimized two map resources - cyclers and ambient tags.
- scriptified the remaining controller sprites.
- scriptified activators and locators.
- scriptified the respawn controller.
- only print texture resolve errors in debug builds.
- scriptified the sound controller.
- scriptified canwithsomething, the last internal STAT_STANDABLE item.
- Duke: fixed long standing problem that pressing Escape or walking backwards does not switch off the camera view.
- scriptified viewscreen and camera.
- scriptified touchplate
- scriptified doorshock
- scriptified the waterdrip
- scriptified the bolts.
- scriptified the trash actor.
- converted the masterswitch.
- scriptified OozFilter + Seenine
- scriptified the fire extinguisher.
- scriptied the cracks.
- scriptified the trip bombs.
- refactored Duke's cactus.
- scriptified the scraps. The were a Duke-ish mess of epic proportions.
- flammable actors scriptified.
- scriptified Dukes water fountain. That's this thingy in the first corridor of E2L1.
- Duke: scriptified the crane
- Blood: updated nnexts with the parts not related to the condition rewrite.
- added 'foreach' loop to ZScript.
- use a TArrayView to store the wall references in a sector.
- adding some intrinsics to ZScript.
- Vector 4 in zscript
- garbage collector fixes
- fixed: when deactivating the app, pausing the sound system should not depend on the game's internal pause state.
- Duke: Use player's pitch sine rather than tangent when throwing a pipebomb while crouched. This maintains the feel of the weapon by having the pipebomb roll along the ground.
- handle a visual glitch in Duke's E2L1 via compatibility. There is already code to deal with this automatically, but this does not manage to fully eliminate the problem.
- Add option to (experimentally) unclamp the view pitch for the Duke family of games.
- Duke/RR/SW: Pitch-adjusted velocity for all player weapons
- added true level compatibility map processing and deleted all related map hack code.
- removed the MHK for Route66's coffin.map. This was actually a render bug that was fixed long ago, so the edit is no longer needed.
- added a MHK for RR E1L1 to fix a render glitch in the barn.
- added a quick hack to move a misplaced vertex in RR E1L1's barn.
- renamed getzsofslopeptr to calcSlope and removed one redundant inline.
- Duke: use player palette only on the foot weapon.
- Duke: New setup for blood splatters against walls, taking full account of the float precision.
- renamed RR’s weapon sprites to match their weapons
- added a GZDoom-style alternative HUD.
- pushmove rewritten.
- silenced lots of warnings for deliberate type conversions.
- rewrote getzrange. Not using any old Build code anymore. Aside from the trivial stuff this uses code from Doom and SW instead.
- Duke: Move Duke-exclusive code from
PlayerHorizon
struct intodisplayweapon_d()
and clamp tangent to handle high pitches. - allow entering cheats in the chat editor without using '#'.
- hitscan fully rewritten.
- added LinePlaneIntersect
- rewrite from scratch of neartag.
- replaced try_facespr_intersect with something independently written.
- Clean up the availability detection of
kdialog
andgxmessage
in POSIX sources. - got new CVar system from GZDoom.
- Fix broken paths in default configuraiton on Unix
- SW: fixed savegame pic generation corrupting the actor list. This case missed the call to PostDraw which is responsible for cleaning up some temporary data.
- SW: when an actor is killed, all attached ambient sounds must be deleted. Not only did the sound not stop but what happened here was very much undefined behavior as the ambient sound retained its pointer to now undefined memory.
- Exhumed: gave local variables in FindWallSprites meaningful names
- normalize the timer with the app start, not the epoch.
- un-deprecated the integer MSTime variant. Due to undefined downconversion rules from double to int, there is no way to safely downcast the return from MSTimef, meaning the function is completely useless for retrieving integral time stamps.
- refactored coordinate display to have a single unified printing function.
- hack to fix bad door definition in RR E2L7.
- several backports from NBlood
- Exhumed: exported a handful of missed messages to the string table
- unlimited the displayable sprites. Now with Polymost gone this can finally be done properly.
- do not overwrite a textures sky cap color.
- animation precaching cleanup. No need to handle animations on the game side. markTileForPrecache already handles this - now also for oscillating animations.
- rewrote nextsectorneighborzptr with a better parameter interface
- replaced spriteheightofsptr with a method in DCoreActor.
- updatesector* cleanup. Got rid of all remaining Build code in here, stripped down the wrapper interface and moved everything into a separate header file.
- replaced sectordist with a floating point variant with better precision.
- replaced getclosestpointonwall_internal with a floating point version based on NearestPointLine.
- cleanup of 3D viewport code. Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
- made fov change for RRRA's drug mode work.
- refined wall sprite check so that orthogonally aligned sprites are only aligned to orthogonal walls.
- Duke: clear all collision flags from generic controller sprites
- Don't adjust joystick pitch/yaw speeds based on whether autorun is enabled or not.
Raze 1.5.0
- Blood may not abort on a bogus start position.
- Fix crash when exiting with no game data
- fixed render order of non-orthogonal wall sprites.
- glslang compiler and Vulkan backend update.
- fixed automap angle in unrotated mode.
- added workaround to render the crane in WT's 'Docks' map correctly. This one violates engine specifications by creating overlapping walls when the crane is rotated.
- SW: changed fullscreen HUD to display all 8 keys without gaps ans overlapping.
- fixed crash in Last Warrior map 9.
- for Raze hud_aspectscale needs to default to true
- Support for the DOS end-of-game text screens in Duke and SW on non-Windows systems.
- Force synchronised input when
cl_capfps
is true. - fixed sky panning. This picked the wrong overload - to make things robust one of the functions was renamed.
- Duke: Interpolate
loogcnt
when drawing onscreen. - Duke: Change a few return types from int to bool in HUD code.
- Duke: Interpolate
access_incs
when drawing onscreen (security card usage). - Duke: Interpolate
tipincs
when drawing onscreen (tipping the dancers). - Duke: Interpolate
knee_incs
when drawing onscreen (stomping on shrunken enemies). - Duke: Interpolate
fist_incs
when drawing onscreen (hitting the nuke detonator at the end of each level). - Duke3d: smooth movement of recons.
- Duke3d: make actors set to move vertically in CON act as if SFLAG_SMOOTHMOVE was explicitly enabled
- Duke: fixed some crashes with bad map setups
- fixed level number for RRRA's travel animations. First level is 1001, not 1.
- ported secret hack for WT's map 11 from SW Redux.
- removed redundant setting of black shadow color with incorrect data check.
- Remove
m_filter
option from the menu. The remainder of the removal will come from a backend sync with GZDoom. - Add bool
lock
toPlayerHorizon::settarget()
when setting target from the ticker without having to call setters and resetters. - Interpolate FIRELASER trails.
- fixed wall sprite clipping
- fixed: FSkyVertexBuffer::RenderBox did not reset the object color after finishing.
- SW: added interpolation for sine wave floors.
- SW: fixed shadow positioning.
- Duke: Add CON support for Duke Nukem 3D 1.1 Shareware.
- Duke: Fix CON parser to detect shareware scripts.
- helpers for wall sprite rendering improvement
- fixed parsing issues in secret hint system.
-renamed spritetype’s owner field to ‚intowner‘ Mainly for easier searching. - function for checking wall sprites’ need for recalculation
- RR: clear jaildoors array on map start. This was leaving stale data behind which could cause nasty crashes.
- several more Blood fixes copied from NBlood
- blood: GetHighestSprite fix
- blood: fix velCeil calculation
- blood: SetupGibWallState fix
- blood: add missing case in OperateSprite
- dd self check for burning cultist fix
- Renamed checkFired6or7->checkLitSprayOrTNT
- Reset thinkTime for kDudeModernCustomDude
- Set inittype on actSpawnDude()
- Check enemy type when adding to enemy level count. Fixes count issues with respawning enemies
- Initialize viewbob members for playerResetPosture()
- Fix kDudeModernCustomDude may not morphing during specific events
- Renamed dword_138BB0 -> gCultTeslaFireChance
- stretch HUD flames in widescreen
- shadow positioning improvements from NBlood
- Blood: fix delirium being twice as fast
- Exhumed: pin death arms to the right side of the screen
- added wipe transitions to screen job. Mainly to have the crossfade, the other styles are mostly bonus.
- add proper scoping to the cutscene code, which needs to run in UI scope.
- music system improvements
- Zip64 support
- fixes for menu scaling on ultrawide screens
- Mac default paths fixed
- pass shade values to sky renderer
- fixed bad search path setup on macOS
- don’t crash on sector-less walls.
- lock cvar shader uniforms behind a command line parameter for now
- Duke: set game palette before rendering the automap
- improved the secret hint management for Blood. This now uses sprite and sector indices directly instead of encoding them into a larger number. Sprite secrets will use a $t prefix instead of $s now.
- fixed sprite indices for map spawned sprites.
- optimize fcos and fsin to use the BAM value directly for table lookup.
- add level names to title bar (and by proxy, to RPC)
- add gl_satformula == 2 - an optional 'more accurate' desaturation
- implement discord rich presence, expand window title code. (still wip)
- copy-paste is simultaneously the most useful feature in the world, and a programmer's greatest curse. use with care.
- only overwrite rpath if not already defined
- add $ORIGIN to rpath for Linux
- Fix tesla cultist prone state
- Blood: fix crashes when trying to exit from a fatal error during startup. soundEngine can be null here.
- added script exports for Duke's main structures.
- added scripting exports for the global map types and a few more actor utilities.
- do not call tileUpdatePicnum for voxelized tsprites.
- Blood: fixed bad marker check in OperatePath
- Exhumed: Properly fix interpolation issues when at the end of the level instead of trying to back up everything.
- fixed bad assumption about g_visibility == 0 meaning fullbright.
- avoid pointer arithmetic in feebtag.
- fixed bad filter name for DukeDC's SSI variant fpr 1.5
- fixed validation issue with maps that have a wall with nextwall == -1 and nextsector > -1.
- made DCoreActor's properties functional.
- SW: remap LIGHT_Tics to the otherwise unused spritetype::detail instead of the Z-coordinate.
- do not update the sector for sector effectors moving themselves.
- SW: bumped two hard limits because there's maps out there that exceed them.
- partial engine floatification.
- use full precision math for rotating sectors in Blood.
- Duke: changed animation storage to be independent of the animated values' types.
- SW: changed sector object interpolation to be independent of the interpolated values' types.
- use a method for setting wall coordinates when loading a map.
- use an access function for reading wall positions so that we have a non-modifiable value wherever this is possible.
- Fix ceiling panning angle
Raze 1.4.1
This is a bugfix release addressing the following issues:
- handle walls where a sloped floor intersects with the visible part.
- handle wall sprites on orthogonal walls better, covering the case that a wall sprite may overlap two walls with a slight deviation in their position - always pick the closest one.
- fixed handling of badly placed sprites in map validation code.
- fixed inverted logic when checking for dragged sectors in the renderer.
- fixed sky tiling in Polymost.
- Exhumed: avoid accessing undefined memory when loading the sounds.
- Exhumed: fixed surface collisions of projectiles. There was some commented out undefined behavior here, we need to properly define this case.
- Exhumed: removed erroneous target assignment in Anubis AI, leading to infighting.
- Exhumed: Add save game option to in-game menu.
- Exhumed: did some reshuffling on the menu to allow adding a "User map" item and prevent accidental reset of ongoing games, both the items for starting the campaign and the training map are now in a submenu.
- Blood: fixed bad alignment flags for HUD flames.
- WW2GI: fixed gamevars not being allocated for map spawned actors.
Raze 1.4.0
What's new:
- added custom postprocessing shader support using the same system as GZDoom.
- the new renderer is now the default after fixing most of the outstanding issues.
- added interpolation for several special sector movement effects in RR.
- added interpolation for Exhumed's UI.
- experimental new light modes, based on GZDoom's original light modes. (new renderer only, these do not work with palette emulation.)
- better handling for disabled autoaim in Duke/RR.
- major internal rewrite to remove the limits of map items. Actors have been consolidated into garbage collected objects, like in GZDoom.
- added a user map browser.
Details:
- Exhumed: fixed check for bad ending cutscene.
- added guards against badly defined skies.
- Blood: do color highlighting for trigger messages, like NBlood does.
- enable Bloom and SSAO menu options.
- gracefully handle when a map tries to exit twice. This case left a broken ScreenJobRunner behind which later crashed on garbage collection.
- Exhumed: use proper distance calculations when spawning weapon flashes. The cheap distance approximation here tended to fail on longer walls.
- Exhumed: Avoid playing the same pickup sound while another copy of it is already active. The pickup code here is not robust enough to play the sound only once per pickup.
- allow a bit of tolerance for attached orthogonal wall sprites. We have to account for mappers adding some 'safe' distance (which isn't really safe!)
- do not use floor sprites for splitting geometry. because this is way too expensive on maps with lots of sprites. Instead, run them through the case for slope sprites which should be sufficient here.
- removed all uses of nexttoward in Polymost. Taking a hint from EDuke32 here, the performance increase is absolutely massive with this function gone from the innermost loops.
- proper maintenance of the depth bias state.
- Duke: Directly check the backend input code's
crouch_toggle
to always remain crouched after pausing, even if the first tic doesn't have input. - do proper handling of the 'no shadow' case for Duke's bad guys. Using a flag like RedNukem instead of hacking dispicnum, which occasionally does reach the renderer and causes problems.
- fixed floor sprite normals.
- Duke: hardened the sound controller a bit by flagging the callsound call from doanimations as most likely terminating. This allows avoiding unnecessary sound repeats on some doors.
- Nam: don't draw the icon for weapon 7 on the HUD. This is just a blue square. In RedNukem it isn't shown, but there's no special code for it.
- fixed NAM's sniper rifle. This was using one of WW2GI's apl* variables, but shouldn't.
- Add a new
Duke!ZONE II
grpinfo definition so that the copy supplied from Zoom which ships with a 1.5 copy of Duke 3D can be found. - Don't do an animated transition for Duke's credits menu and don't redraw the background for RR/RRRA's credits menu.
- Exhumed: Mark in-game menu as animated so its interpolation works properly.
- RR: address a missing texture in E1L2.
- RR: interpolate moving furniture.
- RR: interpolate jaildoors and minecarts.
- Nam/WW2GI: use the console font for the generic message display. The small font in these games is not usable because it is too small, too ugly and not extendable for localization.
- Platoon Leader: Set explicit sky offset for the third episode's orange sky.
- Exhumed: interpolate the menu items when zooming.
- Exhumed: use the loop flag when starting music.
- Exhumed: interpolate the scrolling map.
- Exhumed: Don't force the framerate to reduce to ticrate at end of each level, instead interpolate player's position to prevent draw errors.
- deal with bad start sectors. The engine will now try to find a proper sector in the map loader if there's a mismatch.
- fixed main game resource detection for Blood to allow loading modified blood.rff versions.
- added handling for slope sprites
- RRRA: fixed typo in portal setup.
- fixed handling for wallsprites on walls.
- added precise render mode like in GZDoom.
- Duke/RR: added fudging to work around aiming randomization issues with the pistol when autoaim is off. Solution is the same as in RedNukem/EDuke32: do one hitscan directly in aiming direction and if that hits a sprite, use it as aiming target.
- Hack for Exhumed: palette 4 does not fade to black so sprites should not have shades above numshades.
- Duke: make camera actors temporarily invisible before rendering a scene. Mainly needed for voxel/model replacements of the security camera sprite.
- major fixing on new renderer.
- added a user map browser.
- fixed music lookup for user maps. This was only looking for real files, but instead needs to check the file system. The game directory's content will always be part of that so other checks are counterproductive.
- added libtess2 for better sector triangulation
- match alignment of NPOT flat textures to the software renderer. Tested in RR E1L4, sector 224+40,.
- added a warning for multiple sectors referencing the same walls. RR E3L1 contains such a setup, for example.
- Add
hud_showmapname
to the HUD Options menu to allow easy disabling of it if its not desired. - SW: fixed accidentally inverted colliision check in DoMirvMissile.
- fixed: voxel culling must take sprite flipping into account.
Raze 1.3.1
This is a bugfix release addressing a few issues found with 1.3.0
- SW: fixed sound listener angle for the remote control case. It was taking the angle of the rotating sector object instead of the angle from the listener's position to it.
- Blood: make sure that invalid face sprites don't get rendered at all.
- fixed: in palette emulation mode, assume all textures to be non-translucent.
- Exhumed fixed bad parameter to getzrange causing player fall through sprite bridges.
- fixed logic for discarding walls in new renderer.
- fixed OOB write in section splitting code.
- Add OpenGL ES to the backend options in the menu.
- fixed triangulation via node builder for sectors with invalid walls causing spurious crashes.
- GLES: Fix depth bias state
- GLES: Fixed palette emulation mode and interpolation
- reordered the init calls in engineLoadBoard. Sprite lists must be done after preparing the arrays, otherwise important bits get overwritten.
- Duke/RR: Fixed sprite validation checks in animatesprites.
- Duke: Ensure all weapon variables used for interpolation have the
o
values set when CON updates them. - Duke: Fix lotag signedness issue affecting SE10 (door auto-close).
Raze 1.3.0
This new release contains several bug fixes and some major internal restructuring for getting better scripting capabilities into the engine at a later date.
- Blood fix some major issues rendering modern features largely inoperable in 1.2.x.
- Blood: Backport GDX fix for lighter just appearing when switching to the aerosol.
- Duke/RR: strip trailing spaces off strings parsed in CON.
- properly macro-fy parsed strings from Blood's INI.
- Blood: Fix TNT pickup accidentally equipping player with voodoo doll.
- Exhumed: fixed bad interpolation setup in AddFlow, plus some variable renaming.
- enable depth clamping in GLES backend
- Duke/RR/SW: Fix several crashes when noclipping out of the valid map area.
- Make a number of CVARs in
gamecvars.cpp
saved as part of the global config:cl_weaponsway
cl_viewbob
cl_interpolate
cl_slopetilting
cl_showweapon
cl_syncinput
cl_hudinterpolation
cl_loadingscreens
- fixed camera textures breaking in SW when restarting a level.
- fixed bad sector being chosen for rendering in maps with sector overlaps.
- added .ssi to the list of known extensions for container files.
- fixed handling for cl_capfps and cl_nointerpolate to never use any smoothratio value other than 1.0.
- Blood: don't play the same looped sound multiple times on the same actor. This caused some strong echoing on E4M6.
- fixed center aligned rendering of 2D content. This calculates the centered pivot point in integer texel coordinate space so for odd numbers it must round down instead of using a fractional position.
- fixed animated voxels in new renderer.
- fixed assignment of map hacks with multiple maps assigned. The parser only ever added the last MD4 but not the others.
- fixed translucent voxel rendering.
- make upscaling of sky textures depend on the single tile size, not the entire composite texture.
- fixed sky rendering in paletted sectors for Polymost.
- [Blood] Fix self collisions for lifeleech projectiles
- [Blood] Match view height clamping behavior to 1.21
- Change out of box default of
cl_runmode
to 0, which allows the bound run key to act like an autorun negator. - SW: un-flag mirrors that got smashed. The new renderer cannot check tilenums.
- SW: Tidy up use of
cl_nomeleeblur
use within panel code. - address issues with key down/key up events being sent in the same tic not having an effect on game actions that require a key being held down.
- Make screenjob valid keys for skipping ignore the Alt key as its used for modifiers, and special keys like the screenshot bind.
- flush the network timer right after loading and before starting a level. Without this the entire load time may get registered as skipped frames.
- Exhumed: flag the main menu as animated. This is needed for the plasma display to animate properly.
- Duke: Fix issue where calculated value for old player variable
return_to_center
could have been negative, causing undefined behaviour. - Add support for Duke Nukem's Penthouse Paradise as shipped with the Zoom release of Duke Nukem 3D Atomic.
- Patch in registry detection for Duke 3D Atomic + Expansions from Zoom on Windows.
processMovement()
. Removecl_exhumedoldturn
CVAR and tidy up numeric literals in use.- Build: Promote
sintable[]
array values to precision Blood uses. - Blood: Fix horizon adjustment for death camera to avoid Fixed > Float > Fixed conversion.
- Exhumed: Don't run through the slopetilting math if the view is locked.
Raze 1.2.1
This is a bugfix release to address two crash/softlock issues with the GLES renderer:
- fixed uninitialized light index variable for floor sprites causing spurious crashes in GLES.
- disabled palette emulation for the GLES backend. Right now the shader does not support it and will require significant redesign to work well with the target hardware. This could softlock the engine.
New features:
- Add cvars to control automap line alpha and thickness
- activated Polish translation
Other fixes:
- Blood: added 0 checks to all divisions for calculating dudeSlope. This could crash if a dude had itself set as target.
- use correct math to access a texel's center for rendering voxels.
- Blood: fixed savegame handling for most recent 'modern' extensions. This added more states which were not handled properly
Raze 1.2.0
This new release brings several new features:
- full internationalized fonts for all games
- enabled language options for already complete languages (DE, PT, RO)
- optional advanced weapon interpolation for Blood
- GLES backend for better low end hardware support
- enabled the text screens when quitting Duke and SW.
- update of Blood's 'modern' features to the latest version of NBlood
Detailed list of changes:
- Duke: Use
DeferredGameStart()
instead ofChangeLevel()
incheatLevel()
to instantly warp to the targeted map, matching DOS behaviour. - fixed bad serializers for vec2_t and vec3_t.
- Exhumed: Avoid masking bits into the sector index as well.
- Exhumed: Avoid masking sound flags into the sprite index.
- Exhumed: fixed sound origin in DoRegenerates.
- split off the extended sprite flags into their own word.
- flag sprites for automapping regardless of the 'automapping' variable's value.
- Attempt to fix music replacement definitions again. Store per-map music replacements in a TMap, and perform the replacements after parsing the MAPINFO
- do not crash on badly defined walls where the end point is missing.
- core shader override block, backported from GZDoom.
- Blood: fixed super secret notification on the level summary screen.
- Duke: fixed some incorrect cutscene playback speeds.
- SW: fixed recursive saving of panel sprites
- clear pspAsArray at the beginning of a save/load operation, not at the end.
- SW: avoid crashing when unwinding from a savegame loading error.
- Duke: fixed a few places using a sprite index where a player index is needed.
- Duke: don't process input when not in a game.
- Duke/RR: Fix clearing of weapons for RRRA E2L2 that should only be done for RR.
- Fixed bug collecting lifeleech with ignited tnt/spray
- Skip CheckProximityWall when newSectCheckMethod is set
- Blood: don't abort the INI scanner if it finds a file with resource file index 0.
- Remove early return from
GrpScan()
that was allowing addons to come through even if they weren't valid. - Duke: Correctly mark
Duke: Alien World Tour
as a Duke add-on. - fixed: List menus still allowed to select unselectable items with the mouse.
- Fix issues with self collision on MoveMissile()
- Add modern map kViewEffectSpotProgress support
- Blood: Fix handling of QAVs defined as loopable while interpolating.
- Blood: Implement
defineqav
DEF parser with hookup to game-side code. - Blood: Fix teleport triggers not updating player angle
- Added new cl_bloodvanillaenemies CVAR
- Improved GetClosestSpriteSectors() detection
- Blood: removed redundant STAT_Update call in StartLevel.
- Don't trigger fall scream after player has died
- Fixed burning cultists switching type in water
- Fixed glitched burning enemy state
- Fixed burning Caleb using innocent burning sprite
- Exhumed: fixed incorrect CD tracks being played through cutscenes
- Exhumed: fixed crash when ending the game.
- call ColorMatcher.Pick instead of BestColor when remapping a voxel.
- avoid calling the node builder to triangulate degenerate sectors.
- Duke: fixed sound lists for E4 intro cutscene.
- Exhumed: fixed bad arguments of BuildGameoverScene.
- Tweaked next/prev weapon behavior underwater
- flag SW's cutscenes as 'boss death only'.
- Fix ignited spray/TNT issue when going underwater
- added means to define resource IDs in all container formats allowing long file names.
- Blood: Expose legacy 1.0 weapon handling game option as a CVAR.
- fixed detection of Steam's Duke3D on macOS
- Blood: Restore originally intended
isRunning
code that never worked behind two CVARs to offer an alternative playing experience. - Blood: Perform interpolation of menu's blood dripping.
- validate 'nextsector' fields on walls.
- set currentLevel before calling engineLoadBoard. This is needed if the compatibility patcher needs to alter mapinfo data.
- Blood: fix potential view sprite overflows
- Blood: fix view sprites overflow in ROR code
- Blood: fix OOB issue in aiPatrolSetMarker
- Blood: fixed path validation for cutscene files.
- fixed bad operator grouping in cheat code.
- quote argument for sending cheats from the chat editor.
- fix crash issue with empty VOCs.
- Duke/RR: Call Bowling lane reset code only when playing RR.
- adapted the Zip root folder eliminator to deal with archives that do not add proper folder records to their central directory.
- adapted cheat input handler to treat spaces as '0' when entering parts of numeric fields.
- Blood: fixed parser for 'mario' cheat to treat a leading space for the level number as 0.
- Rides Again: Possible array index by -1 in Proj_DoHitscan(). Added check to prevent this.
- handle newly activated 'unused' fields properly for serialization.
- Build: Change
MAXSPRITESONSCREEN
from constant of 2560 to 1/4 of MAXSPRITES. Mods like Blood's Eviction are pushing these limits hard. Bumping the onscreen limit resolved recurring crash onsstation.map
with no apparent ill-effects. - Blood: Add some nullptr checks to the
aiPatrol*()
inline bools. - Blood: Fix ammo colour for status bar and first fullscreen HUD.
- Blood: Repair some missing nullptr checks causing a crash upon reloading after dying.
- fixed initialization pf upscale state properly.
- Add leading zero to
statFPS()
output (vid_fps
) so that the text doesn't bounce continually when alternating between 10 ms and <10 ms. - Pass the missing fullscreen flag when creating a Vukan window.
- SW: Remove
gi->FreeGameData()
from game as its inside code wasn't freeing game data but level data already freed ingi->FreeLevelData()
. - Capitalise
CPART07.AR_
andCPART15.AR_
inProcessOptions()
. The original files are in capitals and this is important as POSIX systems are case-sensitive. We can't cater towards every use-case but this should cover most bases. - Duke: Ensure
gi->NextLevel()
sets the skill level upon invocation. - Ensure
g_nextskill
is used everywhere so that setting skill for next level works properly. - Blood: Capitalise
Blood
for 1.0 and 1.1 grpinfo definitions for consistency. - Blood: Fixed grpinfo declarations for Blood 1.0 and 1.1 as per wildweasel on the forums: https://forum.zdoom.org/viewtopic.php?f=358&t=67220&start=45#p1149216
- Blood: Hide
Multiplayer
from the menu. - Blood: Lock input after setting angle/horizon targets in nnexts.cpp code, then unlock in
ProcessInput()
whereresetForcedSyncInput()
is called. - Allow ticker to lock input to player's angle and horizon without having to force use of synchronised input.
- Blood: Restore original horizon algorithm in
trPlayerCtrlSetLookAngle()
and adjust to Raze's backend input code. - Blood: Make delirium rotscrnang smoother with use of more precision.
- Blood: Fix angle issues with NHIS.
- Blood: Add nullptr check for
actor2
inProcessTouchObjects()
. - Fix menu strings and missing class declaration for
VideoOptions
. - added 'endofgame' CCMD. Not really good yet, but it does what's needed, i.e. write out the statistics for the current session.
- Exhumed: Move key display on
DrawHUD2()
to accommodate larger ammo display for M60 withcl_showmagamt 1
from 2a8e636. - Exhumed: Extend 7b8dcde by showing the M60's clip/magazine amount available when
cl_showmagamt 1
is set. - Exhumed: Move pistol clip/magazine recalculation code that was added in 593bbe1 from
FillWeapons()
toCheckClip()
. - Exhumed: Change M60's clip/magazine capacity from 99 to 100 to better match the max ammo capacity of the weapon. This does not increase the player's available ammunition.
- Exhumed: Make
FillWeapons()
fill the ammo count to the maximum allowed by the game for all weapons (300). - allow palette emulation for indexed hightiles.
- support for indexed hightiles.
- Allow CON-based games to have multiplayer episodes filtered from menu.
- Exhumed: Ensure
FillWeapons()
recalculates the pistol clip amount after filling. - Exhumed: Make use of
cl_showmagamt
. - relaxed consistency checks for VOC files. Rampage Warrior contains a few sounds that failed validation so this check does not exist in the original 3D Realms sound code.
- Blood: fixed order of initialization for voxels. Just like Shadow Warrior it needs to load its voxel table before .def files.
- fixed texture lookup for hightile lookup. Not all commands had the proper flags to also look in the root folder.
- SW: Create inline function
pspPresentRetractScale()
to scale the rate at which weapons present and retract based on the current tile's height vs. the original asset's height. - fixed crash when parsing malformed .def file
- Remove some remains of Redneck Deer Huntin'.
- Use
isWW2GI()
in more places. - Use
isNamWW2GI()
in more places. - Use
isRR()
in more places. - Use the new
isSWALL()
wrapper everywhere. - SW: Set default skill level to match original release and what the manual says is default.
- SW: Ensure
PANEL_SPRITEstruct
'sox
/oy
values are in the save data. - SW: Declare and initialise variables in
pWeaponBob()
vs declaring and initialising later on to reduce warnings about variables being uninitialised. - Optimise
fFindDistance2D()
to multiply by inverse rather than divide by a constant. - SW: Rename
cl_smoothsway
tocl_swsmoothsway
and enable by default - SW: Factor out bob coordinate backups.
- SW: Factor out panel interpolation backups;
- SW: Factor out repeated panel coordinate math into inline functions.
- SW: Remove fixed-point math from panel x/y coordinate updating.
- allow external replacements of SW's 3D Realms logo to use their own palette.
- disable texture name truncation for textures/ directory.
- don't attempt to decode animation frames at offsets beyond the end of the current page.
- SW: Promote
PANEL_SPRITEstruct
'sxorig
/yorig
values from int to doub...
Raze 1.1.3
Bugfix release with many improvements. Notable inclusions are:
- Indexed hightile support.
- Better parsing of .INI files in Blood mods to ensure that they're valid.
- Game files on UNC paths supported.
- Repaired weapon switching for Blood.
- Alt weapon switching in RRRA fixed.
- More robust DEF parsing.
- Loading maps via
-map
command-line argument fixed. - Hitscan-only autoaim available for SW.
Full changelog:
- Fix menu strings and missing class declaration for
VideoOptions
. - Update
language.0
file. - Update
language.csv
file. - Merge in part of 783b94f to fix build.
- added 'endofgame' CCMD.
- Duke/RR: Always ensure player's
wantweaponfire
is reset to-1
after switching weapon. - Blood: Repair weapon switching issue by adding missing guard from nukeykt/NBlood@6980e8b that got lost during e375c79.
- Allow CON-based games to have multiplayer episodes filtered from menu.
- Repair incorrect method call to
IniFile
class from 6576adb. - Blood: validate .ini files before using them.
- allow palette emulation for indexed hightiles.
- support for indexed hightiles.
- fixed texture lookup for hightile lookup.
- Backend update from GZDoom.
- fixed crash when parsing malformed .def file
- fixed endless loop in replay gain analyzer when getting passed music with an unhandled sample rate.
- SW: Set default skill level to match original release and what the manual says is default.
- Remove useless code introduced in bad17f2
- Check for maps with bad setup of their wall lists.
- SW: fixed countermeasure for empty lower skills
- SW: added countermeasure to re-enable lower skills on mods not implementing them.
- Duke: Fix BOSS2 (Cycloid Emperor) killing himself issue by removing some lines left behind from a2e3bb5.
- Repair some potential issues from 1354d52 that might be causing issues with #455.
- don't attempt to decode animation frames at offsets beyond the end of the current page.
- add hitscan only autoaim for SW.
- shortened the message for not found game data and restrict to non-Windows systems.
- Display game data path when no game data files are found
- zero-terminate the buffer for reading Blood's INI files.
- For Unix systems, ensure that the root of the player's .config directory is scanned for content, not just subdirectories.
- Merge pull request #436 from Calinou/add-ambient-light-setting-gui
- Duke (RRRA): Fix alt weapon slot for
CHICKEN_WEAPON
andCROSSBOW_WEAPON
. - streamlined and fixed game startup with '-map' option.
- Fix maps loaded from the command line starting with corrupted sectors.
- Fix
-map
command-line argument not working. - Blood: Revise 6018213 and use the proper volume flag
VF_HIDEFROMSP
to hide multiplayer episodes from the menu. - Blood: Don't parse BloodBathOnly levels in the INI loader.
- added missing widescreen sprite for RRRA's bike
- added credits for all widescreen tile contributors to AUTHORS.md.
- use a slightly higher depth bias for translucent elements.
- map fix for Hickston Swamp (RR mod) E1L3:
- RR: fixed crash in function that handles acts of mass destruction (like blowing up gas stations.)
- fixed crash when trying to triangulate broken sectors.
- re-added line of code that got lost during refactoring.
- RR: fixed the bowling lane lights.
- restrict lookup of engine/engine.def to the main game files.
- depth bias fixes.
- fixed sprite exclusion logic in getzrange.
- wall sprite positioning tweaks.
- fixed: Floor sprites must set their view orientation.
- properly render geometry that's fully shrouded in fog.
- enabled saveloadconfirmation menu option.
- Duke: avoid clipping against self when executing script logic for floor sprites.
- let Twin Dragon load the regular sw.def file.
- use the same formula as Duke to offset SW's shadows in Polymost.
- removed bogus assert in SW's track setup.
- added the out-of-bounds vertex handler to the secondary triangulator as well.
- add some hackery to deal with WT's bosses.
- fixed new renderer's use of fog on skies: The palette value from the wall was used instead of the one from the sky plane.
- removed the multiplayer scoreboard screens.
- allow UNC search paths on Windows
- don't skip lines when an empty one gets deleted.
- don't let the triangulator choke on empty sectors.
- fixed 'pause' keybinding control was disabled in the menu.
- sector splitting hack for SW $bath.map.
- delete lines in proper order when eliminating a pair.
- fixed: When the node builder is used for triangulation, all zero-length lines must be eliminated first.
- Fix off-by-one error in group search
- Resolve raze.pk3 via search paths
- Fix buffer overflow at maploader.cpp:392
- Raze must still use zmusiclite due to license restrictions... :(
- moved libvpx and libsmackerdec to more fitting places, plus some project cleanup.
- silence float truncation warnings for explicit casts.
- PNG 16 bit support from GZDoom.
- optimized the wall drawer a bit to avoid repeated calls to the render API's deoth bias function.
- fixed flickering floor sprites.
- fixed typo in line segment culler.
- fixed precision issues with GetClosestPointOnWall for orthogonal lines.
- fixed bad argument count in ScreenJobRunner.Validate call.
- fixed BunchInFront to do a more thorough comparison in case it encounters colinear walls.
- when using the node builder to triangulate sectors we must delete overlapping walls.
- use a higher depth bias for non-orthogonal wall sprites.
- removed the indirection for the global arrays.
- Destroy FStartupScreen before initializing video
- re-enable flat sprite rendering.
- new renderer: take fog properties for walls and ceilings from the proper elements.
- RR: fixed double negation in pitch math when throwing dynamite.
- SW: fixed sector transfers involving a portal for real this time.
- fixed typo in wall sprite offsetting code.
- this crash was handled by nothing more than an assert...
- render free standing wall sprites without depth bias.
- fixed bad array of arrays access in sector splitting code.
- Blood: handle title screens so that mods changing the original one still display it.
- Clear CMAKE_REQUIRED_FLAGS if backtrace facility isn't found
- new renderer: draw the fog layer for skies.
- SW: fix sector property transfers involving a portal.
- added missing declarations for RR's intro movies.
- backend update from GZDoom.
- Exhumed: Don't autoaim backwards.
- new renderer: handle light level underflows.
- handle the wall sprite clipping properly.
- removed redundant menu initializsation in M_StartControlPanel.
- new renderer: fixed bad positioning when a y-flipped wall sprite had to be clipped to floor or ceiling.
- Blood: unpositioned sounds must be limited to one per channel.
- added 'load' and 'save' CCMDs.
- pause the game when app is not active.