Skip to content

Raze 1.2.0

Compare
Choose a tag to compare
@coelckers coelckers released this 10 Oct 09:57
· 6815 commits to master since this release

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 of ChangeLevel() in cheatLevel() 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 on sstation.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 in gi->FreeLevelData().
  • Capitalise CPART07.AR_ and CPART15.AR_ in ProcessOptions(). 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() where resetForcedSyncInput() 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 in ProcessTouchObjects().
  • 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 with cl_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() to CheckClip().
  • 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's ox/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 to cl_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's xorig/yorig values from int to double to match x/ox and y/oy respectively.
  • zero-terminate the buffer for reading Blood's INI files.
  • dynamically adjust SW's menu spacing based on language.