Christoph Oelckers
ae622274bd
- SW: clear pointer holding variables in TerminateLevel.
...
Some survive the level transition and would point to invalid data.
2021-12-26 23:10:07 +01:00
Christoph Oelckers
a4ff7e5bd4
- SW: added some null checks to the SO interpolation code.
...
It looks like this was able to access deleted sprites - by only checking for the index this never registered as a problem, but with pointers it does.
2021-12-26 23:10:07 +01:00
Mitchell Richters
4562a0ca97
- SW: Add some nullptr checks to some inlines to prevent noclip crashes.
2021-12-26 23:10:06 +01:00
Mitchell Richters
3b099e09cd
- SW: Tidy some ‘newsect’ may be used uninitialized
warnings from GCC.
2021-12-26 23:10:06 +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
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
Mitchell Richters
18bd2e4d07
- SW: Destroy actor in KillActor()
after clearing the pointed to sprite, not before it.
...
* No idea if it matters but it seems logical that this is how it should be.
2021-12-26 23:10:05 +01:00
Mitchell Richters
65a55d3589
- SW: Tidy up function declarations where return type was on its own line.
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
6a43a270fa
- use sectno() access function where we really need a sector index.
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
db240ea2b0
- GC support in SW.
...
- SW GC WIP
2021-12-26 23:10:00 +01:00
Christoph Oelckers
6cb260d916
- SW GC preparation commit noise.
2021-12-26 23:10:00 +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
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
fa05cfbaf1
- use a real pointer in DSWActor for owner tracking.
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
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
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
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
Mitchell Richters
0c6e55d1b8
- Silence all the -Wuninitialized
and -Wmaybe-uninitialized
warnings relating to HitInfo
objects passed through to functions by reference.
2021-12-26 23:09:50 +01:00
Christoph Oelckers
363d062685
- minor sanity check improvements.
2021-12-26 23:09:50 +01:00
Mitch Richters
12a0f587a3
- SW: Add nullptr check inside WarpSectorInfo()
to prevent crashes while noclipping through level.
2021-12-26 23:09:50 +01:00
Mitch Richters
10e28b8a53
- SW: Add nullptr check inside ActorTrackDecide()
for walltype's nextSector()
to prevent crashes while noclipping through level.
2021-12-26 23:09:49 +01:00
Mitch Richters
5085dcd866
- SW: Add nullptr check inside DoPlayerHorizon()
for canslopetilt
to prevent crashes while noclipping through level.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
e223466f4a
- removed Interp_Sprite_Z.
...
This was redundant and interfered with the reworked automatic sprite interpolation.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
5dfc79bdbe
- MarkSectorSeen
2021-12-26 23:09:48 +01:00
Christoph Oelckers
b663b8ea26
- wallptr reduction.
2021-12-26 23:09:48 +01:00
Christoph Oelckers
eb0f91e26b
- pass sector pointer to render_camtex.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
a22634f228
- sectnum reduction.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
a59173ac31
- SW: fixed DeleteNoSoundOwner still checking for sprites as sound origins.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
0a9792ac28
- adapted SW's sound system to actors.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
97b19a5cb1
- adapted Blood's sound engine to using actors.
...
Note: Savegames won't work on this commit for the other games!
2021-12-26 23:09:45 +01:00
Christoph Oelckers
b7a5ea8ef6
- moved some common utilities into the backend.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
bbb860ccf3
- consolidate the iterators in the backend.
...
Using a template class that can adapt to the game specific types.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
12f6b05cbe
- use access functions, all done by search & replace.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
02ef323086
- SW: handle getzrangepoint
2021-12-26 23:09:43 +01:00
Christoph Oelckers
53be5d1622
- use a sector pointer in FAFgetzrange.
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
729076b79d
- adapted neartag in SW and Exhumed.
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
1840ab0d05
- deal with a few ->sectnum's in SW.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
321608e5ac
- made cursectnum et. al. real pointers.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
f19f656dd9
- deal with SW's Warp functions.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
10d0ea29ce
- renamed some sectnum variables.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
ef6bc9db56
- do the remaining clipmove calls.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
bdbb3b4004
- handled the main actor movement functions.
2021-12-26 23:09:40 +01:00
Christoph Oelckers
afd05add96
- adapted several clipmove calls in SW.
2021-12-26 23:09:40 +01:00
Christoph Oelckers
c0b0b00f96
fixed collision access.
2021-12-26 23:09:09 +01:00
Christoph Oelckers
30f36e4871
- use backend's collision struct in SW.
2021-12-26 23:08:58 +01:00
Christoph Oelckers
96b9572905
- moved parts of the HitInfo subclasses into the backend.
...
All the game code now needs to do is a single 'using' statement.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
a5ccd2ccd2
- adapted FAFhitscan to the new backend API.
...
Lots of search & replace to change the names of the HitInfo struct, no manual edits outside of FAFhitscan.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
3f43f48b57
- adapted all SW hitscan calls outside of FAFhitscan.
2021-12-26 23:08:56 +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
e526686d1e
- the really final ones.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
7dd2f79676
- the final ones before moving to the backend.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
33d2d80c42
- sector references in remote, some cursectnum replacements.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
104e80e34a
- NEAR_TAG_LIST, also deleted useless OperateWall code.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
b7cfb07245
- all sectnums that can trivially be replaced.
...
Most of the rest is in backend calling code and should be done while cleaning up the backend API.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
19f8458f01
- FindCeilingView, FindFloorView and related things.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
db95dc95d1
- FAF_Sector + SpawnQuake
2021-12-26 23:08:54 +01:00
Christoph Oelckers
98c3d57b73
- ->sectnum in ai.cpp and draw.cpp.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
cf6e75ad54
- the final doable sector[] replacements.
...
The rest needs to be done with the backend.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
e2e0f69393
- deleted deprecated Warp... functions.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
c4f29772ae
- SpawnVis
2021-12-26 23:08:53 +01:00
Christoph Oelckers
1457cf2c0d
- track stuff
2021-12-26 23:08:53 +01:00
Christoph Oelckers
b3eceb3b56
- the remaining trivial sector[] replacements
2021-12-26 23:08:53 +01:00
Christoph Oelckers
1a7cc6d782
- FAFgetzrangepoint + ActorDrop
2021-12-26 23:08:53 +01:00
Christoph Oelckers
959c3bc18b
- springboard
2021-12-26 23:08:53 +01:00
Christoph Oelckers
0345615518
- some smaller changes.
2021-12-26 23:08:52 +01:00
Christoph Oelckers
9a6bd0b7e1
- SectorWallBits
2021-12-26 23:08:52 +01:00
Christoph Oelckers
1763fbc7ff
- OperateSector
2021-12-26 23:08:52 +01:00
Christoph Oelckers
df558bd9a2
- GetUpperLowerSector
2021-12-26 23:08:52 +01:00
Christoph Oelckers
0c9d465e4c
- FAF_Connect* functions and related code.
2021-12-26 23:08:52 +01:00
Christoph Oelckers
96915a646b
- SectorZadjust
2021-12-26 23:08:52 +01:00
Christoph Oelckers
b076edcc6f
- PlayerRemoteReset
2021-12-26 23:08:51 +01:00
Christoph Oelckers
75af6966c9
- FAFHitscan cleanup.
2021-12-26 23:08:51 +01:00
Christoph Oelckers
1a7c70cbbd
- use pointers in FAFHitscan
2021-12-26 23:08:51 +01:00
Christoph Oelckers
6ae8e93de8
- hitinfo.hitwall is also gone.
2021-12-26 23:08:51 +01:00
Christoph Oelckers
270a443c88
- hitinfo.hitsect is gone.
2021-12-26 23:08:51 +01:00
Christoph Oelckers
bcc61470a2
- mostly deal with hitinfo.hitsect.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
f495097663
- first step of replacing hitinfo.hitsect with a pointer.
...
This takes care of easy to handle common patterns
2021-12-26 23:08:50 +01:00
Christoph Oelckers
1162442068
- handle most GetOverlapSector callers.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
11d3a660ad
- GetOverlapSector internals.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
4d5c255b08
- adjust a few warp functions.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
c4e388ef56
- merged SpawnActor wrapper.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
d447e3e86f
- make the sector reference in SINE_WAVE_FLOOR a pointer.
2021-12-26 23:08:49 +01:00
Christoph Oelckers
16480ccfcc
- use sector wrappers where applicable.
2021-12-26 23:08:49 +01:00
Christoph Oelckers
52d9451cbc
- SOP::op_main_sector
2021-12-26 23:08:49 +01:00
Christoph Oelckers
f388efc5ef
- eliminated the redundant SOP::sector array.
2021-12-26 23:08:49 +01:00
Christoph Oelckers
c43d594f34
- SectorIsUnderwaterArea
2021-12-26 23:08:49 +01:00
Christoph Oelckers
4149a335a3
- SOP::mid_sector
2021-12-26 23:08:48 +01:00
Christoph Oelckers
b936345e11
- sectnum() cleanup and AnimSet return type.
2021-12-26 23:08:48 +01:00
Christoph Oelckers
f68d17133a
- SectorSetup, SetupSectorObject
2021-12-26 23:08:48 +01:00
Christoph Oelckers
3b16db7a0f
- SectorMidPoint
2021-12-26 23:08:48 +01:00
Christoph Oelckers
da8a5f282d
- CopySectorMatch
2021-12-26 23:08:48 +01:00