Fix aim sweep

This commit is contained in:
2025-05-31 22:11:26 +01:00
parent 8b07fffa7c
commit c56e3e96ee
3 changed files with 15 additions and 7 deletions
+2 -2
View File
@@ -122,11 +122,11 @@ wasdAim inp cam cr
| Just 0 <- inp ^? mouseButtons . ix SDL.ButtonRight
, Nothing <- inp ^? mouseButtons . ix SDL.ButtonLeft
= setAimPosture cr
| SDL.ButtonRight `M.member` _mouseButtons inp = aimTurn mouseDir cr
| SDL.ButtonRight `M.member` _mouseButtons inp = aimTurn mousedir cr
| Aiming <- cr ^. crStance . posture = removeAimPosture cr
| otherwise = creatureTurnTowardDir (_crMvAim cr) 0.2 cr
where
mouseDir = argV $ mouseWorldPos inp cam - (cr ^. crPos)
mousedir = argV $ mouseWorldPos inp cam - (cr ^. crPos)
setAimPosture :: Creature -> Creature
setAimPosture = (crStance . posture .~ Aiming) . doAimTwist (- twoHandTwistAmount)
+2 -1
View File
@@ -278,7 +278,8 @@ drawAimSweep cr w = fold $ do
| otherwise = cdir
return $
uncurryV translate (worldPosToScreen campos p) $
arcFull (a - rot) 10 white (a' - rot) 1 white (5 + dist mwp p * campos ^. camZoom) white
arcFull (a - rot) 10 white (a + diffAngles cdir a - rot) 1 white (5 + dist mwp p * campos ^. camZoom) white
--arcFull (a - rot) 10 white (a' - rot) 1 white (5 + dist mwp p * campos ^. camZoom) white
where
cdir = _crDir cr
rot = campos ^. camRot
+11 -4
View File
@@ -323,13 +323,20 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
OverInvDragSelect{} -> u
_ ->
u & uvWorld . input . mouseContext
.~ fromMaybe aimcontext (overinv <|> overcomb <|> overterm)
-- .~ fromMaybe aimcontext (overinv <|> overcomb <|> overterm)
-- .~ fromMaybe aimcontext (overinv <|> overcomb <|> overterm <|> isrotatedrag)
.~ fromMaybe aimcontext (isrotatedrag <|> overinv <|> overcomb <|> overterm)
where
w = u ^. uvWorld
isrotatedrag = do
t1 <- w ^. input . mouseButtons . at ButtonLeft
t2 <- w ^. input . mouseButtons . at ButtonRight
guard $ t1 > t2
return MouseGameRotate
aimcontext
| Just t1 <- w ^. input . mouseButtons . at ButtonLeft
, Just t2 <- w ^. input . mouseButtons . at ButtonRight
, t1 > t2 = MouseGameRotate
-- | Just t1 <- w ^. input . mouseButtons . at ButtonLeft
-- , Just t2 <- w ^. input . mouseButtons . at ButtonRight
-- , t1 > t2 = MouseGameRotate
| ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming
| otherwise = MouseInGame
mpos = w ^. input . mousePos