diff --git a/ghcidOutput b/ghcidOutput index 47d741a2b..df8344d80 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,10 +1 @@ -/home/justin/Haskell/loop/src/Dodge/LightSource/Torch.hs:3:1-12: warning: [-Wunused-imports] - The import of ‘Color’ is redundant - | -3 | import Color - | ^^^^^^^^^^^^ -/home/justin/Haskell/loop/src/Dodge/LightSource/Torch.hs:4:1-29: warning: [-Wunused-imports] - The import of ‘Dodge.WorldEvent.Flash’ is redundant - | -4 | import Dodge.WorldEvent.Flash - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +All good (604 modules, at 18:23:45) diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index c29743d20..2e4eb95a6 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -280,7 +280,6 @@ testInventory = stackedInventory :: [Item] stackedInventory = [ torch - , torch , remoteScreen , megaShellMag , targetingScope TARGETLASER diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index d0cbf8d4a..847fa4a8c 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -3,13 +3,6 @@ module Dodge.Creature.State ( doDamage, ) where -import Dodge.WorldEvent.Flash -import Dodge.Data.DoubleTree -import Dodge.Item.HeldOffset -import Dodge.DoubleTree -import Dodge.Data.ComposedItem -import qualified Quaternion as Q -import Dodge.Item.Grammar import qualified Data.Map.Strict as M import Data.Maybe import Data.Monoid @@ -21,24 +14,31 @@ import Dodge.Creature.Impulse.Movement import Dodge.Creature.State.WalkCycle import Dodge.Creature.Test import Dodge.Damage +import Dodge.Data.ComposedItem +import Dodge.Data.DoubleTree import Dodge.Data.World -import Dodge.EnergyBall +import Dodge.DoubleTree import Dodge.Euse import Dodge.Hammer import Dodge.ItEffect +import Dodge.Item.Grammar +import Dodge.Item.HeldOffset import Dodge.Prop.Gib import Dodge.SoundLogic +import Dodge.WorldEvent.Flash import Dodge.Zoning.Creature import FoldableHelp import Geometry import qualified IntMapHelp as IM import LensHelp import Picture +import qualified Quaternion as Q import RandomHelp import qualified SDL import Shape import ShapePicture +-- this can almost certainly be made more efficient foldCr :: [Creature -> World -> World] -> Creature -> @@ -68,28 +68,13 @@ stateUpdate f = , updateInv -- upInv must be called before invSideEff 22.05.23 , invSideEff , equipmentEffects - -- , heldItemEffects - -- , heldAimEffects ] ---heldItemEffects :: Creature -> World -> World ---heldItemEffects _ = id - ---heldAimEffects :: Creature -> World -> World ---heldAimEffects cr = fromMaybe id $ do --- guard (crIsAiming cr) --- ipos <- cr ^? crManipulation . manObject . inInventory . ispItem --- itm <- cr ^? crInv . ix ipos --- f <- itm ^? itEffect . ieWhileAiming --- return $ doInvEffect f itm cr - checkDeath :: Creature -> World -> World checkDeath cr w - | _crHP cr > 0 = - w + | _crHP cr > 0 = w & cWorld . lWorld . creatures . ix (_crID cr) . crState . csDamage .~ [] - | otherwise = - w + | otherwise = w -- & creatures . at (_crID cr) .~ Nothing & dropByState cr & removecr @@ -104,58 +89,25 @@ checkDeath cr w | otherwise = cWorld . lWorld . creatures . at (_crID cr) .~ Nothing corpseOrGib :: Creature -> World -> World -corpseOrGib cr w = case maxDamageType (_csDamage (_crState cr)) of - Just (FLAMING, _) -> w & plNew (cWorld . lWorld . corpses) cpID (thecorpse & cpSPic %~ scorchSPic) - Just (ELECTRICAL, _) -> w & plNew (cWorld . lWorld . corpses) cpID thecorpse - Just (POISONDAM, _) -> w & plNew (cWorld . lWorld . corpses) cpID (thecorpse & cpSPic %~ poisonSPic) - _ - | _crPastDamage cr > 200 -> - w & addCrGibs cr - & bloodPuddleAt cpos - & bloodPuddleAt cpos - & bloodPuddleAt cpos - _ -> - w - & bloodPuddleAt cpos - & bloodPuddleAt cpos - & plNew (cWorld . lWorld . corpses) cpID thecorpse +corpseOrGib cr = case maxDamageType (_csDamage (_crState cr)) of + Just (FLAMING, _) -> plNew (cWorld . lWorld . corpses) cpID (thecorpse & cpSPic %~ scorchSPic) + Just (ELECTRICAL, _) -> plNew (cWorld . lWorld . corpses) cpID thecorpse + Just (POISONDAM, _) -> plNew (cWorld . lWorld . corpses) cpID (thecorpse & cpSPic %~ poisonSPic) + _ | _crPastDamage cr > 200 -> addCrGibs cr + _ -> plNew (cWorld . lWorld . corpses) cpID thecorpse where - cpos = _crPos cr thecorpse = makeDefaultCorpse cr scorchSPic :: SPic -> SPic -scorchSPic = - over _1 $ - overColSH (mixColors 0.9 0.1 black . normalizeColor) +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) - ---scorchSPic :: World -> SPic -> SPic ---scorchSPic w sp = evalState (scorchSPic' sp) (_randGen w) --- ---scorchSPic' :: SPic -> State StdGen SPic ---scorchSPic' = _1 $ overColSHM $ \col -> takeOne [col,black] ----- (return . mixColorsLinear 0.9 0.1 black) - -bloodPuddleAt :: Point2 -> World -> World -bloodPuddleAt p w = - w - & snd - . plNewID - (cWorld . lWorld . decorations) - (color (dark $ dark red) . setDepth 01 . uncurryV translate (p +.+ q) $ circleSolid 10) - & randGen .~ g - where - (q, g) = randInCirc 10 & runState $ _randGen w +poisonSPic = over _1 $ overColSH (mixColors 0.5 0.5 green . normalizeColor) internalHammerUpdate :: Creature -> World -> World internalHammerUpdate cr = cWorld . lWorld . creatures . ix (_crID cr) %~ ( (crHammerPosition %~ moveHammerUp) - -- . stepReloading . updateMovement ) @@ -169,10 +121,7 @@ dropByState cr w = foldr (dropItem cr) w $ case cr ^. crState . csDropsOnDeath o DropAmount n -> take n $ evalState (shuffle $ IM.keys $ _crInv cr) (_randGen w) doDamage :: Creature -> World -> World -doDamage cr w = - w - & applyPastDamages cr - & applyCreatureDamage dams cr +doDamage cr = applyPastDamages cr . applyCreatureDamage dams cr where dams = _csDamage $ _crState cr @@ -194,29 +143,7 @@ applyPastDamages cr w | otherwise = w movementSideEff :: Creature -> World -> World -movementSideEff cr w - | hasJetPack = case cr ^? crStance . carriage of - Just (Boosting v) -> - w - & randGen .~ g - & makeFlamelet - (oldPos +.+ (_crRad cr + 3) *.* unitVectorAtAngle (_crDir cr + pi)) - 20 - (momentum +.+ 1 *.* rotateV randDir (vInverse v)) - 1 - 20 - _ -> w - | otherwise = footstepSideEffect cr w - where - hasJetPack = any (\it -> it ^? itType == Just (EQUIP JETPACK)) $ _crInv cr - oldPos = _crOldPos cr - momentum' = 0.97 *.* (_crPos cr -.- _crOldPos cr) - momentum'' - | magV momentum' > 3 = 3 *.* normalizeV momentum' - | otherwise = momentum' - momentum = momentum'' +.+ 0.01 *.* unitVectorAtAngle randAng - (randDir, g) = randomR (-0.5, 0.5) $ _randGen w - (randAng, _) = randomR (0, 2 * pi) $ _randGen w +movementSideEff = footstepSideEffect useUpdate :: ItemUse -> ItemUse useUpdate = @@ -242,8 +169,9 @@ equipmentEffects cr = alaf Endo foldMap (useEquipment cr) (IM.keys $ _crInvEquip -- 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 = @@ -257,22 +185,25 @@ updateRootItem cr = fromMaybe id $ do return $ updateRootItem' itmtree cr -- need to check rotation -chainLinkOrientation - :: Maybe (Point3, Q.Quaternion Float) - -> Item - -> ItemLink - -> Item - -> Maybe (Point3,Q.Quaternion Float) +chainLinkOrientation :: + Maybe (Point3, Q.Quaternion Float) -> + Item -> + ItemLink -> + Item -> + Maybe (Point3, Q.Quaternion Float) chainLinkOrientation mo par (ILink lt f) child = do - (p,q) <- mo - (p1,q1) <- f par lt child + (p, q) <- mo + (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 +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 @@ -281,7 +212,7 @@ updateItemWithOrientation cr m itm = case _itType itm of testtorch :: Creature -> Maybe (Point3, Q.Quaternion Float) -> World -> World testtorch cr m = fromMaybe id $ do - (pos,q) <- m + (pos, q) <- m let d = _crDir cr + argV (Q.qToV2 q) return $ muzFlareAt yellow (_crPos cr `v2z` 0 + rotate3z d pos) d @@ -302,50 +233,55 @@ itemInvSideEffect cr itm = case _itType itm of -- attachoff = it ^?! itDimension . dimAttachPos updateItemTargeting :: TargetingType -> Creature -> Item -> World -> World -updateItemTargeting tt cr itm w = w & case tt of - _ | not isattached -> +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 + { _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)) - TARGETLASER | crIsAiming cr -> - 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) + . (tgActive .~ False) ) - 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 - (Just (mouseWorldPos (w ^. input) (w ^. wCam))) - Nothing - True + 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 + (Just (mouseWorldPos (w ^. input) (w ^. wCam))) + Nothing + True where isattached = itm ^?! itLocation . ilIsAttached rbpressed = SDL.ButtonRight `M.member` _mouseButtons (_input w) diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index 84aa5e7b3..59b8383c5 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -109,7 +109,6 @@ data EquipItemType | POWERLEGS | SPEEDLEGS | JUMPLEGS - | JETPACK | FUELPACK | BULLETBELTPACK | BULLETBELTBRACER diff --git a/src/Dodge/Item.hs b/src/Dodge/Item.hs index e5d2ff4e7..6901b3e10 100644 --- a/src/Dodge/Item.hs +++ b/src/Dodge/Item.hs @@ -67,7 +67,6 @@ itemFromEquipType et = case et of POWERLEGS -> powerLegs SPEEDLEGS -> speedLegs JUMPLEGS -> jumpLegs - JETPACK -> jetPack BATTERYPACK -> batteryPack FUELPACK -> fuelPack BULLETBELTPACK -> bulletBeltPack diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index a6ae0b16d..ea468a33e 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -83,7 +83,6 @@ equipItemSPic et _ = case et of POWERLEGS -> legsSPic yellow SPEEDLEGS -> legsSPic green JUMPLEGS -> legsSPic red - JETPACK -> noPic $ colorSH yellow backpackShape BATTERYPACK -> noPic $ colorSH blue backpackShape FUELPACK -> noPic $ colorSH yellow $ upperPrismPolyMT 10 $ polyCirc 3 5 diff --git a/src/Dodge/Item/Equipment.hs b/src/Dodge/Item/Equipment.hs index 7afc01a7d..4eddeeb90 100644 --- a/src/Dodge/Item/Equipment.hs +++ b/src/Dodge/Item/Equipment.hs @@ -8,7 +8,6 @@ module Dodge.Item.Equipment ( brainHat, frontArmour, headLamp, - jetPack, fuelPack, batteryPack, bulletBeltPack, @@ -88,13 +87,6 @@ bulletBeltBracer = & itUse . equipEffect . eeUse .~ EAmmoSource 100 100 --BulletSource Nothing -jetPack :: Item -jetPack = - defaultEquipment - & itUse . equipEffect . eeSite .~ GoesOnBack - & itType .~ EQUIP JETPACK - & itUse . equipEffect . eeAttachPos .~ V3 (-8) 0 10 - brainHat :: Item brainHat = defaultEquipment diff --git a/src/Dodge/Item/Info.hs b/src/Dodge/Item/Info.hs index 1c1f378aa..490195ebe 100644 --- a/src/Dodge/Item/Info.hs +++ b/src/Dodge/Item/Info.hs @@ -117,7 +117,6 @@ equipInfo eit = case eit of POWERLEGS -> "Strength enhancing legs." SPEEDLEGS -> "Speed enhancing legs." JUMPLEGS -> "Jump enhancing legs." - JETPACK -> "A device enabling flight." FUELPACK -> "A liquid container with attached hose." BULLETBELTPACK -> "A container holding a long belt of bullets." BULLETBELTBRACER -> "A container holding a long belt of bullets." diff --git a/src/Dodge/Item/Orientation.hs b/src/Dodge/Item/Orientation.hs index 70d2c8af0..104891098 100644 --- a/src/Dodge/Item/Orientation.hs +++ b/src/Dodge/Item/Orientation.hs @@ -21,8 +21,8 @@ orientByLink itm lt = case (_itType itm,lt) of orientAttachment :: Item -> ComposeLinkType -> Item -> Maybe (Point3, Q.Quaternion Float) orientAttachment par lnk ch = Just $ case (_itType par,lnk,_itType ch) of - (HELD BURSTRIFLE,_,HELD TORCH) -> (V3 20 0 0, Q.qID) - (HELD LAUNCHER,_,HELD TORCH) -> (V3 0 20 0, Q.qID) +-- (HELD BURSTRIFLE,_,HELD TORCH) -> (V3 20 0 0, Q.qID) +-- (HELD LAUNCHER,_,HELD TORCH) -> (V3 0 20 0, Q.qID) _ -> (t1 + Q.rotate q1 t2, q1 * q2) where (t1,q1) = orientByLink par lnk diff --git a/src/Dodge/LightSource/Torch.hs b/src/Dodge/LightSource/Torch.hs index 536fe1507..84d3e1b5a 100644 --- a/src/Dodge/LightSource/Torch.hs +++ b/src/Dodge/LightSource/Torch.hs @@ -1,7 +1,7 @@ -module Dodge.LightSource.Torch where +module Dodge.LightSource.Torch + ( createTorchLightOffset + ) where -import Color -import Dodge.WorldEvent.Flash import Dodge.Data.World import Dodge.Item.Draw -- heldItemOffset needs to be moved somewhere more sensible import Dodge.LightSource -- this needs to be split! @@ -9,14 +9,8 @@ import Geometry import LensHelp createTorchLightOffset :: Creature -> Item -> Point3 -> World -> World -createTorchLightOffset cr it off = - (cWorld . lWorld . tempLightSources - .:~ tlsTimeRadColPos - 1 - 250 - 0.7 - pos - ) +createTorchLightOffset cr it off = cWorld . lWorld . tempLightSources .:~ + tlsTimeRadColPos 1 250 0.7 pos where pos = (p +.+.+ rotate3 (_crDir cr) (heldItemOffset it cr (off +.+.+ V3 8 0 1.5))) p = addZ 0 $ _crPos cr diff --git a/tags b/tags index 490f5e23b..ccf661973 100644 --- a/tags +++ b/tags @@ -3355,7 +3355,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 180;" f +applyPastDamages src/Dodge/Creature/State.hs 162;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 110;" f applyRecoil src/Dodge/HeldUse.hs 85;" f @@ -3485,7 +3485,7 @@ 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 143;" 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 @@ -3539,7 +3539,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 260;" f +chainLinkOrientation src/Dodge/Creature/State.hs 243;" f chainPairs src/Geometry.hs 363;" f changeSwapClose src/Dodge/Inventory.hs 230;" f changeSwapInv src/Dodge/Inventory.hs 246;" f @@ -3556,7 +3556,7 @@ chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f checkBlockHP src/Dodge/Block.hs 46;" f -checkDeath src/Dodge/Creature/State.hs 86;" f +checkDeath src/Dodge/Creature/State.hs 73;" f checkEndGame src/Dodge/Update.hs 584;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -3670,7 +3670,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 106;" f +corpseOrGib src/Dodge/Creature/State.hs 91;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f @@ -3977,7 +3977,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 171;" f +doDamage src/Dodge/Creature/State.hs 153;" f doDamagesFL src/Dodge/Flame.hs 58;" f doDeathToggle src/Dodge/WorldEffect.hs 95;" f doDeathTriggers src/Dodge/WorldEffect.hs 90;" f @@ -4152,7 +4152,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 165;" f +dropByState src/Dodge/Creature/State.hs 147;" 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 @@ -4189,7 +4189,7 @@ equipPosition src/Dodge/Item/Draw.hs 31;" f equipSiteInfo src/Dodge/Item/Info.hs 225;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f -equipmentEffects src/Dodge/Creature/State.hs 239;" f +equipmentEffects src/Dodge/Creature/State.hs 221;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 22;" f errorAngleVV src/Geometry.hs 62;" f errorClosestPointOnLine src/Geometry.hs 74;" f @@ -4516,7 +4516,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 154;" f +internalHammerUpdate src/Dodge/Creature/State.hs 136;" 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 +4546,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 244;" f +invSideEff src/Dodge/Creature/State.hs 226;" 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 +4564,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 436;" f +isFrictionless src/Dodge/Creature/State.hs 427;" f isGas src/Dodge/Euse.hs 64;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f @@ -4602,7 +4602,7 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemFromLeftType src/Dodge/Item.hs 77;" f itemInfo src/Dodge/Item/Info.hs 12;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemInvSideEffect src/Dodge/Creature/State.hs 288;" f +itemInvSideEffect src/Dodge/Creature/State.hs 274;" 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,7 +4611,7 @@ 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 376;" f +itemUpdate src/Dodge/Creature/State.hs 367;" f itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f @@ -4935,7 +4935,7 @@ 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 196;" 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 +5151,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 131;" f +poisonSPic src/Dodge/Creature/State.hs 113;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 516;" f pokeArrayOff src/Shader/Poke.hs 527;" f @@ -5490,7 +5490,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 126;" f +scorchSPic src/Dodge/Creature/State.hs 108;" 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 +5561,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 355;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 346;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5847,7 +5847,7 @@ 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 282;" f +testtorch src/Dodge/Creature/State.hs 268;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f textJustifyCenter src/Picture/Base.hs 212;" f @@ -6017,7 +6017,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 386;" f +updateAutoRecharge src/Dodge/Creature/State.hs 377;" 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 +6057,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 235;" f +updateInv src/Dodge/Creature/State.hs 217;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateInventorySectionItems src/Dodge/DisplayInventory.hs 143;" f -updateItemTargeting src/Dodge/Creature/State.hs 304;" f -updateItemWithOrientation src/Dodge/Creature/State.hs 277;" f +updateItemTargeting src/Dodge/Creature/State.hs 290;" f +updateItemWithOrientation src/Dodge/Creature/State.hs 263;" 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 +6072,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 425;" f +updateMovement src/Dodge/Creature/State.hs 416;" f updateObjCatMaybes src/Dodge/Update.hs 407;" f updateObjMapMaybe src/Dodge/Update.hs 400;" f updatePastWorlds src/Dodge/Update.hs 305;" f @@ -6090,8 +6090,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 253;" f -updateRootItem' src/Dodge/Creature/State.hs 271;" f +updateRootItem src/Dodge/Creature/State.hs 236;" f +updateRootItem' src/Dodge/Creature/State.hs 254;" 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 +6148,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 229;" f +useEquipment src/Dodge/Creature/State.hs 211;" 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 +6169,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 221;" f +useUpdate src/Dodge/Creature/State.hs 203;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f v2z src/Geometry/Vector3D.hs 93;" f