Fix bugs in item locations

This commit is contained in:
2024-09-23 13:12:09 +01:00
parent 4f6431968c
commit 5262355368
10 changed files with 133 additions and 175 deletions
+1 -20
View File
@@ -1,20 +1 @@
/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:250:19-20: warning: [-Wunused-matches]
Defined but not used: cr
|
250 | itemInvSideEffect cr it
| ^^
/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:250:22-23: warning: [-Wunused-matches]
Defined but not used: it
|
250 | itemInvSideEffect cr it
| ^^
/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:257:1-17: warning: [-Wunused-top-binds]
Defined but not used: createAttachLight
|
257 | createAttachLight cr it = createTorchLightOffset cr it attachoff
| ^^^^^^^^^^^^^^^^^
/home/justin/Haskell/loop/src/Dodge/Inventory/Add.hs:70:1-12: warning: [-Wunused-top-binds]
Defined but not used: pickUpItemID
|
70 | pickUpItemID cid flid w = pickUpItem cid (w ^?! cWorld . lWorld . floorItems . ix flid) w
| ^^^^^^^^^^^^
All good (619 modules, at 13:12:05)
+1 -1
View File
File diff suppressed because one or more lines are too long
+7 -8
View File
@@ -21,7 +21,7 @@ import Dodge.EnergyBall
import Dodge.Euse
import Dodge.Hammer
import Dodge.ItEffect
import Dodge.LightSource.Torch
--import Dodge.LightSource.Torch
import Dodge.Prop.Gib
import Dodge.SoundLogic
import Dodge.Targeting
@@ -247,24 +247,23 @@ invSideEff cr w =
w' & maybe id (\g -> doInvEffect g it cr) (it ^? itEffect . ieInv)
itemInvSideEffect :: Creature -> Item -> World -> World
itemInvSideEffect cr it
itemInvSideEffect _ _
--itemInvSideEffect cr it
-- | hastorchattach = createAttachLight cr it
| otherwise = id
where
-- hastorchattach = it ^? itType . iyModules . ix ModHeldAttach == Just ATTACHTORCH && _itIsRoot it
createAttachLight :: Creature -> Item -> World -> World
createAttachLight cr it = createTorchLightOffset cr it attachoff
where
attachoff = it ^?! itDimension . dimAttachPos
--createAttachLight :: Creature -> Item -> World -> World
--createAttachLight cr it = createTorchLightOffset cr it attachoff
-- where
-- attachoff = it ^?! itDimension . dimAttachPos
itemUpdate :: Creature -> Int -> Item -> Item
itemUpdate cr i =
updateAutoRecharge
. (itUse %~ useUpdate)
. (itLocation .~ InInv (_crID cr) i itmisselected itmisroot)
-- . (itIsRoot .~ itmisroot)
-- . (itIsSelected .~ itmisselected)
where
itmisroot = Just i == (cr ^? crManipulation . manObject . inInventory . imRootItem)
itmisselected = Just i == (cr ^? crManipulation . manObject . inInventory . imSelectedItem)
-2
View File
@@ -35,8 +35,6 @@ data Item = Item
, _itType :: ItemType
, _itID :: Int
, _itLocation :: ItemLocation
-- , _itIsRoot :: Bool
-- , _itIsSelected :: Bool
, _itEffect :: ItEffect
, _itInvSize :: Float
, _itDimension :: ItemDimension
+18 -44
View File
@@ -4,7 +4,6 @@ module Dodge.Inventory (
rmSelectedInvItem,
rmInvItem,
updateCloseObjects,
--closeObjScrollDir,
changeSwapSel,
scrollAugInvSel,
crNumFreeSlots,
@@ -14,7 +13,7 @@ module Dodge.Inventory (
module Dodge.Inventory.RBList
) where
import Dodge.Inventory.FindRoot
import Dodge.Inventory.Location
import Dodge.Inventory.RBList
import Control.Applicative
import Data.Maybe
@@ -62,7 +61,7 @@ rmInvItem cid invid w = w
& updateselection
& pointcid %~ updateRootItemID
& worldEventFlags . at InventoryChange ?~ ()
& updateCreatureItemLocations cid
-- & updateCreatureItemLocations cid
where
pointcid = cWorld . lWorld . creatures . ix cid
@@ -95,14 +94,14 @@ rmInvItem cid invid w = w
| x > invid || Just x == maxk = max 0 $ x - 1
| otherwise = x
updateCreatureItemLocations :: Int -> World -> World
updateCreatureItemLocations crid w = fromMaybe w $ do
inv <- w ^? cWorld . lWorld . creatures . ix crid . crInv
return $ foldl' updateItemLocation w inv
updateItemLocation :: World -> Item -> World
updateItemLocation w itm = w
& cWorld . lWorld . itemLocations . ix (itm ^. itID) .~ itm ^. itLocation
--updateCreatureItemLocations :: Int -> World -> World
--updateCreatureItemLocations crid w = fromMaybe w $ do
-- inv <- w ^? cWorld . lWorld . creatures . ix crid . crInv
-- return $ foldl' updateItemLocation w inv
--
--updateItemLocation :: World -> Item -> World
--updateItemLocation w itm = w
-- & cWorld . lWorld . itemLocations . ix (itm ^. itID) .~ itm ^. itLocation
---- | after this the item at the inventory position will no longer exist
--rmInvItem ::
@@ -202,18 +201,11 @@ updateCloseObjects w =
updatebyid (Left flid) = fmap Left $ w ^? cWorld . lWorld . floorItems . ix (_flItID flid)
updatebyid (Right btid) = fmap Right $ w ^? cWorld . lWorld . buttons . ix (_btID btid)
--closeObjScrollDir :: Float -> World -> World
--closeObjScrollDir x
-- | x > 0 = over (hud . closeObjects) rotU
-- | x < 0 = over (hud . closeObjects) rotD
-- | otherwise = id
changeSwapSel :: Int -> World -> World
changeSwapSel yi w
| yi == 0 = w
| yi > 0 = foldr ($) w $ replicate yi (changeSwapWith $ f IM.cycleLT)
| otherwise = foldr ($) w $ replicate (negate yi) (changeSwapWith $ f IM.cycleGT)
| yi > 0 = (foldr ($) w $ replicate yi (changeSwapWith $ f IM.cycleLT))
| otherwise = (foldr ($) w $ replicate (negate yi) (changeSwapWith $ f IM.cycleGT))
where
f g i m = fst <$> g i m
@@ -243,17 +235,16 @@ changeSwapInv f i w = fromMaybe w $ do
k <- f i ss
return $
w & cWorld . lWorld . creatures . ix 0 %~ updatecreature k
& cWorld . lWorld . creatures . ix 0 %~ updateRootItemID
-- & cWorld . lWorld . creatures . ix 0 %~ updateRootItemID
& hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ k
& worldEventFlags . at InventoryChange ?~ ()
& cWorld . lWorld %~ crUpdateItemLocations 0
& setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0 -- the double application is inefficient, but necessary without further changes
-- a rethink is maybe in order
where
-- updateLeftInvSel k li
-- | i == li = k
-- | k == li = i
-- | otherwise = li
updatecreature k =
(crInv %~ IM.safeSwapKeys i k)
-- . (crLeftInvSel . lisMPos . _Just %~ updateLeftInvSel k)
. (crManipulation . manObject . inInventory . imSelectedItem .~ k)
. (crInvEquipped %~ IM.safeSwapKeys i k)
. swapSite i k
@@ -282,24 +273,7 @@ scrollAugInvSel yi w
w & hud . hudElement . diSections %~ scrollSelectionSections yi
& worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS
setInvPosFromSS :: World -> World
setInvPosFromSS w =
w
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject .~ thesel
where
thesel = fromMaybe SelNothing $ do
sss <- w ^? hud . hudElement . diSections
(i, j) <- sss ^? sssExtra . sssSelPos . _Just
case i of
(-1) -> Just $ InInventory SortInventory
--0 -> Just $ InInventory (SelItem j (getRootItemID i (you w)))
0 -> Just $ InInventory (SelectedItem j (getRootItemID j (you w)))
1 -> Just SelNothing
2 -> Just $ InNearby SortNearby
3 -> Just $ InNearby $ SelCloseObject j
_ -> error "selection out of bounds"
& cWorld . lWorld %~ crUpdateItemLocations 0
selectedCloseObject :: World -> Maybe (Either FloorItem Button)
+12 -8
View File
@@ -6,7 +6,7 @@ module Dodge.Inventory.Add (
) where
import Dodge.SoundLogic
import Dodge.Inventory.FindRoot
import Dodge.Inventory.Location
--import Dodge.Item.Grammar
import Control.Lens
import Data.Maybe
@@ -24,9 +24,9 @@ import qualified IntMapHelp as IM
-- (i, w') <- tryPutItemInInv cid flit w
-- return (Just i, w')
putItemInInvSlot :: Int -> Item -> IM.IntMap Item -> IM.IntMap Item
putItemInInvSlot = IM.insert
--putItemInInvSlot = IM.insertWith (const $ itUse . useAmount +~ 1)
--putItemInInvSlot :: Int -> Item -> IM.IntMap Item -> IM.IntMap Item
--putItemInInvSlot = IM.insert
----putItemInInvSlot = IM.insertWith (const $ itUse . useAmount +~ 1)
tryPutItemIDInInv :: Int -> Int -> World -> Maybe (Int, World)
tryPutItemIDInInv cid flitid w = do
@@ -43,7 +43,10 @@ tryPutItemInInv cid flit w = case maybeInvSlot of
, w
& updateItLocation i
& cWorld . lWorld . floorItems %~ IM.delete (_flItID flit)
& cWorld . lWorld . creatures . ix cid . crInv %~ putItemInInvSlot i it
-- & cWorld . lWorld . creatures . ix cid . crInv %~ IM.insert i it
& cWorld . lWorld . creatures . ix cid . crInv . at i ?~ it
& setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations cid
)
where
it = _flIt flit
@@ -57,7 +60,8 @@ createAndSelectItem itm w = case createPutItem itm w of
w'
& hud . hudElement . diSections . sssExtra . sssSelPos ?~ (0, i)
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject
.~ InInventory (SelectedItem i (getRootItemID i (you w)))
.~ InInventory (SelectedItem i
$ fromMaybe (error "no root item1!") $ tryGetRootItemInvID i (you w))
(Nothing, w') -> w'
createPutItem :: Item -> World -> (Maybe Int, World)
@@ -66,8 +70,8 @@ createPutItem it w = fromMaybe (Nothing,w) $ do
copyItemToFloorID (_crPos $ you w) (applyModules it) w
return (Just i, w')
pickUpItemID :: Int -> Int -> World -> World
pickUpItemID cid flid w = pickUpItem cid (w ^?! cWorld . lWorld . floorItems . ix flid) w
--pickUpItemID :: Int -> Int -> World -> World
--pickUpItemID cid flid w = pickUpItem cid (w ^?! cWorld . lWorld . floorItems . ix flid) w
-- | Pick up a specific item.
pickUpItem :: Int -> FloorItem -> World -> World
-17
View File
@@ -1,17 +0,0 @@
module Dodge.Inventory.FindRoot where
import Dodge.Item.Grammar
import Dodge.Data.Creature
import Data.Maybe
import Control.Lens
getRootItemID :: Int -> Creature -> Int
getRootItemID i cr = fromMaybe i $ do
let adj = invAdj (_crInv cr)
adj ^? ix i . _1 . _Just . _1
updateRootItemID :: Creature -> Creature
updateRootItemID cr = fromMaybe cr $ do
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
return $ cr & crManipulation . manObject . inInventory . imRootItem .~
getRootItemID i cr
-1
View File
@@ -367,7 +367,6 @@ useAmmoAmount amAmount eff item cr = fromMaybe id $ do
leftitms <- item ^? ldtLeft
mag <- lookup (AmmoInLink 0 atype) leftitms
magid <- mag ^? ldtValue . itLocation . ilInvID
-- invid <- ams ^? ix 0 . itLocation . ipInvID
return $ eff item cr
. (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix magid . itUse . amagLoadStatus . iaLoaded -~ amAmount)
+21 -2
View File
@@ -20,8 +20,27 @@ import Dodge.Data.Universe
import qualified IntMapHelp as IM
testStringInit :: Universe -> [String]
testStringInit u = map show $
(IM.toList . IM.filter (\itloc -> itloc ^? ilCrID == Just 0) $ (u ^. uvWorld . cWorld . lWorld . itemLocations)) <> IM.toList ( fmap _itLocation (u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crInv))
testStringInit u = (topTestPart u
<>) $ map showh $
(IM.toList . IM.filter (\itloc -> itloc ^? ilCrID == Just 0) $ (u ^. uvWorld . cWorld . lWorld . itemLocations)) <> ( IM.elems $ fmap h (u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crInv))
where
h itm = (_itID itm, _itLocation itm)
showh (x,(InInv a b c d)) = show x ++ "," ++ show a ++ "," ++ show b ++"," ++ show c ++"," ++ show d
showh _ = ""
topTestPart :: Universe -> [String]
topTestPart u = [show $ u ^? uvWorld . hud . hudElement . diSections . sssExtra . sssSelPos
, maybe "" showManObj $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crManipulation . manObject
]
showManObj :: ManipulatedObject -> String
showManObj (InInventory SortInventory) = "SortInventory"
showManObj (InInventory (SelectedItem x y)) = "SelItem: "++ show x++ " Root: "++show y
showManObj (SelNothing) = "SelNothing"
showManObj ((InNearby SortNearby)) = "SortNearby"
showManObj (InNearby (SelCloseObject x)) = "Close " ++ show x
--testStringInit u = fromMaybe mempty $ do
-- inv <- fmap invLDT $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
-- invitm <- inv ^? ix 1
+73 -72
View File
@@ -297,8 +297,8 @@ Bullet src/Dodge/Data/Bullet.hs 6;" m
Bullet src/Dodge/Item/Weapon/Bullet.hs 1;" m
BulletAmmo src/Dodge/Data/Ammo.hs 37;" C
BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C
BulletBeltAttachment src/Dodge/Data/Item.hs 53;" C
BulletClipAttachment src/Dodge/Data/Item.hs 52;" C
BulletBeltAttachment src/Dodge/Data/Item.hs 51;" C
BulletClipAttachment src/Dodge/Data/Item.hs 50;" C
BulletEffect src/Dodge/Data/Bullet.hs 36;" t
BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m
BulletGuns src/Dodge/Item/Weapon/BulletGuns.hs 1;" m
@@ -1289,7 +1289,7 @@ Item src/Dodge/Default/Item.hs 1;" m
Item src/Dodge/Item.hs 1;" m
ItemAmount src/Dodge/Data/Item/Use/Amount.hs 4;" m
ItemAmount src/Dodge/Data/ItemAmount.hs 4;" m
ItemAttachment src/Dodge/Data/Item.hs 51;" t
ItemAttachment src/Dodge/Data/Item.hs 49;" t
ItemBaseType src/Dodge/Combine/Data.hs 81;" t
ItemBaseType src/Dodge/Data/Item/Combine.hs 85;" t
ItemClust src/Dodge/Combine/Graph.hs 18;" C
@@ -1464,6 +1464,7 @@ Loading src/Dodge/Menu/Loading.hs 1;" m
LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C
LoadingScreen src/Dodge/Data/Universe.hs 69;" C
Location src/Dodge/Data/Item/Location.hs 5;" m
Location src/Dodge/Inventory/Location.hs 1;" m
Location src/Dodge/Item/Location.hs 1;" m
Lock src/Dodge/Lock/Data.hs 8;" t
Lock src/Dodge/Layout/Tree/Annotate.hs 15;" C
@@ -1982,7 +1983,7 @@ PosPl src/Dodge/Room/Data.hs 45;" C
PosRooms src/Dodge/Tree/Shift.hs 28;" t
Posture src/Dodge/Creature/Stance/Data.hs 42;" t
Posture src/Dodge/Data/Creature/Stance.hs 38;" t
PowerSourceAttachment src/Dodge/Data/Item.hs 55;" C
PowerSourceAttachment src/Dodge/Data/Item.hs 53;" C
PrWdLsId src/Dodge/Data/Prop.hs 70;" C
PrWdLsLs src/Dodge/Data/Prop.hs 69;" t
PrWdLsLs src/Dodge/PrWdLsLs.hs 1;" m
@@ -2271,7 +2272,7 @@ Scope src/Dodge/Data/Item/Scope.hs 13;" t
Scope src/Dodge/Item/Attachment/Data.hs 25;" t
Scope src/Dodge/Data/Item/Scope.hs 6;" m
Scope src/Dodge/Item/Scope.hs 1;" m
ScopeAttachment src/Dodge/Data/Item.hs 51;" C
ScopeAttachment src/Dodge/Data/Item.hs 49;" C
ScreenLayer src/Dodge/Data/Universe.hs 77;" t
ScreenLayer src/Dodge/Update/Input/ScreenLayer.hs 1;" m
ScreenPos src/Dodge/Data/ScreenPos.hs 9;" t
@@ -2447,7 +2448,7 @@ Stack src/Dodge/Data/Item/Combine.hs 24;" t
Stance src/Dodge/Creature/Stance/Data.hs 11;" t
Stance src/Dodge/Data/Creature/Stance.hs 13;" t
Stance src/Dodge/Data/Creature/Stance.hs 6;" m
StandAttachment src/Dodge/Data/Item.hs 54;" C
StandAttachment src/Dodge/Data/Item.hs 52;" C
StandaloneWall src/Dodge/Data/Wall.hs 49;" C
Standing src/Dodge/Creature/Stance/Data.hs 25;" C
Standing src/Dodge/Data/Creature/Stance.hs 25;" C
@@ -3514,19 +3515,19 @@ _iselPos src/Dodge/Data/Creature/Capability.hs 22;" f
_iselPos src/Dodge/Data/Creature/InvSel.hs 14;" f
_iselPos src/Dodge/Data/LoadAction.hs 19;" f
_ispCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" f
_itAttachments src/Dodge/Data/Item.hs 47;" f
_itCurseStatus src/Dodge/Data/Item.hs 43;" f
_itDimension src/Dodge/Data/Item.hs 42;" f
_itEffect src/Dodge/Data/Item.hs 40;" f
_itAttachments src/Dodge/Data/Item.hs 45;" f
_itCurseStatus src/Dodge/Data/Item.hs 41;" f
_itDimension src/Dodge/Data/Item.hs 40;" f
_itEffect src/Dodge/Data/Item.hs 38;" f
_itID src/Dodge/Data/Item.hs 36;" f
_itInvSize src/Dodge/Data/Item.hs 41;" f
_itInvSize src/Dodge/Data/Item.hs 39;" f
_itLocation src/Dodge/Data/Item.hs 37;" f
_itParams src/Dodge/Data/Item.hs 46;" f
_itScope src/Dodge/Data/Item.hs 45;" f
_itTweaks src/Dodge/Data/Item.hs 44;" f
_itParams src/Dodge/Data/Item.hs 44;" f
_itScope src/Dodge/Data/Item.hs 43;" f
_itTweaks src/Dodge/Data/Item.hs 42;" f
_itType src/Dodge/Data/Item.hs 35;" f
_itUse src/Dodge/Data/Item.hs 34;" f
_itUseAimStance src/Dodge/Data/Item.hs 58;" f
_itUseAimStance src/Dodge/Data/Item.hs 56;" f
_itemLocations src/Dodge/Data/LWorld.hs 100;" f
_iyBase src/Dodge/Combine/Data.hs 13;" f
_iyBase src/Dodge/Data/Item/Combine.hs 17;" f
@@ -4567,7 +4568,7 @@ bezierGun src/Dodge/Item/Weapon/Bezier.hs 24;" f
bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 216;" f
bindFBO src/Render.hs 244;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 399;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 398;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f
@@ -4668,10 +4669,10 @@ chain src/Dodge/LightSources/Lamp.hs 119;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainPairs src/Geometry.hs 363;" f
changeFuse src/Dodge/Item/Attachment.hs 25;" f
changeSwapClose src/Dodge/Inventory.hs 220;" f
changeSwapInv src/Dodge/Inventory.hs 236;" f
changeSwapSel src/Dodge/Inventory.hs 212;" f
changeSwapWith src/Dodge/Inventory.hs 272;" f
changeSwapClose src/Dodge/Inventory.hs 212;" f
changeSwapInv src/Dodge/Inventory.hs 228;" f
changeSwapSel src/Dodge/Inventory.hs 204;" f
changeSwapWith src/Dodge/Inventory.hs 263;" f
changeTweakParam src/Dodge/Update/Scroll.hs 118;" f
changeZonedWall src/Dodge/LevelGen/MoveDoor.hs 33;" f
charFiringStratI src/Dodge/Item/Attachment.hs 15;" f
@@ -4838,7 +4839,7 @@ crCrSpring src/Dodge/Update.hs 648;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f
crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f
crGetTargeting src/Dodge/Creature/State.hs 284;" f
crGetTargeting src/Dodge/Creature/State.hs 283;" f
crHasTarget src/Dodge/Creature/Test.hs 59;" f
crHasTargetLOS src/Dodge/Creature/Test.hs 62;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 68;" f
@@ -4866,13 +4867,14 @@ crShape src/Dodge/Render/Shape.hs 28;" f
crSpring src/Dodge/Update.hs 643;" f
crStratConMatches src/Dodge/Creature/Test.hs 72;" f
crToBox' src/Dodge/Creature/ShadowBox.hs 10;" f
crUpdateInvidLocations src/Dodge/Inventory/FindRoot.hs 29;" f
crUpdateItemLocations src/Dodge/Inventory/FindRoot.hs 23;" f
crZoneOfPoint src/Dodge/Base/Zone.hs 54;" f
crZoneSize src/Dodge/Zoning/Creature.hs 39;" f
craftInfo src/Dodge/Item/Info.hs 154;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f
createAndSelectItem src/Dodge/Inventory/Add.hs 48;" f
createAndSelectItem src/Dodge/Inventory/Add.hs 57;" f
createArc src/Dodge/Tesla/Arc.hs 67;" f
createAttachLight src/Dodge/Creature/State.hs 256;" f
createBarrelSpark src/Dodge/Particle/Spark.hs 21;" f
createBarrelSpark src/Dodge/Spark.hs 44;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 176;" f
@@ -4884,7 +4886,7 @@ createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 76;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/Projectile/Create.hs 14;" f
createPutItem src/Dodge/Inventory/Add.hs 57;" f
createPutItem src/Dodge/Inventory/Add.hs 67;" f
createShieldWall src/Dodge/Euse.hs 134;" f
createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
@@ -5388,12 +5390,12 @@ dtToAdjacency src/Dodge/DoubleTree.hs 29;" f
dtToLRAdj src/Dodge/DoubleTree.hs 43;" f
dtToUpDownAdj src/Dodge/DoubleTree.hs 35;" f
dummyMenuOption src/Dodge/Menu/Option.hs 81;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 743;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 689;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 715;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 699;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 724;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 748;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 742;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 688;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 714;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 698;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 723;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 747;" f
ebFlicker src/Dodge/EnergyBall.hs 94;" f
edgeFormatting src/Dodge/Combine/Graph.hs 119;" f
edgeToPic src/Dodge/Debug/Picture.hs 392;" f
@@ -5613,7 +5615,6 @@ getLinksOfType src/Dodge/RoomLink.hs 39;" f
getNodePos src/Dodge/Path.hs 31;" f
getPretty src/AesonHelp.hs 7;" f
getPrettyShort src/AesonHelp.hs 10;" f
getRootItemID src/Dodge/Inventory/FindRoot.hs 8;" f
getSensor src/Dodge/Terminal.hs 187;" f
getShownItems src/Dodge/SelectionList.hs 21;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f
@@ -5673,8 +5674,8 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f
halfHeight src/Dodge/Base/Window.hs 48;" f
halfWidth src/Dodge/Base/Window.hs 48;" f
haltSound src/Dodge/SoundLogic.hs 37;" f
hammerCheck src/Dodge/Item/Weapon/TriggerType.hs 404;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 415;" f
hammerCheck src/Dodge/Item/Weapon/TriggerType.hs 403;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 414;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -5850,7 +5851,7 @@ isAnimate src/Dodge/Creature/Test.hs 138;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isElectrical src/Dodge/Data/Damage.hs 42;" f
isElectrical src/Dodge/Data/DamageType.hs 44;" f
isFrictionless src/Dodge/Creature/State.hs 322;" f
isFrictionless src/Dodge/Creature/State.hs 321;" f
isGas src/Dodge/Euse.hs 64;" f
isInLnk src/Dodge/PlacementSpot.hs 160;" f
isJust' src/MaybeHelp.hs 29;" f
@@ -5903,7 +5904,7 @@ itemNumberDisplay src/Dodge/Item/Display.hs 108;" f
itemRooms src/Dodge/LockAndKey.hs 41;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 27;" f
itemString src/Dodge/Item/Display.hs 59;" f
itemUpdate src/Dodge/Creature/State.hs 261;" f
itemUpdate src/Dodge/Creature/State.hs 262;" f
iterateUntil src/MonadHelp.hs 23;" f
iterateWhile src/MonadHelp.hs 30;" f
itmBaseInfo src/Dodge/Item/Info.hs 21;" f
@@ -6259,7 +6260,7 @@ mntLight src/Dodge/Placement/Instance/LightSource.hs 154;" f
mntLight src/Dodge/Placements/LightSource.hs 89;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f
mntLightLnkCond src/Dodge/Placements/LightSource.hs 94;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 474;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 473;" f
modTo src/Geometry/Zone.hs 10;" f
modifierKey src/Dodge/Config/KeyConfig.hs 34;" f
moduleAttachPosition src/Dodge/Item/Module.hs 6;" f
@@ -6478,8 +6479,7 @@ pesNearSeg src/Dodge/Zoning/Pathing.hs 37;" f
picAtCrPos1 src/Dodge/Render/ShapePicture.hs 99;" f
picFormat src/Polyhedra.hs 22;" f
picMap src/Picture/Base.hs 67;" f
pickUpItem src/Dodge/Inventory/Add.hs 66;" f
pickUpItemID src/Dodge/Inventory/Add.hs 62;" f
pickUpItem src/Dodge/Inventory/Add.hs 77;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f
pickUpSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
picsToSelectable src/Dodge/Render/HUD.hs 346;" f
@@ -6717,7 +6717,6 @@ putDoubleDoorThen src/Dodge/Placements/Door.hs 17;" f
putDownSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
putItemInInv src/Dodge/Inventory/PickUp.hs 13;" f
putItemInInvID src/Dodge/Inventory/PickUp.hs 8;" f
putItemInInvSlot src/Dodge/Inventory/Add.hs 26;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 202;" f
putLamp src/Dodge/Placements/LightSource.hs 119;" f
putLamp src/Dodge/Room/Placement.hs 20;" f
@@ -6838,7 +6837,7 @@ renderLayer src/Render.hs 233;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 160;" f
renderShadows src/Render.hs 117;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 677;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 676;" f
repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 96;" f
repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f
@@ -6886,10 +6885,10 @@ rightPad src/Padding.hs 22;" f
rightPadNoSquash src/Padding.hs 26;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f
rmInLinks src/Dodge/RoomLink.hs 138;" f
rmInvItem src/Dodge/Inventory.hs 39;" f
rmInvItem src/Dodge/Inventory.hs 38;" f
rmLinksOfType src/Dodge/RoomLink.hs 135;" f
rmOutLinks src/Dodge/RoomLink.hs 138;" f
rmSelectedInvItem src/Dodge/Inventory.hs 172;" f
rmSelectedInvItem src/Dodge/Inventory.hs 171;" f
rocketHomer src/Dodge/Item/Ammo.hs 109;" f
rocketRemoteScreen src/Dodge/Item/Scope.hs 24;" f
roomC src/Dodge/Room/Room.hs 39;" f
@@ -6989,7 +6988,7 @@ screenPolygon src/Dodge/Base/Window.hs 17;" f
screenPolygonBord src/Dodge/Base/Window.hs 27;" f
screenPosAbs src/Dodge/ScreenPos.hs 15;" f
screenToWorldPos src/Dodge/Base/Coordinate.hs 53;" f
scrollAugInvSel src/Dodge/Inventory.hs 278;" f
scrollAugInvSel src/Dodge/Inventory.hs 269;" f
scrollCommandStrings src/Dodge/Update/Scroll.hs 133;" f
scrollCommands src/Dodge/Update/Scroll.hs 130;" f
scrollDebugInfoInt src/Dodge/Debug.hs 46;" f
@@ -7018,7 +7017,7 @@ selSecSelSize src/Dodge/SelectionSections.hs 124;" f
selSecYint src/Dodge/SelectionSections.hs 127;" f
selectCreatureDebugItem src/Dodge/Debug.hs 38;" f
selectUse src/Dodge/SelectUse.hs 11;" f
selectedCloseObject src/Dodge/Inventory.hs 305;" f
selectedCloseObject src/Dodge/Inventory.hs 279;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f
senseDamage src/Dodge/Machine/Update.hs 134;" f
@@ -7048,7 +7047,7 @@ setHotkey src/Dodge/Hotkey.hs 38;" f
setInLinks src/Dodge/RoomLink.hs 51;" f
setInLinksByType src/Dodge/RoomLink.hs 54;" f
setInLinksPD src/Dodge/RoomLink.hs 74;" f
setInvPosFromSS src/Dodge/Inventory.hs 286;" f
setInvPosFromSS src/Dodge/Inventory/Location.hs 6;" f
setItemCharge src/Dodge/ItEffect.hs 36;" f
setLayer src/Picture/Base.hs 139;" f
setLinkType src/Dodge/RoomLink.hs 60;" f
@@ -7146,7 +7145,7 @@ shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootFlameSpitter src/Dodge/HeldUse/SprayWeapon.hs 9;" f
shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f
shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 429;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 428;" f
shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 77;" f
shootLaser' src/Dodge/HeldUse.hs 242;" f
shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f
@@ -7183,9 +7182,10 @@ showIntKMG src/Dodge/Item/Info.hs 47;" f
showIntKMG' src/Dodge/Item/Info.hs 54;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f
showLoadedAmount src/Dodge/Item/Display.hs 147;" f
showManObj src/Dodge/TestString.hs 36;" f
showPhaseV src/Dodge/Tweak/Show.hs 16;" f
showTerminalError src/Dodge/Debug/Terminal.hs 75;" f
showTimeFlow src/Dodge/TestString.hs 64;" f
showTimeFlow src/Dodge/TestString.hs 83;" f
showTractionPower src/Dodge/Tweak/Show.hs 22;" f
showTweak src/Dodge/Tweak/Show.hs 5;" f
shrinkGun src/Dodge/Item/Weapon/Utility.hs 44;" f
@@ -7197,7 +7197,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/Dodge/RandomHelp.hs 50;" f
shuffleTail src/RandomHelp.hs 55;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 657;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 656;" f
sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f
sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 639;" f
@@ -7219,7 +7219,7 @@ singleton src/DoubleStack.hs 11;" f
singletonTrie src/SimpleTrie.hs 14;" f
sizeFBOs src/Framebuffer/Update.hs 22;" f
sizeModule src/Dodge/Item/Craftable.hs 38;" f
sizeSelf src/Dodge/Creature/Action.hs 216;" f
sizeSelf src/Dodge/Creature/Action.hs 214;" f
sizeZoneOfPoint src/Dodge/Base/Zone.hs 43;" f
skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 366;" f
skwareFadeTwoSecSound src/Dodge/SoundLogic/Synonyms.hs 35;" f
@@ -7510,6 +7510,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 320;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 327;" f
topPrismIndices src/Shader/Poke.hs 402;" f
topTestPart src/Dodge/TestString.hs 31;" f
torch src/Dodge/Item/Held/Utility.hs 26;" f
torchShape src/Dodge/Item/Draw/SPic.hs 203;" f
torqueCr src/Dodge/WorldEffect.hs 70;" f
@@ -7598,10 +7599,12 @@ tryAttachBulletBelt src/Dodge/Euse.hs 40;" f
tryChargeBattery src/Dodge/Euse.hs 43;" f
tryCombine src/Dodge/Update/Input/InGame.hs 252;" f
tryGetChannel src/Sound.hs 96;" f
tryGetRootItemInvID src/Dodge/Inventory/FindRoot.hs 10;" f
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f
tryNextLoadAction src/Dodge/Reloading.hs 36;" f
tryPlay src/Sound.hs 83;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 31;" f
tryPutItemIDInInv src/Dodge/Inventory/Add.hs 31;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 37;" f
trySeedFromClipboard src/Dodge/Menu.hs 88;" f
trySiphonFuel src/Dodge/Euse.hs 46;" f
trySpinByCID src/Dodge/Projectile/Update.hs 123;" f
@@ -7650,7 +7653,7 @@ upHammer src/Dodge/Default.hs 77;" f
upProjectile src/Dodge/Projectile/Update.hs 54;" f
updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla/Arc.hs 86;" f
updateAutoRecharge src/Dodge/Creature/State.hs 272;" f
updateAutoRecharge src/Dodge/Creature/State.hs 271;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 159;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f
@@ -7660,14 +7663,13 @@ updateBulVel src/Dodge/Bullet.hs 50;" f
updateBullet src/Dodge/Bullet.hs 28;" f
updateBullets src/Dodge/Update.hs 425;" f
updateCamera src/Dodge/Update/Camera.hs 32;" f
updateCloseObjects src/Dodge/Inventory.hs 178;" f
updateCloseObjects src/Dodge/Inventory.hs 177;" f
updateCloud src/Dodge/Update.hs 605;" f
updateClouds src/Dodge/Update.hs 454;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f
updateCombineSections src/Dodge/DisplayInventory.hs 42;" f
updateCreature src/Dodge/Creature/Update.hs 10;" f
updateCreatureGroups src/Dodge/Update.hs 391;" f
updateCreatureItemLocations src/Dodge/Inventory.hs 98;" f
updateCreatureSoundPositions src/Dodge/Update.hs 371;" f
updateDebugMessageOffset src/Dodge/Update.hs 91;" f
updateDelayedEvents src/Dodge/Update.hs 668;" f
@@ -7696,7 +7698,6 @@ updateInstantBullets src/Dodge/Update.hs 531;" f
updateInv src/Dodge/Creature/State.hs 228;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f
updateInventorySectionItems src/Dodge/DisplayInventory.hs 144;" f
updateItemLocation src/Dodge/Inventory.hs 103;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 102;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 91;" f
updateLampoid src/Dodge/Lampoid.hs 13;" f
@@ -7708,7 +7709,7 @@ updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 128;" f
updateMIM src/Dodge/Update.hs 544;" f
updateMachine src/Dodge/Machine/Update.hs 16;" f
updateMovement src/Dodge/Creature/State.hs 311;" f
updateMovement src/Dodge/Creature/State.hs 310;" f
updateObjCatMaybes src/Dodge/Update.hs 403;" f
updateObjMapMaybe src/Dodge/Update.hs 396;" f
updatePS src/Dodge/Placements/Spot.hs 26;" f
@@ -7729,7 +7730,7 @@ updateRadarSweep src/Dodge/RadarSweep.hs 24;" f
updateRadarSweeps src/Dodge/Update.hs 445;" f
updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 105;" f
updateRootItemID src/Dodge/Inventory/FindRoot.hs 13;" f
updateRootItemID src/Dodge/Inventory/FindRoot.hs 16;" f
updateScopeZoom src/Dodge/Update/Camera.hs 129;" f
updateScopeZoom' src/Dodge/Update/Camera.hs 134;" f
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
@@ -7815,7 +7816,7 @@ useRootItem src/Dodge/Creature/Impulse/UseItem.hs 26;" f
useShrinkGun src/Dodge/Luse.hs 59;" f
useStopWatch src/Dodge/Luse.hs 24;" f
useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 379;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 378;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 214;" f
@@ -7912,20 +7913,20 @@ windowxsize src/LoadConfig.hs 12;" f
windowysize src/LoadConfig.hs 13;" f
withAlpha src/Color.hs 10;" f
withByteString src/Shader/Compile.hs 370;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 512;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 515;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 479;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 452;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 491;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 529;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 569;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 553;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 560;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 521;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 548;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 543;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 536;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 579;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 511;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 514;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 478;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 451;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 490;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 528;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 568;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 552;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 559;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 520;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 547;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 542;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 535;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 578;" f
withRecoil src/Dodge/Item/Weapon/TriggerType.hs 304;" f
withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 333;" f
withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 314;" f
@@ -7935,7 +7936,7 @@ withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 270;" f
withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 283;" f
withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 228;" f
withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 244;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 466;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 465;" f
withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 134;" f
withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 125;" f
withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 206;" f