Commit graph

199 commits

Author SHA1 Message Date
Christoph Oelckers
faf98684a3 - rewrote cliptrace.
Completely new implementation reusing nothing of the original.

# Conflicts:
#	source/build/src/clip.cpp
#	source/core/gamefuncs.cpp
#	source/core/gamefuncs.h
2022-11-07 12:19:54 +01:00
Christoph Oelckers
8415079e32 - fixed compilation. 2022-11-07 12:19:54 +01:00
Christoph Oelckers
fe56d2345d - always use the float version of keepaway
Does not work yet - movement is significantly different that the int version
2022-11-07 12:19:52 +01:00
Christoph Oelckers
66e6d166d6 - floatified part of clipmove that pushes the caller away from obstacles 2022-11-07 12:19:52 +01:00
Christoph Oelckers
b72283e9cb - updatesector interface cleanup. 2022-11-07 12:19:31 +01:00
Christoph Oelckers
3c72eb43f9 - split off one part of clipmove into a utility function. 2022-11-07 12:19:31 +01:00
Christoph Oelckers
c6e6b7c59d - got rid of the global compatibility modes and made 'precise' a parameter for clipmove.
This better reflects how this stuff gets used.
2022-11-07 12:19:30 +01:00
Christoph Oelckers
7ffa94d417 - move the clip object collection loop into its own function. 2022-11-07 12:19:29 +01:00
Christoph Oelckers
8baf4b539c - use BFSSectorSearch to drive the clipmove collection loop.
This gets rid of another bunch of both code and data.
2022-11-07 12:19:29 +01:00
Christoph Oelckers
fcdafd8a83 - moved the clip object storage into the clip object and floatified it. 2022-11-07 12:19:29 +01:00
Christoph Oelckers
c24251431c - float version of clipmove's slope sprite collector.
This could be simplified quite a bit by leveraging the info returned by GetFlatSpritePosition.
2022-11-07 12:19:18 +01:00
Christoph Oelckers
321eebc89d - float version of clipmove's floor sprite collector. 2022-11-07 12:19:17 +01:00
Christoph Oelckers
035ffdb733 - new floating point version of clipmove's wall sprite checker. 2022-11-07 12:19:17 +01:00
Christoph Oelckers
f6ad998e6b - float version of face sprite collector. 2022-11-07 12:19:17 +01:00
Christoph Oelckers
9d56bbdae9 - rewrote the remaining parts of clipmove's wall collector. 2022-11-07 12:19:08 +01:00
Christoph Oelckers
53a9dee485 - reimplemented the wall collision check for clipmove. 2022-11-07 12:18:00 +01:00
Mitchell Richters
33e2de70a2 - Duke: Pitch-adjusted velocity for shootrpg() when free-aiming. 2022-11-06 21:59:04 +11:00
Christoph Oelckers
93ca75e146 - got rid of the two intermediate functions between clipmove_tweak_pos and InterceptLineSegments. 2022-11-01 09:55:24 +01:00
Christoph Oelckers
01c114787c - eliminated the deprecated integer wrapper for 'inside'. 2022-11-01 08:38:40 +01:00
Christoph Oelckers
0c87bcb91b - renamed getzsofslopeptr to calcSlope and removed one redundant inline. 2022-10-30 16:51:40 +01:00
Christoph Oelckers
ce4a6fc7e3 - split off one part of clipmove into a utility function. 2022-10-30 16:51:40 +01:00
Mitchell Richters
914bec7d65 - Deduct the minimum angle epsilon from unclamped pitch ranges. 2022-10-30 16:51:39 +01:00
Christoph Oelckers
a0f18c360a - made some minor edits to clipmove to get rid of a few deprecated wrapper functions. 2022-10-30 16:51:37 +01:00
Christoph Oelckers
40271e15b3 - minor tweaks to checkOpening
mainly some extensions to let it replace cliptestsector.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
2190499d63 - pushmove rewritten. 2022-10-30 16:51:36 +01:00
Christoph Oelckers
902f8c9706 - silenced lots of warnings for deliberate type conversions.
The ones in d_net.cpp are not in active code.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
e83d0930bf - clean out the unused sintable stuff 2022-10-30 16:51:13 +01:00
Mitchell Richters
0600bf5860 - Negate everything to do with PlayerHorizon::__horiz where appropriate, including some loose horizoff members. 2022-10-30 16:51:11 +01:00
Christoph Oelckers
479c732a72 - moved some more things out of build.h 2022-10-30 16:51:10 +01:00
Christoph Oelckers
94b91f6ec3 - build.h cleanup
* moved krand and krandf into the games/duke folder because no other game uses them
* moved CVARS to gamefuncs.h.
2022-10-30 16:51:09 +01:00
Christoph Oelckers
8e9ddf370c - rewrote getzrange
Not using any old Build code anymore. Aside from the trivial stuff this uses code from Doom and SW instead.
2022-10-27 16:55:28 +02:00
Mitchell Richters
fc8c0b80aa - Clean up chase cam backwards scaling since we're now using floats of the same scale. 2022-10-25 07:07:14 +02:00
Mitchell Richters
3db6a38b4b - Make dragpoint() inline since its a wrapper for another function anyway. 2022-10-25 07:07:14 +02:00
Mitchell Richters
9dd27ee3a2 - Remove old integer dragpoint() interface that was used by floats in lots of places.
* Cannot wait until all the narrowing warnings can be re-enabled...
2022-10-25 07:07:14 +02:00
Mitchell Richters
5cc9774873 - Apply same signedness fix from - fixed signedness issue with slope sprite coefficient. to spriteGetSlope(). 2022-10-25 07:07:14 +02:00
Mitchell Richters
2e8e5f99e7 - Fix mixed X/Y pos subtraction in spriteGetZOfSlopef() and use a bit more of the backend.
* Confirmed coordinate mix-up when reviewing commit `- added spriteGetZOfSlopeF for the backend`.
2022-10-25 07:07:14 +02:00
Christoph Oelckers
310eff6e71 - clean out many wrappers. 2022-10-25 07:07:10 +02:00
Christoph Oelckers
f0dc95597b - deleted several unused wrappers and overloads. 2022-10-25 07:07:05 +02:00
Christoph Oelckers
3c3af06413 - deleted getincangle. 2022-10-25 07:07:02 +02:00
Christoph Oelckers
2ba68df27f - eliminate int_floorz / int_ceilingz in the backend. 2022-10-25 07:07:00 +02:00
Christoph Oelckers
6b579156aa - Blood HitScan fixes
- changed target parameter of hitscan to a double to simplify its handling.
- HitScan's nRange parameter may be an int, but it is in texel units, not Build units.
2022-10-25 07:06:56 +02:00
Mitchell Richters
1e19b32b59 - Add CVAR to allow unclamping the player's view pitch. 2022-10-25 07:06:55 +02:00
Mitchell Richters
8d3f3c6025 - Cut over to DAngle from fixedhoriz and remove the latter. 2022-10-25 07:06:55 +02:00
Mitchell Richters
5851c0f2c6 - Clean up some q16horiz usage and how the view pitch is clamped. 2022-10-25 07:06:53 +02:00
Christoph Oelckers
74cf9a2ff2 - hitscan fully rewritten.
No traces of Build code left here! :)
2022-10-22 20:41:27 +02:00
Christoph Oelckers
2991bc752b - split out the pure math stuff from gamefuncs.h into a utility header in 'common'.
Also did a bit of reshuffling on gamefuncs.h to group content better.
2022-10-22 20:41:26 +02:00
Christoph Oelckers
116ba340b2 - further hitscan overhaul.
* added floating point sprite intersect handlers for all sprite types. Hopefully this code is more understandable than Build's original variant.
* cleaned up intersectSprite a bit and moved the geometry math into the utility header.
* made some minor corrections to neartag.
* moved SW's testpointinquad to the backend because it was useful here.
2022-10-22 20:41:26 +02:00
Christoph Oelckers
09d66914f4 - LinePlaneIntersect
This is for calculating intersections with slope sprites later.
2022-10-22 12:17:04 +02:00
Christoph Oelckers
243c071834 - got rid of bsinf and bcosf. 2022-10-22 12:17:04 +02:00
Christoph Oelckers
6dd7fac902 - eliminated the sine table and moved tilehasmodelorvoxel to a different file to delete engine.cpp. 2022-10-22 12:17:04 +02:00