Commit graph

782 commits

Author SHA1 Message Date
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
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
Christoph Oelckers
a93dbaf5fe - SW: simplified rotation interpolation functions. 2021-12-26 23:08:40 +01:00
Christoph Oelckers
41506f35db - calcviewpitch 2021-12-26 23:08:40 +01:00
Christoph Oelckers
40ae38c173 - calcChaseCamPos. 2021-12-25 21:29:03 +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
16bdea1b2e More SW shorts 2021-12-25 21:28:54 +01:00
Christoph Oelckers
6a9b377724 SW de-shortification 2021-12-25 21:28:53 +01:00
Christoph Oelckers
4d7b45b68e - SW: first batch of short handling. 2021-12-25 21:28:53 +01:00
Christoph Oelckers
8cca55c24a - made wall a TArray. 2021-12-25 21:28:50 +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
14907a9a97 - sector extension basics. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
56a1836e68 - all SectUsers replaced, except for the maintenance code of the array. 2021-12-25 21:28:47 +01:00
Christoph Oelckers
bd43f49c29 - replaced half of the remaining SectUser accesses. 2021-12-25 21:28:46 +01:00
Christoph Oelckers
5cda292d98 - lots of search& replace actions.
This takes care of roughly 2/3 of the 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
5b87370b5e - SW: wall[] replacements in CopySectorWalls 2021-12-25 21:28:45 +01:00
Christoph Oelckers
a5fac26a90 - DIVx macro removal.
Only DIV2 left because there are too many calls to quickly remove them.
2021-12-25 21:28:45 +01:00
Christoph Oelckers
f6db4a8e51 - SW: move User into DSWActor. 2021-12-25 21:28:39 +01:00
Christoph Oelckers
fe83487c77 - missed one bit of old savegame 2021-12-25 21:28:39 +01:00
Christoph Oelckers
999ec3c95a use validSectorIndex checks where appropriate.
Let’s hope that this sloppiness doesn’t have negative effects with broken maps.

# Conflicts:
#	source/games/sw/src/sprite.cpp

# Conflicts:
#	source/games/duke/src/prediction.cpp
#	source/games/duke/src/render.cpp
2021-12-25 21:28:37 +01:00
Christoph Oelckers
2d7c085617 - SW: fixed bad user in SpawnSplash 2021-12-25 21:27:36 +01:00
Christoph Oelckers
d1c6c783a6 - SW: fixed user spawned for wrong actor. 2021-12-25 20:35:53 +01:00
Christoph Oelckers
3ec904d5c0 - SW: fixed several bad User references in missile seeking code. 2021-12-25 20:11:40 +01:00
Christoph Oelckers
1c5fc16fa5 - SW: fixed two bad user assignments 2021-12-25 19:54:45 +01:00
Christoph Oelckers
7f1a3431ca - SW: fixed accidentally inverted colliision check in DoMirvMissile. 2021-12-15 20:51:31 +01:00
Christoph Oelckers
4daad25e5c - use WORDS_BIGENDIAN directly in place of B_BIG_ENDIAN 2021-12-14 12:27:41 +01:00
Christoph Oelckers
7daa501a4d - removed all #include "compat.h" except the one in build.h
Still all compiles fine.
2021-12-14 12:24:10 +01:00
Mitchell Richters
6aecc18c35 - SW: Use floating point radians instead of converting integer Build angle into radians for when updating a sound's angle. 2021-12-13 23:37:11 +11:00
Christoph Oelckers
8abd67a3b1 - fixed sound listener angle for the remote control case.
It was taking the angle of the rotating sector object instead of the angle from the listener's position to it.
2021-12-13 13:24:33 +01:00
Christoph Oelckers
c2baa68160 - fixed camera textures breaking in SW when restarting a level.
This was caused by attempting to delete the camera textures when cleaning up the mirror array.
The Build tile manager was not prepared for such a use case and left a broken texture behind.

