Commit graph

3600 commits

Author SHA1 Message Date
Christoph Oelckers
c8f4caf364 - animatesprite.cpp. 2021-12-25 21:29:13 +01:00
Christoph Oelckers
a34e89c8b7 - debrisMove + getting rid of the index based ClipMove variant. 2021-12-25 21:29:13 +01:00
Christoph Oelckers
94671c5b05 - MoveMissile + GetZRangeXYZ 2021-12-25 21:29:13 +01:00
Christoph Oelckers
9a85ff9bad - MoveThing 2021-12-25 21:29:13 +01:00
Christoph Oelckers
611d35222e - MoveDude 2021-12-25 21:29:13 +01:00
Christoph Oelckers
6ee9ae7ec6 - actFloorBounceVector 2021-12-25 21:29:12 +01:00
Christoph Oelckers
38c0bc915d - get rid of '.sectnum'. 2021-12-25 21:29:12 +01:00
Christoph Oelckers
669aa033e9 - wrap the bit tests for GetClosestSpriteSectors's return.
They need to check spritenum which is supposed to go away, so this function avoids keeping obsolete references.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
368a21f75e - useDataChanger + setDataValueOfObject 2021-12-25 21:29:12 +01:00
Christoph Oelckers
a7fc5d2193 - refactored most wall[] references.
What's left is in either setup code or the mirror setup.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
dd1e7dd94f - use HITINFO to let ActionScan return its result. 2021-12-25 21:29:11 +01:00
Christoph Oelckers
6fcc652111 - usePictureChanger + useIncDecGen
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-12-25 21:29:11 +01:00
Christoph Oelckers
96b6bb21ef - several smaller places.
This gets rid of the less frequent names to look for.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
063e3fb34e - changed parameters of several modern action functions. 2021-12-25 21:29:11 +01:00
Christoph Oelckers
759a8428fa - dragPoint 2021-12-25 21:29:11 +01:00
Christoph Oelckers
7bffcad49f - trMessage* functions.
# Conflicts:
#	source/games/blood/src/eventq.cpp
2021-12-25 21:29:10 +01:00
Christoph Oelckers
45a8654fc2 - use EventObject in SEQINST 2021-12-25 21:29:10 +01:00
Christoph Oelckers
2721a59dc4 - use wall pointers in gib code. 2021-12-25 21:29:10 +01:00
Christoph Oelckers
f07fafea9c - use EventObject for OBJECTS_TO_TRACK. 2021-12-25 21:29:10 +01:00
Christoph Oelckers
dbbca2972a - use EventObject for condition serials. 2021-12-25 21:29:10 +01:00
Christoph Oelckers
da4ec51782 - convert info to an event object in condCheckMixed before doing any checks. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
2b2a8c3ec8 - condPush cleanup in nnexts.cpp. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
2c3d2f4850 - remove the RXBUCKET alias 2021-12-25 21:29:09 +01:00
Christoph Oelckers
9e02da6380 - alias RXBucket to EventObject. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
483b28b258 - uses bucket interface in evSend. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
1de75d2c0f - use wrapper stuff in GetBucketChannel. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
042520e447 - variants of nnExtTriggerObject and getDataFieldOfObject that work directly on an RXBUCKET element. 2021-12-25 21:29:08 +01:00
Christoph Oelckers
10dc47a9bf - some remaining RXBUCKET access in nnexts.cpp 2021-12-25 21:29:08 +01:00
Christoph Oelckers
f775fe577c - use RXBUCKET interface in nnext's fight code. 2021-12-25 21:29:08 +01:00
Christoph Oelckers
f0c74981fe - use the new RXBUCKET interface for nnext's wind code. 2021-12-25 21:29:08 +01:00
Christoph Oelckers
546dee2724 - added accessors to RXBUCKET to match EventObject and renamed some of its members.
As a first preparation for replacement.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
5787ec9618 - use EventObject as storage in EVENT. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
5bec3be5e9 - abstracted access to event target objects. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
32874414fd - evSendSector, too. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
0472c78ddc - same for walls. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
37f4843953 - changed evPostSector to receive a sector pointer instead of index. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
292f100114 - pass an array of wall pointers to GetClosestSpriteSectors 2021-12-25 21:29:06 +01:00
Christoph Oelckers
d5e660a40c - converted gHitInfo.hitwall to a pointer. 2021-12-25 21:29:06 +01:00
Christoph Oelckers
2f6bd64746 - SetWallState parameters 2021-12-25 21:29:06 +01:00
Christoph Oelckers
79da890c6e - TranslateSector cleanup. 2021-12-25 21:29:06 +01:00
Christoph Oelckers
3f46507313 - some wall[] replaced. 2021-12-25 21:29:06 +01:00
Christoph Oelckers
378bf40143 - got rid of the mostly redundant GetWallType function. 2021-12-25 21:29:05 +01:00
Christoph Oelckers
1fc99d4733 - Blood: use wall pointers in wall utilities exclusively. 2021-12-25 21:29:05 +01:00
Christoph Oelckers
93cdaee9f0 - Blood: simplify GetWallAngle 2021-12-25 21:29:05 +01:00
Christoph Oelckers
7a7537961b - Blood: remove GetWallAngle variant with index parameter 2021-12-25 21:29:05 +01:00
Christoph Oelckers
624ad6a2ad - cleanup stuff.
Removed unneeded prototypes, renamed some variables; no logic changes.
2021-12-25 21:29:05 +01:00
Christoph Oelckers
943641d18e - renamed all nSector pointers to pSector
No logic changes!
2021-12-25 21:29:04 +01:00
Christoph Oelckers
a3ecbe6371 - MoveQS 2021-12-25 21:29:04 +01:00
Christoph Oelckers
b1b7608cf7 - most remaining sectnum references. 2021-12-25 21:29:04 +01:00
Christoph Oelckers
2027c6ebaf - the last sector[] 2021-12-25 21:29:04 +01:00
Christoph Oelckers
6e786fcf1e - RadialDamage + DimSector 2021-12-25 21:29:04 +01:00
Christoph Oelckers
24d4680f6e - sector[] in move.cpp 2021-12-25 21:29:03 +01:00
Christoph Oelckers
80f80ed5e5 - initsect 2021-12-25 21:29:03 +01:00
Christoph Oelckers
f09e7ed32f - spawn functions. 2021-12-25 21:29:03 +01:00
Christoph Oelckers
40ae38c173 - calcChaseCamPos. 2021-12-25 21:29:03 +01:00
Christoph Oelckers
a3f1821670 - nPlayerViewSect 2021-12-25 21:29:03 +01:00
Christoph Oelckers
eaa155d52e - various sectnums, 2021-12-25 21:29:02 +01:00
Christoph Oelckers
9b19845dfb - AddMovingSector/CheckPushBlock 2021-12-25 21:29:02 +01:00
Christoph Oelckers
63d66e95c5 - runlist_ProcessSectorTag 2021-12-25 21:29:02 +01:00
Christoph Oelckers
1163a79da9 - renamed sectp in runlist_ProcessSectorTag 2021-12-25 21:29:02 +01:00
Christoph Oelckers
a58548c2f9 - AIElev 2021-12-25 21:29:02 +01:00
Christoph Oelckers
7713723045 - Bullets and bobs. 2021-12-25 21:29:02 +01:00
Christoph Oelckers
b191bca49e - BuildAnim 2021-12-25 21:29:01 +01:00
Christoph Oelckers
2394420f48 - quick replacements 2021-12-25 21:29:01 +01:00
Christoph Oelckers
109ff8c3cb - Above and Below 2021-12-25 21:29:01 +01:00
Christoph Oelckers
7b84a1464c - don't access invalid sector in DrawView.
Old bug exposed by having operator[] assert on bad access to sector[].
2021-12-25 21:29:01 +01:00
Christoph Oelckers
aee560624d - some more sectors. 2021-12-25 21:29:01 +01:00
Christoph Oelckers
78d9b78193 - most of the rest of the walls. 2021-12-25 21:29:00 +01:00
Christoph Oelckers
5374dafb56 - switches 2021-12-25 21:29:00 +01:00
Christoph Oelckers
ec12eb11f6 - palette loops for renderer. 2021-12-25 21:29:00 +01:00
Christoph Oelckers
cdef530597 - PlayerPushSect 2021-12-25 21:29:00 +01:00
Christoph Oelckers
5e01841f1e - MoveSector et.al. 2021-12-25 21:29:00 +01:00
Christoph Oelckers
0b254255e2 - sector ambience 2021-12-25 21:28:59 +01:00
Christoph Oelckers
c933eff59f - Traps 2021-12-25 21:28:59 +01:00
Christoph Oelckers
e57f9e08e9 - slides. 2021-12-25 21:28:59 +01:00
Christoph Oelckers
44639faabb - Flickers 2021-12-25 21:28:59 +01:00
Christoph Oelckers
e90d1266ae - Glows. 2021-12-25 21:28:59 +01:00
Christoph Oelckers
dfbb5192fb - addFlash at.al. 2021-12-25 21:28:59 +01:00
Christoph Oelckers
20891f276d - use pointers in runlist_ProcessWallTag and all its subfunctions. 2021-12-25 21:28:58 +01:00
Christoph Oelckers
2d937891ac - 3x twoSided 2021-12-25 21:28:58 +01:00
Christoph Oelckers
2d1f5fc576 - Exhumed: some cleanup. 2021-12-25 21:28:58 +01:00
Christoph Oelckers
61d5680950 more wall loops 2021-12-25 21:28:58 +01:00
Christoph Oelckers
269bac76cd loop cleanup in SnapSectors 2021-12-25 21:28:58 +01:00
Christoph Oelckers
9203ca425e Exhumed: ExplodeEnergyBlock 2021-12-25 21:28:57 +01:00
Christoph Oelckers
38d64fc437 spritetype::setsector 2021-12-25 21:28:57 +01:00
Christoph Oelckers
c2613d9720 EventObject 2021-12-25 21:28:57 +01:00
Christoph Oelckers
4928187b02 - handle the RR geometry hack 2021-12-25 21:28:57 +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
714b5ac872 - movesprite handled 2021-12-25 21:28:56 +01:00
Christoph Oelckers
3bd1272e08 - sectnum removal step 2021-12-25 21:28:56 +01:00
Christoph Oelckers
6aac952658 - started eliminating sectnum 2021-12-25 21:28:56 +01:00
Christoph Oelckers
d1f7269ca8 replaced cursectnum with a cursector pointer 2021-12-25 21:28:56 +01:00
Christoph Oelckers
69a7b4d0bc - final cleanup before replacement 2021-12-25 21:28:55 +01:00
Christoph Oelckers
fcbf861ad4 - final preparations for changing type of cursectnum 2021-12-25 21:28:55 +01:00
Christoph Oelckers
22b2f64016 dukeplayer stuff 2021-12-25 21:28:55 +01:00
Christoph Oelckers
312b1fd39f - cursectnum first half 2021-12-25 21:28:55 +01:00
Christoph Oelckers
265abf7fa6 — Duke: Use BFSSectorSearch to handle the hitradius searches without using indices.
(and a bit nicer looking loop condition.)
2021-12-25 21:28:55 +01:00
Christoph Oelckers
b1b0c5d25c — Duke: use twoSided utility where appropriate. 2021-12-25 21:28:54 +01:00
Christoph Oelckers
d115d90961 - Duke: prefer calling the sector pointer variants of engine functions. 2021-12-25 21:28:54 +01:00
Christoph Oelckers
ef7fcd824f - use insector and sector pointer initialization for iterator 2021-12-25 21:28:54 +01:00
Christoph Oelckers
2979fb9e03 - new access methods for spritetype and DDukeActor. 2021-12-25 21:28:54 +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
e179b9332d - all shorts reviewed.
Should be all clear now - the biggest limiter in Exhumed is the run list with ~25000 entries which may need more work if it is to be extended.
2021-12-25 21:28:53 +01:00
Christoph Oelckers
83a928adde - next 100 shorts reviewed.
seq.cpp/seq.h was just renamed to int16_t.
2021-12-25 21:28:52 +01:00
Christoph Oelckers
d73c7aa543 - short review and disasm variable renaming
(down to 200 shorts)
2021-12-25 21:28:52 +01:00
Christoph Oelckers
033a73bce0 - Exhumed short review, part 2.
Down to 350.
2021-12-25 21:28:52 +01:00
Christoph Oelckers
1790ced1f8 - Exhumed: renamed disassembly fields in player struct. 2021-12-25 21:28:52 +01:00
Christoph Oelckers
30b42d24a0 - Exhumed short review
(down to < 550)
2021-12-25 21:28:52 +01:00
Christoph Oelckers
4e30ba339b - got rid of the tempsector... arrays in Duke's polymost interface.
Instead use some of the free parts in sectortype thats needed for the other games.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
c5e45f1021 - use actor->sector() to initialize iterators. 2021-12-25 21:28:51 +01:00
Christoph Oelckers
aada3f3d19 - renamed DDukeActor::getSector. 2021-12-25 21:28:51 +01:00
Christoph Oelckers
2247509a67 - Blood baseWall optimzation 2021-12-25 21:28:51 +01:00
Christoph Oelckers
d5c27e6239 - unlimited the bit arrays for the automap and the bunch drawer, removed some leftover constants/declarations. 2021-12-25 21:28:50 +01:00
Christoph Oelckers
d30bf8c8bb - fixed Blood's mirror render hack for Polymost.
This adds 4 walls and 1 sector without counting them, so we must adjust allocations and array access to handle OOB access and temporarily increase the counter for the mirror render pass.

