Commit graph

1293 commits

Author SHA1 Message Date
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