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
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
183f554733
- hitscan cleanup.
...
Also removed a bit of leftover TROR code.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
6600f55543
- separate map loading from actor spawning for the other games, too.
...
It still uses the horribly messed up original spawn logic, though.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
a3493048e7
- refactoring of spawn code to prepare for the other games.
...
Map hacks do not work in this commit!
2021-12-26 23:09:51 +01:00
Christoph Oelckers
ec888c097c
- Blood: separated actor spawning from map loading.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
e543c70439
- replacement of BloodLinearSpriteIterator
...
Preparation for eliminating sprite[]. This array can later be created by the actual spawn function.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
6773fa2189
- removed unused InitLists function.
...
# Conflicts:
# source/build/src/engine.cpp
2021-12-26 23:09:49 +01:00
Christoph Oelckers
58cd933d74
- pass sprite array to map hack parser as parameter.
...
This will later allow it to work on temporaries.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
b663b8ea26
- wallptr reduction.
2021-12-26 23:09:48 +01:00
Christoph Oelckers
a22634f228
- sectnum reduction.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
73243f95bb
- make Blood's burn source a pointer.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
3a44f168e0
- Blood: Fix DeleteSprite
2021-12-26 23:09:46 +01:00
Christoph Oelckers
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
befc4572e9
- minimal backend array removal.
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
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
8ce34c7772
- use refactored Collision struct and clipmove in Blood, too.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
96b9572905
- moved parts of the HitInfo subclasses into the backend.
...
All the game code now needs to do is a single 'using' statement.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
10dce7dd2d
- adapted all hitscan calls in Duke/RR.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
129ce0aea8
- migrated Blood's hitscan calls and its global gHitInfo struct.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
9380819e4e
- initialize actorArray for all games.
...
- the foundation for an actor aware backend.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
52c80f187a
- added coreactor.h
2021-12-26 23:08:55 +01:00
Christoph Oelckers
5d78b228b7
- the final bits and pieces in Blood
2021-12-26 23:08:40 +01:00
Christoph Oelckers
41506f35db
- calcviewpitch
2021-12-26 23:08:40 +01:00
Christoph Oelckers
879407538e
- several 'sectnum's.
2021-12-26 23:08:40 +01:00
Christoph Oelckers
9388f839b6
- main view render function and dependencies.
2021-12-26 23:08:40 +01:00
Christoph Oelckers
0797e7ac90
- trInit
2021-12-26 23:08:39 +01:00
Christoph Oelckers
7442edc59f
- more trigger stuff
2021-12-26 23:08:39 +01:00
Christoph Oelckers
2967edf827
- triggers.cpp subfunctions.
2021-12-26 23:08:39 +01:00
Christoph Oelckers
8f3c97dde4
- SetSectorState
2021-12-26 23:08:39 +01:00
Christoph Oelckers
7f94eee9bb
- busy interface + unlimiting.
2021-12-26 23:08:00 +01:00
Christoph Oelckers
28840b3afa
- pass sectors to AddBusy and ReverseBusy.
2021-12-26 22:35:08 +01:00
Christoph Oelckers
9d423d19cd
- partial transition of busy interface to sector pointers.
2021-12-26 22:25:59 +01:00
Christoph Oelckers
9017fee74f
- FindSector.
2021-12-25 21:29:17 +01:00
Christoph Oelckers
b8953849ee
- secnum in fx.cpp
2021-12-25 21:29:17 +01:00
Christoph Oelckers
765ff7609d
- all remaining ->sectnum in nnexts.cpp.
2021-12-25 21:29:16 +01:00
Christoph Oelckers
d0376e5485
- nnext sound functions.
2021-12-25 21:29:16 +01:00
Christoph Oelckers
b7c4e4b9fa
- useSlopeChanger
2021-12-25 21:29:16 +01:00
Christoph Oelckers
36d66f14b5
- smaller stuff
2021-12-25 21:29:16 +01:00
Christoph Oelckers
4438c20cb4
- fxProcess
2021-12-25 21:29:16 +01:00
Christoph Oelckers
f52a542fad
- callback interface.
2021-12-25 21:29:15 +01:00
Christoph Oelckers
e4e5bd0966
- CFX::fxSpawnActor
2021-12-25 21:29:15 +01:00
Christoph Oelckers
331a7654bf
- actSpawnThing
2021-12-25 21:29:15 +01:00
Christoph Oelckers
443cfc991c
- actSpawnSprite, ZONE, startsectnum and dbLoadMap
2021-12-25 21:29:15 +01:00
Christoph Oelckers
b187f3c028
- CheckProximity
2021-12-25 21:29:15 +01:00
Christoph Oelckers
e172d0c138
- actRadiusDamage
2021-12-25 21:29:14 +01:00
Christoph Oelckers
3d336c13ac
- GetClosestSpriteSectors
2021-12-25 21:29:14 +01:00
Christoph Oelckers
f9b2b6311f
- slope checks in sprite display code.
2021-12-25 21:29:14 +01:00
Christoph Oelckers
b063e19980
- gFX.fxSpawnActor and a few other simple replacements.
2021-12-25 21:29:14 +01:00
Christoph Oelckers
d99542a678
- get*slope and sfxPlay3DSound
2021-12-25 21:29:14 +01:00
Christoph Oelckers
9343e3f9c4
- handle most cansee calls.
2021-12-25 21:29:13 +01:00
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
40ae38c173
- calcChaseCamPos.
2021-12-25 21:29:03 +01:00