Christoph Oelckers
ae4ef6401c
- use the actual actor flags.
...
Not fully working yet...
2023-04-09 09:45:42 +02:00
Christoph Oelckers
510afe16fb
- NODAMAGEPUSH is the default for RR.
...
The game never had this feature
2023-04-09 09:35:38 +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
672374c5f4
- added fullbright flags where appropriate
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
307276a276
- WIP for a default scale property.
...
For now a NOP, we need to get a little further with the scriptification work before this can be made operational.
2023-04-08 09:38:46 +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
0e169759d5
- animatesprites_r.cpp cleanup
2023-04-07 12:22:45 +02:00
Christoph Oelckers
ce00183707
- scriptified PlayerOnWater.
2023-04-07 12:17:56 +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
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
85482b0951
- Fix CVAR comments from previous commit.
2023-04-05 17:59:04 +10:00
Mitchell Richters
32e6e1ce5f
- Allow disabling of level start/end cutscenes if a user desires.
...
* Allows for situations where in Blood or Exhumed, you wish to have a shortcut that directly gets you into a level.
* Could be used for seamless playing options if a user doesn't care for level ending screens.
* Not exposing this to the menu for now as I doubt demand would be high for such a thing.
2023-04-05 17:46:40 +10:00
Mitchell Richters
0f07ea9e37
- Fix skip size in SkipTicCmd()
missed during 8bfcb8c939
.
2023-04-05 15:00:47 +10:00
Mitchell Richters
c4bd550483
- Change InputState::KeyStatus
to be a FixedBitArray
object.
2023-04-05 12:57:48 +10:00
Mitchell Richters
2658af9fd0
- Use weapon enums when determining max slot numbers.
2023-04-05 10:22:18 +10:00
Mitchell Richters
4d82a0effa
- Put SB_QUICK_KICK
into the correct mask.
2023-04-05 10:20:54 +10:00
Mitchell Richters
3951407b68
- Fix issue with memset calls from 0eba341ac1
.
2023-04-05 07:39:31 +10:00
Mitchell Richters
6403c7291f
- Update player camera angles right before drawing a frame.
...
* Also stops situations where `GameInput::getInput()` was being called incessantly while in the menu, during screenjobs, etc.
2023-04-04 20:55:09 +10:00
Mitchell Richters
0eba341ac1
- Remove GameInput::prepareHidInput()
and GameInput::resetHidInput()
.
...
* Also reverts 23bff9f701
, but changes the loop into a `memset()` call instead.
2023-04-04 20:07:06 +10:00
Mitchell Richters
d454455d22
- Move invertmouse
CVARs into common code.
...
* Removes duplication of CVAR definitions between Raze and GZDoom.
2023-04-04 20:01:21 +10:00
Mitchell Richters
b4ea03b8ef
- Ensure GameInput::Clear()
clears the entire object.
...
* Unused mouse input could still accumulate during screenjobs (level end stats, etc).
2023-04-04 10:53:19 +10:00
Mitchell Richters
133c8fa80b
- Only scale the mouse input in GameInput::processMovement()
, where it's needed.
...
* Also fixes a potential signedness issue for `processVehicle()` if `m_yaw` is negatively set.
2023-04-04 09:53:43 +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
Mitchell Richters
23186cd8bb
- Relocate processCrouchToggle()
.
2023-04-03 18:38:10 +10:00
Mitchell Richters
31d3349d93
- Rearrange bools in processVehicleInput()
.
2023-04-03 18:37:38 +10:00
Mitchell Richters
fb519e9c53
- Move PlayerAngles
constants into the class.
2023-04-03 17:07:34 +10: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
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
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
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
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
Mitchell Richters
07ea5d06ae
- Update version.h.
2023-04-02 20:11:51 +10:00
Mitchell Richters
345f45ed12
- Fixed messed up formatting in savegamehelp.cpp
.
2023-04-02 19:56:53 +10: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
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
b9cf8a13c6
- Inline the remainder of InputState
methods.
2023-04-02 18:32:40 +10:00
Mitchell Richters
ea4e850674
- Move remaining mouse CVARs from inputstate.cpp
to gameinput.cpp
.
2023-04-02 18:32:39 +10:00
Mitchell Richters
13cb52a0db
- Move HIDInput
struct from inputstate.h
to gameinput.h
.
2023-04-02 18:32:39 +10:00
Mitchell Richters
10cd63f383
- Use an FVector2
inside HIDInput
.
2023-04-02 18:32:39 +10:00
Mitchell Richters
4387294aff
- Eliminate the duplicate mouse storage since we have things in the right spot now.
2023-04-02 18:32:39 +10:00
Mitchell Richters
eeb67a2cdd
- Move all mouse CVARs from inputstate.cpp
to gameinput.cpp
.
2023-04-02 18:32:39 +10:00
Mitchell Richters
64b05b6f06
- Move remaining CCMDs and non-inputstate related items to gameinput.cpp
.
2023-04-02 18:32:38 +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
3c82014d0e
- Move ApplyGlobalInput()
into gameinput.cpp
.
...
* Doesn't really belong in inputstate.cpp, it was just placed there in 2020 for lack of a better spot at the time.
2023-04-02 18:32:38 +10:00
Mitchell Richters
9e1ca0cb8f
- Make the turbo turn functions static within gameinput.cpp
.
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
c13745efc8
- Remove the mouse input negation out of the event handler.
2023-04-02 18:24:05 +10:00
Mitchell Richters
b340807a6b
- Remove now-unneeded inline wrapper getHidInput()
.
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
e1ea0492e1
- savegame version bump.
2023-04-02 08:50:05 +02:00
Mitchell Richters
daf63ce209
Revert "- InputState::ClearAllInput()
: Only clear crouch_toggle
bool if outside of a level, and resend SB_CROUCH
sync bit if inside a level and crouch_toggle
is true."
...
This reverts commit c076310e34
.
* It's no longer needed with 70706d3da8
.
2023-03-29 13:21:14 +11:00
Mitchell Richters
70706d3da8
- Don't stop getting input when we're paused.
...
* This is the cause of the long-standing crouch toggle issues, as well as a few other things.
2023-03-29 13:20:55 +11:00
Mitchell Richters
06dd971291
- When the gameaction
is ga_level
, return and don't break.
...
* This was causing the first input packet to only be sent to the playsim after the first tic occurred.
* Previous: player 1 of 1 (1 nodes); E1L1: Hollywood Holocaust; PlayClock: 4; PlayClock: 4; PlayClock: 12;, etc.
* Current: player 1 of 1 (1 nodes); E1L1: Hollywood Holocaust; PlayClock: 0; PlayClock: 4; PlayClock: 8;, etc.
* Fixes #900 .
2023-03-29 13:20:47 +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
9f8cda4be3
- Move call to I_GetInputFrac()
to ensure we're never stalled waiting for a tic.
2023-03-29 09:04:40 +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
892dde030f
- Tidy up nested branch in calcChaseCamPos()
.
2023-03-27 20:43:55 +11:00
Mitchell Richters
6c2717fcde
- Avoid testing if we're synchronising input twice in getInput()
.
2023-03-27 20:01:56 +11:00
Mitchell Richters
1ed655e0e7
- Exhumed: Further clean up updatePlayerWeapon()
.
...
* Rename a few variables for better clarity as to what's going on.
* Add new inline to the backend `getWrappedIndex()` that properly wraps around negative values based on the supplied maximum using modulo.
* Directly set the weapon when doing the next/prev tests to avoid unnecessary tests to see whether the player has the weapon or not.
2023-03-27 18:47:05 +11:00
Mitchell Richters
b5a9085aed
- Exhumed: Restore more accurate pitch adjustment for Ramses.
...
* Use `maphoriz(-11)` instead of some voodoo degree amount so it's clear when comparing sources.
* Don't stop interpolating while doing Ramses.
* Apply Ramses pitch amount to `nVertDestPan`, just like the original.
* Don't reset all angles when initialising Ramses, just set the yaw angle.
* Don't return player's view to center when doing Ramses, use the delta between `nDestVertPan` and the player's pitch, using same formula as original.
* Comment in how normal/non-ramses `nDestVertPan` setting should be 8x the sprite Z move delta, not 2x. I know it's not correct, but its been this way for a long time and we probably should CVAR it.
* When doing the player's death pitch, it's 40.156 degrees (horizon of 108), not 38 degrees (horizon of 100). This was a misread of mine way back when.
2023-03-26 22:13:57 +11:00
Christoph Oelckers
b6da4ecddf
- backend update from GZDoom.
2023-03-26 11:45:25 +02:00
Mitchell Richters
0387282e37
- Fix two particularly loud warnings from GCC builds.
...
* `warning: type qualifiers ignored on function return type`.
2023-03-26 15:35:33 +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
Christoph Oelckers
8503f34eb5
- fix error message crash in SNDINFO parser.
2023-03-25 12:24:11 +01:00
Christoph Oelckers
c6054595d0
- fixed lookup table generation for foggy fades.
...
ColorMatcher.Pick is not correct here, fortunately we do not need this for fog setup as it never uses the lookup so just do a normal copy of the first (fullbright) table.
2023-03-25 11:42:50 +01:00
Mitchell Richters
9906586569
- Make walltype::normalAngle()
normalise the returned value.
2023-03-24 19:50:26 +11:00
Mitchell Richters
e85162df97
- Removed unused lastTic
global.
2023-03-23 17:38:01 +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
7da3b097fb
- Remove the extern status for gamesetinput
.
...
* We don't need to save this variable, we reset it at the start of every tic anyway.
2023-03-23 17:03:43 +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
ff652f454c
- Tidy up how games reapply needed bits at start of tic.
2023-03-22 18:17:50 +11:00
CandiceJoy
9c65d2cde1
Fixed Mac default wad/grp search paths.
2023-03-19 20:41:46 +01:00
Mitchell Richters
4153c38bd3
- Clean up GameInterface
struct a bit.
...
* Make everything that's overridden abstract.
* Remove defunct/deleted methods.
2023-03-19 11:27:07 +11:00
Mitchell Richters
de5b73c60f
- SW: Fix strafing issue due to missing bool negation.
2023-03-19 11:14:04 +11:00
Christoph Oelckers
9b751d6469
use GAMENAMELOWERCASE for defining GAME_DIR.
...
This was handled inconsistently in different parts of the Mac backend.
2023-03-18 12:31:32 +01:00
Mitchell Richters
1147030bca
- Remove concept of InputOptions
, its messy and unnecessary.
2023-03-18 21:16:50 +11:00
Mitchell Richters
366423a09b
- Extra const-ness that I'm not sure matters or not.
2023-03-18 20:14:01 +11:00
Mitchell Richters
672c53c35c
- Move CCMD pause
to gamecontrol.cpp so it can be static.
2023-03-18 19:54:05 +11:00
Mitchell Richters
b3c27a177e
- Consolidate each game's gi-GetInput()
into a unified function.
...
* Eliminates a lot of boilerplate.
* Consolidation of input accumulation buffers discretely used in each game.
* Allows privatisation of `PlayerAngles::CameraAngles`.
2023-03-18 19:49:25 +11:00
Mitchell Richters
3442290fa2
- Repair bad setup for global input scale uncovered after making Duke better.
...
* `I_GetInputFrac()` must always be called, even if we don't use it otherwise the value grows too large.
2023-03-18 19:29:29 +11:00
Mitchell Richters
4355a44721
- Duke: Rework input blocking setup.
...
* Takes the duplicated conditions out of the input handler and makes the ticker responsible by forcing synchronised input.
2023-03-18 19:29:29 +11:00
Mitchell Richters
bd3e9b305e
- Adjust signatures of input functions slightly for consistency.
2023-03-18 19:29:29 +11:00
Mitchell Richters
5a6495956f
- Duke: Move Quick_Kick
button test into ApplyGlobalInput()
as it doesn't seem to share a bit with any other game anymore.
2023-03-18 19:17:30 +11:00
Mitchell Richters
a45890e064
- Move some Duke-specific stuff out of ApplyGlobalInput()
.
2023-03-18 09:15:15 +11:00
Mitchell Richters
eed9716d86
- Move joyaxes[]
array from getHidInput()
directly into ControlInfo
.
2023-03-17 20:58:38 +11:00
Mitchell Richters
08d22f49f4
- Negate ControlInfo::dpitch
to match data out of backend.
2023-03-17 20:58:13 +11:00
Mitchell Richters
fc069feac6
- Negate ControlInfo::dyaw
to match data out of backend.
2023-03-17 20:58:13 +11:00
Mitchell Richters
446218dd7b
- Get mouse/controller input by pointed variable and not copy on return.
2023-03-17 20:58:11 +11:00