Releases: ZDoom/Raze
Raze 1.1.2
- new renderer: Reset object color after processing a shadow.
- new renderer: clip wall angles before doing any math with them.
- Duke: fixed bad check in 'ifnotmoving' CON command. This caused some objects to not disappear, e.g. helicopters in NAM or cannonballs in Duke E4L4.
- SW: better handling for bogus ladders. Fixes the badly defined ladder in Wanton Destruction's first map.
- fixed issues with MAPINFO parser. These caused problems with map progression, particularly with Exhumed.
- properly terminate base64 data. This was causing spurious savegame loading issues.
Raze 1.1.1
This is a bugfix release addressing the following issues:
-
Blood: fixed null pointer crash in actBurnSprite.
-
SW: Abort GetInput immediately if no valid sprite is attached to the given player. This could crash the game when starting a new level.
-
Skip the load screen if the level is started from the console to allow immediate use of level-dependent commands.
-
handle savegame loads like GZDoom. They are synchronized with the game loop and should not be initiated directly from the menu.
-
route savegame requests through the newwork, just like GZDoom does. Fixes savegame indexing issues
-
SW: fixed signed-ness issues with SOP-related angle checks.
-
SW: fixed ammo pickup amount.
-
SW: replaced some asserts with proper value checks. These asserts can actually be triggered by some maps with incorrect setups.
-
fixed error message spam when trying to load a non-existent voxel using .def.
-
Exhumed: Fixed weapon swaying intensity, introduced by e76f63e
-
take down the savegame loader's resources in proper order.
-
clear the sky flag off two more sectors in WT's "Skyline" map. This addresses a mapping error that glitches to varying degrees depending on the renderer.
Raze 1.1.0
- new renderer as a preview. Use 'toggle testnewrenderer' on the console to enable.
- fully scriptable cutscenes.
- new cross-game MAPINFO format exposing all cutscene features.
- Vulkan rendering fixed.
. Duke: made the 'lonely effector' error non fatal. Instead just move the bogus effector sprite out of the way.
- added default crosshair for Exhumed.
- added support for the 3 missing Duke Vacation SSIs.
- added an option to dump the list of discovered games to a JSON file.
- fully updated the Vulkan backend.
- make all games return to the main menu when the game is ended with F10.
- SW: clear old user content before allocating a new one. If old data gets in here it may break the game.
- added a mapinfo dumper to get some workable starting point when editing existing map sets.
- added an intermediate data structure to decouple the rendering from the immediate map data. This will be needed for sectors consisting of disjoint parts and for providing some help with addressing rendering anomalies
- fixed issues with validation of command line specified main game GRP file name.
- Clear Viewpointbuffer position so it does not go to infinity
- renamed PlayerHorizon function to deconflict with the same-named struct
- Duke: fixed non-scrolling SE24.
- RR progression fixes. E1L7 abuses an 'end the game' command to progress to E2L1, this needs special treatment.
- added MAPINFO parser, based on GZDoom's, complementing the cutscene work.
- fully scriptified all in-game cutscenes and intro movies, this system is fully exposed to modding
- rewrote movie player so that the decoder backends only perform the decoding but do not draw the frames themselves. It made it impossible to let the client apply effects to the video.
- removed the 26 factor from Duke's par times.
- check r_precache in all games.
- added varargs pushv function to Array.
- simplified screen job setup where all elements can be skipped in one go.
- Remove max ammo fudging for when showing the magazine amount for Duke since it overrides ammo maximums set from CON.
- offloaded map patches to data files.
- fixed the check for RR's geometry effect. This always got triggered for Duke which made the entire map render 3 times. The most obvious effect was reduced translucency.
- corrected level number for RR's summary screen.
Raze 1.0.3
This is a bugfix release addressing two serious regressions in 1.0.2 and a few other minor issues
- SW: the intro's sound may not be paused when the menu opens.
- delete the "New savegame" node before starting work on the savegame. This caused an off-by-one issue in the displayed list.
- Exhumed: Make
SB_CENTERVIEW
work properly whencl_syncinput 1
is set. - RRRA: Fix bad vehicle speed clamp change from e79c6ba.
- Exhumed: When returning to center after going up/down stairs etc (slope tilting), don't use the backend's aim/look up/down return to center code as it's slower.
- RFS compatibility with GDX: The outermost path component can be left out.
- allow specifying a .def file in GAMEINFO. This will be loaded on top of the regular .def files and not replace them.
- fixed: the fullscreen color blends did not set their command's screenFade member. Since this remained 0, those blends lost their color.
Raze 1.0.2
This is mainly a bugfix release for 1.0.1.
One notable new feature is that the banner on the startup screen now works like in GZDoom.
- added a fallback generic record to grpinfo.txt for identifying Blood.rff based on content.
- gave key 7 a proper spawn record using the blue outline as image. A proper definition here is needed to allow dropping this item. The original code had a picnum of -1 here which caused crashes.
- cleanup of movie player code, migration to event interface.
- Screen Job refactoring to fix the volatile timer in there causing problems with the menu.
- split out the movie player into its own file.
- Duke: Clamp RRRA vehicle input in `processVehicleInput()`.
- Duke: Add `resurrected` flag to handle resurrection via cheating or when pissing in RR.
- added a filter to the directory loader to remove EDuke32's texture cache files. These cause problems with the texture manager.
- make map art work.
- allow specifying startup .con files via GAMEINFO.
- used the newly added game ID as reference for GAMEINFO to autoselect which game to start a mod with.
- added GameID field to GrpInfo. This is for allowing new features easier referencing of the various records.
- Exhumed: Redo player panning code, but guard it with cl_slopetilting as it does not work that well with mouselook.
- Exhumed: fix for moving on sloped floors
- added widescreen graphics credits to the Engine Credits menu.
- Blood: default skill is 3, not 2.
- fixed some bogus range checks in automap code.
- fixed the vertical offsets of the World Tour skies. They were rendered too low.
- added native support for Nightfright's Alien World Order" GRP generator.
- enable embedding of blood.rff and sounds.rff in mod archives when playing Blood Some mods provide pregenerated resources, this allows loading them without picking them apart first.
- Blood: add a dummy sound entry at index 0 so that no valid sound gets placed in this slot.
- Blood: fixed issue with INI detection when having content added by RFS files.
- added PlaySound CCNDs.
- Blood: fixed mixup of values 0 and -1 in sound code.
- added CHANF_FORCE flag for forcing non-looped sounds to start, even when sound is paused.
- make sure voxels are being precached.
- disabled the QAV preload calls in Blood. This is ultimately more harmful than useful as it forces loading of a large number of textures at the same time during gameplay instead of spreading them out.
- fixed texture precaching. After the migration to GZDoom's full backend this never created any textures when precaching things.
- fixed: alpha was never set for voxels.
- fixed palette setup for duplicate base palettes. Fixes #301 - Blood's invulnerability palette is identical to the base.
- activate the progress bar on the startup screen.
- make the startup banner in the initial console window work.
- Blood: undid restriction for original QAV for Guns Akimbo shotgun fix.
Raze 1.0.1
This is a bugfix release addressing the following issues:
- Blood: let the RFS parser handle forward slashes when cutting out the base directory of a given file name.
- better .def loading logic, allowing cumulative loading by using xxxx-raze.def, the old method still exists as fallback.
- removed the no longer used 'options' menu item graphic for Exhumed.
- fixed rffdefineid handler passing a bad file name to the backend.
- block manual advancing of intermission screens when already fading out.
- fixed item placement on SW minihud. Fixes #295
- fixed .def 'music' parsing. This was incomplete and just ignored Duke's special music, and the levelnum generation used an outdated formula so that it never managed to assign any music to the maps.
- fixed: extended sound lookup must check the sound/ folder.
- fixed extended music lookup.
- fixed: Vulkan did not define NPOT_EMULATION for its fragment shader, causing texture alignment errors, particularly in RR.
- enable the render backend switch for Vulkan in the menu.
Raze 1.0.0
Raze is finally out of beta!
Major new features in this version:
- Vulkan backend is finally working.
- Improved support for starting mods by dragging & dropping them on Raze.exe, primarily for Blood where .inis can now be autodetected.
- voxel rotation can now be used in all games.
Full changelog:
- implemented support for paletted textures to Vulkan backend.
- fixed invalidation of programmatic textures. This is only relevant for Vulkan because it stores the descriptor sets with the material, not the hardware texture.
- pad out the StreamData buffer to 16 bytes and avoid any form of conditional compilation here. Vulkan does not manage to get the shader properly compiled without this.
- always ensure that the global index buffer is not empty. This needs to be valid for Vulkan, even if it isn't used.
- block opening of the menu in the fade out phase of a screenjob and in Exhumed's map/intermission screens. At these places there's some inteference that can bring the engine into an unstable state.
- RRRA: Sector effector type 156 is not supposed to scroll the floor texture.
- SW: fixed interpolation for sector object sprites. When checking for an existing interpolation it needs to check the actual sprite, not just the interpolation type.
- Blood: disable look left and look right in the classic key configuration.
- strip out macOS resource fork folders because they can contain data that can confuse file detection.
- allow loading Zips where all content is in a subdirectory.
- autodetect .inis when loading Blood mods. This will allow dragging & dropping such archives without further user intervention.
- fixed some swapped parameters in status bar code.
- Fix undefined behavior/potential OOB access in ST_21_FLOOR_DOOR. g_AnimateGoal does not take a sector number, it takes an animation index, and caps at 1024, not 4096.
- fixed tileImportFromTexture. The parser read numbers with leading zeros as octal, which is not wanted here and texture lookup by file name must be forced for root directory entries.
- Duke/RR: Don't delete master switch sprites. The sound system may play sounds on them after their deletion so they have to be retained. Fixes #288.
- handle voxel rotation in the backend to enable it for all games. This was previously only present in the Blood module and missed in Exhumed from upstream so the entire option was rather pointless. Fixes #290
- disabled 'isRunning' in Blood entirely. After discovering yet another misbehaving place in the game I think it can be safely concluded that this is better left off unconditionally. Fixes #292
- fixed music in Blood's menu. This is only supposed to play for the fade-in of the background but needs to stop when the menu appears. Fixes #291
- added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. Fixes disappearing voxel switches in SW.
- sethorizon(): Ensure
SB_CENTERVIEW
bit is always cleared if horizon target is set. - gameinput.cpp: Block player input within
sethorizon()
andapplylook()
if target for each has been set by the ticker. Stops players having the ability to provide input and fight the system trying to set an input. - Further work within
PlayerAngle
andPlayerHorizon
structs following 39fe9ef and bf2d807. - Fix
Linux GCC 7
continuous integration target. InputState::ClearAllInput()
: Only clearcrouch_toggle
bool if outside of a level, and resendSB_CROUCH
sync bit if inside a level andcrouch_toggle
is true. Fixes #287.- Re-arrange
swaddons[]
const char array so that/gameroot
is picked up first following changes in f4b27bb. - binaryangle.h: Fix constexpr issue on GCC builds following bf2d807.
- Duke:
DoPlayer()
: EnsureSB_CENTERVIEW
bit is cleared when setting a horiz target from CON. - PlayerHorizon: Replicate changes to
settarget()
andprocesshelpers()
methods from 39fe9ef. - PlayerAngle: Adjust how
settarget()
methods store angle for unsynchronised angle adjustments and adjustprocesshelpers()
method accordingly. - fixed uninitialized clear color variable.
- updated the earcut.hpp triangulator. The old one wasn't triangulating the bathroom sector in DUKEDC2 properly, the bug got fixed upstream in the mean time.
- use clamp instead of bit masking to handle out of range interpolation factors for models.
- fixed: G_BuildTiccmd needs to clear the command struct. This could otherwise pick up some stray data from earlier calls and create bogus input. Fixes #97
Raze 0.9.1 beta
This is a bugfix release which addresses the following:
- Exhumed: refresh the status bar after loading a saved game.
- added replay gain management (experimental)
- change value range of module master volume in ZMusic.
- sort the game selection list by definition order in grpinfo.txt.
- allow game specific music names for all games supporting an Ogg-format CD audio soundtrack.
- Exhumed: fixed uninitialized variables in Queen boss when reloading a savegame.
- Blood: Fix bug when switching to another weapon from the spray while firing with primary fire won't switch to the new weapon. And telling Caleb not to put away his lighter if the spray is being switched to TNT.
- Blood: Do not put away lighter after TNT is thrown if while throwing the weapon was switched already to spray.
- Blood: Do not put away lighter if TNT was selected while throwing a spray can.
- Blood: Fix next/prev weapon
- fixed maphack loader.
- re-added the fix for the inverted card reader in Twin Dragon's Map 10.
- Blood: fixed typo in map loader that overwrote the floor y panning offset with its fractional part.
- added autodetection support for the ProAsm version of Wanton Destruction.
- added "swap mouse buttons" option to menu.
- transitioned voxel rendering to use the backend's implementation.
- Blood: Check the sound's internal loop flag when playing a sound.
- Blood: properly clip the gauge for throwing dynamite force instead of stretching it.
- Blood: commented out cultist dynamite code that should not be entered due to the 'isrunning' bug.
- Exhumed: fixed inventory use bindings
- address excessive view swaying in Blood.
- added menu entry for Exhumed's keyboard turning speed toggle.
- fixed size setup for most menus.
Raze 0.9.0 beta
- RR: Fixed meters on statusbar.
- SW: fixed saving of open doors.
- block Escape to toggle the console while AppActive is false.
- use real fog, even in palette emulation mode. Using the palette to apply fog is just far too broken and cannot be kept in check with all the hacks the Build engine allows.
- use local screen size variables in automap code.
- Exhumed: Set opos for all dynamically spawned sprites. This was causing interpolation glitches.
- SW: fixed crash with credits screen and CD tracks missing.
- fixed stale pointer access in Unix version of D_AddFile.
- Duke: fixed SE21 handler. This one is most prominently noticeable in WW2GI's first map where blowing up a crack has no effect.
- port over
-noautoexec
that I did from GZDoom - Exhumed: Replace original chasecam code with
calcChaseCamPos()
within game. - Blood, Duke & SW: Create new backend chasecam function and replace game-specific versions with it.
- All Games: Migrate each game's clock counter to backend solution.
- fixed autoaim check and adjusted presentation in the menu to be correct for all games.
- added protection against oversized menu caption bars. SWC20 is a mod that contains a caption that is larger then the entire screen and was pushing the actual menu content out of it.
- fixed: F2DDrawer::AddPoly was missing a texture validation check. This caused problems when the automap wanted to render portal planes, which normally use an invalid texture as marker.
- removed unused 'updatesectorexclude' function.
- Duke: Slightly tune
texty
inFullscreenHUD1()
to line it up perfectly. - Duke: Calculate the true font height of the numbers for alignment in the Statusbar. The original tiles are all 15 pixels tall, but depending on the games can vary in their true height, so use CheckRealHeight on them to get their true dimensions.
- fix inventory selector positioning in WW2GI.
- WW2GI: fixed event numbering. There is a typo in the CON files that assigns EVENT_AIMUP and EVENT_AIMDOWN the same number. The source did not replicate this which caused several events to call the wrong handler.
- Exhumed: Fixed key offsets.
- Exhumed: Ensure ox/oy/oz sprite positions are set when warping to coordinates.
- Exhumed: Tune x offset alignment in
DrawStatusAnims()
following changes in 220283d. - fixed hires lookup for tiles using special palettes. In these cases the palette needs to be ignored and the base version picked. The proper handling for this case was undefined, working in some cases and not in others.
- Duke: Repair jumping zvel issue originating from 5e45f98 for Duke and 1c5c90d for RR.
- SW: fixed issue with autoselecting single episode entries with non-empty subtitles.
- check for invalid tiles being passed to the 2D renderer.
- removed bad 'pos' setup in PreDrawStackedWater This was a) supposed to set 'opos' not 'pos' and is b) redundant because here both Users point to the same sprite.
- Exhumed: restored old static switch array. There's side effects in here that broke the door logic and made doors automatically open sometimes.
- RR: fixed player input for diving.
- 21:9 improvements
- Exhumed: Refined sector movement code so that pickups get always moved even when not touching the floor.
- Exhumed: fixed wall scrollers.
- Exhumed: changed MoveSectorSprites so it only moves sprites that actually stand on the sector's floor.
- Exhumed: fixed camera position interpolation.
- Exhumed: fixed scrolling floor/ceilings.
- Blood: Avoid integer truncation when updating player's sprite angle with actual angle of player.
- Build: Extend
spritetype
struct with interpolation variables and numerous methods to do with pos, angle and interpolation of such. - Exhumed: Update
inita
inUpdatePlayerSpriteAngle()
, allowing the removal of forced synchronised input while using the chase cam. - Exhumed: Fix player panning when walking up/down steps while horizon is 0.
- Exhumed: added interpolation for all relevant elements.
- moved setsectinterpolate/clearsectinterpolate into the backend.
- Blood: Fix glitched akimbo shotguns by removing code that needed to go with 182b802.
- Duke: Back up sprite's angle in ticker and interpolate in
gi->GetInput()
if!SyncInput()
. Sprite angle now works properly withcl_syncinput 1
. - Duke: Ensure an uninterpolated angle is sent to
DrawOverheadMap()
if playing with unsynchronised input. - Duke: Revert backing up of sprite's
ang
totempang
from be12da6 and subsequent interpolation of sprite's ang in 21da658 and directly update the sprite's angle ingi->GetInput()
like the other games. - Remove
hw_detailmapping
andhw_glowmapping
since they're no longer relevant with GZDoom's backend (they're always in an on state). - Duke (RR): Also fix location of
p->apply_seasick()
in the ticker as well. - Duke: Within
gi->GetInput()
, callp->apply_seasick()
afterapplylook()
as per the original code, and call unconditionally since its guarded as to whether it runs or not internally. Original spot only had it called if on a vehicle which wasn't right. - Duke (RR): Fix braking on vehicles which never got picked up.
- Duke: Remove newOwner check from cef1f82 & cb93560 that were just cancelling out each other, and clean up 2x
if (p->newOwner != nullptr)
checks into one. - Duke: Backport EDuke32 commits b1e3f3bcf9c5214ae835d09e12cc41bac4f057ce & 4c4fdd1f4ab9381b60db06f37ec270850599e1ae in relation to swinging doors.
- Duke: Fix flashing vehicle HUD when
cl_syncinput 1
is set. - Duke: Backport EDuke32 commit ac64e11553344084753cdd75abd898ec2c725a16 to fix buggy swinging doors, most apparent on E4L1.
- Automap: Put in framework to interpolate automap player.
- Blood: Move synchronised input call to
doslopetilting()
above call toresetForcedSyncInput()
. - Blood: Migrate game's slopetilting code to
calcviewpitch()
. - Blood: Don't use
cl_viewbob
to control bobbing overall, onlycl_viewhbob
andcl_viewvbob
as exposed via the menus. - Duke/RR: Expose
cl_slopetilting
via the menu. - Exhumed: Don't clear
localInput
when copying to backend packet. Exhumed works differently... - Duke: Comment out unused enum values but leave behind for reference purposes.
- InputState::ClearAllInput(): Call
resetTurnHeldAmt()
when clearing input. - Duke: Remove local calculation of
turboturntime
for RRRA vehicles in lieu of backend solution. - gameinput.cpp: Break out
processMovement()
's turnheldamt calculations into functions. - calcviewpitch(): Set
scaleAdjust
to default to 1 in prototype like other functions in gameinput.cpp. - calcviewpitch(): Fix issue with returning
horizoff
to 0 from negative slope. - Duke/SW: Consolidate each game's slopetilting function into backend solution.
- Duke: Store velocity scale in
motoApplyTurn()
as a variable likeboatApplyTurn()
. - Blood: Fix negative priority event processing
- Blood: Fix wrong sector path marker stat lookup
- downgrade overflow message to a debug warning.
- detection of alternative Twin Dragon GRP.
- Duke: Fix camera horizon when viewing the screen from in-game.
- Return to center using tangent of pitch, as per original games (Duke/SW).
- Exhumed: Made some adjustments to the status bar for original center alignment.
- Duke: use the same camera sprite selection logic as EDuke32 and RedNukem. This is the only one that makes some sense.
- Exhumed: The global variable holding the Ramses sprite index was not stored in a savegame. As a result it could result in the player facing an incorrect direction if this variable had not been set in a previous session.
- Duke: fixed: SE31's handler overwrote the interpolation coordinates, which rendered interpolation ineffective.
- explicitly disable mipmapping for indexed textures.
- Exhumed: only run the level init code after loading a save, not after saving.
- SW: fixed positioning of the inventory bar.
- Blood: only set 'isrunning' when the player is actually running and not when just the run key is held down. The old logic does not work because the run toggle results in this button being continuously held down.
- fixed: the statistics display didn't take the HUD's scale factor into account.
- RR: fixed inventory display overlapping the weapon bar in status bar mode.
- Blood: fixed double inventory display on overlay status bar.
- fixed: the file system's entry count was not updated before rehashing. This broke Blood's RFS parser.
- SW: fixed bad sector iterator causing crashes in DriveCrush.
- Exhumed: Torch bouncing fix
Raze 0.8.1 beta
This is a bugfix release addressing the following issues:
- Duke: fixed scrolling skies
- Exhumed: fixed loading maps with slopes
- Exhumed: changed default visibility to reduce the amount of depth fading.