Highlights:
- All game code has been transitioned from Build's mixed fixed point to floating point math
- several bugfixes
- a few of Duke's actor classes have been scriptified as a teaser for things to come
- experimental unlimited pitch, also giving Duke's weapons pitch adjusted velocity
- replaced a large bunch of Build utility code with newly written replacements
- NOTE: The Polymost renderer has been removed from this release. From now on we only support our new full 3D renderr.
Details:
- Attempt to fix #647. I'm guessing the `nWalls < -1` is a typo, and it should have been `nWalls <= -1` all along. I decided to write `nWalls < 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 into `displayweapon_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` and `gxmessage` 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.