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
756ed1c14b
- removed the workaround to make Lunatic Fringe not glitch.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
8f012d1beb
- made wall flags type safe
2021-12-30 09:56:47 +01:00
Christoph Oelckers
6e32832428
- made sector ceiling/floor flags type safe.
...
- made sector flags type safe.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
d0a06ae961
- deal with most of CSTAT_SECTOR_SKY and CSTAT_SECTOR_SLOPE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
24a6d45f97
- minor slope math optimization.
...
May save one division and merges the '<< 5' into the main calculation.
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
Mitchell Richters
95d60deecd
- Rename remaining hw_sections*.*
files to hw_sections.*
.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
fc41a2bd85
- renamed sections2 and sections2PerSector.
...
No more need for a '2'.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
f6d852b5a0
- removed the old section builder
2021-12-30 09:53:09 +01:00
Christoph Oelckers
bb9313454d
- removed SectorGeometry class.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
4364e68d05
- automap work to transition to new sections.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
69593fd5c7
- Triangulation WIP
...
# Conflicts:
# source/core/sectorgeometry.cpp
2021-12-30 09:53:07 +01:00
Christoph Oelckers
ad018db80a
- new section builder.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
a733de618f
- new section WIP.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
1bf654036a
- delete duplicated walls in RRRA E1L3 and E1L6.
2021-12-30 09:48:50 +01:00
Christoph Oelckers
5e09a43e91
- added auto-patcher for overlapping wall ranges.
...
This is for cases where the proper sector can be found by looking at the walls' point2 links.
2021-12-26 23:10:04 +01:00
Christoph Oelckers
fee8df8a1b
- fix range check for nextwall in map loader
2021-12-26 23:10:03 +01:00
Christoph Oelckers
177e84881e
- added a warning for multiple sectors referencing the same walls.
...
RR E3L1 contains such a setup, for example.
2021-12-26 23:10:03 +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
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
8ee5d1b0d7
- activated the garbage collector
...
This finally gets rid of all static storage for actors - so no more indices ever! :)
2021-12-26 23:10:00 +01:00
Christoph Oelckers
0dd756fa32
- added GC handling for all backend pointers in the map data.
...
GC is not active yet!
2021-12-26 23:10:00 +01:00
Christoph Oelckers
cf9d733994
- deleted insertAllSprites.
2021-12-26 23:09:55 +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
e13a275cfc
- got rid of the sole linear sprite iterator in Exhumed and deleted the iterator code entirely.
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
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
83cf2f3baf
-more index stuff.
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
443cfc991c
- actSpawnSprite, ZONE, startsectnum and dbLoadMap
2021-12-25 21:29:15 +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
14613f2f50
- fixed: ValidateSprite did not clear bugged sprites if debug output was enabled.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
d5c27e6239
- unlimited the bit arrays for the automap and the bunch drawer, removed some leftover constants/declarations.
2021-12-25 21:28:50 +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
a21f6b6240
- migrated Exhumed's sector extensions to the actual struct.
2021-12-25 21:28:49 +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
10c6fde8d6
- reordered the init calls in engineLoadBoard.
...
sprite lists must be done after preparing the arrays, otherwise important bits get overwritten.
2021-12-11 12:51:07 +01:00
Christoph Oelckers
2d806d415a
- clear interpolations when starting a new map.
2021-11-29 00:57:09 +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