Commit graph

986 commits

Author SHA1 Message Date
Christoph Oelckers
ff0b8ac5a9 - handle the hitactor parts missed in the last commit. 2021-12-30 09:57:13 +01:00
Christoph Oelckers
b1bd8f3eef - non-pSprite occurences of s() in aiunicult.cpp. 2021-12-30 09:57:13 +01:00
Christoph Oelckers
d0143db8fe - got rid of sx() and sm() inlines. 2021-12-30 09:57:13 +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
723e22743e - handle all x() calls in AI code. 2021-12-30 09:57:12 +01:00
Christoph Oelckers
389933fe3a - missed two... 2021-12-30 09:57:12 +01:00
Christoph Oelckers
1ebdb81e13 - deleted the actor->s() calls in AI code. 2021-12-30 09:57:12 +01:00
Christoph Oelckers
e123e61f99 - quick replace of 'pSprite->' with 'actor->spr.' in AI files. 2021-12-30 09:57:12 +01:00
Christoph Oelckers
612167cbf1 - handle all non- "pSprite = actor->s();" calls of s() in Blood AI code. 2021-12-30 09:57:12 +01:00
Christoph Oelckers
bff3bbea73 - handle all target sprites in AI code. 2021-12-30 09:57:12 +01:00
Christoph Oelckers
18c32d8fe9 - eliminated all x() in ai.cpp. 2021-12-30 09:57:11 +01:00
Christoph Oelckers
9e6943ec83 - eliminated all s() in ai.cpp. 2021-12-30 09:57:11 +01:00
Christoph Oelckers
41e003c831 - the remaining x() in actor.cpp. 2021-12-30 09:57:11 +01:00
Christoph Oelckers
bc42978295 - x() in actor.cpp callbacks. 2021-12-30 09:57:11 +01:00
Christoph Oelckers
bd07313017 - almost the last x() in actor.cpp. 2021-12-30 09:57:11 +01:00
Christoph Oelckers
692a269d92 - still more x() in actor.cpp. 2021-12-30 09:57:11 +01:00
Christoph Oelckers
3f65aee70b - even more x() in actor.cpp. 2021-12-30 09:57:10 +01:00
Christoph Oelckers
3201f85ab9 - yet more x() in actor.cpp. 2021-12-30 09:57:10 +01:00
Christoph Oelckers
a1b2d4a21e - more x() in actor.cpp. 2021-12-30 09:57:10 +01:00
Christoph Oelckers
ffeb52198a - lots of ->x() calls removed in actor.cpp. 2021-12-30 09:57:10 +01:00
Christoph Oelckers
6e0128eb4c - handle the remaining uses of s() in actor.cpp 2021-12-30 09:57:10 +01:00
Christoph Oelckers
b91fe45fc3 - handled all pSprite-> in actor.cpp. 2021-12-30 09:57:10 +01:00
Christoph Oelckers
27e9894ece - handled all parts of actor.cpp which are not "pSprite = &actor->s();" 2021-12-30 09:57:10 +01:00
Christoph Oelckers
88c77ec71a - some pSprite2's plus CheckSector. 2021-12-30 09:57:09 +01:00
Christoph Oelckers
fbb8f1ee70 - pSprite replacements in blood/src/actor.cpp 2021-12-30 09:57:09 +01:00
Christoph Oelckers
a87948677a - globally replaced ->x(). with ->xspr. 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
3221ecf800 - refactored xsprite use in aibat.cpp. 2021-12-30 09:57:01 +01:00
Christoph Oelckers
33a00869d8 - shortened the name of DBloodActor::xsprite to xspr. 2021-12-30 09:57:01 +01:00
Christoph Oelckers
f8171ac5d9 - eliminate pSprite pointers in aibat.cpp. 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
f816f2fb22 - ->s in non-gameplay files. 2021-12-30 09:56:59 +01:00
Christoph Oelckers
156369ac8a - Blood: don't crash when cultists accidentally target themselves. 2021-12-30 09:56:54 +01:00
Christoph Oelckers
785c7d4ceb - removed numsectors and numwalls entirely.
With Blood's Polymost mirror hack the risk of getting out of sync with the arrays was a genuine issue, so now only the array size counts.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
df0c577cf4 - replaced most of numsectors, too. 2021-12-30 09:56:54 +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
Mitchell Richters
1e63c8305b - Fix build issues under GCC. 2021-12-30 09:56:51 +01:00
Christoph Oelckers
5ff36f491e - fixed the remaining places where the compiler complained about cstat. 2021-12-30 09:56:51 +01:00
Christoph Oelckers
955996dddc - the rest of Blood's flags, part II 2021-12-30 09:56:50 +01:00
Christoph Oelckers
13186cec6d - the rest of Blood's flags. 2021-12-30 09:56:50 +01:00
Christoph Oelckers
092cb1e5a3 - second set of Blood flags. 2021-12-30 09:56:50 +01:00
Christoph Oelckers
3bc337264a - flags in blood's actor.cpp
plus a few others caught by search&replace.
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
8e0b9f7ce6 - some automatic, some manual sprite flag replacements 2021-12-30 09:56:49 +01:00
Christoph Oelckers
ace01d02bc - alignment flags and a few leftovers. 2021-12-30 09:56:48 +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
8f012d1beb - made wall flags type safe 2021-12-30 09:56:47 +01:00
Christoph Oelckers
8fab2e1020 - fix bad flag management in usePropertiesChanger
Not sure if this is 100% correct, but the old code definitely wasn't.
2021-12-30 09:56:47 +01:00
Christoph Oelckers
d24b8d9ec8 - most wall flags in Blood. 2021-12-30 09:56:47 +01:00
Christoph Oelckers
1883aad7c2 - flag names in SetupGibWallState and TranslateSector 2021-12-30 09:56:47 +01:00
Christoph Oelckers
6e32832428 - made sector ceiling/floor flags type safe.
- made sector flags type safe.
2021-12-30 09:56:46 +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
1edccf1423 - added slope setter methods to sectortype.
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
11f41a97d5 - made gotpic a FixedBitArray.
gets rid of some inline garbage.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
5f18109371 - consolidated all getslope code into a single function.
This also caches a wall's length to avoid taking the square root every single time for a slope calculation.
2021-12-30 09:53:55 +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
4a5de6f56e - make sure that all changes of wall coordinates invalidate associated data.
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Mitchell Richters
95d60deecd - Rename remaining hw_sections*.* files to hw_sections.*. 2021-12-30 09:53:11 +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
Christoph Oelckers
fc41a2bd85 - renamed sections2 and sections2PerSector.
No more need for a '2'.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
f6d852b5a0 - removed the old section builder 2021-12-30 09:53:09 +01:00
Christoph Oelckers
bb9313454d - removed SectorGeometry class. 2021-12-30 09:53:09 +01:00
Christoph Oelckers
4364e68d05 - automap work to transition to new sections. 2021-12-30 09:53:08 +01:00
Christoph Oelckers
a733de618f - new section WIP. 2021-12-30 09:53:06 +01:00
Mitchell Richters
9e51f911ab - Blood: Clear writing to an object of type ‘class TObjPtr<Blood::DBloodActor*>’ with ‘private’ member ‘TObjPtr<Blood::DBloodActor*>::<anonymous>’ warning under GCC. 2021-12-26 23:10:06 +01:00
Mitchell Richters
a4d165a84e - Tidy some specified bound equals destination size warnings from GCC. 2021-12-26 23:10:05 +01:00
Mitchell Richters
953c7e4ed6 - Blood: Fix some collision issues found following refactoring.
* Originating from 9a2ca3f392e29fe8df4167c271a7b04ab5e8959c "- use refactored Collision struct and clipmove in Blood, too.".
2021-12-26 23:10:04 +01:00
Christoph Oelckers
b4a968841a - missing null check in Blood's map loader. 2021-12-26 23:10:04 +01:00
Mitchell Richters
2dda3ee505 - Tidy up some GCC warnings about ininitialised variables, memsetting non-trivial types and some others. 2021-12-26 23:10:02 +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
1a3b9f8ac0 - made several arrays holding sector related data dynamic. 2021-12-26 23:10:02 +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
2d913982da - changed map loader to work without relying on spritetype::sectnum.
All access to this field is done through access functions now.
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
0dd756fa32 - added GC handling for all backend pointers in the map data.
GC is not active yet!
2021-12-26 23:10:00 +01:00
Christoph Oelckers
138690d34e - do not use auto to make local copies of TObjPtr's.
This will just copy the object without performing the read barrier on the source data which is not what we want here.
For these assignments the type must be explicit.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
16a8746971 - GC setup for Blood. 2021-12-26 23:09:58 +01:00
Christoph Oelckers
42e4e9288f - deleted GetSpriteIndex.
It's not needed anymore.
2021-12-26 23:09:58 +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
d088ab05a9 - eliminate storage of actors in the sector's hitag for some of Duke's sector effectors.
Also demoted Blood's upperLink and lowerLink to DCoreActor pointers and use static_cast for access to avoid savegame problems. The core code cannot safely serialize a DBloodActor anymore.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
ca10495d7c - Blood: back up player state before ending the level, not just before loading the new one.
The latter is too late, the player's actor data may already be stale and invalid here.
2021-12-26 23:09:56 +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
d3b1e34d78 - moved sprite[], spriteext[] and spritesmooth[] into DCoreActor.
Also removed the last remaining sprite pointer in saveable data.
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