Added getter and setter functions for handling whether or not the player fields should be gotten/set. Added MRF_KEEPARMOR flag to prevent stripping armor on morph. Optimized unmorphed Actor by setting it to NoInteraction and removing it from the blockmap and sector lists.
Players will now use their Alternative field to check if they're morphed instead of their MorphTics. This makes the current state of morphing more reliable, otherwise setting this to 0 manually without unmorphing could have very odd results. Both monsters and players consider 0 morph time to mean infinite now (previously this only applied to monsters). Player unmorphs no longer die in the case of a failed unmorph on death. Removed inventory swapping on player pointer substitution as it's too messy to do here.
Removed StaticPointerSubstitution in favor of a much safer function that only changes select pointers. As a result the ability to properly modify morphing has been opened back up to ZScript. Many missing virtual callbacks were amended and MorphedDeath has been reworked to only be called back on an actual morphed death. MorphedMonster is no longer required to morph an Actor. CheckUnmorph virtual added that gets called back on morphed Actors. Fixed numerous bugs related to morph behavior.
View offsets are now added after the base position and angles (accounting for interpolation) are calculated. Behavior was centralized into a singular tracer that all view offsets now use to prevent clipping out of the map. Cleaned up camera rendering behavior. Angles are now properly normalized after all offsetting is accounted for. The chase cam can now update in real-time instead of forcing interpolation.
No longer relies on last input fraction to determine offset on frame (now uses TicFrac). No longer modifies Actor angle in real-time. Fixed offsetting breaking when other viewports are being renderer.
Attempt to fix#2403 by assigning E4 music to Doom 1 E4 maps, and adding a SNDINFO lump with $musicalias commands, which will use the existing songs if a custom E4 soundtrack isn't available for Doom 1.
commit ad25b50089b6e01b8e4291e34cfe3a008af9128d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:12:46 2024 -0500
Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."
This reverts commit d2c2c93cf1.
commit 8537f0d8db804f0076b90daa66b750e44dccf44c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:12:41 2024 -0500
Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."
This reverts commit dc897eacc0.
commit d45f6ebf11f31d246f2de4f3bbd11f7970783125
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:10:21 2024 -0500
Revert "Restored r_orthographic behavior."
This reverts commit 26908f5bc5.
commit be0836feef9b95f12828eeed4319c726ef13780d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:09:15 2024 -0500
Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."
This reverts commit 08b03e6b19.
commit 688288a9199b912203022cb4db37503f6270e0c3
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:09:06 2024 -0500
Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."
This reverts commit d3405837ce.
commit 72b7df9fa1841d665c2846dd31a89c6f48123e55
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:08:59 2024 -0500
Revert "Restored r_orthographic behavior."
This reverts commit e171f4eb6a.
commit aa954132bf29f2f8a51bf09dae127e5ffe2c5670
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:08:48 2024 -0500
Revert "Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works."
This reverts commit c8a7507e8e.
commit 3ce90e87a3a9956b615995b57b90619e89bbcff4
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:00:46 2024 -0500
Revert "Cleaning up implementation of isometric camera with optional orthographic projection."
This reverts commit 25f1407228.
commit 3aafd363e40c8d1d2ebbe3c61aeb2b80a74e565a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 11:59:25 2024 -0500
Revert "Small change to SpectatorCamera actor."
This reverts commit 2b555d7556.
commit a41911f8907731c098de71ca3e14261ac432ec8c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 11:59:16 2024 -0500
Revert "SpectatorCamera can now follow the 'tracer' actor. Also added a 'lagdistance' property for lazy follow."
This reverts commit 7fbb4cd06c.
commit 19398edd065b7b483b8c7be42cb16026695e241a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 11:59:05 2024 -0500
Revert "Minor addition toe SpectatorCamera. Added three chase modes to lazy follow. 0: Catch up until tracer is centered again. 1: Same but don't move if tracer isn't moving (camera moving when character is not is jarring). 2: Stop chasing if tracer is closer than lagdistance. Game modes benefit from a 'center camera' button but that doesn't have to be hard-baked into the engine."
This reverts commit c3ca564cfc.
All CVars, mapinfo variables, and playerinfo/playerpawn variables are gone.
A Camera actor named 'SpectatorCamera' is defined in warsrc/static/zscript/actors/shared/camera.zs
The following new flag bits were defined in the 'DViewPosition' struct for use with actor->ViewPos in src/playsim/actor.h:
VPSF_ALLOWOUTOFBOUNDS = 1 << 3, // Allow viewpoint to go out of bounds (hardware renderer only).
VPSF_ORTHOGRAPHIC = 1 << 4, // Use orthographic projection.
VPSF_ISOMETRICSPRITES = 1 << 5, // Displace sprites towards camera and don't billboard (drawn from isometric perspective).
Basically, spawn a SpectatorCamera actor with the appropriate flags and set it to player.camera.
See example template: https://www.mediafire.com/file/fv8rytayjt9l6g1/isometric_actor_wads.zip/file
Has been tested with multiplayer death and disconnection (and respawns). Not tested with portals.
Still only works with hardware renderer (mostly). But should be compatible with older mods and libraries.