Commit graph

1760 commits

Author SHA1 Message Date
Christoph Oelckers
f80b228a83 - deal with int positions in approxdist calls 2022-10-13 00:58:59 +02:00
Christoph Oelckers
c53a2ac93a - one final batch of AI stuff 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
ea04f5f800 - more vector stuff in Blood AI
all the same pattern
2022-10-12 22:18:11 +02:00
Christoph Oelckers
67d0e51919 - migrate Blood AI to floating point vectors, part 1
Velocity is still left untouched.
2022-10-12 22:18:11 +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
97e93004b1 - quick’n easy replacements 2022-10-12 22:10:37 +02:00
Christoph Oelckers
f269ceff64 slope functions with position vectors 2022-10-12 22:10:37 +02:00
Christoph Oelckers
0499be0c26 - getting rid of some int_pos calls. 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
00436bfdac - eliminated one UpdateActor pverload. 2022-10-12 22:10:36 +02:00
Christoph Oelckers
f0769048ed - yet another bunch of SpawnActor calls in weapon.cpp 2022-10-12 22:10:35 +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
085839af32 - CheckPickUp floatification 2022-10-10 17:37:20 +02:00
Christoph Oelckers
a808f04415 - cansee refactoring part 4 2022-10-10 17:37:20 +02:00
Christoph Oelckers
3da68ab038 - cansee refactoring, part 3 2022-10-10 17:37:20 +02:00
Christoph Oelckers
80412bdc51 - cansee refactoring, part 2 2022-10-10 17:37:20 +02:00
Christoph Oelckers
781ffc9a43 - cansee refactoring, part 1. 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
f41c78d622 - actDropObject 2022-10-10 17:37:19 +02:00
Christoph Oelckers
e7ec2c072a - floatified Blood’s startpos 2022-10-10 17:37:19 +02:00
Christoph Oelckers
cb39a07580 - position in actSpawnSprite 2022-10-10 17:37:18 +02:00
Christoph Oelckers
08c19cd2a4 - floatified CheckProximity position parameter 2022-10-10 17:37:18 +02:00
Christoph Oelckers
12d54a8b5c - use vector math for distances in actRadiusDamage 2022-10-10 17:37:18 +02:00
Christoph Oelckers
9460239417 - pass a vector to GetClosestSpriteSectors 2022-10-10 17:37:18 +02:00
Christoph Oelckers
64cf9a4ec6 - pass vector position to actRadiusDamage 2022-10-10 17:37:18 +02:00
Christoph Oelckers
645c606e39 - floatified ConcussSprite 2022-10-10 17:37:18 +02:00
Christoph Oelckers
45f37525e0 - minor angle stuff in Blood 2022-10-10 17:31:30 +02:00
Christoph Oelckers
209867e036 - cleaned out some unnecessary inlines. 2022-10-09 22:00:43 +02:00
Christoph Oelckers
ade20cbfe2 - some angular stuff. 2022-10-09 08:21:54 +02:00
Christoph Oelckers
766ddeb445 - one more batch of trivial replacements 2022-10-09 08:21:53 +02:00
Christoph Oelckers
f13d9892dc - trivial wrapper replacements in Duke 2022-10-09 08:21:53 +02:00
Christoph Oelckers
4db457f3b0 - stuff in animatesprite.cpp 2022-10-09 08:21:53 +02:00
Christoph Oelckers
96e6424772 - floatified damage logic in aibeast.StompSeqCallback 2022-10-08 19:28:57 +02:00
Christoph Oelckers
aa0080039f - refactored coordinate display to have a single unified printing function.
The games will now only return the data, this has also been added for Exhumed.
Printing will now be in actual map units, not build's internal mixed format.
2022-10-08 19:28:57 +02:00
Christoph Oelckers
b32c4444c4 - replaced all add_int_z calls with constants. 2022-10-08 19:28:57 +02:00
Christoph Oelckers
424a58f91b - Blood: sfxPlay3DSound 2022-10-08 16:11:23 +02:00
Christoph Oelckers
4d02cdcce9 - use explicit types in hitscan calls 2022-10-06 20:50:47 +02:00
Christoph Oelckers
5505c362e2 - floatified hitpos 2022-10-05 18:11:59 +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
478e7a6801 - Eliminate some TAngle floating point Build method usage. 2022-10-05 00:36:31 +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
5c84f93c08 - Use the static constexpr nullAngle everywhere possible. 2022-10-05 00:36:30 +02:00
Mitchell Richters
02dfe2cb62 - Repair interpolation issues following change of sprite angles from integer to DAngle types. 2022-10-05 00:36:30 +02:00
Christoph Oelckers
fe6fcdff1f - use DAngle for actors
Note that intangle needs to be kept - primarily for SW's ST tags.
2022-10-05 00:36:29 +02:00
Christoph Oelckers
02ce593f06 -removed leftover binangles in Blood's animatesprites.cpp 2022-10-05 00:36:28 +02:00
Mitchell Richters
abb8b87be1 - Eliminate last remaining binangle inline utilities. 2022-10-05 00:36:28 +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
7a6f5c0864 - Replace binangle usage in PlayerHorizon::calcviewpitch() with DAngle object. 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
Mitchell Richters
a090f31bc4 - Change out PlayerAngle::addadjustment()'s input from binangle to DAngle. 2022-10-05 00:36:26 +02:00
Mitchell Richters
13ea55b4cb - Replace player's rotscrnang and look_ang angles with DAngle objects.
* Went the el cheapo route and added some floating point Build angle methods. As these and the integer build methods are really just refactoring aids, we'll come back to this in due course.
2022-10-05 00:36:26 +02:00
Mitchell Richters
d3022947eb - Replace use of binangle in gi->processSprites() with DAngle object. 2022-10-05 00:36:24 +02:00
Mitchell Richters
d6f405c229 - Blood: Remove leftover Polymost draw code prototype. 2022-10-05 00:36:24 +02:00
Mitchell Richters
6167448f27 - Blood: Replace all uses of binangle with DAngle objects. 2022-10-05 00:36:24 +02:00
Mitchell Richters
ebac932efe - Update render_drawrooms() and render_camtex() to work off DAngle objects. 2022-10-05 00:36:23 +02:00
Mitchell Richters
c935fc2226 - Refactor chase cam positional code to use DAngle input rather than binangle.
* These changes still maintain Build's integer positional values in Q28.4/Q24.8, changing this will be done later on.
2022-10-05 00:36:22 +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
9bac3b8857 - floatified DBloodActor::basePoint. 2022-10-04 23:56:24 +02:00
Christoph Oelckers
a860a21bde - use floats in viewInsertTSprite 2022-10-04 18:44:17 +02:00
Christoph Oelckers
3edbec4f55 - use copyXY method where possible. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
b327f7f03a - some simple replacements. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
6816e32d23 - call float 'interpolated' functions for setting tsprite's pos. 2022-10-02 20:46:56 +02:00
Christoph Oelckers
5df4caa82f - renamed interpolate functions as preparation for floatifying opos. 2022-10-02 20:46:56 +02:00
Christoph Oelckers
403e1ad3b3 - Blood: floatified baseFloor and baseCeil. 2022-10-02 20:46:56 +02:00
Christoph Oelckers
5a27390eaf - Blood: don't crash when trying to render from outside a sector. 2022-10-02 09:52:13 +02:00
Christoph Oelckers
a59a771209 - use floats for ceilingz/floorz storage. 2022-08-27 10:49:59 +02:00
Christoph Oelckers
044929ad06 - replaced all remaining read access to __int_floorz and __int_ceilingz with wrappers. 2022-08-27 10:13:15 +02:00
Christoph Oelckers
47a594a96c - renamed setPosFromLoad to setPosFromMap. 2022-08-27 10:03:31 +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
02ae6476de - changed the pos vector of spritetype to floating point. 2022-08-27 09:26:13 +02:00
Christoph Oelckers
c15aeec9f7 - late __int_pos additions 2022-08-26 19:53:11 +02:00
Christoph Oelckers
8ccaa0ab8c - more tsprite position stuff 2022-08-26 19:53:10 +02:00
Christoph Oelckers
810e722e5e - tspritetype::pos access wrappers, part 2. 2022-08-26 19:53:10 +02:00
Christoph Oelckers
170387ab26 - tspritetype::pos access wrappers, part 1. 2022-08-26 19:53:10 +02:00
Christoph Oelckers
dc94dedc6b - renaming spritetype::pos 2022-08-26 19:53:10 +02:00
Christoph Oelckers
75ab0cf018 - handle a few leftovers in Blood. 2022-08-26 19:53:07 +02:00
Christoph Oelckers
b9568aa372 - missed this in Blood 2022-08-26 19:53:06 +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
0c0a33da8e - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:05 +02:00
Christoph Oelckers
f291a943a4 - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +02:00
Christoph Oelckers
0f8bf5f743 - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +02:00
Christoph Oelckers
5296051fef - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +02:00
Christoph Oelckers
6fe27b4fe5 - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +02:00
Christoph Oelckers
4a3e9f6df1 - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +02:00
Christoph Oelckers
458fc219ed - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +02:00
Christoph Oelckers
2642018bac - Blood: replaced the remaining spr.pos with int_pos() 2022-08-26 19:53:04 +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
4f391e46ce - added GetSoundPos variant taking a reference instead of pointer. 2022-08-26 19:53:03 +02:00
Christoph Oelckers
efc832ca5c - Blood: wrapped most write accesses to spr.pos 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
70d5ba6abe - Blood: first part of wrapping spr.pos write access. 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
Christoph Oelckers
9c107049fd Revert "- blood: fix velCeil calculation"
This reverts commit d85a8b6507.

