Commit graph

2001 commits

Author SHA1 Message Date
Mitchell Richters
28b97486cd - SW: For single player games, call PlayerDeathReset() from TerminateLevel() and not DoPlayerDeathCheckKeys().
* This fixes issues where player stats like health, etc are shown onscreen as reset before the entire view reloads.
2022-12-11 19:46:27 +01:00
Mitchell Richters
b8a8164b24 - SW: Don't call DoSpawnTeleporterEffect() upon death.
* This causes an air bubble to spawn above the player for a single tic, even while on land until the level truly restarts.
* Since we're restarting, its better to just not do this.
2022-12-11 19:46:27 +01:00
Mitchell Richters
9b73f46aff - SW: Don't reset player pitch upon death.
* This _somewhat_ addresses #770 by hiding the effects of it.
* Since we re-init `Player::Angles` when a new actor is spawned, this all resets anyway.
2022-12-11 19:46:27 +01:00
Mitchell Richters
7d6eb2bae6 - Remove some pitch/yaw deltaangle additions in lieu of setting the angle directly.
* This deltaangle addition was needed with the old input setup.
2022-12-11 19:46:27 +01:00
Mitchell Richters
67b40ee1d5 - Convert angle in hud_drawsprite() to work on true degrees, and in the right direction. 2022-12-11 19:46:26 +01:00
Christoph Oelckers
97d76a01e4 - SW: do a proper implementation for sprites which do not want texture animations.
Instead of hacking the picanm table it is far more preferable to flag the sprite as non-animating and let the renderer handle it.
2022-12-11 19:45:38 +01:00
Christoph Oelckers
281b102fac - gave all textures that were accessed with their "#0xxxx" name a descriptive names.
Only the fallback fonts were intentionally excluded because these are supposed to get the ART file content.
2022-12-11 19:45:18 +01:00
Christoph Oelckers
e26d9106aa - handle all occurences of tileWidth and tileHeight using spritetypebase::picnum. 2022-12-11 19:44:01 +01:00
Christoph Oelckers
1258ddc551 - cleaned out tileHeight calls in SW's panel.cpp.
Direct access to tile numbers has been significantly reduced.
2022-12-11 19:44:01 +01:00
Christoph Oelckers
f479f995a1 - transitioned all tileLeftOffset and tileTopOffset calls to use the texture manager. 2022-12-11 19:44:01 +01:00
Christoph Oelckers
8b0e86e88b - wrap a few more accesses to picnum variables 2022-12-11 19:44:00 +01:00
Christoph Oelckers
ffa265ae1d - gave Blood's and SW's mirror/ROR tiles proper names. 2022-12-11 19:44:00 +01:00
Christoph Oelckers
e5225e98e0 - migrated SW's portal setup code to texture IDs. 2022-12-11 19:43:59 +01:00
Christoph Oelckers
fe3a32d692 - SW: fixed camera validation 2022-12-11 19:43:59 +01:00
Christoph Oelckers
a0722c55ea - removed canvas hack stuff from Buildtiles after cleaning up the mess in SW. 2022-12-11 19:43:58 +01:00
Christoph Oelckers
ede5b017ab - renamed walltype::picnum to wallpicnum for easier searching. 2022-12-11 19:43:58 +01:00
Christoph Oelckers
51ad64f71e - initialize all special tiles to their intended type before starting the game.
This ensures that we have an immutable mapping of tile number to texture ID now.
2022-12-11 19:43:58 +01:00
Mitchell Richters
2c592405fa - Separate pitch/yaw key input into separate functions and apply from the ticker. 2022-12-11 19:43:56 +01:00
Mitchell Richters
470b4efac8 - Remove PlayerAngles::setYaw() method usage and remaining associated code. 2022-12-11 19:43:56 +01:00
Mitchell Richters
491a42d2bb - Remove PlayerAngles::addYaw() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
7a7758efaa - Remove PlayerAngles::addPitch() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
968d0ae0d2 - Implement new scaled angle change setup and remove enforcement of synchronised input. 2022-12-11 19:43:55 +01:00
Mitchell Richters
9437ea9622 - Move input vector rotation for Duke and SW into the playsim.
* The next commit needs this to ensure the vector is rotated using the most current angle.
2022-12-11 19:43:55 +01:00
Mitchell Richters
15b101870d - Completely remove current scaled angle change setup.
* During this transition, temporarily enforce synchronised input at all times.
2022-12-11 19:43:55 +01:00
Christoph Oelckers
67e807de26 - exported the tile flag setters to .def. 2022-12-11 18:42:01 +01:00
Mitchell Richters
6c0493868e - Implement new method for applying scaled angle changes.
* This method works more accurately to how an angle change would occur under interpolated circumstances.
2022-12-11 18:42:01 +01:00
Mitchell Richters
5a8612110d - Process scaled angle adjustments in each game's render function, not from the input function.
* Previous config had the potential to call `I_GetInputFrac()` nearly twice in a row, which would have resulted in some hitching.
* Calling from each game's render function avoids the above and means we can start applying scaled angle changes one frame faster.
2022-12-11 18:42:01 +01:00
Mitchell Richters
2a284c73c9 - SW: Remove all remaining angle wrapper usage and the wrappers themselves. 2022-12-11 18:42:00 +01:00
Mitchell Richters
1aad5eacfa - Remove all remaining legacy wrappers. 2022-12-11 18:42:00 +01:00
Mitchell Richters
e972818db5 - Tidy up modern crosshair/weapon offset drawers. 2022-12-11 18:41:59 +01:00
Mitchell Richters
25de63ffb5 - Cleanup of render draw code to use new angle getter. 2022-12-11 18:41:59 +01:00
Mitchell Richters
599a375d67 - Rename DCoreActor::interpolatedangle() to DCoreActor::interpolatedyaw() 2022-12-11 18:41:59 +01:00
Mitchell Richters
abdeeac205 - Rework PlayerAngles::doViewPitch() to apply at ticrate like PlayerAngles::doViewYaw(). 2022-12-11 18:41:59 +01:00
Mitchell Richters
f9aeee5b4a - Split out view angle stuff out of PlayerAngles::applyYaw() into PlayerAngles::doViewYaw().
* Do all the view angle stuff as interpolated changes in the playsim as well, there's no need for these to be done at ticrate.
2022-12-11 18:41:59 +01:00
Mitchell Richters
d7d76d5fc4 - Move all PlayerAngles view angle properties into new DRotator objects. 2022-12-11 18:41:58 +01:00
Mitchell Richters
175b182805 - Invert rotscrnang so it rolls forward, consistent with all other angles. 2022-12-11 18:41:58 +01:00
Mitchell Richters
bef4536c1f - Remove old PlayerAngles backup/restore methods. 2022-12-11 18:41:58 +01:00
Mitchell Richters
630c10856e - Re-write PlayerAngles scaled adjustment methods. 2022-12-11 18:41:58 +01:00
Mitchell Richters
aa868232c8 - Clean up all previously annotated angle/yaw checks. 2022-12-11 18:41:58 +01:00
Mitchell Richters
a84e09048e - Change wrapper internals for current yaw to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
7f5b97a0b7 - Change wrapper internals for current pitch to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
850c988dfa - Wrap access to previous yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
be466fec8d - Wrap access to current yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
fd05d320ff - Wrap access to previous pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
15f1d89855 - Wrap access to current pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
60a97f781e - Add DCoreActor pointer as PlayerAngles::pActor, setting and nulling where the player's actor is set. 2022-12-11 18:41:56 +01:00
Mitchell Richters
b9f5bb71cc - Merge PlayerHorizon and PlayerAngle structs into PlayerAngles struct. 2022-12-11 18:41:56 +01:00
Mitchell Richters
d75ac9e445 - Rename PlayerAngle prototypes in preparation for replacement work. 2022-12-11 18:41:56 +01:00
Mitchell Richters
353c2a20fd - Rename remaining PlayerAngle methods. 2022-12-11 18:41:55 +01:00
Mitchell Richters
f305fbb370 - Rename PlayerAngle getters in preparation for replacement work. 2022-12-11 18:41:55 +01:00