Christoph Oelckers
a22634f228
- sectnum reduction.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
9213eae606
- deleted unused functions.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
6748a39c8f
- deprecate the sector index variant of pushmove
2021-12-26 23:09:43 +01:00
Christoph Oelckers
70d7e81f4f
- adapted getzrange to the new interface.
...
This was mainly removing game side solutions in favor of a common one in the backend.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
91e2391911
- adapted neartag in Duke.
2021-12-26 23:09:42 +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
9380819e4e
- initialize actorArray for all games.
...
- the foundation for an actor aware backend.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
52c80f187a
- added coreactor.h
2021-12-26 23:08:55 +01:00
Christoph Oelckers
a93dbaf5fe
- SW: simplified rotation interpolation functions.
2021-12-26 23:08:40 +01:00
Christoph Oelckers
33c707c708
- Duke: getangle simplification
2021-12-26 23:08:40 +01:00
Christoph Oelckers
94671c5b05
- MoveMissile + GetZRangeXYZ
2021-12-25 21:29:13 +01:00
Christoph Oelckers
759a8428fa
- dragPoint
2021-12-25 21:29:11 +01:00
Christoph Oelckers
7a7537961b
- Blood: remove GetWallAngle variant with index parameter
2021-12-25 21:29:05 +01:00
Christoph Oelckers
40ae38c173
- calcChaseCamPos.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
109ff8c3cb
- Above and Below
2021-12-25 21:29:01 +01:00
Christoph Oelckers
0b254255e2
- sector ambience
2021-12-25 21:28:59 +01:00
Christoph Oelckers
38d64fc437
spritetype::setsector
2021-12-25 21:28:57 +01:00
Christoph Oelckers
312b1fd39f
- cursectnum first half
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
2979fb9e03
- new access methods for spritetype and DDukeActor.
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
e034635e12
- migrated Blood's xsector and got rid of the static global array.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
993821b75f
- migrated Blood's other non-X sector properties.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
f7e61eeef7
- migrated Blood's portal links into sectortype.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
14907a9a97
- sector extension basics.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
94a37dfcdc
- extended walltype to directly manage Blood's XWALL.
...
Unfortunately this had to be done in the base class so that we can still maintain the walls in a global array.
The tradeoffs of better abstractions would be far too costly here than the added 16 bytes to the wall struct.
2021-12-25 21:28:47 +01:00
Christoph Oelckers
5cda292d98
- lots of search& replace actions.
...
This takes care of roughly 2/3 of the SectUser accesses.
2021-12-25 21:28:46 +01:00
Christoph Oelckers
32f141ad39
- XSECTOR::reference is gone.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
19f3365efc
- Blood: add x-access functions to spritetype and walltype.
...
This is merely a refactoring aid to get everything in a state that later allows merging these into one.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
47e207f158
- eliminated spritetype::index.
...
# Conflicts:
# source/games/sw/src/swactor.h
2021-12-25 21:28:38 +01:00
Christoph Oelckers
ae8e642785
- templated updatesectorneighborz to eliminate redundancy with updatesectorneighbor
2021-12-25 21:28:36 +01:00
Christoph Oelckers
0c83d299f2
- removed compat.h entirely, all that was left was redundant #includes.
2021-12-14 12:27:41 +01:00
Christoph Oelckers
4daad25e5c
- use WORDS_BIGENDIAN directly in place of B_BIG_ENDIAN
2021-12-14 12:27:41 +01:00
Christoph Oelckers
7c4233bcf7
- replaced fallthrough__ with [[fallthrough]] as we are requiring C++17 and don't need workarounds for that.
2021-12-14 12:27:28 +01:00
Christoph Oelckers
7e2431ebd8
- replaced the remaining content from compat.h
2021-12-14 10:15:58 +01:00
Christoph Oelckers
016a907c20
- replaced vec2_t with FVector2.
2021-12-14 10:07:06 +01:00
Christoph Oelckers
7546cf3a4b
- replaced vec3f_t with FVector3.
2021-12-14 09:58:01 +01:00
Mitch Richters
63a19bbb15
- Port spritetype::insector()
over from develop and use with sector nullptr checks in 6539d72663
.
2021-12-07 19:56:50 +11:00
Christoph Oelckers
00d54fa11a
- fixed return value of updatesector pointer variant.
2021-11-30 16:44:52 +01:00
Christoph Oelckers
64cad55d73
- fixed updatesector and changed updatesectorz to use the same search algorithm.
...
The initial distance check in updatesectorneighbor had a far too low threshold which would skip the breadth-first search for relatively small distances already.
Exhumed's LEV1 and Duke's Lunatic Fringe were the most obvious candidates where this could cause problems.
Changed to use a mixture of the original updatesector with the revised algorithm so that all immediate neighbors of the start sector will get visited unconditionally.
updatesectorz was still the original function from Shadow Warrior, this also was changed to use the same algorithm as uodatesector.
2021-11-30 00:15:25 +01:00
Christoph Oelckers
f765783437
- various small bits of cleanup.
2021-11-29 00:57:11 +01:00
Christoph Oelckers
d5a6be3d96
- cleaned up Duke's spawn code.
...
The paths for initializing a map placed sprite and spawning a new actor at run time are now fully separate aside from the actual initialization of the actor.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
baf36a321b
- inside, haskey and removed unused processmove functions.
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
7126aa22f4
- preparations in the map loader for dynamically sized data storage.
...
This also consolidates these parts for Blood with the other games.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
7b1345d3e5
- Exhumed: wall stuff in AddFlash
2021-11-29 00:56:24 +01:00
Christoph Oelckers
c79dace730
- eliminated sector[] in position checkers
2021-11-29 00:56:24 +01:00
Christoph Oelckers
b68c66dae6
-Duke/RR: started migrating hitscan to pointer usage.
2021-11-29 00:56:21 +01:00
Christoph Oelckers
730b7492cb
- moved bitmap_set and bitmap_test into clip.cpp and deleted unused inside_exclude_p function.
...
No longer used anywhere else and to be replaced with BitArray.
2021-11-29 00:55:45 +01:00
Christoph Oelckers
ae63bcd80b
- use BFSSearch in updatesectorneighbor.
...
The old bfirst_* helpers are gone now.
2021-11-29 00:55:45 +01:00
Christoph Oelckers
53998c9cb7
- Blood: remove unneeded replacement functions.
...
changespritesect is the only one called from the engine.
2021-11-29 00:55:42 +01:00
Christoph Oelckers
ad030d7e23
- Duke: SE20 + SE128 are wall-free
...
Also use symbolic constantfor SE_128 to make it easier to find.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
312bf5bf95
- Duke: use wall utilities in bounce and queball
2021-11-29 00:55:39 +01:00
Christoph Oelckers
0437d92f3e
- girlninj.cpp
2021-11-29 00:55:18 +01:00
Christoph Oelckers
ec9ab56ece
- use collision struct in ActorMoveHitReact
2021-11-29 00:55:03 +01:00
Christoph Oelckers
2a897c0582
- SW hit code abstraction.
2021-11-29 00:55:03 +01:00
Christoph Oelckers
642088ed80
- let ValidateSprite print better messages when developer mode is set to warning and also call it for Blood.
2021-11-11 21:28:53 +01:00
Christoph Oelckers
f2e344a235
- removed magic flags added to sector indices in Polymost.
...
These are better done as separate function arguments.
2021-11-11 21:28:53 +01:00
Christoph Oelckers
c46c8a68cd
- fixed nextsectorneighborzptr
2021-11-09 17:29:03 +01:00
Christoph Oelckers
a35900362e
- only use un-deprecated variants of updatesector(z) in SW.
2021-11-09 00:09:48 +01:00
Christoph Oelckers
94b2b0af31
- widen sector index in engineLoadBoard to 32 bit
2021-11-09 00:07:00 +01:00
Christoph Oelckers
762ebafc2a
- made clipmoveboxtracenum a function argument of clipmove
...
There’e zero need for hackery here.
2021-11-08 23:22:48 +01:00
Christoph Oelckers
0ffe52791e
- delete deprecated pushmove variants
2021-11-08 23:22:06 +01:00
Christoph Oelckers
4aa0477574
- make internal pushmove use a 32 bit sector index.
2021-11-08 23:17:40 +01:00
Christoph Oelckers
52a2862963
- removed the deprecated clipmove wrappers.
2021-11-08 23:15:05 +01:00
Christoph Oelckers
a5f51cfd88
- SW: migrate everything to the main clipmove function
2021-11-08 23:11:30 +01:00
Christoph Oelckers
16f9d4ec36
- got rid of COVERupdatesector
...
Not needed as it just forwards to the engine’s updatesector - and it gets in the way of other changes
2021-11-08 23:11:30 +01:00
Christoph Oelckers
2e1ff313b0
- Duke: only use the main clipmove function and match clipmove_ex’s interface
2021-11-08 23:11:29 +01:00
Christoph Oelckers
567d054d42
- remove unused clipmovex function, extend clipmove sector return to 32bit, mark obsolete clipmove variants deprecated
2021-11-08 23:11:29 +01:00
Christoph Oelckers
5510efd920
- removed TROR specific parts of updatesectorz
...
None of this is ever called, in particular the parts that muck around with the sectorindex and add magic bits to it.
2021-11-08 23:11:29 +01:00
Christoph Oelckers
eeaa7f98f0
- inlines for validating sector and wall indices.
2021-11-08 18:56:10 +01:00
Christoph Oelckers
477a2a23e6
- nextSector in runlist
2021-11-08 18:37:21 +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
fd2764dc6e
- Duke: eliminated all local short variables in actors*.cpp.
2021-11-07 16:30:55 +01:00
Christoph Oelckers
0eba3335c6
- eliminated some leftover 16 bit values used for storing indices.
2021-11-07 16:30:44 +01:00
Christoph Oelckers
a594e6465c
- added nextSector access function to walltype and used it to eliminate a few more sector[] references.
2021-11-07 15:56:29 +01:00
Christoph Oelckers
1c0e3d849b
- addressed the updatesector related deprecation warnings with Duke.
2021-11-06 20:46:08 +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
13306e900d
- silence some warnings.
2021-11-06 18:26:47 +01:00
Christoph Oelckers
83fe41e71e
- made updatesector receive a 32 bit int pointer and deprecated the 16 bit variant.
2021-11-06 15:53:16 +01:00
Christoph Oelckers
ba2d4acc18
- added a sector() method to spritetype.
...
For making game code working with sectors a bit easier to read.
2021-11-06 14:19:55 +01:00
Mitch Richters
f0a347263a
- SW: Replace use of getzrange_old()
inline wrapper with getzrange()
and remove inline wrappers.
2021-10-30 17:30:02 +02:00
Mitch Richters
add3481e40
- SW: Replace use of pushmove_old()
inline wrapper with pushmove()
and remove inline wrappers.
2021-10-30 17:30:02 +02:00
Mitch Richters
adcdbdc931
- SW: Replace use of clipmove_old()
inline wrapper with clipmove()
and remove inline wrappers.
2021-10-30 17:30:02 +02:00
Mitch Richters
879e2f3ce4
- Build: Promote sintable[]
array values to precision Blood uses in prep for replacing Blood's costable[]
.
2021-10-30 10:24:15 +02:00
Christoph Oelckers
c4ea5cf336
- restore original krand formula.
...
Note: The only game module actually using this is Duke/RR.
2021-10-26 18:48:54 +02:00
Christoph Oelckers
62d0d3712e
- use a sprite flag to mark mapped sprites.
...
This avoids another global array which needs to be addressed by sprite index.
2021-10-14 15:09:43 +02:00
Christoph Oelckers
7f485bfab1
- split off the extended sprite flags into their own word.
...
Some code overwrites the cstat field entirely (thanks Duke, for being sloppy with this...!)
2021-09-12 18:26:35 +02:00
Christoph Oelckers
0bd0923f44
- cleaned up some dirty code.
2021-08-30 08:07:40 +02:00
Mitchell Richters
4298399e00
- Build: Change MAXSPRITESONSCREEN
from constant of 2560 to 1/4 of MAXSPRITES.
...
* Mods like Blood's Eviction are pushing these limits hard. Bumping the onscreen limit resolved recurring crash on `sstation.map` with no apparent ill-effects.
2021-07-25 15:38:51 +10:00
Mitchell Richters
1dbf34fe56
- Repair some potential issues from 1354d52c05
that might be causing issues with #455 .
2021-07-04 21:06:13 +10:00
Christoph Oelckers
7fa690082e
- fixed cherry picked commit.
...
# Conflicts:
# source/core/gamecontrol.h
2021-06-02 20:52:47 +02:00
Brian Koropoff
e4e949877d
Fix buffer overflow at maploader.cpp:392
2021-05-22 22:31:16 +02:00
Christoph Oelckers
d572e56839
- removed the indirection for the global arrays.
...
No idea what part of EDuke32 needed this, but it is not necessary.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
d4eb54d686
- render free standing wall sprites without depth bias.
...
Otherwise they can end up badly ordered with walls.
2021-05-20 12:36:35 +02:00
Christoph Oelckers
5ae1c334fa
- Duke: fixed bad check in 'ifnotmoving' CON command.
2021-05-14 10:03:07 +02:00
Christoph Oelckers
b6dd834420
- fixed warnings in Build code.
2021-05-12 21:47:32 +02:00
Christoph Oelckers
7283de0084
- fixed some very noisy warnings in two headers.
2021-05-12 21:47:32 +02:00