rebase keyconfig changes
This commit is contained in:
+19
-11
@@ -39,6 +39,8 @@ import qualified Data.Map as M
|
||||
|
||||
import Foreign.ForeignPtr
|
||||
import Control.Concurrent
|
||||
|
||||
import LoadConfig
|
||||
---}
|
||||
|
||||
factionIs :: Faction -> Creature -> Bool
|
||||
@@ -225,9 +227,9 @@ spawnerAI spawn w (f,g) cr =
|
||||
|
||||
placeCrFaction :: Creature -> Faction -> Point2 -> Point2 -> Float -> World -> World
|
||||
placeCrFaction cr fact p op rot w = over creatures addCr w
|
||||
where addCr crs = IM.insert (newKey crs)
|
||||
where addCr crs = IM.insert (Dodge.Base.newKey crs)
|
||||
( set (crState . faction) fact
|
||||
$ cr {_crPos = p,_crOldPos = op,_crDir = rot,_crID = newKey crs}
|
||||
$ cr {_crPos = p,_crOldPos = op,_crDir = rot,_crID = Dodge.Base.newKey crs}
|
||||
)
|
||||
crs
|
||||
|
||||
@@ -1923,7 +1925,7 @@ wasdWithAiming w speed aimSpeed i cr
|
||||
= -- stopSoundFrom (CrSound i) $
|
||||
over ( crDir) (flip fromMaybe dir)
|
||||
cr
|
||||
where (mov',dir') = wasdComp $ view keys w
|
||||
where (mov',dir') = wasdComp (view keys w) w
|
||||
(mov,dir) = (rotateV (_cameraRot w) mov',fmap (_cameraRot w +) dir')
|
||||
isMoving = mov' /= (0,0)
|
||||
isAiming = (_posture $ _stance $ _crState cr) == Aiming
|
||||
@@ -1935,15 +1937,21 @@ wasdWithAiming w speed aimSpeed i cr
|
||||
_ -> normalizeAngle $ argV (_mousePos w) + _cameraRot w
|
||||
|
||||
|
||||
wasdM :: SDL.Scancode -> Point2
|
||||
wasdM SDL.ScancodeW = (0,1)
|
||||
wasdM SDL.ScancodeS = (0,-1)
|
||||
wasdM SDL.ScancodeD = (1,0)
|
||||
wasdM SDL.ScancodeA = (-1,0)
|
||||
wasdM _ = (0,0)
|
||||
wasdM :: World -> SDL.Scancode -> Point2
|
||||
wasdM w scancode
|
||||
| scancode == moveUpKey (_keyConfig w) = (0,1)
|
||||
| scancode == moveDownKey (_keyConfig w) = (0,-1)
|
||||
| scancode == moveRightKey (_keyConfig w) = (1,0)
|
||||
| scancode == moveLeftKey (_keyConfig w) = (-1,0)
|
||||
wasdM _ _ = (0,0)
|
||||
--wasdM SDL.ScancodeW = (0,1)
|
||||
--wasdM SDL.ScancodeS = (0,-1)
|
||||
--wasdM SDL.ScancodeD = (1,0)
|
||||
--wasdM SDL.ScancodeA = (-1,0)
|
||||
--wasdM _ = (0,0)
|
||||
|
||||
wasdComp :: S.Set SDL.Scancode -> (Point2,Maybe Float)
|
||||
wasdComp ks = f $ foldr ( (+.+) . wasdM ) (0,0) ks
|
||||
wasdComp :: S.Set SDL.Scancode -> World -> (Point2,Maybe Float)
|
||||
wasdComp ks w = f $ foldr ( (+.+) . wasdM w ) (0,0) ks
|
||||
where f (0,0) = ((0,0), Nothing)
|
||||
f p = (errorNormalizeV 46 p, Just $ argV p)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user