The new renderer does not need this stuff.
2021-12-25 21:28:50 +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
a21f6b6240 - migrated Exhumed's sector extensions to the actual struct. 2021-12-25 21:28:49 +01:00
Christoph Oelckers
e034635e12 - migrated Blood's xsector and got rid of the static global array. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
993821b75f - migrated Blood's other non-X sector properties. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
f7e61eeef7 - migrated Blood's portal links into sectortype. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
cc41f4e7c6 - migrated Duke's added sector properties. 2021-12-25 21:28:48 +01:00
Christoph Oelckers
14907a9a97 - sector extension basics. 2021-12-25 21:28:48 +01:00
Mitchell Richters
46f4f17644 - Blood: Fix linker error under POSIX compilation environments. 2021-12-25 21:28:47 +01:00
Christoph Oelckers
94a37dfcdc - extended walltype to directly manage Blood's XWALL.
Unfortunately this had to be done in the base class so that we can still maintain the walls in a global array.
The tradeoffs of better abstractions would be far too costly here than the added 16 bytes to the wall struct.
2021-12-25 21:28:47 +01:00
Christoph Oelckers
6217623c24 - Blood: removed unused/redundant functions. 2021-12-25 21:28:47 +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
a6bf9c7208 - use proper owner interface in nnext sound check. 2021-12-25 21:28:45 +01:00
Christoph Oelckers
72da21a7e3 - renamed variable for clarification. 2021-12-25 21:28:45 +01:00
Christoph Oelckers
bee70155d2 - make XSPRITE::target a pointer 2021-12-25 21:28:45 +01:00
Christoph Oelckers
d576e8f438 - removed a few of the remaining shorts. 2021-12-25 21:28:44 +01:00
Christoph Oelckers
28f7303af3 - a few automatic replacements. 2021-12-25 21:28:44 +01:00
Christoph Oelckers
93f5a111bf - all direct references to xsector have been removed. 2021-12-25 21:28:44 +01:00
Christoph Oelckers
c54137766c - iterator loops in sectorfx.cpp. 2021-12-25 21:28:44 +01:00
Christoph Oelckers
b3bf1bc037 - some simple replacements, mostly search & replace. 2021-12-25 21:28:44 +01:00
Christoph Oelckers
8f5b9d2f03 - nXSector is gone. 2021-12-25 21:28:43 +01:00
Christoph Oelckers
a0ef54cb54 - remove XSECTOR::reference. 2021-12-25 21:28:43 +01:00
Christoph Oelckers
4ed1ee77c7 - several more xsector references removed. 2021-12-25 21:28:43 +01:00
Christoph Oelckers
adaa132515 - lots of boilerplate sections to get a pXSector pointer replaced.
Looks like this was originally an inline function, judging from how this was repeated all over again.
2021-12-25 21:28:43 +01:00
Christoph Oelckers
2e8e5544c5 - ActionScan internals cleaned up. 2021-12-25 21:28:43 +01:00
Christoph Oelckers
1a8cf9b2f9 - removed pX... parameter from ActionScan. 2021-12-25 21:28:42 +01:00
Christoph Oelckers
f06697ed29 - removed pX... parameter from from trTriggerSector. 2021-12-25 21:28:42 +01:00
Christoph Oelckers
ccd6af6272 - Blood: transitioned several functions in actor.cpp to the new method to acces the x() data. 2021-12-25 21:28:42 +01:00
Christoph Oelckers
32f141ad39 - XSECTOR::reference is gone. 2021-12-25 21:28:42 +01:00
Christoph Oelckers
576a473ec8 -XWALL::references is not needed anymore. 2021-12-25 21:28:42 +01:00
Christoph Oelckers
db9d12d19f - evrListRedirectors
The wall/sector parts of this look currently unused,
2021-12-25 21:28:42 +01:00
Christoph Oelckers
b23a2865b8 - useSectorLightChanger 2021-12-25 21:28:41 +01:00
Christoph Oelckers
1472d021f6 - use regular indices instead of xindices for the SEQ list.
This also fixes incorrect use of walls in the nnext sector checks for sequences.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
c019e118a5 - cleanup of shadeList, panList and wallPanList.
Made them TArrays and let them store pointers to the contained objects instead of xoffsets.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
c182900425 - cleanup of trTriggerWall's API. 2021-12-25 21:28:41 +01:00
Christoph Oelckers
59312c42bb - eliminated ca. half of the xwall references. 2021-12-25 21:28:41 +01:00
Christoph Oelckers
9cad3196ed - getSourceBusy 2021-12-25 21:28:40 +01:00
Christoph Oelckers
4cfc1577e2 - some simple xwall[] replacements. 2021-12-25 21:28:40 +01:00
Christoph Oelckers
70da9e2526 - first xwall[] removal in Blood. 2021-12-25 21:28:40 +01:00
Christoph Oelckers
19f3365efc - Blood: add x-access functions to spritetype and walltype.
This is merely a refactoring aid to get everything in a state that later allows merging these into one.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
9ab35816ea - the crane still stored a sector index in temp_data. 2021-12-25 21:28:40 +01:00
Christoph Oelckers
69c21407a7 - pass a sector pointer to checkcursectnums. 2021-12-25 21:28:39 +01:00
Christoph Oelckers
3ce2375a3e - LocateTheLocator + related sector storage in temp_data 2021-12-25 21:28:39 +01:00
Christoph Oelckers
64f1029416 - Duke: pass a sector pointer to callsound. 2021-12-25 21:28:39 +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
47e207f158 - eliminated spritetype::index.
# Conflicts:
#	source/games/sw/src/swactor.h
2021-12-25 21:28:38 +01:00
Christoph Oelckers
fa48b740c0 -proper owner storage for Duke. 2021-12-25 21:28:38 +01:00
Christoph Oelckers
b9602bbb05 - store owner outside the sprite. 2021-12-25 21:28:38 +01:00
Christoph Oelckers
10e6486744 - fixed typo in GenDudeExtra save check. 2021-12-25 21:28:38 +01:00
Christoph Oelckers
771f5e3338 - removed all old savegame handling 2021-12-25 21:28:38 +01:00
Christoph Oelckers
77a23e39c5 - Blood: added closing EndObject() call to DUDEEXTRA serializer. 2021-12-25 21:28:38 +01:00
Christoph Oelckers
6705e8e51e - moved xsprite into DBloodActor and save all relevant parts of DBloodActor.
This completes Blood's transition.
2021-12-25 21:28:37 +01:00
Christoph Oelckers
766d87106a - we do not need XSPRITE::reference anymore. 2021-12-25 21:28:37 +01:00
Christoph Oelckers
3d22bfa362 - do not crunch condition info to an int.
Once the global sprite array is gone we need full actor info here.
2021-12-25 21:28:37 +01:00
Mitch Richters
c6f2aaf1b7 - Miscellaneous fixes to commit to change sector checks over to validSectorIndex().
* Fix missed changeover in Blood's `actSpawnSprite()`.
* Fix non-negated check on a `validSectorIndex()` call in Blood's `debrisMove()`.
* Removed a superfluous terminator in Duke's `actor.cpp`.
* Fixed bad call to `validSectorIndex()` in Exhumed's `AIAnim::Tick()`.
2021-12-25 21:28:37 +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
a94f298600 - print new errors in red. 2021-12-16 11:56:26 +01:00
Christoph Oelckers
d011f3c201 - Blood: validate upper/lower sector links before starting a level.
Originally this just performed an OOB memory access, but with Raze's setup it would dereference a null pointer so these must be eliminated.
2021-12-16 11:54:55 +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
7c4233bcf7 - replaced fallthrough__ with [[fallthrough]] as we are requiring C++17 and don't need workarounds for that. 2021-12-14 12:27:28 +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
Christoph Oelckers
6e43f1a15a - Blood: refine picnum 0 filter to apply to face sprites only. 2021-12-13 17:58:11 +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
498abf25f3 - Blood: make sure that invalid sprites don't get rendered at all.
Seems the game may have depended on them being clipped by the floor or ceiling.
2021-12-13 11:45:28 +01:00
Christoph Oelckers
e104316e75 - fixed bad parameter to getzrange.
This originated from 1d39bb371e where the getzrange_old function was removed
2021-12-13 09:39:57 +01:00
Christoph Oelckers
507dc10e4f - Duke/RR: Fixed sprite validation checks in animatesprites. 2021-12-11 09:57:02 +01:00
Mitchell Richters
3269d6a398 - Duke: Ensure all weapon variables used for interpolation have the o values set when CON updates them.
* Hasn't been an issue to date but could become one should a mod set these.
* Can't simply back the variable up and set the main one because unless the mod knows we're interpolating, it could have undesirable effects.
2021-12-10 17:31:51 +11:00
Mitchell Richters
ee1ffd2347 - Duke: Fix lotag signedness issue affecting SE10 (door auto-close).
* Originated in 01abe7b2ac while removing a casting to short.
* Fixes #594.
2021-12-10 17:26:56 +11:00
Mitch Richters
5aa4243327 - Duke: Test tsprite's sector in animatesprites_d() following crash while noclipping in Duke WT's E5L1. Apply same fix to animatesprites_r() as well. 2021-12-07 22:55:08 +11:00
Mitch Richters
6aba76cfe5 - Duke/RR: Fix RR crash while operating weapon outside of a sector (noclipping, etc). 2021-12-07 21:42:21 +11:00
Mitchell Richters
af96180123 - Duke/RR; Don't lose the precision of p->MotoSpeed when calculating p->VBumpTarget. 2021-12-07 20:02:30 +11:00
Mitch Richters
63a19bbb15 - Port spritetype::insector() over from develop and use with sector nullptr checks in 6539d72663. 2021-12-07 19:56:50 +11:00
Mitch Richters
6539d72663 - Duke/RR: Add three sector nullptr checks after receiving crash in Redneck Rampage Route 66 while noclipping. 2021-12-07 19:44:35 +11:00
Mitch Richters
85a2e3bd06 - Duke/RR: Do nullptr test in floorspace_d()/floorspace_r() functions to match ceilingspace_*() functions. 2021-12-07 19:41:25 +11:00
Mitch Richters
a7e99a3bd1 - Duke/RR: Do nullptr test in ceilingspace_r() after receiving crash in Redneck Rampage Route 66 (do Duke for parity). 2021-12-07 19:41:22 +11:00
Mitch Richters
96867e15d5 - Duke: Apply same nullptr fix in 2e7496888a to prelevel_r(), and rename sect to sectp for 1:1 match between _d.cpp and _r.cpp files. 2021-12-07 19:41:18 +11:00
Mitch Richters
2e7496888a - Duke: Re-add lost nullptr check in prelevel_d() that was causing a crash while loading Duke Nukem's Penthouse Paradise. 2021-12-03 10:14:41 +01:00
Christoph Oelckers
81268cb9b6 partial Revert of "- optimized vector math."
This reverts commit 826fd7ddb2.

