Commit graph

12983 commits

Author SHA1 Message Date
Mitchell Richters
8da5b096c0 - SW: Pitch-adjusted velocity for InitRail(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
283f8d208a - SW: Pitch-adjusted velocity for InitLaser(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
51c0fbcca1 - SW: Pitch-adjusted velocity for InitShotgun(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
3fd397e384 - SW: Pitch-adjusted velocity for InitHeartAttack(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
a27e5a0ed2 - SW: Pitch-adjusted velocity for InitStar(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
bcf09c3037 - SW: Pitch-adjusted velocity for InitFistAttack(). 2022-11-30 10:03:46 +01:00
Mitchell Richters
2577ea21f2 - SW: Pitch-adjusted velocity for InitSwordAttack(). 2022-11-30 10:03:46 +01:00
Mitchell Richters
2b4149b70e - SW: Pitch-adjusted velocity for InitSpellMirv(). 2022-11-30 10:03:46 +01:00
Mitchell Richters
b7a1e699f6 - SW: Pitch-adjusted velocity for InitSpellNapalm(). 2022-11-30 10:03:46 +01:00
Christoph Oelckers
1d39e1edc1 - fixed bouncing of freezer's projectile. 2022-11-30 09:57:27 +01:00
Mitchell Richters
098542de69 - Duke: Call movetransports() before processing any player movement.
* This simply works much better. In addition to being able to revert commits like `- Duke: Maintain x/y/z velocity when falling through a portal, such as E1L1's air duct.`, transitioning from above water to underwater and vice-versa is interpolated, smooth and seamless, something that I was unable to hack in without this change.
2022-11-30 09:53:51 +01:00
Mitchell Richters
641b22addf Revert "- Duke: Maintain x/y/z velocity when falling through a portal, such as E1L1's air duct."
This reverts commit 1cb57a813948a494197e7df67dd6f58ae987b7db.
2022-11-30 09:53:51 +01:00
Mitchell Richters
ec16fd9310 - Duke: Soften the blood splats in Duke when the timer is at the end. 2022-11-29 21:08:49 +11:00
Mitchell Richters
5a698fbc2b - Use DAngle::fromRad() method in maphoriz(). 2022-11-29 21:01:42 +11:00
Mitchell Richters
537e9df6ec - Duke: Repair Z height when dead. 2022-11-29 20:59:35 +11:00
Christoph Oelckers
c9a94a4899 - fixed bad angle use in move_d. 2022-11-27 11:56:27 +01:00
Christoph Oelckers
ec48b91730 - fixed the last remaining z/inttoworld mismatches.
The one in clipmove was critical, the other ones not so much.
2022-11-27 10:21:47 +01:00
Christoph Oelckers
dc60c643c9 - Duke: added an ammo check to the chaingun firing loop
With weapon switching disabled it would not stop firing.
2022-11-26 17:59:22 +01:00
Christoph Oelckers
229ee3dbe4 Revert "- did a few checks with the compatibility optioned slope adjustment and decided to enable it unconditionally."
This reverts commit 6636064d1f.

As it turned out this is not a benign change. It breaks accessibility to a key in RR-Route 66's slaughtr.map - and it's reasonable to assume if it breaks one map it may break others as well.
2022-11-26 16:47:02 +01:00
Christoph Oelckers
0e1121ed51 - reinstated original distance math for SE20.
This one's a catastrophic combination of a bad algorithm depending on equally bad math to calculate distance.
It simply does not do what one would expect - it should have calculated the distance to a wall's center to be robust.
2022-11-26 15:58:55 +01:00
Christoph Oelckers
b5ad3b9f3b - imported two fixes from GZDoom 2022-11-25 12:33:52 +01:00
Christoph Oelckers
4aad87cf83 - fixed Exhumed sound indices. 2022-11-25 11:26:24 +01:00
Christoph Oelckers
003f4a035e - backend update from GZDoom
menu enhancements, IQM indices and an important fix in the sound system.
2022-11-25 11:14:38 +01:00
Christoph Oelckers
d710407b08 - another backend uodate from GZDoom to fix a memory leak in ZScript backend. 2022-11-25 00:04:05 +01:00
Rachael Alexanderson
b4e19ec6a0 - move posix I_GetGogPaths() stub to program specific code 2022-11-24 17:46:33 -05:00
Christoph Oelckers
d43ebd22ae - fixed merge errors from backend update. 2022-11-24 18:05:47 +01:00
Christoph Oelckers
9219d24535 - removed unneeded WantEscape function from backend interface. 2022-11-24 17:57:40 +01:00
Christoph Oelckers
ed4f49ac86 - fixed sound code for backend update. 2022-11-24 17:46:39 +01:00
Christoph Oelckers
2ffdf3d0e1 - backend update from GZDoom.
Mainly quaternion math and sound system cleanup.
2022-11-24 16:56:46 +01:00
Mitchell Richters
f1bfaac301 - Duke: Minor fixes to some angle checks. 2022-11-24 23:08:28 +11:00
Mitchell Richters
4f59e8a3d1 - Duke: Fix delta angle setup in alterang(). 2022-11-24 22:03:47 +11:00
Mitchell Richters
fb74ece44b - Duke/RR: Fix up 2x missed Z changes. 2022-11-24 19:41:58 +11:00
Christoph Oelckers
4d6920e80b - fixed failiure to initialize the ambient tags array.
Also adding range checks to all places where it gets used. This is from CON code so proper values are never guaranteed.
2022-11-24 09:01:44 +01:00
Christoph Oelckers
13e19bad36 - fixed handling of bad class assignment to map picnums. 2022-11-24 08:12:18 +01:00
Christoph Oelckers
6cb3e2f457 - Duke: fixed operator precedence in scrap spawning code. 2022-11-21 10:48:47 +01:00
Christoph Oelckers
ae37461feb - one more stat constant. 2022-11-21 10:24:42 +01:00
Christoph Oelckers
29c4c77e55 - fixed bad StopSound implementation. 2022-11-21 09:25:46 +01:00
Mitchell Richters
fd8ac602f0 - Duke: Fix a few missed names from the last commit. 2022-11-21 13:22:25 +11:00
Christoph Oelckers
49055f1bfd - named a few more of RR's items. 2022-11-20 21:39:56 +01:00
Christoph Oelckers
1e421af8bc - renamed one more sprite.
Unused, non-functional, but it got some text on the actual sprite, which was used for naming it.
2022-11-20 21:29:39 +01:00
Christoph Oelckers
476dd138c9 - renamed several of RR's sprites, mostly related to the chicken processing plant. 2022-11-20 21:22:04 +01:00
Christoph Oelckers
a76d166966 - scriptified tongue actor.
This seems to be develpment garbage. No proper sprites exist for this.
2022-11-20 20:40:46 +01:00
Christoph Oelckers
5528725985 - got rid of deletesprite, plus one new flag. 2022-11-20 19:25:23 +01:00
Christoph Oelckers
65a5e5e29a - unlimized two map resources - cyclers and ambient tags. 2022-11-20 14:13:11 +01:00
Christoph Oelckers
b069904be1 - scriptified the remaining controller sprites. 2022-11-20 13:57:51 +01:00
Christoph Oelckers
cb005062cd - scriptified activators and locators. 2022-11-20 12:43:24 +01:00
Christoph Oelckers
9fa2fb75cf - scriptified the respawn controller.
This also handles one special RRRA controller which was just easier to scriptify right away than temporarily work around it.
2022-11-20 11:58:19 +01:00
Christoph Oelckers
f467e72ac2 - only print texture resolve errors in debug builds.
Otherwise this will print warnings when resolving content for different games.
Needs to be done differently later, but right now the messages are needed for debugging.
2022-11-20 09:35:59 +01:00
Christoph Oelckers
31b1898c30 - deleted movecanwithsomething native function.
This was already scriptified.
2022-11-20 08:52:58 +01:00
Christoph Oelckers
d44b637f1b - fixed touchplate initialization
This was still using older code - the current native version was also not removed from the spawn function.
2022-11-20 08:51:09 +01:00
Christoph Oelckers
f515939fde - scriptified the sound controller. 2022-11-20 08:46:49 +01:00
Christoph Oelckers
714a2ef70e - scriptified canwithsomething, the last internal STAT_STANDABLE item. 2022-11-19 19:01:17 +01:00
Christoph Oelckers
c6b3cf3e0a - Duke: fixed long standing problem that pressing Escape or walking backwards does not switch off the camera view. 2022-11-19 18:26:17 +01:00
Christoph Oelckers
dee33ba4dd - scriptified viewscreen and camera. 2022-11-19 17:35:04 +01:00
Christoph Oelckers
046ba1ae0c - scriptified touchplate 2022-11-19 15:40:35 +01:00
Christoph Oelckers
63a8c3148c - scriptified doorshock 2022-11-19 15:40:21 +01:00
Christoph Oelckers
15cd80cad3 - scriptified the waterdrip 2022-11-19 15:40:09 +01:00
Christoph Oelckers
11acb92553 - scriptified the bolts. 2022-11-19 12:54:50 +01:00
Christoph Oelckers
676ca73983 - scriptified the trash actor. 2022-11-19 12:54:15 +01:00
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
133cb3a02e - moved all CoreActor exports to vmexports.cpp. 2022-11-17 08:46:08 +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
Mitchell Richters
d3217a3e54 - Fix issues with scripted actors, namely the crane which was non-operable. 2022-11-16 16:14:48 +11:00
Christoph Oelckers
043e005363 - fixed bad index in pushmove. 2022-11-16 00:08:37 +01:00
Christoph Oelckers
6b3e57fd2c - added 'foreach' loop to ZScript.
Syntax:

foreach(variable : array)
{
}

the variable's type is automatically deducted.
2022-11-15 21:29:04 +01:00
Christoph Oelckers
dc9451d584 - renamed global 'wall' and 'sector' arrays to 'walls' and 'sectors' for ZScript.
This avoids problems with name hiding.
2022-11-15 20:09:36 +01:00
Christoph Oelckers
f7fafabba0 - reordered walltype to reduce its size. 2022-11-15 15:54: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
9a676ffba6 - use local variables for wall_index wherever possible. 2022-11-15 14:15:46 +01:00
Christoph Oelckers
34333302f9 - wrapped all reading wallptr references. 2022-11-15 12:37:14 +01:00
Christoph Oelckers
0b75f19da5 - use wallsofsector in clipmove. 2022-11-15 12:31:15 +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
3bc34ec773 - fix last commit.
One change got lost by the update.
2022-11-14 23:50:30 +01:00
Christoph Oelckers
6e49f0bf8f - Backend update from GZDoom.
Bone model support in GLES and ZScript quaternions.
2022-11-14 19:46:25 +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
5aac77784a - fix construction of FActorInfo.
For some reason this lost the copy constructing part from GZDoom resulting in bad data.
2022-11-14 18:15:58 +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
ef6c39ec55 - added a CVAR that allows drawing any tile to the top of the screen.
For quick examination of tiles.
2022-11-14 12:08:02 +01:00
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
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
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
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
Mitchell Richters
33d74c9009 - Default display of map name in SW to be off by default. 2022-11-06 21:59:07 +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
11f279fddd - Slight input code tidy-up. 2022-11-06 21:59:07 +11:00
Mitchell Richters
033e0ea7bc - Make rotscrnang return to zero at same speed as look_ang. 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