Distinguish between selected item and root-selected item

This commit is contained in:
2024-09-21 21:59:53 +01:00
parent 2154abfb1d
commit 31b5db6e9e
33 changed files with 313 additions and 281 deletions
+1 -1
View File
@@ -1 +1 @@
All good (617 modules, at 20:22:17)
All good (618 modules, at 21:58:44)
+1 -1
View File
File diff suppressed because one or more lines are too long
+10 -4
View File
@@ -3,7 +3,8 @@ module Dodge.Base.You
-- , yourScopeInvID
, yourInv
-- , yourScrollAttachment
, yourItem
, yourSelectedItem
, yourRootItem
)where
import Dodge.Data.World
@@ -17,9 +18,14 @@ import Control.Lens
you :: World -> Creature
you w = w ^?! cWorld . lWorld . creatures . ix 0
yourItem :: World -> Maybe Item
yourItem w = do
i <- you w ^? crManipulation . manObject . inInventory . ispItem
yourSelectedItem :: World -> Maybe Item
yourSelectedItem w = do
i <- you w ^? crManipulation . manObject . inInventory . imSelectedItem
_crInv (you w) IM.!? i
yourRootItem :: World -> Maybe Item
yourRootItem w = do
i <- you w ^? crManipulation . manObject . inInventory . imRootItem
_crInv (you w) IM.!? i
--yourScrollAttachment :: World -> Maybe (Int,ScrollAttachParams)
+4 -3
View File
@@ -192,7 +192,7 @@ dropItem cr invid = rmInvItem (_crID cr) invid . copyInvItemToFloor cr invid --
youDropItem :: World -> World
youDropItem w = fromMaybe w $ do
curpos <-
you w ^? crManipulation . manObject . inInventory . ispItem
you w ^? crManipulation . manObject . inInventory . imSelectedItem
<|> fmap fst (IM.lookupMax =<< w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems)
guard $ not $ _crInvLock (you w) || cursed
return $
@@ -202,7 +202,7 @@ youDropItem w = fromMaybe w $ do
where
cr = you w
cursed = fromMaybe False $ do
it <- yourItem w
it <- yourSelectedItem w
return $ it ^. itCurseStatus /= Uncursed
-- | Copy an inventory item to the floor.
@@ -210,7 +210,8 @@ copyInvItemToFloor :: Creature -> Int -> World -> World
copyInvItemToFloor cr i =
copyItemToFloor (_crPos cr) $
_crInv cr IM.! i
& itIsHeld .~ False
& itIsSelected .~ False
& itIsRoot .~ False
sizeSelf :: Float -> Creature -> World -> Maybe World
sizeSelf x cr w
+2 -1
View File
@@ -33,6 +33,7 @@ followImpulses w cr = foldl' (flip f) (id, cr) (reverse $ _apImpulse $ _crAction
where
f imp (theupdate, cr') = first (. theupdate) $ followImpulse cr' w imp
-- note SwitchToItem doesn't necessarily update the root item correctly
followImpulse :: Creature -> World -> Impulse -> (World -> World, Creature)
followImpulse cr w imp = case imp of
ImpulseNothing -> (id, cr)
@@ -47,7 +48,7 @@ followImpulse cr w imp = case imp of
TurnTo p -> crup $ creatureTurnTo p cr
ChangePosture post -> crup $ cr & crStance . posture .~ post
UseItem -> (useItemRightClick cr, cr)
SwitchToItem i -> crup $ cr & crManipulation . manObject .~ InInventory (SelItem i NoInvSelAction)
SwitchToItem i -> crup $ cr & crManipulation . manObject .~ InInventory (SelectedItem i i)
Melee cid' ->
( hitCr cid'
, crMvAbsolute (10 *.* normalizeV (posFromID cid' -.- cpos)) $ cr & crMeleeCooldown .~ 20
+6 -4
View File
@@ -25,7 +25,7 @@ import qualified IntMapHelp as IM
useItemRightClick :: Creature -> World -> World
useItemRightClick cr' w = fromMaybe (f w) $ do
cr <- w ^? cWorld . lWorld . creatures . ix (_crID cr')
itRef <- cr ^? crManipulation . manObject . inInventory . ispItem
itRef <- cr ^? crManipulation . manObject . inInventory . imRootItem
it <- invTrees (_crInv cr) ^? ix itRef
return $
itemEffect cr it w
@@ -51,7 +51,7 @@ itemEffect cr it w = case it ^. ldtValue . itUse of
AmmoMagUse{} -> w
where
itm = it ^. ldtValue
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
itRef = cr ^?! crManipulation . manObject . inInventory . imRootItem -- unsafe!! TODO change
hammerTest f = case _crHammerPosition cr of
HammerUp -> f w & setuhamdown
_ -> w & setuhamdown
@@ -97,14 +97,16 @@ toggleEquipmentAt invid cr w = case getEquipmentAllocation w of
crpoint = cWorld . lWorld . creatures . ix (_crID cr)
itmat i = _crInv cr IM.! i
itm = itmat itRef
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change?
itRef = cr ^?! crManipulation . manObject . inInventory . imSelectedItem -- unsafe!! TODO change?
onequip itm' = useE ((_eeOnEquip . _equipEffect . _itUse) itm') itm'
onremove itm' = useE ((_eeOnRemove . _equipEffect . _itUse) itm') itm'
-- need to make sure that the root item is not erroneously selected in the
-- following
useItemLeftClick :: Creature -> World -> World
useItemLeftClick cr w = fromMaybe w $ do
guard . not $ _crInvLock cr
invid <- cr ^? crManipulation . manObject . inInventory . ispItem
invid <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
ituse <- cr ^? crInv . ix invid . itUse
case ituse of
--HeldUse{} -> return $ hammerTest (cWorld . lWorld . creatures . ix (_crID cr) %~ crReloadToggle)
+6 -4
View File
@@ -251,7 +251,7 @@ itemInvSideEffect cr it
| hastorchattach = createAttachLight cr it
| otherwise = id
where
hastorchattach = it ^? itType . iyModules . ix ModHeldAttach == Just ATTACHTORCH && _itIsHeld it
hastorchattach = it ^? itType . iyModules . ix ModHeldAttach == Just ATTACHTORCH && _itIsRoot it
createAttachLight :: Creature -> Item -> World -> World
createAttachLight cr it = createTorchLightOffset cr it attachoff
@@ -263,9 +263,11 @@ itemUpdate cr i =
updateAutoRecharge
. (itUse %~ useUpdate)
. (itLocation .~ InInv (_crID cr) i)
. (itIsHeld .~ itmisheld)
. (itIsRoot .~ itmisroot)
. (itIsSelected .~ itmisselected)
where
itmisheld = Just i == (cr ^? crManipulation . manObject . inInventory . ispItem)
itmisroot = Just i == (cr ^? crManipulation . manObject . inInventory . imRootItem)
itmisselected = Just i == (cr ^? crManipulation . manObject . inInventory . imSelectedItem)
updateAutoRecharge :: Item -> Item
updateAutoRecharge it = case it ^? itUse . leftConsumption of
@@ -281,7 +283,7 @@ updateAutoRecharge it = case it ^? itUse . leftConsumption of
-- in the inventory
crGetTargeting :: Creature -> Maybe TargetType
crGetTargeting cr = do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imRootItem
itm <- cr ^? crInv . ix i
itm ^? itType . iyModules . ix ModTarget . imtTargetType
<|> do
+1 -1
View File
@@ -38,6 +38,6 @@ strFromHeldItem :: Creature -> Int
strFromHeldItem cr
--x--- | _posture (_crStance cr) == Aiming || crIsReloading cr = negate $ fromMaybe 0 $ do
| _posture (_crStance cr) == Aiming = negate $ fromMaybe 0 $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imRootItem
cr ^? crInv . ix i . itUse . heldAim . aimWeight
| otherwise = 0
+11 -11
View File
@@ -12,11 +12,11 @@ module Dodge.Creature.Test (
oneH,
twists,
twoFlat,
crWeaponReady,
-- crWeaponReady,
crInAimStance,
crNearPoint,
isAnimate,
crCanShoot,
-- crCanShoot,
crHasTargetLOS,
crAwayFromPost,
crHasTarget,
@@ -38,12 +38,12 @@ import Geometry
-- Just ReloadAction{} -> True
-- _ -> False
-- Assumes the ammotype below the selected item is correct
crWeaponReady :: Creature -> Bool
crWeaponReady cr = fromMaybe False $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
x <- cr ^? crInv . ix (i + 1) . itUse . amagLoadStatus . iaLoaded
return (x > 0)
---- Assumes the ammotype below the selected item is correct
--crWeaponReady :: Creature -> Bool
--crWeaponReady cr = fromMaybe False $ do
-- i <- cr ^? crManipulation . manObject . inInventory . ispItem
-- x <- cr ^? crInv . ix (i + 1) . itUse . amagLoadStatus . iaLoaded
-- return (x > 0)
crCanSeeCr :: Creature -> (World, Creature) -> Bool
crCanSeeCr tcr (w, cr) = hasLOS (_crPos cr) (_crPos tcr) w
@@ -82,8 +82,8 @@ crAwayFromPost cr = case find sentinelGoal . _apGoal $ _crActionPlan cr of
sentinelGoal (SentinelAt _ _) = True
sentinelGoal _ = False
crCanShoot :: Creature -> Bool
crCanShoot cr = crIsAiming cr && crWeaponReady cr
--crCanShoot :: Creature -> Bool
--crCanShoot cr = crIsAiming cr && crWeaponReady cr
crInAimStance :: AimStance -> Creature -> Bool
crInAimStance as cr =
@@ -91,7 +91,7 @@ crInAimStance as cr =
&& mitstance == Just as
where
mitstance = do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imRootItem
cr ^? crInv . ix i . itUse . heldAim . aimStance
oneH :: Creature -> Bool
+9 -9
View File
@@ -88,7 +88,7 @@ tryAssignHotkey w sc = fromMaybe w $ do
pt <- w ^? input . pressedKeys . ix sc
guard (pt == InitialPress)
cr <- w ^? cWorld . lWorld . creatures . ix 0
itid <- cr ^? crManipulation . manObject . inInventory . ispItem
itid <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
return $ w & cWorld . lWorld . creatures . ix 0 %~ assignHotkey itid (scancodeToHotkey sc)
{- | Turn key presses into creature movement.
@@ -152,6 +152,7 @@ wasdAim inp cam cr
theTurn cr' = creatureTurnTowardDir (_crMvAim cr') 0.2 cr'
mouseDir = argV $ mouseWorldPos inp cam - (cr ^. crPos)
-- aim with the root item
wasdTwist :: Creature -> Creature
wasdTwist cr
| _posture (_crStance cr) == Aiming = addAnyTwist cr
@@ -163,7 +164,7 @@ wasdTwist cr
& crDir +~ _crTwist cr'
& crTwist .~ 0
addAnyTwist = fromMaybe id $ do
itRef <- cr ^? crManipulation . manObject . inInventory . ispItem
itRef <- cr ^? crManipulation . manObject . inInventory . imRootItem
astance <- cr ^? crInv . ix itRef . itUse . heldAim . aimStance
case (astance, cr ^. crTwist) of
(TwoHandUnder, 0) ->
@@ -189,19 +190,18 @@ aimTurn :: Float -> Creature -> Creature
aimTurn a cr = creatureTurnTowardDir a (x * 0.2) cr
where
x = fromMaybe 1 $ do
itRef <- cr ^? crManipulation . manObject . inInventory . ispItem
itRef <- cr ^? crManipulation . manObject . inInventory . imRootItem
cr ^? crInv . ix itRef . itUse . heldAim . aimTurnSpeed
-- | Set posture according to mouse presses.
mouseActionsCr :: M.Map SDL.MouseButton Int -> Creature -> Creature
mouseActionsCr pkeys cr
| SDL.ButtonRight `M.member` pkeys && noaction =
cr & crStance . posture .~ Aiming
| SDL.ButtonRight `M.member` pkeys = cr & crStance . posture .~ Aiming
| otherwise = cr & crStance . posture .~ AtEase
where
noaction = fromMaybe True $ do
theaction <- cr ^? crManipulation . manObject . inInventory . iselAction
return $ theaction == NoInvSelAction
-- where
-- noaction = fromMaybe True $ do
-- theaction <- cr ^? crManipulation . manObject . inInventory . iselAction
-- return $ theaction == NoInvSelAction
pressedMBEffectsTopInventory :: M.Map SDL.MouseButton Int -> World -> World
pressedMBEffectsTopInventory pkeys w
+2 -1
View File
@@ -48,8 +48,9 @@ doWdCrBl wcb = case wcb of
doCrBl :: CrBl -> Creature -> Bool
doCrBl cb = case cb of
CrCanShoot -> crCanShoot
-- CrCanShoot -> crCanShoot
-- CrIsReloading -> crIsReloading
CrCanShoot -> error "got rid of crCanShoot"
CrIsAiming -> crIsAiming
CrIsAnimate -> isAnimate
+2 -1
View File
@@ -35,7 +35,8 @@ data Item = Item
, _itType :: ItemType
, _itID :: Int
, _itLocation :: ItemLocation
, _itIsHeld :: Bool
, _itIsRoot :: Bool
, _itIsSelected :: Bool
, _itEffect :: ItEffect
, _itInvSize :: Float
, _itDimension :: ItemDimension
+2 -2
View File
@@ -23,8 +23,8 @@ data Huse
| HeldDetectorEffect Detector
-- | HeldTeslaArc
-- | HeldLaser
| HeldCircleLaser
| HeldDualLaser
-- | HeldCircleLaser
-- | HeldDualLaser
| HeldTractor
| HeldForceField
| HeldShatter
@@ -30,7 +30,7 @@ data NearbyManipulation
data InventoryManipulation
= SortInventory
| SelItem { _ispItem :: Int, _iselAction :: InvSelAction}
| SelectedItem { _imSelectedItem :: Int, _imRootItem :: Int}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data InvSelAction
+2 -1
View File
@@ -25,7 +25,8 @@ defaultHeldItem = Item
, _itType = ItemType (HELD PISTOL) mempty
, _itEffect = defaultItEffect
, _itID = 0
, _itIsHeld = False
, _itIsRoot = False
, _itIsSelected = False
, _itInvSize = 1
, _itLocation = InVoid
, _itDimension = defaultItemDimension
+10 -5
View File
@@ -115,7 +115,12 @@ applySidePush maxSide cr w = w
(pushAmount, g) = randomR (- maxSide, maxSide) $ _randGen w
applyTorqueCME :: Item -> Creature -> World -> World
applyTorqueCME itm cr w = w
applyTorqueCME itm cr w
| cid == 0 = w
& wCam . camRot -~ rot
& cWorld . lWorld . creatures . ix cid . crDir +~ rot
& randGen .~ g
| otherwise = w
& cWorld . lWorld . creatures . ix cid . crDir +~ rot
& randGen .~ g
where
@@ -221,7 +226,7 @@ shootTractorBeam _ cr w = w & cWorld . lWorld . tractorBeams .:~ tractorBeamAt'
dir = _crDir cr
outpos = fst $ collidePointWallsFilter (const True) cpos xpos w
power = _attractionPower . _itParams $ _crInv cr IM.! itRef
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
itRef = cr ^?! crManipulation . manObject . inInventory . imRootItem -- unsafe!! TODO change
tractorBeamAt' :: Point2 -> Point2 -> Float -> Point2 -> TractorBeam
tractorBeamAt' pos outpos dir power =
@@ -309,8 +314,8 @@ useHeld hu = case hu of
HeldDetectorEffect dt -> detectorEffect dt . _ldtValue
-- HeldTeslaArc -> shootTeslaArc . _ldtValue
-- HeldLaser -> shootLaser . _ldtValue
HeldCircleLaser -> circleLaser . _ldtValue
HeldDualLaser -> shootDualLaser . _ldtValue
-- HeldCircleLaser -> circleLaser . _ldtValue
-- HeldDualLaser -> shootDualLaser . _ldtValue
HeldTractor -> aTractorBeam . _ldtValue
-- HeldSonicWave -> aSonicWave
HeldForceField -> useForceFieldGun . _ldtValue
@@ -466,7 +471,7 @@ shootTeslaArc itm cr mz w =
w'
& cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itParams .~ ip
where
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
itRef = cr ^?! crManipulation . manObject . inInventory . imRootItem -- unsafe!! TODO change
(w', ip) = makeTeslaArc (_itParams itm) pos dir w
pos = _crPos cr + rotateV (_crDir cr) (_mzPos mz + aimingWeaponZeroPos cr itm)
dir = _crDir cr + _mzRot mz
+9 -9
View File
@@ -146,10 +146,10 @@ updateHumanoid cr = case cr ^?! crType . humanoidAI of
defaultImpulsive
[ sentinelExtraWatchUpdate
[
( const $ not . crWeaponReady
, \_ _ -> StrategyActions Reload reloadActions
)
,
-- ( const $ not . crWeaponReady
-- , \_ _ -> StrategyActions Reload reloadActions
-- )
-- ,
( const $ not . crSafeDistFromTarg 150
, \_ _ ->
StrategyActions
@@ -172,11 +172,11 @@ updateHumanoid cr = case cr ^?! crType . humanoidAI of
InanimateAI -> id
where
drawwp = DoActionIfElse NoAction (WdCrBlfromCrBl CrIsAiming) (DoActionThen drawWeapon (WaitThen 50 NoAction))
reloadActions =
[ holsterWeapon
--, WaitThen 1 $ DoActionWhileInterrupt NoAction (WdCrBlfromCrBl CrIsReloading) (DoImpulses [ChangeStrategy WatchAndWait])
, WaitThen 1 $ (DoImpulses [ChangeStrategy WatchAndWait])
]
-- reloadActions =
-- [ holsterWeapon
-- --, WaitThen 1 $ DoActionWhileInterrupt NoAction (WdCrBlfromCrBl CrIsReloading) (DoImpulses [ChangeStrategy WatchAndWait])
-- , WaitThen 1 $ (DoImpulses [ChangeStrategy WatchAndWait])
-- ]
humanoidAIList ::
[World -> Creature -> Creature] ->
+11 -5
View File
@@ -14,6 +14,7 @@ module Dodge.Inventory (
module Dodge.Inventory.RBList
) where
import Dodge.Inventory.FindRoot
import Dodge.Inventory.RBList
import Control.Applicative
import Data.Maybe
@@ -59,15 +60,16 @@ rmInvItem cid invid w = w
& pointcid . crInvHotkeys %~ IM.mapKeys g
& updateselection
& pointcid %~ updateRootItemID
& worldEventFlags . at InventoryChange ?~ ()
where
pointcid = cWorld . lWorld . creatures . ix cid
updateselection
| cid == 0 && cr ^? crManipulation . manObject . inInventory . ispItem == Just invid =
| cid == 0 && cr ^? crManipulation . manObject . inInventory . imSelectedItem == Just invid =
scrollAugInvSel (-1) . scrollAugInvSel 1 . updateInventorySectionItems
| otherwise =
pointcid . crManipulation . manObject . inInventory . ispItem %~ g
pointcid . crManipulation . manObject . inInventory . imSelectedItem %~ g
cr = w ^?! cWorld . lWorld . creatures . ix cid
itm = _crInv cr IM.! invid
@@ -158,7 +160,7 @@ rmInvItem cid invid w = w
-- | otherwise = x
rmSelectedInvItem :: Int -> World -> World
rmSelectedInvItem cid w = case w ^? cWorld . lWorld . creatures . ix cid . crManipulation . manObject . inInventory . ispItem of
rmSelectedInvItem cid w = case w ^? cWorld . lWorld . creatures . ix cid . crManipulation . manObject . inInventory . imSelectedItem of
Just i -> rmInvItem cid i w
Nothing -> w
@@ -231,6 +233,7 @@ 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
& hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ k
& worldEventFlags . at InventoryChange ?~ ()
where
@@ -241,7 +244,7 @@ changeSwapInv f i w = fromMaybe w $ do
updatecreature k =
(crInv %~ IM.safeSwapKeys i k)
-- . (crLeftInvSel . lisMPos . _Just %~ updateLeftInvSel k)
. (crManipulation . manObject . inInventory . ispItem .~ k)
. (crManipulation . manObject . inInventory . imSelectedItem .~ k)
. (crInvEquipped %~ IM.safeSwapKeys i k)
. swapSite i k
. swapSite k i
@@ -280,12 +283,15 @@ setInvPosFromSS w =
(i, j) <- sss ^? sssExtra . sssSelPos . _Just
case i of
(-1) -> Just $ InInventory SortInventory
0 -> Just $ InInventory (SelItem j NoInvSelAction)
--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"
selectedCloseObject :: World -> Maybe (Either FloorItem Button)
selectedCloseObject w = do
i <-
+3 -1
View File
@@ -4,6 +4,8 @@ module Dodge.Inventory.Add (
createAndSelectItem,
) where
import Dodge.Inventory.FindRoot
--import Dodge.Item.Grammar
import Control.Lens
import Data.Maybe
import Dodge.Base.You
@@ -47,7 +49,7 @@ createAndSelectItem itm w = case createPutItem itm w of
w'
& hud . hudElement . diSections . sssExtra . sssSelPos ?~ (0, i)
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject
.~ InInventory (SelItem i NoInvSelAction)
.~ InInventory (SelectedItem i (getRootItemID i (you w)))
(Nothing, w') -> w'
createPutItem :: Item -> World -> (Maybe Int, World)
+3 -3
View File
@@ -20,7 +20,7 @@ updateRBList w
| otherwise = case w ^. rbOptions of
EquipOptions{} -> w
_ -> fromMaybe (w & rbOptions .~ NoRightButtonOptions) $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
esite <- cr ^? crInv . ix i . itUse . equipEffect . eeSite
return $
w
@@ -35,7 +35,7 @@ updateRBList w
-- find a free equipment slot
chooseEquipmentPosition :: Creature -> [EquipPosition] -> Int
chooseEquipmentPosition cr eps = fromMaybe (chooseFreeSite cr eps) $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
ep <- cr ^? crInvEquipped . ix i
elemIndex ep eps
@@ -46,7 +46,7 @@ chooseFreeSite cr = fromMaybe 0 . findIndex hasnoequipment
getEquipmentAllocation :: World -> EquipmentAllocation
getEquipmentAllocation w = fromMaybe DoNotMoveEquipment $ do
curpos <- you w ^? crManipulation . manObject . inInventory . ispItem
curpos <- you w ^? crManipulation . manObject . inInventory . imSelectedItem
esite <- you w ^? crInv . ix curpos . itUse . equipEffect . eeSite
i <- w ^? rbOptions . opSel
<|> Just (chooseEquipmentPosition (you w) (equipSiteToPositions esite))
+1 -1
View File
@@ -23,7 +23,7 @@ doFloorEffect NoFloorEffect = const id
onOffEff :: ItInvEffect -> ItInvEffect -> Item -> Creature -> World -> World
onOffEff f g it
| _itIsHeld it = doInvEffect f it
| _itIsRoot it = doInvEffect f it
| otherwise = doInvEffect g it
--timeScrollEffect :: Item -> Creature -> World -> World
+1 -1
View File
@@ -16,7 +16,7 @@ import ShapePicture
itemEquipPict :: Creature -> Item -> SPic
itemEquipPict cr it = case it ^. itUse of
HeldUse{} | _itIsHeld it -> overPosSP (heldItemOffset it cr) (itemSPic it)
HeldUse{} | _itIsRoot it -> overPosSP (heldItemOffset it cr) (itemSPic it)
ituse -> fromMaybe mempty $ do
attachpos <- ituse ^? equipEffect . eeAttachPos
i <- it ^? itLocation . ipInvID
+5 -5
View File
@@ -23,18 +23,18 @@ transToHandle itm = fromMaybe id $ do
heldItemOffset :: Item -> Creature -> Point3 -> Point3
heldItemOffset itm cr
| isSelected && _posture (_crStance cr) == Aiming =
| isroot && _posture (_crStance cr) == Aiming =
(+.+.+ aimingWeaponZeroPos cr itm `v2z` shoulderHeight)
| isSelected && isTwoHandFlat =
| isroot && isTwoHandFlat =
(+.+.+ V3 (_crRad cr) 0 handD)
. rotate3 (twoFlatHRot cr)
. transToHandle itm
| isSelected && isOneHand =
| isroot && isOneHand =
(+.+.+ V3 0 0 handD)
. (+.+.+ V3 (_crRad cr * 0.7 + handPos) (_crRad cr * negate 0.7) 0)
. (+.+.+ V3 (-2) 0 0)
. transToHandle itm
| isSelected =
| isroot =
(+.+.+ V3 0 0 handD)
. (+.+.+ V3 (_crRad cr) 0 0)
. rotate3 (strideRot cr + 1.2)
@@ -44,7 +44,7 @@ heldItemOffset itm cr
| otherwise = id
where
handD = 15
isSelected = _itIsHeld itm
isroot = _itIsRoot itm
handPos = case cr ^? crStance . carriage of
Just (Walking x LeftForward) -> f x * 50
_ -> 0
+10 -4
View File
@@ -2,7 +2,8 @@ module Dodge.Item.Location (
pointerToItemLocation,
getItem,
pointerToItem,
pointerYourItem,
pointerYourSelectedItem,
pointerYourRootItem,
) where
import Control.Lens
@@ -28,9 +29,14 @@ pointerToItemLocation (InInv cid invid) = cWorld . lWorld . creatures . ix cid .
pointerToItemLocation (OnFloor flid) = cWorld . lWorld . floorItems . ix flid . flIt
pointerToItemLocation _ = const pure
pointerYourItem :: Applicative a => (Item -> a Item) -> World -> a World
pointerYourItem f w = fromMaybe (pure w) $ do
itinvid <- w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . inInventory . ispItem
pointerYourSelectedItem :: Applicative a => (Item -> a Item) -> World -> a World
pointerYourSelectedItem f w = fromMaybe (pure w) $ do
itinvid <- w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . inInventory . imSelectedItem
Just $ pointerToItemLocation (InInv 0 itinvid) f w
pointerYourRootItem :: Applicative a => (Item -> a Item) -> World -> a World
pointerYourRootItem f w = fromMaybe (pure w) $ do
itinvid <- w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . inInventory . imRootItem
Just $ pointerToItemLocation (InInv 0 itinvid) f w
pointerToItem ::
+64 -64
View File
@@ -5,20 +5,20 @@ module Dodge.Item.Weapon.BatteryGuns (
splitBeamCombine,
-- shootTeslaArc,
shootLaser,
circleLaser,
shootDualLaser,
--circleLaser,
--shootDualLaser,
aTractorBeam,
) where
import Dodge.Base
import Dodge.Beam
import Dodge.Creature.HandPos
--import Dodge.Creature.HandPos
import Dodge.Data.World
import Dodge.Item.Weapon.LaserPath
--import Dodge.Item.Weapon.LaserPath
import Geometry
import qualified IntMapHelp as IM
import LensHelp
import Picture
--import Picture
--import Control.Monad.State
@@ -84,67 +84,67 @@ shootLaser it cr =
(_crPos cr)
(_crDir cr)
-- this has the feel of a left click item
circleLaser :: Item -> Creature -> World -> World
circleLaser it cr w
| hasLOSIndirect cpos pos w =
w
& cWorld . lWorld . lasers .:~ lasRayAt (_lasColor $ _itParams it) dam phasev pos dir
| otherwise = w
where
cpos = _crPos cr
mwp = mouseWorldPos (w ^. input) (w ^. wCam)
pos = _crPos cr +.+ rotateV dir (V2 0 (max 70 $ dist cpos mwp))
dir = fromIntegral (_lasCycle (_itParams it)) * pi / 1000
phasev = _phaseV . _itParams $ _crInv cr IM.! itRef
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
dam = _lasDamage $ _itParams it
---- this has the feel of a left click item
--circleLaser :: Item -> Creature -> World -> World
--circleLaser it cr w
-- | hasLOSIndirect cpos pos w =
-- w
-- & cWorld . lWorld . lasers .:~ lasRayAt (_lasColor $ _itParams it) dam phasev pos dir
-- | otherwise = w
-- where
-- cpos = _crPos cr
-- mwp = mouseWorldPos (w ^. input) (w ^. wCam)
-- pos = _crPos cr +.+ rotateV dir (V2 0 (max 70 $ dist cpos mwp))
-- dir = fromIntegral (_lasCycle (_itParams it)) * pi / 1000
-- phasev = _phaseV . _itParams $ _crInv cr IM.! itRef
-- itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
-- dam = _lasDamage $ _itParams it
shootDualLaser :: Item -> Creature -> World -> World
shootDualLaser it cr w =
w
& cWorld . lWorld . newBeams . positronBeams .:~ dualRayAt (_lasBeam $ _itParams it) itid w (_lasColor $ _itParams it) dam phasev posl dirl
& cWorld . lWorld . newBeams . electronBeams .:~ basicBeamAt itid w (_lasColor2 $ _itParams it) dam phasev posr dirr
where
itid = _itID it
dir = _crDir cr
pos = _crPos cr +.+ aimlength *.* unitVectorAtAngle dir
aimlength = aimingMuzzleLength cr it
gap = _dbGap . _itParams $ it
posl = pos +.+ (- gap) *.* vNormal (unitVectorAtAngle dir)
posr = pos +.+ gap *.* vNormal (unitVectorAtAngle dir)
mwp = mouseWorldPos (w ^. input) (w ^. wCam)
mwp'
| dist mwp (_crPos cr) < aimlength + 5 = _crPos cr +.+ (aimlength + 5) *.* unitVectorAtAngle dir
| otherwise = mwp
dirl = argV $ mwp' -.- posl
dirr = argV $ mwp' -.- posr
phasev = _phaseV . _itParams $ _crInv cr IM.! itRef
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
dam = _lasDamage $ _itParams it
--shootDualLaser :: Item -> Creature -> World -> World
--shootDualLaser it cr w =
-- w
-- & cWorld . lWorld . newBeams . positronBeams .:~ dualRayAt (_lasBeam $ _itParams it) itid w (_lasColor $ _itParams it) dam phasev posl dirl
-- & cWorld . lWorld . newBeams . electronBeams .:~ basicBeamAt itid w (_lasColor2 $ _itParams it) dam phasev posr dirr
-- where
-- itid = _itID it
-- dir = _crDir cr
-- pos = _crPos cr +.+ aimlength *.* unitVectorAtAngle dir
-- aimlength = aimingMuzzleLength cr it
-- gap = _dbGap . _itParams $ it
-- posl = pos +.+ (- gap) *.* vNormal (unitVectorAtAngle dir)
-- posr = pos +.+ gap *.* vNormal (unitVectorAtAngle dir)
-- mwp = mouseWorldPos (w ^. input) (w ^. wCam)
-- mwp'
-- | dist mwp (_crPos cr) < aimlength + 5 = _crPos cr +.+ (aimlength + 5) *.* unitVectorAtAngle dir
-- | otherwise = mwp
-- dirl = argV $ mwp' -.- posl
-- dirr = argV $ mwp' -.- posr
-- phasev = _phaseV . _itParams $ _crInv cr IM.! itRef
-- itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
-- dam = _lasDamage $ _itParams it
basicBeamAt :: Int -> World -> Color -> Int -> Float -> Point2 -> Float -> Beam
basicBeamAt itid w col dam phasev pos dir =
Beam
{ _bmDraw = BasicBeamDraw --drawBeam
, _bmPos = pos
, _bmDir = dir
, _bmDamage = dam
, _bmRange = 800
, _bmPhaseV = phasev
, _bmColor = col
, _bmPoints = pos : ps
, _bmFirstPoints = []
, _bmOrigin = Just itid
, _bmType = BeamCombine NoBeamCombine
}
where
(_, ps) = reflectLaserAlong phasev pos (pos +.+ 800 *.* unitVectorAtAngle dir) w
--basicBeamAt :: Int -> World -> Color -> Int -> Float -> Point2 -> Float -> Beam
--basicBeamAt itid w col dam phasev pos dir =
-- Beam
-- { _bmDraw = BasicBeamDraw --drawBeam
-- , _bmPos = pos
-- , _bmDir = dir
-- , _bmDamage = dam
-- , _bmRange = 800
-- , _bmPhaseV = phasev
-- , _bmColor = col
-- , _bmPoints = pos : ps
-- , _bmFirstPoints = []
-- , _bmOrigin = Just itid
-- , _bmType = BeamCombine NoBeamCombine
-- }
-- where
-- (_, ps) = reflectLaserAlong phasev pos (pos +.+ 800 *.* unitVectorAtAngle dir) w
dualRayAt :: BeamType -> Int -> World -> Color -> Int -> Float -> Point2 -> Float -> Beam
dualRayAt bt itid w col dam phasev pos dir =
basicBeamAt itid w col dam phasev pos dir
& bmType .~ bt
--dualRayAt :: BeamType -> Int -> World -> Color -> Int -> Float -> Point2 -> Float -> Beam
--dualRayAt bt itid w col dam phasev pos dir =
-- basicBeamAt itid w col dam phasev pos dir
-- & bmType .~ bt
aTractorBeam :: Item -> Creature -> World -> World
aTractorBeam _ cr w = w & cWorld . lWorld . tractorBeams .:~ tractorBeamAt spos outpos dir power
@@ -155,7 +155,7 @@ aTractorBeam _ cr w = w & cWorld . lWorld . tractorBeams .:~ tractorBeamAt spos
dir = _crDir cr
outpos = fst $ collidePointWallsFilter (const True) cpos xpos w
power = _attractionPower . _itParams $ _crInv cr IM.! itRef
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
itRef = cr ^?! crManipulation . manObject . inInventory . imRootItem -- unsafe!! TODO change
tractorBeamAt :: Point2 -> Point2 -> Float -> Point2 -> TractorBeam
tractorBeamAt pos outpos dir power =
+17 -16
View File
@@ -16,8 +16,8 @@ module Dodge.Item.Weapon.TriggerType (
trigDoAlso,
withTempLight,
withItem,
withItemUpdate,
withItemUpdateFirst,
-- withItemUpdate,
-- withItemUpdateFirst,
-- rateIncAB,
-- torqueBefore,
-- torqueBeforeAtLeast,
@@ -68,7 +68,7 @@ import Dodge.Creature.HandPos
import Data.Foldable
import Data.Maybe
import Dodge.Base
import Dodge.Creature.Test
--import Dodge.Creature.Test
import Dodge.Data.World
import Dodge.Inventory.Lock
import Dodge.LightSource
@@ -208,7 +208,8 @@ withWarmUp ::
SoundID ->
ChainEffect
withWarmUp soundID f item cr w
| curWarmUp < maxWarmUp && crWeaponReady cr =
-- | curWarmUp < maxWarmUp && crWeaponReady cr =
| curWarmUp < maxWarmUp =
w
& pointertoitem . itUse . heldDelay . warmTime +~ 2
& soundContinue (CrWeaponSound cid 0) (_crPos cr) soundID (Just 2)
@@ -219,7 +220,7 @@ withWarmUp soundID f item cr w
where
item' = _ldtValue item
cid = _crID cr
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
itRef = cr ^?! crManipulation . manObject . inInventory . imRootItem -- unsafe!! TODO change
pointertoitem = cWorld . lWorld . creatures . ix cid . crInv . ix itRef
curWarmUp = _warmTime . _heldDelay $ _itUse item'
maxWarmUp = _warmMax . _heldDelay $ _itUse item'
@@ -391,7 +392,7 @@ useTimeCheck f item cr w = case item ^? ldtValue . itUse . heldDelay of
cid = _crID cr
setUseRate = cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itUse . heldDelay . rateTime
+~ userate
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
itRef = cr ^?! crManipulation . manObject . inInventory . imRootItem -- unsafe!! TODO change
userate = fromMaybe 0 $ item ^? ldtValue . itUse . heldDelay . rateMax
-- | Applies a world effect after a hammer position check.
@@ -451,16 +452,16 @@ shootL f item cr w
withItem :: (Item -> ChainEffect) -> ChainEffect
withItem g f it = g (_ldtValue it) f it
-- not ideal
withItemUpdateFirst :: (Item -> Item) -> ChainEffect
withItemUpdateFirst up f it cr = f (over ldtValue up it) cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
where
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
withItemUpdate :: (Item -> Item) -> (Item -> ChainEffect) -> ChainEffect
withItemUpdate up g f it cr = g (_ldtValue it) f it cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
where
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
---- not ideal
--withItemUpdateFirst :: (Item -> Item) -> ChainEffect
--withItemUpdateFirst up f it cr = f (over ldtValue up it) cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
-- where
-- itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
--
--withItemUpdate :: (Item -> Item) -> (Item -> ChainEffect) -> ChainEffect
--withItemUpdate up g f it cr = g (_ldtValue it) f it cr . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef %~ up)
-- where
-- itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
withTempLight :: Int -> Float -> V3 Float -> ChainEffect
withTempLight time rad col eff item cr =
+1 -1
View File
@@ -94,7 +94,7 @@ setRemoteDir cid itid pj w = w & cWorld . lWorld . projectiles . ix (_prjID pj)
--i = _prjID pj
newdir
| SDL.ButtonRight `M.member` _mouseButtons (_input w)
&& w ^? cWorld . lWorld . creatures . ix cid . crManipulation . manObject . inInventory . ispItem
&& w ^? cWorld . lWorld . creatures . ix cid . crManipulation . manObject . inInventory . imSelectedItem
== w ^? cWorld . lWorld . itemLocations . ix itid . ipInvID
= (w ^. wCam . camRot) + argV (_mousePos (_input w))
| otherwise = _prjDir pj
+3 -3
View File
@@ -97,7 +97,7 @@ drawExamineInventory cfig mtweaki w =
)
)
where
itm = yourItem w
itm = yourSelectedItem w
f str =
SelectionItem
{ _siPictures = [str]
@@ -122,14 +122,14 @@ floorItemPickupInfo n itm
-- it is probably desirable for this to crash hard for now
yourAugmentedItem :: (Item -> a) -> a -> (Either FloorItem Button -> a) -> World -> a
yourAugmentedItem f x g w = case you w ^? crManipulation . manObject of
Just (InInventory (SelItem i _)) -> f $ yourInv w ^?! ix i
Just (InInventory (SelectedItem i _)) -> f $ yourInv w ^?! ix i
Just (InNearby (SelCloseObject i)) -> g $ w ^?! hud . closeObjects . ix i
_ -> x
drawRBOptions :: Configuration -> World -> Picture
drawRBOptions cfig w = fromMaybe mempty $ do
guard $ ButtonRight `M.member` _mouseButtons (_input w)
invid <- you w ^? crManipulation . manObject . inInventory . ispItem
invid <- you w ^? crManipulation . manObject . inInventory . imSelectedItem
eslist <- fmap equipSiteToPositions $ you w ^? crInv . ix invid . itUse . equipEffect . eeSite
i <- w ^? rbOptions . opSel
let ae = getEquipmentAllocation w
+6 -6
View File
@@ -88,26 +88,26 @@ moveZoomCamera cfig theinput cr campos =
where
vfoffset = fromMaybe 0 $ do
guard (SDL.ButtonRight `M.member` _mouseButtons theinput)
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
(cr ^? crInv . ix i . itScope . remotePos)
docamrot = rotateV (campos ^. camRot)
offset = fromMaybe noscopeoffset $ do
guard (SDL.ButtonRight `M.member` _mouseButtons theinput)
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
(fmap docamrot (cr ^? crInv . ix i . itScope . opticPos))
<|> (cr ^? crInv . ix i . itScope . remotePos)
noscopeoffset = docamrot $
((newzoom - newDefaultZoom) / (newDefaultZoom * newzoom)) *.* _mousePos theinput
newzoom = fromMaybe (newDefaultZoom * newItemZoom) $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
(cr ^? crInv . ix i . itScope . opticZoom)
idealDefaultZoom = clipZoom wallZoom
newDefaultZoom = fromMaybe (changeZoom (campos ^. camDefaultZoom) idealDefaultZoom) $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
(cr ^? crInv . ix i . itScope . opticZoom)
idealItemZoom = fromMaybe 1 $ do
guard $ crIsAiming cr
i <- cr ^? crManipulation . manObject . inInventory . ispItem
i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
zoomFromItem <$> (cr ^? crInv . ix i . itUse . heldAim . aimZoom)
newItemZoom = changeZoom (campos ^. camItemZoom) idealItemZoom
changeZoom curZoom idealZoom
@@ -128,7 +128,7 @@ moveZoomCamera cfig theinput cr campos =
-- is wanted
updateScopeZoom :: World -> World
updateScopeZoom w = fromMaybe w $ do
i <- you w ^? crManipulation . manObject . inInventory . ispItem
i <- you w ^? crManipulation . manObject . inInventory . imSelectedItem
return $ updateScopeZoom' i w
updateScopeZoom' :: Int -> World -> World
+1 -1
View File
@@ -247,7 +247,7 @@ toggleTweakInv w = case w ^? hud . hudElement . subInventory of
_ -> w & thepointer .~ ExamineInventory mi
where
thepointer = hud . hudElement . subInventory
mi = 0 <$ (yourItem w >>= (^? itTweaks . tweakParams . ix 0))
mi = 0 <$ (yourSelectedItem w >>= (^? itTweaks . tweakParams . ix 0))
tryCombine :: SelectionSections CombinableItem -> World -> World
tryCombine sss w = fromMaybe w $ do
+4 -4
View File
@@ -46,7 +46,7 @@ updateWheelEvent yi w = case w ^. hud . hudElement of
_ -> w
where
rbscrollmax = fromMaybe 1 $ do
invid <- you w ^? crManipulation . manObject . inInventory . ispItem
invid <- you w ^? crManipulation . manObject . inInventory . imSelectedItem
esite <- you w ^? crInv . ix invid . itUse . equipEffect . eeSite
return $ length $ equipSiteToPositions esite
y = fromIntegral yi
@@ -111,15 +111,15 @@ scrollRBOption dy ymax
| otherwise = id
moveTweakSel :: Int -> World -> World
moveTweakSel i w = case yourItem w ^? _Just . itTweaks . tweakParams of
moveTweakSel i w = case yourSelectedItem w ^? _Just . itTweaks . tweakParams of
Just l -> moveSubSel i (length l) w
_ -> w
changeTweakParam :: Maybe Int -> Int -> World -> World
changeTweakParam mi i w = fromMaybe w $ do
curpos <- you w ^? crManipulation . manObject . inInventory . ispItem
curpos <- you w ^? crManipulation . manObject . inInventory . imSelectedItem
paramid <- mi
params <- yourItem w ^? _Just . itTweaks . tweakParams . ix paramid
params <- yourSelectedItem w ^? _Just . itTweaks . tweakParams . ix paramid
let x = (_tweakVal params + i) `mod` _tweakMax params
return $
w & cWorld . lWorld . creatures . ix 0 . crInv . ix curpos
+1 -1
View File
@@ -39,7 +39,7 @@ doWdWd we = case we of
WdWdFromItixCrixWdWd _ crid f -> \w -> fromMaybe w $ do
cr <- w ^? cWorld . lWorld . creatures . ix crid
--it <- getItem itid w
itRef <- cr ^? crManipulation . manObject . inInventory . ispItem
itRef <- cr ^? crManipulation . manObject . inInventory . imSelectedItem
it <- invTrees (_crInv cr) ^? ix itRef
return $ doItCrWdWd f it cr w
WdWdFromItCrixWdWd it crid f -> \w -> fromMaybe w $ do
+103 -106
View File
@@ -378,8 +378,8 @@ ChainEffect src/Dodge/ChainEffect.hs 1;" m
ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m
ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C
ChangeStrategy src/Dodge/Data/ActionPlan.hs 44;" C
ChargeIfEquipped src/Dodge/Data/Item/Effect.hs 22;" C
ChargeIfInInventory src/Dodge/Data/Item/Effect.hs 23;" C
ChargeIfEquipped src/Dodge/Data/Item/Effect.hs 21;" C
ChargeIfInInventory src/Dodge/Data/Item/Effect.hs 22;" C
ChargeableAmmo src/Dodge/Data/Item/Consumption.hs 29;" C
ChargeableAmmo src/Dodge/Data/Item/Use/Consumption.hs 34;" C
ChaseAI src/Dodge/Data/Creature/Misc.hs 50;" C
@@ -537,13 +537,13 @@ Create src/Dodge/Wall/Create.hs 1;" m
CreateFlame src/Dodge/Data/Gas.hs 6;" C
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C
CreateHeldLight src/Dodge/Data/ItEffect.hs 41;" C
CreateHeldLight src/Dodge/Data/Item/Effect.hs 26;" C
CreateHeldLight src/Dodge/Data/Item/Effect.hs 25;" C
CreatePoisonGas src/Dodge/Data/Gas.hs 6;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C
CreateShell src/Dodge/Data/Ammo.hs 17;" C
CreateShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C
CreateShieldWall src/Dodge/Data/ItEffect.hs 42;" C
CreateShieldWall src/Dodge/Data/Item/Effect.hs 27;" C
CreateShieldWall src/Dodge/Data/Item/Effect.hs 26;" C
CreateTrackingShell src/Dodge/Data/Ammo.hs 17;" C
CreateTrackingShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C
Creature src/Dodge/Data/Creature.hs 38;" t
@@ -822,8 +822,8 @@ EdgeObstacle src/Dodge/Data/PathGraph.hs 48;" t
Effect src/Dodge/Data/Item/Effect.hs 6;" m
Effect src/Dodge/Default/Item/Effect.hs 1;" m
EffectArguments src/Dodge/Data/Terminal.hs 92;" t
EffectIfHeld src/Dodge/Data/Item/Effect.hs 25;" C
EffectWhileHeld src/Dodge/Data/Item/Effect.hs 29;" C
EffectIfHeld src/Dodge/Data/Item/Effect.hs 24;" C
EffectWhileHeld src/Dodge/Data/Item/Effect.hs 28;" C
EighthRes src/Dodge/Data/Config.hs 95;" C
Either src/Dodge/Layout/Tree/Either.hs 4;" m
Eldritch src/Dodge/Data/Scenario.hs 34;" C
@@ -923,6 +923,7 @@ Factory src/Dodge/Data/Scenario.hs 56;" C
FailedResource src/Dodge/Data/Scenario.hs 37;" t
Family src/Dodge/Item/Family.hs 1;" m
FetchItem src/Dodge/Data/Scenario.hs 11;" C
FindRoot src/Dodge/Inventory/FindRoot.hs 1;" m
FireRemoteShellMod src/Dodge/Data/Item/HeldUse.hs 103;" C
FirstWeapon src/Dodge/Layout/Tree/Annotate.hs 19;" C
Fitting src/Dodge/LightSources/Fitting.hs 1;" m
@@ -1268,16 +1269,16 @@ ItCrWdId src/Dodge/Data/WorldEffect.hs 19;" C
ItCrWdItemEffect src/Dodge/Data/WorldEffect.hs 20;" C
ItCrWdWd src/Dodge/Data/WorldEffect.hs 18;" t
ItDropEffect src/Dodge/Data/ItEffect.hs 49;" t
ItDropEffect src/Dodge/Data/Item/Effect.hs 35;" t
ItDropEffect src/Dodge/Data/Item/Effect.hs 34;" t
ItEffect src/Dodge/Data/ItEffect.hs 11;" t
ItEffect src/Dodge/Data/Item/Effect.hs 12;" t
ItEffect src/Dodge/Data/ItEffect.hs 20;" C
ItEffect src/Dodge/Data/ItEffect.hs 5;" m
ItEffect src/Dodge/ItEffect.hs 1;" m
ItFloorEffect src/Dodge/Data/ItEffect.hs 46;" t
ItFloorEffect src/Dodge/Data/Item/Effect.hs 32;" t
ItFloorEffect src/Dodge/Data/Item/Effect.hs 31;" t
ItInvEffect src/Dodge/Data/ItEffect.hs 36;" t
ItInvEffect src/Dodge/Data/Item/Effect.hs 20;" t
ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t
ItInvEffect src/Dodge/Data/ItEffect.hs 13;" C
ItInvEffectDrop src/Dodge/Data/ItEffect.hs 29;" C
ItInvEffectID src/Dodge/Data/ItEffect.hs 25;" C
@@ -1699,17 +1700,17 @@ NoDelay src/Dodge/Data/Item/HeldDelay.hs 14;" C
NoDelay src/Dodge/Data/Item/Use/Delay.hs 11;" C
NoDelay src/Dodge/Data/Item/UseDelay.hs 11;" C
NoDropEffect src/Dodge/Data/ItEffect.hs 49;" C
NoDropEffect src/Dodge/Data/Item/Effect.hs 35;" C
NoDropEffect src/Dodge/Data/Item/Effect.hs 34;" C
NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 29;" C
NoEscapeMenuOption src/Dodge/Data/Universe.hs 75;" C
NoFaction src/Dodge/Creature/State/Data.hs 35;" C
NoFaction src/Dodge/Data/Creature/State.hs 40;" C
NoFloorEffect src/Dodge/Data/ItEffect.hs 46;" C
NoFloorEffect src/Dodge/Data/Item/Effect.hs 32;" C
NoFloorEffect src/Dodge/Data/Item/Effect.hs 31;" C
NoHammer src/Dodge/Data/Hammer.hs 13;" C
NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C
NoInvEffect src/Dodge/Data/ItEffect.hs 37;" C
NoInvEffect src/Dodge/Data/Item/Effect.hs 21;" C
NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C
NoInvSelAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 37;" C
NoInvSelAction src/Dodge/Data/LoadAction.hs 25;" C
NoItAttachment src/Dodge/Data/Item/Attachment.hs 18;" C
@@ -2150,7 +2151,7 @@ RemoteScope src/Dodge/Item/Attachment/Data.hs 26;" C
RemoveCreatureEndo src/Dodge/RemoveCreatureEndo.hs 3;" m
RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C
RemoveShieldWall src/Dodge/Data/ItEffect.hs 43;" C
RemoveShieldWall src/Dodge/Data/Item/Effect.hs 28;" C
RemoveShieldWall src/Dodge/Data/Item/Effect.hs 27;" C
Remove_LOS src/Dodge/Config/Data.hs 41;" C
Remove_LOS src/Dodge/Data/Config.hs 77;" C
Render src/Data/Preload/Render.hs 5;" m
@@ -2311,7 +2312,7 @@ Sensor src/Dodge/Placements/Sensor.hs 1;" m
SensorDoor src/Dodge/Room/SensorDoor.hs 2;" m
SentinelAI src/Dodge/Creature/SentinelAI.hs 1;" m
SentinelAt src/Dodge/Data/ActionPlan.hs 199;" C
SetCharge src/Dodge/Data/Item/Effect.hs 24;" C
SetCharge src/Dodge/Data/Item/Effect.hs 23;" C
SetLSCol src/Dodge/Data/WorldEffect.hs 27;" C
SetLabel src/Dodge/Layout/Tree/Annotate.hs 26;" C
SetTarget src/Dodge/Creature/SetTarget.hs 2;" m
@@ -3479,7 +3480,8 @@ _ieMID src/Dodge/Data/ItEffect.hs 27;" f
_ieMID src/Dodge/Data/ItEffect.hs 32;" f
_ieOnDrop src/Dodge/Data/Item/Effect.hs 15;" f
_ieOnInsert src/Dodge/Data/Item/Effect.hs 14;" f
_ieWhileAiming src/Dodge/Data/Item/Effect.hs 16;" f
_imRootItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f
_imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f
_immediateEffect src/Loop/Data.hs 9;" f
_immediateUpdate src/Loop/Data.hs 12;" f
_impulseUseAheadPos src/Dodge/Data/ActionPlan.hs 56;" f
@@ -3503,7 +3505,6 @@ _ipTuID src/Dodge/Data/Item/Location.hs 13;" f
_isLooping src/Sound/Data.hs 19;" f
_iselAction src/Dodge/Data/Creature/Capability.hs 23;" f
_iselAction src/Dodge/Data/Creature/InvSel.hs 15;" f
_iselAction src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f
_iselAction src/Dodge/Data/LoadAction.hs 19;" f
_iselMItem src/Dodge/Data/Creature/Capability.hs 24;" f
_iselMItem src/Dodge/Data/Creature/InvSel.hs 16;" f
@@ -3511,7 +3512,6 @@ _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
_ispItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f
_itAttachments src/Dodge/Data/Item.hs 46;" f
_itCurseStatus src/Dodge/Data/Item.hs 42;" f
_itDimension src/Dodge/Data/Item.hs 41;" f
@@ -4378,7 +4378,7 @@ advanceScrollAmount src/Dodge/Update.hs 297;" f
advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f
advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f
advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f
afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 294;" f
afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 295;" f
aimDelaySweep src/Dodge/Render/ShapePicture.hs 44;" f
aimStanceInfo src/Dodge/Item/Info.hs 229;" f
aimTurn src/Dodge/Creature/YourControl.hs 188;" f
@@ -4399,7 +4399,7 @@ allVisibleWalls src/Dodge/Base/Collide.hs 131;" f
alongSegBy src/Geometry.hs 43;" f
ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 145;" f
ammoComposedItem src/Dodge/Item/Grammar.hs 45;" f
ammoTweakStrings src/Dodge/Render/HUD.hs 284;" f
ammoTweakStrings src/Dodge/Render/HUD.hs 285;" f
amr src/Dodge/Item/Held/Rod.hs 46;" f
amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f
anItemFindPulse src/Dodge/Item/Weapon/UseEffect.hs 25;" f
@@ -4567,7 +4567,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 398;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 399;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f
@@ -4668,10 +4668,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 208;" f
changeSwapInv src/Dodge/Inventory.hs 224;" f
changeSwapSel src/Dodge/Inventory.hs 200;" f
changeSwapWith src/Dodge/Inventory.hs 259;" f
changeSwapClose src/Dodge/Inventory.hs 209;" f
changeSwapInv src/Dodge/Inventory.hs 225;" f
changeSwapSel src/Dodge/Inventory.hs 201;" f
changeSwapWith src/Dodge/Inventory.hs 260;" 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
@@ -4712,7 +4712,6 @@ circOnSegNoEndpoints src/Geometry.hs 94;" f
circOnSomeWall src/Dodge/Base/Collide.hs 182;" f
circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleLaser src/Dodge/Item/Weapon/BatteryGuns.hs 88;" f
circleSolid src/Picture/Base.hs 164;" f
circleSolidCol src/Picture/Base.hs 168;" f
cisToItem src/Dodge/Item/Grammar.hs 23;" f
@@ -4785,7 +4784,7 @@ combineAwareness src/Dodge/Creature/Perception.hs 109;" f
combineBeamBeams src/Dodge/Update.hs 475;" f
combineBeams src/Dodge/Update.hs 466;" f
combineFloors src/Dodge/Room/Procedural.hs 171;" f
combineInventoryExtra src/Dodge/Render/HUD.hs 197;" f
combineInventoryExtra src/Dodge/Render/HUD.hs 198;" f
combineItemListYouX src/Dodge/Combine.hs 41;" f
combineList src/Dodge/Combine.hs 44;" f
combineListInfo src/Dodge/Combine.hs 57;" f
@@ -4834,7 +4833,6 @@ crAwayFromPost src/Dodge/Creature/Test.hs 77;" f
crBlips src/Dodge/Item/Weapon/UseEffect.hs 50;" f
crBlips src/Dodge/RadarSweep.hs 68;" f
crCanSeeCr src/Dodge/Creature/Test.hs 48;" f
crCanShoot src/Dodge/Creature/Test.hs 85;" f
crCancelReloading src/Dodge/Reloading.hs 12;" f
crCrSpring src/Dodge/Update.hs 648;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f
@@ -4868,12 +4866,11 @@ 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
crWeaponReady src/Dodge/Creature/Test.hs 42;" 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 44;" f
createAndSelectItem src/Dodge/Inventory/Add.hs 46;" 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
@@ -4887,7 +4884,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 53;" f
createPutItem src/Dodge/Inventory/Add.hs 55;" f
createShieldWall src/Dodge/Euse.hs 134;" f
createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
@@ -5158,7 +5155,7 @@ displayControls src/Dodge/Menu.hs 206;" f
displayEnergyBallType src/Dodge/Module/Info.hs 19;" f
displayFrameTicks src/Dodge/Render/Picture.hs 33;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 159;" f
displayTerminal src/Dodge/Render/HUD.hs 227;" f
displayTerminal src/Dodge/Render/HUD.hs 228;" f
displayTerminalLineString src/Dodge/Update.hs 325;" f
dist src/Geometry/Vector.hs 179;" f
dist3 src/Geometry/Vector3D.hs 101;" f
@@ -5386,16 +5383,18 @@ dropItem src/Dodge/Creature/Action.hs 183;" f
dropItemKey src/Dodge/Config/KeyConfig.hs 24;" f
drumMag src/Dodge/Item/Ammo.hs 36;" f
dtIL src/Dodge/DoubleTree.hs 22;" f
dtToAdjRootParent src/Dodge/DoubleTree.hs 50;" f
dtToAdjacency src/Dodge/DoubleTree.hs 29;" f
dtToLRAdj src/Dodge/DoubleTree.hs 43;" f
dtToUpDownAdj src/Dodge/DoubleTree.hs 35;" f
dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 144;" f
dummyMenuOption src/Dodge/Menu/Option.hs 81;" 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
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
ebFlicker src/Dodge/EnergyBall.hs 94;" f
edgeFormatting src/Dodge/Combine/Graph.hs 119;" f
edgeToPic src/Dodge/Debug/Picture.hs 392;" f
@@ -5607,7 +5606,7 @@ getCrStrength src/Dodge/Creature/Statistics.hs 16;" f
getDamageCoding src/Dodge/Terminal.hs 175;" f
getDistortions src/Dodge/Render.hs 380;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getItem src/Dodge/Item/Location.hs 12;" f
getItem src/Dodge/Item/Location.hs 13;" f
getIthPos src/SelectionIntMap.hs 55;" f
getIthYOffset src/SelectionIntMap.hs 58;" f
getLDPWidth src/Dodge/Render/List.hs 70;" f
@@ -5615,6 +5614,7 @@ 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
@@ -5674,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 403;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 414;" f
hammerCheck src/Dodge/Item/Weapon/TriggerType.hs 404;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 415;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -5700,7 +5700,7 @@ hatCombinations src/Dodge/Combine/Combinations.hs 33;" f
head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 118;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 494;" f
headMap src/Dodge/DoubleTree.hs 68;" f
headMap src/Dodge/DoubleTree.hs 83;" f
heal src/Dodge/Item/Consumable.hs 17;" f
heal25 src/Dodge/Item/Consumable.hs 14;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f
@@ -5709,12 +5709,10 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 72;" f
healthTest src/Dodge/Room/LasTurret.hs 93;" f
heavyBulDams src/Dodge/Item/Weapon/Bullet.hs 38;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldAimEffects src/Dodge/Creature/State.hs 72;" f
heldBounds src/Dodge/Item/Module.hs 27;" f
heldComposedItem src/Dodge/Item/Grammar.hs 37;" f
heldEffect src/Dodge/HeldUse.hs 44;" f
heldInfo src/Dodge/Item/Info.hs 61;" f
heldItemEffects src/Dodge/Creature/State.hs 69;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 156;" f
heldPositionInfo src/Dodge/Item/Info.hs 226;" f
@@ -5830,7 +5828,7 @@ invAdj src/Dodge/Item/Grammar.hs 95;" f
invDimColor src/Dodge/DisplayInventory.hs 140;" f
invDimColor src/Dodge/Inventory/Color.hs 4;" f
invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f
invHead src/Dodge/Render/HUD.hs 292;" f
invHead src/Dodge/Render/HUD.hs 293;" f
invIndentIM src/Dodge/Item/Grammar.hs 101;" f
invLDT src/Dodge/Item/Grammar.hs 91;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 35;" f
@@ -5840,7 +5838,7 @@ invSideEff src/Dodge/Creature/State.hs 236;" f
invSize src/Dodge/Inventory/CheckSlots.hs 40;" f
invTrees src/Dodge/Item/Grammar.hs 104;" f
inventoryExtra src/Dodge/Render/HUD.hs 186;" f
inventoryExtraH src/Dodge/Render/HUD.hs 189;" f
inventoryExtraH src/Dodge/Render/HUD.hs 190;" f
inventoryX src/Dodge/Creature.hs 115;" f
inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f
invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f
@@ -5968,7 +5966,7 @@ lasTunnel src/Dodge/Room/LasTurret.hs 124;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
lasTurret src/Dodge/Placements/Turret.hs 29;" f
lastMap src/Dodge/DoubleTree.hs 72;" f
lastMap src/Dodge/DoubleTree.hs 87;" f
latchkey src/Dodge/Item/Held/Utility.hs 23;" f
latchkey src/Dodge/Item/PassKey.hs 14;" f
launcher src/Dodge/Item/Held/Launcher.hs 12;" f
@@ -5979,10 +5977,10 @@ launcherX src/Dodge/Item/Held/Launcher.hs 48;" f
layerNum src/Picture/Data.hs 31;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f
ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f
ldtIL src/Dodge/DoubleTree.hs 47;" f
ldtIL src/Dodge/DoubleTree.hs 62;" f
ldtToDT src/Dodge/DoubleTree.hs 13;" f
ldtToIM src/Dodge/DoubleTree.hs 41;" f
ldtToIndentList src/Dodge/DoubleTree.hs 44;" f
ldtToIM src/Dodge/DoubleTree.hs 56;" f
ldtToIndentList src/Dodge/DoubleTree.hs 59;" f
left src/DoubleStack.hs 16;" f
leftInfo src/Dodge/Item/Info.hs 109;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 57;" f
@@ -6025,7 +6023,7 @@ litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
lmt src/MatrixHelper.hs 43;" f
lnkBothAnd src/Dodge/Room/Procedural.hs 120;" f
lnkEff src/Dodge/Layout/Tree/Shift.hs 55;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 270;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 271;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadConfig src/LoadConfig.hs 22;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
@@ -6262,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 473;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 474;" f
modTo src/Geometry/Zone.hs 10;" f
modifierKey src/Dodge/Config/KeyConfig.hs 34;" f
moduleAttachPosition src/Dodge/Item/Module.hs 6;" f
@@ -6485,7 +6483,7 @@ pickUpItem src/Dodge/Creature/Action.hs 242;" f
pickUpItemID src/Dodge/Creature/Action.hs 238;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f
pickUpSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
picsToSelectable src/Dodge/Render/HUD.hs 345;" f
picsToSelectable src/Dodge/Render/HUD.hs 346;" f
pictureOnEquip src/Dodge/Item/Equipment/Shape.hs 9;" f
pincerP src/Dodge/Creature/Boid.hs 60;" f
pincerP' src/Dodge/Creature/Boid.hs 93;" f
@@ -6557,9 +6555,10 @@ pointInPolygon src/Geometry/Polygon.hs 59;" f
pointIsInCone src/Geometry.hs 378;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 63;" f
pointerToItem src/Dodge/Item/Location.hs 36;" f
pointerToItemLocation src/Dodge/Item/Location.hs 21;" f
pointerYourItem src/Dodge/Item/Location.hs 31;" f
pointerToItem src/Dodge/Item/Location.hs 42;" f
pointerToItemLocation src/Dodge/Item/Location.hs 22;" f
pointerYourRootItem src/Dodge/Item/Location.hs 37;" f
pointerYourSelectedItem src/Dodge/Item/Location.hs 32;" f
pointsToPoly src/Geometry/ConvexPoly.hs 39;" f
poisonSPic src/Dodge/Creature/State.hs 124;" f
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
@@ -6639,8 +6638,8 @@ prependTwo src/Geometry.hs 165;" f
pressedMBEffects src/Dodge/Update/UsingInput.hs 27;" f
pressedMBEffectsNoInventory src/Dodge/Update/UsingInput.hs 40;" f
pressedMBEffectsTopInventory src/Dodge/Creature/YourControl.hs 206;" f
prettyDT src/Dodge/DoubleTree.hs 77;" f
prettyLDT src/Dodge/DoubleTree.hs 81;" f
prettyDT src/Dodge/DoubleTree.hs 92;" f
prettyLDT src/Dodge/DoubleTree.hs 96;" f
primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 422;" f
printColumnTitles src/Dodge/Tree/Shift.hs 142;" f
printColumns src/Dodge/Tree/Shift.hs 132;" f
@@ -6718,9 +6717,9 @@ putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f
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/Add.hs 17;" f
putItemInInvID src/Dodge/Inventory/Add.hs 19;" f
putItemInInvID src/Dodge/Inventory/PickUp.hs 8;" f
putItemInInvSlot src/Dodge/Inventory/Add.hs 23;" f
putItemInInvSlot src/Dodge/Inventory/Add.hs 25;" 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
@@ -6841,7 +6840,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 676;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 677;" 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
@@ -6889,10 +6888,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 38;" f
rmInvItem src/Dodge/Inventory.hs 39;" f
rmLinksOfType src/Dodge/RoomLink.hs 135;" f
rmOutLinks src/Dodge/RoomLink.hs 138;" f
rmSelectedInvItem src/Dodge/Inventory.hs 160;" f
rmSelectedInvItem src/Dodge/Inventory.hs 161;" 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
@@ -6992,7 +6991,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 265;" f
scrollAugInvSel src/Dodge/Inventory.hs 266;" f
scrollCommandStrings src/Dodge/Update/Scroll.hs 133;" f
scrollCommands src/Dodge/Update/Scroll.hs 130;" f
scrollDebugInfoInt src/Dodge/Debug.hs 46;" f
@@ -7014,13 +7013,13 @@ secondColumnParams src/Dodge/ListDisplayParams.hs 42;" f
seedStartMenu src/Dodge/Menu.hs 79;" f
seedStartOptions src/Dodge/Menu.hs 82;" f
segOnCirc src/Geometry.hs 116;" f
selNumPos src/Dodge/Render/HUD.hs 357;" f
selNumPos src/Dodge/Render/HUD.hs 358;" f
selSecDrawCursor src/Dodge/Render/List.hs 87;" f
selSecSelCol src/Dodge/Render/HUD.hs 376;" f
selSecSelCol src/Dodge/Render/HUD.hs 377;" f
selSecSelSize src/Dodge/SelectionSections.hs 124;" f
selSecYint src/Dodge/SelectionSections.hs 127;" f
selectCreatureDebugItem src/Dodge/Debug.hs 38;" f
selectedCloseObject src/Dodge/Inventory.hs 289;" f
selectedCloseObject src/Dodge/Inventory.hs 292;" 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
@@ -7050,7 +7049,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 273;" f
setInvPosFromSS src/Dodge/Inventory.hs 274;" f
setItemCharge src/Dodge/ItEffect.hs 36;" f
setLayer src/Picture/Base.hs 139;" f
setLinkType src/Dodge/RoomLink.hs 60;" f
@@ -7143,13 +7142,12 @@ shootBezier src/Dodge/Item/Weapon/Bezier.hs 51;" f
shootBullet src/Dodge/HeldUse.hs 259;" f
shootBurstRifle src/Dodge/HeldUse/BulletWeapon.hs 164;" f
shootBurstRifleRepeat src/Dodge/HeldUse/BulletWeapon.hs 176;" f
shootDualLaser src/Dodge/Item/Weapon/BatteryGuns.hs 103;" f
shootElephantGun src/Dodge/HeldUse/BulletWeapon.hs 196;" f
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 428;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 429;" f
shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 77;" f
shootLaser' src/Dodge/HeldUse.hs 237;" f
shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f
@@ -7200,7 +7198,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 656;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 657;" f
sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f
sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 639;" f
@@ -7451,7 +7449,7 @@ textJustifyLeft src/Picture/Base.hs 208;" f
textJustifyRight src/Picture/Base.hs 198;" f
textNum src/Picture/Data.hs 53;" f
textRight src/Picture/Base.hs 203;" f
textSelItems src/Dodge/Render/HUD.hs 342;" f
textSelItems src/Dodge/Render/HUD.hs 343;" f
textVMirror src/Picture/Base.hs 216;" f
tflat2 src/Picture/Data.hs 80;" f
tflat3 src/Picture/Data.hs 83;" f
@@ -7604,7 +7602,7 @@ tryGetChannel src/Sound.hs 96;" 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 28;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 30;" f
trySeedFromClipboard src/Dodge/Menu.hs 88;" f
trySiphonFuel src/Dodge/Euse.hs 46;" f
trySpinByCID src/Dodge/Projectile/Update.hs 123;" f
@@ -7615,9 +7613,9 @@ turnTo src/Dodge/Movement/Turn.hs 4;" f
turnTo src/Dodge/Placements/Turret.hs 71;" f
turnToAmount src/Dodge/Movement/Turn.hs 15;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 14;" f
tweakItems src/Dodge/Render/HUD.hs 281;" f
tweakItems src/Dodge/Render/HUD.hs 282;" f
tweakPhaseV src/Dodge/Tweak.hs 21;" f
tweakString src/Dodge/Render/HUD.hs 289;" f
tweakString src/Dodge/Render/HUD.hs 290;" f
tweakTractionPower src/Dodge/Tweak.hs 14;" f
tweenAngles src/Geometry/Vector.hs 184;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 78;" f
@@ -7663,7 +7661,7 @@ 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 166;" f
updateCloseObjects src/Dodge/Inventory.hs 167;" f
updateCloud src/Dodge/Update.hs 605;" f
updateClouds src/Dodge/Update.hs 454;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f
@@ -7786,8 +7784,8 @@ upperPrismPolySU src/Shape.hs 112;" f
upperPrismPolyTS src/Shape.hs 118;" f
upperRounded src/Shape.hs 181;" f
upsProjectile src/Dodge/Projectile/Update.hs 51;" f
useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 345;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 363;" f
useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 346;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 364;" f
useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f
useC src/Dodge/Cuse.hs 6;" f
useE src/Dodge/Euse.hs 24;" f
@@ -7813,7 +7811,7 @@ useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" 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 378;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 379;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 214;" f
@@ -7910,32 +7908,30 @@ 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 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
withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 460;" f
withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 455;" 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 303;" f
withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 332;" f
withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 313;" 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
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
withSmoke src/Dodge/Item/Weapon/TriggerType.hs 116;" f
withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 256;" f
withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 269;" f
withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 282;" f
withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 227;" f
withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 243;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 465;" f
withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 257;" f
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
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
@@ -7977,7 +7973,7 @@ xyzV4 src/Geometry/Vector.hs 207;" f
yIntercepts' src/Dodge/Zoning/Base.hs 74;" f
yV2 src/Geometry/Vector.hs 203;" f
yellow src/Color.hs 17;" f
you src/Dodge/Base/You.hs 17;" f
you src/Dodge/Base/You.hs 18;" f
youBox' src/Dodge/Creature/ShadowBox.hs 8;" f
youDropItem src/Dodge/Creature/Action.hs 192;" f
youSil src/Dodge/Creature/ShadowBox.hs 15;" f
@@ -7986,8 +7982,9 @@ yourControl src/Dodge/Creature/YourControl.hs 22;" f
yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f
yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f
yourInfo src/Dodge/Creature/Info.hs 8;" f
yourInv src/Dodge/Base/You.hs 39;" f
yourItem src/Dodge/Base/You.hs 20;" f
yourInv src/Dodge/Base/You.hs 45;" f
yourRootItem src/Dodge/Base/You.hs 26;" f
yourSelectedItem src/Dodge/Base/You.hs 21;" f
yourStatsInfo src/Dodge/Creature/Info.hs 25;" f
zConnect src/Dodge/Render/Connectors.hs 13;" f
zConnectCol src/Dodge/Render/Connectors.hs 20;" f