To allow this to function it now resets the texture replacement type when deleting a tile and to avoid creating new camera textures these will now be stored in a cache and recycled later.
2021-12-02 21:40:43 +01:00
Christoph Oelckers
60630f5b84 - do not init pointers to 0xffffffffffffffff.
These will most certainly crash when used in any way.
2021-12-02 18:42:02 +01:00
Christoph Oelckers
cb099b1b66 - added two missing semicolons.
Unbelievable that this was legal C++ and didn't even get a warning!
2021-12-01 23:30:02 +01:00
Christoph Oelckers
57aca0ed07 - SW: fixed sector object setup with vator effect.
This used some weird initialization logic that was missed when first modifying this code.
2021-12-01 21:00:00 +01:00
Christoph Oelckers
324e35e776 - SW: fixed use of uninitialized variable in WallSetup 2021-12-01 19:55:18 +01:00
Christoph Oelckers
71dfe7ecfe - fixed handling for cl_capfps and cl_nointerpolate to never use any smoothratio value other than 1.0. 2021-11-29 00:57:11 +01:00
Christoph Oelckers
1de9c63d45 - fixed center aligned rendering of 2D content.
This calculates the centered pivot point in integer texel coordinate space so for odd numbers it must round down instead of using a fractional position.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
ec63dd4cb3 - SW: precacheMap cleanup 2021-11-29 00:57:09 +01:00
Christoph Oelckers
b73ea76c18 - cleaned out Bunny_Count declarations.
One is enough.
2021-11-29 00:57:09 +01:00
Christoph Oelckers
cd3288860a - fixed automap player drawing for follpw mode off in all games. 2021-11-29 00:56:32 +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
4e31360fe4 - cleaned up dragpoint
This still contained some code for EDuke32's TROR and used a shared static global array.
It now uses the BFSSearch class to manage its bit array to unlimit the size of its working set and to avoid reallocation.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
399f254629 - the definitely last bit: There was still a spritenum reference in NEAR_TAG_INFO
SW done!
2021-11-29 00:56:17 +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
898f56dd86 - User[] is mostly gone.
All access is now through the actor.
2021-11-29 00:56:16 +01:00
Christoph Oelckers
cd73cd616e - ActorDrop. 2021-11-29 00:56:16 +01:00
Christoph Oelckers
56760d1824 - CanGetWeapon 2021-11-29 00:56:16 +01:00
Christoph Oelckers
88a5a95cde - SpriteNum cleanup. 2021-11-29 00:56:16 +01:00
Christoph Oelckers
03c9ef6d20 - SetGunQuake 2021-11-29 00:56:16 +01:00
Christoph Oelckers
2f1e23a654 - replaced PLAYER::PlayerSprite with PLAYER::actor
# Conflicts:
#	source/games/sw/src/save.cpp
2021-11-29 00:56:15 +01:00
Christoph Oelckers
5b10e9f2d5 - got rid of SpriteP pointers in PLAYER and USER. 2021-11-29 00:56:15 +01:00
Christoph Oelckers
8d95b9cb98 - got rid of the PlaySound variant taking a sprite pointer. 2021-11-29 00:56:15 +01:00
Christoph Oelckers
580b7002fb - PlaySound calls in DoGet. 2021-11-29 00:56:15 +01:00
Christoph Oelckers
6f8480ebc3 - KillGet... functions. 2021-11-29 00:56:15 +01:00
Christoph Oelckers
95b7949f7d - minor sprite.cpp cleanup. 2021-11-29 00:56:14 +01:00
Christoph Oelckers
cb477d4ab7 - ActorSpawn cleanup. 2021-11-29 00:56:14 +01:00
Christoph Oelckers
d8ea4db5b2 - Got rid of SpawnSprite. 2021-11-29 00:56:14 +01:00
Christoph Oelckers
a57af58d4c - get rid of KillSprite. 2021-11-29 00:56:14 +01:00
Christoph Oelckers
431103032f - SpriteOverlapZ 2021-11-29 00:56:14 +01:00
Christoph Oelckers
66e61d799d - handle the remaining SectIterators. 2021-11-29 00:56:14 +01:00