Separate out concrete part of world
This commit is contained in:
+14
-14
@@ -34,7 +34,7 @@ import qualified Data.Text as T
|
||||
--import Data.Bifunctor
|
||||
|
||||
hudDrawings :: Universe -> Picture
|
||||
hudDrawings uv = case _hudElement $ _hud w of
|
||||
hudDrawings uv = case _hudElement $ _hud (_cWorld w) of
|
||||
DisplayCarte -> drawCarte cfig w
|
||||
DisplayInventory subinv -> drawInGameHUD uv
|
||||
<> subInventoryDisplay subinv cfig w
|
||||
@@ -59,7 +59,7 @@ inventoryDisplay cfig w = listPicturesAt 0 0 cfig invlist
|
||||
inv = _crInv cr
|
||||
invlist = concatMap (itemText' cr) (IM.toList inv)
|
||||
++ displayFreeSlots
|
||||
++ concatMap (closeObjectToTextPictures nfreeslots) (_closeObjects w)
|
||||
++ concatMap (closeObjectToTextPictures nfreeslots) (_closeObjects (_cWorld w))
|
||||
-- ++ map floorItemsColor (concatMap (closeObjectToTextPictures nfreeslots) (_closeObjects w))
|
||||
-- floorItemsColor = case _hudElement (_hud w) of
|
||||
-- DisplayInventory NoSubInventory -> id
|
||||
@@ -131,7 +131,7 @@ subInventoryDisplay subinv cfig w = case subinv of
|
||||
selcursor' ct = fromMaybe mempty $ ct 0 0 cfig curpos itcol (determineInvSelCursorWidth w) cury <$ it
|
||||
selcursor = selcursor' selcursortype
|
||||
selcursortype
|
||||
| ButtonRight `M.member` _mouseButtons w = listCursorNESW
|
||||
| ButtonRight `M.member` _mouseButtons (_cWorld w) = listCursorNESW
|
||||
| otherwise = listCursorNSW
|
||||
curpos = invSelPos w
|
||||
cury = fromMaybe 1 $ augmentedInvSizes w IM.!? crSel (you w)
|
||||
@@ -140,8 +140,8 @@ subInventoryDisplay subinv cfig w = case subinv of
|
||||
_ -> mempty
|
||||
equipcursors = IM.foldMapWithKey (f yellow) (_crInvEquipped cr)
|
||||
f col invid epos = listTextPictureAt 144 0 cfig (selNumPos invid w) . color col $ text $ eqPosText epos
|
||||
rboptions = if ButtonRight `M.member` _mouseButtons w
|
||||
then drawRBOptions cfig w (_rbOptions w)
|
||||
rboptions = if ButtonRight `M.member` _mouseButtons (_cWorld w)
|
||||
then drawRBOptions cfig w (_rbOptions (_cWorld w))
|
||||
else mempty
|
||||
|
||||
itmInfo :: Maybe Item -> [String]
|
||||
@@ -151,7 +151,7 @@ itmInfo mit = fromMaybe [] $ do
|
||||
|
||||
displayTerminal :: Int -> Configuration -> World -> Picture
|
||||
displayTerminal tid cfig w = fromMaybe mempty $ do
|
||||
tm <- w ^? terminals . ix tid
|
||||
tm <- w ^? cWorld . terminals . ix tid
|
||||
return $ pictures
|
||||
[ invHead cfig (_tmTitle tm ++ ":T" ++ show tid)
|
||||
, renderListAt subInvX 60 cfig
|
||||
@@ -187,7 +187,7 @@ drawRBOptions cfig w EquipOptions{_opEquip = es,_opSel=i, _opAllocateEquipment=a
|
||||
where
|
||||
midtext str = listTextPictureAt 252 0 cfig curpos (text str)
|
||||
extratext str = listTextPictureAt 432 0 cfig curpos (text (str ++ deactivatetext))
|
||||
deactivatetext = case w ^? rbOptions . opActivateEquipment . deactivateEquipment of
|
||||
deactivatetext = case w ^? cWorld . rbOptions . opActivateEquipment . deactivateEquipment of
|
||||
Just k -> " DEACTIVATES " ++ show (_iyBase $ _itType (_crInv (you w) IM.! k))
|
||||
Nothing -> ""
|
||||
curpos = invSelPos w
|
||||
@@ -255,9 +255,9 @@ topCursorTypeWidth ctype width cfig w i
|
||||
= ctype 0 0 cfig (selNumPos i w) (selNumCol i w) width (selNumSlots i w)
|
||||
|
||||
determineInvSelCursorWidth :: World -> Int
|
||||
determineInvSelCursorWidth w = case _rbOptions w of
|
||||
determineInvSelCursorWidth w = case _rbOptions (_cWorld w) of
|
||||
NoRightButtonOptions -> topInvW
|
||||
EquipOptions {} -> if ButtonRight `M.member` _mouseButtons w
|
||||
EquipOptions {} -> if ButtonRight `M.member` _mouseButtons (_cWorld w)
|
||||
then 47
|
||||
else topInvW
|
||||
|
||||
@@ -309,9 +309,9 @@ drawCarte cfig w = pictures $
|
||||
++ mapOverlay cfig w
|
||||
++ [mainListCursor white iPos cfig]
|
||||
where
|
||||
iPos = _selLocation w
|
||||
locs = map (\(_,s) -> (s,white)) . IM.elems . _seenLocations $ w
|
||||
locPoss = map (cartePosToScreen cfig w . ($ w) . doWorldPos . fst) . IM.elems . _seenLocations $ w
|
||||
iPos = _selLocation (_cWorld w)
|
||||
locs = map (\(_,s) -> (s,white)) . IM.elems . _seenLocations $ (_cWorld w)
|
||||
locPoss = map (cartePosToScreen cfig w . ($ w) . doWorldPos . fst) . IM.elems . _seenLocations $ (_cWorld w)
|
||||
locTexts = map fst locs
|
||||
|
||||
displayListEndCoords :: Configuration -> [String] -> [Point2]
|
||||
@@ -325,7 +325,7 @@ displayListEndCoords cfig ss = map (doWindowScale cfig) $ zipWith h ss $ map f [
|
||||
|
||||
mapOverlay :: Configuration -> World -> [Picture]
|
||||
mapOverlay cfig w = (color (withAlpha 0.5 black) . polygon $ reverse $ rectNSWE 1 (-1) 1 (-1)) :
|
||||
(mapMaybe (mapWall cfig w) . IM.elems $ _walls w)
|
||||
(mapMaybe (mapWall cfig w) . IM.elems $ _walls (_cWorld w))
|
||||
|
||||
mapWall :: Configuration -> World -> Wall -> Maybe Picture
|
||||
mapWall cfig w wl =
|
||||
@@ -419,4 +419,4 @@ displayHP cid cfig w = translate (halfWidth cfig-80) (halfHeight cfig-20)
|
||||
. leftPad 5 ' '
|
||||
. show
|
||||
. _crHP
|
||||
$ _creatures w IM.! cid
|
||||
$ _creatures (_cWorld w) IM.! cid
|
||||
|
||||
Reference in New Issue
Block a user