From 6bcd5bc591f9d5fc2236e7bfc256f29d8e9bb256 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 2 Oct 2024 18:54:31 +0100 Subject: [PATCH] Cleanup --- ghcidOutput | 2 +- src/Dodge/Creature/State.hs | 167 ++++++---------------- tags | 270 ++++++++++++++++++------------------ 3 files changed, 178 insertions(+), 261 deletions(-) diff --git a/ghcidOutput b/ghcidOutput index df8344d80..8b692c219 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (604 modules, at 18:23:45) +All good (604 modules, at 18:53:36) diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 847fa4a8c..9c835044d 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -62,9 +62,9 @@ stateUpdate f = foldCr [ doDamage -- these two , checkDeath -- must be in this order 24/7/22 - , internalHammerUpdate + , internalCreatureUpdate , f - , movementSideEff + , footstepSideEffect , updateInv -- upInv must be called before invSideEff 22.05.23 , invSideEff , equipmentEffects @@ -75,7 +75,6 @@ checkDeath cr w | _crHP cr > 0 = w & cWorld . lWorld . creatures . ix (_crID cr) . crState . csDamage .~ [] | otherwise = w - -- & creatures . at (_crID cr) .~ Nothing & dropByState cr & removecr & stopSoundFrom (CrWeaponSound (_crID cr) 0) @@ -104,8 +103,8 @@ scorchSPic = over _1 $ overColSH (mixColors 0.9 0.1 black . normalizeColor) poisonSPic :: SPic -> SPic poisonSPic = over _1 $ overColSH (mixColors 0.5 0.5 green . normalizeColor) -internalHammerUpdate :: Creature -> World -> World -internalHammerUpdate cr = +internalCreatureUpdate :: Creature -> World -> World +internalCreatureUpdate cr = cWorld . lWorld . creatures . ix (_crID cr) %~ ( (crHammerPosition %~ moveHammerUp) . updateMovement @@ -142,17 +141,6 @@ applyPastDamages cr w & randGen .~ g | otherwise = w -movementSideEff :: Creature -> World -> World -movementSideEff = footstepSideEffect - -useUpdate :: ItemUse -> ItemUse -useUpdate = - (heldHammer %~ moveHammerUp) - . (leftHammer %~ moveHammerUp) - . (leftDelay . rateTime %~ decreaseToZero) - . (heldDelay . warmTime %~ decreaseToZero) - . (heldDelay . rateTime %~ decreaseToZero) - useEquipment :: Creature -> Int -> World -> World useEquipment cr i = useE (_eeUse (_equipEffect $ _itUse itm)) itm cr where @@ -163,17 +151,15 @@ updateInv :: Creature -> World -> World updateInv cr = cWorld . lWorld . creatures . ix (_crID cr) . crInv %~ IM.map itemUpdate -- a loop going over equipped items +-- maybe this should be done during a different loop (invSideEff)? equipmentEffects :: Creature -> World -> World --equipmentEffects cr = flip (foldl' $ flip $ useEquipment cr) (IM.keys $ _crInvEquipped cr) equipmentEffects cr = alaf Endo foldMap (useEquipment cr) (IM.keys $ _crInvEquipped cr) -- a loop going over all inventory items invSideEff :: Creature -> World -> World -invSideEff cr = - alaf Endo foldMap f (_crInv cr) - . updateRootItem cr +invSideEff cr = alaf Endo foldMap f (_crInv cr) . updateRootItem cr where - -- be careful with side effects that affect creature targeting f it = itemInvSideEffect cr it . maybe id (\g -> doInvEffect g it cr) (it ^? itEffect . ieInv) @@ -184,6 +170,15 @@ updateRootItem cr = fromMaybe id $ do itmtree <- invTrees' (_crInv cr) ^? ix invid return $ updateRootItem' itmtree cr +updateRootItem' :: LabelDoubleTree ItemLink Item -> Creature -> World -> World +updateRootItem' itmtree cr = + ldtPropagateFold + chainLinkOrientation + chainLinkOrientation + (updateItemWithOrientation cr) + (Just (heldItemRelativeOrient (_ldtValue itmtree) cr (0, Q.qID))) + itmtree + -- need to check rotation chainLinkOrientation :: Maybe (Point3, Q.Quaternion Float) -> @@ -196,15 +191,6 @@ chainLinkOrientation mo par (ILink lt f) child = do (p1, q1) <- f par lt child return (p + Q.rotate q1 p1, q * q1) -updateRootItem' :: LabelDoubleTree ItemLink Item -> Creature -> World -> World -updateRootItem' itmtree cr = - ldtPropagateFold - chainLinkOrientation - chainLinkOrientation - (updateItemWithOrientation cr) - (Just (heldItemRelativeOrient (_ldtValue itmtree) cr (0, Q.qID))) - itmtree - updateItemWithOrientation :: Creature -> Maybe (Point3, Q.Quaternion Float) -> Item -> World -> World updateItemWithOrientation cr m itm = case _itType itm of HELD TORCH -> testtorch cr m @@ -221,68 +207,35 @@ itemInvSideEffect cr itm = case _itType itm of TARGETING tt -> updateItemTargeting tt cr itm _ -> id ---itemInvSideEffect cr it --- | hastorchattach = createAttachLight cr it --- | otherwise = id --- where --- hastorchattach = it ^? itType . iyModules . ix ModHeldAttach == Just ATTACHTORCH && _itIsRoot it - ---createAttachLight :: Creature -> Item -> World -> World ---createAttachLight cr it = createTorchLightOffset cr it attachoff --- where --- attachoff = it ^?! itDimension . dimAttachPos - updateItemTargeting :: TargetingType -> Creature -> Item -> World -> World -updateItemTargeting tt cr itm w = - w & case tt of - _ - | not isattached -> - cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID $ _itLocation itm) . itUse - %~ ( (tgPos .~ Nothing) - . (tgActive .~ False) - ) - TARGETLASER - | crIsAiming cr -> - cWorld . lWorld . lasers - .:~ LaserStart +updateItemTargeting tt cr itm w = case tt of + _ | not isattached -> w + & pointItUse . tgPos .~ Nothing + & pointItUse . tgActive .~ False + TARGETLASER | crIsAiming cr -> w + & cWorld . lWorld . lasers .:~ LaserStart { _lpPhaseV = 1 , _lpDir = _crDir cr , _lpPos = sp , _lpColor = col , _lpType = TargetingLaser (_itID itm) } - TARGETLASER -> - cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID $ _itLocation itm) - . itUse - . tgPos - .~ Nothing - TargetRBPress - | rbpressed -> - cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID $ _itLocation itm) . itUse - %~ ( (tgPos %~ maybe (Just $ mouseWorldPos (w ^. input) (w ^. wCam)) Just) - . (tgActive .~ True) - ) - TargetRBPress -> - cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix (_ilInvID $ _itLocation itm) . itUse - %~ ( (tgPos .~ Nothing) - . (tgActive .~ False) - ) - TargetRBCreature -> - cWorld . lWorld . creatures . ix (_crID cr) - . crInv - . ix (_ilInvID $ _itLocation itm) - . itUse - %~ setRBCreatureTargeting cr w - TargetCursor -> - cWorld . lWorld . creatures . ix (_crID cr) - . crInv - . ix (_ilInvID $ _itLocation itm) - . itUse - .~ TargetingUse + TARGETLASER -> w & pointItUse . tgPos .~ Nothing + TargetRBPress | rbpressed -> w + & pointItUse . tgPos %~ maybe (Just $ mouseWorldPos (w ^. input) (w ^. wCam)) Just + & pointItUse . tgActive .~ True + TargetRBPress -> w + & pointItUse . tgPos .~ Nothing + & pointItUse . tgActive .~ False + TargetRBCreature -> w & pointItUse %~ setRBCreatureTargeting cr w + TargetCursor -> w & pointItUse .~ TargetingUse (Just (mouseWorldPos (w ^. input) (w ^. wCam))) Nothing True where + pointItUse = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itUse + cid = _crID cr + invid = _ilInvID $ _itLocation itm isattached = itm ^?! itLocation . ilIsAttached rbpressed = SDL.ButtonRight `M.member` _mouseButtons (_input w) sp = _crPos cr +.+ 15 *.* unitVectorAtAngle (_crDir cr) @@ -291,8 +244,7 @@ updateItemTargeting tt cr itm w = setRBCreatureTargeting :: Creature -> World -> ItemUse -> ItemUse setRBCreatureTargeting cr w ituse | SDL.ButtonRight `M.member` _mouseButtons (_input w) && isJust (ituse ^? tgID . _Just) - && canSeeTarget = - ituse & updatePos & tgActive .~ True + && canSeeTarget = ituse & updatePos & tgActive .~ True | otherwise = ituse & tgID .~ fmap _crID newtarg & updatePos & tgActive .~ False where newtarg = @@ -310,14 +262,16 @@ setRBCreatureTargeting cr w ituse Just $ hasLOS cpos (_crPos cr) w itemUpdate :: Item -> Item -itemUpdate = - updateAutoRecharge - . (itUse %~ useUpdate) +itemUpdate = updateAutoRecharge . (itUse %~ useUpdate) + +useUpdate :: ItemUse -> ItemUse +useUpdate = + (heldHammer %~ moveHammerUp) + . (leftHammer %~ moveHammerUp) + . (leftDelay . rateTime %~ decreaseToZero) + . (heldDelay . warmTime %~ decreaseToZero) + . (heldDelay . rateTime %~ decreaseToZero) --- . (itLocation .~ InInv (_crID cr) i itmisselected itmisroot) --- where --- 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 @@ -326,48 +280,15 @@ updateAutoRecharge it = case it ^? itUse . leftConsumption of | l < m -> it & itUse . leftConsumption . arProgress -~ 1 _ -> it ---itemGetTargeting :: LabelDoubleTree ComposeLinkType Item - --- I feel like there should be a centralised function that supersumes this --- i.e. a function that deals with all states that depend upon item positioning --- in the inventory ---crGetTargeting :: Creature -> Maybe TargetingType ---crGetTargeting cr = do --- i <- cr ^? crManipulation . manObject . imRootItem --- itm <- cr ^? crInv . ix i --- itm ^? itType . iyModules . ix ModTarget . imtTargetType --- <|> do --- tt <- cr ^? crInv . ix (i-1) . itType . iyBase . ibtTargeting --- guard (canAttachTargeting tt itm) --- return tt --- <|> do --- tt <- cr ^? crInv . ix (i+1) . itUse . equipTargeting . _Just --- guard (canAttachTargeting tt itm) --- return tt - ---weaponReloadSounds :: Creature -> World -> World ---weaponReloadSounds cr w = case cr ^? crManipulation . manObject . inInventory . iselAction of --- Just ReloadAction{_reloadAction = la} -> --- soundContinue --- (CrReloadSound cid) --- (_crPos cr) --- (_actionSound la) --- (Just 1) --- w --- _ -> w --- where --- cid = _crID cr - updateMovement :: Creature -> Creature updateMovement cr | isFrictionless cr = over crPos (+.+ momentum) cr | otherwise = updateWalkCycle cr where momentum' = 0.98 *.* (_crPos cr -.- _crOldPos cr) - momentum'' + momentum | magV momentum' > 1 = 1 *.* normalizeV momentum' | otherwise = momentum' - momentum = momentum'' isFrictionless :: Creature -> Bool isFrictionless cr = case cr ^? crStance . carriage of diff --git a/tags b/tags index ccf661973..accf6fafb 100644 --- a/tags +++ b/tags @@ -21,7 +21,7 @@ <$> src/Dodge/Data/Terminal.hs 129;" o AIUNIT src/Dodge/Data/Item/Combine.hs 52;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 22;" C -AMR src/Dodge/Data/Item/Combine.hs 147;" C +AMR src/Dodge/Data/Item/Combine.hs 146;" C ANTIMATTER src/Dodge/Data/Item/Combine.hs 46;" C APItEffect src/Dodge/Data/Item/Use.hs 82;" C APLinkProjectile src/Dodge/Data/Item/Use.hs 80;" C @@ -29,10 +29,10 @@ APNothing src/Dodge/Data/Item/Use.hs 84;" C AQUAMARINE src/Color/Data.hs 24;" C ATTACH src/Dodge/Data/Item/Combine.hs 21;" C AUGMENTEDHUD src/Dodge/Data/Item/Combine.hs 83;" C -AUTOAMR src/Dodge/Data/Item/Combine.hs 148;" C -AUTODETECTOR src/Dodge/Data/Item/Combine.hs 117;" C -AUTOPISTOL src/Dodge/Data/Item/Combine.hs 135;" C -AUTORIFLE src/Dodge/Data/Item/Combine.hs 143;" C +AUTOAMR src/Dodge/Data/Item/Combine.hs 147;" C +AUTODETECTOR src/Dodge/Data/Item/Combine.hs 116;" C +AUTOPISTOL src/Dodge/Data/Item/Combine.hs 134;" C +AUTORIFLE src/Dodge/Data/Item/Combine.hs 142;" C AZURE src/Color/Data.hs 23;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 28;" C Action src/Dodge/Data/ActionPlan.hs 78;" t @@ -107,27 +107,27 @@ AutoTrigger src/Dodge/Data/Item/Use.hs 76;" C AuxAddition src/Shader/AuxAddition.hs 1;" m Awareness src/Dodge/Data/Creature/Perception.hs 65;" t Awareness src/Dodge/Creature/Picture/Awareness.hs 1;" m -BANGCONE src/Dodge/Data/Item/Combine.hs 137;" C -BANGROD src/Dodge/Data/Item/Combine.hs 145;" C -BANGSTICK src/Dodge/Data/Item/Combine.hs 132;" C +BANGCONE src/Dodge/Data/Item/Combine.hs 136;" C +BANGROD src/Dodge/Data/Item/Combine.hs 144;" C +BANGSTICK src/Dodge/Data/Item/Combine.hs 131;" C BATTERY src/Dodge/Data/Item/Combine.hs 91;" C -BATTERYPACK src/Dodge/Data/Item/Combine.hs 116;" C +BATTERYPACK src/Dodge/Data/Item/Combine.hs 115;" C BELTMAG src/Dodge/Data/Item/Combine.hs 89;" C BLACK src/Color/Data.hs 28;" C -BLINKER src/Dodge/Data/Item/Combine.hs 125;" C -BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 126;" C -BLOWTORCH src/Dodge/Data/Item/Combine.hs 154;" C +BLINKER src/Dodge/Data/Item/Combine.hs 124;" C +BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 125;" C +BLOWTORCH src/Dodge/Data/Item/Combine.hs 153;" C BLUE src/Color/Data.hs 17;" C -BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 138;" C +BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 137;" C BLUNT src/Dodge/Data/Damage/Type.hs 13;" C -BOOSTER src/Dodge/Data/Item/Combine.hs 121;" C +BOOSTER src/Dodge/Data/Item/Combine.hs 120;" C BQuad src/Geometry/Bezier.hs 9;" t BRAINHAT src/Dodge/Data/Item/Combine.hs 106;" C -BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 115;" C -BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 114;" C +BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 114;" C +BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 113;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 24;" C BULLETSYNTHESIZER src/Dodge/Data/Item/Combine.hs 80;" C -BURSTRIFLE src/Dodge/Data/Item/Combine.hs 144;" C +BURSTRIFLE src/Dodge/Data/Item/Combine.hs 143;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C Ball src/Dodge/Tesla/Ball.hs 1;" m Bark src/Dodge/Data/ActionPlan.hs 40;" C @@ -250,7 +250,7 @@ CME src/Dodge/Data/MuzzleEffect.hs 11;" C CONCUSSIVE src/Dodge/Data/Damage/Type.hs 22;" C CONSUMABLE src/Dodge/Data/Item/Combine.hs 19;" C CRAFT src/Dodge/Data/Item/Combine.hs 20;" C -CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 172;" C +CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 171;" C CREATURESENSOR src/Dodge/Data/Item/Combine.hs 63;" C CRUSHING src/Dodge/Data/Damage/Type.hs 16;" C CUTTING src/Dodge/Data/Damage/Type.hs 14;" C @@ -441,7 +441,7 @@ Cuse src/Dodge/Data/Item/HeldUse.hs 24;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C DPoint2 src/Geometry/Data.hs 34;" t -DRONELAUNCHER src/Dodge/Data/Item/Combine.hs 162;" C +DRONELAUNCHER src/Dodge/Data/Item/Combine.hs 161;" C DRUMMAG src/Dodge/Data/Item/Combine.hs 88;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 29;" C @@ -507,7 +507,7 @@ DestroyBullet src/Dodge/Data/Bullet.hs 37;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C DestroyPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" C DestroyTLS src/Dodge/Data/LightSource.hs 22;" C -Detector src/Dodge/Data/Item/Combine.hs 170;" t +Detector src/Dodge/Data/Item/Combine.hs 169;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m @@ -606,7 +606,7 @@ EDoNothing src/Dodge/Data/Item/HeldUse.hs 30;" C EFuelSource src/Dodge/Data/Item/HeldUse.hs 38;" C EHeadLamp src/Dodge/Data/Item/HeldUse.hs 34;" C ELECTRICAL src/Dodge/Data/Damage/Type.hs 20;" C -ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 146;" C +ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 145;" C EMagShield src/Dodge/Data/Item/HeldUse.hs 32;" C ENTERREMENT src/Dodge/Data/Damage/Type.hs 24;" C EQUIP src/Dodge/Data/Item/Combine.hs 18;" C @@ -671,18 +671,18 @@ Eyes src/Dodge/Data/Creature/Perception.hs 41;" C FBO src/Shader/Data.hs 57;" t FLAKCRAFT src/Dodge/Data/Item/Combine.hs 70;" C FLAMESHIELD src/Dodge/Data/Item/Combine.hs 102;" C -FLAMESPITTER src/Dodge/Data/Item/Combine.hs 150;" C -FLAMETHROWER src/Dodge/Data/Item/Combine.hs 151;" C -FLAMETORRENT src/Dodge/Data/Item/Combine.hs 152;" C -FLAMEWALL src/Dodge/Data/Item/Combine.hs 153;" C +FLAMESPITTER src/Dodge/Data/Item/Combine.hs 149;" C +FLAMETHROWER src/Dodge/Data/Item/Combine.hs 150;" C +FLAMETORRENT src/Dodge/Data/Item/Combine.hs 151;" C +FLAMEWALL src/Dodge/Data/Item/Combine.hs 152;" C FLAMING src/Dodge/Data/Damage/Type.hs 18;" C FLASHMODULE src/Dodge/Data/Item/Combine.hs 68;" C -FLATSHIELD src/Dodge/Data/Item/Combine.hs 166;" C +FLATSHIELD src/Dodge/Data/Item/Combine.hs 165;" C FRAGCRAFT src/Dodge/Data/Item/Combine.hs 71;" C FRAGMODULE src/Dodge/Data/Item/Combine.hs 67;" C FRONTARMOUR src/Dodge/Data/Item/Combine.hs 103;" C FUELCELL src/Dodge/Data/Item/Combine.hs 65;" C -FUELPACK src/Dodge/Data/Item/Combine.hs 113;" C +FUELPACK src/Dodge/Data/Item/Combine.hs 112;" C FacilityType src/Dodge/Data/Scenario.hs 55;" t Faction src/Dodge/Data/Creature/State.hs 34;" t Factory src/Dodge/Data/Scenario.hs 56;" C @@ -755,7 +755,7 @@ GASINJECTOR src/Dodge/Data/Item/Combine.hs 69;" C GEqC src/SameConstr.hs 20;" c GLASSSHARD src/Dodge/Data/Item/Combine.hs 38;" C GLHelp src/GLHelp.hs 1;" m -GRAPECANNON src/Dodge/Data/Item/Combine.hs 139;" C +GRAPECANNON src/Dodge/Data/Item/Combine.hs 138;" C GRAVITYMODULE src/Dodge/Data/Item/Combine.hs 75;" C GREEN src/Color/Data.hs 16;" C GameOverOptions src/Dodge/Data/Universe.hs 68;" C @@ -812,7 +812,7 @@ HAT src/Dodge/Data/Item/Combine.hs 107;" C HEADLAMP src/Dodge/Data/Item/Combine.hs 108;" C HEATSENSOR src/Dodge/Data/Item/Combine.hs 60;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C -HELDDETECTOR src/Dodge/Data/Item/Combine.hs 164;" C +HELDDETECTOR src/Dodge/Data/Item/Combine.hs 163;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C HUD src/Dodge/Data/HUD.hs 35;" t @@ -834,7 +834,7 @@ HasHammer src/Dodge/Data/Hammer.hs 14;" C HeavySmokeFlare src/Dodge/Data/Item/Use.hs 141;" C Held src/Dodge/Item/Held.hs 1;" m HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m -HeldItemType src/Dodge/Data/Item/Combine.hs 131;" t +HeldItemType src/Dodge/Data/Item/Combine.hs 130;" t HeldOffset src/Dodge/Item/HeldOffset.hs 1;" m HeldParams src/Dodge/Data/Item/Use.hs 87;" t HeldScroll src/Dodge/HeldScroll.hs 1;" m @@ -866,7 +866,7 @@ HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t ILink src/Dodge/Data/ComposedItem.hs 45;" C INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C -ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 171;" C +ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 170;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 34;" t Important src/Shape/Data.hs 35;" C @@ -954,19 +954,18 @@ ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 28;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 36;" t ItmInt src/Dodge/Data/Item/Location.hs 24;" t -JETPACK src/Dodge/Data/Item/Combine.hs 112;" C JGK src/Control/Foldl/JGK.hs 1;" m JUMPLEGS src/Dodge/Data/Item/Combine.hs 111;" C JoinClust src/Dodge/Combine/Graph.hs 18;" C Just' src/MaybeHelp.hs 13;" C JustStartedPlaying src/Sound/Data.hs 25;" C Justify src/Justify.hs 1;" m -KEYCARD src/Dodge/Data/Item/Combine.hs 167;" C +KEYCARD src/Dodge/Data/Item/Combine.hs 166;" C Kill src/Dodge/Data/ActionPlan.hs 198;" C LASERING src/Dodge/Data/Damage/Type.hs 19;" C -LASGUN src/Dodge/Data/Item/Combine.hs 157;" C -LAUNCHER src/Dodge/Data/Item/Combine.hs 159;" C -LAUNCHERX src/Dodge/Data/Item/Combine.hs 160;" C +LASGUN src/Dodge/Data/Item/Combine.hs 156;" C +LAUNCHER src/Dodge/Data/Item/Combine.hs 158;" C +LAUNCHERX src/Dodge/Data/Item/Combine.hs 159;" C LBlink src/Dodge/Data/Item/HeldUse.hs 53;" C LBoost src/Dodge/Data/Item/HeldUse.hs 55;" C LDT src/Dodge/Data/DoubleTree.hs 39;" C @@ -1025,7 +1024,7 @@ Left src/Dodge/Item/Left.hs 1;" m LeftButton src/Dodge/Terminal/LeftButton.hs 1;" m LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 26;" t LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C -LeftItemType src/Dodge/Data/Item/Combine.hs 120;" t +LeftItemType src/Dodge/Data/Item/Combine.hs 119;" t LeftwardLDT src/Dodge/Data/DoubleTree.hs 46;" C LensHelp src/LensHelp.hs 1;" m Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C @@ -1086,7 +1085,7 @@ LtAutoCrit src/Dodge/Creature/LtAutoCrit.hs 1;" m Lure src/Dodge/Data/ActionPlan.hs 179;" C Luse src/Dodge/Data/Item/HeldUse.hs 47;" t Luse src/Dodge/Luse.hs 1;" m -MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 134;" C +MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 133;" C MAGENTA src/Color/Data.hs 20;" C MAGNET src/Dodge/Data/Item/Combine.hs 45;" C MAGSHIELD src/Dodge/Data/Item/Combine.hs 101;" C @@ -1097,7 +1096,7 @@ MEDKIT src/Dodge/Data/Item/Combine.hs 96;" C MICROCHIP src/Dodge/Data/Item/Combine.hs 49;" C MICROPHONE src/Dodge/Data/Item/Combine.hs 61;" C MINIDISPLAY src/Dodge/Data/Item/Combine.hs 54;" C -MINIGUNX src/Dodge/Data/Item/Combine.hs 140;" C +MINIGUNX src/Dodge/Data/Item/Combine.hs 139;" C MODBlockedString src/Dodge/Data/Universe.hs 96;" C MODString src/Dodge/Data/Universe.hs 95;" C MODStringOption src/Dodge/Data/Universe.hs 97;" C @@ -1347,12 +1346,12 @@ P2ImpNo src/Dodge/Data/CreatureEffect.hs 28;" C P2NoAction src/Dodge/Data/CreatureEffect.hs 53;" C PIERCING src/Dodge/Data/Damage/Type.hs 12;" C PIPE src/Dodge/Data/Item/Combine.hs 28;" C -PISTOL src/Dodge/Data/Item/Combine.hs 133;" C +PISTOL src/Dodge/Data/Item/Combine.hs 132;" C PLANK src/Dodge/Data/Item/Combine.hs 37;" C PLATE src/Dodge/Data/Item/Combine.hs 47;" C PLUS src/Dodge/Data/GenParams.hs 20;" C POISONDAM src/Dodge/Data/Damage/Type.hs 23;" C -POISONSPRAYER src/Dodge/Data/Item/Combine.hs 161;" C +POISONSPRAYER src/Dodge/Data/Item/Combine.hs 160;" C PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 66;" C POWERLEGS src/Dodge/Data/Item/Combine.hs 109;" C PPLevelReset src/Dodge/Data/PressPlate.hs 16;" C @@ -1522,9 +1521,9 @@ RAM src/Dodge/Data/Item/Combine.hs 51;" C RBList src/Dodge/Inventory/RBList.hs 1;" m RED src/Color/Data.hs 15;" C REMOTESCREEN src/Dodge/Data/Item/Combine.hs 81;" C -REWINDWATCH src/Dodge/Data/Item/Combine.hs 123;" C +REWINDWATCH src/Dodge/Data/Item/Combine.hs 122;" C RGBA src/Color/Data.hs 31;" t -RIFLE src/Dodge/Data/Item/Combine.hs 142;" C +RIFLE src/Dodge/Data/Item/Combine.hs 141;" C ROSE src/Color/Data.hs 21;" C RPLinkStatus src/Dodge/Data/Room.hs 55;" t RProps src/Dodge/Layout/Generate.hs 13;" C @@ -1615,18 +1614,18 @@ RoundedFaces src/Shape/Data.hs 18;" C RunPast src/Dodge/Room/RunPast.hs 1;" m RunningSideEffect src/Dodge/Data/Universe.hs 65;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 39;" C -SCROLLWATCH src/Dodge/Data/Item/Combine.hs 124;" C -SHATTERGUN src/Dodge/Data/Item/Combine.hs 163;" C +SCROLLWATCH src/Dodge/Data/Item/Combine.hs 123;" C +SHATTERGUN src/Dodge/Data/Item/Combine.hs 162;" C SHATTERING src/Dodge/Data/Damage/Type.hs 17;" C SHELLMAG src/Dodge/Data/Item/Combine.hs 90;" C -SHRINKER src/Dodge/Data/Item/Combine.hs 127;" C +SHRINKER src/Dodge/Data/Item/Combine.hs 126;" C SIZEMODULE src/Dodge/Data/Item/Combine.hs 74;" C -SMG src/Dodge/Data/Item/Combine.hs 136;" C -SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 149;" C +SMG src/Dodge/Data/Item/Combine.hs 135;" C +SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 148;" C SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 59;" C -SPARKGUN src/Dodge/Data/Item/Combine.hs 155;" C +SPARKGUN src/Dodge/Data/Item/Combine.hs 154;" C SPARKING src/Dodge/Data/Damage/Type.hs 15;" C -SPAWNER src/Dodge/Data/Item/Combine.hs 128;" C +SPAWNER src/Dodge/Data/Item/Combine.hs 127;" C SPEEDLEGS src/Dodge/Data/Item/Combine.hs 110;" C SPRING src/Dodge/Data/Item/Combine.hs 31;" C SPic src/ShapePicture/Data.hs 7;" t @@ -1635,7 +1634,7 @@ SQUARE src/Dodge/Data/GenParams.hs 20;" C SSSExtra src/Dodge/Data/SelectionList.hs 44;" t ST src/Dodge/Tree/Compose/Data.hs 12;" C STEELDRUM src/Dodge/Data/Item/Combine.hs 36;" C -STOPWATCH src/Dodge/Data/Item/Combine.hs 122;" C +STOPWATCH src/Dodge/Data/Item/Combine.hs 121;" C SameConstr src/SameConstr.hs 5;" m Save src/Dodge/Save.hs 1;" m SaveSlot src/Dodge/Data/SaveSlot.hs 9;" t @@ -1818,7 +1817,7 @@ TAPE src/Dodge/Data/Item/Combine.hs 33;" C TARGETING src/Dodge/Data/Item/Combine.hs 23;" C TARGETLASER src/Dodge/Data/Item/Targeting.hs 12;" C TELEPORTMODULE src/Dodge/Data/Item/Combine.hs 72;" C -TESLAGUN src/Dodge/Data/Item/Combine.hs 156;" C +TESLAGUN src/Dodge/Data/Item/Combine.hs 155;" C THERMOMETER src/Dodge/Data/Item/Combine.hs 62;" C THREELINES src/Dodge/Data/GenParams.hs 20;" C TIMEMODULE src/Dodge/Data/Item/Combine.hs 73;" C @@ -1829,8 +1828,8 @@ TLSFade src/Dodge/Data/LightSource.hs 18;" C TLSIntensity src/Dodge/Data/LightSource.hs 16;" t TLSUpdate src/Dodge/Data/LightSource.hs 21;" t TO src/Shader/Data.hs 59;" t -TORCH src/Dodge/Data/Item/Combine.hs 165;" C -TRACTORGUN src/Dodge/Data/Item/Combine.hs 158;" C +TORCH src/Dodge/Data/Item/Combine.hs 164;" C +TRACTORGUN src/Dodge/Data/Item/Combine.hs 157;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 42;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 48;" C TSbackspace src/Dodge/Data/Input.hs 38;" C @@ -2024,7 +2023,7 @@ VAO src/Shader/Data.hs 64;" t VBO src/Shader/Data.hs 81;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 22;" C -VOLLEYGUN src/Dodge/Data/Item/Combine.hs 141;" C +VOLLEYGUN src/Dodge/Data/Item/Combine.hs 140;" C VariableSelectionWidth src/Dodge/Data/SelectionList.hs 68;" C Vector src/Geometry/Vector.hs 3;" m Vector3D src/Geometry/Vector3D.hs 2;" m @@ -2040,7 +2039,7 @@ Vision src/Dodge/Data/Creature/Perception.hs 41;" t Vocalization src/Dodge/Data/Creature/Misc.hs 27;" t Vocalization src/Dodge/Creature/Vocalization.hs 1;" m Volition src/Dodge/Creature/Volition.hs 2;" m -WALLDETECTOR src/Dodge/Data/Item/Combine.hs 173;" C +WALLDETECTOR src/Dodge/Data/Item/Combine.hs 172;" C WASD src/Dodge/WASD.hs 1;" m WHITE src/Color/Data.hs 27;" C WIRE src/Dodge/Data/Item/Combine.hs 64;" C @@ -3257,9 +3256,9 @@ _wpMaxCharge src/Dodge/Data/Item/Use/Consumption.hs 34;" f _wsBlock src/Dodge/Data/Wall.hs 52;" f _wsDoor src/Dodge/Data/Wall.hs 50;" f _wsMachine src/Dodge/Data/Wall.hs 51;" f -_xNum src/Dodge/Data/Item/Combine.hs 132;" f -_xNum src/Dodge/Data/Item/Combine.hs 139;" f -_xNum src/Dodge/Data/Item/Combine.hs 160;" f +_xNum src/Dodge/Data/Item/Combine.hs 131;" f +_xNum src/Dodge/Data/Item/Combine.hs 138;" f +_xNum src/Dodge/Data/Item/Combine.hs 159;" f aDroneWithItemParams src/Dodge/Item/Weapon/Drone.hs 30;" f aFlame src/Dodge/Gas.hs 18;" f aFlameParticle src/Dodge/Flame.hs 22;" f @@ -3317,7 +3316,7 @@ advanceScrollAmount src/Dodge/Update.hs 299;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 50;" f -aimStanceInfo src/Dodge/Item/Info.hs 215;" f +aimStanceInfo src/Dodge/Item/Info.hs 214;" f aimTurn src/Dodge/Creature/YourControl.hs 189;" f aimingMuzzleLength src/Dodge/Creature/HandPos.hs 46;" f aimingMuzzlePos src/Dodge/Creature/HandPos.hs 41;" f @@ -3355,7 +3354,7 @@ applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f applyInvLock src/Dodge/HeldUse.hs 66;" f applyMagnetsToBul src/Dodge/Bullet.hs 46;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f -applyPastDamages src/Dodge/Creature/State.hs 162;" f +applyPastDamages src/Dodge/Creature/State.hs 128;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 110;" f applyRecoil src/Dodge/HeldUse.hs 85;" f @@ -3421,28 +3420,28 @@ azure src/Color.hs 22;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backpackCombinations src/Dodge/Combine/Combinations.hs 25;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 96;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 95;" f backspaceInputted src/Dodge/Update/Input/Text.hs 26;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f -bangConeShape src/Dodge/Item/Draw/SPic.hs 237;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 236;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f bangStick src/Dodge/Item/Held/Stick.hs 17;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 347;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 346;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 257;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 256;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 38;" f basePartiallyComposedItem' src/Dodge/Item/Grammar.hs 85;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 260;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 344;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 327;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 259;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 343;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 326;" f baseShoulder src/Dodge/Creature/Picture.hs 128;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 234;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 229;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 233;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 228;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 32;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f @@ -3456,7 +3455,7 @@ basicMachineUpdate src/Dodge/Machine.hs 13;" f basicMuzFlare src/Dodge/HeldUse.hs 166;" f basicTerminal src/Dodge/Terminal.hs 32;" f battery src/Dodge/Item/Ammo.hs 74;" f -batteryPack src/Dodge/Item/Equipment.hs 57;" f +batteryPack src/Dodge/Item/Equipment.hs 56;" f belowNumX src/Dodge/Combine/Graph.hs 76;" f beltMag src/Dodge/Item/Ammo.hs 42;" f bfsNodePoints src/Dodge/Path.hs 58;" f @@ -3485,7 +3484,6 @@ blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 380;" f blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 342;" f blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 330;" f -bloodPuddleAt src/Dodge/Creature/State.hs 125;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 51;" f blue src/Color.hs 16;" f blunderbuss src/Dodge/Item/Held/Cone.hs 29;" f @@ -3505,7 +3503,7 @@ boxSurfaces src/Shader/Poke.hs 269;" f boxSurfacesIndices src/Shader/Poke.hs 282;" f boxXYZ src/Polyhedra.hs 93;" f boxXYZnobase src/Polyhedra.hs 79;" f -brainHat src/Dodge/Item/Equipment.hs 98;" f +brainHat src/Dodge/Item/Equipment.hs 90;" f branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 69;" f bright src/Color.hs 116;" f @@ -3514,8 +3512,8 @@ btSPic src/Dodge/Render/ShapePicture.hs 175;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 36;" f -bulletBeltBracer src/Dodge/Item/Equipment.hs 82;" f -bulletBeltPack src/Dodge/Item/Equipment.hs 73;" f +bulletBeltBracer src/Dodge/Item/Equipment.hs 81;" f +bulletBeltPack src/Dodge/Item/Equipment.hs 72;" f bulletCombinations src/Dodge/Combine/Graph.hs 34;" f bulletModule src/Dodge/Item/Scope.hs 34;" f bulletPayloadModule src/Dodge/Item/Scope.hs 43;" f @@ -3539,7 +3537,7 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 288;" f centroid src/Geometry/Polygon.hs 113;" f centroidNum src/Geometry/Polygon.hs 116;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f -chainLinkOrientation src/Dodge/Creature/State.hs 243;" f +chainLinkOrientation src/Dodge/Creature/State.hs 176;" f chainPairs src/Geometry.hs 363;" f changeSwapClose src/Dodge/Inventory.hs 230;" f changeSwapInv src/Dodge/Inventory.hs 246;" f @@ -3661,7 +3659,7 @@ connectionBlurb src/Dodge/Terminal.hs 100;" f connectionBlurbLines src/Dodge/Terminal.hs 45;" f constructEdges src/Polyhedra.hs 33;" f constructEdgesList src/Polyhedra.hs 42;" f -consumableInfo src/Dodge/Item/Info.hs 135;" f +consumableInfo src/Dodge/Item/Info.hs 134;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f convexHull src/Geometry/Polygon.hs 91;" f convexHullSafe src/Geometry/Polygon.hs 96;" f @@ -3670,7 +3668,7 @@ copyItemToFloor src/Dodge/FloorItem.hs 17;" f copyItemToFloorID src/Dodge/FloorItem.hs 21;" f corDoor src/Dodge/Room/Room.hs 378;" f cornerList src/Preload/Render.hs 194;" f -corpseOrGib src/Dodge/Creature/State.hs 91;" f +corpseOrGib src/Dodge/Creature/State.hs 90;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f @@ -3704,7 +3702,7 @@ crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 54;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f crZoneSize src/Dodge/Zoning/Creature.hs 39;" f -craftInfo src/Dodge/Item/Info.hs 140;" f +craftInfo src/Dodge/Item/Info.hs 139;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 420;" f createArc src/Dodge/Tesla/Arc.hs 67;" f createBarrelSpark src/Dodge/Spark.hs 44;" f @@ -3829,7 +3827,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 316;" f defDamageMaterial src/Dodge/Material/Damage.hs 17;" f defLSPic src/Dodge/LightSource/Draw.hs 11;" f -defSPic src/Dodge/Item/Draw/SPic.hs 243;" f +defSPic src/Dodge/Item/Draw/SPic.hs 242;" f defaultAimMvType src/Dodge/Default/Creature.hs 122;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 6;" f defaultAimingCrit src/Dodge/Default/Creature.hs 131;" f @@ -3931,9 +3929,9 @@ destroyMount src/Dodge/Block.hs 98;" f destroyMounts src/Dodge/Block.hs 95;" f destroyProjectile src/Dodge/Projectile/Update.hs 62;" f detV src/Geometry/Vector.hs 93;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 404;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 403;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 19;" f -detectorInfo src/Dodge/Item/Info.hs 195;" f +detectorInfo src/Dodge/Item/Info.hs 194;" f determineInvSelCursorWidth src/Dodge/ListDisplayParams.hs 54;" f determineProjectileTracking src/Dodge/HeldUse.hs 446;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f @@ -3977,7 +3975,7 @@ doCrImp src/Dodge/CreatureEffect.hs 28;" f doCrWdAc src/Dodge/CreatureEffect.hs 77;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f -doDamage src/Dodge/Creature/State.hs 153;" f +doDamage src/Dodge/Creature/State.hs 122;" f doDamagesFL src/Dodge/Flame.hs 58;" f doDeathToggle src/Dodge/WorldEffect.hs 95;" f doDeathTriggers src/Dodge/WorldEffect.hs 90;" f @@ -4152,7 +4150,7 @@ drawWlIDs src/Dodge/Debug/Picture.hs 327;" f drawZoneCol src/Dodge/Debug/Picture.hs 115;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 247;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f -dropByState src/Dodge/Creature/State.hs 147;" f +dropByState src/Dodge/Creature/State.hs 116;" f dropExcept src/Dodge/Creature/Action.hs 172;" f dropItem src/Dodge/Creature/Action.hs 177;" f drumMag src/Dodge/Item/Ammo.hs 36;" f @@ -4186,10 +4184,10 @@ equipAllocString src/Dodge/Render/HUD.hs 175;" f equipInfo src/Dodge/Item/Info.hs 107;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 66;" f equipPosition src/Dodge/Item/Draw.hs 31;" f -equipSiteInfo src/Dodge/Item/Info.hs 225;" f +equipSiteInfo src/Dodge/Item/Info.hs 224;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f -equipmentEffects src/Dodge/Creature/State.hs 221;" f +equipmentEffects src/Dodge/Creature/State.hs 154;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 22;" f errorAngleVV src/Geometry.hs 62;" f errorClosestPointOnLine src/Geometry.hs 74;" f @@ -4247,17 +4245,17 @@ fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flDamageInArea src/Dodge/Flame.hs 110;" f flFlicker src/Dodge/Flame.hs 124;" f -flameShield src/Dodge/Item/Equipment.hs 36;" f +flameShield src/Dodge/Item/Equipment.hs 35;" f flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 330;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 329;" f flareCircleAt src/Dodge/WorldEvent/Flash.hs 46;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 49;" f flatLookupItems src/Dodge/Combine.hs 35;" f flatShield src/Dodge/Item/Held/Utility.hs 9;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 391;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 390;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f fletchingModule src/Dodge/Item/Scope.hs 31;" f @@ -4303,9 +4301,9 @@ fromJust' src/MaybeHelp.hs 24;" f fromListL src/DoubleStack.hs 7;" f fromTopLeft src/Dodge/ScreenPos.hs 9;" f fromV3 src/Geometry/Data.hs 43;" f -frontArmour src/Dodge/Item/Equipment.hs 42;" f +frontArmour src/Dodge/Item/Equipment.hs 41;" f fstV2 src/Geometry/Data.hs 50;" f -fuelPack src/Dodge/Item/Equipment.hs 65;" f +fuelPack src/Dodge/Item/Equipment.hs 64;" f functionalUpdate src/Dodge/Update.hs 232;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f @@ -4425,10 +4423,10 @@ hasButtonLOS src/Dodge/Base/Collide.hs 207;" f hasFrontArmour src/Dodge/Creature/Test.hs 112;" f hasLOS src/Dodge/Base/Collide.hs 200;" f hasLOSIndirect src/Dodge/Base/Collide.hs 214;" f -hat src/Dodge/Item/Equipment.hs 104;" f +hat src/Dodge/Item/Equipment.hs 96;" f head src/DoubleStack.hs 14;" f -headLamp src/Dodge/Item/Equipment.hs 117;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 394;" f +headLamp src/Dodge/Item/Equipment.hs 109;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 393;" f headMap src/Dodge/DoubleTree.hs 154;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4442,8 +4440,8 @@ heldEffectMuzzles src/Dodge/HeldUse.hs 36;" f heldInfo src/Dodge/Item/Info.hs 48;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 66;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 28;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 175;" f -heldPositionInfo src/Dodge/Item/Info.hs 212;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 174;" f +heldPositionInfo src/Dodge/Item/Info.hs 211;" f helpCommand src/Dodge/Terminal.hs 64;" f helpPoly3D src/Polyhedra.hs 124;" f heron src/Geometry.hs 221;" f @@ -4516,7 +4514,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f insertWithNewKeys src/IntMapHelp.hs 72;" f -internalHammerUpdate src/Dodge/Creature/State.hs 136;" f +internalHammerUpdate src/Dodge/Creature/State.hs 106;" f interpWith src/Dodge/Creature/Boid.hs 10;" f intersectCircSeg src/Geometry/Intersect.hs 303;" f intersectCircSegFirst src/Geometry/Intersect.hs 314;" f @@ -4546,7 +4544,7 @@ invRootMap src/Dodge/Item/Grammar.hs 138;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 34;" f invSelectionItem' src/Dodge/Inventory/SelectionList.hs 16;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f -invSideEff src/Dodge/Creature/State.hs 226;" f +invSideEff src/Dodge/Creature/State.hs 159;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f invTrees src/Dodge/Item/Grammar.hs 165;" f invTrees' src/Dodge/Item/Grammar.hs 174;" f @@ -4564,7 +4562,7 @@ isAmmoIntLink src/Dodge/HeldUse.hs 174;" 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 427;" f +isFrictionless src/Dodge/Creature/State.hs 369;" f isGas src/Dodge/Euse.hs 64;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f @@ -4599,10 +4597,10 @@ itemFromBase src/Dodge/Item.hs 21;" f itemFromConsumableType src/Dodge/Item.hs 51;" f itemFromEquipType src/Dodge/Item.hs 56;" f itemFromHeldType src/Dodge/Item/Held.hs 25;" f -itemFromLeftType src/Dodge/Item.hs 77;" 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 274;" f +itemInvSideEffect src/Dodge/Creature/State.hs 207;" f itemNumberDisplay src/Dodge/Item/Display.hs 111;" f itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f @@ -4611,17 +4609,16 @@ itemString src/Dodge/Item/Display.hs 57;" f itemToBreakLists src/Dodge/Item/Grammar.hs 41;" f itemToFunction src/Dodge/Item/Grammar.hs 66;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f -itemUpdate src/Dodge/Creature/State.hs 367;" f +itemUpdate src/Dodge/Creature/State.hs 300;" f itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 22;" f -itmEquipSiteInfo src/Dodge/Item/Info.hs 222;" f +itmEquipSiteInfo src/Dodge/Item/Info.hs 221;" f itmSpaceInfo src/Dodge/Item/Info.hs 17;" f -itmUsageInfo src/Dodge/Item/Info.hs 201;" f +itmUsageInfo src/Dodge/Item/Info.hs 200;" f jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -jetPack src/Dodge/Item/Equipment.hs 91;" f joinItemsInList src/Dodge/Item/Grammar.hs 120;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f @@ -4629,14 +4626,14 @@ jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f jsps0 src/Dodge/LevelGen/PlacementHelper.hs 39;" f jsps0J src/Dodge/LevelGen/PlacementHelper.hs 48;" f jspsJ src/Dodge/LevelGen/PlacementHelper.hs 45;" f -jumpLegs src/Dodge/Item/Equipment.hs 133;" f +jumpLegs src/Dodge/Item/Equipment.hs 125;" f justify src/Justify.hs 9;" f k src/ShortShow.hs 34;" f keyCard src/Dodge/Item/Held/Utility.hs 20;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 69;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 57;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f -keyPic src/Dodge/Item/Draw/SPic.hs 410;" f +keyPic src/Dodge/Item/Draw/SPic.hs 409;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 456;" f lConnect src/Dodge/Render/Connectors.hs 30;" f @@ -4649,7 +4646,7 @@ lampCrSPic src/Dodge/Render/ShapePicture.hs 104;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasGun src/Dodge/Item/Held/BatteryGuns.hs 40;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 360;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 359;" f lasRayAt src/Dodge/HeldUse.hs 266;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f lasTunnel src/Dodge/Room/LasTurret.hs 124;" f @@ -4659,7 +4656,7 @@ lastMap src/Dodge/DoubleTree.hs 158;" f latchkey src/Dodge/Item/Held/Utility.hs 23;" f launcher src/Dodge/Item/Held/Launcher.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f -launcherPic src/Dodge/Item/Draw/SPic.hs 333;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 332;" f launcherX src/Dodge/Item/Held/Launcher.hs 32;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f @@ -4673,10 +4670,10 @@ ldtToIndentList src/Dodge/DoubleTree.hs 130;" f left src/DoubleStack.hs 16;" f leftInfo src/Dodge/Item/Info.hs 96;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 90;" f -leftItemSPic src/Dodge/Item/Draw/SPic.hs 99;" f +leftItemSPic src/Dodge/Item/Draw/SPic.hs 98;" f leftPad src/Padding.hs 14;" f leftRightCombine src/Dodge/Item/Grammar.hs 104;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 428;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 427;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f light src/Color.hs 100;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 44;" f @@ -4745,7 +4742,7 @@ machineAddSound src/Dodge/Machine.hs 49;" f machinePistol src/Dodge/Item/Held/Stick.hs 58;" f machineUpdateDeathEff src/Dodge/Machine.hs 34;" f machineUpdateLiveDieEff src/Dodge/Machine.hs 16;" f -magShield src/Dodge/Item/Equipment.hs 28;" f +magShield src/Dodge/Item/Equipment.hs 27;" f magV src/Geometry/Vector.hs 160;" f magV3 src/Geometry/Vector3D.hs 78;" f magazineCombinations src/Dodge/Combine/Combinations.hs 41;" f @@ -4889,8 +4886,8 @@ minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 322;" f miniGunCrit src/Dodge/Creature.hs 62;" f miniGunX src/Dodge/Item/Held/Cane.hs 83;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 308;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 303;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 307;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 302;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f miniTree2 src/Dodge/Room/Room.hs 108;" f minimumOn src/FoldlHelp.hs 12;" f @@ -4935,7 +4932,6 @@ moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f moveZoomCamera src/Dodge/Update/Camera.hs 80;" f -movementSideEff src/Dodge/Creature/State.hs 178;" f mtTopLabels src/Dodge/Tree/Compose.hs 49;" f mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f muchWlDustAt src/Dodge/Wall/Dust.hs 15;" f @@ -5151,7 +5147,7 @@ pointerToItemLocation src/Dodge/Item/Location.hs 25;" f pointerYourRootItem src/Dodge/Item/Location.hs 42;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 36;" f pointsToPoly src/Geometry/ConvexPoly.hs 39;" f -poisonSPic src/Dodge/Creature/State.hs 113;" f +poisonSPic src/Dodge/Creature/State.hs 103;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 516;" f pokeArrayOff src/Shader/Poke.hs 527;" f @@ -5209,7 +5205,7 @@ postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f postWorldLoad src/Dodge/WorldLoad.hs 14;" f powerFakeout src/Dodge/Room/Start.hs 37;" f powerFakeout' src/Dodge/Room/Start.hs 34;" f -powerLegs src/Dodge/Item/Equipment.hs 124;" f +powerLegs src/Dodge/Item/Equipment.hs 116;" f powlist src/Multiset.hs 55;" f powlistUpToN src/Multiset.hs 20;" f powlistUpToN' src/Multiset.hs 9;" f @@ -5490,7 +5486,7 @@ scaleSH src/Shape.hs 265;" f scalp src/Dodge/Creature/Picture.hs 93;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 70;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/State.hs 108;" f +scorchSPic src/Dodge/Creature/State.hs 100;" f screenBox src/Dodge/Base/Window.hs 53;" f screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f @@ -5561,7 +5557,7 @@ setOldPos src/Dodge/Update.hs 351;" 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 346;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 279;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5599,7 +5595,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxSize src/Shape/Parameters.hs 10;" f shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 246;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 245;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 51;" f shellCollisionEffect src/Dodge/Projectile/Update.hs 47;" f @@ -5724,7 +5720,7 @@ spawnGun src/Dodge/Item/Weapon/Spawn.hs 12;" f spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f spawnerCrit src/Dodge/Creature.hs 55;" f spawnerRoom src/Dodge/Room/Room.hs 362;" f -speedLegs src/Dodge/Item/Equipment.hs 130;" f +speedLegs src/Dodge/Item/Equipment.hs 122;" f splashMenu src/Dodge/Menu.hs 27;" f splashMenuOptions src/Dodge/Menu.hs 32;" f splashScreen src/Dodge/Initialisation.hs 11;" f @@ -5840,14 +5836,14 @@ terminalSPic src/Dodge/Machine/Draw.hs 26;" f terminalShape src/Dodge/Machine/Draw.hs 29;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 76;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 350;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 349;" 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 256;" f testPic src/Dodge/Render/ShapePicture.hs 163;" f testStringInit src/Dodge/TestString.hs 22;" f -testtorch src/Dodge/Creature/State.hs 268;" f +testtorch src/Dodge/Creature/State.hs 201;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f textJustifyCenter src/Picture/Base.hs 212;" f @@ -5911,14 +5907,14 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f topTestPart src/Dodge/TestString.hs 35;" f torch src/Dodge/Item/Held/Utility.hs 26;" f -torchShape src/Dodge/Item/Draw/SPic.hs 215;" f +torchShape src/Dodge/Item/Draw/SPic.hs 214;" f torqueCr src/Dodge/WorldEffect.hs 70;" f torso src/Dodge/Creature/Picture.hs 102;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 236;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 67;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 388;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 387;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -6017,7 +6013,7 @@ 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 -updateAutoRecharge src/Dodge/Creature/State.hs 377;" f +updateAutoRecharge src/Dodge/Creature/State.hs 319;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 159;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f @@ -6057,11 +6053,11 @@ updateIMl' src/Dodge/Update.hs 391;" f updateInGameCamera src/Dodge/Update/Camera.hs 71;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 108;" f updateInstantBullets src/Dodge/Update.hs 535;" f -updateInv src/Dodge/Creature/State.hs 217;" f +updateInv src/Dodge/Creature/State.hs 150;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateInventorySectionItems src/Dodge/DisplayInventory.hs 143;" f -updateItemTargeting src/Dodge/Creature/State.hs 290;" f -updateItemWithOrientation src/Dodge/Creature/State.hs 263;" f +updateItemTargeting src/Dodge/Creature/State.hs 223;" f +updateItemWithOrientation src/Dodge/Creature/State.hs 196;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 102;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 91;" f updateLampoid src/Dodge/Lampoid.hs 13;" f @@ -6072,7 +6068,7 @@ updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 128;" f updateMIM src/Dodge/Update.hs 548;" f updateMachine src/Dodge/Machine/Update.hs 16;" f -updateMovement src/Dodge/Creature/State.hs 416;" f +updateMovement src/Dodge/Creature/State.hs 358;" f updateObjCatMaybes src/Dodge/Update.hs 407;" f updateObjMapMaybe src/Dodge/Update.hs 400;" f updatePastWorlds src/Dodge/Update.hs 305;" f @@ -6090,8 +6086,8 @@ updateRadarSweep src/Dodge/RadarSweep.hs 25;" f updateRadarSweeps src/Dodge/Update.hs 449;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 105;" f -updateRootItem src/Dodge/Creature/State.hs 236;" f -updateRootItem' src/Dodge/Creature/State.hs 254;" f +updateRootItem src/Dodge/Creature/State.hs 169;" f +updateRootItem' src/Dodge/Creature/State.hs 187;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Camera.hs 128;" f updateScopeZoom' src/Dodge/Update/Camera.hs 133;" f @@ -6148,7 +6144,7 @@ useBulletPayload src/Dodge/Bullet.hs 105;" f useC src/Dodge/Cuse.hs 8;" f useC' src/Dodge/Cuse.hs 13;" f useE src/Dodge/Euse.hs 24;" f -useEquipment src/Dodge/Creature/State.hs 211;" f +useEquipment src/Dodge/Creature/State.hs 144;" f useGasParams src/Dodge/HeldUse.hs 376;" f useHotKey src/Dodge/Creature/YourControl.hs 49;" f useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 126;" f @@ -6169,7 +6165,7 @@ useStopWatch src/Dodge/Luse.hs 24;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 246;" f useTimeScrollGun src/Dodge/Luse.hs 32;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f -useUpdate src/Dodge/Creature/State.hs 203;" f +useUpdate src/Dodge/Creature/State.hs 305;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f v2z src/Geometry/Vector3D.hs 93;" f @@ -6199,7 +6195,7 @@ visibleWalls src/Dodge/Base/Collide.hs 123;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 32;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 291;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 290;" f waistSP src/Dodge/Creature/HandPos.hs 199;" f walkNozzle src/Dodge/HeldUse.hs 204;" f walkableNodeNear src/Dodge/Path.hs 48;" f @@ -6278,8 +6274,8 @@ worldPosToScreen src/Dodge/Base/Coordinate.hs 28;" f worldSPic src/Dodge/Render/ShapePicture.hs 30;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 134;" f -wristArmour src/Dodge/Item/Equipment.hs 48;" f -wristInvisibility src/Dodge/Item/Equipment.hs 136;" f +wristArmour src/Dodge/Item/Equipment.hs 47;" f +wristInvisibility src/Dodge/Item/Equipment.hs 128;" f writeConfig src/Dodge/Menu.hs 159;" f writeSaveSlot src/Dodge/Save.hs 34;" f xCylinder src/Shape.hs 134;" f