Commit graph

553 commits

Author SHA1 Message Date
Christoph Oelckers
c6a0d30245 - wrapped most remaining clipdist access
Only modifying operators left
2022-10-17 17:03:53 +02:00
Christoph Oelckers
1ba20c7dce - wrapped most clipdist assignments 2022-10-17 17:03:53 +02:00
Christoph Oelckers
3e36b5627b - wrap clipdist << 2 2022-10-17 17:03:52 +02:00
Mitchell Richters
f02035b15a - Eliminate __interpvaluef() and clean up Q16.16 smoothratio values where it made sense to do so. 2022-10-15 13:32:01 +02:00
Christoph Oelckers
2b5422cc53 - floatified USER::goalAng 2022-10-15 13:32:00 +02:00
Christoph Oelckers
9df7c55040 - rename USER::goalAng 2022-10-15 13:32:00 +02:00
Christoph Oelckers
057d2a565a - floatified Blood's velFloor and velCeil 2022-10-15 13:31:59 +02:00
Christoph Oelckers
38bb103cdd - renamed velFloor and velCeil. 2022-10-15 13:31:59 +02:00
Christoph Oelckers
4af3f6e731 - comparison with zero replacements 2022-10-15 11:35:37 +02:00
Christoph Oelckers
ac84e3f045 - some simple replacements 2022-10-15 11:35:37 +02:00
Christoph Oelckers
18cc450889 - more easy to replace vel assignments 2022-10-15 11:35:36 +02:00
Christoph Oelckers
5cde04fee7 - cleaned up assignments of random values to vel 2022-10-15 10:33:03 +02:00
Christoph Oelckers
b924569755 - started removing trivial vel wrappers 2022-10-15 10:15:20 +02:00
Christoph Oelckers
f2d89b7609 - refactored actWallBounceVector as well
This completes the abstraction of velocity in Blood.
2022-10-15 10:15:20 +02:00
Christoph Oelckers
9f235b56f3 - rewrote actFloorBounceVector to avoid reference parameters 2022-10-14 23:55:32 +02:00
Christoph Oelckers
a69bdb3370 - eliminated Blood’s RotatePoint function 2022-10-14 23:55:31 +02:00
Christoph Oelckers
c45ecdae73 - wrapped all velocity access in Blood, except the places where an address of vel is taken 2022-10-14 23:55:30 +02:00
Christoph Oelckers
7a7a2cdb39 - various replacements of vel 2022-10-14 23:55:30 +02:00
Christoph Oelckers
994cb47d36 - set_int_bvel_z 2022-10-14 23:52:44 +02:00
Christoph Oelckers
9cbffc998e - set_int_bvel_y 2022-10-14 23:52:44 +02:00
Christoph Oelckers
761da2b06e - set_int_bvel_x 2022-10-14 23:52:43 +02:00
Christoph Oelckers
b78d5a95ac - more add_int_bvel_ 2022-10-14 23:52:43 +02:00
Christoph Oelckers
1999340c8a - add_int_bvel_z 2022-10-14 23:52:43 +02:00
Christoph Oelckers
49d280c665 - add_int_bvel_y 2022-10-14 23:52:43 +02:00
Christoph Oelckers
12e5fd133c - add_int_bvel_x 2022-10-14 23:52:43 +02:00
Christoph Oelckers
193d20bb4d - wrapped more xvels 2022-10-14 23:52:43 +02:00
Christoph Oelckers
e3758d6adc - started wrapping vel 2022-10-14 23:52:42 +02:00
Christoph Oelckers
e7b09dbaac - renamed vel. 2022-10-14 23:52:42 +02:00
Christoph Oelckers
decaff78dc - floatified parts of useSeqSpawnerGen.
Also fixing a sprite size bug in here.
2022-10-13 20:58:11 +02:00
Christoph Oelckers
07826c7791 - eliminated DCoreActor::copyXY 2022-10-13 00:59:05 +02:00
Mitchell Richters
92b16907d2 - Use getincangle() in more places so it can be refactored easier later on. 2022-10-13 00:59:02 +02:00
Christoph Oelckers
40312d64c8 -coordinates 2022-10-13 00:59:01 +02:00
Christoph Oelckers
478672879e - partial HitScan parameter change
The really easy stuff…
2022-10-13 00:59:00 +02:00
Christoph Oelckers
f80b228a83 - deal with int positions in approxdist calls 2022-10-13 00:58:59 +02:00
Christoph Oelckers
230913bad3 - another large AI cleanup batch 2022-10-13 00:58:59 +02:00
Christoph Oelckers
2f896b859b - made the code mostly signed-char safe.
This eliminates all char function parameters that are not really ASCII characters and casts all char argument to the ctype is... functions.
2022-10-12 22:12:30 +02:00
Christoph Oelckers
f269ceff64 slope functions with position vectors 2022-10-12 22:10:37 +02:00
Christoph Oelckers
18a445aee5 - added ZeroVelocity function to DBloodActor. 2022-10-12 22:10:36 +02:00
Christoph Oelckers
a5a3669238 - eliminated the SetActor/Z function receiving a vec3_t pointer.
The only one left is the one with a DVector3 now.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
a0c0894e41 - aiSetTarget calls 2022-10-12 22:10:34 +02:00
Christoph Oelckers
db0ce36143 - use engine's updatesector in Blood instead of the limited homegrown FindSector variant. 2022-10-11 18:09:48 +02:00
Christoph Oelckers
a808f04415 - cansee refactoring part 4 2022-10-10 17:37:20 +02:00
Christoph Oelckers
1c154a984d - floatified XSPRITE::TargetPos 2022-10-10 17:37:19 +02:00
Christoph Oelckers
d26a4e70c3 - wrapped XSPRITE::TargetPos 2022-10-10 17:37:19 +02:00
Christoph Oelckers
4888b363e8 - added vector variant of gFX.fxSpawnActor 2022-10-10 17:37:19 +02:00
Christoph Oelckers
139969d017 - FindSector variants with vectors 2022-10-10 17:37:19 +02:00
Christoph Oelckers
08c19cd2a4 - floatified CheckProximity position parameter 2022-10-10 17:37:18 +02:00
Christoph Oelckers
766ddeb445 - one more batch of trivial replacements 2022-10-09 08:21:53 +02:00
Christoph Oelckers
b32c4444c4 - replaced all add_int_z calls with constants. 2022-10-08 19:28:57 +02:00
Christoph Oelckers
55ade2eda4 - use int_hitpos() access function where applicable 2022-10-05 18:10:44 +02:00
Christoph Oelckers
296b5d7edd - renamed HitInfo::hitpos 2022-10-05 18:03:41 +02:00
Christoph Oelckers
64391c52f9 - large batch of set_int_pos, minus Exhumed 2022-10-05 17:33:01 +02:00
Mitchell Richters
d28d6cd4cf - Utilise actor sprite's full precision in instances where angle was converted to Build and back again. 2022-10-05 00:36:30 +02:00
Mitchell Richters
b23e77d9c7 - Replace player's ang with DAngle object.
* This commit does not build. Committed items are everything that's been done by find and replace.
* Next commit has hand-performed changes that are better separated out for clarity.
2022-10-05 00:36:27 +02:00
Mitchell Richters
dbc46e2a75 - Change out PlayerAngle::settarget()'s input from binangle to DAngle. 2022-10-05 00:36:27 +02:00
Christoph Oelckers
9a27dc2020 - handle all leftover __int_angles.
Most were in comments but were changed anyway.
2022-10-05 00:36:21 +02:00
Christoph Oelckers
6bdfa09dd1 - the remaining angle stuff. 2022-10-05 00:36:21 +02:00
Christoph Oelckers
2d51058de8 - add_int_ang 2022-10-05 00:35:14 +02:00
Christoph Oelckers
c2f4fa8bb5 - more angles 2022-10-04 23:56:44 +02:00
Christoph Oelckers
8f904c2256 - angle assignments in Blood. 2022-10-04 23:56:43 +02:00
Christoph Oelckers
f54e4b8a9a - more int_ang() 2022-10-04 23:56:43 +02:00
Christoph Oelckers
33d5b54ce0 - use int_ang(). 2022-10-04 23:56:43 +02:00
Christoph Oelckers
735b9a8fed - renamed ang to __int_angle 2022-10-04 23:56:42 +02:00
Christoph Oelckers
3edbec4f55 - use copyXY method where possible. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
109684c029 - renamed a few things to make searching easier. 2022-08-27 10:03:10 +02:00
Christoph Oelckers
c84d75b8bf - use inline access functions to read floorz/ceilingz. 2022-08-27 09:58:16 +02:00
Christoph Oelckers
0672572e63 - renamed sectortype::floorz and ceilingz as preparation for floatification 2022-08-27 09:47:48 +02:00
Christoph Oelckers
75ab0cf018 - handle a few leftovers in Blood. 2022-08-26 19:53:07 +02:00
Christoph Oelckers
58f573e578 - Blood: replaced the remaining spr.pos with int_pos() in nnexts 2022-08-26 19:53:05 +02:00
Christoph Oelckers
702a73ff6c - Blood: handled the remaining write accesses to 'pos' 2022-08-26 19:53:03 +02:00
Christoph Oelckers
04c9422db8 - Blood: don't pass an actor's position directly to ClipMove 2022-08-26 19:53:03 +02:00
Christoph Oelckers
32dd061ab1 - Blood: wrapped write accesses to spr.pos in nnexts.cpp 2022-08-26 19:53:03 +02:00
Christoph Oelckers
b196e67f40 ported SHA-1: 82e3f6af9367200853fe2af1b9665dd0c53b4f05 from NBlood
* - Change gBusyCount limit to a higher value since xsector limit raised.

