Christoph Oelckers
8e01d559e8
- store sector as an index in Section2 and renamed walls to lines.
...
Now everything has the same name and type as in the old section.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
208ca4f783
- merge old SectionLine and new Section2Wall into one type and use the same global array.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
d353787d31
- add a global list of section walls.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
f8f6c345fc
- use index fields in Section2Wall.
...
There's little benefit of using pointers here - it inflates a critical render struct, does not make any code more readable and requires quite deep refactoring of hw_bunchdrawer.
Now, with all fields having the same tyoe and name a lot less code needs to be changed.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
a407e86ff6
- migrated automap to new SectionGeometry class.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
362b824775
- ClipWindow WIP
2021-12-30 09:53:08 +01:00
Christoph Oelckers
4364e68d05
- automap work to transition to new sections.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
411e3e6f9c
- make SectionGeometry create some data.
2021-12-30 09:53:07 +01:00
Christoph Oelckers
ca19c265f8
- interface from Section2 to the flat processing.
2021-12-30 09:53:07 +01:00
Christoph Oelckers
69593fd5c7
- Triangulation WIP
...
# Conflicts:
# source/core/sectorgeometry.cpp
2021-12-30 09:53:07 +01:00
Christoph Oelckers
449362dcb3
- better debug output.
2021-12-30 09:53:07 +01:00
Christoph Oelckers
a255e90c96
- more work on the new section creator.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
b1bf12df9d
- section fixes.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
ad018db80a
- new section builder.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
9397eb6a19
- automatically handle one specific case of bad wall loops.
...
Both RRRA E3L1.map and SW $yamato.map have this:
Wall x and Wall x+1 have identical properties and both reference Wall x+2 as point2.
The duplicate in this case can be safely deleted to make the sector well formed.
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
6db1ba47c2
- SW: fixed some savegame issues:
...
* the saveable tables were initialized too late when reading in the actors.
* the abort messages for the saveables did not show. We need to use I_FatalError here, plus some actor list modifications to make this work.
2021-12-26 23:10:07 +01:00
Mitchell Richters
a4d165a84e
- Tidy some specified bound equals destination size
warnings from GCC.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
9e94573ae3
- free the current level before taking down other things on exit.
...
Nor doing so can cause memory corruption when the object hierarchy gets deleted later which may still reference some stale data.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
7b14aacdf4
- match alignment of NPOT flat textures to the software renderer
...
Tested in RR E1L4, sector 224+40, probably needs more checking in other places as well to confirm that it is correct there as well.
2021-12-26 23:10:04 +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
Mitchell Richters
14b8eda436
- Get rid of some now irrelevant comments.
2021-12-26 23:10:03 +01:00
Christoph Oelckers
106ec53d1f
- disabled sector splitter for now because it's broken and useless.
...
The entire section format needs to be redone for better triangulation so fixing this messy code is pointless.
2021-12-26 23:10:03 +01:00
Christoph Oelckers
74da3e5fa7
- added savegame support for the new actor management.
2021-12-26 23:10:03 +01:00
Mitchell Richters
2dda3ee505
- Tidy up some GCC warnings about ininitialised variables, memsetting non-trivial types and some others.
2021-12-26 23:10:02 +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
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
6a43a270fa
- use sectno() access function where we really need a sector index.
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
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
8dde6a3074
- Added GC support to Exhumed
2021-12-26 23:09:59 +01:00
Christoph Oelckers
38c8f2a3b8
- the last 16 bit limits in the new renderer.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
42e4e9288f
- deleted GetSpriteIndex.
...
It's not needed anymore.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
b0ecf7e87b
- unlimit the wall index in sections.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
a2e280e188
- use wallsofsector in 4 more places.
...
# Conflicts:
# source/build/src/polymost.cpp
2021-12-26 23:09:57 +01:00
Christoph Oelckers
588f88c9cc
- migrated the actors to DObjects.
...
No GC yet, only the classes have been altered and some GC-related features been added.
Full switchover will require adding GC support to all data in the game.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
d088ab05a9
- eliminate storage of actors in the sector's hitag for some of Duke's sector effectors.
...
Also demoted Blood's upperLink and lowerLink to DCoreActor pointers and use static_cast for access to avoid savegame problems. The core code cannot safely serialize a DBloodActor anymore.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
ca10495d7c
- Blood: back up player state before ending the level, not just before loading the new one.
...
The latter is too late, the player's actor data may already be stale and invalid here.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
8a2385dd89
- actor clearing cleaned up.
...
We still need this until we can get rid of the static arrays...
2021-12-26 23:09:55 +01:00
Christoph Oelckers
c4d23188d5
- removed HitInfoBase::setFromEngine.
...
This value format no longer exists anywhere.
2021-12-26 23:09:55 +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
4cecb6f955
- removed the old actor savegame code and instead implemented a virtual Serialize function.
...
This isn't hooked up yet, currently savegames are non-functional. They will come back once the global actor arrays are no longer relevant for maintenance.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
e79cd8d87f
- don't store sprite indices in walltype::portalnum
2021-12-26 23:09:54 +01:00