Commit graph

2149 commits

Author SHA1 Message Date
Christoph Oelckers
9275c14c9c - floatify SE18 handler.
To store floars in temp_data without relying on map format conventions, the FixedTo functions were extended to allow custom precision.
2022-10-12 22:10:35 +02:00
Christoph Oelckers
1131eeb443 - setfloorz and setceilingz must be called for changing sector planes 2022-10-12 22:10:35 +02:00
Mitchell Richters
b804d7fe15 - Duke: Fix bad setups when calling cansee(). Fixes issues with pigcop on kerb in E2L1. 2022-10-11 18:07:40 +02:00
Christoph Oelckers
113980ca8e - cansee in Duke 2022-10-11 18:05:15 +02:00
Christoph Oelckers
e76dfa5d3c - GetActor pos replacement 2022-10-10 17:37:19 +02:00
Christoph Oelckers
837b31c672 - got rid of int_ploz and int_phiz. 2022-10-09 23:59:01 +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
6111b11359 - trivial replacements in SW. 2022-10-09 08:21:53 +02:00
Christoph Oelckers
9314d4c774 - yet another batch of wrapper replacements 2022-10-09 08:21:53 +02:00
Christoph Oelckers
d9397b3b5d - another batch of wrapper 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
e5e00c98e7 - a few set_int_z in Duke/actors.cpp 2022-10-09 08:21:52 +02:00
Christoph Oelckers
93150d9e27 - partial floatification of movetransports_d 2022-10-09 08:21:52 +02:00
Christoph Oelckers
b00c8dbaee - partial floatification of movetransports_r 2022-10-09 08:21:52 +02:00
Christoph Oelckers
a00969fbeb - partial floatification of furthestcanseepoint. 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
b32c4444c4 - replaced all add_int_z calls with constants. 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
89816f4582 - dumped broken and useless xyrand function.
Didn't work, wasn't used anywhere else, so a properly done local inline is preferable.
2022-10-06 20:44:52 +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
84f690654e - hitpos replacements in spawn calls 2022-10-05 18:17:15 +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
6aaee85875 - leftover binangle uses from the coordinate refactoring. 2022-10-05 00:36:29 +02:00
Mitchell Richters
ad908719ec - Remaining manual changes to replace player's ang with DAngle object. 2022-10-05 00:36:27 +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
6167448f27 - Blood: Replace all uses of binangle with DAngle objects. 2022-10-05 00:36:24 +02:00
Mitchell Richters
0b33f39fcd - Duke: 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
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
150ab95a3a - set_int_ang in Duke.
Also changed SOUNDFX actor to use a different variable for its index.
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
87ef58c07e - DVector3 version of EGS. 2022-10-04 18:44:17 +02:00
Christoph Oelckers
25a048c62f - fully floatified the crane data. 2022-10-04 18:44:17 +02:00
Christoph Oelckers
9392e31b33 - remove C-style struct parameters. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
ef9534d9fa - deleted unused wrapper method. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
022f22cd10 -replaced tspritetype::set_int_x/y. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
d654f23613 - handle_se00 cleanup 2022-10-04 18:44:16 +02:00
Christoph Oelckers
838d28b934 - more simple replacements. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
3edbec4f55 - use copyXY method where possible. 2022-10-04 18:44:16 +02:00
Christoph Oelckers
24c845f827 - remove float_pos wrapper. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
b327f7f03a - some simple replacements. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
1ab1852af8 - do not use ovel to store a sound index. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
05d8cee911 - more cleanup. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
9d4e467268 - did some more. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
95bc8a173f - animatesprites clear of player_int_pos. 2022-10-04 18:44:15 +02:00
Christoph Oelckers
0bf60d53ee - another batch 2022-10-04 18:43:40 +02:00
Christoph Oelckers
3b66cd4047 - more floatification cleanup. 2022-10-02 20:47:01 +02:00
Christoph Oelckers
8bba3b24b5 - floatification access method cleanup in actors_d.cpp. 2022-10-02 20:47:01 +02:00
Christoph Oelckers
f5abeb97e4 - floatification access method cleanup in actors.cpp. 2022-10-02 20:47:01 +02:00
Christoph Oelckers
3c4e89185d - position cleanup in actor.cpp (mainly queball and recon) 2022-10-02 20:47:01 +02:00
Christoph Oelckers
29ae7f7a02 - floatified bobpos. 2022-10-02 20:47:00 +02:00
Christoph Oelckers
b8eb66cccf - Duke: floatified the sector rotation code.
This gives a *massive* improvement to the precision of rotating sectors, most notably the main part of E2L10 "Spin Circle".
2022-10-02 20:47:00 +02:00
Christoph Oelckers
494653a724 - floatified rotation in handle_se00 2022-10-02 20:47:00 +02:00
Christoph Oelckers
1f49f62d75 - cleanup, part 3. 2022-10-02 20:47:00 +02:00
Christoph Oelckers
dd7544c7a6 - cleanup, part 2. 2022-10-02 20:47:00 +02:00
Christoph Oelckers
66acab2ca0 - cleanup, part 1. 2022-10-02 20:47:00 +02:00
Christoph Oelckers
e878ecb511 - floatified player_struct::pos. 2022-10-02 20:47:00 +02:00
Christoph Oelckers
86076b2871 - use player_add_int_xy and player_set_int_xy. 2022-10-02 20:47:00 +02:00
Christoph Oelckers
44dc2a692f - wrapped player::pos z-assignments. 2022-10-02 20:46:59 +02:00
Christoph Oelckers
9cd57f4510 - pushmove wrapper and a few other replacements. 2022-10-02 20:46:59 +02:00
Christoph Oelckers
8482e66caa - __int_opos is gone. 2022-10-02 20:46:59 +02:00
Christoph Oelckers
d6523c30f2 - one more 2022-10-02 20:46:59 +02:00
Christoph Oelckers
c5fb88e203 - another batch of utility use 2022-10-02 20:46:59 +02:00
Christoph Oelckers
8ba7cb0ddb - use the player position utilities in actor*.cpp 2022-10-02 20:46:59 +02:00
Christoph Oelckers
3f33719c36 - added position utilities to player_struct. 2022-10-02 20:46:59 +02:00
Christoph Oelckers
fb4da6bbd4 - added some utilities.
This also had to use explicit types in a few places to clear ambiguities.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
312ee075d2 - use wrapper functions for pos/opos where possible. 2022-10-02 20:46:58 +02:00
Christoph Oelckers
591dcc995a - added a float version of gs.playerheight. 2022-10-02 20:46:58 +02:00
Christoph Oelckers
1e1188ae73 - use gs.playerheight consistently.
There were still several cases using the game specific constants.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
564ec9e518 - renamed player_struct::opos 2022-10-02 20:46:58 +02:00
Christoph Oelckers
5f4c35e9aa - renamed player_struct::pos 2022-10-02 20:46:58 +02:00
Christoph Oelckers
6bd854da88 - floatified player_struct::truecz/truefz. 2022-10-02 20:46:58 +02:00
Christoph Oelckers
7fce0ed7ae - renamed truefz and truecz 2022-10-02 20:46:57 +02:00
Christoph Oelckers
8f64518637 - Duke: cleanup on z-checks, part 4. 2022-10-02 20:46:57 +02:00
Christoph Oelckers
665ee69eba - Duke: cleanup on z-checks, part 3. 2022-10-02 20:46:57 +02:00
Christoph Oelckers
6eabe4e152 - Duke: cleanup on z-checks, part 2. 2022-10-02 20:46:57 +02:00
Christoph Oelckers
b853e9caa0 - Duke: cleanup on z-checks, part 1. 2022-10-02 20:46:57 +02:00
Christoph Oelckers
4506b5cb08 - cleaned up the remaining uses of the integer floorz/ceilingz variables.
This concerns two particularly ugly blocks of code in the move functions - these were fully redone with pure floating point math.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
89c0e4234c - remapped all copy assignments to DDukeActor::ceilingz/floorz.
This commit does not work! It was split for clarity.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4787bddddd - Duke: replaced most read access to DDukeActor::floorz/ceilingz with a wrapper function. 2022-10-02 20:46:56 +02:00
Christoph Oelckers
793e9b7623 - renamed DDukeActor::floorz, ceilingz. 2022-10-02 20:46:56 +02:00