Commit graph

1838 commits

Author SHA1 Message Date
Mitchell Richters
b9ee6c327d - Change internals of bsinf() and bcosf() to use BAM sine functions instead of coverting build angle into radians, then into BAM. 2022-07-23 10:37:33 +10:00
Mitchell Richters
4324f923bc - Call updateTurnHeldAmt() after doing the turn, not before it. This gives one tic more preamble. 2022-07-23 10:37:32 +10:00
Mitchell Richters
e016f65321 - Don't adjust joystick pitch/yaw speeds based on whether autorun is enabled or not.
* Only SW did this out of the box.
* Duke never did, NBlood has no working joystick setup to compare with, and GZDoom doesn't either.
* Fixes #693.
2022-07-23 10:37:32 +10:00
Mitchell Richters
a423b93ad8 - Use turnscale in controller pitch calculations, which is only used in SW when on a sector object, and is original behaviour. 2022-07-23 10:37:32 +10:00
Mitchell Richters
78fcf2b4f0 - Move invertmouse and invertmousex CVARs from gameinput.cpp to inputstate.cpp.
* Old setup was inverting the entire player's horz/avel, even for joystick input while not inverting `mousemovex` or `mousemovey` at all.
2022-07-23 10:37:32 +10:00
Mitchell Richters
c68e112867 - Remove some unnecessary branching and abs() calls in processMovement().
* Since fvel/svel is clamped at the end of the function, these tests just aren't necessary.
* Reversed the logic in some if statements so the most likely outcome doesn't fall to the else branch.
2022-07-23 10:37:32 +10:00
Mitchell Richters
ea17352aea - Do some small tidying up in gameinput.cpp and change how some constants are stored. 2022-07-23 10:37:32 +10:00
Mitchell Richters
1906491129 - Move some PlayerHorizon/PlayerAngle class methods out into inlines in gameinput.cpp.
* These class methods did nothing with the objects inside the class, they worked generically so they're better as inlines.
* Also tidied up some of the internals so they're easier to read.
2022-07-23 10:37:32 +10:00
Christoph Oelckers
390cd2ca98 - fixed rendering of non-orthogonal wall sprites.
These cannot be done in a simple two-pass approach, for wall sprites attached to walls it requires doing the two passes per wall to ensure proper depth buffer coverage.
2022-07-04 09:11:24 +02:00
Christoph Oelckers
486da6922d - fixed automap angle in unrotated mode. 2022-06-28 22:33:53 +02:00
Christoph Oelckers
9e6fe2cbaa - added workaround to render the crane in WT's 'Docks' map correctly.
This one violates engine specifications by creating overlapping walls when the crane is rotated.
2022-06-26 09:36:01 +02:00
Christoph Oelckers
998def2487 - another backend update from GZDoom. 2022-06-06 15:28:41 +02:00
Christoph Oelckers
d2eaaf7ac1 - for Raze hud_aspectscale needs to default to true 2022-06-06 12:42:45 +02:00
Christoph Oelckers
84173ee09b - backend update from GZDoom.
The main bulk of this is the new start screen code. To make this work in Raze some more work on the startup procedure is needed.
What this does provide is support for the DOS end-of-game text screens in Duke and SW on non-Windows systems.
2022-06-06 11:45:34 +02:00
Mitchell Richters
20dde9fabc - Force synchronised input when cl_capfps is true. 2022-06-06 18:41:48 +10:00
Mitchell Richters
71fb91940d Revert "- Simplify PlayerHorizon::settarget() by adding a dedicated angle setter that resets interpolated value as well."
This reverts commit 0416834d9d.

Revert "- Simplify `PlayerAngle::settarget()` by adding a dedicated angle setter that resets interpolated value as well."

This reverts commit 5a550613f3.

Revert "- Add bool `lock` to `PlayerHorizon::settarget()` when setting target from the ticker without having to call setters and resetters."

This reverts commit 18541d1ab4.

Revert "- Add bool `lock` to `PlayerAngle::settarget()` when setting target from the ticker without having to call setters and resetters."

This reverts commit 1ac58dc41c.