Looks like there's dependencies on the intermediate variables. The optimized code gave the same result but did not work anymore.
2021-12-02 23:32:20 +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
5bb114ba6e - fixed two bad actor references in Exhumed's radial damage code.
The radial source is passed through pRadialActor, not pObjActor.
2021-11-30 22:44:54 +01:00
Christoph Oelckers
690994ea1e - Duke: fix missing sectp update in processinput_d.
RR version had this correct
2021-11-30 00:20:16 +01:00
Christoph Oelckers
64cad55d73 - fixed updatesector and changed updatesectorz to use the same search algorithm.
The initial distance check in updatesectorneighbor had a far too low threshold which would skip the breadth-first search for relatively small distances already.
Exhumed's LEV1 and Duke's Lunatic Fringe were the most obvious candidates where this could cause problems.
Changed to use a mixture of the original updatesector with the revised algorithm so that all immediate neighbors of the start sector will get visited unconditionally.

updatesectorz was still the original function from Shadow Warrior, this also was changed to use the same algorithm as uodatesector.
2021-11-30 00:15:25 +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
b54e52330c - Blood: don't play the same looped sound multiple times on the same actor.
This caused some strong echoing on E4M6.
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
Mitch Richters
73c5bef580 - Blood: Remove duplicated code from render3DViewPolymost() that's already performed in viewDrawScreen(). 2021-11-29 00:56:33 +01:00
carnivoroussociety
61cafc7d57 [Blood] Fix self collisions for lifeleech projectiles 2021-11-29 00:56:33 +01:00
carnivoroussociety
958d004119 [Blood] Match view height clamping behavior to 1.21 2021-11-29 00:56:32 +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
2949361c82 - Duke/RR: added null checks to all spawn() calls 2021-11-29 00:56:32 +01:00
Christoph Oelckers
d5a6be3d96 - cleaned up Duke's spawn code.
The paths for initializing a map placed sprite and spawning a new actor at run time are now fully separate aside from the actual initialization of the actor.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
4c7662b4ea - Duke/RR: guard all calls to EGS with a null pointer check.
Spawning sprites into the void will crash the engine so these must be blocked which requires a failure check here.
With this pressing fire while in the void no longer crashes the game - it won't fire anything, either, though.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
fcbb7320a8 - Duke/RR: added all checks needed for not letting Duke crash with noclip when not accepting -1 as a valid sector pointer.
All places that were causing a crash are now guared by calling 'insector()'.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
8972dbe5da - actorstayput 2021-11-29 00:56:31 +01:00
Christoph Oelckers
4a81d45630 - the remaining sector[] stuff in Duke/RR.
What remains is either engine interface code or not easily replaced.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
5e66a3331d - getanimationgoal. 2021-11-29 00:56:30 +01:00
Christoph Oelckers
baf36a321b - inside, haskey and removed unused processmove functions. 2021-11-29 00:56:30 +01:00
Christoph Oelckers
3970c9a757 - use sector pointers in actors_lava.cpp 2021-11-29 00:56:30 +01:00
Christoph Oelckers
9b6d6eb7f9 - sector[] in render interface 2021-11-29 00:56:30 +01:00
Christoph Oelckers
db96e93adc - animatesect, setanimation and related stuff. 2021-11-29 00:56:30 +01:00
Christoph Oelckers
b0ced98d5e - changed main EGS function. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
09c2677fe7 - lots of EGS calls. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
876d1dbe1f - operatesectors and activatebysector. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
c57c007010 - do the remaining st handlers. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
2aec8f47d3 - more st functions. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
2a290dec48 - handle_st15 / handle_st16. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
da4df04e7d - sector[] in handle_st09. 2021-11-29 00:56:28 +01:00
Christoph Oelckers
45519f67c1 - Duke: let neartag return pointers 2021-11-29 00:56:28 +01:00
Christoph Oelckers
a9aadfd63d - neartag cleanup in checksectors. 2021-11-29 00:56:28 +01:00
Christoph Oelckers
3d05020f4c - checkhitceiling + ceilingglass are sector[] free. 2021-11-29 00:56:28 +01:00
Christoph Oelckers
747fc11eb7 - Duke: use sector pointer in movement code 2021-11-29 00:56:28 +01:00
Christoph Oelckers
931c71a78c - use sector iterator for cheatUnlock 2021-11-29 00:56:27 +01:00
Christoph Oelckers
a7634c4cad - Duke: use pointers in interpolation interface. 2021-11-29 00:56:27 +01:00
Christoph Oelckers
0d8b380b05 - use wallsofsector for all remaining iterations over a sector's walls. 2021-11-29 00:56:27 +01:00
Christoph Oelckers
ac5425a545 - extended player_orig.os to full int.
This was the last remaining short variable in Duke/RR that holds a sector index.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
a0950081ad - fixed bad sector use in handle_st18 2021-11-29 00:56:27 +01:00
Christoph Oelckers
5c9327a788 - use pointer variant of nextsectorneighborz. 2021-11-29 00:56:27 +01:00
Christoph Oelckers
0f2f46ec35 - made one_parallax_sectnum a pointer 2021-11-29 00:56:26 +01:00
Christoph Oelckers
bc199d00c7 - made 'clouds' a pointer array. 2021-11-29 00:56:26 +01:00
Christoph Oelckers
7a9e39a96b - delete some inactive code. 2021-11-29 00:56:26 +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
7126aa22f4 - preparations in the map loader for dynamically sized data storage.
This also consolidates these parts for Blood with the other games.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
33a3e0d8bf - deleted some unused global variables, code simplification plus extended wall index field in Trap
Todo: give fields more meaningful names!
2021-11-29 00:56:25 +01:00
Christoph Oelckers
c1c59006bc - Exhumed: cleaned up disassembly-like code in SnapSectors 2021-11-29 00:56:25 +01:00
Christoph Oelckers
e6682f4489 - Exhumed: some simple wall stuff 2021-11-29 00:56:25 +01:00
Christoph Oelckers
7b1345d3e5 - Exhumed: wall stuff in AddFlash 2021-11-29 00:56:24 +01:00
Christoph Oelckers
c31d8a93fd - a few more
Enough of this - Duke is clearly clean of bad storage now
2021-11-29 00:56:24 +01:00
Christoph Oelckers
53122355fe - more sectors in spawn.cpp 2021-11-29 00:56:24 +01:00
Christoph Oelckers
c79dace730 - eliminated sector[] in position checkers 2021-11-29 00:56:24 +01:00
Christoph Oelckers
27af8a52e9 - the final walls
What is left now of wall[] and wallnum() needs to remain.
2021-11-29 00:56:24 +01:00
Christoph Oelckers
a26dc25e97 - lotsofpopcorn 2021-11-29 00:56:24 +01:00
Christoph Oelckers
35eb94b89a - lotsofcolourglass 2021-11-29 00:56:23 +01:00
Christoph Oelckers
344041167e - add setanimation variant taking a wall pointer
Mainly to get rid of wallnum()calls elsewhere.
2021-11-29 00:56:23 +01:00
Christoph Oelckers
83344818fd - pass wall pointer to breakwall 2021-11-29 00:56:23 +01:00
Christoph Oelckers
567a360092 - store wall pointers in animwall 2021-11-29 00:56:23 +01:00
Christoph Oelckers
6b73a37b56 - made mirrorsector a pointer array 2021-11-29 00:56:23 +01:00
Christoph Oelckers
58cd8bd6b9 - make mirrorwall a pointer array 2021-11-29 00:56:23 +01:00
Christoph Oelckers
caa9ef6dd3 - make access_wallnum a pointer 2021-11-29 00:56:22 +01:00
Christoph Oelckers
e7369a2796 - use pointers for checkhitswitch and took separated clearcameras to a new functions to make this free of gotos. 2021-11-29 00:56:22 +01:00
Christoph Oelckers
9d8e7ea759 - crane cleanup
This now uses its own struct where it can store the needed actor pointer directly.
2021-11-29 00:56:22 +01:00
Christoph Oelckers
d405da9195 - changed furthestcanseepoint return value
This does not need to return a sector - the caller merely expects success or failure.
2021-11-29 00:56:22 +01:00
Christoph Oelckers
4823152107 - hitawall 2021-11-29 00:56:22 +01:00
Christoph Oelckers
d45ab528e6 - hitscan in player_r.cpp 2021-11-29 00:56:21 +01:00
Christoph Oelckers
1a11e445c3 - remaining hitscans in player_d.cpp 2021-11-29 00:56:21 +01:00
Christoph Oelckers
b68c66dae6 -Duke/RR: started migrating hitscan to pointer usage. 2021-11-29 00:56:21 +01:00
Christoph Oelckers
09e75ddca2 - change wall parameter of checkhitwall. 2021-11-29 00:56:21 +01:00
Christoph Oelckers
c410b1be45 - glass stuff 2021-11-29 00:56:21 +01:00
Christoph Oelckers
200daacd3c - checksectors* 2021-11-29 00:56:20 +01:00
Christoph Oelckers
a38fdd2890 -more in spawneffectors 2021-11-29 00:56:20 +01:00
Christoph Oelckers
94d0e9775f - spawneffectors 2021-11-29 00:56:20 +01:00
Christoph Oelckers
cccc577c2e - lotsofpopcorn + dofurniture 2021-11-29 00:56:20 +01:00
Christoph Oelckers
8c4cb75d8c - checkhitswitch_r 2021-11-29 00:56:20 +01:00
Christoph Oelckers
6d4365f3a2 - animatewalls_r 2021-11-29 00:56:20 +01:00
Christoph Oelckers
530c29973e - more walls in sectors_d.cpp 2021-11-29 00:56:20 +01:00
Christoph Oelckers
7268e779a7 - checkhitswitch_d 2021-11-29 00:56:19 +01:00
Christoph Oelckers
8cf3963901 - animatewalls_d 2021-11-29 00:56:19 +01:00
Christoph Oelckers
7615a52126 -operatesectors + operateforcefields. 2021-11-29 00:56:19 +01:00
Christoph Oelckers
60f16e8fb8 - handle_st09 2021-11-29 00:56:19 +01:00
Christoph Oelckers
463ce55d0b - premap 2021-11-29 00:56:19 +01:00
Christoph Oelckers
7a504e27d2 - premap_d 2021-11-29 00:56:19 +01:00
Christoph Oelckers
6b8e7b3fbc - RR: movement code 2021-11-29 00:56:18 +01:00
Christoph Oelckers
1953f0f599 - delete unused variables. 2021-11-29 00:56:18 +01:00
Christoph Oelckers
aee2668088 - RR shootWeapon 2021-11-29 00:56:18 +01:00
Christoph Oelckers
b97f8706ad - operateTripBomb 2021-11-29 00:56:18 +01:00
Christoph Oelckers
e88047fc45 - wall[] in shootknee, shootweapon and shootlaser. 2021-11-29 00:56:18 +01:00
Christoph Oelckers
81894fd831 - Duke: shootbloodsplat 2021-11-29 00:56:18 +01:00
Christoph Oelckers
2fa027a686 - RR: deal with wall[] in actor_lava.cpp 2021-11-29 00:56:17 +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
Christoph Oelckers
df5d980f79 - handle all remaining StatIterators. 2021-11-29 00:56:13 +01:00
Christoph Oelckers
69223af7b0 - SpriteControl and subfunctions. 2021-11-29 00:56:13 +01:00
Christoph Oelckers
591a3f623d - dead code removal. 2021-11-29 00:56:13 +01:00
Christoph Oelckers
79dcd2c178 - iterators in CollectPortals 2021-11-29 00:56:13 +01:00
Christoph Oelckers
8df851c3e3 - unsaved bits. 2021-11-29 00:56:13 +01:00
Christoph Oelckers
f8105dc92b - track.cpp complete. 2021-11-29 00:56:12 +01:00
Christoph Oelckers
4796ebc73c - track setup code 2021-11-29 00:56:12 +01:00
Christoph Oelckers
92c497ac29 - TrackSetup 2021-11-29 00:56:12 +01:00
Christoph Oelckers
c34f0ab210 - SectorObjectSetupBounds
Note: Do proper checks on crashing mapping errors. Asserts are insufficient for these!
2021-11-29 00:56:12 +01:00
Christoph Oelckers
41f8c6f4af - owner fixes in weapons.cpp.
# Conflicts:
#	source/games/sw/src/game.h

