This commit is contained in:
2025-08-27 18:55:25 +01:00
parent 86696deb56
commit 40d2d316cb
35 changed files with 316 additions and 431 deletions
+7 -1
View File
@@ -1,7 +1,13 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
Room layout (compact): Room layout (compact):
0 0,1,2,3
Layout with room names: Layout with room names:
Corridor-0 Corridor-0
|
6gon-1
|
defaultRoom-2
|
autoRect-3
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727 Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727 After 1 attempt(s), Successful generation of level with seed 7114951007332849727
1 rooms in total 4 rooms in total
+11 -1
View File
@@ -1,5 +1,15 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
0:teststart 0:teststart
|
1:TutDrop
0:0:Corridor 0:0:teststart
0:0:0:Corridor
1:0:6gon
|
1:1:defaultRoom
|
1:2:autoRect
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -30,7 +30,7 @@ annoToRoomTree an = case an of
i <- nextLayoutInt i <- nextLayoutInt
(functionlockroom, randomitemidentity) <- takeOne ls (functionlockroom, randomitemidentity) <- takeOne ls
lr <- zoom lyGen $ functionlockroom i lr <- zoom lyGen $ functionlockroom i
ii <- zoom lyGen $ randomitemidentity ii <- zoom lyGen randomitemidentity
keyroom <- zoom lyGen . fromJust $ lookup ii ks keyroom <- zoom lyGen . fromJust $ lookup ii ks
return $ return $
MTree MTree
+1 -1
View File
@@ -168,7 +168,7 @@ dropExcept :: Creature -> Int -> World -> World
dropExcept cr invid w = dropExcept cr invid w =
foldr (dropItem cr) w . IM.keys $ foldr (dropItem cr) w . IM.keys $
-- invid `IM.delete` _crInv cr -- invid `IM.delete` _crInv cr
invid `IM.delete` (_unNIntMap $ _crInv cr) invid `IM.delete` _unNIntMap (_crInv cr)
-- why not a cid (Int)? -- why not a cid (Int)?
dropItem :: Creature -> Int -> World -> World dropItem :: Creature -> Int -> World -> World
-8
View File
@@ -36,14 +36,6 @@ equipSitePQ = \case
translatePointToRightHand :: Creature -> Point3 -> Point3 translatePointToRightHand :: Creature -> Point3 -> Point3
translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID)) translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID))
--equipSitePQ :: EquipSite -> IM.IntMap Item -> Creature -> Point3Q
--equipSitePQ = \case
-- OnRightWrist -> rightHandPQ
-- OnLeftWrist -> leftHandPQ
-- OnBack -> backPQ
-- OnChest -> chestPQ
-- _ -> undefined
rightHandPQ :: Creature -> Point3Q rightHandPQ :: Creature -> Point3Q
rightHandPQ cr rightHandPQ cr
| oneH cr = (V3 11 (-3) 20, Q.qID) | oneH cr = (V3 11 (-3) 20, Q.qID)
+1 -1
View File
@@ -19,7 +19,7 @@ import Dodge.Item.Location
useItem :: Int -> Int -> World -> Maybe World useItem :: Int -> Int -> World -> Maybe World
useItem invid pt w = fmap (worldEventFlags . at InventoryChange ?~ ()) $ do useItem invid pt w = fmap (worldEventFlags . at InventoryChange ?~ ()) $ do
cr <- w ^? cWorld . lWorld . creatures . ix 0 cr <- w ^? cWorld . lWorld . creatures . ix 0
itmloc <- invIndents (fmap (\k -> w ^?! cWorld . lWorld . items . ix k) $ _crInv cr) ^? ix invid . _2 itmloc <- invIndents ((\k -> w ^?! cWorld . lWorld . items . ix k) <$> _crInv cr) ^? ix invid . _2
useItemLoc cr itmloc pt w useItemLoc cr itmloc pt w
useItemLoc :: Creature -> LocationDT OItem -> Int -> World -> Maybe World useItemLoc :: Creature -> LocationDT OItem -> Int -> World -> Maybe World
-3
View File
@@ -87,9 +87,6 @@ crAwayFromPost cr = case find sentinelGoal . _apGoal $ _crActionPlan cr of
sentinelGoal (SentinelAt _ _) = True sentinelGoal (SentinelAt _ _) = True
sentinelGoal _ = False sentinelGoal _ = False
--crCanShoot :: Creature -> Bool
--crCanShoot cr = crIsAiming cr && crWeaponReady cr
crInAimStance :: AimStance -> Creature -> Bool crInAimStance :: AimStance -> Creature -> Bool
crInAimStance as cr = cr ^? crStance . posture . aimStance == Just as crInAimStance as cr = cr ^? crStance . posture . aimStance == Just as
+2 -2
View File
@@ -156,11 +156,11 @@ updateDisplaySections w cfig =
cr = you w cr = you w
closeitms = closeitms =
IM.fromDistinctAscList . zip [0 ..] $ IM.fromDistinctAscList . zip [0 ..] $
mapMaybe (closeItemToSelectionItem w) (map _unNInt $ w ^. hud . closeItems) mapMaybe (closeItemToSelectionItem w . _unNInt) (w ^. hud . closeItems)
invitems = invitems =
IM.map IM.map
(uncurry (invSelectionItem w)) (uncurry (invSelectionItem w))
(invIndents $ fmap (\k -> w ^?! cWorld . lWorld . items . ix k) $ _crInv cr) (invIndents $ (\k -> w ^?! cWorld . lWorld . items . ix k) <$> _crInv cr)
filterSectionsPair :: filterSectionsPair ::
Bool -> -- check for whether filter is in focus, changes string at the end Bool -> -- check for whether filter is in focus, changes string at the end
+11 -7
View File
@@ -13,6 +13,7 @@ import Dodge.Wall.ForceField
import Dodge.Wall.Move import Dodge.Wall.Move
import Geometry import Geometry
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import NewInt
effectOnRemove :: Item -> Creature -> World -> World effectOnRemove :: Item -> Creature -> World -> World
effectOnRemove itm = case itm ^. itType of effectOnRemove itm = case itm ^. itType of
@@ -49,11 +50,14 @@ setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where where
i = _itParamID $ _itParams itm i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
invid = _ilInvID (_itLocation itm) handtrans = case w ^? cWorld . lWorld . items
handtrans = case cr ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k . itLocation . ilEquipSite . _Just of . ix (itm ^. itID . unNInt)
Just x -> translateToES cr x -- . g . itLocation
_ -> undefined . ilEquipSite
-- g . _Just of
-- | twists cr = (+.+.+ V3 (-5) 10 0) Just x -> translateToES cr x -- . g
-- | otherwise = id _ -> undefined
-- g
-- | twists cr = (+.+.+ V3 (-5) 10 0)
-- | otherwise = id
f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans
+1 -1
View File
@@ -33,7 +33,7 @@ useMagShield mt _ cr w =
} }
setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World
setWristShieldPos itm cr x w = moveWallIDUnsafe i wlline w setWristShieldPos itm cr x = moveWallIDUnsafe i wlline
where where
i = _itParamID $ _itParams itm i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
+1 -1
View File
@@ -128,4 +128,4 @@ intAnno f = do
zoom lyGen (f i) zoom lyGen (f i)
anRoom :: State StdGen Room -> Annotation anRoom :: State StdGen Room -> Annotation
anRoom t = AnTree $ zoom lyGen $ (tToBTree "anRoom" . return . cleatOnward <$> t) anRoom t = AnTree $ zoom lyGen (tToBTree "anRoom" . return . cleatOnward <$> t)
+24 -33
View File
@@ -419,8 +419,7 @@ itemSidePush = \case
applyInvLock :: Item -> Creature -> World -> World applyInvLock :: Item -> Creature -> World -> World
applyInvLock itm cr = case itemInvLock itm of applyInvLock itm cr = case itemInvLock itm of
i i | i > 0 && cid == 0 ->
| i > 0 && cid == 0 ->
(cWorld . lWorld . delayedEvents .:~ (i, UnlockInv)) . lockInv (cWorld . lWorld . delayedEvents .:~ (i, UnlockInv)) . lockInv
_ -> id _ -> id
where where
@@ -668,12 +667,11 @@ makeMuzzleFlare mz loc cr = case mz ^. mzFlareType of
--{-# OPTIONS -Wno-incomplete-uni-patterns #-} --{-# OPTIONS -Wno-incomplete-uni-patterns #-}
muzFlareAt :: Color -> Point3 -> Float -> World -> World muzFlareAt :: Color -> Point3 -> Float -> World -> World
muzFlareAt col tranv dir w = muzFlareAt col x dir w =
w & randGen .~ g w & randGen .~ g & cWorld . lWorld . flares <>~ thepic
& cWorld . lWorld . flares <>~ thepic
where where
thepic = thepic =
setLayer BloomLayer . translate3 tranv . color col . rotate dir . polygon $ setLayer BloomLayer . translate3 x . color col . rotate dir . polygon $
[ V2 0 0 [ V2 0 0
, V2 a (- b) , V2 a (- b)
, V2 c d , V2 c d
@@ -779,11 +777,7 @@ itemDetectorEffect itm mitid armitid cr w = fromMaybe w $ do
walkNozzle :: Muzzle -> Item -> World -> World walkNozzle :: Muzzle -> Item -> World -> World
walkNozzle mz itm w = walkNozzle mz itm w =
w w
& cWorld . lWorld . items & cWorld . lWorld . items . ix (itm ^. itID . unNInt) . itParams . nzAngle %~ f
. ix (itm ^. itID . unNInt)
. itParams
. nzAngle
%~ f
& randGen .~ g & randGen .~ g
where where
nz = _mzEffect mz nz = _mzEffect mz
@@ -1118,8 +1112,13 @@ mcUseHeld hit = case hit of
LASER -> mcShootLaser LASER -> mcShootLaser
_ -> mcShootAuto _ -> mcShootAuto
useGasParams :: Maybe (NewInt InvInt) useGasParams ::
-> Muzzle -> LocationDT OItem -> Creature -> World -> World Maybe (NewInt InvInt) ->
Muzzle ->
LocationDT OItem ->
Creature ->
World ->
World
useGasParams mmagid mz loc cr w = useGasParams mmagid mz loc cr w =
w w
& createGas gastype pressure pos dir cr & createGas gastype pressure pos dir cr
@@ -1319,25 +1318,17 @@ createProjectile ::
Creature -> Creature ->
World -> World ->
World World
createProjectile x pjtype magtree stab muz cr w = createProjectile x pjtype mtree stab muz cr w = fromMaybe (failsound w) $ do
w magitid <- mtree ^? dtValue . _1 . itID . unNInt
& ( fromMaybe failsound $ do ammoitem <- w ^? cWorld . lWorld . items . ix magitid
magid <- magtree ^? dtValue . _1 . itLocation . ilInvID let rdetonate =
ammoitem <- cr ^? crInv . ix magid >>= \k -> w ^? cWorld . lWorld . items . ix k (^. dtValue . _1 . itID) <$> find isrdet (mtree ^. dtLeft)
let rdetonate = rscreen =
(^. dtValue . _1 . itID) (^. dtValue . _1 . itID) <$> find isrscreen (mtree ^. dtLeft)
<$> find isrdet (magtree ^. dtLeft) aparams <-
rscreen = ((mtree ^? dtLeft) >>= find isampay >>= (^? dtValue . _1 . itType . ibtAttach . shellPayload))
(^. dtValue . _1 . itID) <|> magAmmoParams ammoitem ^? _Just . ampPayload
<$> find isrscreen (magtree ^. dtLeft) return . makesound $ createShell x rdetonate rscreen stab pjtype aparams muz cr w
aparams <-
((magtree ^? dtLeft) >>= find isampay >>= (^? dtValue . _1 . itType . ibtAttach . shellPayload))
-- <|> ammoitem ^? itConsumables . magParams . ampPayload
<|> magAmmoParams ammoitem ^? _Just . ampPayload
return $
createShell x rdetonate rscreen stab pjtype aparams muz cr
. startthesound
)
where where
isrdet :: DTree OItem -> Bool isrdet :: DTree OItem -> Bool
isrdet y = case y ^. dtValue . _2 of isrdet y = case y ^. dtValue . _2 of
@@ -1353,7 +1344,7 @@ createProjectile x pjtype magtree stab muz cr w =
_ -> False _ -> False
-- the sound should be moved to the projectile firing -- the sound should be moved to the projectile firing
startthesound = makesound =
soundMultiFrom soundMultiFrom
[CrWeaponSound (_crID cr) j | j <- [0 .. 3]] [CrWeaponSound (_crID cr) j | j <- [0 .. 3]]
(_crPos cr) (_crPos cr)
+7 -15
View File
@@ -6,27 +6,19 @@ import Dodge.Data.World
import LensHelp import LensHelp
inTextInputFocus :: World -> Bool inTextInputFocus :: World -> Bool
inTextInputFocus = isJust . inputFocusI inTextInputFocus = isJust . textInputFocus
inputFocusI :: World -> Maybe ((String -> Identity String) -> World -> Identity World) textInputFocus :: World -> Maybe ((String -> Identity String) -> World -> Identity World)
inputFocusI = textInputFocus textInputFocus w = case w ^. hud . subInventory of
NoSubInventory{} -> case he ^? diSelection . _Just . slSec of
textInputFocus ::
Applicative f =>
World ->
Maybe ((String -> f String) -> World -> f World)
textInputFocus w = case w ^? hud . subInventory of
Just NoSubInventory{} -> case he ^? diSelection . _Just . slSec of
Just (-1) -> Just $ hud . diInvFilter . _Just Just (-1) -> Just $ hud . diInvFilter . _Just
Just 2 -> Just $ hud . diCloseFilter . _Just Just 2 -> Just $ hud . diCloseFilter . _Just
_ -> Nothing _ -> Nothing
Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just . slSec of CombineInventory{} -> case he ^? subInventory . ciSelection . _Just . slSec of
Just (-1) -> Just $ hud . subInventory . ciFilter . _Just Just (-1) -> Just $ hud . subInventory . ciFilter . _Just
_ -> Nothing _ -> Nothing
Just DisplayTerminal{_termID = tmid} -> do DisplayTerminal{_termID = tmid} -> return
-- connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus $ cWorld . lWorld . terminals . ix tmid . tmStatus . tiText
-- guard $ connectionstatus == TerminalTextInput
return $ cWorld . lWorld . terminals . ix tmid . tmStatus . tiText
_ -> Nothing _ -> Nothing
where where
he = w ^. hud he = w ^. hud
+1 -2
View File
@@ -19,7 +19,6 @@ import Dodge.SoundLogic
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import NewInt import NewInt
-- should check that the item is not already in your inventory
-- this assumes that this item is currently on the floor -- this assumes that this item is currently on the floor
tryPutItemInInv :: Int -> Int -> World -> Maybe (NewInt InvInt, World) tryPutItemInInv :: Int -> Int -> World -> Maybe (NewInt InvInt, World)
tryPutItemInInv cid itid w = do tryPutItemInInv cid itid w = do
@@ -44,7 +43,7 @@ tryPutItemInInv cid itid w = do
where where
updateselectionextra i updateselectionextra i
| cid == 0 = (hud . diSelection . _Just . slSet %~ IS.map (f i)) | cid == 0 = (hud . diSelection . _Just . slSet %~ IS.map (f i))
. (hud . diSelection . _Just . slInt %~ (f i)) . (hud . diSelection . _Just . slInt %~ f i)
| otherwise = id | otherwise = id
f j i | i >= _unNInt j = i + 1 f j i | i >= _unNInt j = i + 1
| otherwise = i | otherwise = i
+1 -1
View File
@@ -1,4 +1,4 @@
{-# LANGUAGE TupleSections #-} --{-# LANGUAGE TupleSections #-}
module Dodge.Inventory.RBList ( module Dodge.Inventory.RBList (
updateRBList, updateRBList,
+16 -29
View File
@@ -1,29 +1,26 @@
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
module Dodge.Item.Draw (
itemSPic,
itemEquipPict,
) where
import qualified Quaternion as Q module Dodge.Item.Draw (itemEquipPict) where
import Dodge.Data.Equipment.Misc
import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Geometry.Data
import Control.Lens import Control.Lens
import Dodge.Creature.HandPos import Dodge.Creature.HandPos
import Dodge.Data.ComposedItem
import Dodge.Data.Creature import Dodge.Data.Creature
import Dodge.Data.DoubleTree
import Dodge.Data.Equipment.Misc
import Dodge.Item.Draw.SPic import Dodge.Item.Draw.SPic
import Dodge.Item.HeldOffset import Dodge.Item.HeldOffset
import Geometry.Data
import qualified Quaternion as Q
import ShapePicture import ShapePicture
itemEquipPict :: Creature -> DTree CItem -> SPic itemEquipPict :: Creature -> DTree CItem -> SPic
itemEquipPict cr itmtree itemEquipPict cr itmtree
| --Just i <- itm ^? itLocation . ilInvID | Just esite <- itm ^? itLocation . ilEquipSite . _Just
Just esite <- itm ^? itLocation . ilEquipSite . _Just , Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip =
, Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip equipPosition esite cr attachpos (itemSPic itm)
= equipPosition esite cr attachpos (itemSPic itm) | itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem =
| itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem overPosSP (Q.prePos $ handHandleOrient loc cr) (itemTreeSPic itmtree)
= overPosSP (Q.prePos $ handHandleOrient loc cr) (itemTreeSPic itmtree)
| otherwise = mempty | otherwise = mempty
where where
itm = itmtree ^. dtValue . _1 itm = itmtree ^. dtValue . _1
@@ -31,23 +28,13 @@ itemEquipPict cr itmtree
equipAttachPos :: EquipItemType -> Point3Q equipAttachPos :: EquipItemType -> Point3Q
equipAttachPos = \case equipAttachPos = \case
BATTERYPACK -> (V3 (-8) 0 10, Q.qID) BATTERYPACK -> (V3 (-8) 0 10, Q.qID)
FUELPACK -> (V3 (-9) 0 10, Q.qID) FUELPACK -> (V3 (-9) 0 10, Q.qID)
BULLETBELTPACK -> (V3 (-9) 0 10, Q.qID) BULLETBELTPACK -> (V3 (-9) 0 10, Q.qID)
BULLETBELTBRACER -> (V3 (-9) 0 10, Q.qID) BULLETBELTBRACER -> (V3 (-9) 0 10, Q.qID)
_ -> (0, Q.qID) _ -> (0, Q.qID)
equipPosition :: EquipSite -> Creature -> Point3Q -> SPic -> SPic equipPosition :: EquipSite -> Creature -> Point3Q -> SPic -> SPic
equipPosition es cr q = overPosSP equipPosition es cr q =
(\x -> fst $ equipSitePQ es cr `Q.comp` q `Q.comp` (x,Q.qID)) overPosSP
-- case epos of (\x -> fst $ equipSitePQ es cr `Q.comp` q `Q.comp` (x, Q.qID))
-- --OnLeftWrist -> translateToLeftWrist cr
-- --OnRightWrist -> translateToRightWrist cr
-- OnLeftWrist -> overPosSP (translateToES cr OnLeftWrist)
-- OnRightWrist -> overPosSP (translateToES cr OnRightWrist)
-- OnLegs ->
-- translateToLeftLeg cr
-- <> translateToRightLeg cr-- (mirrorSPxz sh)
-- OnHead -> overPosSP (translateToES cr OnHead)
-- OnChest -> overPosSP (translateToES cr OnChest)
-- OnBack -> overPosSP (\x -> fst $ backPQ cr `Q.comp` (p + x,Q.qID))
-76
View File
@@ -1,76 +0,0 @@
module Dodge.Item.Location.Initialize
( -- initSpecificCrItemLocations
--, initItemLocations
)
where
--import NewInt
--import Dodge.Data.LWorld
--import Control.Lens
--import qualified IntMapHelp as IM
--import Data.Traversable
--initItemLocations :: LWorld -> LWorld
----initItemLocations = initCrsItemLocations . initFlItemsLocations . initTusItemLocations
--initItemLocations = initCrsItemLocations -- . initTusItemLocations
--
--initCrsItemLocations :: LWorld -> LWorld
--initCrsItemLocations w = w' & creatures .~ newcreatures
-- where
-- (w', newcreatures) = mapAccumR initCrItemLocations w (w ^. creatures)
--
----initFlItemsLocations :: LWorld -> LWorld
----initFlItemsLocations w = w' & floorItems .~ newfloorItems
---- where
---- (w', newfloorItems) = mapAccumR initFlItemLocation w (w ^. floorItems)
--
----initTusItemLocations :: LWorld -> LWorld
----initTusItemLocations w = w' & machines .~ newmachines
---- where
---- (w', newmachines) = mapAccumR initTuItemLocation w (w ^. machines)
--
--initSpecificCrItemLocations :: Int -> LWorld -> LWorld
--initSpecificCrItemLocations crid w = w' & creatures . ix crid .~ newcr
-- where
-- (w',newcr) = initCrItemLocations w (w ^?! creatures . ix crid)
--
--initCrItemLocations :: LWorld -> Creature -> (LWorld, Creature)
--initCrItemLocations w cr = (w', cr & crInv .~ newinv)
-- where
-- (w',newinv) = imapAccumR (initCrItemLocation cr) w (_crInv cr)
--
---- does not worry about creature manipulation for now
--initCrItemLocation :: Creature -> Int -> LWorld -> Int -> (LWorld,Item)
--initCrItemLocation cr invid w itid = (w & itemLocations . at locid ?~ loc
-- ,it & itID .~ NInt locid
-- & itLocation .~ loc)
-- where
-- locid = IM.newKey ( w ^. itemLocations)
-- loc = InInv
-- { _ilCrID = _crID cr
-- , _ilInvID = invid
-- , _ilIsRoot = False
-- , _ilIsSelected = False
-- , _ilIsAttached = False
-- , _ilEquipSite = Nothing
-- }
--
--
----initFlItemLocation :: LWorld -> FloorItem -> (LWorld, FloorItem)
----initFlItemLocation w flit = (w & itemLocations . at locid ?~ loc
---- , flit & flIt . itID .~ NInt locid
---- & flIt . itLocation .~ loc
---- )
---- where
---- locid = IM.newKey (w ^. itemLocations )
---- loc = OnFloor (_flItID flit)
--
----initTuItemLocation :: LWorld -> Machine -> (LWorld, Machine)
----initTuItemLocation w mc = case mc ^? mcType . _McTurret . tuWeapon of
---- Nothing -> (w, mc)
---- Just _ ->
---- let locid = IM.newKey ( w ^. itemLocations)
---- loc = OnTurret (_mcID mc)
---- in ( w & itemLocations . at locid ?~ loc
---- , mc & mcType . _McTurret . tuWeapon . itID .~ NInt locid
---- & mcType . _McTurret . tuWeapon . itLocation .~ loc
---- )
+1 -1
View File
@@ -154,7 +154,7 @@ mcProxTest :: Machine -> World -> Bool
mcProxTest mc w = case mc ^? mcType . _McSensor . proxRequirement of mcProxTest mc w = case mc ^? mcType . _McSensor . proxRequirement of
Just (RequireHealth x) -> _crHP cr >= x Just (RequireHealth x) -> _crHP cr >= x
Just (RequireEquipment ct) -> any (\itm -> _itType itm == ct) Just (RequireEquipment ct) -> any (\itm -> _itType itm == ct)
(fmap (\k -> w ^?! cWorld . lWorld . items . ix k) $ _crInv cr) ((\k -> w ^?! cWorld . lWorld . items . ix k) <$> _crInv cr)
_ -> False _ -> False
where where
cr = you w cr = you w
+30 -22
View File
@@ -1,12 +1,12 @@
{-# LANGUAGE LambdaCase #-}
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} {-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
{- | deals with placement of objects within the world {- | deals with placement of objects within the world
after they have had their coordinates set by the layout after they have had their coordinates set by the layout
-} -}
module Dodge.Placement.PlaceSpot (placeSpot) where module Dodge.Placement.PlaceSpot (placeSpot) where
import NewInt
import Color import Color
import LensHelp
import Control.Monad.State import Control.Monad.State
import Data.Bifunctor import Data.Bifunctor
import Data.Foldable import Data.Foldable
@@ -21,6 +21,8 @@ import Dodge.Placement.Shift
import Dodge.ShiftPoint import Dodge.ShiftPoint
import Geometry import Geometry
import qualified IntMapHelp as IM import qualified IntMapHelp as IM
import LensHelp
import NewInt
import System.Random import System.Random
-- when placing a placement, we update the world and the room and assign an id -- when placing a placement, we update the world and the room and assign an id
@@ -109,17 +111,21 @@ placeSpotID' ps pt w = case pt of
PutProp prp -> plNewUpID (cWorld . lWorld . props) prID (mvProp p rot prp) w PutProp prp -> plNewUpID (cWorld . lWorld . props) prID (mvProp p rot prp) w
PutButton bt -> plNewUpID (cWorld . lWorld . buttons) btID (mvButton p rot bt) w PutButton bt -> plNewUpID (cWorld . lWorld . buttons) btID (mvButton p rot bt) w
PutTerminal tm -> plNewUpID (cWorld . lWorld . terminals) tmID tm w PutTerminal tm -> plNewUpID (cWorld . lWorld . terminals) tmID tm w
PutFlIt itm -> let i = IM.newKey (w ^. cWorld . lWorld . items) PutFlIt itm ->
in (i, w let i = IM.newKey (w ^. cWorld . lWorld . items)
& cWorld . lWorld . floorItems . at i ?~ createFlIt p rot in ( i
& cWorld . lWorld . items . at i ?~ (itm & itID .~ NInt i , w
& itLocation .~ OnFloor) & cWorld . lWorld . floorItems . at i ?~ FlIt p rot
& cWorld . lWorld . items . at i
?~ ( itm & itID .~ NInt i
& itLocation .~ OnFloor
)
) )
-- plNewUpID -- plNewUpID
-- (cWorld . lWorld . floorItems . unNIntMap) -- (cWorld . lWorld . floorItems . unNIntMap)
-- (flItID . unNInt) -- (flItID . unNInt)
-- (createFlIt p rot itm) -- (createFlIt p rot itm)
-- w -- w
PutCrit cr -> plNewUpID (cWorld . lWorld . creatures) crID (mvCr p rot cr) w PutCrit cr -> plNewUpID (cWorld . lWorld . creatures) crID (mvCr p rot cr) w
PutForeground fs -> plNewUpID (cWorld . lWorld . foregroundShapes) fsID (mvFS p rot fs) w PutForeground fs -> plNewUpID (cWorld . lWorld . foregroundShapes) fsID (mvFS p rot fs) w
PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w
@@ -181,10 +187,6 @@ mvProp p a = (prRot +~ a) . (prPos %~ ((p +.+) . rotateV a))
mvButton :: Point2 -> Float -> Button -> Button mvButton :: Point2 -> Float -> Button -> Button
mvButton p a = (btRot +~ a) . (btPos %~ ((p +.+) . rotateV a)) mvButton p a = (btRot +~ a) . (btPos %~ ((p +.+) . rotateV a))
{- Creates a floor item at a given point.-}
createFlIt :: Point2 -> Float -> FloorItem
createFlIt p rot = FlIt{_flItPos = p, _flItRot = rot}
mvPP :: Point2 -> Float -> PressPlate -> PressPlate mvPP :: Point2 -> Float -> PressPlate -> PressPlate
mvPP p rot pp = pp{_ppPos = p, _ppRot = rot} mvPP p rot pp = pp{_ppPos = p, _ppRot = rot}
@@ -194,8 +196,9 @@ mvCr p rot cr = cr{_crPos = p, _crOldPos = p, _crDir = rot}
mvFS :: Point2 -> Float -> ForegroundShape -> ForegroundShape mvFS :: Point2 -> Float -> ForegroundShape -> ForegroundShape
mvFS p a = (fsDir +~ a) . (fsPos %~ ((p +.+) . rotateV a)) mvFS p a = (fsDir +~ a) . (fsPos %~ ((p +.+) . rotateV a))
plMachine :: [Point2] -> Machine -> Wall -> Maybe Item -> Point2 -> Float -> World -> (Int, World) plMachine ::
plMachine wallpoly mc wl mitm = case mitm of [Point2] -> Machine -> Wall -> Maybe Item -> Point2 -> Float -> World -> (Int, World)
plMachine wallpoly mc wl = \case
Nothing -> plMachine' wallpoly mc wl Nothing -> plMachine' wallpoly mc wl
Just itm -> plTurret wallpoly mc wl itm Just itm -> plTurret wallpoly mc wl itm
@@ -207,15 +210,20 @@ plTurret wallpoly mc wl itm p rot gw =
& cWorld . lWorld . items . at itid ?~ itm' & cWorld . lWorld . items . at itid ?~ itm'
) )
where where
itm' = itm & itID .~ NInt itid itm' =
& itLocation .~ OnTurret mcid itm & itID .~ NInt itid
& itLocation .~ OnTurret mcid
itid = IM.newKey $ gw ^. cWorld . lWorld . items itid = IM.newKey $ gw ^. cWorld . lWorld . items
col = _mcColor mc col = _mcColor mc
mcid = IM.newKey $ gw ^. cWorld . lWorld . machines mcid = IM.newKey $ gw ^. cWorld . lWorld . machines
wlid = IM.newKey $ gw ^. cWorld . lWorld . walls wlid = IM.newKey $ gw ^. cWorld . lWorld . walls
wlids = IS.fromList [wlid .. wlid + length wallpoly - 1] wlids = IS.fromList [wlid .. wlid + length wallpoly - 1]
addMc = IM.insert mcid (mc{_mcPos = p, _mcDir = rot, _mcID = mcid, _mcWallIDs = wlids} addMc =
& mcType . mctTurret . tuWeapon .~ itid) IM.insert
mcid
( mc{_mcPos = p, _mcDir = rot, _mcID = mcid, _mcWallIDs = wlids}
& mcType . mctTurret . tuWeapon .~ itid
)
plMachine' :: [Point2] -> Machine -> Wall -> Point2 -> Float -> World -> (Int, World) plMachine' :: [Point2] -> Machine -> Wall -> Point2 -> Float -> World -> (Int, World)
plMachine' wallpoly mc wl p rot gw = plMachine' wallpoly mc wl p rot gw =
-2
View File
@@ -43,8 +43,6 @@ createShell (p,q) mdetonator mscreen stab pjtype payload muz cr w =
, _pjPayload = payload , _pjPayload = payload
, _pjTimer = lifespan , _pjTimer = lifespan
, _pjBarrelSpin = bs , _pjBarrelSpin = bs
-- , _pjUpdates =
-- anyspin
, _pjType = pjtype , _pjType = pjtype
, _pjDetonatorID = mdetonator , _pjDetonatorID = mdetonator
, _pjScreenID = mscreen , _pjScreenID = mscreen
-2
View File
@@ -209,8 +209,6 @@ doThrust pj smoke w =
(sparkD, _) = randomR (-0.2, 0.2) $ _randGen w (sparkD, _) = randomR (-0.2, 0.2) $ _randGen w
r1 = randInCirc 10 & evalState $ _randGen w r1 = randInCirc 10 & evalState $ _randGen w
-- there doesn't seem to be a more sensible way to filter the first occurence of
-- a list than deleteBy
doBarrelSpin :: Int -> Float -> Projectile -> World -> World doBarrelSpin :: Int -> Float -> Projectile -> World -> World
doBarrelSpin cid i pj w = doBarrelSpin cid i pj w =
w & cWorld . lWorld . projectiles . ix pjid . pjSpin .~ newSpin w & cWorld . lWorld . projectiles . ix pjid . pjSpin .~ newSpin
+3 -2
View File
@@ -2,6 +2,7 @@ module Dodge.Render.ShapePicture (
worldSPic, worldSPic,
) where ) where
import Dodge.Item.Draw.SPic
import Control.Lens import Control.Lens
import Data.Foldable import Data.Foldable
import Data.Strict.Tuple import Data.Strict.Tuple
@@ -30,7 +31,7 @@ worldSPic cfig u =
<> foldup (shiftDraw' _cpPos _cpDir _cpSPic) (filtOn _cpPos _corpses) <> foldup (shiftDraw' _cpPos _cpDir _cpSPic) (filtOn _cpPos _corpses)
<> foldup (drawCreature (u ^. uvWorld . cWorld . lWorld . items)) <> foldup (drawCreature (u ^. uvWorld . cWorld . lWorld . items))
(filtOn _crPos _creatures) (filtOn _crPos _creatures)
<> foldup (Prelude.uncurry floorItemSPic) (IM.intersectionWith (,) (u^.uvWorld.cWorld.lWorld.items) (filtOn _flItPos (_floorItems))) <> foldup (Prelude.uncurry floorItemSPic) (IM.intersectionWith (,) (u^.uvWorld.cWorld.lWorld.items) (filtOn _flItPos _floorItems))
<> foldup btSPic (filtOn _btPos _buttons) <> foldup btSPic (filtOn _btPos _buttons)
<> foldup (mcSPic (u ^. uvWorld . cWorld . lWorld)) (filtOn _mcPos _machines) <> foldup (mcSPic (u ^. uvWorld . cWorld . lWorld)) (filtOn _mcPos _machines)
<> foldMap' drawChasm (u ^. uvWorld . cWorld . chasms) <> foldMap' drawChasm (u ^. uvWorld . cWorld . chasms)
@@ -123,7 +124,7 @@ floorItemSPic itm flit =
uncurryV translateSPxy (_flItPos flit) $ uncurryV translateSPxy (_flItPos flit) $
rotateSP rotateSP
(_flItRot flit) (_flItRot flit)
(itemSPic $ itm) (itemSPic itm)
btSPic :: Button -> SPic btSPic :: Button -> SPic
btSPic bt = btSPic bt =
+3 -4
View File
@@ -42,7 +42,7 @@ lightSensInsideDoor i rm =
, psPt atFstLnkOut (PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100))) , psPt atFstLnkOut (PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100)))
, psPt atFstLnkOut (PutForeground $ verticalWire (V2 20 0) 0 80) , psPt atFstLnkOut (PutForeground $ verticalWire (V2 20 0) 0 80)
] ]
& rmOutPmnt . at i ?~ (sensAboveDoor LaserSensor 10 (atFstLnkOutShiftInward 100)) & rmOutPmnt . at i ?~ sensAboveDoor LaserSensor 10 (atFstLnkOutShiftInward 100)
lightSensByDoor :: Int -> Room -> Room lightSensByDoor :: Int -> Room -> Room
lightSensByDoor i rm = lightSensByDoor i rm =
@@ -52,7 +52,7 @@ lightSensByDoor i rm =
, heightWallPS (atNthLnkOutShiftInward 1 100) 30 covershape , heightWallPS (atNthLnkOutShiftInward 1 100) 30 covershape
, heightWallPS (atFstLnkOutShiftInward 100) 30 covershape , heightWallPS (atFstLnkOutShiftInward 100) 30 covershape
] ]
& rmOutPmnt . at i ?~ (sensAboveDoor LaserSensor 20 (atFstLnkOutShiftBy sensorshift)) & rmOutPmnt . at i ?~ sensAboveDoor LaserSensor 20 (atFstLnkOutShiftBy sensorshift)
where where
covershape = rectNSWE 10 (-10) (-20) 20 covershape = rectNSWE 10 (-10) (-20) 20
sensorshift (p, a) = (p +.+ rotateV a (V2 60 (-20)), a) sensorshift (p, a) = (p +.+ rotateV a (V2 60 (-20)), a)
@@ -82,11 +82,10 @@ analyserByNthLink n proxreq i rm =
.++~ [ psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80 .++~ [ psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80
] ]
& rmOutPmnt . at i ?~ & rmOutPmnt . at i ?~
( analyser analyser
proxreq proxreq
(atNthLnkOutShiftBy n (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a))) (atNthLnkOutShiftBy n (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a)))
(atNthLnkOutShiftBy n sensorshift) (atNthLnkOutShiftBy n sensorshift)
)
where where
sensorshift (p, a) = (p +.+ rotateV a (V2 (-30) (-10)), a) sensorshift (p, a) = (p +.+ rotateV a (V2 (-30) (-10)), a)
+1 -1
View File
@@ -66,4 +66,4 @@ sensInsideDoor senseType i rm = rm
(textTerminal & tmCommands .:~ TCDamageCommand) (textTerminal & tmCommands .:~ TCDamageCommand)
& plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10) & plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10)
] ]
& rmOutPmnt . at i ?~ (sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100)) & rmOutPmnt . at i ?~ sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100)
+2 -2
View File
@@ -42,9 +42,9 @@ import TreeHelp
tutAnoTree :: Annotation tutAnoTree :: Annotation
tutAnoTree = tutAnoTree =
OnwardList $ OnwardList
[ AnTree $ return $ tToBTree "teststart" $ return $ cleatOnward corridor [ AnTree $ return $ tToBTree "teststart" $ return $ cleatOnward corridor
-- , AnTree $ tutDrop , AnTree $ tutDrop
---- , AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox ---- , AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
-- , AnTree corDoor -- , AnTree corDoor
-- , AnTree $ tutRooms -- , AnTree $ tutRooms
+3 -2
View File
@@ -52,10 +52,11 @@ addDoorAtNthLinkToggleTerminal j xs i = (rmName .++~ "doorToggle-")
addWarningTerminal :: String -> Int -> Room -> Room addWarningTerminal :: String -> Int -> Room -> Room
addWarningTerminal str = addDoorToggleTerminal (makeColorTermLine red "WARNING" : makeTermPara str) addWarningTerminal str = addDoorToggleTerminal
(makeColorTermLine red "WARNING" : makeTermPara str)
lineOutputTerminal :: [TerminalLine] -> Terminal lineOutputTerminal :: [TerminalLine] -> Terminal
lineOutputTerminal tls = defaultTerminal & tmBootLines .~ connectionBlurbLines tls lineOutputTerminal tls = defaultTerminal & tmBootLines .~ textInputBlurb tls
moveToSideNthOutLink :: Int -> RoomPos -> Room -> Maybe (Point2, Float) moveToSideNthOutLink :: Int -> RoomPos -> Room -> Maybe (Point2, Float)
moveToSideNthOutLink i rp rm = do moveToSideNthOutLink i rp rm = do
+4 -7
View File
@@ -2,7 +2,7 @@
module Dodge.Terminal ( module Dodge.Terminal (
makeTermLine, makeTermLine,
connectionBlurbLines, textInputBlurb,
textTerminal, textTerminal,
simpleTermMessage, simpleTermMessage,
damageCodeCommand, damageCodeCommand,
@@ -33,19 +33,16 @@ import LensHelp
import Sound.Data import Sound.Data
textTerminal :: Terminal textTerminal :: Terminal
textTerminal = defaultTerminal{_tmBootLines = connectionBlurb} textTerminal = defaultTerminal{_tmBootLines = textInputBlurb []}
connectionBlurbLines :: [TerminalLine] -> [TerminalLine] textInputBlurb :: [TerminalLine] -> [TerminalLine]
connectionBlurbLines tls = textInputBlurb tls =
[ termSoundLine computerBeepingS [ termSoundLine computerBeepingS
, TLine 0 [TerminalLineConst "LOADING TEXT INTERFACE..." termTextColor] TmWdId , TLine 0 [TerminalLineConst "LOADING TEXT INTERFACE..." termTextColor] TmWdId
] ]
++ tls ++ tls
++ [TLine 10 [TerminalLineConst "READY FOR INPUT" termTextColor] (TmTmSetStatus (TerminalTextInput ""))] ++ [TLine 10 [TerminalLineConst "READY FOR INPUT" termTextColor] (TmTmSetStatus (TerminalTextInput ""))]
connectionBlurb :: [TerminalLine]
connectionBlurb = connectionBlurbLines []
termSoundLine :: SoundID -> TerminalLine termSoundLine :: SoundID -> TerminalLine
termSoundLine sid = TLine 0 [] (TmWdWdTermSound sid) termSoundLine sid = TLine 0 [] (TmWdWdTermSound sid)
+1 -3
View File
@@ -1,6 +1,4 @@
module Dodge.Terminal.Color ( module Dodge.Terminal.Color (termScreenColor) where
termScreenColor,
) where
import Dodge.Data.Terminal.Status import Dodge.Data.Terminal.Status
import Dodge.Data.Terminal import Dodge.Data.Terminal
-1
View File
@@ -364,7 +364,6 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
mpos = w ^. input . mousePos mpos = w ^. input . mousePos
disss = w ^. hud . diSections disss = w ^. hud . diSections
invdrag i' = fromMaybe (OverInvDrag i' Nothing) $ do invdrag i' = fromMaybe (OverInvDrag i' Nothing) $ do
-- sss <- w ^? hud . diSections
(i, j) <- inverseSelNumPos cfig invDP mpos disss (i, j) <- inverseSelNumPos cfig invDP mpos disss
return $ OverInvDrag i' (Just (i, j)) return $ OverInvDrag i' (Just (i, j))
overinv = do overinv = do
+1 -1
View File
@@ -545,7 +545,7 @@ tryCombine (i, j) w = fromMaybe w $ do
. ciSections . ix i . ssItems . ix j . siPayload . _Just . ciSections . ix i . ssItems . ix j . siPayload . _Just
p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
return $ return $
(createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is))) createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is))
& soundStart InventorySound p wrench1S Nothing & soundStart InventorySound p wrench1S Nothing
& hud . diSelection . _Just . slSet .~ mempty & hud . diSelection . _Just . slSet .~ mempty
+33 -48
View File
@@ -3,22 +3,22 @@ module Dodge.Update.Scroll (
updateWheelEvent, updateWheelEvent,
) where ) where
import NewInt
import Control.Applicative import Control.Applicative
import qualified Data.ListTrie.Patricia.Map.Enum as PTE
import Dodge.Data.Terminal.Status
import Dodge.Data.EquipType
import Padding
import Control.Monad import Control.Monad
import qualified Data.ListTrie.Patricia.Map.Enum as PTE
import qualified Data.Map.Strict as M import qualified Data.Map.Strict as M
import Data.Maybe import Data.Maybe
import Dodge.Base import Dodge.Base
import Dodge.Data.EquipType
import Dodge.Data.Terminal.Status
import Dodge.Data.Universe import Dodge.Data.Universe
import Dodge.Inventory import Dodge.Inventory
import Dodge.SelectionSections import Dodge.SelectionSections
import Dodge.Terminal import Dodge.Terminal
import Geometry import Geometry
import LensHelp import LensHelp
import NewInt
import Padding
import SDL import SDL
-- yi should be nonzero -- yi should be nonzero
@@ -33,7 +33,7 @@ updateWheelEvent yi w = case w ^. hud . subInventory of
-- yi should be nonzero -- yi should be nonzero
updateBaseWheelEvent :: Int -> World -> World updateBaseWheelEvent :: Int -> World -> World
updateBaseWheelEvent yi w updateBaseWheelEvent yi w
-- | Just True <- w ^? cWorld . lWorld . creatures . ix 0 . crInvLock = w -- | Just True <- w ^? cWorld . lWorld . creatures . ix 0 . crInvLock = w
| Just True <- w ^? cWorld . lWorld . lInvLock = w | Just True <- w ^? cWorld . lWorld . lInvLock = w
| bdown ButtonRight = case _rbState w of | bdown ButtonRight = case _rbState w of
EquipOptions{} -> w & rbState . opSel %~ scrollRBOption yi rbscrollmax EquipOptions{} -> w & rbState . opSel %~ scrollRBOption yi rbscrollmax
@@ -56,8 +56,9 @@ selectedItemScroll yi w = do
itemScroll :: Int -> Item -> World -> World itemScroll :: Int -> Item -> World -> World
itemScroll yi itm w itemScroll yi itm w
| Just xs <- itm ^? itUse . uaParams . apProjectiles = w | Just xs <- itm ^? itUse . uaParams . apProjectiles =
& itmlens . itUse . uaParams . apProjectiles .~ rotateList yi xs w
& itmlens . itUse . uaParams . apProjectiles .~ rotateList yi xs
| ATTACH ZOOMSCOPE <- itm ^. itType = updateScopeZoom (itm ^. itID) w | ATTACH ZOOMSCOPE <- itm ^. itType = updateScopeZoom (itm ^. itID) w
| HELD ALTERIFLE <- itm ^. itType | HELD ALTERIFLE <- itm ^. itType
, yi /= 0 = , yi /= 0 =
@@ -65,8 +66,9 @@ itemScroll yi itm w
& itmlens . itParams . alteRifleSwitch & itmlens . itParams . alteRifleSwitch
%~ ((`mod` 2) . (+ 1)) %~ ((`mod` 2) . (+ 1))
| isJust $ itm ^? itScroll . itsInt = w & itmlens . itScroll . itsInt +~ yi | isJust $ itm ^? itScroll . itsInt = w & itmlens . itScroll . itsInt +~ yi
| Just y <- itm ^? itScroll . itsMax = w & itmlens . itScroll . itsRangeInt | Just y <- itm ^? itScroll . itsMax =
%~ ((`mod` y) . (+ yi)) w & itmlens . itScroll . itsRangeInt
%~ ((`mod` y) . (+ yi))
| otherwise = w | otherwise = w
where where
--itmlens = cWorld . lWorld . creatures . ix 0 . crInv . ix invid --itmlens = cWorld . lWorld . creatures . ix 0 . crInv . ix invid
@@ -140,77 +142,60 @@ terminalWheelEvent yi tmid w
wrapdown s coms = PTE.findPredecessor s coms <|> PTE.findMax coms wrapdown s coms = PTE.findPredecessor s coms <|> PTE.findMax coms
f tm = fromMaybe tm $ do f tm = fromMaybe tm $ do
let coms = getCommands w tm let coms = getCommands w tm
x <- tm ^? tmStatus . tiText x <- tm ^? tmStatus . tiText
let s = fromMaybe "" $ x ^? to words . ix 0 let s = fromMaybe "" $ x ^? to words . ix 0
(s',_) <- dowrap s coms (s', _) <- dowrap s coms
return $ tm & tmStatus . tiText .~ s' return $ tm & tmStatus . tiText .~ s'
g tm = fromMaybe tm $ do g tm = fromMaybe tm $ do
let coms = getCommands w tm let coms = getCommands w tm
x <- tm ^? tmStatus . tiText x <- tm ^? tmStatus . tiText
let s = fromMaybe "" $ x ^? to words . ix 0 let s = fromMaybe "" $ x ^? to words . ix 0
y = fromMaybe "" $ x ^? to words . ix 1 y = fromMaybe "" $ x ^? to words . ix 1
-- (s',m) <- fmap (s,) (PTE.lookup s coms) <|> dowrap s coms (s', arg, _) <-
-- (arg,_) <- dowrap y m if yi > 0
(s',arg,_) <- if yi > 0 then doubleFindSucc s y coms <|> doubleFindMin coms then doubleFindSucc s y coms <|> doubleFindMin coms
else doubleFindPred s y coms <|> doubleFindMax coms else doubleFindPred s y coms <|> doubleFindMax coms
return $ tm & tmStatus . tiText .~ s' ++ " " ++ arg return $ tm & tmStatus . tiText .~ s' ++ " " ++ arg
--case tm ^? tmInput . tiSel of
-- Nothing -> tm & tmInput . tiSel .~ (0, 0)
-- Just (i, _) ->
-- let newi = (i - yi) `mod` length (scrollCommandStrings w tm)
-- in tm & setInput newi 0
-- updatetermsubsel tm = case tm ^? tmInput . tiSel of
-- Nothing -> tm & tmInput . tiSel .~ (0, 0)
-- Just (i, j) ->
-- let newj = (j - yi) `mod` length (getArguments' (scrollCommands tm !! i) tm w)
-- in tm & setInput i newj
-- setInput i j tm =
-- tm
-- & tmInput . tiSel .~ (i, j)
-- & tmStatus . tiText .~ comstr ++ arg
-- where
-- comstr = scrollCommandStrings w tm !! i
-- tc = scrollCommands tm !! i
-- arg = getArguments' tc tm w !! j
doubleFindMin :: (Enum a,Enum b) => PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a],[b],c) doubleFindMin :: (Enum a, Enum b) => PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a], [b], c)
doubleFindMin m = do doubleFindMin m = do
(x,n) <- PTE.findMin m (x, n) <- PTE.findMin m
case PTE.findMin n of case PTE.findMin n of
Just (y,z) -> Just (x,y,z) Just (y, z) -> Just (x, y, z)
Nothing -> Nothing Nothing -> Nothing
doubleFindSucc :: (Enum a,Enum b) => [a] -> [b] -> PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a],[b],c) doubleFindSucc :: (Enum a, Enum b) => [a] -> [b] -> PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a], [b], c)
doubleFindSucc xs ys m = case PTE.lookup xs m of doubleFindSucc xs ys m = case PTE.lookup xs m of
Just m' -> case PTE.findSuccessor ys m' of Just m' -> case PTE.findSuccessor ys m' of
Just (ys',z) -> Just (xs,ys',z) Just (ys', z) -> Just (xs, ys', z)
Nothing -> dfs xs m Nothing -> dfs xs m
Nothing -> dfs xs m Nothing -> dfs xs m
where where
dfs xs' m' = case PTE.findSuccessor xs' m' of dfs xs' m' = case PTE.findSuccessor xs' m' of
Just (xs'',n) -> case PTE.findMin n of Just (xs'', n) -> case PTE.findMin n of
Just (ys',z) -> Just (xs'',ys',z) Just (ys', z) -> Just (xs'', ys', z)
Nothing -> dfs xs'' m' Nothing -> dfs xs'' m'
Nothing -> Nothing Nothing -> Nothing
-- there are edge cases where this doesn't behave as might be expected -- there are edge cases where this doesn't behave as might be expected
doubleFindMax :: (Enum a,Enum b) => PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a],[b],c) doubleFindMax :: (Enum a, Enum b) => PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a], [b], c)
doubleFindMax m = do doubleFindMax m = do
(x,n) <- PTE.findMax m (x, n) <- PTE.findMax m
case PTE.findMax n of case PTE.findMax n of
Just (y,z) -> Just (x,y,z) Just (y, z) -> Just (x, y, z)
Nothing -> Nothing Nothing -> Nothing
doubleFindPred :: (Enum a,Enum b) => [a] -> [b] -> PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a],[b],c) doubleFindPred ::
(Enum a, Enum b) => [a] -> [b] -> PTE.TrieMap a (PTE.TrieMap b c) -> Maybe ([a], [b], c)
doubleFindPred xs ys m = case PTE.lookup xs m of doubleFindPred xs ys m = case PTE.lookup xs m of
Just m' -> case PTE.findPredecessor ys m' of Just m' -> case PTE.findPredecessor ys m' of
Just (ys',z) -> Just (xs,ys',z) Just (ys', z) -> Just (xs, ys', z)
Nothing -> dfs xs m Nothing -> dfs xs m
Nothing -> dfs xs m Nothing -> dfs xs m
where where
dfs xs' m' = case PTE.findPredecessor xs' m' of dfs xs' m' = case PTE.findPredecessor xs' m' of
Just (xs'',n) -> case PTE.findMax n of Just (xs'', n) -> case PTE.findMax n of
Just (ys',z) -> Just (xs'',ys',z) Just (ys', z) -> Just (xs'', ys', z)
Nothing -> dfs xs'' m' Nothing -> dfs xs'' m'
Nothing -> Nothing Nothing -> Nothing
+3 -3
View File
@@ -93,9 +93,9 @@ doTmWdWd tmwdwd = case tmwdwd of
TmWdId -> const id TmWdId -> const id
TmWdWdPowerDownTerminal -> resetTerminal TerminalOff TmWdWdPowerDownTerminal -> resetTerminal TerminalOff
TmWdWdDeactivateTerminal -> resetTerminal TerminalDeactivated TmWdWdDeactivateTerminal -> resetTerminal TerminalDeactivated
TmWdWdTermSound sid -> \tm w -> TmWdWdTermSound sid -> \tm w -> fromMaybe w $ do
let tpos = fromMaybe 0 $ w ^? cWorld . lWorld . buttons . ix (_tmButtonID tm) . btPos tpos <- w ^? cWorld . lWorld . buttons . ix (_tmButtonID tm) . btPos
in soundStart TerminalSound tpos sid Nothing w return $ soundStart TerminalSound tpos sid Nothing w
TmWdWdDoDeathTriggers -> doDeathTriggers TmWdWdDoDeathTriggers -> doDeathTriggers
TmWdWdfromWdWd f -> \_ -> doWdWd f TmWdWdfromWdWd f -> \_ -> doWdWd f
+144 -145
View File
@@ -2597,7 +2597,7 @@ addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f
addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f
addIndefiniteArticle src/StringHelp.hs 17;" f addIndefiniteArticle src/StringHelp.hs 17;" f
addNodes src/Dodge/Path.hs 115;" f addNodes src/Dodge/Path.hs 115;" f
addPane src/Dodge/Placement/PlaceSpot.hs 173;" f addPane src/Dodge/Placement/PlaceSpot.hs 179;" f
addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f
addPointPolygon src/Geometry/Polygon.hs 102;" f addPointPolygon src/Geometry/Polygon.hs 102;" f
addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f
@@ -2633,7 +2633,7 @@ ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f amr src/Dodge/Item/Held/Rod.hs 34;" f
anRoom src/Dodge/Floor.hs 130;" f anRoom src/Dodge/Floor.hs 130;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 93;" f analyserByDoor src/Dodge/Room/LasTurret.hs 92;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 78;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 78;" f
andOrRegex src/Dodge/DisplayInventory.hs 80;" f andOrRegex src/Dodge/DisplayInventory.hs 80;" f
angleBetween src/Geometry.hs 161;" f angleBetween src/Geometry.hs 161;" f
@@ -2652,11 +2652,11 @@ applyMagnetsToBul src/Dodge/Bullet.hs 31;" f
applyPastDamages src/Dodge/Creature/State.hs 48;" f applyPastDamages src/Dodge/Creature/State.hs 48;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f
applyPosition src/Sound.hs 111;" f applyPosition src/Sound.hs 111;" f
applyRecoil src/Dodge/HeldUse.hs 451;" f applyRecoil src/Dodge/HeldUse.hs 450;" f
applyResFactor src/Dodge/Data/Config.hs 110;" f applyResFactor src/Dodge/Data/Config.hs 110;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f
applySidePush src/Dodge/HeldUse.hs 551;" f applySidePush src/Dodge/HeldUse.hs 550;" f
applySoundCME src/Dodge/HeldUse.hs 441;" f applySoundCME src/Dodge/HeldUse.hs 440;" f
applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f
applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f
applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f
@@ -2664,7 +2664,7 @@ applyToNode src/TreeHelp.hs 64;" f
applyToRandomNode src/TreeHelp.hs 150;" f applyToRandomNode src/TreeHelp.hs 150;" f
applyToSubforest src/TreeHelp.hs 77;" f applyToSubforest src/TreeHelp.hs 77;" f
applyToSubtree src/TreeHelp.hs 70;" f applyToSubtree src/TreeHelp.hs 70;" f
applyTorqueCME src/Dodge/HeldUse.hs 562;" f applyTorqueCME src/Dodge/HeldUse.hs 561;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f aquamarine src/Color.hs 23;" f
arHUD src/Dodge/Item/Scope.hs 134;" f arHUD src/Dodge/Item/Scope.hs 134;" f
@@ -2710,7 +2710,7 @@ axisInt src/Geometry/Intersect.hs 257;" f
azure src/Color.hs 22;" f azure src/Color.hs 22;" f
bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToF src/Geometry/Bezier.hs 37;" f
bQuadToLine src/Geometry/Bezier.hs 30;" f bQuadToLine src/Geometry/Bezier.hs 30;" f
backPQ src/Dodge/Creature/HandPos.hs 138;" f backPQ src/Dodge/Creature/HandPos.hs 127;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 200;" f backpackShape src/Dodge/Item/Draw/SPic.hs 200;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
@@ -2722,7 +2722,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
bangStick src/Dodge/Item/Held/Stick.hs 15;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 68;" f barrelShape src/Dodge/Render/ShapePicture.hs 69;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 418;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 418;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 158;" f baseCI src/Dodge/Item/Grammar.hs 158;" f
@@ -2744,7 +2744,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMachineUpdate src/Dodge/Machine.hs 13;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f
basicMuzFlare src/Dodge/HeldUse.hs 703;" f basicMuzFlare src/Dodge/HeldUse.hs 701;" f
battery src/Dodge/Item/Ammo.hs 63;" f battery src/Dodge/Item/Ammo.hs 63;" f
batteryPack src/Dodge/Item/Equipment.hs 46;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f
belowNumX src/Dodge/Combine/Graph.hs 86;" f belowNumX src/Dodge/Combine/Graph.hs 86;" f
@@ -2752,7 +2752,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f
bfsNodePoints src/Dodge/Path.hs 58;" f bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f
bgunSound src/Dodge/HeldUse.hs 506;" f bgunSound src/Dodge/HeldUse.hs 505;" f
bindFBO src/Render.hs 245;" f bindFBO src/Render.hs 245;" f
bingate src/Dodge/Item/Scope.hs 109;" f bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f black src/Color.hs 27;" f
@@ -2805,7 +2805,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f
branchWith src/Dodge/Room/Room.hs 67;" f branchWith src/Dodge/Room/Room.hs 67;" f
bright src/Color.hs 120;" f bright src/Color.hs 120;" f
brightX src/Color.hs 116;" f brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 128;" f btSPic src/Dodge/Render/ShapePicture.hs 129;" f
btText src/Dodge/Inventory/SelectionList.hs 237;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f
bufferEBO src/Shader/Bind.hs 28;" f bufferEBO src/Shader/Bind.hs 28;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f bufferPokedVBO src/Shader/Bind.hs 19;" f
@@ -2869,7 +2869,7 @@ checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f
chestPQ src/Dodge/Creature/HandPos.hs 135;" f chestPQ src/Dodge/Creature/HandPos.hs 124;" f
chooseCursorBorders src/Dodge/Render/List.hs 156;" f chooseCursorBorders src/Dodge/Render/List.hs 156;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 34;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 34;" f
@@ -3010,10 +3010,10 @@ crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f
crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f
crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f
crInAimStance src/Dodge/Creature/Test.hs 93;" f crInAimStance src/Dodge/Creature/Test.hs 90;" f
crIntelligence src/Dodge/Creature/Statistics.hs 37;" f crIntelligence src/Dodge/Creature/Statistics.hs 37;" f
crIsAiming src/Dodge/Creature/Test.hs 59;" f crIsAiming src/Dodge/Creature/Test.hs 59;" f
crIsArmouredFrom src/Dodge/Creature/Test.hs 108;" f crIsArmouredFrom src/Dodge/Creature/Test.hs 105;" f
crMass src/Dodge/Creature/Mass.hs 5;" f crMass src/Dodge/Creature/Mass.hs 5;" f
crMaterial src/Dodge/Creature/Material.hs 8;" f crMaterial src/Dodge/Creature/Material.hs 8;" f
crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f
@@ -3021,7 +3021,7 @@ crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 28;" f
crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f
crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" f crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" f
crMvType src/Dodge/Creature/MoveType.hs 6;" f crMvType src/Dodge/Creature/MoveType.hs 6;" f
crNearPoint src/Dodge/Creature/Test.hs 130;" f crNearPoint src/Dodge/Creature/Test.hs 127;" f
crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f
crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f
crRad src/Dodge/Creature/Radius.hs 7;" f crRad src/Dodge/Creature/Radius.hs 7;" f
@@ -3041,23 +3041,23 @@ crZoneSize src/Dodge/Zoning/Creature.hs 41;" f
craftInfo src/Dodge/Item/Info.hs 169;" f craftInfo src/Dodge/Item/Info.hs 169;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 56;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 56;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 185;" f createFlIt src/Dodge/Placement/PlaceSpot.hs 191;" f
createForceField src/Dodge/ForceField.hs 7;" f createForceField src/Dodge/ForceField.hs 7;" f
createGas src/Dodge/Gas.hs 8;" f createGas src/Dodge/Gas.hs 8;" f
createHeadLamp src/Dodge/Euse.hs 55;" f createHeadLamp src/Dodge/Euse.hs 55;" f
createItemYou src/Dodge/Inventory/Add.hs 61;" f createItemYou src/Dodge/Inventory/Add.hs 60;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 1313;" f createProjectile src/Dodge/HeldUse.hs 1312;" f
createProjectileR src/Dodge/HeldUse.hs 1262;" f createProjectileR src/Dodge/HeldUse.hs 1261;" f
createShell src/Dodge/Projectile/Create.hs 21;" f createShell src/Dodge/Projectile/Create.hs 21;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
createWall src/Dodge/Wall/Create.hs 8;" f createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f
creatureShootLaser src/Dodge/HeldUse.hs 816;" f creatureShootLaser src/Dodge/HeldUse.hs 810;" f
creatureShootPulseBall src/Dodge/HeldUse.hs 893;" f creatureShootPulseBall src/Dodge/HeldUse.hs 887;" f
creatureShootPulseLaser src/Dodge/HeldUse.hs 860;" f creatureShootPulseLaser src/Dodge/HeldUse.hs 854;" f
creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 53;" f creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 53;" f
creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 74;" f creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 74;" f
creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 63;" f creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 63;" f
@@ -3075,7 +3075,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 38;" f
crsNearSeg src/Dodge/Zoning/Creature.hs 23;" f crsNearSeg src/Dodge/Zoning/Creature.hs 23;" f
crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f
cubeShape src/Dodge/Block/Debris.hs 103;" f cubeShape src/Dodge/Block/Debris.hs 103;" f
cullPoint src/Dodge/Render/ShapePicture.hs 90;" f cullPoint src/Dodge/Render/ShapePicture.hs 91;" f
cullPretty src/AesonHelp.hs 14;" f cullPretty src/AesonHelp.hs 14;" f
cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f
cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f
@@ -3230,7 +3230,7 @@ detV src/Geometry/Vector.hs 93;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 465;" f detectorColor src/Dodge/Item/Draw/SPic.hs 465;" f
detectorInfo src/Dodge/Item/Info.hs 225;" f detectorInfo src/Dodge/Item/Info.hs 225;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1233;" f determineProjectileTracking src/Dodge/HeldUse.hs 1232;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 54;" f did src/Dodge/Item/InvSize.hs 54;" f
diffAngles src/Geometry.hs 208;" f diffAngles src/Geometry.hs 208;" f
@@ -3262,7 +3262,7 @@ doAfterPlacements src/Dodge/Layout.hs 83;" f
doAimTwist src/Dodge/Creature/YourControl.hs 153;" f doAimTwist src/Dodge/Creature/YourControl.hs 153;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 140;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 140;" f
doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBarrelSpin src/Dodge/Projectile/Update.hs 214;" f doBarrelSpin src/Dodge/Projectile/Update.hs 212;" f
doBlBl src/Dodge/BlBl.hs 5;" f doBlBl src/Dodge/BlBl.hs 5;" f
doBlSh src/Dodge/Block/Draw.hs 14;" f doBlSh src/Dodge/Block/Draw.hs 14;" f
doBounce src/Dodge/Base/Collide.hs 66;" f doBounce src/Dodge/Base/Collide.hs 66;" f
@@ -3292,7 +3292,7 @@ doDrag src/Dodge/Update/Input/InGame.hs 126;" f
doDrawing src/Dodge/Render.hs 34;" f doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 45;" f doDrawing' src/Dodge/Render.hs 45;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1189;" f doGenFloat src/Dodge/HeldUse.hs 1188;" f
doGravityPU src/Dodge/Projectile/Update.hs 36;" f doGravityPU src/Dodge/Projectile/Update.hs 36;" f
doHeldUseEffect src/Dodge/HeldUse.hs 343;" f doHeldUseEffect src/Dodge/HeldUse.hs 343;" f
doInPlacements src/Dodge/Layout.hs 92;" f doInPlacements src/Dodge/Layout.hs 92;" f
@@ -3366,9 +3366,9 @@ drawBoundingBox src/Dodge/Debug/Picture.hs 336;" f
drawBullet src/Dodge/Bullet/Draw.hs 9;" f drawBullet src/Dodge/Bullet/Draw.hs 9;" f
drawButton src/Dodge/Button/Draw.hs 10;" f drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawChasm src/Dodge/Render/ShapePicture.hs 44;" f drawChasm src/Dodge/Render/ShapePicture.hs 45;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 116;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 116;" f
drawCliff src/Dodge/Render/ShapePicture.hs 47;" f drawCliff src/Dodge/Render/ShapePicture.hs 48;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 268;" f drawCombFilter src/Dodge/Render/Picture.hs 268;" f
drawCombineInventory src/Dodge/Render/HUD.hs 178;" f drawCombineInventory src/Dodge/Render/HUD.hs 178;" f
@@ -3376,7 +3376,7 @@ drawConcurrentMessage src/Dodge/Render/Picture.hs 69;" f
drawCoord src/Dodge/Debug/Picture.hs 364;" f drawCoord src/Dodge/Debug/Picture.hs 364;" f
drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f
drawCrInfo src/Dodge/Debug/Picture.hs 385;" f drawCrInfo src/Dodge/Debug/Picture.hs 385;" f
drawCreature src/Dodge/Render/ShapePicture.hs 61;" f drawCreature src/Dodge/Render/ShapePicture.hs 62;" f
drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 197;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 197;" f
drawCross src/Dodge/Render/Label.hs 24;" f drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f
@@ -3440,7 +3440,7 @@ drawPlus src/Dodge/Render/Picture.hs 160;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawProp src/Dodge/Prop/Draw.hs 26;" f drawProp src/Dodge/Prop/Draw.hs 26;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 53;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 54;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 133;" f drawQuitTerminal src/Dodge/Render/Picture.hs 133;" f
drawRBOptions src/Dodge/Render/HUD.hs 247;" f drawRBOptions src/Dodge/Render/HUD.hs 247;" f
drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f
@@ -3486,7 +3486,7 @@ drawZoneCol src/Dodge/Debug/Picture.hs 147;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 284;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 284;" f
dropAll src/Dodge/Creature/Update.hs 119;" f dropAll src/Dodge/Creature/Update.hs 119;" f
dropExcept src/Dodge/Creature/Action.hs 167;" f dropExcept src/Dodge/Creature/Action.hs 167;" f
dropInventoryPath src/Dodge/HeldUse.hs 1409;" f dropInventoryPath src/Dodge/HeldUse.hs 1400;" f
dropItem src/Dodge/Creature/Action.hs 174;" f dropItem src/Dodge/Creature/Action.hs 174;" f
dropper src/Dodge/Item/Scope.hs 76;" f dropper src/Dodge/Item/Scope.hs 76;" f
drumMag src/Dodge/Item/Ammo.hs 34;" f drumMag src/Dodge/Item/Ammo.hs 34;" f
@@ -3516,8 +3516,8 @@ ebFlicker src/Dodge/EnergyBall.hs 70;" f
ebtToDamage src/Dodge/EnergyBall.hs 93;" f ebtToDamage src/Dodge/EnergyBall.hs 93;" f
edgeFormatting src/Dodge/Combine/Graph.hs 131;" f edgeFormatting src/Dodge/Combine/Graph.hs 131;" f
edgeToPic src/Dodge/Debug/Picture.hs 436;" f edgeToPic src/Dodge/Debug/Picture.hs 436;" f
effectOnEquip src/Dodge/Equipment.hs 30;" f effectOnEquip src/Dodge/Equipment.hs 31;" f
effectOnRemove src/Dodge/Equipment.hs 17;" f effectOnRemove src/Dodge/Equipment.hs 18;" f
eitType src/Dodge/Data/EquipType.hs 15;" f eitType src/Dodge/Data/EquipType.hs 15;" f
ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f
elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f
@@ -3538,13 +3538,13 @@ eqConstr src/SameConstr.hs 17;" f
eqPosText src/Dodge/Equipment/Text.hs 5;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f
eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f
equipAllocString src/Dodge/Render/HUD.hs 306;" f equipAllocString src/Dodge/Render/HUD.hs 306;" f
equipAttachPos src/Dodge/Item/Draw.hs 32;" f equipAttachPos src/Dodge/Item/Draw.hs 29;" f
equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f
equipInfo src/Dodge/Item/Info.hs 141;" f equipInfo src/Dodge/Item/Info.hs 141;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 171;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 171;" f
equipPosition src/Dodge/Item/Draw.hs 40;" f equipPosition src/Dodge/Item/Draw.hs 37;" f
equipSiteInfo src/Dodge/Item/Info.hs 254;" f equipSiteInfo src/Dodge/Item/Info.hs 254;" f
equipSitePQ src/Dodge/Creature/HandPos.hs 25;" f equipSitePQ src/Dodge/Creature/HandPos.hs 26;" f
equipType src/Dodge/Data/EquipType.hs 10;" f equipType src/Dodge/Data/EquipType.hs 10;" f
equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f
equipmentStrValue src/Dodge/Creature/Statistics.hs 54;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 54;" f
@@ -3555,7 +3555,7 @@ errorHead src/ListHelp.hs 76;" f
errorIsLHS src/Geometry.hs 66;" f errorIsLHS src/Geometry.hs 66;" f
errorNormalizeV src/Geometry.hs 55;" f errorNormalizeV src/Geometry.hs 55;" f
errorPointInPolygon src/Geometry.hs 47;" f errorPointInPolygon src/Geometry.hs 47;" f
evaluateRandPS src/Dodge/Placement/PlaceSpot.hs 154;" f evaluateRandPS src/Dodge/Placement/PlaceSpot.hs 160;" f
evenOddSplit src/Dodge/Base.hs 160;" f evenOddSplit src/Dodge/Base.hs 160;" f
exitTerminalSubInv src/Dodge/WorldEffect.hs 108;" f exitTerminalSubInv src/Dodge/WorldEffect.hs 108;" f
expandLine src/Dodge/Picture.hs 30;" f expandLine src/Dodge/Picture.hs 30;" f
@@ -3564,13 +3564,13 @@ expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 185;" f expireAndDamage src/Dodge/Bullet.hs 185;" f
explodeShell src/Dodge/Projectile/Update.hs 284;" f explodeShell src/Dodge/Projectile/Update.hs 282;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 95;" f extraPics src/Dodge/Render/ShapePicture.hs 96;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f
@@ -3609,7 +3609,7 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 406;" f flamerPic src/Dodge/Item/Draw/SPic.hs 406;" f
flareCircleAt src/Dodge/HeldUse.hs 684;" f flareCircleAt src/Dodge/HeldUse.hs 682;" f
flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f
flatLookupItems src/Dodge/Combine.hs 38;" f flatLookupItems src/Dodge/Combine.hs 38;" f
flatShield src/Dodge/Item/Held/Utility.hs 17;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f
@@ -3629,7 +3629,7 @@ flockPointTargetR src/Dodge/Creature/Boid.hs 267;" f
flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f
flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f
floorItemPickupInfo src/Dodge/Render/HUD.hs 227;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 227;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 121;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 122;" f
floorWire src/Dodge/Wire.hs 13;" f floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
@@ -3675,7 +3675,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 158;" f gameRoomsFromRooms src/Dodge/Layout.hs 158;" f
gameplayMenu src/Dodge/Menu.hs 134;" f gameplayMenu src/Dodge/Menu.hs 134;" f
gameplayMenuOptions src/Dodge/Menu.hs 137;" f gameplayMenuOptions src/Dodge/Menu.hs 137;" f
gasType src/Dodge/HeldUse.hs 1146;" f gasType src/Dodge/HeldUse.hs 1145;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 40;" f generateGraphs src/Dodge/LevelGen.hs 40;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -3688,27 +3688,27 @@ geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 141;" f getAimZoom src/Dodge/Update/Camera.hs 141;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f
getAttachedSFLink src/Dodge/HeldUse.hs 758;" f getAttachedSFLink src/Dodge/HeldUse.hs 756;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 170;" f getBulHitDams src/Dodge/Bullet.hs 170;" f
getBulletType src/Dodge/HeldUse.hs 933;" f getBulletType src/Dodge/HeldUse.hs 927;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 531;" f getCloseObj src/Dodge/Update/Input/InGame.hs 531;" f
getCommand src/Dodge/Terminal.hs 58;" f getCommand src/Dodge/Terminal.hs 58;" f
getCommands src/Dodge/Terminal.hs 55;" f getCommands src/Dodge/Terminal.hs 55;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 48;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 48;" f
getDistortions src/Dodge/Render.hs 435;" f getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1301;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1300;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f
getLaserColor src/Dodge/HeldUse.hs 700;" f getLaserColor src/Dodge/HeldUse.hs 698;" f
getLaserDamage src/Dodge/HeldUse.hs 697;" f getLaserDamage src/Dodge/HeldUse.hs 695;" f
getLaserPhaseV src/Dodge/HeldUse.hs 694;" f getLaserPhaseV src/Dodge/HeldUse.hs 692;" f
getLinksOfType src/Dodge/RoomLink.hs 39;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 9;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 9;" f
getMenuMouseContext src/Dodge/Update.hs 397;" f getMenuMouseContext src/Dodge/Update.hs 397;" f
getNodePos src/Dodge/Path.hs 31;" f getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1288;" f getPJStabiliser src/Dodge/HeldUse.hs 1287;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 6;" f getPromptTM src/Dodge/Terminal/Type.hs 6;" f
getRootItemBounds src/Dodge/Render/HUD.hs 96;" f getRootItemBounds src/Dodge/Render/HUD.hs 96;" f
@@ -3790,10 +3790,10 @@ head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 79;" f headLamp src/Dodge/Item/Equipment.hs 79;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 455;" f headLampShape src/Dodge/Item/Draw/SPic.hs 455;" f
headMap src/Dodge/DoubleTree.hs 249;" f headMap src/Dodge/DoubleTree.hs 249;" f
headPQ src/Dodge/Creature/HandPos.hs 126;" f headPQ src/Dodge/Creature/HandPos.hs 115;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 75;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 75;" f
healthTest src/Dodge/Room/LasTurret.hs 96;" f healthTest src/Dodge/Room/LasTurret.hs 95;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldAimStance src/Dodge/Item/AimStance.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f
heldAimZoom src/Dodge/Update/Camera.hs 147;" f heldAimZoom src/Dodge/Update/Camera.hs 147;" f
@@ -3803,14 +3803,14 @@ heldHandlePos src/Dodge/Item/HeldOffset.hs 90;" f
heldInfo src/Dodge/Item/Info.hs 92;" f heldInfo src/Dodge/Item/Info.hs 92;" f
heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 19;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 19;" f
heldItemBulkiness src/Dodge/Creature/YourControl.hs 193;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 193;" f
heldItemInvLock src/Dodge/HeldUse.hs 434;" f heldItemInvLock src/Dodge/HeldUse.hs 433;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1030;" f heldItemMuzVel src/Dodge/HeldUse.hs 1024;" f
heldItemMuzzles src/Dodge/HeldUse.hs 182;" f heldItemMuzzles src/Dodge/HeldUse.hs 182;" f
heldItemRifling src/Dodge/HeldUse.hs 1073;" f heldItemRifling src/Dodge/HeldUse.hs 1067;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 247;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 247;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 78;" f heldItemWeight src/Dodge/Creature/Statistics.hs 78;" f
heldPositionInfo src/Dodge/Item/Info.hs 241;" f heldPositionInfo src/Dodge/Item/Info.hs 241;" f
heldTorqueAmount src/Dodge/HeldUse.hs 578;" f heldTorqueAmount src/Dodge/HeldUse.hs 577;" f
heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f
helpPara src/Dodge/Terminal.hs 113;" f helpPara src/Dodge/Terminal.hs 113;" f
helpPoly3D src/Polyhedra.hs 125;" f helpPoly3D src/Polyhedra.hs 125;" f
@@ -3921,8 +3921,8 @@ invertIntMap src/Multiset.hs 67;" f
invertInventoryToMap src/Dodge/Combine.hs 56;" f invertInventoryToMap src/Dodge/Combine.hs 56;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 710;" f isAmmoIntLink src/Dodge/HeldUse.hs 708;" f
isAnimate src/Dodge/Creature/Test.hs 133;" f isAnimate src/Dodge/Creature/Test.hs 130;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 76;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f
isElectrical src/Dodge/Machine/Update.hs 80;" f isElectrical src/Dodge/Machine/Update.hs 80;" f
@@ -3963,9 +3963,9 @@ itemBlips src/Dodge/RadarSweep.hs 93;" f
itemBulkiness src/Dodge/Creature/YourControl.hs 187;" f itemBulkiness src/Dodge/Creature/YourControl.hs 187;" f
itemCombinations src/Dodge/Combine/Combinations.hs 56;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f
itemDetectorEffect src/Dodge/HeldUse.hs 764;" f itemDetectorEffect src/Dodge/HeldUse.hs 762;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f
itemEquipPict src/Dodge/Item/Draw.hs 19;" f itemEquipPict src/Dodge/Item/Draw.hs 17;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f
itemFromAmmoMag src/Dodge/Item.hs 42;" f itemFromAmmoMag src/Dodge/Item.hs 42;" f
itemFromAttachType src/Dodge/Item.hs 51;" f itemFromAttachType src/Dodge/Item.hs 51;" f
@@ -3975,7 +3975,7 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f
itemInfo src/Dodge/Item/Info.hs 20;" f itemInfo src/Dodge/Item/Info.hs 20;" f
itemInternalValue src/Dodge/Item/Display.hs 34;" f itemInternalValue src/Dodge/Item/Display.hs 34;" f
itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f
itemInvLock src/Dodge/HeldUse.hs 429;" f itemInvLock src/Dodge/HeldUse.hs 428;" f
itemMuzzles src/Dodge/HeldUse.hs 161;" f itemMuzzles src/Dodge/HeldUse.hs 161;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f
@@ -4022,13 +4022,13 @@ lShape src/Dodge/Placement/Instance/LightSource.hs 76;" f
lamp src/Dodge/Creature/Lamp.hs 21;" f lamp src/Dodge/Creature/Lamp.hs 21;" f
lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 73;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 74;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 115;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 424;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 424;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 108;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 107;" f
lasTunnel src/Dodge/Room/LasTurret.hs 127;" f lasTunnel src/Dodge/Room/LasTurret.hs 126;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 168;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 40;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 40;" f
laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f
lastMap src/Dodge/DoubleTree.hs 253;" f lastMap src/Dodge/DoubleTree.hs 253;" f
@@ -4048,13 +4048,12 @@ ldtToIndentList src/Dodge/DoubleTree.hs 222;" f
ldtToLoc src/Dodge/DoubleTree.hs 268;" f ldtToLoc src/Dodge/DoubleTree.hs 268;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 185;" f leftChildList src/Dodge/Item/Grammar.hs 185;" f
leftHandPQ src/Dodge/Creature/HandPos.hs 71;" f leftHandPQ src/Dodge/Creature/HandPos.hs 60;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 163;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 163;" f
leftLegPQ src/Dodge/Creature/HandPos.hs 95;" f leftLegPQ src/Dodge/Creature/HandPos.hs 84;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 197;" f leftRightCombine src/Dodge/Item/Grammar.hs 197;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 92;" f leftWristPQ src/Dodge/Creature/HandPos.hs 81;" f
legsPQ src/Dodge/Creature/HandPos.hs 35;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f light src/Color.hs 104;" f
@@ -4069,7 +4068,7 @@ lineCol src/Picture/Base.hs 230;" f
lineGeom src/Dodge/Base.hs 32;" f lineGeom src/Dodge/Base.hs 32;" f
lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f
lineOrth src/Dodge/Creature/Boid.hs 126;" f lineOrth src/Dodge/Creature/Boid.hs 126;" f
lineOutputTerminal src/Dodge/Room/Warning.hs 57;" f lineOutputTerminal src/Dodge/Room/Warning.hs 58;" f
lineSplit src/Justify.hs 26;" f lineSplit src/Justify.hs 26;" f
lineThick src/Picture/Base.hs 234;" f lineThick src/Picture/Base.hs 234;" f
lineUp src/Dodge/Creature/Boid.hs 148;" f lineUp src/Dodge/Creature/Boid.hs 148;" f
@@ -4088,7 +4087,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 390;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
loadMuzzle src/Dodge/HeldUse.hs 622;" f loadMuzzle src/Dodge/HeldUse.hs 621;" f
loadSaveSlot src/Dodge/Save.hs 74;" f loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4138,7 +4137,7 @@ machineAddSound src/Dodge/Machine.hs 49;" f
machinePistol src/Dodge/Item/Held/Stick.hs 52;" f machinePistol src/Dodge/Item/Held/Stick.hs 52;" f
machineUpdateDeathEff src/Dodge/Machine.hs 34;" f machineUpdateDeathEff src/Dodge/Machine.hs 34;" f
machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f
magAmmoParams src/Dodge/HeldUse.hs 954;" f magAmmoParams src/Dodge/HeldUse.hs 948;" f
magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f magAmmoType src/Dodge/Item/MagAmmoType.hs 11;" f
magShield src/Dodge/Item/Equipment.hs 27;" f magShield src/Dodge/Item/Equipment.hs 27;" f
magV src/Geometry/Vector.hs 171;" f magV src/Geometry/Vector.hs 171;" f
@@ -4153,7 +4152,7 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 69;" f makeBlip src/Dodge/RadarSweep.hs 69;" f
makeBlockDebris src/Dodge/Block/Debris.hs 34;" f makeBlockDebris src/Dodge/Block/Debris.hs 34;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 1011;" f makeBullet src/Dodge/HeldUse.hs 1005;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
@@ -4175,7 +4174,7 @@ makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f
makeGrid src/Grid.hs 46;" f makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 35;" f makeIntInterval src/Dodge/Zoning/Base.hs 35;" f
makeMovingEB src/Dodge/EnergyBall.hs 60;" f makeMovingEB src/Dodge/EnergyBall.hs 60;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 644;" f makeMuzzleFlare src/Dodge/HeldUse.hs 643;" f
makeParagraph src/Justify.hs 6;" f makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4225,14 +4224,14 @@ mcKillTerm src/Dodge/Machine/Destroy.hs 29;" f
mcPlaySound src/Dodge/Machine/Update.hs 105;" f mcPlaySound src/Dodge/Machine/Update.hs 105;" f
mcProxTest src/Dodge/Machine/Update.hs 153;" f mcProxTest src/Dodge/Machine/Update.hs 153;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 131;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 131;" f
mcSPic src/Dodge/Render/ShapePicture.hs 133;" f mcSPic src/Dodge/Render/ShapePicture.hs 134;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 94;" f mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 94;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 126;" f mcSensorUpdate src/Dodge/Machine/Update.hs 126;" f
mcShootAuto src/Dodge/HeldUse.hs 1200;" f mcShootAuto src/Dodge/HeldUse.hs 1199;" f
mcShootLaser src/Dodge/HeldUse.hs 1193;" f mcShootLaser src/Dodge/HeldUse.hs 1192;" f
mcTriggerVal src/Dodge/Machine/Update.hs 100;" f mcTriggerVal src/Dodge/Machine/Update.hs 100;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f mcTypeUpdate src/Dodge/Machine/Update.hs 28;" f
mcUseHeld src/Dodge/HeldUse.hs 1116;" f mcUseHeld src/Dodge/HeldUse.hs 1110;" f
mcUseItem src/Dodge/Machine/Update.hs 85;" f mcUseItem src/Dodge/Machine/Update.hs 85;" f
megaBattery src/Dodge/Item/Ammo.hs 55;" f megaBattery src/Dodge/Item/Ammo.hs 55;" f
megaShellMag src/Dodge/Item/Ammo.hs 44;" f megaShellMag src/Dodge/Item/Ammo.hs 44;" f
@@ -4303,11 +4302,11 @@ moveCombineSel src/Dodge/Update/Scroll.hs 119;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
movePenBullet src/Dodge/Bullet.hs 200;" f movePenBullet src/Dodge/Bullet.hs 200;" f
moveProjectile src/Dodge/Projectile/Update.hs 262;" f moveProjectile src/Dodge/Projectile/Update.hs 260;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 248;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 246;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 60;" f moveToSideNthOutLink src/Dodge/Room/Warning.hs 61;" f
moveWall src/Dodge/Wall/Move.hs 29;" f moveWall src/Dodge/Wall/Move.hs 29;" f
moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallID src/Dodge/Wall/Move.hs 24;" f
moveWallIDToward src/Dodge/Wall/Move.hs 47;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f
@@ -4322,19 +4321,19 @@ multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 57;" f multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 129;" f muout src/Dodge/RoomLink.hs 129;" f
muzFlareAt src/Dodge/HeldUse.hs 670;" f muzFlareAt src/Dodge/HeldUse.hs 669;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f mvButton src/Dodge/Placement/PlaceSpot.hs 187;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 191;" f mvCr src/Dodge/Placement/PlaceSpot.hs 197;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f mvFS src/Dodge/Placement/PlaceSpot.hs 200;" f
mvGust src/Dodge/Update.hs 800;" f mvGust src/Dodge/Update.hs 800;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 245;" f mvLS src/Dodge/Placement/PlaceSpot.hs 257;" f
mvP src/Dodge/Wall/Move.hs 54;" f mvP src/Dodge/Wall/Move.hs 54;" f
mvPP src/Dodge/Placement/PlaceSpot.hs 188;" f mvPP src/Dodge/Placement/PlaceSpot.hs 194;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 314;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 314;" f
mvPointToward src/Dodge/Base.hs 136;" f mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 178;" f mvProp src/Dodge/Placement/PlaceSpot.hs 184;" f
mvPs src/Dodge/Wall/Move.hs 58;" f mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 207;" f myIntersectLineLine src/Geometry/Intersect.hs 207;" f
myIntersectSegSeg src/Geometry/Intersect.hs 185;" f myIntersectSegSeg src/Geometry/Intersect.hs 185;" f
@@ -4380,10 +4379,10 @@ numTraversable src/TreeHelp.hs 183;" f
obstacleColor src/Dodge/Debug/Picture.hs 262;" f obstacleColor src/Dodge/Debug/Picture.hs 262;" f
obstructPathsCrossing src/Dodge/Path.hs 138;" f obstructPathsCrossing src/Dodge/Path.hs 138;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f
onEquipWristShield src/Dodge/Equipment.hs 35;" f onEquipWristShield src/Dodge/Equipment.hs 36;" f
onRemoveWristShield src/Dodge/Equipment.hs 22;" f onRemoveWristShield src/Dodge/Equipment.hs 23;" f
onXY src/Geometry/Vector3D.hs 130;" f onXY src/Geometry/Vector3D.hs 130;" f
oneH src/Dodge/Creature/Test.hs 96;" f oneH src/Dodge/Creature/Test.hs 93;" f
openConsole src/Dodge/Update.hs 136;" f openConsole src/Dodge/Update.hs 136;" f
optionMenu src/Dodge/Menu.hs 108;" f optionMenu src/Dodge/Menu.hs 108;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f
@@ -4458,8 +4457,8 @@ pesNearRect src/Dodge/Zoning/Pathing.hs 40;" f
pesNearSeg src/Dodge/Zoning/Pathing.hs 37;" f pesNearSeg src/Dodge/Zoning/Pathing.hs 37;" f
picFormat src/Polyhedra.hs 23;" f picFormat src/Polyhedra.hs 23;" f
picMap src/Picture/Base.hs 67;" f picMap src/Picture/Base.hs 67;" f
pickUpItem src/Dodge/Inventory/Add.hs 69;" f pickUpItem src/Dodge/Inventory/Add.hs 68;" f
pickUpItemAt src/Dodge/Inventory/Add.hs 74;" f pickUpItemAt src/Dodge/Inventory/Add.hs 73;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f
pincerP src/Dodge/Creature/Boid.hs 61;" f pincerP src/Dodge/Creature/Boid.hs 61;" f
pincerP' src/Dodge/Creature/Boid.hs 94;" f pincerP' src/Dodge/Creature/Boid.hs 94;" f
@@ -4469,30 +4468,30 @@ pingPongBetween src/Render.hs 221;" f
pipe src/Dodge/Item/Craftable.hs 32;" f pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 321;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 227;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 225;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 197;" f plMachine src/Dodge/Placement/PlaceSpot.hs 203;" f
plMachine' src/Dodge/Placement/PlaceSpot.hs 220;" f plMachine' src/Dodge/Placement/PlaceSpot.hs 232;" f
plNew src/Dodge/Base/NewID.hs 19;" f plNew src/Dodge/Base/NewID.hs 19;" f
plNewID src/Dodge/Base/NewID.hs 7;" f plNewID src/Dodge/Base/NewID.hs 7;" f
plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f
plNewUsing src/Dodge/Base/NewID.hs 27;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f
plTurret src/Dodge/Placement/PlaceSpot.hs 202;" f plTurret src/Dodge/Placement/PlaceSpot.hs 209;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 235;" f placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 247;" f
placePickOne src/Dodge/Placement/PlaceSpot.hs 41;" f placePickOne src/Dodge/Placement/PlaceSpot.hs 43;" f
placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 53;" f placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 55;" f
placeRandomPlacement src/Dodge/Placement/PlaceSpot.hs 44;" f placeRandomPlacement src/Dodge/Placement/PlaceSpot.hs 46;" f
placeSpot src/Dodge/Placement/PlaceSpot.hs 29;" f placeSpot src/Dodge/Placement/PlaceSpot.hs 31;" f
placeSpotID src/Dodge/Placement/PlaceSpot.hs 99;" f placeSpotID src/Dodge/Placement/PlaceSpot.hs 101;" f
placeSpotID' src/Dodge/Placement/PlaceSpot.hs 105;" f placeSpotID' src/Dodge/Placement/PlaceSpot.hs 107;" f
placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 88;" f placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 90;" f
placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 69;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 71;" f
placeString src/Dodge/Render/MenuScreen.hs 61;" f placeString src/Dodge/Render/MenuScreen.hs 61;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 167;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 173;" f
plainRegex src/Dodge/DisplayInventory.hs 194;" f plainRegex src/Dodge/DisplayInventory.hs 194;" f
playIfFree src/Sound.hs 137;" f playIfFree src/Sound.hs 137;" f
playPositionalSoundQueue src/Sound.hs 145;" f playPositionalSoundQueue src/Sound.hs 145;" f
@@ -4595,7 +4594,7 @@ powlist src/Multiset.hs 61;" f
powlistUpToN src/Multiset.hs 23;" f powlistUpToN src/Multiset.hs 23;" f
powlistUpToN' src/Multiset.hs 12;" f powlistUpToN' src/Multiset.hs 12;" f
powlistUpToN'' src/Multiset.hs 31;" f powlistUpToN'' src/Multiset.hs 31;" f
ppDraw src/Dodge/Render/ShapePicture.hs 118;" f ppDraw src/Dodge/Render/ShapePicture.hs 119;" f
ppEvents src/Dodge/Update.hs 763;" f ppEvents src/Dodge/Update.hs 763;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 83;" f preCritStart src/Dodge/Room/Start.hs 83;" f
@@ -4723,7 +4722,7 @@ randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 225;" f ratIntersectLineLine src/Geometry/Intersect.hs 225;" f
readSaveSlot src/Dodge/Save.hs 45;" f readSaveSlot src/Dodge/Save.hs 45;" f
recoilAmount src/Dodge/HeldUse.hs 459;" f recoilAmount src/Dodge/HeldUse.hs 458;" f
rectNSWE src/Geometry/Polygon.hs 13;" f rectNSWE src/Geometry/Polygon.hs 13;" f
rectVV src/Geometry/Polygon.hs 38;" f rectVV src/Geometry/Polygon.hs 38;" f
rectWH src/Geometry/Polygon.hs 17;" f rectWH src/Geometry/Polygon.hs 17;" f
@@ -4753,7 +4752,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 178;" f
remoteDetonator src/Dodge/Item/Scope.hs 144;" f remoteDetonator src/Dodge/Item/Scope.hs 144;" f
remoteScreen src/Dodge/Item/Scope.hs 139;" f remoteScreen src/Dodge/Item/Scope.hs 139;" f
removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 922;" f removeAmmoFromMag src/Dodge/HeldUse.hs 916;" f
removeDot src/ShortShow.hs 40;" f removeDot src/ShortShow.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
@@ -4800,12 +4799,12 @@ rhombus src/Polyhedra.hs 72;" f
rifle src/Dodge/Item/Held/Cane.hs 19;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f
right src/DoubleStack.hs 16;" f right src/DoubleStack.hs 16;" f
rightChildList src/Dodge/Item/Grammar.hs 191;" f rightChildList src/Dodge/Item/Grammar.hs 191;" f
rightHandPQ src/Dodge/Creature/HandPos.hs 50;" f rightHandPQ src/Dodge/Creature/HandPos.hs 39;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 174;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 174;" f
rightLegPQ src/Dodge/Creature/HandPos.hs 111;" f rightLegPQ src/Dodge/Creature/HandPos.hs 100;" f
rightPad src/Padding.hs 19;" f rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 68;" f rightWristPQ src/Dodge/Creature/HandPos.hs 57;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f rlPosDir src/Dodge/RoomLink.hs 94;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 409;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 409;" f
rmInLinks src/Dodge/RoomLink.hs 138;" f rmInLinks src/Dodge/RoomLink.hs 138;" f
@@ -4979,7 +4978,7 @@ setViewDistance src/Dodge/Update/Camera.hs 234;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f setViewport src/Dodge/Render.hs 440;" f
setVol src/Dodge/Config/Update.hs 30;" f setVol src/Dodge/Config/Update.hs 30;" f
setWristShieldPos src/Dodge/Equipment.hs 47;" f setWristShieldPos src/Dodge/Equipment.hs 48;" f
setWristShieldPos src/Dodge/Euse.hs 35;" f setWristShieldPos src/Dodge/Euse.hs 35;" f
setupConLoop src/Loop.hs 102;" f setupConLoop src/Loop.hs 102;" f
setupConLoop' src/Loop.hs 192;" f setupConLoop' src/Loop.hs 192;" f
@@ -5017,8 +5016,8 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f
shiftByV2 src/Dodge/PlacementSpot.hs 254;" f shiftByV2 src/Dodge/PlacementSpot.hs 254;" f
shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftChildren src/Dodge/Tree/Compose.hs 43;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f shiftDraw src/Dodge/Render/ShapePicture.hs 79;" f
shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 85;" f
shiftInBy src/Dodge/PlacementSpot.hs 251;" f shiftInBy src/Dodge/PlacementSpot.hs 251;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f
@@ -5037,16 +5036,16 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 200;" f shineTargetLaser src/Dodge/Creature/State.hs 200;" f
shineTorch src/Dodge/Creature/State.hs 237;" f shineTorch src/Dodge/Creature/State.hs 237;" f
shootBullet src/Dodge/HeldUse.hs 996;" f shootBullet src/Dodge/HeldUse.hs 990;" f
shootBullets src/Dodge/HeldUse.hs 986;" f shootBullets src/Dodge/HeldUse.hs 980;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f shootFirstMiss src/Dodge/Creature/Volition.hs 34;" f
shootLaser src/Dodge/HeldUse.hs 839;" f shootLaser src/Dodge/HeldUse.hs 833;" f
shootPulseBall src/Dodge/HeldUse.hs 907;" f shootPulseBall src/Dodge/HeldUse.hs 901;" f
shootPulseLaser src/Dodge/HeldUse.hs 880;" f shootPulseLaser src/Dodge/HeldUse.hs 874;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 1216;" f shootTeslaArc src/Dodge/HeldUse.hs 1215;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f shootTillEmpty src/Dodge/Creature/Volition.hs 19;" f
shootTractorBeam src/Dodge/HeldUse.hs 795;" f shootTractorBeam src/Dodge/HeldUse.hs 789;" f
shootersRoom src/Dodge/Room/Room.hs 315;" f shootersRoom src/Dodge/Room/Room.hs 315;" f
shootersRoom' src/Dodge/Room/Room.hs 280;" f shootersRoom' src/Dodge/Room/Room.hs 280;" f
shootersRoom1 src/Dodge/Room/Room.hs 305;" f shootersRoom1 src/Dodge/Room/Room.hs 305;" f
@@ -5337,12 +5336,12 @@ topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 71;" f topTestPart src/Dodge/TestString.hs 71;" f
torch src/Dodge/Item/Held/Utility.hs 23;" f torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f
torqueAmount src/Dodge/HeldUse.hs 573;" f torqueAmount src/Dodge/HeldUse.hs 572;" f
torqueCr src/Dodge/WorldEffect.hs 71;" f torqueCr src/Dodge/WorldEffect.hs 71;" f
torso src/Dodge/Creature/Picture.hs 102;" f torso src/Dodge/Creature/Picture.hs 102;" f
tractCr src/Dodge/TractorBeam/Update.hs 27;" f tractCr src/Dodge/TractorBeam/Update.hs 27;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f
tractorBeamAt src/Dodge/HeldUse.hs 807;" f tractorBeamAt src/Dodge/HeldUse.hs 801;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 53;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 449;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 449;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 32;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 32;" f
@@ -5355,8 +5354,8 @@ translate3 src/Picture/Base.hs 120;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 46;" f translateFloatingCamera src/Dodge/Update/Camera.hs 46;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f
translateH src/Picture/Base.hs 112;" f translateH src/Picture/Base.hs 112;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 86;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 39;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 36;" f
translateSH src/Shape.hs 245;" f translateSH src/Shape.hs 245;" f
translateSHxy src/Shape.hs 249;" f translateSHxy src/Shape.hs 249;" f
translateSHz src/Shape.hs 253;" f translateSHz src/Shape.hs 253;" f
@@ -5364,11 +5363,11 @@ translateSP src/ShapePicture.hs 53;" f
translateSPxy src/ShapePicture.hs 45;" f translateSPxy src/ShapePicture.hs 45;" f
translateSPz src/ShapePicture.hs 49;" f translateSPz src/ShapePicture.hs 49;" f
translateScreenPos src/Dodge/ScreenPos.hs 12;" f translateScreenPos src/Dodge/ScreenPos.hs 12;" f
translateToES src/Dodge/Creature/HandPos.hs 22;" f translateToES src/Dodge/Creature/HandPos.hs 23;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 89;" f translateToLeftHand src/Dodge/Creature/HandPos.hs 78;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 108;" f translateToLeftLeg src/Dodge/Creature/HandPos.hs 97;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 65;" f translateToRightHand src/Dodge/Creature/HandPos.hs 54;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 123;" f translateToRightLeg src/Dodge/Creature/HandPos.hs 112;" f
translateWallID src/Dodge/Wall/Move.hs 37;" f translateWallID src/Dodge/Wall/Move.hs 37;" f
translateXY src/Polyhedra.hs 26;" f translateXY src/Polyhedra.hs 26;" f
trapezionBWHW src/Geometry/Polygon.hs 24;" f trapezionBWHW src/Geometry/Polygon.hs 24;" f
@@ -5398,8 +5397,8 @@ tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 22;" f
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f
tryPickupSelected src/Dodge/Update/Input/InGame.hs 144;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 144;" f
tryPlay src/Sound.hs 84;" f tryPlay src/Sound.hs 84;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 23;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 53;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f
trySeedFromClipboard src/Dodge/Menu.hs 91;" f trySeedFromClipboard src/Dodge/Menu.hs 91;" f
trySpin src/Dodge/Projectile/Update.hs 170;" f trySpin src/Dodge/Projectile/Update.hs 170;" f
trySynthBullet src/Dodge/Creature/State.hs 166;" f trySynthBullet src/Dodge/Creature/State.hs 166;" f
@@ -5417,8 +5416,8 @@ tutorialMessage1 src/Dodge/Room/Tutorial.hs 95;" f
tweenAngles src/Geometry/Vector.hs 195;" f tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f
twists src/Dodge/Creature/Test.hs 102;" f twists src/Dodge/Creature/Test.hs 99;" f
twoFlat src/Dodge/Creature/Test.hs 99;" f twoFlat src/Dodge/Creature/Test.hs 96;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 154;" f twoRoomPoss src/Dodge/PlacementSpot.hs 154;" f
@@ -5579,21 +5578,21 @@ upperPrismPolySU src/Shape.hs 114;" f
upperPrismPolyTS src/Shape.hs 120;" f upperPrismPolyTS src/Shape.hs 120;" f
upperRounded src/Shape.hs 185;" f upperRounded src/Shape.hs 185;" f
useBulletPayload src/Dodge/Bullet.hs 114;" f useBulletPayload src/Dodge/Bullet.hs 114;" f
useGasParams src/Dodge/HeldUse.hs 1121;" f useGasParams src/Dodge/HeldUse.hs 1115;" f
useHotkey src/Dodge/Creature/YourControl.hs 76;" f useHotkey src/Dodge/Creature/YourControl.hs 76;" f
useInventoryPath src/Dodge/HeldUse.hs 1440;" f useInventoryPath src/Dodge/HeldUse.hs 1431;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 25;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 25;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 259;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 259;" f
useLoadedAmmo src/Dodge/HeldUse.hs 713;" f useLoadedAmmo src/Dodge/HeldUse.hs 711;" f
useMagShield src/Dodge/Euse.hs 27;" f useMagShield src/Dodge/Euse.hs 27;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1400;" f useRewindGun src/Dodge/HeldUse.hs 1391;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 188;" f useRoomPosCond src/Dodge/PlacementSpot.hs 188;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 191;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 191;" f
useStopWatch src/Dodge/HeldUse.hs 1381;" f useStopWatch src/Dodge/HeldUse.hs 1372;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1389;" f useTimeScrollGun src/Dodge/HeldUse.hs 1380;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 179;" f useUnusedLnk src/Dodge/PlacementSpot.hs 179;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 207;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 207;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 214;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 214;" f
@@ -5627,7 +5626,7 @@ visionCheck src/Dodge/Creature/Perception.hs 153;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 369;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 369;" f
walkNozzle src/Dodge/HeldUse.hs 779;" f walkNozzle src/Dodge/HeldUse.hs 777;" f
walkableNodeNear src/Dodge/Path.hs 48;" f walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 98;" f wallBlips src/Dodge/RadarSweep.hs 98;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 52;" f
@@ -5636,7 +5635,7 @@ wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f
wallToSurface src/Dodge/Base/Collide.hs 172;" f wallToSurface src/Dodge/Base/Collide.hs 172;" f
wallsFromRooms src/Dodge/Layout.hs 146;" f wallsFromRooms src/Dodge/Layout.hs 146;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1434;" f warmupSound src/Dodge/HeldUse.hs 1425;" f
warningRooms src/Dodge/Room/Warning.hs 26;" f warningRooms src/Dodge/Room/Warning.hs 26;" f
wasdAim src/Dodge/Creature/YourControl.hs 132;" f wasdAim src/Dodge/Creature/YourControl.hs 132;" f
wasdDir src/Dodge/WASD.hs 17;" f wasdDir src/Dodge/WASD.hs 17;" f
@@ -5696,7 +5695,7 @@ wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f
wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f
wordsBy src/ListHelp.hs 116;" f wordsBy src/ListHelp.hs 116;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f
worldSPic src/Dodge/Render/ShapePicture.hs 21;" f worldSPic src/Dodge/Render/ShapePicture.hs 22;" f
worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f
wpAdd src/Dodge/Room/RezBox.hs 148;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f
wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f