This broke player view height on elevators.
2022-08-17 20:19:58 +02:00
Christoph Oelckers
4d423004e9 - unlimited the displayable sprites.
Now with Polymost gone this can finally be done properly.
2022-08-07 10:25:15 +02:00
Christoph Oelckers
738c133d05 - animation precaching cleanup.
No need to handle animations on the,game side. markTileForPrecache already handles this - now also for oscillating animations.
2022-08-05 23:48:43 +02:00
Christoph Oelckers
4f2170655c - animateoffs cleanup and consolidation
This was rewritten based on specs alone - it still doesn’t look that different due to its simplicity.
2022-08-05 23:32:16 +02:00
Christoph Oelckers
ec66f39535 - replaced a few naked chars with better types. 2022-08-05 17:04:46 +02:00
Christoph Oelckers
c2fc7577db - cleanup of 3D viewport code.
Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
b60181eed5 - variable cleanup. 2022-08-03 15:58:18 +02:00
Christoph Oelckers
291726cc55 - removed the Polymost renderer. 2022-08-03 15:50:27 +02:00
Mitchell Richters
00e12ea031 - Remove some uses of xs_Float.h functions in game-side code where overflow protection isn't needed.
* Went a little bit nuts and just used this everywhere back way back when.
2022-07-23 10:37:32 +10:00
Christoph Oelckers
6c915d7940 - Blood may not abort on a bogus start position.
There seem to be ways to override it elsewhere.
The initial position gets used by some code, so it still needs to be validated, though.
2022-07-12 09:52:30 +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
5a550613f3 - Simplify PlayerAngle::settarget() by adding a dedicated angle setter that resets interpolated value as well. 2022-05-30 21:22:10 +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
aab13addb7 -renamed spritetype’s owner field to ‚intowner‘
Mainly for easier searching.
Also remove the duplicate ‚detail‘ field.
2022-05-24 00:30:41 +02:00
Christoph Oelckers
84bafe6d02 - manual merge of latest nnext update. 2022-05-11 08:31:58 +02:00
Christoph Oelckers
acb244653c - several more Blood fixes copied from NBlood 2022-05-06 01:40:27 +02:00
Christoph Oelckers
83499740c3 - blood: GetHighestSprite fix
copied from NBlood f984eb8f5cb52653c301e015e34e8471d9ed8b7c
2022-05-06 01:28:21 +02:00
Christoph Oelckers
d85a8b6507 - blood: fix velCeil calculation
copied from NBlood 397992b6d5acd9c839db78dafde3a9a718b2503f
2022-05-06 01:26:38 +02:00
Christoph Oelckers
219970f626 - blood: SetupGibWallState fix
copied from NBlood f53f40ee79750aaadf1eeb4adc72a2cca034d8a2
2022-05-06 01:25:17 +02:00
Christoph Oelckers
4c139a2609 - blood: add missing case in OperateSprite
copied from NBlood 87315860a45dc16942f8e3c36290a856c886d619
2022-05-06 01:23:14 +02:00
Christoph Oelckers
5c9730766d - dd self check for burning cultist fix
Fix issue with spawned kDudeBurningCultist dudes entering water
Copied from NBlood ae80eef10fdd42224c7b6e782f259ba23c1069e7
2022-05-06 01:21:48 +02:00
Christoph Oelckers
aab0a4f129 - renamed a variable 2022-05-06 01:17:18 +02:00
Christoph Oelckers
2576de04b8 - Renamed checkFired6or7->checkLitSprayOrTNT
replicates NBlood 285ad39455556ede31a0a94796a324ac43d1e3ef
2022-05-06 01:16:10 +02:00
Christoph Oelckers
67339d18ae - use symbolic constants
Should be given real names, actually ;)
2022-05-06 01:14:58 +02:00
Christoph Oelckers
b26917f848 - Reset thinkTime for kDudeModernCustomDude
copied from NBlood commit a32f6d5f47f06ea3e97b66bdb4dcfafd319961ac
2022-05-06 01:11:44 +02:00
Christoph Oelckers
1e356741f9 - Set inittype on actSpawnDude()
copied from NBlood commit 3fefdfa85bb86b5e8e951e886a6d13c769666215
2022-05-06 01:10:22 +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
dd1178df91 - Initialize viewbob members for playerResetPosture()
copied from NBlood commit 1d72f1deba850cf616e443647064fddfa192f543
2022-05-06 00:59:53 +02:00
Christoph Oelckers
84834b0095 -Fix kDudeModernCustomDude may not morphing during specific events
copied from NBlood commit 0fbf9a1b2efef997e9ab8ba16e0405acd8d860b0
2022-05-06 00:55:50 +02:00
Christoph Oelckers
98c985de73 - Renamed dword_138BB0 -> gCultTeslaFireChance
copied from NBlood commit  c253f4af105b0c588d585f199cfc20021f4f6d4e
2022-05-06 00:50:18 +02:00
Christoph Oelckers
b452f53ff2 - stretch HUD flames in widescreen 2022-05-06 00:34:47 +02:00
Christoph Oelckers
c6f799dfff - shadow positioning improvements from NBlood 2022-05-06 00:22:39 +02:00
Christoph Oelckers
80f9ade43a - Blood: fix delirium being twice as fast
Copied from NBlood commit cc3c2f7f55bd9a865daee1e72442ef7af4f7d779
2022-05-06 00:05:44 +02:00
Christoph Oelckers
26179c56cf - improved the secret hint management for Blood.
This now uses sprite and sector indices directly instead of encoding them into a larger number. Sprite secrets will use a $t prefix instead of $s now.
2022-03-20 12:47:23 +01:00
Christoph Oelckers
3114059145 - fixed sprite indices for map spawned sprites. 2022-03-20 12:08:47 +01:00
Rachael Alexanderson
735740e453 - add level names to title bar (and by proxy, to RPC) 2022-03-18 05:06:58 -04:00
1e1cf9dd9c Fix tesla cultist prone state 2022-03-08 15:17:12 +01:00
Christoph Oelckers
b6eadbccb5 -Blood: fix crashes when trying to exit from a fatal error during startup.
soundEngine can be null here.
2022-02-21 00:26:51 +01:00
Christoph Oelckers
2f55d2a1c7 - Blood: fixed bad marker check in OperatePath 2022-02-20 23:28:20 +01:00
Christoph Oelckers
71943abed0 - changed math utilities to floating point coordinate system. 2022-02-15 22:18:26 +01:00
Christoph Oelckers
6fbecf2348 - RR: cleaned up and floatified the mine cart code 2022-02-15 22:18:25 +01:00
Christoph Oelckers
13d01bc98b - lower the value of MAXSO.
This was causing overflow issues and resulted in bad int <-> float conversions.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
a12093af04 - use full precision math for rotating sectors in Blood. 2022-02-15 22:18:24 +01:00
Christoph Oelckers
02d508baef - renamed floatified wall coordinate to 'pos'. 2022-02-15 22:18:24 +01:00
Christoph Oelckers
cd55658786 - use floats for vertices. 2022-02-15 22:18:23 +01:00
Christoph Oelckers
bc0e8b4a8d - use a method for setting wall coordinates when loading a map. 2022-02-15 22:18:23 +01: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
carnivoroussociety
1d8a11601d Fix ceiling panning angle 2022-02-15 16:02:00 +01:00
Christoph Oelckers
b82198b351 - Blood: fixed bad alignment flags for HUD flames. 2022-01-29 11:38:24 +01:00
Christoph Oelckers
f194fb6c90 - added a name to tilenum function so that we can define picnums by name in scripted actors. 2022-01-24 00:24:47 +01:00
Christoph Oelckers
04a380ce14 - added script exports for DCoreActor's member variables. 2022-01-24 00:24:46 +01:00
Christoph Oelckers
e64a6f7e30 - Blood: Fixed choking hand with new renderer.
This gets directed to the weapon 3D drawer, but for that it was processed too late.
2022-01-23 12:23:55 +01:00
Christoph Oelckers
c11000e4cd - Blood: do color highlighting for trigger messages, like NBlood does. 2022-01-22 09:38:01 +01:00
Mitchell Richters
f91f3eacca - Blood: Fix off-by-one error in trProcessBusy() loop.
* Originated from 0beb91e17e.
2022-01-16 23:44:53 +11:00
Christoph Oelckers
3aff12cf4c - sky management rework. 2022-01-16 12:12:43 +01:00
Christoph Oelckers
0beb91e17e - Blood: don't use references to address gBusy.
This will fail if the callback in trProcessBusy adds new entries to the array which would invalidate the reference.
2022-01-16 12:02:38 +01:00
Christoph Oelckers
a13612ab9b - Blood: allow bad start spots to pass for modern maps.
These can have alternative start spot definitions.
The error will still be printed, though.
2022-01-13 00:21:15 +01:00
Mitchell Richters
f8ffaa4be9 - Blood: Tidy up some missed kWeap constants. 2022-01-12 22:22:54 +11:00
Christoph Oelckers
ddcee4ecbf - split up g_visibility into two variables.
This is preparation for experimenting with the weapon flashes that can be quite annoying with how they brighten distant parts of the level far more than nearby parts.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
e892de21ec - preparations for unlimited tsprites.
Right now it is a no-op because Polymost cannot deal with this properly.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
415dc5246d - fixed sprting of non-translucent sprites. 2022-01-08 21:18:18 +01:00
Christoph Oelckers
70087ebc12 - fixed: The new renderer still called the Polymost screen finish function.
This led to a second, redundant postprocessing step with incorrect matrix values.
It now calls screen->Update() directly without the unneeded stuff, but this required a bit of reordering in the game code to ensure that the renderer receives the weapon data to display.
2022-01-08 13:50:47 +01:00
Christoph Oelckers
a3162f6ccf - renamed testnewrenderer CVAR. 2022-01-07 12:49:41 +01:00
Christoph Oelckers
b683c31ef7 - fixed bad GC setup for Blood's collision struct.
This is a union so the pointers must also be conditionally marked based on the union's state.
2022-01-03 16:18:07 +01:00
Christoph Oelckers
7915fb7ef1 - allow using "Mario" cheat with a space between name and number. 2022-01-03 07:13:34 +01:00
Mitchell Richters
aee4388a03 - Blood: Add nullptr check to OperatePath() to fix crash in Eviction's sgarage.map. 2022-01-03 10:19:08 +11:00
Christoph Oelckers
00ffc8b6a2 - Blood: fixed vertical wall texture interpolations. 2022-01-02 17:53:07 +01:00
Christoph Oelckers
7205319853 - Blood: clean up some variable mess in actFireVector 2022-01-02 17:23:01 +01:00
Mitchell Richters
84e9356bf2 Revert "- Blood: Force synchronised input while a revolving door is busy/in-use."
This reverts commit 232dd5e07a. The true fix was in "- Blood: fixed interpolation of sprites on rotating sectors.".
2022-01-03 01:50:17 +11:00
Christoph Oelckers
3b833029b0 - Blood: fixed interpolation of sprites on rotating sectors. 2022-01-02 13:00:55 +01:00
Christoph Oelckers
3499049976 - Blood: save basepoint for all actors, not just for those with an XSPRITE. 2022-01-01 15:52:05 +01:00
Christoph Oelckers
17de3a08e8 - deal with bad start sectors.
The engine will now try to find a proper sector in the map loader if there's a mismatch.
2022-01-01 10:39:59 +01:00
Christoph Oelckers
8575447e37 - Blood: fixed bad parameter in aiPatrolMove 2022-01-01 09:56:45 +01:00
Christoph Oelckers
3e21db19be - Blood: fixed Life Leech no longer gettable after having fired.
This was the direct result of dumb use of two pointers to different parts of the same objects.
2022-01-01 09:31:57 +01:00
Mitchell Richters
dcd006d34b - Blood: Add missing actorHit nullptr test in actImpactMissile(). 2022-01-01 11:38:43 +11:00
Christoph Oelckers
87cace6e6c - Blood: fixed wrong actor being used for key checks 2022-01-01 00:58:35 +01:00
Christoph Oelckers
a9b162b8e9 - moved the tsprite flags from cstat2 to clipdist which was already holding other ones.
cstat2 should only hold flags for game-side sprites.
2021-12-30 19:00:35 +01:00
Christoph Oelckers
552668418a - moved opos and oang to DCoreActor. 2021-12-30 18:21:02 +01:00
Christoph Oelckers
2bb7cecf27 - eliminated spritetype::clear.
Most uses were bad anyway, and the legitimate ones are just clearing the object.
2021-12-30 17:55:17 +01:00
Christoph Oelckers
7f62df517d - moved all interpolate* methods from spritetypebase to DCoreActor.
The places where it was used on tsprites were redone to use the actor's base coordinate, which at the point of the operation would always be the same.
2021-12-30 17:32:31 +01:00
Christoph Oelckers
c10fb1278a - moved the backup... methods to DCoreActor. 2021-12-30 17:10:08 +01:00
Christoph Oelckers
6c381d4392 - removed sector() method from low level sprite type. 2021-12-30 16:58:48 +01:00
Christoph Oelckers
5498699faf - use DCoreActor::sector() wherever possible. 2021-12-30 16:51:56 +01:00
Christoph Oelckers
88e4bb9f79 - moved sectno method to DCoreActor. 2021-12-30 16:39:43 +01:00
Christoph Oelckers
f0b7fe4add - use setsector from DCoreActor.
Also did a bit of cleanup
2021-12-30 16:36:04 +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
10a167ab42 - Blood: Replace XWALL panYVel with panVel.Y calls. 2021-12-30 23:00:41 +11:00
Mitchell Richters
a325dfec62 - Blood: Replace XWALL panXVel with panVel.X calls. 2021-12-30 23:00:41 +11: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
Mitchell Richters
4db3e91f24 - Blood: Remove some unused templated functions in common_game.h. 2021-12-30 20:46:38 +11:00
Mitchell Richters
9bbb54fe2e - Replace every line that just contains spaces or tabs with an empty line feed in all files except 3rd party libraries. 2021-12-30 20:30:21 +11:00
Christoph Oelckers
5061d5b37c - tabified the rest of Blood's code. 2021-12-30 09:58:48 +01:00
Christoph Oelckers
b7d095b943 - tabified more Blood files. 2021-12-30 09:58:48 +01:00
Christoph Oelckers
c25641c631 - db.cpp cleanup.
There were too many pointless global variables here and quite a bit of code doing nothing useful.
2021-12-30 09:58:47 +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
69283bfb0c - tabified several Blood source files. 2021-12-30 09:58:47 +01:00
Christoph Oelckers
e670cf2786 - re-tabified several files that got mangled by repeated merging 2021-12-30 09:58:47 +01:00
Christoph Oelckers
3fcecedf32 - deleted ClearContent functions from actor classes.
this is a leftover from pre-DObject times and no longer needed.
2021-12-30 09:58:47 +01:00
Christoph Oelckers
b1d8f92ded - added wall edge splitting for gl_seamless. 2021-12-30 09:58:44 +01:00
Christoph Oelckers
3fee8f3c4e - replaced dragpoint (both the generic and the Blood variant) with a newly written vertexscan function.
This is a template allowing to run any task on a set of walls with equivalent start point.
Code was redesigned from scratch to be more clear than the existing variants.

