Commit graph

178 commits

Author SHA1 Message Date
Christoph Oelckers
d1f088a858 - SW/Exhumed fixed sound relinking on actor destruction.
This still passed the sprites instead of the actors. Moved the relinking code to DCoreActor::Destroy because it is the same for all games.
Also did a little bit of sound cleanup to ensure the sound backend does not hold stale actor pointers.
2021-12-30 09:53:10 +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
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
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
fa05cfbaf1 - use a real pointer in DSWActor for owner tracking. 2021-12-26 23:09:56 +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
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
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
b7a5ea8ef6 - moved some common utilities into the backend. 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
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
bdbb3b4004 - handled the main actor movement functions. 2021-12-26 23:09:40 +01:00
Christoph Oelckers
30f36e4871 - use backend's collision struct in SW. 2021-12-26 23:08:58 +01:00
Christoph Oelckers
3f43f48b57 - adapted all SW hitscan calls outside of FAFhitscan. 2021-12-26 23:08:56 +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
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
9a6bd0b7e1 - SectorWallBits 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
c4e388ef56 - merged SpawnActor wrapper. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
33b3864d14 - final wall not related to hitscan/neartag. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
bb315f8148 - more wall cleanup 2021-12-26 23:08:47 +01:00
Christoph Oelckers
d0eece244b - got rid of most nextsector references. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
b7a2687a7b - all nextwall references removed. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
7e6de45e46 - WallSetup + SpriteSetup 2021-12-26 23:08:44 +01:00
Christoph Oelckers
302016956f - sector parameters in SpawnActor calls. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
e17da708e7 - lots of ->sectnum search & replace. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
d1f156dec3 - most InsertActor calls. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
cab2181ddc - PrevWall 2021-12-26 23:08:43 +01:00
Christoph Oelckers
eb82f60981 - FAFcansee. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
9c7eecb55f - the rest of Duke’s sectnum, except RR's geo hack 2021-12-25 21:28:57 +01:00
Christoph Oelckers
4d7b45b68e - SW: first batch of short handling. 2021-12-25 21:28:53 +01:00
Christoph Oelckers
fded90c491 - SW: deleted SECT_USER. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
7d2404ce76 - made sector a TArray. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
bd43f49c29 - replaced half of the remaining SectUser accesses. 2021-12-25 21:28:46 +01:00
Christoph Oelckers
4266edfa04 - SW: automatic ->sector() replacements (lots of them) 2021-12-25 21:28:46 +01:00
Christoph Oelckers
f6db4a8e51 - SW: move User into DSWActor. 2021-12-25 21:28:39 +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
b97760db29 - forgotten cleanup. 2021-11-29 00:56:17 +01:00
Christoph Oelckers
ed2d8373fc - final cleanup. 2021-11-29 00:56:17 +01:00
Christoph Oelckers
e12ae040de - collision code cleanup.
# Conflicts:
#	source/games/sw/src/game.h
#	source/games/sw/src/sprite.cpp

# Conflicts:
#	source/games/sw/src/game.h
2021-11-29 00:56:17 +01:00
Christoph Oelckers
cd73cd616e - ActorDrop. 2021-11-29 00:56:16 +01:00