gModernMap:
- The return of the event causer (kChannelEventCauser, TXID 50).
- Fix flags for kModernPropertiesChanger type.
- Add new modern type kModernVelocityChanger.
- New features for kMarkerWarpDest type.
- New features for kModernSectorFXChanger type.
- Fix sector condition 58.
- Fix sprite hitscan conditions (35 - 38).
- Add new command (kCmdEventKillFull).
- Misc changes.

# Conflicts:
#	source/games/blood/src/actor.cpp
#	source/games/blood/src/nnexts.cpp
2022-08-17 20:45:51 +02:00
Christoph Oelckers
0139ac5e4a ported NBlood commit e3d7ab8b919c230b2b4a825137d607b03b363796
- (gModernMap) Add a way to move sprites that are close to outside walls of sector
- (gModernMap) Add loadsave construct
- (gModernMap) Fix movement direction for reverse moving sprites in TranslateSector
2022-08-17 20:45:43 +02:00
Mitchell Richters
71fb91940d Revert "- Simplify PlayerHorizon::settarget() by adding a dedicated angle setter that resets interpolated value as well."
This reverts commit 0416834d9d.

Revert "- Simplify `PlayerAngle::settarget()` by adding a dedicated angle setter that resets interpolated value as well."

This reverts commit 5a550613f3.

