From fb17502781ae21ea5da9d40fca34a67a62c7f4c6 Mon Sep 17 00:00:00 2001 From: Ross Date: Fri, 26 Mar 2021 14:20:13 +0000 Subject: [PATCH] Allow modifiable speed changes --- src/Dodge/AIs.hs | 4 ++-- src/Dodge/Data.hs | 2 ++ src/Dodge/Default.hs | 2 ++ src/Dodge/Event/Keyboard.hs | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Dodge/AIs.hs b/src/Dodge/AIs.hs index 086c7cc26..b6fa76d60 100644 --- a/src/Dodge/AIs.hs +++ b/src/Dodge/AIs.hs @@ -1878,8 +1878,8 @@ yourControl :: World -> (World -> World,StdGen) -> Creature -> ((World -> World, yourControl w (f,g) cr = ( (updateUsingInput . f, g) , Just . crAutoReload . mouseActionsCr (_mouseButtons w) $ wasdWithAiming w speed strafeSpeed 0 cr ) - where strafeSpeed = 8 * equipFactor * (fromMaybe 1 $ yourItem w ^? itAimingSpeed) - speed = 3 * equipFactor + where strafeSpeed = _varMovementStrafeSpeedModifier w * equipFactor * (fromMaybe 1 $ yourItem w ^? itAimingSpeed) + speed = _varMovementSpeedModifier w * equipFactor equipFactor = product $ map equipSpeed $ IM.elems $ _crInv $ _creatures w IM.! 0 wasdWithAiming :: World -> Float -> Float -> Int -> Creature -> Creature diff --git a/src/Dodge/Data.hs b/src/Dodge/Data.hs index d75953019..4df0c71f9 100644 --- a/src/Dodge/Data.hs +++ b/src/Dodge/Data.hs @@ -88,6 +88,8 @@ data World = World , _seenLocations :: IM.IntMap (World -> Point2,String) , _selLocation :: Int , _keyConfig :: KeyConfigSDL + , _varMovementSpeedModifier :: Float + , _varMovementStrafeSpeedModifier :: Float } data Corpse = Corpse diff --git a/src/Dodge/Default.hs b/src/Dodge/Default.hs index 5f99c6e0e..e289fb33d 100644 --- a/src/Dodge/Default.hs +++ b/src/Dodge/Default.hs @@ -232,6 +232,8 @@ defaultWorld = World ] , _selLocation = 0 , _keyConfig = defaultKeyConfigSDL + , _varMovementSpeedModifier = 3 + , _varMovementStrafeSpeedModifier = 3 } youLight = -- LS {_lsEff = \w _ p -> (logistic 1 1 1 (d p w * 0.01) ) diff --git a/src/Dodge/Event/Keyboard.hs b/src/Dodge/Event/Keyboard.hs index 4d19b0ec9..b3018ad97 100644 --- a/src/Dodge/Event/Keyboard.hs +++ b/src/Dodge/Event/Keyboard.hs @@ -34,6 +34,8 @@ handlePressedKey _ scancode w -- Rotation seems to be duplicated here and in Camera.hs ? why | scancode == rotateCameraPlusKey (_keyConfig w) = Just $ w {_cameraRot = _cameraRot w + 0.01} | scancode == rotateCameraMinusKey (_keyConfig w) = Just $ w {_cameraRot = _cameraRot w - 0.01} + | scancode == ScancodeF7 = Just $ w {_varMovementSpeedModifier = _varMovementSpeedModifier w - 1} + | scancode == ScancodeF8 = Just $ w {_varMovementSpeedModifier = _varMovementSpeedModifier w + 1} handlePressedKey _ _ w = Just w