Add check for button hold down when releasing rb for lb action

This commit is contained in:
jgk
2021-06-05 14:48:01 +02:00
parent e03197799e
commit c2f7c6e245
3 changed files with 9 additions and 3 deletions
+3
View File
@@ -97,6 +97,7 @@ data World = World
, _doneSideEffects :: [PreloadData SoundOrigin -> IO (PreloadData SoundOrigin)]
, _debugFlags :: DebugFlags
, _inventoryMode :: InventoryMode
, _lClickHammer :: HammerPosition
}
data InventoryMode
= TopInventory
@@ -321,6 +322,8 @@ data HammerPosition
| HammerReleased
| HammerUp
| NoHammer
deriving
(Eq, Ord, Show)
data ItemIdentity
= Pistol
| SpreadGun
+1
View File
@@ -86,6 +86,7 @@ defaultWorld = World
, _doneSideEffects = []
, _debugFlags = defaultDebugFlags
, _inventoryMode = TopInventory
, _lClickHammer = HammerUp
}
defaultCreature :: Creature
defaultCreature = Creature
+5 -3
View File
@@ -20,16 +20,18 @@ updateUsingInput w =
updatePressedButtons :: S.Set MouseButton -> World -> World
updatePressedButtons pkeys w
| lbPressed && rbPressed
= useItem (_yourID w) w
| lbPressed = useLeftItem (_yourID w) w
= useItem (_yourID w) w & lClickHammer .~ HammerDown
| lbPressed && canLeftClick = useLeftItem (_yourID w) w
| lbPressed = w
| mbPressed = w & clickMousePos .~ _mousePos w
& cameraRot -~ rotation
| otherwise = w
| otherwise = w & lClickHammer .~ HammerUp
where
lbPressed = ButtonLeft `S.member` pkeys
rbPressed = ButtonRight `S.member` pkeys
mbPressed = ButtonMiddle `S.member` pkeys
rotation = angleBetween (_mousePos w) (_clickMousePos w)
canLeftClick = _lClickHammer w == HammerUp
updatePressedButtonsCarte :: S.Set MouseButton -> World -> World
updatePressedButtonsCarte pkeys w