The idea here is to reuse the base algorithm for other things that need to operate on the equivalent set of a given wall's start point.
2021-12-30 09:58:15 +01:00
Christoph Oelckers
fb53f32603 - handle the remaining write accesses to ceilingz and floorz.
Everything is routed through the wrapper functions now.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
00a7be545d - added a map preview to the user map browser. 2021-12-30 09:58:08 +01:00
Christoph Oelckers
e3ce0da111 - make all actor pointers in the player struct regular pointers. 2021-12-30 09:58:06 +01:00
Christoph Oelckers
6dcc8761fe - replaced the last remaining s() calls in Blood's interface and deleted the method. 2021-12-30 09:57:51 +01:00
Christoph Oelckers
032c597fa5 - renamed shadowing variables in Blood. 2021-12-30 09:57:32 +01:00
Mitchell Richters
36fc6ede8e - Blood: Repair actor variable collision in GetZRange() causing all kinds of weirdness. 2021-12-30 09:57:31 +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
bd47f56a5c - x() is gone entirely. 2021-12-30 09:57:22 +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
b848a9c980 - some more. 2021-12-30 09:57:21 +01:00
Christoph Oelckers
0d5ea0f314 - handle most of PLAYER::pXSprite 2021-12-30 09:57:20 +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
5699488bea - get rid of spritetype in inactive code. (Search noise removal) 2021-12-30 09:57:20 +01:00
Christoph Oelckers
2254dacdf1 - forgot to save the last change. 2021-12-30 09:57:20 +01:00
Christoph Oelckers
5ad43256cc - the final s()'s in Blood. 2021-12-30 09:57:20 +01:00
Christoph Oelckers
582b83601d - targets in weapon.cpp, plus removal of the now redundant spritetype variants of IsTargetTeammate. 2021-12-30 09:57:19 +01:00
Christoph Oelckers
bf25428225 - upper/lower in CheckLink. 2021-12-30 09:57:19 +01:00
Christoph Oelckers
c67c6ed3da - the rest of triggers.cpp. 2021-12-30 09:57:19 +01:00
Christoph Oelckers
06d8db1470 - deal with the markers in triggers.cpp. 2021-12-30 09:57:19 +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
6766a5922a - pass actors to calcChaseCamPos. 2021-12-30 09:57:18 +01:00
Christoph Oelckers
87894a5640 - deleted PLAYER::pSprite. 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
f59af2cc2d - deal with most of PLAYER::pSprite in weapon.cpp. 2021-12-30 09:57:17 +01:00
Christoph Oelckers
b7ee813712 - global search & replace for many uses of PLAYER's pSprite pointer. 2021-12-30 09:57:17 +01:00
Christoph Oelckers
8dac94326a - s() stuff in player.cpp and gib.cpp 2021-12-30 09:57:17 +01:00
Christoph Oelckers
0a1184b388 - the last one in gameutil.cpp. 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
1f11eb24dd - use actor pointers in preload.cpp 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
91214b5350 - xsprite in animatesprite.cpp. 2021-12-30 09:57:16 +01:00
Christoph Oelckers
773d7d118f - pXSprite in callback.cpp 2021-12-30 09:57:16 +01:00
Christoph Oelckers
a0b6873446 - handle s() in callback.cpp. 2021-12-30 09:57:15 +01:00
Christoph Oelckers
a1f6b363fb - asound.cpp, blood.cpp, db.cpp and parts of callback.cpp 2021-12-30 09:57:15 +01:00
Christoph Oelckers
09634c4993 - use actors instead of sprites in the new renderer's API. 2021-12-30 09:57:15 +01:00
Christoph Oelckers
1f57322d56 - the last one in aiunicult.cpp which the search did not show. 2021-12-30 09:57:14 +01:00
Christoph Oelckers
627318c39b - handle pXSprite in aiunicult.cpp 2021-12-30 09:57:14 +01:00
Christoph Oelckers
be9d71ca6b - non-pXSprite x()'s in aiunicult.cpp. 2021-12-30 09:57:14 +01:00
Christoph Oelckers
49c43297cd - pXSprite in AI... code. 2021-12-30 09:57:14 +01:00
Christoph Oelckers
f678e55daa - pSprite in aiunicult.cpp. 2021-12-30 09:57:14 +01:00
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
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
Christoph Oelckers
c2613d9720 EventObject 2021-12-25 21:28:57 +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
7d2404ce76 - made sector a TArray. 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
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
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
47e207f158 - eliminated spritetype::index.
# Conflicts:
#	source/games/sw/src/swactor.h
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
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
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
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
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
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
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
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
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
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
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
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
Mitch Richters
974ca7bd1d - Remove a lot of reference values on primitive data types from Blood's QAV interpolation system. Also use move assignments on the ignoredata TMap when we're adding it to the game-side after processing it. 2021-11-29 00:55:31 +01:00
Christoph Oelckers
01abe7b2ac - addressed most unused/uninitialized variable warnings from MSVC. 2021-11-29 00:55:30 +01:00
Christoph Oelckers
c6bd5c04c7 - fixed most warnings GCC pointed out in game code. 2021-11-29 00:55:29 +01:00
Mitch Richters
e491d15ff9 - Move InputScale() out of inputstate.cpp and into i_time.cpp as I_GetInputFrac() to make it available to GZDoom for potential future requirements.
* As part of this, feed the output of `I_GetInputFrac()` to `gi->GetInput()` instead of having each game's virtual override calling it locally.
2021-11-29 00:55:01 +01:00
Christoph Oelckers
08bc31e6e2 - use GetIndex function where appropriate. 2021-11-29 00:55:00 +01:00
Christoph Oelckers
ad95033c64 - removed temporary workaround 2021-11-29 00:55:00 +01:00
Christoph Oelckers
40b22a90e9 - Blood: cleaned out some crutches needed to deal with the broken vanilla savegame code.
Raze has fixed its savegame format so that it can fully restore a game session from it.
As a result, nnExtInitModernStuff was never called with 'saveload' set to true and none of this code ever executed.
2021-11-29 00:55:00 +01:00
Christoph Oelckers
b6d00667de - something insignificant that was missed. 2021-11-29 00:55:00 +01:00
Christoph Oelckers
433764fd91 - mark all places using a sprite index that needs addressing with a GetSpriteIndex function. 2021-11-29 00:55:00 +01:00
Christoph Oelckers
c40266625b - moved gInterpolateSprite into DBloodActor 2021-11-29 00:55:00 +01:00
Christoph Oelckers
bac40ddb05 - viewBackupSpriteLoc calls 2021-11-29 00:54:59 +01:00
Christoph Oelckers
98a3564ee6 - use GetIndex for error messages and deleted several unused index variables. 2021-11-29 00:54:59 +01:00
Christoph Oelckers
21a208e59e - eliminated most references to spritetype::extra
This was all places that could have been done earlier but had been overlooked.
2021-11-29 00:54:59 +01:00
Christoph Oelckers
3d63c44aae - GCC warned about this. 2021-11-29 00:54:59 +01:00
Christoph Oelckers
fb95f0fff7 - store an actual actor pointer in PLAYER.
# Conflicts:
#	source/games/blood/src/player.cpp
2021-11-29 00:54:58 +01:00
Christoph Oelckers
812b18e49a - some xsprite cleanup 2021-11-29 00:54:58 +01:00
Christoph Oelckers
3e452994d8 - handle all of gUpper/gLowerLink.
This completes the removal of all access to the global arrays outside of setup code.
2021-11-29 00:54:58 +01:00
Christoph Oelckers
5b9152abfd - eliminated the last access to playerActors in trigger.cpp and made AimTargets a pointer array. 2021-11-29 00:54:58 +01:00
Christoph Oelckers
6dd7cbe8fa - GetCrushedSpriteExtents and leftover bloodActors references. 2021-11-29 00:54:58 +01:00
Christoph Oelckers
d2bc254e03 - the rest of triggers.cpp. 2021-11-29 00:54:57 +01:00
Christoph Oelckers
9349e7bcb1 - several simple functions.
Also two fixes involving trTriggerSprite.
2021-11-29 00:54:57 +01:00
Christoph Oelckers
0ae664e9ca - SetSpriteState 2021-11-29 00:53:57 +01:00
Christoph Oelckers
7e8fc3fe65 - target in UpdateAimVector, teslaHit. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
7d1c81626e - changed all naked Stat/SectIterator loops to use the Blood... variants. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
9016256ac2 - savegame hackery for sequences. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
4e1e9ca0c9 - proper actor managements in SEQINST. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
7204b8e026 - deal with QAV::nIndex.
This was totally redundant. Since the player already gets passed as 'Data', we can just make that pointer a PLAYER type and use it instead to retrieve the playing actor for sound purposes.
2021-11-29 00:53:56 +01:00
Christoph Oelckers
70cd4d9466 - minor sprite[] stuff. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
8f974dc1d8 - the remaining functions of player.cpp. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
fddc213fa8 - made PLAYER::fragger an actor pointer. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
abee5c5eaa - parameters in Pickup functions, getting rid of all (x)sprite[] references in player.cpp. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
07e88e36f6 - ActionScan cleanup plus smaller bits in player.cpp
# Conflicts:
#	source/games/blood/src/player.cpp
2021-11-29 00:53:55 +01:00
Christoph Oelckers
e95936efd6 - made PLAYER::used2 an actor array and renamed it to match its purpose.
Note: Renaming this for savegames is fine, as it's not relevant in singleplayer.
2021-11-29 00:53:54 +01:00
Christoph Oelckers
165b2f29ff - removed last remaining accesses to sprite[] and xsprite[] from nnexts.cpp. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
85c4b96177 - removed all access to sprite[] from mirrors.cpp. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
826fd7ddb2 - optimized vector math. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
50f9b67598 - removed all sprite[] references from gameutil.cpp. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
7a2c661ff9 - GetZRange 2021-11-29 00:53:54 +01:00
Christoph Oelckers
626deed960 - VectorScan 2021-11-29 00:53:53 +01:00
Christoph Oelckers
0466186440 - HitScan 2021-11-29 00:53:53 +01:00
Christoph Oelckers
c2916259d7 - CheckProximity
# Conflicts:
#	source/games/blood/src/aibeast.cpp
2021-11-29 00:53:53 +01:00
Christoph Oelckers
db75e4d2bf - moved basePath into XSECTOR.
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-11-29 00:53:53 +01:00
Christoph Oelckers
0d2da892e8 - made marker0 and marker1 actor pointers. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
f4b900c540 - moved velocity data into DBloodActor. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
6a8f59e991 - removed remaining direct access to the velocity arrays. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
ff9a86b7b4 - proper way to get player actor. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
1cb98593f1 - removed compatible savegame handling for SPRITEHIT.
This does not need to be preserved, unlike the other refactored global arrays.
2021-11-29 00:53:51 +01:00
Christoph Oelckers
54f70ec1bb - moved baseSprite into DBloodActor. 2021-11-29 00:53:51 +01:00
Christoph Oelckers
14ace49c3e - owner stuff.
This reduces the number of direct references to spritetype.owner by half in the Blood code.
2021-11-29 00:53:51 +01:00
Christoph Oelckers
3b1ba88a41 - gib stuff. 2021-11-29 00:53:51 +01:00