Commit graph

1402 commits

Author SHA1 Message Date
Christoph Oelckers
b53e4b824e - handle the portals in Duke and Blood. 2022-10-16 09:40:29 +02:00
Christoph Oelckers
cd4d3ee2d2 - a handful more calls cleaned up 2022-10-15 18:22:09 +02:00
Mitchell Richters
c9e33b92cc - Ensure all games consistently scale out for chase cam mode. 2022-10-15 13:32:04 +02:00
Mitchell Richters
3019f9effc - Floatify smoothratio for GameInterface::processSprites().
* Exhumed is now completely free of any Q16.16 interpolation scaling.
2022-10-15 13:32:03 +02:00
Mitchell Richters
01d185dc6b - Floatify smoothratio for DrawOverheadMap(). 2022-10-15 13:32:03 +02:00
Mitchell Richters
5e410ff738 - Eliminate most uses of DAngle::Buildfang(). 2022-10-15 13:32:03 +02:00
Mitchell Richters
45d4d3e41a - Eliminate __interpvalue() and clean up Q16.16 smoothratio values where it made sense to do so.
* Also eliminates a now empty header.
2022-10-15 13:32:02 +02:00
Mitchell Richters
f02035b15a - Eliminate __interpvaluef() and clean up Q16.16 smoothratio values where it made sense to do so. 2022-10-15 13:32:01 +02:00
Mitchell Richters
2c8cb8f052 - Rename DCoreActor method interpolatedvec3() to interpolatedpos(). 2022-10-15 13:32:01 +02:00
Mitchell Richters
39ac3b44b0 - Add scaler operators to fixedhorizon class and eliminate class-specific interpolatedhorizon() inlines. 2022-10-15 13:32:01 +02:00
Mitchell Richters
74167e1a7c - Remove interpolators for TVector and TAngle objects, replacing with single generic version. 2022-10-15 13:32:01 +02:00
Mitchell Richters
06e772b44b - Rename interpolatedvalue() in preparation for replacement. 2022-10-15 13:32:01 +02:00
Mitchell Richters
8fd6452baf - Rename interpolatedvaluef() in preparation for replacement. 2022-10-15 13:32:01 +02:00
Christoph Oelckers
1a9e255265 - the angle in aiChooseDirection must be precisely what it was in Build.
60° may only be 1/3 Build angle unit off, but it is already too much.
2022-10-15 13:32:00 +02:00
Mitchell Richters
a739928d29 - Blood: Fix lost accounting of target sprite angle in actCheckFlares(). 2022-10-15 13:32:00 +02:00
Mitchell Richters
a8f7b3f6fe - Blood: Fix bad angle direction in aiChooseDirection(). 2022-10-15 13:32:00 +02:00
Christoph Oelckers
2b5422cc53 - floatified USER::goalAng 2022-10-15 13:32:00 +02:00
Christoph Oelckers
9df7c55040 - rename USER::goalAng 2022-10-15 13:32:00 +02:00
Christoph Oelckers
057d2a565a - floatified Blood's velFloor and velCeil 2022-10-15 13:31:59 +02:00
Christoph Oelckers
38bb103cdd - renamed velFloor and velCeil. 2022-10-15 13:31:59 +02:00
Christoph Oelckers
4f9ffc9437 - mainly handling angle literals. 2022-10-15 12:42:30 +02:00
Christoph Oelckers
a85bcebd09 - floatified Blood's asound.cpp 2022-10-15 12:42:30 +02:00
Mitchell Richters
f69e977411 - Blood: Fix velocity issues in MoveThing(), such as explosive bundles not sliding along the ground.
* Merge with or above `- parts of Blood's MoveThing`.
2022-10-15 12:42:30 +02:00
Christoph Oelckers
a6eec404db - parts of Blood's MoveThing 2022-10-15 12:42:30 +02:00
Mitchell Richters
7d5040f560 - Fix all calls to interpolatedangle() that didn't revert smoothratio back to a float. 2022-10-15 12:16:53 +02:00
Mitchell Richters
f72d42bb8e - Uplift renderer entry point to DVector3 and provide wrappers for old setups. 2022-10-15 12:16:53 +02:00
Mitchell Richters
977d8f8109 - Convert gi->chaseCamPos() to return a floating point DVector3 object. 2022-10-15 12:16:53 +02:00
Mitchell Richters
ef56d00d78 - Pass automap angle vector as an actual vector.
* Also reconfigure setup so that angle requires zero pre-processing or setup in the automap code, have it all handled in `OutAutomapVector()`.
2022-10-15 12:16:52 +02:00
Christoph Oelckers
1dcb03e530 - got rid of set_int_bvel 2022-10-15 11:35:38 +02:00
Christoph Oelckers
96297c95aa vel assignment with fixed point constants 2022-10-15 11:35:37 +02:00
Christoph Oelckers
010fedd049 - 10 more AdjustVelocity calls. 2022-10-15 11:35:37 +02:00
Christoph Oelckers
39109de22f - consolidation of Blood rotation code.
24x the same pattern merged into a subfunction.
2022-10-15 11:35:37 +02:00
Christoph Oelckers
b5c679f228 - got a few more 2022-10-15 11:35:37 +02:00
Christoph Oelckers
4af3f6e731 - comparison with zero replacements 2022-10-15 11:35:37 +02:00
Christoph Oelckers
ac84e3f045 - some simple replacements 2022-10-15 11:35:37 +02:00
Christoph Oelckers
18cc450889 - more easy to replace vel assignments 2022-10-15 11:35:36 +02:00
Christoph Oelckers
5cde04fee7 - cleaned up assignments of random values to vel 2022-10-15 10:33:03 +02:00
Christoph Oelckers
eed7f0806c - more quick replacements 2022-10-15 10:15:21 +02:00
Christoph Oelckers
62ba753585 - remove vel clear wrappers 2022-10-15 10:15:21 +02:00
Christoph Oelckers
b924569755 - started removing trivial vel wrappers 2022-10-15 10:15:20 +02:00
Christoph Oelckers
f2d89b7609 - refactored actWallBounceVector as well
This completes the abstraction of velocity in Blood.
2022-10-15 10:15:20 +02:00
Christoph Oelckers
92532bb007 - eliminated actFloorBounceVector wrapper 2022-10-15 10:14:54 +02:00
Christoph Oelckers
9f235b56f3 - rewrote actFloorBounceVector to avoid reference parameters 2022-10-14 23:55:32 +02:00
Christoph Oelckers
fce956f83e - move stuff around 2022-10-14 23:55:31 +02:00
Christoph Oelckers
a69bdb3370 - eliminated Blood’s RotatePoint function 2022-10-14 23:55:31 +02:00
Christoph Oelckers
3bac7af313 - simple stuff in blood/actor.cpp 2022-10-14 23:55:31 +02:00
Christoph Oelckers
c45ecdae73 - wrapped all velocity access in Blood, except the places where an address of vel is taken 2022-10-14 23:55:30 +02:00
Christoph Oelckers
7a7a2cdb39 - various replacements of vel 2022-10-14 23:55:30 +02:00
Christoph Oelckers
f1d3126435 - vel assignments 2022-10-14 23:55:30 +02:00
Christoph Oelckers
994cb47d36 - set_int_bvel_z 2022-10-14 23:52:44 +02:00
Christoph Oelckers
9cbffc998e - set_int_bvel_y 2022-10-14 23:52:44 +02:00
Christoph Oelckers
761da2b06e - set_int_bvel_x 2022-10-14 23:52:43 +02:00
Christoph Oelckers
b78d5a95ac - more add_int_bvel_ 2022-10-14 23:52:43 +02:00
Christoph Oelckers
1999340c8a - add_int_bvel_z 2022-10-14 23:52:43 +02:00
Christoph Oelckers
49d280c665 - add_int_bvel_y 2022-10-14 23:52:43 +02:00
Christoph Oelckers
12e5fd133c - add_int_bvel_x 2022-10-14 23:52:43 +02:00
Christoph Oelckers
49f0e9c57d - batch 3 of vel. 2022-10-14 23:52:43 +02:00
Christoph Oelckers
193d20bb4d - wrapped more xvels 2022-10-14 23:52:43 +02:00
Christoph Oelckers
e3758d6adc - started wrapping vel 2022-10-14 23:52:42 +02:00
Christoph Oelckers
e7b09dbaac - renamed vel. 2022-10-14 23:52:42 +02:00
Christoph Oelckers
a5a04b1123 - moved Blood's velocity vector to DCoreActor. 2022-10-14 23:52:42 +02:00
Christoph Oelckers
f8ba5bb660 - final xvel cleanup. 2022-10-14 23:13:33 +02:00
Mitchell Richters
9e93b417b7 - Blood: Some missed MaxSmoothRatio changes. 2022-10-14 18:19:03 +02:00
Mitchell Richters
5407de6924 - Use MaxSmoothRatio everywhere so refactoring is easier later on. 2022-10-14 18:19:03 +02:00
Mitchell Richters
0baaad7c23 - Blood: Add seemingly forgotten call to MarkSectorSeen().
* Automap wasn't updating upon movement into new sectors unless the automap was toggled on and off.
2022-10-14 18:19:02 +02:00
Mitchell Richters
7d85acac13 - Clean up remaining automap interfaces to finish the floatification.
* Even though we pre-calculate the sine/cosine needed in `DrawOverheadMap()`, Duke and SW require the full angle for their more mature automaps.
2022-10-14 18:19:02 +02:00
Mitchell Richters
56b0661f81 - Blood: Floatify automap draw code. 2022-10-14 18:13:50 +02:00
Christoph Oelckers
785575604b - no need to use int_delta when all we want is the angle. 2022-10-13 22:54:43 +02:00
Christoph Oelckers
05a7fe8f36 - renamed walltype::fdelta and fcenter 2022-10-13 22:54:43 +02:00
Christoph Oelckers
6ce01e24d2 - renamed walltype::delta and walltype::center 2022-10-13 22:54:42 +02:00
Christoph Oelckers
1d28ebec98 - eliminated add_int_z and add_int_y wrappers 2022-10-13 22:54:42 +02:00
Christoph Oelckers
f4d8ccf7b9 - floatified WarpToCoords 2022-10-13 20:58:12 +02:00
Christoph Oelckers
55455ea4fa - use floating point for the last remaining rotation in TranslateSector 2022-10-13 20:58:11 +02:00
Christoph Oelckers
decaff78dc - floatified parts of useSeqSpawnerGen.
Also fixing a sprite size bug in here.
2022-10-13 20:58:11 +02:00
Christoph Oelckers
5fba68ffe1 - floatified Blood’s kViewEffectTrail 2022-10-13 20:58:11 +02:00
Christoph Oelckers
b73314579a - floatified Blood’s kViewEffectAtom
This also gets rid of the rather pointless rotation functions that were just added for this.
2022-10-13 20:58:11 +02:00
Christoph Oelckers
ea9c88d952 - floatified Blood’s MoveMissile function 2022-10-13 20:56:38 +02:00
Christoph Oelckers
978c35fda1 - mess reduction in Blood’s TranslateSector
We can also get rid of set_int_xy now.
2022-10-13 20:42:29 +02:00
Christoph Oelckers
cceecb4ab6 - use ToVector where appropriate 2022-10-13 20:41:54 +02:00
Christoph Oelckers
07826c7791 - eliminated DCoreActor::copyXY 2022-10-13 00:59:05 +02:00
Mitchell Richters
4d04a4dd3a - Floatified automap's gZoom.
* Also use the global directly in automap functions instead of passing it around as function variables.
2022-10-13 00:59:04 +02:00
Mitchell Richters
f5116dd787 - Pass a DAngle through to all the automap code. 2022-10-13 00:59:04 +02:00
Mitchell Richters
e970ed0f27 - Migrate spritetypebase::interpolatedvec3() to backend solution.
* Also eliminate unused `interpolatedvec2() method from class.
2022-10-13 00:59:03 +02:00
Mitchell Richters
1e36aa0e7f - Move TAngle<> interpolation function to common and add ones for TVector<> classes. 2022-10-13 00:59:03 +02:00
Mitchell Richters
d133839e2e - Fix a few uses of interpolatedvalue() with floating point numbers. 2022-10-13 00:59:03 +02:00
Mitchell Richters
92b16907d2 - Use getincangle() in more places so it can be refactored easier later on. 2022-10-13 00:59:02 +02:00
Mitchell Richters
a22300fe01 - Blood: Replace some set_int_ang() usage.
* A lot of this repeated code should be factored out into repeated blocks when all of this floatification is done.
2022-10-13 00:59:02 +02:00
Christoph Oelckers
d573ba4cad - pass map start as DVector3 2022-10-13 00:59:01 +02:00
Christoph Oelckers
40312d64c8 -coordinates 2022-10-13 00:59:01 +02:00
Christoph Oelckers
0edd12bc11 - set_int_ang(getangle 2022-10-13 00:59:01 +02:00
Christoph Oelckers
478672879e - partial HitScan parameter change
The really easy stuff…
2022-10-13 00:59:00 +02:00
Christoph Oelckers
54cf1aea6f - got rid of CGibPosition 2022-10-13 00:59:00 +02:00
Christoph Oelckers
f80b228a83 - deal with int positions in approxdist calls 2022-10-13 00:58:59 +02:00
Christoph Oelckers
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