Commit graph

9772 commits

Author SHA1 Message Date
Christoph Oelckers
8c90f48b61 - cleanup of neartag, plus direct return of a HitInfoBase struct. 2021-12-26 23:09:52 +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
8c298de114 - Duke: replaced DukeLinearSpriteIterator and explicit loops over the sprite[] array. 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
ec888c097c - Blood: separated actor spawning from map loading. 2021-12-26 23:09:51 +01:00
Christoph Oelckers
e543c70439 - replacement of BloodLinearSpriteIterator
Preparation for eliminating sprite[]. This array can later be created by the actual spawn function.
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
Mitch Richters
c6774d5efd - Duke/RR: Re-add micro-movement cancellation for RR's vehicles that was dropped in 466bc84697. 2021-12-26 23:09:50 +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
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
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
6773fa2189 - removed unused InitLists function.
# Conflicts:
#	source/build/src/engine.cpp
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
5dfc79bdbe - MarkSectorSeen 2021-12-26 23:09:48 +01:00
Christoph Oelckers
f9b1164747 - use point2Wall wherever possible. 2021-12-26 23:09:48 +01:00
Christoph Oelckers
83cf2f3baf -more index stuff. 2021-12-26 23:09:48 +01:00
Christoph Oelckers
ee1b574830 - engine stuff 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
4c13f24357 - rename FBunch's sectnum because it complicated searching for other stuff. 2021-12-26 23:09:47 +01:00
Christoph Oelckers
ed659df9d8 - pass sector pointer to Polymost's SectorVisibility function. 2021-12-26 23:09:47 +01:00
Christoph Oelckers
34373e9c70 - fixed use of wrong indexing function. 2021-12-26 23:09:47 +01:00
Christoph Oelckers
73243f95bb - make Blood's burn source a pointer. 2021-12-26 23:09:46 +01:00
Christoph Oelckers
3a44f168e0 - Blood: Fix DeleteSprite 2021-12-26 23:09:46 +01:00
Christoph Oelckers
9213eae606 - deleted unused functions. 2021-12-26 23:09:46 +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
221d9fe28e - adapted Duke's and Exhumed's sound code to directly work with actors.
This was already wrapped so all that needed to be done was removing the wrapper.
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
75b36cbd1c - Duke: made player.i a real pointer
How could I overlook this one.
2021-12-26 23:09:45 +01:00
Christoph Oelckers
d33ae89c4a - minor backend cleanup. 2021-12-26 23:09:45 +01:00
Christoph Oelckers
befc4572e9 - minimal backend array removal. 2021-12-26 23:09:45 +01:00
Christoph Oelckers
6cecd85cf6 - removed the deprecated interfaces from coreactor.h 2021-12-26 23:09:44 +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
6748a39c8f - deprecate the sector index variant of pushmove 2021-12-26 23:09:43 +01:00
Christoph Oelckers
2aefe4398b - sector[tspr->sectnum] globally replaced. 2021-12-26 23:09:43 +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
b3bbf8932e - same procedure for Exhumed. 2021-12-26 23:08:58 +01:00
Christoph Oelckers
8ce34c7772 - use refactored Collision struct and clipmove in Blood, too. 2021-12-26 23:08:57 +01:00
Christoph Oelckers
4788c7ba5e - made Collision derive from a common base class and refactored clipmove to a single engine-side entry point.
Done for Doom so far.
2021-12-26 23:08:57 +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
4bfb03b6b3 - adapted hitscan calls in Exhumed. 2021-12-26 23:08:56 +01:00
Christoph Oelckers
10dce7dd2d - adapted all hitscan calls in Duke/RR. 2021-12-26 23:08:56 +01:00
Christoph Oelckers
129ce0aea8 - migrated Blood's hitscan calls and its global gHitInfo struct. 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
Christoph Oelckers
de5377cb2c - WallBreakPosition 2021-12-26 23:08:48 +01:00
Christoph Oelckers
d6cd291030 - use a wall pointer in SINE_WAVE 2021-12-26 23:08:47 +01:00
Christoph Oelckers
33b3864d14 - final wall not related to hitscan/neartag. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
f0dd018ad4 - use pointers in sparks interface. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
4acca06c71 - the final wall iterators. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
bb315f8148 - more wall cleanup 2021-12-26 23:08:47 +01:00
Christoph Oelckers
031ad6e4a5 - wall[] in wallmove.cpp 2021-12-26 23:08:47 +01:00
Christoph Oelckers
01c8662c3c - wall[] in track.cpp 2021-12-26 23:08:46 +01:00
Christoph Oelckers
770b242c76 - wall[] in sector.cpp 2021-12-26 23:08:46 +01:00
Christoph Oelckers
5cafd7b591 - QueueHole 2021-12-26 23:08:46 +01:00
Christoph Oelckers
e3ad05d4d7 - quick cursectnum replacements. 2021-12-26 23:08:46 +01:00
Christoph Oelckers
c0496420ec - LadderSector 2021-12-26 23:08:46 +01:00
Christoph Oelckers
991795df4b - CollectPortals 2021-12-26 23:08:46 +01:00
Christoph Oelckers
d0eece244b - got rid of most nextsector references. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
612a9e258e - auto replacement. 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
ca536ce5bd - quick wall[] replacements. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
ce4a44dd84 - hitinfo.hitwall. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
9f9c01284b - all wall loops using point2. 2021-12-26 23:08:44 +01:00
Christoph Oelckers
7e6de45e46 - WallSetup + SpriteSetup 2021-12-26 23:08:44 +01:00
Christoph Oelckers
d8893f3521 - DoSlidorInstantClose 2021-12-26 23:08:44 +01:00
Christoph Oelckers
9c21483279 - wall[] in light.cpp and player.cpp 2021-12-26 23:08:44 +01:00
Christoph Oelckers
732aa2023b - over_sp/under_sp sectnums 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
5cf776daaa - sector save struct. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
eb82f60981 - FAFcansee. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
3ccf3ab52d - pointers in mirror struct. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
4d8434ffd2 - CircleCamera and interpso.cpp 2021-12-26 23:08:42 +01:00
Christoph Oelckers
317aa3f217 - CopySectorWalls 2021-12-26 23:08:42 +01:00
Christoph Oelckers
75d59196fc - WallBreakPosition (wall pointer only) 2021-12-26 23:08:42 +01:00
Christoph Oelckers
6e018bd056 - DoSlidorMoveWalls 2021-12-26 23:08:42 +01:00
Christoph Oelckers
ac655abc42 - search & replace only. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
82447233a7 - several getangle(delta) blocks. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
0a0cc85407 - renamed HITINFO fields. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
993d460420 - another delta. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
fe3a02420a - major cleanup and condensing of DoSlidorInterp
The logic here still looks very weird but let's keep it to ensure proper functioning.
2021-12-26 23:08:41 +01:00