Revert "- Add bool `lock` to `PlayerHorizon::settarget()` when setting target from the ticker without having to call setters and resetters."

This reverts commit 18541d1ab4.

Revert "- Add bool `lock` to `PlayerAngle::settarget()` when setting target from the ticker without having to call setters and resetters."

This reverts commit 1ac58dc41c.

* We need to ensure only the ticker can unlock the player's input if it's telling us to lock the input.
2022-06-06 18:41:45 +10:00
Mitchell Richters
1ac58dc41c - Add bool lock to PlayerAngle::settarget() when setting target from the ticker without having to call setters and resetters. 2022-05-30 21:24:02 +10:00
Mitchell Richters
18541d1ab4 - Add bool lock to PlayerHorizon::settarget() when setting target from the ticker without having to call setters and resetters. 2022-05-30 21:22:24 +10:00
Mitchell Richters
7282e0d8bf - Remove multiple addadjustment()/settarget() overloads in favour of native binangle/fixedhoriz versions only.
* Simplifies these classes a bit.
* Better shows intent in actual game code.
* Removes unnecessary int to double conversions.
2022-05-30 20:35:41 +10:00
Christoph Oelckers
84bafe6d02 - manual merge of latest nnext update. 2022-05-11 08:31:58 +02:00
Christoph Oelckers
ca423e15f0 - Check enemy type when adding to enemy level count
Fixes count issues with respawning enemies