* We need to ensure only the ticker can unlock the player's input if it's telling us to lock the input.
2022-06-06 18:41:45 +10:00
Mitchell Richters
0359d49df2 - Move repeated input code algorithm into an inline function. 2022-06-06 18:40:17 +10:00
Christoph Oelckers
e86899ed31 - fixed sky panning.
This picked the wrong overload - to make things robust one of the functions was renamed.
2022-06-06 10:12:26 +02:00
Mitchell Richters
dcf1c540e6 - Another amendment to 18541d1ab4 and 1ac58dc41c to ensure input lock is only set when we're running unsynchronised input. 2022-06-05 21:31:02 +10:00
Christoph Oelckers
f245a70883 - removed redundant setting of black shadow color with incorrect data check.
SetLightAndFog already does this, but with correct checks.
2022-05-30 23:05:37 +02:00
Mitchell Richters
990c8287fc - Amendment to 18541d1ab4 and 1ac58dc41c to reset inputdisabled once target is reached. 2022-05-30 22:13:42 +10:00
Mitchell Richters
612dd049f9 - Remove unused PlayerPosition structure.
* There were some plans around this being in use for all the various player structs in each game, but it hasn't come to be.
* Code remains in the commit history, it can come back if it's of use in the future.
2022-05-30 21:33:14 +10:00
Mitchell Richters
1ac58dc41c - Add bool lock to PlayerAngle::settarget() when setting target from the ticker without having to call setters and resetters. 2022-05-30 21:24:02 +10:00
Mitchell Richters
18541d1ab4 - Add bool lock to PlayerHorizon::settarget() when setting target from the ticker without having to call setters and resetters. 2022-05-30 21:22:24 +10:00
Mitchell Richters
5a550613f3 - Simplify PlayerAngle::settarget() by adding a dedicated angle setter that resets interpolated value as well. 2022-05-30 21:22:10 +10:00
Mitchell Richters
0416834d9d - Simplify PlayerHorizon::settarget() by adding a dedicated angle setter that resets interpolated value as well. 2022-05-30 21:21:52 +10:00
Mitchell Richters
70d2a8dc78 - Remove a seldom-used getTicrateScale() overload. 2022-05-30 21:06:32 +10:00
Mitchell Richters
7282e0d8bf - Remove multiple addadjustment()/settarget() overloads in favour of native binangle/fixedhoriz versions only.
* Simplifies these classes a bit.
* Better shows intent in actual game code.
* Removes unnecessary int to double conversions.
2022-05-30 20:35:41 +10:00
Christoph Oelckers
bd023b0b1c - fixed wall sprite clipping 2022-05-30 00:19:32 +02:00
Christoph Oelckers
1a788c9ba2 - helpers for wall sprite rendering improvement 2022-05-27 13:55:38 +02:00
Christoph Oelckers
5aabde1712 - fixed parsing issues in secret hint system. 2022-05-24 20:41:44 +02:00
Christoph Oelckers
aab13addb7 -renamed spritetype’s owner field to ‚intowner‘
Mainly for easier searching.
Also remove the duplicate ‚detail‘ field.
2022-05-24 00:30:41 +02:00
Christoph Oelckers
4278f0113b - function for checking wall sprites’ need for recalculation
Preparation for overhauling their rendering
2022-05-24 00:10:36 +02:00
Christoph Oelckers
af89c25151 - RR: clear jaildoors array on map start.
this was leaving stale data behind which could cause nasty crashes.
2022-05-22 09:28:12 +02:00
Christoph Oelckers
c82e80d152 - extended the read buffer for the 'secret' CCMD. 2022-05-14 21:48:08 +02:00
Christoph Oelckers
f6ae967c52 - fix bad asserts. 2022-04-29 08:40:00 +02:00
Christoph Oelckers
0dc670da8e - added wipe transitions to screen job
Mainly to have the crossfade, the other styles are mostly bonus.
This also adds proper scoping to the cutscene code, which needs to run in UI scope.
2022-04-25 17:26:17 +02:00
Christoph Oelckers
380864d6fb - pass shade values to sky renderer 2022-04-19 14:44:10 +02:00
Christoph Oelckers
6354c1889d - fixed bad search path setup on macOS
This cannot include „Raze“ in the app_support path strings because some of these parts point to elsewhere. The two places where it is needed must be explicit.
2022-04-19 14:02:51 +02:00
Christoph Oelckers
c4bfee070e - don’t crash on sector-less walls. 2022-04-19 13:39:26 +02:00
Rachael Alexanderson
761502d0b8 - lock cvar shader uniforms behind a command line parameter for now 2022-04-16 12:12:43 -04:00
Christoph Oelckers
26179c56cf - improved the secret hint management for Blood.
This now uses sprite and sector indices directly instead of encoding them into a larger number. Sprite secrets will use a $t prefix instead of $s now.
2022-03-20 12:47:23 +01:00
Christoph Oelckers
3b5203132f - optimize fcos and fsin to use the BAM value directly for table lookup.
No need to convert back and forth to rad.
2022-03-20 12:08:46 +01:00
Rachael Alexanderson
735740e453 - add level names to title bar (and by proxy, to RPC) 2022-03-18 05:06:58 -04:00
Rachael Alexanderson
da5d9fcde2 - implement discord rich presence, expand window title code. (still wip) 2022-03-18 04:17:46 -04:00
Christoph Oelckers
df7e6dfec8 - added scripting exports for the global map types and a few more actor utilities. 2022-02-21 00:12:51 +01:00
Christoph Oelckers
cc6629a95f - do not call tileUpdatePicnum for voxelized tsprites. 2022-02-20 23:36:04 +01:00
Christoph Oelckers
a1339f014c - store indices in sectionsPerSector. 2022-02-20 23:11:04 +01:00
Christoph Oelckers
f1859c69f0 - fixed bad assumption about g_visibility == 0 meaning fullbright.
This merely means that there should be no fog, but the shade must still be applied.
2022-02-19 11:30:35 +01:00
Christoph Oelckers
de1cbb9ee0 - fixed validation issue with maps that have a wall with nextwall == -1 and nextsector > -1.
In this case the bogus nextsector was not reset.
2022-02-15 22:47:53 +01:00