Christoph Oelckers
d46a7abb0e
- better wall sprite handling.
...
When they are directly on a wall, project their coordinates onto the wall to eliminate the imprecisions from Build's ad-hoc setup.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
3fee8f3c4e
- replaced dragpoint (both the generic and the Blood variant) with a newly written vertexscan function.
...
This is a template allowing to run any task on a set of walls with equivalent start point.
Code was redesigned from scratch to be more clear than the existing variants.
The idea here is to reuse the base algorithm for other things that need to operate on the equivalent set of a given wall's start point.
2021-12-30 09:58:15 +01:00
Christoph Oelckers
6766a5922a
- pass actors to calcChaseCamPos.
2021-12-30 09:57:18 +01:00
Mitchell Richters
baf78848eb
- Replace spritetypebase
z
with pos.Z
calls and eliminate spritetypebase
pos
union.
2021-12-30 09:57:06 +01:00
Mitchell Richters
cecb8dc48e
- Replace spritetypebase
y
with pos.Y
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
33ca55023f
- Replace spritetypebase
x
with pos.X
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
09e00a69fe
- Replace walltype
y
with pos.Y
calls and eliminate walltype
pos
union.
2021-12-30 09:57:04 +01:00
Mitchell Richters
51b647da87
- Replace walltype
x
with pos.X
calls.
2021-12-30 09:57:04 +01:00
Christoph Oelckers
beddf1e1ca
- add slope sprite support to the new renderer.
...
Some fudging was needed to avoid positioning problems as the renderer is more sensitive to this than Polymost.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
6fd4d6d550
- ported slope sorite support from NBlood.
...
For Polymost only so far.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
df0c577cf4
- replaced most of numsectors, too.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
65bc6e6aef
- removed the now redundant wall() and sector() interator helper functions.
...
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
1edccf1423
- added slope setter methods to sectortype.
...
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
69593fd5c7
- Triangulation WIP
...
# Conflicts:
# source/core/sectorgeometry.cpp
2021-12-30 09:53:07 +01:00
Christoph Oelckers
838bed7800
- final cleanup of sectnum related stuff.
...
Made sure that remaining uses of sector indices are safe to be kept and deleted a few redundant functions.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
eaff9e359f
- refactored the owner index in tspritetype.
...
This is now a separate type from spritetype which contains an actor pointer instead so that sprite display can be handled without requiring a static sprite array.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
793dd032b0
- getzrange cleanup.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
183f554733
- hitscan cleanup.
...
Also removed a bit of leftover TROR code.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
f9b1164747
- use point2Wall wherever possible.
2021-12-26 23:09:48 +01:00
Christoph Oelckers
12f6b05cbe
- use access functions, all done by search & replace.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
6748a39c8f
- deprecate the sector index variant of pushmove
2021-12-26 23:09:43 +01:00
Christoph Oelckers
4788c7ba5e
- made Collision derive from a common base class and refactored clipmove to a single engine-side entry point.
...
Done for Doom so far.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
063e3fb34e
- changed parameters of several modern action functions.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
40ae38c173
- calcChaseCamPos.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
5e01841f1e
- MoveSector et.al.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
3bd1272e08
- sectnum removal step
2021-12-25 21:28:56 +01:00
Christoph Oelckers
22b2f64016
dukeplayer stuff
2021-12-25 21:28:55 +01:00
Christoph Oelckers
323b5441d5
— New utilities for better abstraction added.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
8cca55c24a
- made wall a TArray.
2021-12-25 21:28:50 +01:00
Christoph Oelckers
7d2404ce76
- made sector a TArray.
2021-12-25 21:28:49 +01:00
Christoph Oelckers
baf36a321b
- inside, haskey and removed unused processmove functions.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
9b6d6eb7f9
- sector[] in render interface
2021-11-29 00:56:30 +01:00
Christoph Oelckers
adf3133fdc
- use sectnum and wallnum to get an index from pointers instead of subtracting the array base.
2021-11-29 00:56:26 +01:00
Christoph Oelckers
4e31360fe4
- cleaned up dragpoint
...
This still contained some code for EDuke32's TROR and used a shared static global array.
It now uses the BFSSearch class to manage its bit array to unlimit the size of its working set and to avoid reallocation.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
7111b2470c
- SW: use BFSSearch in TraverseBreakableWalls
2021-11-29 00:55:45 +01:00
Christoph Oelckers
2a51e5eca3
- fixed: BFSSearch did not mark its start sector as added.
...
As a result it could be added twice.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
6fc43287b3
- redid Exhumed's BelowNear function.
...
Use BFSSearch, only run one iteration of the search and only run the search if the result is actually used.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
12c26976f0
- GetClosestSpriteSectors: replace distance calculation with proper math.
...
No need to sample multiple points along the wall if we can just properly calculate the actual distance. :)
2021-11-29 00:55:44 +01:00
Christoph Oelckers
d2f0934726
- Blood: cleaned up GetClosestSpriteSectors
...
using BFSSearch now and avoiding pointless loop to avoid setting the checked bit.
The entire outcome was just as if the bit was never checked inside the loop, so do just that when not running in compatibility mode.
This simplifies the remaining code quite a lot because it now just needs to run over all walls with no special case considered.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
5bb805663e
- Duke/RR: cleaned up the rest of hitradius* as well
...
Using wallsofsector iterator plus defining local variables more locally.
2021-11-29 00:55:40 +01:00
Christoph Oelckers
821f341e03
- use BFSSearch in hitradius_d
2021-11-29 00:55:39 +01:00
Christoph Oelckers
a29e6c084a
- BFSSearch class added
...
This was prompted by a bug that was recently introduced in one of the ad-hoc implementations of such a search.
Let’s better use a helper class to deal with the problems and help unify memory usage.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
01abe7b2ac
- addressed most unused/uninitialized variable warnings from MSVC.
2021-11-29 00:55:30 +01:00
Christoph Oelckers
b7465ab67b
- spriteGetSlope/spriteSetSlope take spritetype pointer arguments.
2021-11-29 00:53:41 +01:00
Christoph Oelckers
a79f7a3784
- SW: use a dynamic array to track already visited sectors in TraverseBreakableWalls.
2021-11-11 21:57:55 +01:00
Christoph Oelckers
6b6c3f26a5
- use wallsofsector in a few more places.
2021-11-07 18:08:22 +01:00
Christoph Oelckers
59df3b0e19
- added a little utility that allows iterating over the walls of a sector with C++ for's.
2021-11-07 17:27:05 +01:00
Christoph Oelckers
ae08ae1d8d
- some leftover shorts plus utilities that ended up unused but may be useful later.
2021-11-07 16:46:23 +01:00
Christoph Oelckers
d20aa47adf
- made sector parameter of updatesectorz an int and deprecated the short version.
2021-11-06 19:27:51 +01:00
Christoph Oelckers
ff0c4359e0
- deleted unused inlines.
2021-10-11 23:03:11 +02:00