copied from NBlood commit a6bbac4a213f6fb76a7c20b80da6b30c9ffc3064
2022-05-06 01:08:09 +02:00
Christoph Oelckers
f44736a5b6 -use an access function for reading wall positions so that we have a non-modifiable value wherever this is possible. 2022-02-15 22:18:23 +01:00
Christoph Oelckers
89ef81da55 - renamed walltype::pos as preparation for refactoring.
no functional changes here
2022-02-15 22:18:22 +01:00
Mitchell Richters
f8ffaa4be9 - Blood: Tidy up some missed kWeap constants. 2022-01-12 22:22:54 +11:00
Christoph Oelckers
8575447e37 - Blood: fixed bad parameter in aiPatrolMove 2022-01-01 09:56:45 +01:00
Christoph Oelckers
5498699faf - use DCoreActor::sector() wherever possible. 2021-12-30 16:51:56 +01:00
Christoph Oelckers
af6ca40e3d - use DCoreActor::insector instead of spritetype::insector. 2021-12-30 16:24:51 +01:00
Christoph Oelckers
4bc32e2777 - use actors in the sloped sprite utilities. 2021-12-30 16:11:14 +01:00
Mitchell Richters
f091a72db1 - Blood: Replace XSPRITE targetz with TargetPos.Z calls. 2021-12-30 23:00:41 +11:00
Mitchell Richters
431749cf6e - Blood: Replace XSPRITE targety with TargetPos.Y calls. 2021-12-30 23:00:40 +11:00
Mitchell Richters
1d29716e6b - Blood: Replace XSPRITE targetx with TargetPos.X calls. 2021-12-30 23:00:40 +11:00
Mitchell Richters
22275a16f6 - Blood: Replace DBloodActor zvel with vel.Z calls. 2021-12-30 23:00:40 +11:00
Mitchell Richters
ce08fd4304 - Blood: Replace DBloodActor yvel with vel.Y calls. 2021-12-30 23:00:40 +11:00
Mitchell Richters
a9e66ec553 - Blood: Replace DBloodActor xvel with vel.X calls. 2021-12-30 23:00:39 +11:00
Mitchell Richters
5badbd7884 - Blood: Replace game-side scale() with backend Scale(). 2021-12-30 20:46:38 +11:00
Christoph Oelckers
5061d5b37c - tabified the rest of Blood's code. 2021-12-30 09:58:48 +01:00
Christoph Oelckers
1d28e166c6 - fixed nnexts comparison with statcount.
This value is no longer maintained, so we got to count when the value is needed.
2021-12-30 09:58:47 +01:00
Christoph Oelckers
032c597fa5 - renamed shadowing variables in Blood. 2021-12-30 09:57:32 +01:00
Christoph Oelckers
e940fe1931 - the rest of nnexts.cpp 2021-12-30 09:57:22 +01:00
Christoph Oelckers
4177c31deb - next batch of nnexts.cpp 2021-12-30 09:57:22 +01:00
Christoph Oelckers
d3e4f591f2 - third x() batch in nnexts.cpp. 2021-12-30 09:57:21 +01:00
Christoph Oelckers
60382d9992 - all pXCond's. 2021-12-30 09:57:21 +01:00
Christoph Oelckers
fd234984f5 - first batch of x() in nnexts.cpp. 2021-12-30 09:57:21 +01:00
Christoph Oelckers
a291364606 - the big 'pXSprite = &actor->x()' replacement. 2021-12-30 09:57:21 +01:00
Christoph Oelckers
8d8e0550df - got rid of PLAYER::pXSprite.
Now the player references its actor through ONE pointer only.
2021-12-30 09:57:21 +01:00
Christoph Oelckers
aa3b930a4d - several x()'s in nnexts.cpp. 2021-12-30 09:57:20 +01:00
Christoph Oelckers
812a4ccd7b - handle sourceactor->x() in nnexts.cpp.
Almost exclusively done with search & replace.
2021-12-30 09:57:20 +01:00
Christoph Oelckers
8d66c8468d - the remaining s()'s of nnexts.cpp. 2021-12-30 09:57:19 +01:00
Christoph Oelckers
46320aabac - third batch of nnexts.cpp. 2021-12-30 09:57:19 +01:00
Christoph Oelckers
b8bee4dfe5 - upper/lower stuff in nnexts.cpp. 2021-12-30 09:57:18 +01:00
Christoph Oelckers
929fd7be99 - another block in nnexts.cpp. 2021-12-30 09:57:18 +01:00
Christoph Oelckers
e460d90f37 - several s() in nnexts.cpp. 2021-12-30 09:57:18 +01:00
Christoph Oelckers
648537a96b - deal with most of PLAYER::pSprite. 2021-12-30 09:57:17 +01:00
Christoph Oelckers
2f9848a459 - deal with pSource in nnexts.cpp. 2021-12-30 09:57:17 +01:00
Christoph Oelckers
5623832b17 - deleted the pSprite definitions from last commit. 2021-12-30 09:57:16 +01:00
Christoph Oelckers
6b8ec17017 - the ultimate 'replace pSprite-> with actor->spr. commit.
This takes care of the majority of s() uses in Blood with a single search&replace action after ensuring that pSprite never gets used for other things.
(There were two small functions in nnexts.cpp left that still did.)
2021-12-30 09:57:16 +01:00
Christoph Oelckers
d8134c3fe8 - handle a few pSprite assignments which are not &actor->s(). 2021-12-30 09:57:16 +01:00
Christoph Oelckers
a87948677a - globally replaced ->x(). with ->xspr. 2021-12-30 09:57:09 +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
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
Christoph Oelckers
d9d05e90b5 - globally replaced all occurences of '->s().' with '->spr.' 2021-12-30 09:57:00 +01:00
Christoph Oelckers
df0c577cf4 - replaced most of numsectors, too. 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
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
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
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
6e32832428 - made sector ceiling/floor flags type safe.
- made sector flags type safe.
2021-12-30 09:56:46 +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
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
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
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
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
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
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
8ce34c7772 - use refactored Collision struct and clipmove in Blood, too. 2021-12-26 23:08:57 +01:00
Christoph Oelckers
129ce0aea8 - migrated Blood's hitscan calls and its global gHitInfo struct. 2021-12-26 23:08:56 +01:00