Commit graph

3185 commits

Author SHA1 Message Date
Christoph Oelckers
660227e175 - Duke: restrict skill filter to those actors which originally handled it.
For flexibility there now is a flag that can be set on any actor class, but due to precedent it needs to be off by default.
2023-04-11 20:14:02 +02:00
Christoph Oelckers
ee61daed97 - reinstate code from e2db4a8 that got removed by a badly resolved merge conflict in ae4ef64 . 2023-04-10 16:48:08 +02:00
Christoph Oelckers
2f61a44329 - Duke: do not clear the KILLCOUNT flag.
This seems to have gotten back by accident.
2023-04-10 16:41:58 +02:00
Christoph Oelckers
1d79d0cee3 - Duke: fixed pitch calculation for explosion sounds.
This part was missed when the backend's pitch management was changed to floats instead of Q1.7 fixed point numbers.
2023-04-10 09:13:33 +02:00
Christoph Oelckers
7b1ef9e020 - Duke: Do not set SFLAG_BADGUY for internal bad guys.
This will pass an incorrect value for clipdist to clipmove.
2023-04-10 08:56:37 +02:00
Christoph Oelckers
3df7539eb9 - fixed return values of badguy() and bossguy() functions. 2023-04-09 15:45:19 +02:00
Christoph Oelckers
684fb5eb74 - added a few things missing for RR and Route 66.
R66's gator was also added - this is the only completely new actor in this mod.
2023-04-09 09:46:10 +02:00
Christoph Oelckers
7f758eef2b - got rid of the script-side flag wrappers. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
04a027f748 - removed most parameters from fall_common. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
cfa18952d1 - deleted the native flag setter code. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
918c75cb6e - validate statnum before spawning an actor. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
da0b429751 - migrated attackertype to class objects. 2023-04-09 09:46:09 +02:00
Christoph Oelckers
ae4ef6401c - use the actual actor flags.
Not fully working yet...
2023-04-09 09:45:42 +02:00
Christoph Oelckers
b908ede470 - reviewed actor flags and applied several fixes. 2023-04-09 09:35:37 +02:00
Christoph Oelckers
8172a9ac0c - moved all flags into the actor definitions. 2023-04-09 09:35:37 +02:00
Christoph Oelckers
f4c176988a - first round of flag additions. 2023-04-09 09:35:36 +02:00
Christoph Oelckers
50d406be4e - Duke: Do not call Initialize() for player actors.
The base function is doing things not meant for players, and we do not have a proper class yet that can deal with it.
2023-04-09 08:15:23 +02:00
Christoph Oelckers
e2db4a834e - Duke: apply default scale only to enemies defined in CON.
This code does not apply to the Recon!
2023-04-08 09:37:51 +02:00
Christoph Oelckers
9c164ad290 - fixed crash when stomping shrunk enemies. 2023-04-08 07:14:07 +02:00
Christoph Oelckers
60339a217c - moved a lot of shareable code out of the CON interpreter. 2023-04-07 13:15:06 +02:00
Christoph Oelckers
9ba0b18013 - moved the 3 health related instructions out of the CON interpreter.
This code can be shared with ZScript so it needs to be elsewhere.
2023-04-07 13:15:06 +02:00
Christoph Oelckers
980b3f257a - converted the final set of actor classes the native code needs to reference. 2023-04-07 13:15:06 +02:00
Christoph Oelckers
2ba204444c - merged the spawn init code now that all differences are externalized 2023-04-07 13:15:06 +02:00
Christoph Oelckers
aae2c2dc3c - exported RR's enemies 2023-04-07 13:15:06 +02:00
Christoph Oelckers
779026162d - exported all of RR's pickup items. 2023-04-07 13:14:19 +02:00
Christoph Oelckers
3dd87cfd7f - got rid of checkType. 2023-04-07 12:22:46 +02:00
Christoph Oelckers
f2d802b537 - exported RR's remaining controllers. 2023-04-07 12:22:45 +02:00
Christoph Oelckers
98d5a2686e - use for loop instead of repeating the same line 10x. 2023-04-07 12:22:45 +02:00
Christoph Oelckers
0e169759d5 - animatesprites_r.cpp cleanup 2023-04-07 12:22:45 +02:00
Christoph Oelckers
f9e5f2c137 - final clenaup on animatesprites_d.cpp.
Only the player actor is left, which is also the messiest part...
2023-04-07 12:22:44 +02:00
Christoph Oelckers
ce00183707 - scriptified PlayerOnWater. 2023-04-07 12:17:56 +02:00
Christoph Oelckers
3106c8e6f5 - exported most of the remaining content in spawn_d.cpp 2023-04-07 12:14:16 +02:00
Christoph Oelckers
8b04f42ab5 - exported several fire related actors. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
ef6a8c010a - exported ceilingsteam and consolidated movefallers functions. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
82d04756be - exported a few of Duke's decorations 2023-04-07 11:52:53 +02:00
Christoph Oelckers
551e0af58d - exported the egg, also marking it non-killcount. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
b4dcf8ddcf - exported the remaining Duke enemies. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
0636358b5f - fixes for RR items. 2023-04-07 11:52:53 +02:00
Christoph Oelckers
1bc7c53351 - move the recon's FTA sound into the scripted actor. 2023-04-07 11:52:52 +02:00
Christoph Oelckers
ef54987a58 - exported WT's Firefly 2023-04-07 11:52:52 +02:00
Christoph Oelckers
4e0dad54a5 - exported all of Duke's pickup items. 2023-04-07 11:51:41 +02:00
Christoph Oelckers
7a699e032f - cleaned up Duke's very broken kill count system.
This now uses a static flag to denote an actor as countable and an internal flag to track its killed state, because CON can toggle that at will.
2023-04-07 09:49:20 +02:00
Mitchell Richters
bf58879b08 - Duke/RRRA: Fix HUD tilting when reversing motorcycle backwards. 2023-04-04 15:14:44 +10:00
Mitchell Richters
a68fcfc71c - Remove GameInterface::getConsoleAngles(), it's not needed anymore. 2023-04-04 07:02:39 +10:00
Mitchell Richters
3ef431a428 - Make scaleAdjust a float since it's what's needed anyway. 2023-04-03 19:38:00 +10:00
Mitchell Richters
69c65dfe7e - Internalise InputPacket used in movement functions. 2023-04-03 19:35:35 +10:00
Mitchell Richters
dbba0abb2e - Move all mouse handling into GameInput class. 2023-04-03 18:47:14 +10:00
Mitchell Richters
8d11fef916 - Initial conversion of game input into class GameInput. 2023-04-03 18:46:36 +10:00
Christoph Oelckers
0706a8a5bb - exported LizTrooper and Lizman. 2023-04-02 17:37:30 +02:00
Christoph Oelckers
240b24d771 - exported all females. 2023-04-02 17:34:37 +02:00
Christoph Oelckers
810977f19f - made RR thunder effect also work for Duke.
This mainly meant adding support for random sounds and playing the thunder sound by name instead of by index.
2023-04-02 17:20:06 +02:00
Christoph Oelckers
0cd0f28317 - fixed initialization of RR's thunder effect 2023-04-02 17:09:28 +02:00
Christoph Oelckers
eee551ce15 - take care of the last tileGetTexture call in Duke. 2023-04-02 16:45:43 +02:00
Christoph Oelckers
6248c8813b - make RR's ingame thunder effect not depend on having seen one specific texture.
This really should check if the player has seen one sector where the effect is active.
2023-04-02 16:45:43 +02:00
Christoph Oelckers
8208c7fc0b - some texture name cleanup 2023-04-02 16:45:43 +02:00
Johan Mattsson
cebab8f85d
Small fixes (#910)
* Fix potential index out of bounds

* Fix potential index out of bounds

* Use 'MAXGEOSECTORS' instead of magic constant
2023-04-02 22:10:57 +10:00
Christoph Oelckers
52ea497b50 - fixed lotsofstuff VM export. 2023-04-02 13:19:35 +02:00
Christoph Oelckers
30d066cee9 - added script exports for Duke's bosses.
This allows removing a few hack checks.
2023-04-02 13:13:45 +02:00
Christoph Oelckers
26c8e948f7 deleted debug code 2023-04-02 13:13:45 +02:00
Christoph Oelckers
7f240a0a7a - converted all remaining classes used by PicForName.
This means all functions using this can now pass class pointers directly to the native code.
2023-04-02 13:13:45 +02:00
Christoph Oelckers
c9888ae6cb - exported several RR enemies/animals needed for the UFO spawner. 2023-04-02 13:13:06 +02:00
Christoph Oelckers
9b96f8312a - pig cop converted 2023-04-02 13:13:06 +02:00
Christoph Oelckers
bc50f596e8 - exported two more classes used by PicForName. 2023-04-02 13:10:34 +02:00
Christoph Oelckers
7b4d5eb26d - scriptified SHRINKEREXPLOSION and WATERBUBBLE. 2023-04-02 13:10:26 +02:00
Christoph Oelckers
673ea69d35 - scriptified a few more skeleton items needed by PicforName. 2023-04-02 13:00:13 +02:00
Christoph Oelckers
ccc048136f - exported TOILETWATER, BURNING and EXPLOSION2.
All types needed for cleaning up PicForName
2023-04-02 13:00:13 +02:00
Christoph Oelckers
e0bd038391 - scriptified the native parts of TRANSPORTERSTAR and TRANSPORTERBEAM 2023-04-02 13:00:13 +02:00
Mitchell Richters
10445635cf - Tidy up autosaving for all the games.
* There's not really any reason to need the game's world to tic once, it's already fully loaded during the `gi->NewGame()`/`gi->NextLevel()` calls.
2023-04-02 19:56:52 +10:00
Mitchell Richters
0052ae4172 - Duke: Ensure we backup player angles and not just pos when loading a save. 2023-04-02 19:51:12 +10:00
Mitchell Richters
9dfb805b38 - Duke: Fix potential null actor access in gi->CanSave(). 2023-04-02 19:51:12 +10:00
Mitchell Richters
7217ce6ff9 - Duke: Ensure hard landing check is done after pitch keys.
* Oversight from e9a5f745fc.
2023-04-02 19:51:12 +10:00
Mitchell Richters
272dfa762d - Remove backend crouch toggle solution redeploy with Duke/Exhumed/Blood using new ESyncBit bit.
* I tried to make this work in 2020 but its been nothing but headache. It's something for the game to control via a flag, not the backend to determine.
* For SW, this restores its original implementation.
2023-04-02 18:32:40 +10:00
Mitchell Richters
43febd5aa1 - Stop passing inputBuffer around within gameinput.cpp since everything's local now. 2023-04-02 18:32:38 +10:00
Mitchell Richters
359371527b - Move Duke's vehicle input processor into gameinput.cpp. 2023-04-02 18:32:36 +10:00
Mitchell Richters
563c79322d - Duke: Make vehicle input code work generically for possible reusage. 2023-04-02 18:25:04 +10:00
Mitchell Richters
5e153d6404 - Duke: Merge vehicle input code into one function. 2023-04-02 18:24:05 +10:00
Mitchell Richters
03eb105df1 - Duke: Move RRRA vehicle tilting out of the input code and into the playsim. 2023-04-02 18:24:05 +10:00
Mitchell Richters
46b5977a6a - Recover two ESyncBit values for other uses.
* By masking aiming+centering, we have look bits :)
2023-04-02 18:24:05 +10:00
Christoph Oelckers
5f3065d9f1 - Duke: fixed weapon spread with non-pistol hitscan weapons. 2023-04-01 09:49:22 +02:00
Mitchell Richters
7feb5a9a9b Revert "- Duke: Temporary workaround for last commit so the player returns to centre on level load."
This reverts commit 2b22e49a9b.

