Commit graph

19307 commits

Author SHA1 Message Date
Christoph Oelckers
cbf47b4dee - added a 'Sum()' intrinsic to the vectors. 2022-11-14 12:07:51 +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
e62b79c7c9 - allow 'nullptr' in ZScript.
This makes it a lot easier to port C++ code.
2022-11-13 12:20:00 +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
b06382a565 - this was supposed to be named 'sector'. 2022-11-13 10:15:40 +01:00
Christoph Oelckers
9d1ddb72d4 - added some texture names. 2022-11-13 10:13:49 +01:00
Mitchell Richters
5e6c899a2d - Comment out CoreActor::sectp for now so the games boot up. 2022-11-13 20:09:06 +11:00
Christoph Oelckers
48d1367a7e - added some VM exports for DukePlayer 2022-11-13 08:59:08 +01:00
Christoph Oelckers
53e43d6d1e - CoreActor setposition natives. 2022-11-13 08:59:07 +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
166235027c - Backend update from GZDoom
adding some intrinsics to ZScript.
2022-11-13 08:32:09 +01:00
Christoph Oelckers
8806fb930b - Backend update from GZDoom
* Vector 4 in zscript
* garbage collector fixes
2022-11-12 10:45:39 +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
0033826544 - Allow proper setting of progdir for SDL targets. 2022-11-12 11:26:05 +11:00
Christoph Oelckers
800e7939b8 - fixed: when deactivating the app, pausing the sound system should not depend on the game's internal pause state.
All this tells is that the gameplay was halted. Sound was not stopped when the user either minimized or tabbed away in the in-game menu.
2022-11-11 18:40:36 +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
6a6e9299ca - added missing returns in the failure cases of useitem and slot CCMDs. 2022-11-10 07:41:20 +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
8f5923c324 - handle a visual glitch in Duke's E2L1 via compatibility.
There is already code to deal with this automatically, but this does not manage to fully eliminate the problem.
2022-11-07 11:51:40 +01:00
Christoph Oelckers
2290f05dcb Revert "- Use std::fma() in the interpolation code."
This reverts commit ff7e0afa6f.

On Visual Studio with precise math, which is our main target this generates a very expensive function call instead of optimized assembly which renders the function's purpose ad absurdum.
2022-11-07 10:36:34 +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
817a0cb94a - Clamp applied mouse input to be within safe ranges to interpolate with.
* Input greater than 180 degrees in a single tic can cause the input to be applied backwards.
2022-11-07 19:38:22 +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
9fbe564327 - Fix bad if statement guarding cl_clampedpitch in menu and make non-global. 2022-11-07 15:43:26 +11:00
Mitchell Richters
c8114e7ed0 - Revert change to TAngle<T>'s / operator that snuck in. 2022-11-07 15:43:00 +11:00
Christoph Oelckers
912b6a47c1 - migrate cl_savedir to save_dir 2022-11-06 17:48:32 +01:00