diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index 68b27efe7..7564b7027 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -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) diff --git a/src/Dodge/Render/Picture.hs b/src/Dodge/Render/Picture.hs index c2b566b01..b6dfc6cea 100644 --- a/src/Dodge/Render/Picture.hs +++ b/src/Dodge/Render/Picture.hs @@ -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 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 6087face3..fa8bfdd84 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -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