Cleanup
This commit is contained in:
@@ -43,27 +43,25 @@ import NewInt
|
||||
import SDL
|
||||
|
||||
updateUseInputInGame :: Universe -> Universe
|
||||
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud of
|
||||
HUD{_subInventory = si, _diSelection = disel} -> case si of
|
||||
DisplayTerminal tmid -> updateKeysInTerminal tmid u
|
||||
CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (Sel (-1) _ _))} ->
|
||||
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . subInventory of
|
||||
DisplayTerminal tmid -> updateKeysInTerminal tmid u
|
||||
CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (Sel (-1) _ _))} ->
|
||||
u
|
||||
& tohud . subInventory %~ docombineregexinput sss msel
|
||||
& uvWorld . worldEventFlags . at CombineInventoryChange ?~ ()
|
||||
_ | disel == Just (-1) ->
|
||||
u
|
||||
& tohud . subInventory %~ docombineregexinput sss msel
|
||||
& uvWorld . worldEventFlags . at CombineInventoryChange ?~ ()
|
||||
_
|
||||
| disel ^? _Just . slSec == Just (-1) ->
|
||||
u
|
||||
& tohud %~ dodisplayregexinput diInvFilter diInvFilter (-1)
|
||||
& uvWorld . worldEventFlags . at InventoryChange ?~ ()
|
||||
& uvWorld %~ setInvPosFromSS
|
||||
_
|
||||
| disel ^? _Just . slSec == Just 2 ->
|
||||
u
|
||||
& tohud %~ dodisplayregexinput diCloseFilter diCloseFilter 2
|
||||
& uvWorld . worldEventFlags . at InventoryChange ?~ ()
|
||||
& uvWorld %~ setInvPosFromSS
|
||||
_ -> updateKeysInGame u
|
||||
& tohud %~ dodisplayregexinput diInvFilter diInvFilter (-1)
|
||||
& uvWorld . worldEventFlags . at InventoryChange ?~ ()
|
||||
& uvWorld %~ setInvPosFromSS
|
||||
_ | disel == Just 2 ->
|
||||
u
|
||||
& tohud %~ dodisplayregexinput diCloseFilter diCloseFilter 2
|
||||
& uvWorld . worldEventFlags . at InventoryChange ?~ ()
|
||||
& uvWorld %~ setInvPosFromSS
|
||||
_ -> updateKeysInGame u
|
||||
where
|
||||
disel = u ^? uvWorld . hud . diSelection . _Just . slSec
|
||||
tohud = uvWorld . hud
|
||||
dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do
|
||||
sss <- di ^? diSections
|
||||
@@ -97,21 +95,22 @@ updateMouseInGame cfig w
|
||||
|
||||
updateMouseHeldInGame :: Config -> World -> World
|
||||
updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
|
||||
OverInvDragSelect{} | ButtonRight `M.member` (w ^. input . mouseButtons) ->
|
||||
OverInvDragSelect{}
|
||||
| ButtonRight `M.member` (w ^. input . mouseButtons) ->
|
||||
w & input . mouseContext .~ MouseGameRotate
|
||||
OverInvDragSelect (Just sstart) _ ->
|
||||
let sss = w ^. hud . diSections
|
||||
msel = inverseSelNumPos cfig invDP (w ^. input . mousePos) sss
|
||||
in case msel of
|
||||
Nothing -> w & input . mouseContext . mcoSelEnd .~ Nothing
|
||||
Just (i, j)
|
||||
| i == fst sstart -> w & input . mouseContext . mcoSelEnd ?~ j
|
||||
| i < fst sstart -> w & input . mouseContext . mcoSelEnd ?~ 0
|
||||
| otherwise ->
|
||||
w & input . mouseContext . mcoSelEnd
|
||||
.~ fmap
|
||||
fst
|
||||
(IM.lookupMax =<< sss ^? ix (fst sstart) . ssItems)
|
||||
in case msel of
|
||||
Nothing -> w & input . mouseContext . mcoSelEnd .~ Nothing
|
||||
Just (i, j)
|
||||
| i == fst sstart -> w & input . mouseContext . mcoSelEnd ?~ j
|
||||
| i < fst sstart -> w & input . mouseContext . mcoSelEnd ?~ 0
|
||||
| otherwise ->
|
||||
w & input . mouseContext . mcoSelEnd
|
||||
.~ fmap
|
||||
fst
|
||||
(IM.lookupMax =<< sss ^? ix (fst sstart) . ssItems)
|
||||
-- not sure how the above performs when filtering...
|
||||
OverInvDragSelect Nothing _ -> fromMaybe w $ do
|
||||
sss <- w ^? hud . diSections
|
||||
@@ -275,9 +274,9 @@ endCombineRegex w = ssSetCursor (ssLookupDown 0 j) sss
|
||||
where
|
||||
sss = w ^. hud . subInventory . ciSections
|
||||
j = fromMaybe 0 $ do
|
||||
itms <- sss ^? ix 0 . ssItems
|
||||
(k, _) <- IM.lookupMin itms
|
||||
return (k -1)
|
||||
itms <- sss ^? ix 0 . ssItems
|
||||
(k, _) <- IM.lookupMin itms
|
||||
return (k -1)
|
||||
|
||||
startDrag :: (Int, Int) -> World -> World
|
||||
startDrag (a, b) w = setcontext $ case w ^? hud . diSelection . _Just of
|
||||
@@ -387,8 +386,7 @@ updateKeysInTerminal tmid u = fromMaybe deactivate $ do
|
||||
x <- u ^? uvWorld . cWorld . lWorld . buttons . ix (tm ^. tmButtonID) . btPos
|
||||
y <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crPos
|
||||
case tm ^. tmStatus of
|
||||
_
|
||||
| dist x y > 40 || not (hasButtonLOS x y (u ^. uvWorld)) -> Nothing
|
||||
_ | dist x y > 40 || not (hasButtonLOS x y (u ^. uvWorld)) -> Nothing
|
||||
TerminalDeactivated -> Nothing
|
||||
TerminalTextInput{} -> Just $ updateKeysTextInputTerminal tmid u
|
||||
TerminalPressTo{} -> Just $ updateKeyContinueTerminal tmid u
|
||||
@@ -398,6 +396,7 @@ updateKeysInTerminal tmid u = fromMaybe deactivate $ do
|
||||
|
||||
updateKeyContinueTerminal :: Int -> Universe -> Universe
|
||||
updateKeyContinueTerminal tmid u
|
||||
| isJust (u ^. uvWorld . input . pressedKeys . at ScancodeEscape) = u
|
||||
| elem 0 $ u ^. uvWorld . input . pressedKeys = u & uvWorld %~ continueTerminal tmid
|
||||
| otherwise = u
|
||||
|
||||
@@ -417,7 +416,7 @@ updateKeysTextInputTerminal tmid u =
|
||||
uvWorld %~ terminalReturnEffect tmid
|
||||
| otherwise = id
|
||||
tryTabComplete
|
||||
| u ^. uvWorld . input . pressedKeys . at ScancodeTab == Just 0 =
|
||||
| u ^. uvWorld . input . pressedKeys . at ScancodeTab == Just 0 =
|
||||
uvWorld . cWorld . lWorld . terminals . ix tmid %~ tabComplete (u ^. uvWorld)
|
||||
| otherwise = id
|
||||
|
||||
@@ -536,7 +535,8 @@ getCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button)
|
||||
getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
|
||||
where
|
||||
topcitem = do
|
||||
k <- (w ^? hud . diSections . ix 3 . ssItems)
|
||||
k <-
|
||||
(w ^? hud . diSections . ix 3 . ssItems)
|
||||
>>= (fmap fst . IM.lookupMin)
|
||||
Left <$> w ^? hud . closeItems . ix k
|
||||
topcbut = do
|
||||
@@ -545,8 +545,15 @@ getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
|
||||
|
||||
tryCombine :: (Int, Int) -> World -> World
|
||||
tryCombine (i, j) w = fromMaybe w $ do
|
||||
CombItem is it <- w ^? hud . subInventory
|
||||
. ciSections . ix i . ssItems . ix j . siPayload . _Just
|
||||
CombItem is it <-
|
||||
w
|
||||
^? hud . subInventory
|
||||
. ciSections
|
||||
. ix i
|
||||
. ssItems
|
||||
. ix j
|
||||
. siPayload
|
||||
. _Just
|
||||
p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
|
||||
return $
|
||||
createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is))
|
||||
|
||||
Reference in New Issue
Block a user