Centralise mouse context data
This commit is contained in:
+11
-14
@@ -6,6 +6,7 @@ Description : Simulation update
|
||||
-}
|
||||
module Dodge.Update (updateUniverse) where
|
||||
|
||||
import Control.Applicative
|
||||
import Color
|
||||
import Control.Monad
|
||||
import Data.List
|
||||
@@ -283,8 +284,7 @@ functionalUpdate u =
|
||||
. over uvWorld updateCloseObjects
|
||||
. over uvWorld updateWheelEvents
|
||||
. over uvWorld (updateMouseInventorySelection (u ^. uvConfig))
|
||||
. over uvWorld (updateMouseOverInventory (u ^. uvConfig))
|
||||
. over uvWorld (updateMouseOverCombineInventory (u ^. uvConfig))
|
||||
. over uvWorld (updateMouseContext (u ^. uvConfig))
|
||||
. over uvWorld zoneClouds
|
||||
. over uvWorld zoneCreatures
|
||||
-- . over uvWorld updateInventorySelectionList
|
||||
@@ -387,24 +387,21 @@ shiftInvItemsDown (_, i) x w = fromMaybe w $ do
|
||||
f w' i' = swapInvItems g i' w'
|
||||
g i' m = fst <$> IM.lookupGT i' m
|
||||
|
||||
updateMouseOverInventory :: Configuration -> World -> World
|
||||
updateMouseOverInventory cfig w =
|
||||
w & hud . hudElement . diMouseOver .~ newmouseover
|
||||
updateMouseContext :: Configuration -> World -> World
|
||||
updateMouseContext cfig w =
|
||||
w & input . mouseContext .~ fromMaybe NoMouseContext
|
||||
(overinv <|> overcomb <|> overterm)
|
||||
where
|
||||
newmouseover = do
|
||||
overinv = do
|
||||
sss <- w ^? hud . hudElement . diSections
|
||||
guard $
|
||||
ButtonRight `M.notMember` (w ^. input . mouseButtons)
|
||||
|| not (null $ w ^? hud . hudElement . subInventory . ciSelection)
|
||||
inverseSelNumPos cfig (invDisplayParams w) sss (w ^. input . mousePos)
|
||||
|
||||
updateMouseOverCombineInventory :: Configuration -> World -> World
|
||||
updateMouseOverCombineInventory cfig w =
|
||||
w & hud . hudElement . subInventory . ciMouseOver .~ newmouseover
|
||||
where
|
||||
newmouseover = do
|
||||
fmap OverInv $ inverseSelNumPos cfig (invDisplayParams w) sss (w ^. input . mousePos)
|
||||
overcomb = do
|
||||
sss <- w ^? hud . hudElement . subInventory . ciSections
|
||||
inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos)
|
||||
fmap OverCombInv $ inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos)
|
||||
overterm = Nothing
|
||||
|
||||
updateWheelEvents :: World -> World
|
||||
updateWheelEvents w
|
||||
|
||||
Reference in New Issue
Block a user