# Conflicts:
#	source/games/sw/src/game.h
#	source/games/sw/src/weapon.cpp
2021-11-29 00:56:12 +01:00
Christoph Oelckers
e908e4ff44 - final bit of weapon.cpp cleanup. 2021-11-29 00:56:12 +01:00
Christoph Oelckers
31f4a7464a - finishing up with DoDamage. 2021-11-29 00:56:11 +01:00
Christoph Oelckers
487e2b7a1e - ActorHealth + ActorPain 2021-11-29 00:56:11 +01:00
Christoph Oelckers
93ad08a167 - ActorStdMissile + ActorDamageSlide
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:56:11 +01:00
Christoph Oelckers
2c39177c07 - ActorChooseDeath 2021-11-29 00:56:11 +01:00
Christoph Oelckers
604731bc08 - GetDamage
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:56:11 +01:00
Christoph Oelckers
2b4ed0eaf3 - PlayerCheckDeath 2021-11-29 00:56:10 +01:00
Christoph Oelckers
14b3a68e8c - DoDamage API.
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:56:10 +01:00
Christoph Oelckers
f8eac8c8eb - SpriteOverlap 2021-11-29 00:56:10 +01:00
Christoph Oelckers
2c4862b220 - DoDamageTest + DoHitscanDamage + DoFlamesDamageTest 2021-11-29 00:56:10 +01:00
Christoph Oelckers
ddd6f881f0 - DoExpDamageTest + DoMineExpMine 2021-11-29 00:56:10 +01:00
Christoph Oelckers
15e7e784c5 - did the internal movement helpers. 2021-11-29 00:56:09 +01:00
Christoph Oelckers
a073ef65e7 - low level move functions now return a Collision struct.
# Conflicts:
#	source/games/sw/src/sprite.cpp
2021-11-29 00:56:09 +01:00
Christoph Oelckers
606ce997ac - cleanup of collision maintenance.
u->ret is gone, and for clearing the collision info the proper utilities are being called now.
2021-11-29 00:56:09 +01:00
Christoph Oelckers
5f32bc17ef - WeaponMoveHit 2021-11-29 00:56:09 +01:00
Christoph Oelckers
edf84c6fbc - DoStar, DoCrossBolt, DoPlasmaDone 2021-11-29 00:56:09 +01:00
Christoph Oelckers
f516a538d4 - Seekers + BlurExtend. 2021-11-29 00:56:08 +01:00
Christoph Oelckers
7d99745cd6 - DoPlasmaFountain + InitPlasmaFountain 2021-11-29 00:56:08 +01:00
Christoph Oelckers
f888375e2a - several u->ret replaced. 2021-11-29 00:56:08 +01:00
Christoph Oelckers
05a812f066 - DoPlasma, DoCoolgFire, DoEelFire. 2021-11-29 00:56:08 +01:00
Christoph Oelckers
0377f3348c - DoGrenade 2021-11-29 00:56:08 +01:00
Christoph Oelckers
45c2129ac4 - DoVulcanBoulder 2021-11-29 00:56:07 +01:00
Christoph Oelckers
c015e6691a - DoMineStuck + subfunctions. 2021-11-29 00:56:07 +01:00
Christoph Oelckers
01609b8e9f - DoMine 2021-11-29 00:56:07 +01:00
Christoph Oelckers
4d5569d785 - several very simple functions. 2021-11-29 00:56:07 +01:00
Christoph Oelckers
a0fd5bef66 - DoLaserStart, DoRail, DoRailStart, DoRocket 2021-11-29 00:56:07 +01:00
Christoph Oelckers
35579a9f08 - SpawnExoZAdjust arguments. 2021-11-29 00:56:06 +01:00
Christoph Oelckers
dd528c5eab - DoMicroMini, SpawnExtraMicroMini, DoMicro, DoUziBullet, DoBoltSeeker 2021-11-29 00:56:06 +01:00
Christoph Oelckers
acc9a09db9 - DoElectro, DoLavaBoulder, DoSpear, SpawnCoolieExp.
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:56:06 +01:00
Christoph Oelckers
151306d763 - SpawnFireballFlames
# Conflicts:
#	source/games/sw/src/weapon.cpp
#	source/games/sw/src/weapon.h
2021-11-29 00:56:06 +01:00
Christoph Oelckers
b863901037 - Spawn*flames 2021-11-29 00:56:06 +01:00
Christoph Oelckers
e56b055e2e - Spawn(Goro)FireballExp 2021-11-29 00:56:06 +01:00
Christoph Oelckers
818bdc3b03 - WeaponMoveHit plus some smaller functions. 2021-11-29 00:56:05 +01:00
Christoph Oelckers
8af0455f92 - VehicleMoveHit 2021-11-29 00:56:05 +01:00
Christoph Oelckers
57fc6ce53a - several smaller Shrap functions. 2021-11-29 00:56:05 +01:00
Christoph Oelckers
10b18d8a9b - SpawnShrap 2021-11-29 00:56:05 +01:00
Christoph Oelckers
e523c78269 - MissileHitMatch 2021-11-29 00:56:04 +01:00
Christoph Oelckers
4568564150 - SpawnTankShellExp, SpawnBunnyExp, SpawnBoltExp 2021-11-29 00:56:04 +01:00
Christoph Oelckers
3a16ac673c - SpawnNuclearExp 2021-11-29 00:56:04 +01:00
Christoph Oelckers
2480beebcf - owner checks in PlayerTakeDamage 2021-11-29 00:56:04 +01:00
Christoph Oelckers
f0c670603e - DoNapalm, DoBloodWorm 2021-11-29 00:56:04 +01:00
Christoph Oelckers
a96cffc4ef - SpawnTracerExp + SpawnMicroExp. 2021-11-29 00:56:03 +01:00
Christoph Oelckers
a40fca5398 - SpawnBigGunFlames 2021-11-29 00:56:03 +01:00
Christoph Oelckers
120a14a9a7 - SpawnGrenadeSecondaryExp 2021-11-29 00:56:03 +01:00
Christoph Oelckers
f3037a0b0c - SpawnGrenadeExp
# Conflicts:
#	source/games/sw/src/weapon.h
2021-11-29 00:56:03 +01:00
Christoph Oelckers
28c07b6b3c - more explosions. 2021-11-29 00:56:03 +01:00
Christoph Oelckers
aa8b217f07 - SpawnMeteorExp 2021-11-29 00:56:02 +01:00
Christoph Oelckers
28e10656b2 - DoFireball + SpawnLittleExp 2021-11-29 00:56:02 +01:00
Christoph Oelckers
cbf8d2324a - DoFindGround(Point) 2021-11-29 00:56:02 +01:00
Christoph Oelckers
6a25b4a560 - getzrange wrappers.
# Conflicts:
#	source/games/sw/src/game.h
2021-11-29 00:56:02 +01:00
Christoph Oelckers
057de89b9b - u->ret cleanup. 2021-11-29 00:56:02 +01:00
Christoph Oelckers
f8a74df87e - Mirvs and Meteors. 2021-11-29 00:56:01 +01:00
Christoph Oelckers
6f0c477e85 - getting rid of COVERinsertsprite, plus cleanup. 2021-11-29 00:56:01 +01:00
Christoph Oelckers
e2c5b33ae1 - MissileSetPos
This removes a lot of GetSpriteIndex references. :)
2021-11-29 00:56:01 +01:00
Christoph Oelckers
6a31b93434 - ring stuff 2021-11-29 00:56:01 +01:00
Christoph Oelckers
512bc7ddbb - InitLavaThrow + InitVulcanBoulder + InitSerpRing. 2021-11-29 00:56:01 +01:00
Christoph Oelckers
79ff267391 - Napalm stuff 2021-11-29 00:56:00 +01:00
Christoph Oelckers
ac277a8ecc - MIRVs. 2021-11-29 00:56:00 +01:00
Christoph Oelckers
78e45e889a - InitSwordAttack 2021-11-29 00:56:00 +01:00
Christoph Oelckers
74b94f4bf3 - InitFistAttack. 2021-11-29 00:56:00 +01:00
Christoph Oelckers
d72bcfec97 - WeaponAutoAimZvel 2021-11-29 00:56:00 +01:00
Christoph Oelckers
674e4b9499 - AimHitscanToTarget, WeaponHitscanShootFeet, InitStar 2021-11-29 00:56:00 +01:00
Christoph Oelckers
d94ed87e43 - WeaponAutoAim 2021-11-29 00:55:59 +01:00
Christoph Oelckers
ee8eb238d2 - TestMissileSetPos 2021-11-29 00:55:59 +01:00
Christoph Oelckers
7f031f06ef - HelpMissileLateral.
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:55:59 +01:00
Christoph Oelckers
514baa9a8f - InitHeartAttack plus some cleanup. 2021-11-29 00:55:59 +01:00
Christoph Oelckers
aec3b40e7b - ContinueHitscan 2021-11-29 00:55:59 +01:00
Christoph Oelckers
105ef08384 - Init(Bunny)Rocket 2021-11-29 00:55:58 +01:00
Christoph Oelckers
0690a5c035 - InitShotgun + InitLaser
InitLaser is unused but fully functional, so let's keep it for modding.
2021-11-29 00:55:58 +01:00
Christoph Oelckers
3b49b053d7 - Init(Zilla)Rail 2021-11-29 00:55:58 +01:00
Christoph Oelckers
35d6f7efd5 - Init(Enemy)Nuke 2021-11-29 00:55:58 +01:00
Christoph Oelckers
7436c17469 - InitMicro 2021-11-29 00:55:58 +01:00
Christoph Oelckers
ecc2da58d5 - 4 more damage functions. 2021-11-29 00:55:57 +01:00
Christoph Oelckers
290482ffb1 - several damage functions. 2021-11-29 00:55:57 +01:00
Christoph Oelckers
a662f8b076 - InitSerpSpell + SpawnDemonFist 2021-11-29 00:55:57 +01:00
Christoph Oelckers
3cd05147e5 - InitEnemyRocket + InitSerpMonstSpell 2021-11-29 00:55:57 +01:00
Christoph Oelckers
63870b6077 - InitEnemyRail, InitZillaRocket, InitEnemyStar 2021-11-29 00:55:57 +01:00
Christoph Oelckers
289856a1fc - InitEnemyCrossbow, InitSkelSpell, InitCoolgFire 2021-11-29 00:55:56 +01:00
Christoph Oelckers
f66dcd8d53 - fixed deletion of FAF_COPY actors.
This called the wrong function.
2021-11-29 00:55:56 +01:00
Christoph Oelckers
845cf124e1 - drips and eels. 2021-11-29 00:55:56 +01:00
Christoph Oelckers
84e99a377d - Init*Trap. 2021-11-29 00:55:56 +01:00
Christoph Oelckers
6e922b2851 - InitTracerUzi 2021-11-29 00:55:56 +01:00
Christoph Oelckers
e8791001e4 - InitTracerTurret + InitTracerAutoTurret 2021-11-29 00:55:55 +01:00
Christoph Oelckers
70adfe43bf - BulletHitSprite 2021-11-29 00:55:55 +01:00
Christoph Oelckers
ff60bf0430 - MissileWaterAdjust
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:55:55 +01:00
Christoph Oelckers
81131f7a71 - HitscanSpriteAdjust 2021-11-29 00:55:55 +01:00
Christoph Oelckers
9c0a5312eb - InitUzi 2021-11-29 00:55:55 +01:00
Christoph Oelckers
c053b46a6d - removed the disabled and mostly non-functional code for the EMP gun (secondary fire of railgun) 2021-11-29 00:55:54 +01:00
Christoph Oelckers
5900ac7db4 - InitTankShell + InitEMP. 2021-11-29 00:55:54 +01:00
Christoph Oelckers
a25bdf2354 - InitTurretMicro 2021-11-29 00:55:54 +01:00
Christoph Oelckers
4141b5d609 - InitTurretRocket + InitTurretFireball 2021-11-29 00:55:54 +01:00
Christoph Oelckers
6e7892c326 - InitTurretRail + InitTurretLaser 2021-11-29 00:55:54 +01:00
Christoph Oelckers
9eb1f9963a - InitSobjMachineGun 2021-11-29 00:55:53 +01:00
Christoph Oelckers
60d5490654 - Init SobjGun 2021-11-29 00:55:53 +01:00
Christoph Oelckers
2c0a597f06 - WeaponAutoAimHitscan
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:55:53 +01:00
Christoph Oelckers
9d0056f8c7 - Spawn*Sparks functions. 2021-11-29 00:55:53 +01:00
Christoph Oelckers
ddd682aee6 - InitTurretMgun 2021-11-29 00:55:53 +01:00
Christoph Oelckers
da1e97469e - FAFhitscan migration to HITINFO. 2021-11-29 00:55:52 +01:00
Christoph Oelckers
63f9330f53 - InitEnemyUzi 2021-11-29 00:55:52 +01:00
Christoph Oelckers
614757cda4 - InitGrenade 2021-11-29 00:55:52 +01:00
Christoph Oelckers
2515a663cd - InitSpriteGrenade 2021-11-29 00:55:52 +01:00
Christoph Oelckers
7d352d2387 - InitMine 2021-11-29 00:55:52 +01:00
Christoph Oelckers
1491b9ef95 - InitEnemyMine 2021-11-29 00:55:51 +01:00
Christoph Oelckers
f9ea4874ed - InitFireball 2021-11-29 00:55:51 +01:00
Christoph Oelckers
a42e44d662 - InitEnemyFireball 2021-11-29 00:55:51 +01:00
Christoph Oelckers
1b02c9e533 - WarpToUnderwater + WarpToSurface 2021-11-29 00:55:51 +01:00
Christoph Oelckers
5264c6540c - SpriteWarpToUnderwater + SpriteWarpToSurface 2021-11-29 00:55:51 +01:00
Christoph Oelckers
130028fa82 - SpawnSplash(XY)
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-11-29 00:55:50 +01:00
Christoph Oelckers
7411e7e9ba - MissileHitDiveArea 2021-11-29 00:55:50 +01:00
Christoph Oelckers
f438773af9 - internal cleanup of some spawn functions. 2021-11-29 00:55:50 +01:00
Christoph Oelckers
96ebfe808c - turned some macros into functions. 2021-11-29 00:55:50 +01:00
Christoph Oelckers
64e812bd33 - TestDontStick. 2021-11-29 00:55:50 +01:00
Christoph Oelckers
dfb5d07459 - QueueHole 2021-11-29 00:55:49 +01:00
Christoph Oelckers
83d0930a2e - QueueFootPrint + QueuefloorBlood. 2021-11-29 00:55:49 +01:00
Christoph Oelckers
01d2967378 - QueueWallBlood. 2021-11-29 00:55:49 +01:00
Christoph Oelckers
deddd7d514 - it is not necessary to clear the owner of a freshly spawned actor.
They are always spawned owner-less.
2021-11-29 00:55:49 +01:00
Christoph Oelckers
9cefc351a1 - bloody stuff. 2021-11-29 00:55:49 +01:00
Christoph Oelckers
2455c197bf - DoShrapVelocity + SlopeBounce. 2021-11-29 00:55:48 +01:00
Christoph Oelckers
0d45e50ea6 - QueueGeneric + ShrapKillSprite. 2021-11-29 00:55:48 +01:00
Christoph Oelckers
95d3095f8d - DoItemFly 2021-11-29 00:55:48 +01:00
Christoph Oelckers
c14fb9e93f - QueueLoWangs 2021-11-29 00:55:48 +01:00
Christoph Oelckers
58749b2770 - NewStateGroup wrappers replaced. 2021-11-29 00:55:48 +01:00
Christoph Oelckers
a85a1e497f - ActorCoughItem. 2021-11-29 00:55:47 +01:00
Christoph Oelckers
cd8e8e4f67 - removed index based version of SpawnUser. 2021-11-29 00:55:47 +01:00
Christoph Oelckers
3a3c6a4395 - IconDefault 2021-11-29 00:55:47 +01:00
Christoph Oelckers
947f5f1d78 - ItemSpotClear. 2021-11-29 00:55:47 +01:00
Christoph Oelckers
374d0524d2 - first pass over SpawnItemsMatch.
This was purely search & replace.
2021-11-29 00:55:47 +01:00
Christoph Oelckers
6489c60905 - lots of search & replace, plus a few fixes on ActorSpawn. 2021-11-29 00:55:46 +01:00
Christoph Oelckers
d49ae699f8 - ChangeSpriteState + change_sprite_stat. 2021-11-29 00:55:46 +01:00
Christoph Oelckers
e41f49d46d KillSprite internals. 2021-11-29 00:55:46 +01:00
Christoph Oelckers
b705ff3b97 - WallBounce 2021-11-29 00:55:46 +01:00
Christoph Oelckers
300e6df6c3 - MissileHitDiveArea calls. 2021-11-29 00:55:46 +01:00
Christoph Oelckers
0b3b30170c - DoActorZRange parameters. 2021-11-29 00:55:45 +01:00
Christoph Oelckers
7111b2470c - SW: use BFSSearch in TraverseBreakableWalls 2021-11-29 00:55:45 +01:00
Christoph Oelckers
3e558c2295 - use BFSSearch for PreMapCombineFloors. 2021-11-29 00:55:44 +01:00
Christoph Oelckers
1b3b8ab7cc - use wallsofsector in PreMapCombineFloors 2021-11-29 00:55:44 +01:00
Christoph Oelckers
6fc43287b3 - redid Exhumed's BelowNear function.
Use BFSSearch, only run one iteration of the search and only run the search if the result is actually used.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
12c26976f0 - GetClosestSpriteSectors: replace distance calculation with proper math.
No need to sample multiple points along the wall if we can just properly calculate the actual distance. :)
2021-11-29 00:55:44 +01:00
Christoph Oelckers
d2f0934726 - Blood: cleaned up GetClosestSpriteSectors
using BFSSearch now and avoiding pointless loop to avoid setting the checked bit.
The entire outcome was just as if the bit was never checked inside the loop, so do just that when not running in compatibility mode.
This simplifies the remaining code quite a lot because it now just needs to run over all walls with no special case considered.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
1bbbeb8f4c - Blood: reworked GetClosestSpriteSectors to use dynamic arrays, deleted unused GetClosestSectors.
# Conflicts:
#	source/games/blood/src/aibeast.cpp

