From f555a4bf05d9d0ccfb5fb29bfe95aa0b8c49581a Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 21 May 2022 21:53:49 +0100 Subject: [PATCH] Cleanup --- src/Dodge/Creature/ArmourChase.hs | 4 ++-- src/Dodge/Creature/Impulse/UseItem.hs | 4 ++-- src/Dodge/Creature/Picture.hs | 6 ++---- src/Dodge/Data.hs | 2 +- src/Dodge/Item/Draw.hs | 27 +++++++++++++++------------ src/Dodge/Item/Equipment.hs | 8 ++++---- src/Dodge/LockAndKey.hs | 2 +- src/Dodge/Room/Containing.hs | 2 +- src/Dodge/Room/LasTurret.hs | 2 +- src/Dodge/Room/LongDoor.hs | 2 +- src/Dodge/Room/LongRoom.hs | 2 +- src/Dodge/Room/SensorDoor.hs | 2 +- 12 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/Dodge/Creature/ArmourChase.hs b/src/Dodge/Creature/ArmourChase.hs index c2e9172bc..ed1be6e51 100644 --- a/src/Dodge/Creature/ArmourChase.hs +++ b/src/Dodge/Creature/ArmourChase.hs @@ -61,7 +61,7 @@ armourChaseCrit = chaseCrit ] , _crMvType = defaultChaseMvType {_mvTurnRad = f} } - & crEquipment . at OnChest .~ Just 0 - & crInvEquipped . at 0 .~ Just OnChest + & crEquipment . at OnChest ?~ 0 + & crInvEquipped . at 0 ?~ OnChest where f _ = 0.05 diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index c8aa45e54..e97c15217 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -48,8 +48,8 @@ toggleEquipmentAt invid itm cr = case cr ^? crInvEquipped . ix invid of equipUsingSite :: Int -> Item -> Creature -> Creature equipUsingSite invid itm cr = cr - & crInvEquipped . at invid .~ Just epos - & crEquipment . at epos .~ Just invid + & crInvEquipped . at invid ?~ epos + & crEquipment . at epos ?~ invid & removeOtherEquipment where epos = eqSiteToPos cr (_eqSite $ _itUse itm) diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 5808f6f28..95e9095a9 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -261,11 +261,9 @@ light4 = light . light . light . light drawEquipment :: Creature -> SPic {-# INLINE drawEquipment #-} -drawEquipment cr = mconcat $ map f $ IM.toList (_crInv cr) +drawEquipment cr = foldMap f (_crInv cr) where - f (i,it) = case it ^? itEquipPict of - Just g -> g cr i - _ -> emptyBlank + f itm = _itEquipPict itm cr itm circLine :: Float -> Picture circLine x = line [V2 0 0,V2 x 0] diff --git a/src/Dodge/Data.hs b/src/Dodge/Data.hs index a6f327d86..63ee84d2e 100644 --- a/src/Dodge/Data.hs +++ b/src/Dodge/Data.hs @@ -420,7 +420,7 @@ data Item = Item { _itName :: String , _itConsumption :: ItemConsumption , _itUse :: ItemUse - , _itEquipPict :: Creature -> Int -> SPic + , _itEquipPict :: Creature -> Item -> SPic , _itScroll :: Float -> Creature -> Item -> Item , _itType :: CombineType , _itAttachment :: ItAttachment diff --git a/src/Dodge/Item/Draw.hs b/src/Dodge/Item/Draw.hs index bb8c9d947..280583e3c 100644 --- a/src/Dodge/Item/Draw.hs +++ b/src/Dodge/Item/Draw.hs @@ -11,11 +11,11 @@ import Control.Lens import Data.Maybe pictureWeaponOnAim :: Creature - -> Int -- ^ Position of item in inventory + -> Item -> SPic -pictureWeaponOnAim cr i = pictureWeaponOnAimItem (itSPic it) cr i - where - it = _crInv cr IM.! i +pictureWeaponOnAim cr itm = case _itInvPos itm of + Just i -> pictureWeaponOnAimItem (itSPic itm) cr i + Nothing -> mempty itSPic :: Item -> SPic itSPic it = _dimSPic (_itDimension it) it @@ -23,11 +23,14 @@ itSPic it = _dimSPic (_itDimension it) it pictureWeaponAim :: (Item -> SPic) -> Creature - -> Int -- ^ Position of item in inventory + -> Item -- ^ Position of item in inventory -> SPic -pictureWeaponAim f cr i = pictureWeaponOnAimItem pic cr i - where - pic = f (_crInv cr IM.! i) +pictureWeaponAim = const +--pictureWeaponAim f cr itm = pictureWeaponOnAimItem pic cr i +-- where +-- pic = f itm +-- i = fromJust $ _itInvPos itm + --pic = f (_crInv cr IM.! i) {- | Places an item picture onto a creature when the item is selected. -} pictureWeaponOnAimItem @@ -84,10 +87,10 @@ twoFlatHRot cr = 2*strideRot cr pictureItem :: SPic -> Creature - -> Int -- ^ Position of item in inventory + -> Item -- ^ Position of item in inventory -> SPic -pictureItem p cr posInInv - | _crInvSel cr == posInInv = drawnWep - | otherwise = emptyBlank +pictureItem p cr itm = case _itInvPos itm of + Just posInInv | _crInvSel cr == posInInv -> drawnWep + _ -> emptyBlank where drawnWep = translateSPf (_crRad cr) 0 p diff --git a/src/Dodge/Item/Equipment.hs b/src/Dodge/Item/Equipment.hs index 0a2ff15db..0be47358e 100644 --- a/src/Dodge/Item/Equipment.hs +++ b/src/Dodge/Item/Equipment.hs @@ -65,10 +65,10 @@ frontArmour = defaultEquipment , _itEffect = NoItEffect , _itID = Nothing } -pictureOnEquip :: SPic -> Creature -> Int -> SPic -pictureOnEquip sp cr i - | isJust (cr ^? crInvEquipped . ix i) = sp - | otherwise = mempty +pictureOnEquip :: SPic -> Creature -> Item -> SPic +pictureOnEquip sp cr itm = case _itInvPos itm of + Just i | isJust (cr ^? crInvEquipped . ix i) -> sp + _ -> mempty flatShield :: Item flatShield = defaultEquipment diff --git a/src/Dodge/LockAndKey.hs b/src/Dodge/LockAndKey.hs index 8d6e65fa7..741b8e120 100644 --- a/src/Dodge/LockAndKey.hs +++ b/src/Dodge/LockAndKey.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.LockAndKey where import Dodge.Data import Dodge.Tree diff --git a/src/Dodge/Room/Containing.hs b/src/Dodge/Room/Containing.hs index 3b619652b..214fe797f 100644 --- a/src/Dodge/Room/Containing.hs +++ b/src/Dodge/Room/Containing.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.Room.Containing where import Dodge.Data import Dodge.Tree diff --git a/src/Dodge/Room/LasTurret.hs b/src/Dodge/Room/LasTurret.hs index b6e88c09f..40f8ffb77 100644 --- a/src/Dodge/Room/LasTurret.hs +++ b/src/Dodge/Room/LasTurret.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.Room.LasTurret where import Dodge.LevelGen.Data import Dodge.PlacementSpot diff --git a/src/Dodge/Room/LongDoor.hs b/src/Dodge/Room/LongDoor.hs index 62ee97ec0..7c968ff3f 100644 --- a/src/Dodge/Room/LongDoor.hs +++ b/src/Dodge/Room/LongDoor.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} {- | Rooms containing long doors, probably with a big reveal behind them. -} module Dodge.Room.LongDoor where diff --git a/src/Dodge/Room/LongRoom.hs b/src/Dodge/Room/LongRoom.hs index 038ce9175..cb4aa50f9 100644 --- a/src/Dodge/Room/LongRoom.hs +++ b/src/Dodge/Room/LongRoom.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.Room.LongRoom where import Dodge.RoomLink import Dodge.Tree diff --git a/src/Dodge/Room/SensorDoor.hs b/src/Dodge/Room/SensorDoor.hs index de02a4cae..ec6052134 100644 --- a/src/Dodge/Room/SensorDoor.hs +++ b/src/Dodge/Room/SensorDoor.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.Room.SensorDoor where import Dodge.LevelGen.Data import Dodge.PlacementSpot