Commit graph

2641 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
5a045a6232 - deleted deprecated zrand variant 2022-10-30 16:51:35 +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
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
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
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
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