# Conflicts:
#	source/games/blood/src/aibeast.cpp
#	source/games/blood/src/gameutil.h
2021-11-29 00:55:43 +01:00
Christoph Oelckers
269f2580b9 - obsolete prototypes in Exhumed 2021-11-29 00:55:43 +01:00
Christoph Oelckers
1d9d70613f - char review in SW 2021-11-29 00:55:43 +01:00
Christoph Oelckers
b878bf8aac - SW: renamed all unsigned chars to uint8_t
Also deletes some unused declarations
2021-11-29 00:55:43 +01:00
Christoph Oelckers
4f493d3de1 - Exhumed: made all nPlayer variables ints
This looks safe
2021-11-29 00:55:43 +01:00
Christoph Oelckers
b9b4f1e037 - shorts replaced in Exhumed
only a small part, the easy stuff
2021-11-29 00:55:42 +01:00
Christoph Oelckers
d63b6cda37 - exhumed: made all nAngle variables full ints 2021-11-29 00:55:42 +01:00
Christoph Oelckers
28eca1a023 ‚char‘ review in Blood - part 2 2021-11-29 00:55:42 +01:00
Christoph Oelckers
5422bff683 ‚char‘ review in Blood - part 1 2021-11-29 00:55:42 +01:00
Christoph Oelckers
53998c9cb7 - Blood: remove unneeded replacement functions.
changespritesect is the only one called from the engine.
2021-11-29 00:55:42 +01:00
Christoph Oelckers
e9c79292ff - Blood: use wider integer types for a few more things
Mainly removing shorts from all function signatures, except the engine replace interface, replacing them either with int or bool, depending on the use case.
2021-11-29 00:55:41 +01:00
Christoph Oelckers
b685163ab1 - Blood: extend all 16 bit fields holding sector or wall indices to 32 bit. 2021-11-29 00:55:41 +01:00
Christoph Oelckers
499dc9953b - reduction of 'short' noise in Blood.
Mainly using int16_t for deliberately sized struct fields, auto for temporary saves of global data and making several local variables full int.
This changes nothing substantial.
2021-11-29 00:55:41 +01:00
Christoph Oelckers
345d9c87b6 - RR: no more wall[] in actors_r.cpp 2021-11-29 00:55:41 +01:00
Christoph Oelckers
00edd16834 - Duke: get rid of the remaining wall[] references in actors_d.cpp 2021-11-29 00:55:41 +01:00
Christoph Oelckers
e0260bc709 - Duke/RR: weaponhitwall cleaned up (both variants) 2021-11-29 00:55:40 +01:00
Christoph Oelckers
5bb805663e - Duke/RR: cleaned up the rest of hitradius* as well
Using wallsofsector iterator plus defining local variables more locally.
2021-11-29 00:55:40 +01:00
Christoph Oelckers
63985ce6be - Duke/RR: redo the supremely ugly code to access the third point in hitradius* 2021-11-29 00:55:40 +01:00
Christoph Oelckers
68d653efe9 - made the same changes to hitradius_r
Also had to do some reformatting to get rid of the goto in there.
2021-11-29 00:55:40 +01:00
Christoph Oelckers
821f341e03 - use BFSSearch in hitradius_d 2021-11-29 00:55:39 +01:00
Christoph Oelckers
ad030d7e23 - Duke: SE20 + SE128 are wall-free
Also use symbolic constantfor SE_128 to make it easier to find.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
010162261e - Duke: use utilities in handle_se19 2021-11-29 00:55:39 +01:00
Christoph Oelckers
312bf5bf95 - Duke: use wall utilities in bounce and queball 2021-11-29 00:55:39 +01:00
Christoph Oelckers
58a091067f - use provided sector/wall iterators in cacheit functions 2021-11-29 00:55:39 +01:00
Christoph Oelckers
aadbca8e5d - zombie.cpp. 2021-11-29 00:55:38 +01:00
Christoph Oelckers
95c92153ad - zilla.cpp 2021-11-29 00:55:38 +01:00
Christoph Oelckers
e98e1a6fea - warp.cpp 2021-11-29 00:55:38 +01:00
Christoph Oelckers
21af63dfcc - wallmove.cpp 2021-11-29 00:55:38 +01:00