Commit Graph

12954 Commits

Author SHA1 Message Date
Christoph Oelckers 976675c816 - added some helper code to deal with the fact that the sound system still needs to operate on sprites. 2020-11-07 10:25:40 +01:00
Mitchell Richters ade1a80515 - gameinput.cpp: Remove crouch bool from `applylook()` since we can now just rely in the actions bitfield that's already incoming as required and default `scaleAdjust` in the prototype to `1`. 2020-11-07 18:25:06 +11:00
Mitchell Richters 6e3d414b3c - inputstate.cpp: Move `checkCrouchToggle()` from gameinput.ccp into `ApplyGlobalInput()` and use static bool for crouch toggling vs. game-side bool. 2020-11-07 18:16:16 +11:00
Mitchell Richters a153ebab7e - SW: Migrate crouch toggling to backend solution implemented in 4ef0d20e0e. 2020-11-07 17:53:11 +11:00
Mitchell Richters 01c494e29d - Blood: Don't let Caleb's voice overlap if spamming the use key on a locked door.
* Fixes #113.
2020-11-07 15:13:45 +11:00
Mitchell Richters 4ef0d20e0e - gameinput.cpp: Consolidate `checkCrouchToggle()` from Duke with discrete implementations from Blood in 7c8efde38c and Exhumed in 032db82f82 to unify the functionality. 2020-11-07 13:44:25 +11:00
Mitchell Richters 032db82f82 - Exhumed: Add crouch toggle mechanism. 2020-11-07 13:27:58 +11:00
Mitchell Richters 7c8efde38c - Blood: Add crouch toggle mechanism.
* Fixes #151.
2020-11-07 13:23:16 +11:00
Mitchell Richters a52ee89969 - Duke/RR: Add scaling to mouse input within `motoApplyTurn()` and `boatApplyTurn()`. 2020-11-07 09:56:57 +11:00
Mitchell Richters f0b9029726 - Duke/RR: Fix incorrect boolean used in `boatApplyTurn()` when implementing fcc2521347bb528d7a5bcd3996c509db85e993f0. 2020-11-07 09:56:57 +11:00
Mitchell Richters 74dfbfe6f8 - Duke/RR: Ensure `p->vehForwardScale`/`p->vehReverseScale` can only be a maximum of 1. Controller input with high sensitivity could effectively turbo-charge the bike ;) 2020-11-07 09:56:57 +11:00
Mitchell Richters 466bc84697 - Duke/RR: Completely revamped vehicle mouse/controller input.
* Original algorithm now used purely for keyboard input only.
* Mouse and controller input is no longer a scaled double version of the keyboard input.
* Mouse input is the square root of the base angle adjustment (20) multiplied by (mouse input divided by the input scale factor). As such, mouse input is completely consistent between synchronised and unsynchronised input.
* Controller input is base angle adjustment (20) multiplied by itself.
* Renamed `turnl`/`turnr` variables to `kbdLeft`/`kbdRight` respectively.
* Fixed issue where `p->TiltStatus` wasn't being backed up in `boatApplyTurn()`.
2020-11-07 09:56:57 +11:00
Mitchell Richters c9708a5464 - `CONTROL_GetInput()`: Reverse polarity of dx/dz and update `processMovement()` appropriately. 2020-11-07 09:56:57 +11:00
Mitchell Richters 6f5f66ad35 - Duke/RR: Partially revert c9d875327850e839e3ad1f367ede15497d44fda3 by truncating `p->MotoSpeed` to integer when calculating xvel/yvel to preserve original vehicle feel. 2020-11-07 09:56:57 +11:00
Mitchell Richters 567738f3ad - Duke/RR: Tidy formatting of `onMotorcycle()`, `onBoat()`, `onMotorcycleMove()` and `onBoatMove()`. 2020-11-07 09:56:57 +11:00
Mitchell Richters 1545610501 - Duke/RR: Convert remaining vehicle function local ints to bools where appropriate. 2020-11-07 09:56:57 +11:00
Mitchell Richters c223a50b29 - Duke/RR: Clean up vehicle turn left/right bools used in ticker functions. 2020-11-07 09:56:57 +11:00
Mitchell Richters ad10ea4cb5 - Duke/RR: Initial implementation of scaled `p->MotoSpeed` controller input. 2020-11-07 09:56:57 +11:00
Mitchell Richters 578ded1db3 - Duke/RR: Promote `p->MotoSpeed` from `short` to `double` in prep for applying scaled controller input. 2020-11-07 09:56:57 +11:00
Mitchell Richters c46ad10bb1 - Duke/RR: Clean up some disassembly variable names in vehicle so it's easier to understand what's going on. 2020-11-07 09:56:57 +11:00
Christoph Oelckers 94341e8582 - fixed missing null check in SetOwner and SetHitOwner. 2020-11-06 20:13:06 +01:00
Mitchell Richters 2d903ed918 - Exhumed: Skip over weapons owned but without ammo when doing `WeapSel_Next`/`WeapSel_Prev`.
* Fixes #148.
2020-11-06 23:25:55 +11:00
Mitchell Richters e3c6873410 - Exhumed: Move bullet puff animations up by 4096 units to give the illusion of more accurate aiming.
* Fixes #149.
2020-11-06 23:02:57 +11:00
Mitchell Richters 71be467065 - Duke: Fix missing ammo counter on modern HUD for WT's flamethrower.
* Fixes #156.
2020-11-06 22:07:11 +11:00
Mitchell Richters f2e50161a5 - Exhumed: Fix issues on start of Level 20 following changes in 0c95aee8f5.
* Fixes #152.
2020-11-06 22:02:14 +11:00
Mitchell Richters c823e33bb3 - Duke/RR: Fix remaining issues with drug mode.
* Primary issue was call to `renderSetAspect()` within `setdrugmode()` wasn't mulscaling with `viewingrange`.
* Changed `setdrugmode()` to `getdrugmode()` to return `p->drug_aspect`. This is so `renderSetAspect()` needs to only be called from one place only.
2020-11-06 20:52:43 +11:00
Christoph Oelckers 4e6e564e14 - silenced message about missing function prototypes for exports.
This is necessary to later separate the games' script content from each other because there'd be lots of unprototyped functions otherwise.
2020-11-05 18:59:21 +01:00
Christoph Oelckers d5ff87fa4f - RRRA: fixed vehicle collision with psychedelic cactuses.
This did not fully match the original source which had a critical difference here between RR and RRRA.
2020-11-05 14:31:55 +01:00
Christoph Oelckers 977223287e - cap the frame rate of RRRA's cactus drug mode.
This was running at full render speed.
2020-11-05 07:31:48 +01:00
Christoph Oelckers d8e331ef0f - changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Mitchell Richters e8ccd9bc8c - Fix compilation. 2020-11-05 11:14:04 +11:00
Christoph Oelckers 7621d3e105 - removed redundant dosetaspect function.
This was software rendering only.
2020-11-04 22:30:11 +01:00
Christoph Oelckers 60263ccad9 - fixed destroyit.
This caused parts of the exploding house in RRRA E1L5 not to disappear.
2020-11-04 21:53:56 +01:00
Christoph Oelckers 6729859e39 - fixed the crane.
Cannot take the special value out of the owner field. :(
2020-11-04 21:25:59 +01:00
Christoph Oelckers 721efae0d3 - fixed camera loop. 2020-11-04 20:44:12 +01:00
Christoph Oelckers 083454986b - made camsprite an actor variable. 2020-11-04 20:40:26 +01:00
Christoph Oelckers 25c93e65fc - more script ID wrappers for sectors. 2020-11-04 20:40:26 +01:00
Christoph Oelckers aac5ab55a3 - movesprite cleanup. 2020-11-04 20:40:25 +01:00
Christoph Oelckers 7a95c1661e - wrap actor index storage in sector in the script index API. 2020-11-04 20:40:25 +01:00
Christoph Oelckers 471a25f819 - operaterespawns.
# Conflicts:
#	source/games/duke/src/sectors_d.cpp
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:40:25 +01:00
Christoph Oelckers 5cf288a05c - changed the trip bomb indexing to use a separate counter for robustness. 2020-11-04 20:40:25 +01:00
Christoph Oelckers 0eb10f0313 - newowner and related code. 2020-11-04 20:40:25 +01:00
Christoph Oelckers c90e7d9b5f - almost the last owners 2020-11-04 20:40:08 +01:00
Christoph Oelckers d0db810ab0 - ud.camerasprite -> actor. 2020-11-04 20:40:08 +01:00
Christoph Oelckers 212b99d0f3 - use owner wrappers in spawn code. 2020-11-04 20:40:08 +01:00
Christoph Oelckers 24cfd841f2 - lotsofglass - final function in spawn.cpp 2020-11-04 20:40:07 +01:00
Christoph Oelckers 4add2b5839 - two more 2020-11-04 20:40:07 +01:00
Christoph Oelckers ac5ea2f1c9 - 3 more wrappers gone. 2020-11-04 20:40:07 +01:00
Christoph Oelckers 8f754d163d - removed inline wrappers that are not needed anymore.
# Conflicts:
#	source/games/duke/src/spawn_r.cpp
2020-11-04 20:40:07 +01:00
Christoph Oelckers f3f0fd0a3a - ported the sound code to actors and removed the inline helpers. 2020-11-04 20:40:07 +01:00