* It's no longer needed with 06dd971291.
2023-03-29 13:20:55 +11:00
Mitchell Richters
7caec5fa69 - Clean out where inputState.ClearAllInput() is called.
* We can do this from just a few places and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:05:49 +11:00
Mitchell Richters
d665037075 - Clean out where Net_ClearFifo() is called.
* We can do this from one place and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:04:38 +11:00
Mitchell Richters
96055fbc03 - Clean out all games setting gameaction = ga_level and do it centrally. 2023-03-29 03:10:16 +11:00
Mitchell Richters
9618ba1e78 - Don't serialise player angles twice. 2023-03-28 09:15:58 +11:00
Mitchell Richters
e9a5f745fc - Duke: Ensure pitch keys are done after adding player's input.
* As this function includes the actor's pitch clamp, it's important its done afterwards.
* Setup is already right for all the other games.
2023-03-26 16:40:25 +11:00
Mitchell Richters
776c58c58a - Duke: If we enter playerCenterView() and put SB_CENTERVIEW() back on, we need to null and lock input. 2023-03-26 14:36:23 +11:00
Mitchell Richters
0da2afe3d7 - Duke: Tidy up some of the pitch stuff.
* Remove some extern'd CVARs that didn't need externing.
* Change `player_struct::centeringView()` bool into proper method to handle the operation.
* Operation now properly unsets `SB_CENTERVIEW` if conditions aren't met instead of relying on implied behaviour from the rest of the playsim.
2023-03-26 13:35:12 +11:00
Mitchell Richters
a5a9882d9a - Duke: Add a myriad of pitch recentering CVARs.
* Needs to be reworked into some kind of MP-safe flagging once we have demos/MP going. This will do for now.
* Fixes #853.
2023-03-26 12:46:14 +11:00
Mitchell Richters
e5f3f5f149 - Make setForcedSyncInput() require a player index.
* This should only ever apply to the console player.
2023-03-23 17:09:02 +11:00
Mitchell Richters
183ad0c61c - Adjust a few setForcedSyncInput() calls. 2023-03-23 16:34:33 +11:00
Mitchell Richters
4d6419732a - Duke: Add CVAR to allow disabling pitch reset with pitch input.
* Need to add this to the menu to address #853.
2023-03-23 15:54:58 +11:00
Mitchell Richters
88e6a6e894 - Rework ff652f454c slightly to accept an InputPacket pointer. 2023-03-22 20:08:53 +11:00
Mitchell Richters
2b22e49a9b - Duke: Temporary workaround for last commit so the player returns to centre on level load. 2023-03-22 18:26:23 +11:00
Mitchell Richters
ff652f454c - Tidy up how games reapply needed bits at start of tic. 2023-03-22 18:17:50 +11:00
Mitchell Richters
e5bad9af2c - Duke/RR: Re-arrange the playsim angle calls.
* Make them precisely where they were originally called from.
2023-03-21 21:37:25 +11:00
Mitchell Richters
181f88b028 - Duke/RR: Remove the confusing VEH_HEELTOE bit. 2023-03-21 10:41:55 +11:00
Mitchell Richters
2918c34d42 - Duke/RR: Fix two typos. 2023-03-21 10:39:24 +11:00
Mitchell Richters
64a3141f6f - Duke/RR: Add VEH_TURNING flag instead of testing left/right in places. 2023-03-21 10:21:30 +11:00
Mitchell Richters
f240b6c623 - Duke/RR: Fix bad flag test that needed to confirm two flags set, not any one of the two. 2023-03-21 10:12:38 +11:00
Mitchell Richters
19ddc1ee51 - Duke/RR: Repair angle test when adjusting velocity.
* Initially figured I could just use the sign of the angle adjustment, but the vehicle code makes left/right reversals that necessitate using the flags for this.
2023-03-21 09:39:36 +11:00