Move towards using item structural function when using items

This commit is contained in:
2024-10-05 20:53:50 +01:00
parent 7c324a03f6
commit 3b54f00cc7
16 changed files with 142 additions and 111 deletions
+15 -1
View File
@@ -1 +1,15 @@
All good (598 modules, at 16:31:13)
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:88:1-16: warning: [-Wunused-top-binds]
Defined but not used: itemLinkTestLeft
|
88 | itemLinkTestLeft itm pci = Nothing
| ^^^^^^^^^^^^^^^^
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:88:18-20: warning: [-Wunused-matches]
Defined but not used: itm
|
88 | itemLinkTestLeft itm pci = Nothing
| ^^^
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:88:22-24: warning: [-Wunused-matches]
Defined but not used: pci
|
88 | itemLinkTestLeft itm pci = Nothing
| ^^^
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -40,7 +40,7 @@ itemUseEffect cr itmtree w = case itmtree ^. ldtValue . itUse of
(UseConsume eff) -> useC eff (_ldtValue itmtree) cr w
UseCraft{} -> w
UseAttach{} -> selectUse itmtree cr w
UseTargeting {} -> w
-- UseTargeting {} -> w
UseAmmoMag{} -> w
UseScope{} -> w
UseBulletMod{} -> w
+35 -34
View File
@@ -166,26 +166,26 @@ invSideEff cr = alaf Endo foldMap f (_crInv cr) . updateHeldRootItem cr
updateHeldRootItem :: Creature -> World -> World
updateHeldRootItem cr = fromMaybe id $ do
invid <- cr ^? crManipulation . manObject . imRootItem
itmtree <- invTrees' (_crInv cr) ^? ix invid
itmtree <- invRootTrees (_crInv cr) ^? ix invid
return $ updateAttachedItems itmtree cr
updateAttachedItems :: LabelDoubleTree ItemLink Item -> Creature -> World -> World
updateAttachedItems :: LabelDoubleTree ItemLink ComposedItem -> Creature -> World -> World
updateAttachedItems itmtree cr =
cldtPropagateFold
chainLinkOrientation
chainLinkOrientation
(updateItemWithOrientation cr)
(heldItemRelativeOrient (_ldtValue itmtree) cr (0, Q.qID))
(heldItemRelativeOrient (fst $ _ldtValue itmtree) cr (0, Q.qID))
(LocLDT TopLDT itmtree)
-- need to check rotation
chainLinkOrientation ::
(Point3, Q.Quaternion Float) ->
Item ->
ComposedItem ->
ItemLink ->
Item ->
ComposedItem ->
(Point3, Q.Quaternion Float)
chainLinkOrientation mo par (ILink lt f) child = (p + Q.rotate q p1, q * q1)
chainLinkOrientation mo (par,_) (ILink lt f) (child,_) = (p + Q.rotate q p1, q * q1)
where
(p, q) = mo
(p1, q1) = f par lt child
@@ -193,7 +193,7 @@ chainLinkOrientation mo par (ILink lt f) child = (p + Q.rotate q p1, q * q1)
updateItemWithOrientation ::
Creature ->
(Point3, Q.Quaternion Float) ->
LocationLDT ItemLink Item ->
LocationLDT ItemLink ComposedItem ->
World ->
World
updateItemWithOrientation cr m loc@(LocLDT _ itmtree) = case _itType itm of
@@ -203,21 +203,21 @@ updateItemWithOrientation cr m loc@(LocLDT _ itmtree) = case _itType itm of
ATTACH AUGMENTEDHUD -> drawAugmentedHUD loc
_ -> id
where
itm = itmtree ^. ldtValue
itm = itmtree ^. ldtValue . _1
drawAugmentedHUD :: LocationLDT ItemLink Item -> World -> World
drawAugmentedHUD :: LocationLDT ItemLink ComposedItem -> World -> World
drawAugmentedHUD (LocLDT con _) w = fromMaybe w $ do
itm <- con ^? cldtParent
itm <- con ^? cldtParent . _1
return $ w & cWorld . lWorld . flares <>~ drawTargeting itm w
shineTargetLaser :: Creature -> LabelDoubleTree ItemLink Item -> (Point3, Q.Quaternion Float)
shineTargetLaser :: Creature -> LabelDoubleTree ItemLink ComposedItem -> (Point3, Q.Quaternion Float)
-> World -> World
shineTargetLaser cr itmtree (p,q) w = fromMaybe (w & pointItUse . tgPos .~ Nothing) $ do
shineTargetLaser cr itmtree (p,q) w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do
guard (crIsAiming cr)
(_, mag) <- find (isammolink . _iatType . fst) (itmtree ^. ldtLeft)
i <- mag ^? ldtValue . itUse . amagLoadStatus . iaLoaded
i <- mag ^? ldtValue . _1 . itUse . amagLoadStatus . iaLoaded
guard $ i >= x
maginvid <- mag ^? ldtValue . itLocation . ilInvID
maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID
return $ w
& cWorld . lWorld . creatures . ix (_crID cr)
. crInv . ix maginvid . itUse . amagLoadStatus . iaLoaded -~ x
@@ -234,18 +234,19 @@ shineTargetLaser cr itmtree (p,q) w = fromMaybe (w & pointItUse . tgPos .~ Nothi
isammolink _ = False
pos = _crPos cr + xyV3 (rotate3 cdir (p + V3 5 0 0))
cdir = _crDir cr
itm = itmtree ^. ldtValue
pointItUse = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itUse
itm = itmtree ^. ldtValue . _1
--pointItUse = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itUse
pointittarg = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itTargeting
cid = _crID cr
invid = _ilInvID $ _itLocation itm
col = blue -- mixColors reloadFrac (1-reloadFrac) blue red
shineTorch :: Creature -> LabelDoubleTree ItemLink Item -> (Point3, Q.Quaternion Float) -> World -> World
shineTorch :: Creature -> LabelDoubleTree ItemLink ComposedItem -> (Point3, Q.Quaternion Float) -> World -> World
shineTorch cr itmtree (p, q) = fromMaybe id $ do
(_, mag) <- find (isammolink . _iatType . fst) (itmtree ^. ldtLeft)
i <- mag ^? ldtValue . itUse . amagLoadStatus . iaLoaded
i <- mag ^? ldtValue . _1 . itUse . amagLoadStatus . iaLoaded
guard $ i >= x
invid <- mag ^? ldtValue . itLocation . ilInvID
invid <- mag ^? ldtValue . _1 . itLocation . ilInvID
return $
(cWorld . lWorld . tempLightSources .:~ tlsTimeRadColPos 1 250 0.7 pos'')
. (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . amagLoadStatus . iaLoaded -~ x)
@@ -263,34 +264,34 @@ shineTorch cr itmtree (p, q) = fromMaybe id $ do
updateItemTargeting :: TargetingType -> Creature -> Item -> World -> World
updateItemTargeting tt cr itm w = case tt of
_ | not isattached -> w
& pointItUse . tgPos .~ Nothing
& pointItUse . tgActive .~ False
& pointittarg .itTgPos .~ Nothing
& pointittarg .itTgActive .~ False
TARGETLASER -> w
TargetRBPress | rbpressed -> w
& pointItUse . tgPos %~ maybe (Just $ mouseWorldPos (w ^. input) (w ^. wCam)) Just
& pointItUse . tgActive .~ True
& pointittarg .itTgPos %~ maybe (Just $ mouseWorldPos (w ^. input) (w ^. wCam)) Just
& pointittarg .itTgActive .~ True
TargetRBPress -> w
& pointItUse . tgPos .~ Nothing
& pointItUse . tgActive .~ False
TargetRBCreature -> w & pointItUse %~ setRBCreatureTargeting cr w
& pointittarg .itTgPos .~ Nothing
& pointittarg .itTgActive .~ False
TargetRBCreature -> w & pointittarg %~ setRBCreatureTargeting cr w
TargetCursor -> w
& pointItUse .~ UseTargeting
& pointittarg .~ ItTargeting
(Just (mouseWorldPos (w ^. input) (w ^. wCam)))
Nothing
True
where
pointItUse = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itUse
pointittarg = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itTargeting
cid = _crID cr
invid = _ilInvID $ _itLocation itm
isattached = itm ^?! itLocation . ilIsAttached
rbpressed = SDL.ButtonRight `M.member` _mouseButtons (_input w)
setRBCreatureTargeting :: Creature -> World -> ItemUse -> ItemUse
setRBCreatureTargeting :: Creature -> World -> ItemTargeting -> ItemTargeting
setRBCreatureTargeting cr w ituse
| SDL.ButtonRight `M.member` _mouseButtons (_input w) && isJust (ituse ^? tgID . _Just)
| SDL.ButtonRight `M.member` _mouseButtons (_input w) && isJust (ituse ^?itTgID . _Just)
&& canSeeTarget =
ituse & updatePos & tgActive .~ True
| otherwise = ituse & tgID .~ fmap _crID newtarg & updatePos & tgActive .~ False
ituse & updatePos &itTgActive .~ True
| otherwise = ituse &itTgID .~ fmap _crID newtarg & updatePos &itTgActive .~ False
where
newtarg =
safeMinimumOn (dist mwp . _crPos)
@@ -298,11 +299,11 @@ setRBCreatureTargeting cr w ituse
$ crsNearCirc mwp 40 w
canseepos p = hasLOS (_crPos cr) p w
mwp = mouseWorldPos (w ^. input) (w ^. wCam)
updatePos t' = t' & tgPos .~ posFromMaybeID (_tgID t')
updatePos t' = t' & itTgPos .~ posFromMaybeID (_itTgID t')
posFromMaybeID Nothing = Nothing
posFromMaybeID (Just i) = w ^? cWorld . lWorld . creatures . ix i . crPos
canSeeTarget = fromMaybe False $ do
cid <- ituse ^? tgID . _Just
cid <- ituse ^?itTgID . _Just
cpos <- w ^? cWorld . lWorld . creatures . ix cid . crPos
Just $ hasLOS cpos (_crPos cr) w
+11
View File
@@ -13,6 +13,7 @@ module Dodge.Data.Item (
module Dodge.Data.Item.Location,
) where
import Geometry.Data
import qualified Data.IntMap.Strict as IM
import Control.Lens
import Data.Aeson
@@ -35,6 +36,7 @@ data Item = Item
, _itID :: NewInt ItmInt
, _itLocation :: ItemLocation
, _itEffect :: ItEffect
, _itTargeting :: ItemTargeting
, _itAmmoSlots :: IM.IntMap AmmoType
, _itInvSize :: Int
, _itDimension :: ItemDimension
@@ -42,6 +44,15 @@ data Item = Item
, _itParams :: ItemParams
}
data ItemTargeting = NoItTargeting
| ItTargeting
{ _itTgPos :: Maybe Point2
, _itTgID :: Maybe Int
, _itTgActive :: Bool
}
makeLenses ''ItemTargeting
makeLenses ''Item
deriveJSON defaultOptions ''ItemTargeting
deriveJSON defaultOptions ''ItID
deriveJSON defaultOptions ''Item
+5 -5
View File
@@ -58,11 +58,11 @@ data ItemUse
, _amagType :: AmmoType
}
| UseScope { _uScope :: Scope }
| UseTargeting
{ _tgPos :: Maybe Point2
, _tgID :: Maybe Int
, _tgActive :: Bool
}
-- | UseTargeting
-- { _tgPos :: Maybe Point2
-- , _tgID :: Maybe Int
-- , _tgActive :: Bool
-- }
| UseBulletMod { _ubMod :: BulletMod }
deriving (Eq, Show, Read)
+1
View File
@@ -27,6 +27,7 @@ defaultHeldItem = Item
, _itType = HELD PISTOL
, _itEffect = defaultItEffect
, _itID = 0 -- should this return an error ? const $ error "itID not correctly initialised" ?
, _itTargeting = NoItTargeting
, _itAmmoSlots = mempty
, _itInvSize = 1
, _itLocation = InVoid
+1 -1
View File
@@ -330,7 +330,7 @@ getBulletType itmtree magtree mz cr w =
where
btraj = fromMaybe BasicBulletTrajectory $ do
targetingtree <- lookup WeaponTargetingLink (itmtree ^. ldtRight) -- left or right for these?
tp <- targetingtree ^? ldtValue . itUse . tgPos . _Just
tp <- targetingtree ^? ldtValue . itTargeting . itTgPos . _Just
attree <- lookup AmmoTargetingLink (magtree ^. ldtLeft)
bt <- attree ^? ldtValue . itUse . ubMod . bmTrajectory
return $ getBulletTrajectory mz (itmtree ^. ldtValue) bt tp cr w
+1 -1
View File
@@ -99,7 +99,7 @@ itemNumberDisplay cr itm = case iu of
UseAttach {} -> []
UseAmmoMag {} -> [maybe "" shortShow $ itm ^? itUse . amagLoadStatus . iaLoaded]
UseScope OpticScope {_opticZoom = x} -> [shortShow x]
UseTargeting {_tgPos = mp} -> [maybe "" shortShow mp]
-- UseTargeting {_tgPos = mp} -> [maybe "" shortShow mp]
-- this could be cleaner here...
UseBulletMod {} -> mempty
where
+6 -2
View File
@@ -1,6 +1,5 @@
module Dodge.Item.Grammar (
invLDT,
invTrees',
invTrees,
invIndentIM,
invAdj,
@@ -81,7 +80,12 @@ itemToFunction itm = case itm ^. itType of
_ -> UncomposableIsolateSF
simplePCI :: Item -> PartiallyComposedItem ItemLink
simplePCI itm = (itm, itemToFunction itm, uncurry useBreakL' $ itemToBreakLists itm)
simplePCI itm = case _itType itm of
HELD LASGUN -> (itm, WeaponScopeSF, uncurry useBreakL' $ itemToBreakLists itm)
_ -> (itm, itemToFunction itm, uncurry useBreakL' $ itemToBreakLists itm)
itemLinkTestLeft :: Item -> PartiallyComposedItem (LinkTest ItemLink) -> Maybe (LinkUpdate ItemLink)
itemLinkTestLeft itm pci = Nothing
basePartiallyComposedItem' :: Item -> PartiallyComposedItem ItemLink
basePartiallyComposedItem' itm = simplePCI itm
+5 -8
View File
@@ -48,14 +48,11 @@ lasGun =
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldAim . aimMuzzles . ix 0 . mzFlareType .~ LasGunFlare
& itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleLaser
-- & itParams
-- .~ Refracting
-- { _phaseV = 1
-- , _lasColor = yellow
-- , _lasColor2 = yellow
-- , _lasCycle = 0
-- , _lasDamage = 11
-- }
& itTargeting .~ ItTargeting
{ _itTgPos = Nothing
, _itTgID = Nothing
, _itTgActive = False
}
& itDimension . dimRad .~ 10
& itDimension . dimCenter .~ V3 15 0 0
& itUse . heldAim . aimWeight .~ 6
+10 -8
View File
@@ -25,17 +25,19 @@ targetingScope tt= case tt of
TARGETLASER -> defaultHeldItem
& itType .~ TARGETING tt
& itAmmoSlots .~ singleAmmo ElectricalAmmo
& itUse .~ UseTargeting
{ _tgPos = Nothing
, _tgID = Nothing
, _tgActive = False
& itUse .~ UseCraft
& itTargeting .~ ItTargeting
{ _itTgPos = Nothing
, _itTgID = Nothing
, _itTgActive = False
}
_ -> defaultHeldItem
& itType .~ TARGETING tt
& itUse .~ UseTargeting
{ _tgPos = Nothing
, _tgID = Nothing
, _tgActive = False
& itUse .~ UseCraft
& itTargeting .~ ItTargeting
{ _itTgPos = Nothing
, _itTgID = Nothing
, _itTgActive = False
}
homingModule :: Item
+1 -1
View File
@@ -15,7 +15,7 @@ updateLaser w pt =
( case _lpType pt of
DamageLaser dam -> damThingHitWith
(\p1 p2 p3 -> Damage LASERING dam p1 p2 p3 NoDamageEffect) sp xp thHit w
TargetingLaser itid -> w & pointerToItemID itid . itUse . tgPos ?~ last ps
TargetingLaser itid -> w & pointerToItemID itid . itTargeting . itTgPos ?~ last ps
, Laser{_lzPoints = sp : ps, _lzColor = _lpColor pt, _lzType = _lpType pt}
)
where
+1 -1
View File
@@ -121,7 +121,7 @@ pjRemoteSetDirection ph pj w = case ph of
in w & cWorld . lWorld . projectiles . ix (_prjID pj) . prjAcc
.~ magV (_prjAcc pj) *.* unitVectorAtAngle newdir
HomeUsingTargeting itid -> fromMaybe w $ do
tp <- w ^? pointerToItemID itid . itUse . tgPos . _Just
tp <- w ^? pointerToItemID itid . itTargeting . itTgPos . _Just
return $ w & cWorld . lWorld . projectiles . ix (_prjID pj) . prjAcc
%~ vecTurnTo 0.2 (_prjPos pj) tp
+2 -2
View File
@@ -12,8 +12,8 @@ import Picture
-- it would be nice to get rid of some redundant checks here
drawTargeting :: Item -> World -> Picture
drawTargeting itm w = fromMaybe mempty $ do
p <- itm ^? itUse . tgPos . _Just
let thepic = case itm ^? itUse . tgActive of
p <- itm ^? itTargeting . itTgPos . _Just
let thepic = case itm ^? itTargeting . itTgActive of
Just True -> activeTargetCursorPic
_ -> targetCursorPic
return
+46 -45
View File
@@ -930,10 +930,11 @@ ItCrWdWd src/Dodge/Data/WorldEffect.hs 18;" t
ItDropEffect src/Dodge/Data/Item/Effect.hs 31;" t
ItEffect src/Dodge/Data/Item/Effect.hs 12;" t
ItEffect src/Dodge/ItEffect.hs 1;" m
ItID src/Dodge/Data/Item.hs 30;" t
ItID src/Dodge/Data/Item.hs 31;" t
ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t
ItTargeting src/Dodge/Data/Item.hs 47;" C
ItZoom src/Dodge/Data/Item/Use.hs 181;" t
Item src/Dodge/Data/Item.hs 32;" t
Item src/Dodge/Data/Item.hs 33;" t
Item src/Dodge/Data/Item.hs 4;" m
Item src/Dodge/Default/Item.hs 1;" m
Item src/Dodge/Item.hs 3;" m
@@ -945,6 +946,7 @@ ItemParams src/Dodge/Data/Item/Params.hs 13;" t
ItemParams src/Dodge/Tesla/ItemParams.hs 1;" m
ItemScrollTimeFlow src/Dodge/Data/World.hs 62;" C
ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 28;" t
ItemTargeting src/Dodge/Data/Item.hs 47;" t
ItemType src/Dodge/Data/Item/Combine.hs 15;" t
ItemUse src/Dodge/Data/Item/Use.hs 35;" t
ItmInt src/Dodge/Data/Item/Location.hs 24;" t
@@ -2009,7 +2011,6 @@ UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C
UseScope src/Dodge/Data/Item/Use.hs 60;" C
UseSelf src/Dodge/Data/ActionPlan.hs 157;" C
UseTarget src/Dodge/Data/ActionPlan.hs 154;" C
UseTargeting src/Dodge/Data/Item/Use.hs 61;" C
UsedInLink src/Dodge/Data/Room.hs 61;" C
UsedOutLink src/Dodge/Data/Room.hs 56;" C
Utility src/Dodge/Item/Held/Utility.hs 1;" m
@@ -2609,16 +2610,20 @@ _ipPlacement src/Dodge/Data/GenWorld.hs 134;" f
_ipPlacementID src/Dodge/Data/GenWorld.hs 135;" f
_isLooping src/Sound/Data.hs 19;" f
_ispCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" f
_itAmmoSlots src/Dodge/Data/Item.hs 38;" f
_itCurseStatus src/Dodge/Data/Item.hs 41;" f
_itDimension src/Dodge/Data/Item.hs 40;" f
_itEffect src/Dodge/Data/Item.hs 37;" f
_itID src/Dodge/Data/Item.hs 35;" f
_itInvSize src/Dodge/Data/Item.hs 39;" f
_itLocation src/Dodge/Data/Item.hs 36;" f
_itParams src/Dodge/Data/Item.hs 42;" f
_itType src/Dodge/Data/Item.hs 34;" f
_itUse src/Dodge/Data/Item.hs 33;" f
_itAmmoSlots src/Dodge/Data/Item.hs 40;" f
_itCurseStatus src/Dodge/Data/Item.hs 43;" f
_itDimension src/Dodge/Data/Item.hs 42;" 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
_itLocation src/Dodge/Data/Item.hs 37;" f
_itParams src/Dodge/Data/Item.hs 44;" f
_itTargeting src/Dodge/Data/Item.hs 39;" f
_itTgActive src/Dodge/Data/Item.hs 50;" f
_itTgID src/Dodge/Data/Item.hs 49;" f
_itTgPos src/Dodge/Data/Item.hs 48;" f
_itType src/Dodge/Data/Item.hs 35;" f
_itUse src/Dodge/Data/Item.hs 34;" f
_itemLocations src/Dodge/Data/LWorld.hs 99;" f
_izFac src/Dodge/Data/Item/Use.hs 184;" f
_izMax src/Dodge/Data/Item/Use.hs 182;" f
@@ -3083,9 +3088,6 @@ _teslaArcs src/Dodge/Data/LWorld.hs 113;" f
_testFloat src/Dodge/Data/World.hs 45;" f
_textInput src/Dodge/Data/Input.hs 30;" f
_textureObject src/Shader/Data.hs 95;" f
_tgActive src/Dodge/Data/Item/Use.hs 64;" f
_tgID src/Dodge/Data/Item/Use.hs 63;" f
_tgPos src/Dodge/Data/Item/Use.hs 62;" f
_tiFocus src/Dodge/Data/Terminal.hs 21;" f
_tiSel src/Dodge/Data/Terminal.hs 22;" f
_tiText src/Dodge/Data/Terminal.hs 20;" f
@@ -3394,7 +3396,7 @@ attachOnward' src/Dodge/Tree/Compose.hs 98;" f
attachTree src/Dodge/Tree/Compose.hs 38;" f
attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f
attribSize src/Shader/Compile.hs 306;" f
augmentedHUD src/Dodge/Item/Scope.hs 56;" f
augmentedHUD src/Dodge/Item/Scope.hs 58;" f
autoAmr src/Dodge/Item/Held/Rod.hs 51;" f
autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 350;" f
autoCrit src/Dodge/Creature/AutoCrit.hs 13;" f
@@ -3505,10 +3507,10 @@ bufferShaderLayers src/Shader/Bind.hs 36;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 80;" f
bulletBeltPack src/Dodge/Item/Equipment.hs 72;" f
bulletCombinations src/Dodge/Combine/Graph.hs 34;" f
bulletModule src/Dodge/Item/Scope.hs 44;" f
bulletPayloadModule src/Dodge/Item/Scope.hs 53;" f
bulletModule src/Dodge/Item/Scope.hs 46;" f
bulletPayloadModule src/Dodge/Item/Scope.hs 55;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 102;" f
bulletTargetingModule src/Dodge/Item/Scope.hs 50;" f
bulletTargetingModule src/Dodge/Item/Scope.hs 52;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 246;" f
burstRifle src/Dodge/Item/Held/Cane.hs 74;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f
@@ -3527,7 +3529,7 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 288;" f
centroid src/Geometry/Polygon.hs 122;" f
centroidNum src/Geometry/Polygon.hs 125;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainLinkOrientation src/Dodge/Creature/State.hs 184;" f
chainLinkOrientation src/Dodge/Creature/State.hs 182;" f
chainPairs src/Geometry.hs 363;" f
changeSwapClose src/Dodge/Inventory.hs 149;" f
changeSwapInv src/Dodge/Inventory.hs 165;" f
@@ -3830,7 +3832,7 @@ defaultBangCane src/Dodge/Item/Held/Cane.hs 19;" f
defaultBlock src/Dodge/Default/Block.hs 5;" f
defaultBounds src/Dodge/Data/Bounds.hs 20;" f
defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f
defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f
defaultBulletWeapon src/Dodge/Default/Item.hs 48;" f
defaultButton src/Dodge/Default.hs 51;" f
defaultCOSection src/Dodge/Default/World.hs 204;" f
defaultCWCam src/Dodge/Default/World.hs 65;" f
@@ -3839,9 +3841,9 @@ defaultCWorld src/Dodge/Default/World.hs 80;" f
defaultChaseMvType src/Dodge/Default/Creature.hs 113;" f
defaultClusterStatus src/Dodge/Default/Room.hs 38;" f
defaultConfig src/Dodge/Data/Config.hs 125;" f
defaultConsumable src/Dodge/Default/Item.hs 52;" f
defaultConsumable src/Dodge/Default/Item.hs 53;" f
defaultCorpse src/Dodge/Corpse/Make.hs 29;" f
defaultCraftItem src/Dodge/Default/Item.hs 41;" f
defaultCraftItem src/Dodge/Default/Item.hs 42;" f
defaultCreature src/Dodge/Default/Creature.hs 12;" f
defaultCreatureMemory src/Dodge/Default/Creature.hs 72;" f
defaultCreatureSkin src/Dodge/Default/Creature.hs 66;" f
@@ -3869,13 +3871,13 @@ defaultIntention src/Dodge/Default/Creature.hs 105;" f
defaultInvSection src/Dodge/Default/World.hs 217;" f
defaultInvSections src/Dodge/Default/World.hs 175;" f
defaultInvSize src/Dodge/Default/Creature.hs 79;" f
defaultItEffect src/Dodge/Default/Item.hs 55;" f
defaultItEffect src/Dodge/Default/Item.hs 56;" f
defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f
defaultItZoom src/Dodge/Default/Item/Use/AimParams.hs 30;" f
defaultItemDimension src/Dodge/Default/Item.hs 17;" f
defaultLS src/Dodge/Default/LightSource.hs 6;" f
defaultLWorld src/Dodge/Default/World.hs 92;" f
defaultLeftItem src/Dodge/Default/Item.hs 38;" f
defaultLeftItem src/Dodge/Default/Item.hs 39;" f
defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f
defaultLeftUse src/Dodge/Default/Item/Use.hs 14;" f
defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f
@@ -4040,7 +4042,7 @@ doublePairSet src/Geometry.hs 153;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 72;" f
doubleV2 src/Geometry.hs 156;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawAugmentedHUD src/Dodge/Creature/State.hs 209;" f
drawAugmentedHUD src/Dodge/Creature/State.hs 208;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 52;" f
drawBeam src/Dodge/Beam/Draw.hs 6;" f
drawBlip src/Dodge/RadarBlip.hs 13;" f
@@ -4448,7 +4450,7 @@ hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 382;" f
holdForm src/Dodge/Creature/Boid.hs 136;" f
holsterWeapon src/Dodge/Creature/Volition.hs 14;" f
homingDrawType src/Dodge/Projectile/Create.hs 12;" f
homingModule src/Dodge/Item/Scope.hs 41;" f
homingModule src/Dodge/Item/Scope.hs 43;" f
horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f
hotkeyToScancode src/Dodge/Creature/YourControl.hs 54;" f
hotkeyToString src/Dodge/Inventory/SelectionList.hs 50;" f
@@ -4556,7 +4558,7 @@ isAmmoIntLink src/Dodge/HeldUse.hs 203;" f
isAnimate src/Dodge/Creature/Test.hs 138;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isElectrical src/Dodge/Data/Damage.hs 42;" f
isFrictionless src/Dodge/Creature/State.hs 342;" f
isFrictionless src/Dodge/Creature/State.hs 338;" f
isGas src/Dodge/Euse.hs 64;" f
isInLnk src/Dodge/PlacementSpot.hs 160;" f
isJust' src/MaybeHelp.hs 29;" f
@@ -4594,7 +4596,6 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f
itemFromLeftType src/Dodge/Item.hs 76;" f
itemInfo src/Dodge/Item/Info.hs 12;" f
itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f
itemInvSideEffect src/Dodge/Creature/State.hs 261;" f
itemNumberDisplay src/Dodge/Item/Display.hs 92;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f
@@ -4603,7 +4604,7 @@ itemString src/Dodge/Item/Display.hs 38;" f
itemToBreakLists src/Dodge/Item/Grammar.hs 41;" f
itemToFunction src/Dodge/Item/Grammar.hs 67;" f
itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f
itemUpdate src/Dodge/Creature/State.hs 314;" f
itemUpdate src/Dodge/Creature/State.hs 310;" f
itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 34;" f
iterateUntil src/MonadHelp.hs 23;" f
iterateWhile src/MonadHelp.hs 30;" f
@@ -4802,7 +4803,6 @@ makeStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 22;" f
makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f
makeSwitch src/Dodge/LevelGen/Switch.hs 52;" f
makeSwitchSPic src/Dodge/LevelGen/Switch.hs 40;" f
makeTargetLaser src/Dodge/Creature/State.hs 214;" f
makeTermLine src/Dodge/Terminal.hs 118;" f
makeTermPara src/Dodge/Terminal.hs 121;" f
makeTeslaArc src/Dodge/Tesla/Arc.hs 57;" f
@@ -5347,7 +5347,7 @@ reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f
reloadLevelStart src/Dodge/Save.hs 71;" f
reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f
rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteScreen src/Dodge/Item/Scope.hs 59;" f
remoteScreen src/Dodge/Item/Scope.hs 61;" f
remoteShellShape src/Dodge/Projectile/Draw.hs 42;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 305;" f
removeDot src/ShortShow.hs 30;" f
@@ -5556,7 +5556,7 @@ setOldPos src/Dodge/Update.hs 349;" f
setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 293;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 289;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f
setShaderSource src/Shader/Compile.hs 290;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f
@@ -5620,7 +5620,8 @@ shiftRoomBy src/Dodge/Room/Link.hs 37;" f
shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f
shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f
shineTorch src/Dodge/Creature/State.hs 243;" f
shineTargetLaser src/Dodge/Creature/State.hs 213;" f
shineTorch src/Dodge/Creature/State.hs 244;" f
shootBullet src/Dodge/HeldUse.hs 363;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 165;" f
@@ -5663,7 +5664,7 @@ simplePCI src/Dodge/Item/Grammar.hs 83;" f
simpleTermMessage src/Dodge/Terminal.hs 249;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f
sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 340;" f
singleAmmo src/Dodge/Default/Item.hs 44;" f
singleAmmo src/Dodge/Default/Item.hs 45;" f
singleBlock src/Dodge/Placement/Instance/Wall.hs 30;" f
singleDT src/Dodge/DoubleTree.hs 9;" f
singleLDT src/Dodge/DoubleTree.hs 12;" f
@@ -5757,7 +5758,7 @@ ssfold src/FoldableHelp.hs 105;" f
stackPicturesAt src/Dodge/Render/List.hs 81;" f
stackPicturesAtOff src/Dodge/Render/List.hs 84;" f
stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 281;" f
stackedInventory src/Dodge/Creature.hs 282;" f
startCr src/Dodge/Creature.hs 91;" f
startCrafts src/Dodge/Room/Start.hs 102;" f
startInvList src/Dodge/Creature.hs 109;" f
@@ -5839,7 +5840,7 @@ teslaGunPic src/Dodge/Item/Draw/SPic.hs 348;" f
teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f
testEvent src/Dodge/Event/Test.hs 10;" f
testInventory src/Dodge/Creature.hs 257;" f
testInventory src/Dodge/Creature.hs 258;" f
testPic src/Dodge/Render/ShapePicture.hs 145;" f
testStringInit src/Dodge/TestString.hs 22;" f
text src/Picture/Base.hs 193;" f
@@ -6010,8 +6011,8 @@ upHammer src/Dodge/Default.hs 77;" f
upProjectile src/Dodge/Projectile/Update.hs 25;" f
updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla/Arc.hs 86;" f
updateAttachedItems src/Dodge/Creature/State.hs 174;" f
updateAutoRecharge src/Dodge/Creature/State.hs 325;" f
updateAttachedItems src/Dodge/Creature/State.hs 172;" f
updateAutoRecharge src/Dodge/Creature/State.hs 321;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 159;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f
@@ -6044,7 +6045,7 @@ updateFlames src/Dodge/Update.hs 438;" f
updateFlare src/Dodge/Flare.hs 7;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f
updateGusts src/Dodge/Update.hs 590;" f
updateHeldRootItem src/Dodge/Creature/State.hs 168;" f
updateHeldRootItem src/Dodge/Creature/State.hs 166;" f
updateHumanoid src/Dodge/Humanoid.hs 12;" f
updateIMl src/Dodge/Update.hs 385;" f
updateIMl' src/Dodge/Update.hs 389;" f
@@ -6054,8 +6055,8 @@ updateInstantBullets src/Dodge/Update.hs 530;" f
updateInv src/Dodge/Creature/State.hs 151;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f
updateInventorySectionItems src/Dodge/DisplayInventory.hs 143;" f
updateItemTargeting src/Dodge/Creature/State.hs 268;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 195;" f
updateItemTargeting src/Dodge/Creature/State.hs 264;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 193;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 102;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 91;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f
@@ -6066,7 +6067,7 @@ updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 128;" f
updateMIM src/Dodge/Update.hs 543;" f
updateMachine src/Dodge/Machine/Update.hs 16;" f
updateMovement src/Dodge/Creature/State.hs 332;" f
updateMovement src/Dodge/Creature/State.hs 328;" f
updateObjCatMaybes src/Dodge/Update.hs 405;" f
updateObjMapMaybe src/Dodge/Update.hs 398;" f
updatePastWorlds src/Dodge/Update.hs 303;" f
@@ -6161,7 +6162,7 @@ useStopWatch src/Dodge/Luse.hs 24;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 317;" f
useUpdate src/Dodge/Creature/State.hs 313;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f
v2z src/Geometry/Vector3D.hs 93;" f