GZDoom is Unicode only - as should be the norm for any Windows application - and will not work when compiled as ANSI so there's no good reason to use this wrapper.
* Feature-complete isometric mode fork.
* Dithered transparency condition tweaks.
* Dithered transparency for non-corpse monsters only (and missiles).
* SpectatorCamera vertical shift.
* Including math.h in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).
* Defining MY_SQRT2 in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).
* Defining MY_SQRT2 in r_utility.cpp also to keep visual studio happy.
* retrigger checks
* Have correct sprite angle-frame face the camera with orthographic projection enabled.
* Dithered Transparency now works properly on 3D floors. Moved that dither-trans flag setting code within hw_bsp.cpp to handle double-processing of linedefs. Added helper functions to FRenderViewpoint class 'bool IsOrtho()' and 'bool IsAllowedOoB()' to clean up checks everywhere in the code.
* Fixed indents. Added bbox property to subsector struct and use it instead of BSP nodes and Clippers (creating a bbox around viewpoint and checking for overlap) in orthographic mode when no fog of war is active. Turns out to be much faster. Though you need really big maps (Winter's Fury MAP01) to see a difference in fps.
* Non-linux checks don't like uint. Changed to unsigned int.
* Small change of a float to camera.zs. Ignore for testing. Should make no difference.
* Update actor.h to remain mergeable
RF2_NOMIPMAP was introduced, so I had to displace RF_ISOMETRICSPRITES to next bit.
Fixed missing teleport specials when predicting. Added rubberband limit; if too far away from the predicted position, will instead instantly snap the player's view to their new spot. Deprecated cl_noprediction; this was pointless as you'd never not want to predict your position/angles. Fixed angle targets not being backed up. Fixed oldbuttons not being set. Updated menu
Gives more useful feedback as it's not obvious which node belongs to who.
Added line breaks to network messages for cases where a large amount of players are desynced.
When performing the ShadowBlock check, we previously would return a nullptr actor if nothing was between the monster and the player. This resulted in the monster aiming as if you didn't have invisibility.
Fall back to returning the target actor if it is shadowed but nothing is in between the two.
Now acts as a rubberbanding effect. The result is that movement is now considered correct and adjusted towards the real position if not rather than cautiously moving towards the predicted position.
If there aren't enough player spawns present in co-op, the game will instead fail to spawn extra players, waiting for the ticker to automatically capture the fact they have PST_ENTER. This presents a problem in WorldLoaded() where it becomes unreliable whether or not a player has truly spawned. This also means those extra players had slightly different spawn behavior compared to regular pawns.
View interpolation paths are now reset properly when predicting, fixing portals. Teleporters disabling view interpolation is now handled before every movement instead of only once at the start of predicting. Enabled FoV interpolation when playing online.
Fixed an off-by-one error on client IDs (these need to start at 1 as 0 is an invalid network ID). Morphing will now swap the client body's ID so it remains in the first 1 - MAXPLAYERS slots.
This is a minor fix for interpolation when playing online as predicted movement was not properly having its prev data reset like a real tick would be. This resulted in jittery player sprites in third person.
cleaned up function interface to avoid referencing the file system in the worker functions.
replaced StringTable's operators with functions.. The main reason is that these are far easier to look up when browsing the source.
This also fixes a premature translation in SBARINFO that was done in the parsing stage, not the printing stage.
This reverts commit 3033fafaa7.
Revert "Improved ZScript interface for morphing"
This reverts commit 6c64a4403c.
Revert "Further morphing clean up"
This reverts commit 12dc5c1506.
Revert "Fixed inconsistencies between player and monster morphing"
This reverts commit 30730647fe.
Revert "Reworked Morphing"
This reverts commit 2c09a443b4.
- fix compile
This is a combination of 2 commits.
Revert "New API for assigning unique network ids to objects"
This reverts commit e37c19b5b4.
This is the commit message #2:
Revert "Fix for Morph virtual"
This reverts commit 0ef042562e.
No longer picks a random spot on the first spawn but will account for players spawning in sequentially. No longer fails to return a spawn spot if every player is dead while respawning (instead it picks a random one).
The previous situation is unfortunately not sustainable; header pollution
isn't consistent across all non-Windows platforms. As a result, some of
the earlier includes may pull functions/types into the global namespace too
soon, and the later includes will have no visibility of them because they're
in a different namespace. Re-including the necessary one doesn't work
because include guards will prevent their re-inclusion, and it's not a good
idea to try and #undefine include guards now that we're in a new namespace.
This fixes the build on FreeBSD, and likely some other systems as well.
- If an actor crosses back over a portal because they're blocked, it will result in false positives.
- Fixed nodes not being targeted for aim direction.
- AMBUSH flag on nodes makes them blind and untargetable when getting `startnode` and `goalnode` for `FindPath()`. This is useful for indicating a node should be skipped when tele/portaling, so the current path can be preserved.
- Setup is simple: place nodes behind lines that tele/portal entities and mark them as AMBUSH.
Other changes:
- Restored global array since blockmap is not a viable option here.
- Added MAPINFO `pathing` flag which enables pathing by default.
- Added NOPATHING flag to disable pathing entirely, useful for maps that have pathing enabled.
- Added `ReachedNode(Actor mo)` virtual, responsible for handling node traversal.
- Nodes now make use of MeleeRange to limit their sight checking functions.
Extra safety to ensure dummy Actor deaths properly emulate a real death and aren't duplicate called. Fixed a crash when using the kill command while set to unmorph on death. Super morphing is now possible while using the morphme cheat if passing the morph class directly. Added a flag to ignore player invulnerability completely when morphing.
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.
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.