Christoph Oelckers
4bc32e2777
- use actors in the sloped sprite utilities.
2021-12-30 16:11:14 +01:00
Christoph Oelckers
50a3089648
- eliminated tspriteptr_t and moved a few polymost-exclusive inlines into polymost.cpp.
2021-12-30 11:51:33 +01:00
Christoph Oelckers
44d2cc1951
- eliminated usectorptr_t.
2021-12-30 11:45:58 +01:00
Christoph Oelckers
285a5f2fd2
- eliminated uwallptr_t.
2021-12-30 11:38:34 +01:00
Christoph Oelckers
18fdb7548e
- changed sprite argument in get_floorspr_points to DCoreActor and eliminated uspriteptr_t.
2021-12-30 11:35:49 +01:00
Christoph Oelckers
17736d1d5e
- changed sprite argument in spriteheightofsptr to DCoreActor.
2021-12-30 11:31:45 +01:00
Christoph Oelckers
7676958f40
- changed try_facespr_intersect's sprite argument to DCoreActor.
2021-12-30 11:28:09 +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
Mitchell Richters
118ceb18ca
- Capitalise vec2_t
y
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba
- Capitalise vec2_t
x
variable.
2021-12-30 09:57:02 +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
11f41a97d5
- made gotpic a FixedBitArray.
...
gets rid of some inline garbage.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
5f18109371
- consolidated all getslope code into a single function.
...
This also caches a wall's length to avoid taking the square root every single time for a slope calculation.
2021-12-30 09:53:55 +01:00
Christoph Oelckers
dddf48fd3e
- cleaned up and renamed buildtypes.h.
...
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
4a5de6f56e
- make sure that all changes of wall coordinates invalidate associated data.
...
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
d8ccfa1a5f
- cleaned up nextsectorneighborz, added a safe variant and use this in all places where the sector pointer is not validated.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
b8c4354691
- got rid of the MAX... constants and adjusted all places still using them.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
1a3b9f8ac0
- made several arrays holding sector related data dynamic.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
2a07159c8d
- removed some unused and obsolete content from engine files.
2021-12-26 23:10:02 +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
6d432fca0a
- made spritetype::sectnum a pointer.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
2d913982da
- changed map loader to work without relying on spritetype::sectnum.
...
All access to this field is done through access functions now.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
30786360bb
- derive spritetype and tspritetype from a common base class to consolidate their common content.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
d3b1e34d78
- moved sprite[], spriteext[] and spritesmooth[] into DCoreActor.
...
Also removed the last remaining sprite pointer in saveable data.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
f855b1020f
- actor lists refactored.
...
No more shorts, no more static arrays.
This was one of the biggest blockers for unlimiting the engine.
2021-12-26 23:09:54 +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
bcc532d36f
- eliminated the getzrange wrapper.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
2541425b9d
- getzrange is free of hack values, too.
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
8c90f48b61
- cleanup of neartag, plus direct return of a HitInfoBase struct.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
6600f55543
- separate map loading from actor spawning for the other games, too.
...
It still uses the horribly messed up original spawn logic, though.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
a3493048e7
- refactoring of spawn code to prepare for the other games.
...
Map hacks do not work in this commit!
2021-12-26 23:09:51 +01:00
Christoph Oelckers
379c4f1a60
- merged the cansee wrapper into the actual function and added sector validation.
2021-12-26 23:09:50 +01:00
Christoph Oelckers
2654a19cfd
- got rid of setspritez(x) and moved the implementation to SetActor(Z) without referencing the sprite array.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
58cd933d74
- pass sprite array to map hack parser as parameter.
...
This will later allow it to work on temporaries.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
9213eae606
- deleted unused functions.
2021-12-26 23:09:46 +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
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
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
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
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
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
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
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
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
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
0ffe52791e
- delete deprecated pushmove variants
2021-11-08 23:22:06 +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
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
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
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
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
e40ed2262e
- cleanup of 'gotpic' handling.
2021-05-10 20:13:28 +02:00
Christoph Oelckers
e74aca291c
- position tweaking for Nam's skies.
...
Why is this such an utter mess to get skies placed correctly? :(
2021-05-10 20:13:28 +02:00