Commit graph

551 commits

Author SHA1 Message Date
Christoph Oelckers
a6c592b12c - Exhumed: pActor->s() in rex.cpp 2021-12-30 09:57:25 +01:00
Christoph Oelckers
b02feec2e8 - Exhumed: pActor->s() in rat.cpp 2021-12-30 09:57:25 +01:00
Christoph Oelckers
430a0263d5 - Exhumed: pActor->s() in ra.cpp 2021-12-30 09:57:25 +01:00
Christoph Oelckers
d162c36113 - Exhumed: pActor->s() in queen.cpp 2021-12-30 09:57:25 +01:00
Christoph Oelckers
b641da3959 - Exhumed: pActor->s() in player.cpp and view.cpp. 2021-12-30 09:57:25 +01:00
Christoph Oelckers
b6d04ffec0 - Exhumed: pActor->s() in object.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
dca478d284 - Exhumed: pActor->s() in mummy.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
23f274120c - Exhumed: pActor->s() in move.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
ca88e241e1 - Exhumed: pActor->s() in lion.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
5700b8ade6 - Exhumed: pActor->s() in lavadude.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
33918ac554 - Exhumed: pActor->s() in items.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
1d01a6cff7 - Exhumed: pActor->s() in init.cpp + lighting.cpp 2021-12-30 09:57:24 +01:00
Christoph Oelckers
613dd67578 - Exhumed: pActor->s() in grenade.cpp 2021-12-30 09:57:23 +01:00
Christoph Oelckers
79e6412ad5 - Exhumed: pActor->s() in fish.cpp 2021-12-30 09:57:23 +01:00
Christoph Oelckers
a7cebcafbb - Exhumed: pActor->s() in bullet.cpp 2021-12-30 09:57:23 +01:00
Christoph Oelckers
03759ef73b - Exhumed: pActor->s() in bubbles.cpp 2021-12-30 09:57:23 +01:00
Christoph Oelckers
89a1fcdfac - Exhumed: pActor->s() in anims.cpp 2021-12-30 09:57:23 +01:00
Christoph Oelckers
1bb7f3764d - handle all s() cases in Exhumed using pSprite but not pActor->s(). 2021-12-30 09:57:23 +01:00
Christoph Oelckers
6766a5922a - pass actors to calcChaseCamPos. 2021-12-30 09:57:18 +01:00
Christoph Oelckers
f67e39450e - deal with a handful of s() uses that do not match the more common patterns. 2021-12-30 09:57:13 +01:00
Christoph Oelckers
a2fc415b30 - fixed Exhumed panning setup.
Converted it to floating point and removed the nonsensical & with the texture size that was clearing significant bits.
2021-12-30 09:57:09 +01:00
Mitchell Richters
dd0ff465b0 - Replace spritetypebase oz with opos.Z calls and eliminate spritetypebase opos union. 2021-12-30 09:57:07 +01:00
Mitchell Richters
a79b4b5ffc - Replace spritetypebase oy with opos.Y calls. 2021-12-30 09:57:06 +01:00
Mitchell Richters
e0fb92bb01 - Replace spritetypebase ox with opos.X calls. 2021-12-30 09:57:06 +01:00
Mitchell Richters
baf78848eb - Replace spritetypebase z with pos.Z calls and eliminate spritetypebase pos union. 2021-12-30 09:57:06 +01:00
Mitchell Richters
cecb8dc48e - Replace spritetypebase y with pos.Y calls. 2021-12-30 09:57:05 +01:00
Mitchell Richters
33ca55023f - Replace spritetypebase x with pos.X calls. 2021-12-30 09:57:05 +01:00
Mitchell Richters
09e00a69fe - Replace walltype y with pos.Y calls and eliminate walltype pos union. 2021-12-30 09:57:04 +01:00
Mitchell Richters
51b647da87 - Replace walltype x with pos.X calls. 2021-12-30 09:57:04 +01:00
Mitchell Richters
b2ab64bb62 - Capitalise vec3_t z variable. 2021-12-30 09:57:03 +01:00
Mitchell Richters
68e2691be7 - Capitalise vec3_t y variable. 2021-12-30 09:57:03 +01:00
Mitchell Richters
c549cc5276 - Capitalise vec3_t x variable. 2021-12-30 09:57:02 +01:00
Mitchell Richters
118ceb18ca - Capitalise vec2_t y variable. 2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba - Capitalise vec2_t x variable. 2021-12-30 09:57:02 +01:00
Christoph Oelckers
e0e6efe0a0 - Exhumed: fixed some sound source issues. 2021-12-30 09:57:01 +01:00
Christoph Oelckers
d9d05e90b5 - globally replaced all occurences of '->s().' with '->spr.' 2021-12-30 09:57:00 +01:00
Christoph Oelckers
c16b090fbe - Exhumed: clear lasthitsect when starting a new level. 2021-12-30 09:56:55 +01:00
Christoph Oelckers
e42c3afbea - Exhumed: fixed trap setup.
Must clear the structure before the first return and iterate over the walls by reference, otherwise bad pointers will get copied.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
f1c0298825 - replaced numwalls with wall.Size in several places. 2021-12-30 09:56:54 +01:00
Christoph Oelckers
65bc6e6aef - removed the now redundant wall() and sector() interator helper functions.
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
8039d81467 - the remaining Exhumed flags. 2021-12-30 09:56:50 +01:00
Christoph Oelckers
988a91904a - a large of Exhumed flags, most search& replace plus a few local variable types. 2021-12-30 09:56:49 +01:00
Christoph Oelckers
82fb03e399 - another batch of search&replace, with smaller results. 2021-12-30 09:56:48 +01:00
Christoph Oelckers
c5ae454207 - another big batch of automatic replacements. 2021-12-30 09:56:48 +01:00
Christoph Oelckers
5b65e214e0 - global search & replace of the more frequent sprite flag patterns. 2021-12-30 09:56:48 +01:00
Christoph Oelckers
b0e3c6b5ec - some remaining sector flag stuff 2021-12-30 09:56:45 +01:00
Christoph Oelckers
d0a06ae961 - deal with most of CSTAT_SECTOR_SKY and CSTAT_SECTOR_SLOPE 2021-12-30 09:56:45 +01:00
Christoph Oelckers
8d0013128e - Exhumed: use symbolic constant CSTAT_SPRITE_INVISIBLE 2021-12-30 09:56:45 +01:00
Christoph Oelckers
dddf48fd3e - cleaned up and renamed buildtypes.h.
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
46d7487a3b - SW: clear all pointer variables the player may still hold when terminating a level. 2021-12-30 09:53:10 +01:00
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
Mitchell Richters
2f567bdb74 - Exhumed: Fix two signed/unsigned comparison warnings in PlayFX2().
* Lines in question:
** 606 | if (chan->SoundID == nSound + 1)
** 621 | if (chan->SoundID == nSound + 1)
* All data sent to `PlayFX2()` and functions that wrap `PlayFX2()` are signed values, so keep signed all the way through.
2021-12-26 23:10:06 +01:00
Christoph Oelckers
d8ccfa1a5f - cleaned up nextsectorneighborz, added a safe variant and use this in all places where the sector pointer is not validated. 2021-12-26 23:10:05 +01:00
Christoph Oelckers
b8c4354691 - got rid of the MAX... constants and adjusted all places still using them. 2021-12-26 23:10:02 +01:00
Christoph Oelckers
838bed7800 - final cleanup of sectnum related stuff.
Made sure that remaining uses of sector indices are safe to be kept and deleted a few redundant functions.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6d432fca0a - made spritetype::sectnum a pointer. 2021-12-26 23:10:01 +01:00
Christoph Oelckers
6a43a270fa - use sectno() access function where we really need a sector index. 2021-12-26 23:10:01 +01:00
Christoph Oelckers
8ee5d1b0d7 - activated the garbage collector
This finally gets rid of all static storage for actors - so no more indices ever! :)
2021-12-26 23:10:00 +01:00
Christoph Oelckers
1d371b8cbf - clear some data on init. 2021-12-26 23:09:59 +01:00
Christoph Oelckers
8dde6a3074 - Added GC support to Exhumed 2021-12-26 23:09:59 +01:00
Christoph Oelckers
588f88c9cc - migrated the actors to DObjects.
No GC yet, only the classes have been altered and some GC-related features been added.
Full switchover will require adding GC support to all data in the game.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
8a2385dd89 - actor clearing cleaned up.
We still need this until we can get rid of the static arrays...
2021-12-26 23:09:55 +01:00
Christoph Oelckers
4cecb6f955 - removed the old actor savegame code and instead implemented a virtual Serialize function.
This isn't hooked up yet, currently savegames are non-functional. They will come back once the global actor arrays are no longer relevant for maintenance.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
f855b1020f - actor lists refactored.
No more shorts, no more static arrays.
This was one of the biggest blockers for unlimiting the engine.
2021-12-26 23:09:54 +01:00
Christoph Oelckers
eaff9e359f - refactored the owner index in tspritetype.
This is now a separate type from spritetype which contains an actor pointer instead so that sprite display can be handled without requiring a static sprite array.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
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
6600f55543 - separate map loading from actor spawning for the other games, too.
It still uses the horribly messed up original spawn logic, though.
2021-12-26 23:09:51 +01:00
Mitchell Richters
0c6e55d1b8 - Silence all the -Wuninitialized and -Wmaybe-uninitialized warnings relating to HitInfo objects passed through to functions by reference. 2021-12-26 23:09:50 +01:00
Christoph Oelckers
5dfc79bdbe - MarkSectorSeen 2021-12-26 23:09:48 +01:00
Christoph Oelckers
a22634f228 - sectnum reduction. 2021-12-26 23:09:47 +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
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
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
b3bbf8932e - same procedure for Exhumed. 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
4bfb03b6b3 - adapted hitscan calls in Exhumed. 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
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
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
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
a21f6b6240 - migrated Exhumed's sector extensions to the actual struct. 2021-12-25 21:28:49 +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
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
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
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
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
cd3288860a - fixed automap player drawing for follpw mode off in all games. 2021-11-29 00:56:32 +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
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
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
269f2580b9 - obsolete prototypes in Exhumed 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
2fdc2ec00f - small stuff 2021-11-29 00:55:32 +01:00