Commit graph

2185 commits

Author SHA1 Message Date
Mitchell Richters
9eec69d810 - Blood: Floatify position drawing code and clean up now-unused wrappers.
* Still work to be done on bob/sway/zView variables.
2022-10-18 18:29:09 +02:00
Christoph Oelckers
fdc6a49a97 - another movesprite wrapper to get rid of int_yvel and int_xvel 2022-10-17 17:25:59 +02:00
Christoph Oelckers
47ad4fccdc - convert all set/add_int_x/yvel calls 2022-10-17 17:25:59 +02:00
Christoph Oelckers
1ba20c7dce - wrapped most clipdist assignments 2022-10-17 17:03:53 +02:00
Christoph Oelckers
ef47040630 - renaming stuff for search purposes 2022-10-17 17:03:53 +02:00
Christoph Oelckers
3fc592c505 - wrap clipdist copy 2022-10-17 17:03:53 +02:00
Christoph Oelckers
16f0d15cdc - wrapper for literal assignments to clipdist 2022-10-17 17:03:52 +02:00
Christoph Oelckers
3e36b5627b - wrap clipdist << 2 2022-10-17 17:03:52 +02:00
Christoph Oelckers
cf8b650446 - floatify Bullet::x,y,z 2022-10-17 17:03:52 +02:00
Christoph Oelckers
5efc032a4c - increase angular threshold for aligning wall sprites.
With full precision angles the old threshold is simply too low.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
9d1edf9cc5 - clean up angle math in wall drawer. 2022-10-16 10:59:04 +02:00
Christoph Oelckers
7a9f89b95d - removed obsolete scripting exports. 2022-10-16 10:59:04 +02:00
Christoph Oelckers
6de279282e - marked integer dragpoint function deprecated. 2022-10-16 10:19:40 +02:00
Christoph Oelckers
b53e4b824e - handle the portals in Duke and Blood. 2022-10-16 09:40:29 +02:00
Christoph Oelckers
0e628ed222 - floatified CollectPortals and its helpers 2022-10-16 09:40:28 +02:00
Christoph Oelckers
7f3c5ae18d - added a 'dot' function to DVector2 because using the '|' operator is not intuitive. 2022-10-15 17:52:07 +02:00
Christoph Oelckers
dfabdff553 - set_int_hitpos is not used anymore 2022-10-15 17:49:34 +02:00
Christoph Oelckers
b202cf7a12 - added option to show the level stats on the automap. 2022-10-15 17:14:34 +02:00
Mitchell Richters
53b32ea161 - Leverage walltype's delta() method in chase cam code. 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
8f2d6f0779 - Floatify smoothratio for render_drawrooms() and `render_camtex(). 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
b05b98826b - Rename some smoothratio variables to indicate that they've been processed. 2022-10-15 13:32:03 +02:00
Mitchell Richters
6716d0f2e9 - Floatify smoothratio for calcChaseCamPos(). 2022-10-15 13:32:02 +02:00
Mitchell Richters
953364b96b - Rename a smoothratio variable to interpfrac to show that it's not Q16.16. 2022-10-15 13:32:02 +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
f5dda2909a - Remove now-unused interpolation methods from DCoreActor class. 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
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
92379863f1 - don't use DAngle for calculating bobbing amplitudes.
It makes more sense here to have a dedicated function since this is not really angular math.
2022-10-15 13:31:59 +02:00
Christoph Oelckers
6b0b8f944c - floatified the height parameter of nextsectorneighborptr 2022-10-15 12:42:30 +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
056bb9b0cd - Floatify chase cam code, providing an inline interface for legacy setup. 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
db5db7d9b3 - Turn DVector2 rotatepoint() into an inline using the vector's methods. 2022-10-15 12:16:53 +02:00
Mitchell Richters
18f97c3d7e - SW: Move player sprite loop out of sector loop, and eliminate goto crap. 2022-10-15 12:16:52 +02:00
Mitchell Richters
f236cc8728 - Consolidate some duplicated automap code between Duke and SW. 2022-10-15 12:16:52 +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
712d28ff40 - clean out some stuff 2022-10-15 11:35:38 +02:00
Christoph Oelckers
3e76d49b6e - removed the mul vel wrappers 2022-10-15 10:15:21 +02:00
Christoph Oelckers
6fd8dae380 - removed the non-Blood float_* access wrappers 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
64e8a369ec - floatified velocity storage 2022-10-15 10:15:20 +02:00
Christoph Oelckers
e361abb96d - added some utilities 2022-10-14 23:55:32 +02:00
Christoph Oelckers
0c146e7ccb - Unify the velocity vectors of all games
spritetype’s former vel fields are only being retained for alternative use - yvel -> yint as generic parameter in Duke and zvel -> inittype for Blood.
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
1999340c8a - add_int_bvel_z 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
cb81a50752 - Blood vel wrappers. 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
9ba03ac53f - renamed yvel to yint in Duke.
It's never used as velocity, but as an auxiliary parameter so name it appropriately.
2022-10-14 23:17:45 +02:00
Christoph Oelckers
b0e67ab88d - clear_yvel 2022-10-14 23:13:34 +02:00
Christoph Oelckers
f8ba5bb660 - final xvel cleanup. 2022-10-14 23:13:33 +02:00
Christoph Oelckers
aa22e48036 - preparations for xvel wrapping.
Mainly providing alternative names for the spritetype members and redirecting all relevant access to those.
2022-10-14 23:02:11 +02:00
Christoph Oelckers
9f08abc90e - eliminate the only use of zvel in tspritetype.
Since this never gets manipulated on the tsprite size, better get it directly from the actor so that the final velocity vector does not need to be in spritetype et.al.
2022-10-14 20:31:57 +02:00
Christoph Oelckers
05f488ce3c - add more wrappers and use 'inittype' where the actual zvel member of spritetype is wanted.
This will avoid problems with search&replace later.
2022-10-14 20:31:56 +02:00
Christoph Oelckers
8946a66350 - handle zvel multiplications with a wrapper.
This completes wrapping of zvel.
2022-10-14 20:31:56 +02:00
Christoph Oelckers
8bfedc327f - add_int_zvel 2022-10-14 20:31:56 +02:00
Christoph Oelckers
81fc066a5e - use zvel's alias inittype where it's not being used for velocity. 2022-10-14 20:31:55 +02:00
Christoph Oelckers
70d0d0622b - wrapped 0 assignments to zvel 2022-10-14 20:31:55 +02:00
Christoph Oelckers
3f7b423a4a - zvel wrapping, part 1. 2022-10-14 20:31:55 +02:00
Mitchell Richters
d63fb33dd0 - Pass DVector2 objects directly through to F2DDrawer::AddLine() and F2DDrawer::AddThickLine().
* Since all the external code calling through to these methods are built on vectors, makes sense to pass them around by reference.
2022-10-14 18:19:04 +02:00
Mitchell Richters
5407de6924 - Use MaxSmoothRatio everywhere so refactoring is easier later on. 2022-10-14 18:19:03 +02:00
Christoph Oelckers
463e1a8047 - account for stupid GCC limitation. 2022-10-14 18:19:03 +02:00
Mitchell Richters
681bd640ed - Make drawlinergb() use twod->AddThickLine() for when am_linethickness is greater than 1, not 2. 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
986466de67 - Commence updating gi->DrawAutomapPlayer() for floatification, beginning with Duke's CSTAT_SPRITE_ALIGNMENT_FACING code. 2022-10-14 18:13:49 +02:00
Mitchell Richters
d9f8ac4d2a - Convert automap's follow_x/follow_y variables into a proper vector.
* Should have done this from the start, but anyhow...
2022-10-14 18:13:49 +02:00
Mitchell Richters
059f15c786 - Refactor floatified vector math to use inline wrapped around TVector2's Rotated() method.
* This will be used extensively in Duke and the other game as we finalise this conversion.
2022-10-14 18:13:49 +02:00
Mitchell Richters
e9d5cd2a3a - Flatten automap's zoom values from Q20.10 to floating point. 2022-10-14 18:13:49 +02:00
Christoph Oelckers
2838fa3e72 - floatified sectortype::ang 2022-10-14 17:17:37 +02:00
Christoph Oelckers
3ac4e7ed2d - eliminated player_int_ceiling_dist, player_int_floor_dist wrappers 2022-10-14 00:06:30 +02:00
Christoph Oelckers
81c7e7671f - fixed Clang warnings 2022-10-13 22:54:43 +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
681784fdf8 - removed set_int_pos wrapper 2022-10-13 22:54:42 +02:00
Christoph Oelckers
f4d8ccf7b9 - floatified WarpToCoords 2022-10-13 20:58:12 +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
ad648676b1 - floatified SPREXT_AWAY handler 2022-10-13 19:59:16 +02:00
Christoph Oelckers
23bd9918af - pass a DVector3 to updatesectorneighbor 2022-10-13 19:59:15 +02:00
Christoph Oelckers
07826c7791 - eliminated DCoreActor::copyXY 2022-10-13 00:59:05 +02:00
Mitchell Richters
bff9856bf3 - Floatified DrawPlayerArrow(). 2022-10-13 00:59:05 +02:00
Mitchell Richters
61e70fefbd - Floatified drawwhitelines(). 2022-10-13 00:59:05 +02:00
Mitchell Richters
bb3959fb0f - Floatified drawredlines(). 2022-10-13 00:59:05 +02:00
Mitchell Richters
60f5d9b67c - Rework some automap functions in prep for floatification. 2022-10-13 00:59:04 +02:00
Mitchell Richters
85f7297ad3 - Floatified renderDrawMapView(). 2022-10-13 00:59:04 +02:00
Mitchell Richters
8a8fb3c658 - Floatified automap's follow_x/follow_y` variables. 2022-10-13 00:59:04 +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
01ed871239 - Optimise spritetypebase::backupvec2() and remove now-unused backupx/y() methods. 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
bdf35ac3a9 - Eliminate spritetypebase::__interpolatedvec2(). 2022-10-13 00:59:03 +02:00
Mitchell Richters
0dcd209d91 - Fixed a missed interpolatedvaluef() fix. 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
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
54cf1aea6f - got rid of CGibPosition 2022-10-13 00:59:00 +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
dc1c6976e2 - removed OSD_StripColors.
This was handling color control sequences in EDuke32 format which are totally irrelevant for Raze.
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
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
f002425aee - use floats for internal SetActor(Z) functions. 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
97223af592 - silenced a few conversion truncation warnings. 2022-10-12 15:49:07 +02:00
Christoph Oelckers
7a45738d7e - avoid integer math for wall sprites. 2022-10-10 17:37:18 +02:00
Christoph Oelckers
c59e4f8a10 - floatified sprext.position_offset 2022-10-10 17:37:17 +02:00
Christoph Oelckers
2954603573 - got rid of integer vector math in hw_bunchdrawer.cpp 2022-10-10 17:37:17 +02:00
Christoph Oelckers
45f37525e0 - minor angle stuff in Blood 2022-10-10 17:31:30 +02:00
Christoph Oelckers
80e10d89f4 - added alignceilslope and alignflorslope variants receiving a position vector. 2022-10-10 17:31:28 +02:00
Christoph Oelckers
24b23d6919 - floatified PLAYER::ceiling_dist/floor_dist. 2022-10-09 22:30:51 +02:00
Christoph Oelckers
209867e036 - cleaned out some unnecessary inlines. 2022-10-09 22:00:43 +02:00
Christoph Oelckers
b2d0d7f9e5 - normalize the timer with the app start, not the epoch.
This ensures smaller values and less wraparounds with integer values in scripts.
2022-10-09 14:50:45 +02:00
Christoph Oelckers
7873fd7c3c - int_floorz/int_ceilingz in the renderer. 2022-10-09 08:21:52 +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
4d02cdcce9 - use explicit types in hitscan calls 2022-10-06 20:50:47 +02:00
Christoph Oelckers
55aa981f89 - ppos.Z assignments 2022-10-06 20:50:46 +02:00
Christoph Oelckers
8e966fc575 - int_ppos replacements 2022-10-06 20:50:45 +02:00
Christoph Oelckers
e71254dfa6 - floatified some parts of the SO interface for consistent use of MAXSO. 2022-10-06 20:50:45 +02:00
Christoph Oelckers
32e1f07b60 - eliminate all use of integer coordinates in the sector geometry creation code.
This eliminates the last small remnants of texture twitching in SW as well.
2022-10-05 18:31:46 +02:00
Christoph Oelckers
3a9f9988f4 - redid clipinsidebox* functions.
* Completely rewritten to be less obtuse.
* Consolidated the two variants.
* Renamed to be clearer about what they do.
2022-10-05 18:31:45 +02:00
Christoph Oelckers
b9d0c9d6ba - simplified slope sprite code a bit and got rid of clipinsidebox overload. 2022-10-05 18:29:30 +02:00
Christoph Oelckers
0a3bd7a3a3 - walltype::fdelta 2022-10-05 18:29:04 +02:00
Christoph Oelckers
91f305125e - floatified GetWallSpritePosition and redirected get_wallspr_points to use it. 2022-10-05 18:29:04 +02:00
Christoph Oelckers
c712d594e0 - fully floatified GetFlatSpritePosition 2022-10-05 18:29:03 +02:00
Christoph Oelckers
21944d5ac2 - updatesectorz with DVector3. 2022-10-05 18:22:07 +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
5f586ee40c - Tiny bit of abstraction in PlayerAngle struct. 2022-10-05 00:36:32 +02:00
Mitchell Richters
2757140ad1 - Convert all remaining angle internals of PlayerAngle into DAngle units.
* With the old setup, we needed to use primitives to get the desired outcome, but since DAngle stores a proper angle in true degrees, we can use it all the way.
2022-10-05 00:36:32 +02:00
Mitchell Richters
bd7a004c4c - Convert delta test in PlayerAngle::processhelpers() to degrees, missed during cf2788b14b3d5c2e0533ad4cdc7912253848a5b9. 2022-10-05 00:36:32 +02:00
Mitchell Richters
69dff8658f - Move getincangle() from gameinput.h to gamefuncs.h.
* Should be eliminated fairly soon, anyway.
2022-10-05 00:36:32 +02:00