Commit graph

6201 commits

Author SHA1 Message Date
Christoph Oelckers
9cf6f5dabc - fixed handling of actor defaults.
Order of application with map sprites was not correct.
This also simplifies how the defaults are stored - the separate data is gone, they now use the regular defaults.
2022-11-19 11:24:47 +01:00
Christoph Oelckers
5ae7011e41 - converted the masterswitch. 2022-11-19 11:24:39 +01:00
Christoph Oelckers
b106fb693a - scriptified OozFilter + Seenine
Also fixing the default handling for onHit.
2022-11-17 21:46:24 +01:00
Christoph Oelckers
26ba1f601e - scriptified the fire extinguisher. 2022-11-17 20:19:22 +01:00
Christoph Oelckers
f9826241ef - scriptied the cracks. 2022-11-17 20:18:46 +01:00
Christoph Oelckers
8ce358fc24 - scriptified the trip bombs. 2022-11-17 18:38:25 +01:00
Christoph Oelckers
c69e86d119 - Blood: unlimited the tracking conditions. 2022-11-16 11:55:41 +01:00
Christoph Oelckers
ef54579104 - Blood: updated nnexts with the parts not related to the condition rewrite. 2022-11-16 11:14:31 +01:00
Christoph Oelckers
e776e76ebf - Blood: applied all changes outside of nnexts.cpp from the latest modern update. 2022-11-16 07:53:21 +01:00
Christoph Oelckers
42e02d2956 - eliminated firstWall as well. 2022-11-15 15:44:33 +01:00
Christoph Oelckers
5798fa067f - cleaned up all -> accesses through firstWall(). 2022-11-15 15:33:35 +01:00
Christoph Oelckers
af60408e63 - sector wall access cleanup.
lastWall was only used twice and firstWall() + index can be done better now.
2022-11-15 15:31:52 +01:00
Christoph Oelckers
7d9a4ea70d - eliminated wallsofsector. 2022-11-15 15:24:17 +01:00
Christoph Oelckers
84b17a8a53 - eliminate wall_count. 2022-11-15 14:59:28 +01:00
Christoph Oelckers
bfae5ce1bc - use a TArrayView to store the wall references in a sector.
This is a lot more scripting friendly than hacking around the indices.
2022-11-15 14:53:39 +01:00
Christoph Oelckers
34333302f9 - wrapped all reading wallptr references. 2022-11-15 12:37:14 +01:00
Christoph Oelckers
c23db8ea35 - wrapped all reads of sectortype::wallnum and renamed all other wallnum variables. 2022-11-15 12:21:21 +01:00
Christoph Oelckers
b7a7584059 - renamed wallnum and sectnum functions.
These were creating a lot of search noise because local variables had the same name.
2022-11-15 12:03:44 +01:00
Christoph Oelckers
a2683559ce - refactored Duke's cactus. 2022-11-15 10:44:06 +01:00
Christoph Oelckers
ad7cf290d2 - restricted use of gs.firstdebris to the only place where it is really needed.
Also no script export for this, it is only needed for converting CON parameters to propr indices.
2022-11-15 08:28:05 +01:00
Christoph Oelckers
d253468b22 - scriptified the scraps.
A Duke-ish mess of epic proportions.
2022-11-15 00:06:21 +01:00
Christoph Oelckers
94a13118b3 - handle nofloorpal for CallAnimate overrides. 2022-11-15 00:06:21 +01:00
Christoph Oelckers
c94d2fb3d0 - made DDukeActor::movflag unsigned.
Due to the values it holds it cannot be a signed short as this would wrap around to something negative.
2022-11-14 19:25:28 +01:00
Christoph Oelckers
e867c4603f - Duke: fixed issues with CON-based movement.
Bad integer divisions and one incorrect check for X instead of Z.
2022-11-14 18:48:31 +01:00
Christoph Oelckers
5fea500f92 - flammable actors scriptified. 2022-11-14 16:31:45 +01:00
Christoph Oelckers
190fd1827e - scriptified Dukes water fountain.
That's this thingy in the first corridor of E2L1.
2022-11-14 12:10:13 +01:00
Christoph Oelckers
306db376d9 - added script exports for 'spawn' and 'lotsofglass' and made the spawn variant using class names operational. 2022-11-14 10:30:59 +01:00
Christoph Oelckers
317968c45a - exported DukeGameInfo.
Only the parts that can be considered stable.
2022-11-14 10:25:17 +01:00
Christoph Oelckers
ced22bb0a8 - added onUse virtual to DukeActor. 2022-11-14 10:22:22 +01:00
Christoph Oelckers
36f753df8f - RR: fixed weapon switching code. 2022-11-13 19:47:10 +01:00
Christoph Oelckers
f23ddc28f0 - Duke: scriptified the crane 2022-11-13 18:55:32 +01:00
Christoph Oelckers
660c546266 - actor interface fixes. 2022-11-13 18:51:23 +01:00
Christoph Oelckers
9bf3642cb8 - named the scrap sprites. 2022-11-13 11:51:44 +01:00
Christoph Oelckers
e3aa1da175 - CallOnanimate 2022-11-13 11:50:28 +01:00
Christoph Oelckers
ba016c7c3a - added CallOnHit and named spawn. 2022-11-13 10:30:52 +01:00
Christoph Oelckers
bab750c156 - MAXCRANES is obsolete 2022-11-13 10:21:09 +01:00
Christoph Oelckers
9d1ddb72d4 - added some texture names. 2022-11-13 10:13:49 +01:00
Christoph Oelckers
48d1367a7e - added some VM exports for DukePlayer 2022-11-13 08:59:08 +01:00
Christoph Oelckers
de51b65ead - reimplemented Duke's scripted actor iterators in a more lightweight fashion.
This now works without allocating garbage collected objects.
2022-11-13 08:59:07 +01:00
Christoph Oelckers
c32a695384 - DukeActor scriptification framework. 2022-11-13 08:55:20 +01:00
Christoph Oelckers
f7a2fd29ba - Blood: fixed incorrect underwater movement speed
The 'posture == 1' case has gotten lost while consolidating the redundant code.
2022-11-12 10:19:15 +01:00
Christoph Oelckers
ac4be79e96 - implemented cl_weaponswitch for Duke. 2022-11-12 09:34:08 +01:00
Mitchell Richters
bd5d96df10 - Duke: Fix chaingunner spit velocity that was still in fixed point.
* Fixes #742.
2022-11-11 21:34:23 +11:00
Mitchell Richters
60366d298e - Duke: Use player's pitch sine rather than tangent when throwing a pipebomb while crouched.
* Maintains the feel of the weapon by having the pipebomb roll along the ground.
* Sign of sine is correct and allows for an expected throw behavior when looking up/down unlike original code.
* Prevents an infinite tangent value from messing things up.
2022-11-11 21:10:41 +11:00
Christoph Oelckers
cfb9ebf8e5 - fixed bad velocity assignment in DoLaser, causing an endless loop. 2022-11-10 10:00:44 +01:00
Christoph Oelckers
53341ee525 - Duke: lower conveyor player carry speed.
Still no match to the animation, but these games seemingly never cared.
2022-11-10 08:40:14 +01:00
Christoph Oelckers
a8585d72c7 - fixed velocity for Duke's pipe bomb and RR's dynamite when crouching.
These cases may not use the generic free aim adjustment.
2022-11-09 22:50:13 +01:00
Christoph Oelckers
e88b24bce7 - SW: fixed clipdist for brown rippers. 2022-11-09 20:16:47 +01:00
Christoph Oelckers
d2f0981091 - SW: fixed distance check in DoGet. 2022-11-09 19:03:23 +01:00
Christoph Oelckers
870801b8ac - SW: explicitly initialize sector object turn angle values.
The integer code relied on the memset to -1, but with floats that sets it to -NaN.
2022-11-09 18:35:03 +01:00
Christoph Oelckers
32a447ea54 - RR: fixed velocity of dynamite projectile. 2022-11-09 15:39:16 +01:00
Christoph Oelckers
3c7810a229 - RR: fixed movement direction when throwing a bowling ball. 2022-11-09 15:21:08 +01:00
Christoph Oelckers
5ebf2fef89 - fixed handle_st18's ceiling movement. 2022-11-07 18:16:41 +01:00
Christoph Oelckers
fd1864bb48 - fixed bad iterator setup in SpriteSetupPost 2022-11-07 13:48:01 +01:00
Christoph Oelckers
3444991e4e - fixed VSpriteBusy coordinate adjustment. 2022-11-07 10:31:10 +01:00
Mitchell Richters
d892fa10d2 - SW: Fix ladder speed with unnecessary amplification applied.
* Fixes #745.
2022-11-07 20:23:14 +11:00
Mitchell Richters
ff7e0afa6f - Use std::fma() in the interpolation code.
* From everything I've read, this more accurate, can be ~5% faster and is heavily optimised on CPUs of the last 10-12 years.
* This homegrown solution can be removed for `std::lerp()` once we go C++20.
2022-11-07 19:28:34 +11:00
Mitchell Richters
88e92a15a6 - Clean up some interpolatedvalue() calls. 2022-11-07 17:52:53 +11:00
Mitchell Richters
274899c9db - Get rid of useless lerp() function I added last night for lack of C++20.
* We already have a generic linear interpolator that _I_ added, so let's use it.
2022-11-07 17:31:17 +11:00
Mitchell Richters
043ebadbee - Remove 2x Normalized180() method calls on pitch where it's not needed.
* Pitch should always be +/- 90 degrees and never need normalization. If it's not, then this shouldn't mask an error caused elsewhere.
2022-11-07 16:53:55 +11:00
Mitchell Richters
c8114e7ed0 - Revert change to TAngle<T>'s / operator that snuck in. 2022-11-07 15:43:00 +11:00
Mitchell Richters
143f691c06 - SW: Try to fix up the camera drawing a bit.
* Slight pitch adjustment, plus factoring in that values of 0 constituted 100 under original game.
* View screens in game are not actually 1:1 AR but 1.12:1
2022-11-06 21:59:07 +11:00
Mitchell Richters
0c4ad84c2e - RR: Pitch-adjusted velocity for operateweapon() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
9a25b1d3f5 - RR: Pitch-adjusted velocity for shootweapon() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
b14525b47b - RR: Pitch-adjusted velocity for shootmelee() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
24dcd26e64 - RR: Pitch-adjusted velocity for shootwhip() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
211b2cc349 - RR: Pitch-adjusted velocity for shootrpg() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
b9bd02299a - RR: Pitch-adjusted velocity for shootstuff() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
7941f3cde3 - Duke: Pitch-adjusted velocity for aim(). 2022-11-06 21:59:06 +11:00
Mitchell Richters
f2674e95d3 - Duke: Pitch-adjusted velocity for operateweapon_ww() when free-aiming. 2022-11-06 21:59:06 +11:00
Mitchell Richters
3a1f1c7580 - Duke: Pitch-adjusted velocity for operateTripbomb() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
3908ec0c42 - Duke: Pitch-adjusted velocity for operateweapon() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
fe7c49fcac - Duke: Pitch-adjusted velocity for shootlaser() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
9e60284ff6 - Duke: Pitch-adjusted velocity for shootlaser() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
1b499520a5 - Duke: Pitch-adjusted velocity for shootweapon() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
63917fd158 - Duke: Pitch-adjusted velocity for shootknee() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
a200db6f3a - Duke: Pitch-adjusted velocity for shootstuff() when free-aiming. 2022-11-06 21:59:05 +11:00
Mitchell Richters
73477a722c - Duke: Pitch-adjusted velocity for shootshrinker() when free-aiming. 2022-11-06 21:59:04 +11:00
Mitchell Richters
9f32eae1a7 - Duke: Pitch-adjusted velocity for shootflamethrowerflame() when free-aiming. 2022-11-06 21:59:04 +11:00
Mitchell Richters
64f55726c9 - Duke: Pitch-adjusted velocity for shootfireball() when free-aiming. 2022-11-06 21:59:04 +11:00
Mitchell Richters
33e2de70a2 - Duke: Pitch-adjusted velocity for shootrpg() when free-aiming. 2022-11-06 21:59:04 +11:00
Mitchell Richters
8ec475aec8 - Replace clamped off tangent values with a linear interpolation of the player's pitch.
* Gives a tangent-like ramping where it's noticeable without having to use the tangent at all.
* Had to do homegrown lerper since we're not C++20 yet.
2022-11-06 21:59:04 +11:00
Christoph Oelckers
b4a49ea228 - fixed movement speed for SE25 (Piston) 2022-11-05 16:00:39 +01:00
Christoph Oelckers
99753fd03a - fixed bad scaling factor in girlninj.cpp. 2022-11-04 18:18:23 +01:00
Christoph Oelckers
77ae3b3b71 - RR: fixed bad angle math in shootmortar 2022-11-03 11:08:40 +01:00
Christoph Oelckers
f5ce60fa6e - fixed issues with negative values being passed to sqrt für calculating RRRA's motorcyle and boat. 2022-11-02 13:32:07 +01:00
Christoph Oelckers
0e113dab79 - added true level compatibility map processing and deleted all related map hack code. 2022-10-31 10:45:47 +01:00
Christoph Oelckers
06c9296932 - added a quick hack to move a misplaced vertex in RR E1L1's barn. 2022-10-30 16:51:41 +01:00
Christoph Oelckers
0f57685f48 - updatesector interface cleanup. 2022-10-30 16:51:41 +01:00
Christoph Oelckers
c5523a99ee - fixed issues with Duke's poolballs. 2022-10-30 16:51:41 +01:00
Christoph Oelckers
09df4da241 - fixed scaling issue with Duke's green slimer. 2022-10-30 16:51:40 +01:00
Christoph Oelckers
0c87bcb91b - renamed getzsofslopeptr to calcSlope and removed one redundant inline. 2022-10-30 16:51:40 +01:00
Christoph Oelckers
32b2e84fdc - added episode and total episode time display to alt HUD 2022-10-30 16:51:40 +01:00
Christoph Oelckers
ffd284d233 - Duke: use player palette only on the foot weapon.
This is the only one showing Duke's clothes - the translation may cause discoloration on the others.
2022-10-30 16:51:39 +01:00
Mitchell Richters
79a1110d5f - Duke: Create new flag SFLAG2_INTERPOLATEANGLE and use for the bearing plate on gears.
* Fixes #719.
2022-10-30 16:51:39 +01:00
Mitchell Richters
65acafc2bd - Duke: Move new blood spat code into function for use in RR code as well. 2022-10-30 16:51:39 +01:00
Mitchell Richters
f149410750 - Duke: New setup for blood splatters against walls, taking full account of the float precision. 2022-10-30 16:51:38 +01:00
Christoph Oelckers
2fbee8faf5 - Exhumed alt hud. 2022-10-30 16:51:38 +01:00
Christoph Oelckers
35f6ece473 - renamed RR’s weapon sprites to match their weapons 2022-10-30 16:51:38 +01:00
Christoph Oelckers
88d421300a - made DukeActor::timetosleep unsigned.
Although mostly theoretical it is possible for this to overflow and render the actor non-functional.
If the value is unsigned the overflow will wrap around to 0 which is not critical.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
15fc9e47fd - use symbolic STAT_ constants in spawninit where available. 2022-10-30 16:51:37 +01:00
Christoph Oelckers
ff71ab14ce - added a GZDoom-style alternative HUD.
So far only implemented for Blood.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
f4c8ac0140 - made AnimSet's vel parameter an actual double.
This does not affect any outcome, it just avoids pointless type conversions.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
4ac3820511 - deleted two unused local variables. 2022-10-30 16:51:36 +01:00
Christoph Oelckers
98e2fecd37 - another bunch of type conversion warnings fixed.
the ones in the findplayer functions are not critical in singleplayer.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
902f8c9706 - silenced lots of warnings for deliberate type conversions.
The ones in d_net.cpp are not in active code.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
9c097e1763 - revert to warning level 3.
Some stock warnings are far too noisy when level 4 is on.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
5a045a6232 - deleted deprecated zrand variant 2022-10-30 16:51:35 +01:00
Christoph Oelckers
0c8a76dc9c - use ActorVect… functions in a few more places 2022-10-30 16:51:35 +01:00
Mitchell Richters
3f2d970b4f - Blood: Fix minor issue where player death horizon was being applied at double speed. 2022-10-30 16:51:34 +01:00
Mitchell Richters
2fc115a23d - Duke: Remove only place rotatepoint() is called where no pivot is used. 2022-10-30 16:51:34 +01:00
Christoph Oelckers
4df875e860 - use setfloorz/setceilingz in a few places where it wasn't done.
This isn't critical in any way so no need to merge, but let's be consistent, in case future changes rely on it.
2022-10-30 16:51:34 +01:00
Mitchell Richters
e07785e85b - Duke: Use pitch difference between player and shrunken actor to adjust horizon.
* Works a lot better, and is uncapped pitch compatible unlike the old setup.
2022-10-30 16:51:34 +01:00
Christoph Oelckers
e5efb5c15f - fixed seeker missile aiming
merge to "floatified VectorMissileSeek"
2022-10-30 16:51:34 +01:00
Christoph Oelckers
c159953ac6 - use normalangle(). 2022-10-30 16:51:33 +01:00
Mitchell Richters
e099a19f03 - Duke: Fix bad x/yrepeat scaling.
* Merge with or above `- use Scale wrappers in global code and parts of Duke.`.
2022-10-30 16:51:33 +01:00
Christoph Oelckers
3c6b64d621 - renamed everything back 2022-10-30 16:51:33 +01:00
Christoph Oelckers
81341ce4a6 - unwrapped SetScale as well.
Again no edits here - it's one big replace action.
2022-10-30 16:51:33 +01:00
Christoph Oelckers
da523eb8e3 - unwrapped vector SetScale. 2022-10-30 16:51:32 +01:00
Christoph Oelckers
15db7a7143 - unwrapped SetScaleX/Y. 2022-10-30 16:51:32 +01:00
Christoph Oelckers
8265239d2d - removed AddScale wrappers. 2022-10-30 16:51:32 +01:00
Christoph Oelckers
85b52b1c77 - removed Scale(), CopyScale() and MultScale wrappers. 2022-10-30 16:51:32 +01:00
Christoph Oelckers
51768439a9 - started removing wrappers. ScaleX() and ScaleY() done.
No manual changes in here.
2022-10-30 16:51:31 +01:00
Christoph Oelckers
4aa765675e - use a float vector to store the scale. 2022-10-30 16:51:31 +01:00
Christoph Oelckers
2df12e7961 - these are the final repeats 2022-10-30 16:51:31 +01:00
Christoph Oelckers
854c42e4ca - handle all remaining repeat constants. 2022-10-30 16:51:31 +01:00
Christoph Oelckers
42b36d97b9 - half of the remainint repeats in weapon.cpp. 2022-10-30 16:51:30 +01:00
Christoph Oelckers
391b8ffc34 - batch of repeats in weapons.cpp 2022-10-30 16:51:30 +01:00
Christoph Oelckers
0e8594628e - did the messier parts of weapon.cpp's repeats. 2022-10-30 16:51:30 +01:00
Christoph Oelckers
ce0a40320c - handle all 'notreallypos' places. 2022-10-30 16:51:30 +01:00
Christoph Oelckers
8a455aa09b - all remaining repeats outside weapon.cpp plus a few more. 2022-10-30 16:51:30 +01:00
Christoph Oelckers
60782efd01 - some odd repeats. 2022-10-30 16:51:29 +01:00
Christoph Oelckers
33aed76977 - random scale stuff in jweapon.cpp 2022-10-30 16:51:29 +01:00
Christoph Oelckers
8cb40291f2 - lots of repeat literals in SW 2022-10-30 16:51:29 +01:00
Christoph Oelckers
8ede08ce69 - mostly coolie related scaling factors. 2022-10-30 16:51:29 +01:00
Christoph Oelckers
abf5c9feee - all repeats in SW’s draw code 2022-10-30 16:51:29 +01:00
Christoph Oelckers
509d56d042 - handle bunny scaling in SW 2022-10-30 16:51:29 +01:00
Christoph Oelckers
2ceb41fcf4 - BuildAnim in Exhumed 2022-10-30 16:51:28 +01:00
Christoph Oelckers
f30a76dfc9 - BuildAnim wrapper 2022-10-30 16:51:28 +01:00
Christoph Oelckers
43b8f92f91 - all of Exhumed except BuildAnim 2022-10-30 16:51:28 +01:00
Christoph Oelckers
62427f8260 - handle xrepeat abuse in Exhumed’s energy blocks 2022-10-30 16:51:28 +01:00
Christoph Oelckers
42679d58bb - lots of repeats in Exhumed 2022-10-30 16:51:28 +01:00
Christoph Oelckers
558eaf38e1 - the last repeats in Duke
Mostly constants in the spawn code
2022-10-30 16:51:27 +01:00
Christoph Oelckers
bda616eb01 - fixed warning 2022-10-30 16:51:27 +01:00
Christoph Oelckers
2a4483e860 - all remaining repeats in Duke except spawn_d and spawn_r 2022-10-30 16:51:27 +01:00
Christoph Oelckers
38f7935ee9 - repeats in actors_d.cpp and actors_r.cpp 2022-10-30 16:51:27 +01:00
Christoph Oelckers
bc26f16ed5 - refactoring CreateActor - part 2 2022-10-30 16:51:26 +01:00
Christoph Oelckers
1a22127123 - refactoring CreateActor - part 1 2022-10-30 16:51:26 +01:00
Christoph Oelckers
44f0a6ae67 - handle the bolts
These used temp_data which was remapped to temp_pos for being floats.
2022-10-30 16:51:26 +01:00
Christoph Oelckers
dd3346cbc5 - mostly comparisons and code surrounding them 2022-10-30 16:51:26 +01:00
Christoph Oelckers
fb164450a7 - use MultScale 2022-10-30 16:51:25 +01:00
Christoph Oelckers
e749a0e9a4 - a bunch of repeats in actor_d.cpp 2022-10-30 16:51:25 +01:00
Christoph Oelckers
4c151ef15a - the remaining repeats in Duke’s actor.cpp 2022-10-30 16:51:25 +01:00
Christoph Oelckers
5700d25120 - minor cleanup on scaling code 2022-10-30 16:51:25 +01:00
Mitchell Richters
befa5a933c - Duke: Fix questionable setup in previous commit to interpolate SE_20_STRETCH_BRIDGE. 2022-10-30 16:51:25 +01:00
Mitchell Richters
05a05c6406 - Duke: Fix interpolation for SE_20_STRETCH_BRIDGE, such as curtains in E1L1/2/3.
* I'm not sure if there's a better way to handle this, but I had to do the nested `twoSided()` checks to ensure all walls of E1L3's curtains in the execution chair viewing room interpolated as expected.
2022-10-30 16:51:24 +01:00
Mitchell Richters
b3943a0c04 - Duke: Maintain x/y/z velocity when falling through a portal, such as E1L1's air duct. 2022-10-30 16:51:24 +01:00
Mitchell Richters
7e7c1b1179 - Duke: Fix hitching going up/down on SE17 elevators, and Z interpolation while jumping, etc. 2022-10-30 16:51:24 +01:00
Mitchell Richters
ffc16635b2 - Blood: Make bobPhase a proper float. 2022-10-30 16:51:24 +01:00
Mitchell Richters
80f4124b17 - Duke: Fix integer division in shootrpg().
* Stems from initial floatification in `- floatified Duke's shootrpg`.
2022-10-30 16:51:23 +01:00
Christoph Oelckers
520d838a8c - use Scale wrappers in global code and parts of Duke. 2022-10-30 16:51:23 +01:00
Christoph Oelckers
1c82d19d37 - handled all remaining x/yrepeat in Blood. 2022-10-30 16:51:23 +01:00
Christoph Oelckers
1d48b0776e - cleanup in Blood plus repeats in aiunicult.cpp
* removed the picWidth/Height functions because their one use can be easily inlined
* deleted the unused initvals in GENDUDEEXTRA
2022-10-30 16:51:23 +01:00
Christoph Oelckers
1085752e01 - added more Scale wrappers to spritetype. 2022-10-30 16:51:23 +01:00
Christoph Oelckers
8a8ef22e53 - mostly '>' comparisons with scale values. 2022-10-30 16:51:22 +01:00
Christoph Oelckers
f5e1709c37 - renamed yet another bunch of repeat variables. 2022-10-30 16:51:22 +01:00
Christoph Oelckers
78bf99434e - removed some pointless comments. 2022-10-30 16:51:22 +01:00
Christoph Oelckers
4a3ff0bd50 - fixed two bad scale checks in Blood's fat zombie. 2022-10-30 16:51:22 +01:00
Christoph Oelckers
a11a366697 - some automatic replacements. 2022-10-30 16:51:21 +01:00
Christoph Oelckers
730c0ef66d - lots of repeats in RR's spawn code. 2022-10-30 16:51:21 +01:00
Christoph Oelckers
91c318b708 - renamed most non-sprite xrepeat and yrepeat as refactpring aid.
These will be renamed back later but now they create too much search noise.
A few local variables have been permanently renamed to scale*.
2022-10-30 16:51:20 +01:00
Christoph Oelckers
cf5d787f40 - manual repeats in Duke. 2022-10-30 16:51:20 +01:00
Christoph Oelckers
adb3cb888e - manual repeats in Blood. 2022-10-30 16:51:20 +01:00
Christoph Oelckers
2589e7030c - more repeats replaced by SetScale. 2022-10-30 16:51:19 +01:00
Mitchell Richters
b004de9fb0 - Remove leftover x/y repeats from - several manual replacements with SetScale.. 2022-10-30 16:51:19 +01:00
Christoph Oelckers
71d61b26df - 34 more uses of SetScale. 2022-10-30 16:51:19 +01:00
Christoph Oelckers
e60fafec52 - got rid of most REPEAT_SCALE factors. 2022-10-30 16:51:19 +01:00
Christoph Oelckers
8c308c8d3e - added ScaleY method to spritetype and used it to get rid of a large amount of 'yrepeat * REPEAT_SCALE' 2022-10-30 16:51:18 +01:00
Christoph Oelckers
8d1626de02 - yet more SetScale uses. 2022-10-30 16:51:18 +01:00
Christoph Oelckers
e6a97157d7 - several manual replacements with SetScale. 2022-10-30 16:51:18 +01:00
Christoph Oelckers
d8fac32459 - more simple SetScale replacements. 2022-10-30 16:51:17 +01:00
Christoph Oelckers
86d6ba43d4 - more automatic SetScale replacement, plus all of SetScale(0.5, 0.5); 2022-10-30 16:51:17 +01:00
Christoph Oelckers
c7c3b2a20c - added a SetScale method to spritetype and used it for all places setting x/yrepeat to 0. 2022-10-30 16:51:17 +01:00
Christoph Oelckers
35fbc634de - silence some warnings 2022-10-30 16:51:17 +01:00
Christoph Oelckers
30112e1289 - deal with clipdist in nnexts 2022-10-30 16:51:17 +01:00
Christoph Oelckers
9f19a1315b - replaced most native_clipdist() calls
Only those in nnext using internal int storage remain.
2022-10-30 16:51:16 +01:00
Christoph Oelckers
e80c32cfd4 - handle magic clipdist values 2022-10-30 16:51:16 +01:00
Christoph Oelckers
a6e35edc6c - replaced all set_native_clipdist
Note that truncation has to be preserved here to ensure the size stays the same as before so the MulScales were not resolved into their factors.
2022-10-30 16:51:16 +01:00
Christoph Oelckers
84dfe98f17 - replaced all set_native_clipdist in Blood 2022-10-30 16:51:16 +01:00
Christoph Oelckers
ed5b35453a - ';;' cleanup 2022-10-30 16:51:15 +01:00
Christoph Oelckers
7ed45d713a - refactor all oclipdist uses 2022-10-30 16:51:15 +01:00
Christoph Oelckers
d22c473c31 - manual set_const_clipdist replacements 2022-10-30 16:51:15 +01:00
Christoph Oelckers
48fda0cafd - second batch of set_const_clipdist replacements 2022-10-30 16:51:15 +01:00
Christoph Oelckers
03d6826fce - first batch of set_const_clipdist replacements 2022-10-30 16:51:14 +01:00
Christoph Oelckers
4af4983d3e - floatified clipdist and replaced fClipdist wrapper.
This uses a new variable because a few things use clipdist as a flag byte
2022-10-30 16:51:14 +01:00
Christoph Oelckers
88dcc37e94 - got rid of the wrappers for the SO angles. 2022-10-30 16:51:13 +01:00
Christoph Oelckers
7cb2545f4b - let TranslateSector update the player's angle if not in vanilla mode. 2022-10-30 16:51:13 +01:00
Mitchell Richters
215fc7d407 - SW: Optimise DoPlayerDeathHoriz() a bit. 2022-10-30 16:51:12 +01:00
Mitchell Richters
94941adce8 - Duke: Fix sign on 4x tangent offsets. 2022-10-30 16:51:12 +01:00
Mitchell Richters
cea2b6b428 - Rename PlayerHorizon::__horiz back to horiz. 2022-10-30 16:51:12 +01:00
Mitchell Richters
ff1d51b4fe - Fix 4x horiz negation issues. 2022-10-30 16:51:11 +01:00
Christoph Oelckers
a928a99328 - adjusted Exhumed's gun code to the horizon sign flip 2022-10-30 16:51:11 +01:00
Mitchell Richters
0600bf5860 - Negate everything to do with PlayerHorizon::__horiz where appropriate, including some loose horizoff members. 2022-10-30 16:51:11 +01:00
Mitchell Richters
619b8005ac - Rename PlayerHorizon::horiz in prep for negating this angle throughout code. 2022-10-30 16:51:11 +01:00
Christoph Oelckers
a6b55dca74 - removed handling for Exhumed clipping mode.
All this does is disable slopes in a few places and use extremely less precise math. Nothing critical is guarded by it.
2022-10-30 16:51:10 +01:00
Christoph Oelckers
94b91f6ec3 - build.h cleanup
* moved krand and krandf into the games/duke folder because no other game uses them
* moved CVARS to gamefuncs.h.
2022-10-30 16:51:09 +01:00
Christoph Oelckers
679e029c6d - do not save randomseed twice. 2022-10-30 16:51:09 +01:00
Christoph Oelckers
4af1461ec3 - got rid of int_clipdist. 2022-10-30 16:51:09 +01:00
Mitchell Richters
29eb729cd3 - Fix multiple bad calls to pushmove(). 2022-10-30 16:51:09 +01:00
Christoph Oelckers
7d3babd678 - ported all pushmove calls to the float version. 2022-10-30 16:51:08 +01:00
Christoph Oelckers
f45acdc2a8 - floatified two SOP clipdist variables 2022-10-30 16:51:08 +01:00
Christoph Oelckers
69f27d42aa - same for Blood's ClipMove 2022-10-30 16:51:08 +01:00
Christoph Oelckers
9257fe0078 - fixed clipmove factors. 2022-10-30 16:51:08 +01:00
Christoph Oelckers
600c2a0243 - map all clipmove calls to the version with a full float interface. 2022-10-30 16:50:48 +01:00
Christoph Oelckers
a4dd5bb4ce - rewrote the model storage code.
Using proper C++ containers now.
2022-10-27 16:55:54 +02:00
Mitchell Richters
8bc34f3dac - Handle all remaining VecToAngle() calls. 2022-10-27 16:55:53 +02:00
Mitchell Richters
e7dff22095 - Duke: Fix some badly negated angle setups. 2022-10-27 16:55:53 +02:00
Mitchell Richters
1e7cce28af - VecToAngle() with delta() inside to .Angle() replacements. 2022-10-27 16:55:53 +02:00
Mitchell Richters
9b98388215 - VecToAngle() with XY() inside to .Angle() replacements. 2022-10-27 16:55:53 +02:00
Mitchell Richters
c00c8d196e - Simple VecToAngle() > .Angle() replacements. 2022-10-27 16:55:52 +02:00
Mitchell Richters
75047b6ad5 - Eliminate MulScaleF(). 2022-10-27 16:55:52 +02:00
Mitchell Richters
d15e1017bd - Exhumed: Restore original tangent-based slope tilting code.
* Pitch-based version just doesn't work, and hasn't since it was changed to pitch before the fixedhoriz > DAngle changeover.
2022-10-27 16:55:52 +02:00
Mitchell Richters
355860f662 - Blood: Slightly cleaner view bobbing math. 2022-10-27 16:55:52 +02:00
Mitchell Richters
7eda11fa2c - Blood: Move some effect code into viewUpdateShake() along with the other effect code. 2022-10-27 16:55:52 +02:00
Mitchell Richters
13d643deb5 - Duke: Move Duke-exclusive code from PlayerHorizon struct into displayweapon_d() and clamp tangent to handle high pitches.
* Clamped range is slightly higher than original (200 vs. 256), however when tested with idle knuckle cracking, etc, hands were drawn not above the screen unlike unclamped tangent.
2022-10-25 07:07:15 +02:00
Mitchell Richters
dbdcdb934f - Blood: Clamp tangent applied as Z offset in view.
* Value of `1.171875` == 150 (value between 180/120 - old min/max) / 128 (Build to pure Tan).
2022-10-25 07:07:15 +02:00
Mitchell Richters
fc8c0b80aa - Clean up chase cam backwards scaling since we're now using floats of the same scale. 2022-10-25 07:07:14 +02:00
Mitchell Richters
9dd27ee3a2 - Remove old integer dragpoint() interface that was used by floats in lots of places.
* Cannot wait until all the narrowing warnings can be re-enabled...
2022-10-25 07:07:14 +02:00
Christoph Oelckers
22ccf33569 - floatified walldist parameter of getzrange 2022-10-25 07:07:14 +02:00
Christoph Oelckers
3c3b602989 - made getzrangepoint slope sprite aware. 2022-10-25 07:07:13 +02:00
Christoph Oelckers
a5afbce59d - fixed fxSpawnActor calls 2022-10-25 07:07:13 +02:00
Christoph Oelckers
d41e370aad - angular cleanup. 2022-10-25 07:07:13 +02:00
Christoph Oelckers
65a5394cf0 - only have one version of fxSpawnActor 2022-10-25 07:07:13 +02:00
Christoph Oelckers
10144b0436 - floatified tesla missile offset.
This was the last use of inttoworld outside of clipmove.
2022-10-25 07:07:13 +02:00
Christoph Oelckers
c0a628dc7f - floatified SpawnBulletEject and SpawnShellEject 2022-10-25 07:07:13 +02:00
Christoph Oelckers
d525d41ed2 - floatified smaller stuff 2022-10-25 07:07:13 +02:00
Christoph Oelckers
f3bae2b0b8 - deleted several unused functions. 2022-10-25 07:07:12 +02:00
Christoph Oelckers
7684b64b28 - floatified GENDUDEEXTRA::fireDist and all related things. 2022-10-25 07:07:12 +02:00
Christoph Oelckers
47dff8e656 - added clean handling for the one case where a custom range needs to be passed to actFireVector.
This removes one godawful hack that forced an otherwise constant data table to be non-const.
2022-10-25 07:07:12 +02:00
Christoph Oelckers
e52c311592 - added a wrapper for VECTORDATA::maxDist 2022-10-25 07:07:12 +02:00
Christoph Oelckers
f0b9509503 - deleted integer actFireThing version. 2022-10-25 07:07:12 +02:00
Christoph Oelckers
b30c6137d5 - used maptoworld in Quake code. 2022-10-25 07:07:12 +02:00
Christoph Oelckers
2afea7c477 - TranslateSector cleanup. 2022-10-25 07:07:12 +02:00
Christoph Oelckers
c6e8f0bcdb - merged the TranslateSector wrapper into the main function.
No floatification yet.
2022-10-25 07:07:12 +02:00
Christoph Oelckers
3df5fb112e - remove leftover conversion code. 2022-10-25 07:07:12 +02:00
Christoph Oelckers
ca96a2b41c - move coordinate conversion from GetClosestSpriteSectors to CheckProximityWall. 2022-10-25 07:07:11 +02:00
Christoph Oelckers
3c2e4a9c59 - deleted integer GetActorExtents version 2022-10-25 07:07:11 +02:00
Christoph Oelckers
5ab75f45e9 - floatified and consolidated throwPower handling. 2022-10-25 07:07:11 +02:00
Christoph Oelckers
a87c4809f5 - deleted unused mulscale30r functions. 2022-10-25 07:07:11 +02:00
Christoph Oelckers
b176ceda38 - floatified playerFireThing 2022-10-25 07:07:11 +02:00
Christoph Oelckers
cab00d05dc - got rid of the int version of playerFireMissile 2022-10-25 07:07:11 +02:00
Christoph Oelckers
8673d692f0 - floatified genDudeAdjustSlope's dist. 2022-10-25 07:07:11 +02:00
Christoph Oelckers
77d712dbc4 - got rid of the int aiSetTarget variant. 2022-10-25 07:07:11 +02:00
Christoph Oelckers
fbed29e6ca - bubbletime has no relation to world size so it should not use worldtoint. 2022-10-25 07:07:10 +02:00
Christoph Oelckers
310eff6e71 - clean out many wrappers. 2022-10-25 07:07:10 +02:00
Christoph Oelckers
d013e6fbd9 - eliminate the last 5 Sin calls 2022-10-25 07:07:10 +02:00
Christoph Oelckers
312b96fedc - floatified aim and relAim 2022-10-25 07:07:10 +02:00
Christoph Oelckers
a9095a5a1e - floatified all FireSpread functions. 2022-10-25 07:07:10 +02:00
Christoph Oelckers
bd011c69a6 - wrapped most of aim 2022-10-25 07:07:10 +02:00
Christoph Oelckers
1283c4d757 - renamed aim and relAim 2022-10-25 07:07:10 +02:00
Christoph Oelckers
b2dc69ad5d - floatified dudeSlope. 2022-10-25 07:07:10 +02:00
Christoph Oelckers
27c0a00df6 - use dudeslope wrappers. 2022-10-25 07:07:10 +02:00
Christoph Oelckers
e44759d2ea - renamed dudeSlope 2022-10-25 07:07:09 +02:00
Christoph Oelckers
f286565abc - floatifying player::slope, part 2 2022-10-25 07:07:09 +02:00
Christoph Oelckers
1a03c56eec - floatifying player::slope, part 1 2022-10-25 07:07:09 +02:00
Christoph Oelckers
22cf0ea2ad -deleted approxDist 2022-10-25 07:07:09 +02:00
Christoph Oelckers
f1b5bba035 - length calculation in teslaHit. 2022-10-25 07:07:09 +02:00
Christoph Oelckers
3814dfcf0e - floatified distance in AltFireVoodoo 2022-10-25 07:07:09 +02:00
Christoph Oelckers
b2bf137d72 - floatified UpdateAimVector
the biggest mess of all.
2022-10-25 07:07:09 +02:00
Christoph Oelckers
a843c0bdb6 - removed some unnecessary factors. 2022-10-25 07:07:09 +02:00
Christoph Oelckers
8ac5884232 - the first HitScan_ variant is gone. 2022-10-25 07:07:08 +02:00
Christoph Oelckers
fcc0d3bfea - deprecating HitScan_. 2022-10-25 07:07:08 +02:00
Christoph Oelckers
702553d65e - floatified HitScan call in nnextCanMove. 2022-10-25 07:07:08 +02:00
Christoph Oelckers
7f5ae54f93 - 3x use proper HitScan call. 2022-10-25 07:07:08 +02:00
Christoph Oelckers
e793b878c1 3 HitScan fixes 2022-10-25 07:07:08 +02:00
Christoph Oelckers
b7c63e08ec - floatified DoSectorPanning 2022-10-25 07:07:08 +02:00
Christoph Oelckers
580bbccdf5 - handle angles in voodooTarget 2022-10-25 07:07:08 +02:00
Christoph Oelckers
56429ebbba - floatified MGunFireSeqCallback 2022-10-25 07:07:08 +02:00
Christoph Oelckers
32ed2dd596 - some trivial things. 2022-10-25 07:07:08 +02:00
Christoph Oelckers
0577b678d2 - all of int_ang in aizombf.cpp
Note that the z-offset in ThrowSeqCallback was not correct - eyeHeight is in pixels, but this was passed as a Build-z-parameter which is scaled by 256, effectively rendering the offset almost ineffective.
2022-10-25 07:07:07 +02:00
Christoph Oelckers
e4f8178947 - all int_ang() in aiunicult.cpp 2022-10-25 07:07:07 +02:00
Christoph Oelckers
049220239c - get rid of vel wrappers for nnext conditions.
The fixed point conversion here is unavoidable, so make it explcit.
2022-10-25 07:07:07 +02:00
Christoph Oelckers
5dc2d467ee - the last remaining approxDist calls in nnexts. 2022-10-25 07:07:07 +02:00
Christoph Oelckers
cf2d29e921 - floatified aiFightGetFineTargetDist 2022-10-25 07:07:07 +02:00
Christoph Oelckers
139f68c804 - deleted unused GetDistToLine 2022-10-25 07:07:07 +02:00
Christoph Oelckers
2692684e73 - floatified distance checks in unicultThinkChase 2022-10-25 07:07:07 +02:00
Christoph Oelckers
2eb068e4a6 - deleted unused CheckProximityPoint and cleaned up earthquake calculations. 2022-10-25 07:07:07 +02:00
Christoph Oelckers
d99ed7676b - reroute player firing functions directly to the floating point variants of the actor versions. 2022-10-25 07:07:06 +02:00
Christoph Oelckers
607f119bad - floatified aiPatrolAlarmFull 2022-10-25 07:07:06 +02:00
Christoph Oelckers
99da5d78ab - floatified GetZRangeAtXYZ 2022-10-25 07:07:06 +02:00
Christoph Oelckers
9b9116986b - removed redundant function call. 2022-10-25 07:07:06 +02:00
Christoph Oelckers
6e03f87671 - floatified GetZRange 2022-10-25 07:07:06 +02:00
Christoph Oelckers
60e9e4d93a - floatified EnemyBubble 2022-10-25 07:07:06 +02:00
Christoph Oelckers
caf6dacbb5 - floatified PlayerBubble 2022-10-25 07:07:06 +02:00
Christoph Oelckers
a63527c892 - floatified fxDynPuff 2022-10-25 07:07:06 +02:00
Christoph Oelckers
24f4e1894c - floatified fxFlameLick 2022-10-25 07:07:05 +02:00
Christoph Oelckers
d349eabcbc - floatified dudeLeechOperate 2022-10-25 07:07:05 +02:00
Christoph Oelckers
e54719e6f5 - floatified coordinate stuff in ThrowThing 2022-10-25 07:07:05 +02:00
Christoph Oelckers
e8718826ba - renamed Heardist to HearDist.
This had to wait until the variable was refactored out.
2022-10-25 07:07:05 +02:00
Christoph Oelckers
94403684b2 - changed 2 seeDist references to the SeeDist() wrapper.
Although not necessary this makes it easier later to refactor DUDEINFO.
2022-10-25 07:07:05 +02:00