From 49ffbfafc2c5afd5e6034bb2fc44c32b45c59b6f Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 2 Oct 2024 22:57:10 +0100 Subject: [PATCH] Fix bug in attached item position orienting --- ghcidOutput | 16 ++++- src/Dodge/Creature/State.hs | 41 +++++++----- src/Dodge/Data/ComposedItem.hs | 2 +- src/Dodge/ItEffect.hs | 4 +- src/Dodge/Item/Draw/SPic.hs | 5 +- src/Dodge/Item/Orientation.hs | 4 +- src/Dodge/LightSource/Torch.hs | 16 ----- tags | 114 ++++++++++++++++----------------- 8 files changed, 105 insertions(+), 97 deletions(-) delete mode 100644 src/Dodge/LightSource/Torch.hs diff --git a/ghcidOutput b/ghcidOutput index 8b692c219..1075d70b5 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,15 @@ -All good (604 modules, at 18:53:36) +/home/justin/Haskell/loop/src/Dodge/ItEffect.hs:67:17-19: warning: [-Wunused-matches] + Defined but not used: ‘itm’ + | +67 | createHeldLight itm cr = id + | ^^^ +/home/justin/Haskell/loop/src/Dodge/ItEffect.hs:67:21-22: warning: [-Wunused-matches] + Defined but not used: ‘cr’ + | +67 | createHeldLight itm cr = id + | ^^ +/home/justin/Haskell/loop/src/Dodge/Creature/State.hs:202:14-16: warning: [-Wunused-matches] + Defined but not used: ‘itm’ + | +202 | testtorch cr itm (p,q) = --createTorchLightOffset cr itm pos' . + | ^^^ diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 9c835044d..aafbb7257 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -3,6 +3,8 @@ module Dodge.Creature.State ( doDamage, ) where +import Dodge.LightSource +import Dodge.WorldEvent.Flash import qualified Data.Map.Strict as M import Data.Maybe import Data.Monoid @@ -25,7 +27,7 @@ import Dodge.Item.Grammar import Dodge.Item.HeldOffset import Dodge.Prop.Gib import Dodge.SoundLogic -import Dodge.WorldEvent.Flash +--import Dodge.WorldEvent.Flash import Dodge.Zoning.Creature import FoldableHelp import Geometry @@ -176,31 +178,40 @@ updateRootItem' itmtree cr = chainLinkOrientation chainLinkOrientation (updateItemWithOrientation cr) - (Just (heldItemRelativeOrient (_ldtValue itmtree) cr (0, Q.qID))) + (heldItemRelativeOrient (_ldtValue itmtree) cr (0, Q.qID)) itmtree -- need to check rotation chainLinkOrientation :: - Maybe (Point3, Q.Quaternion Float) -> + (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 - return (p + Q.rotate q1 p1, q * q1) + (Point3, Q.Quaternion Float) +chainLinkOrientation mo par (ILink lt f) child = (p + Q.rotate q p1, q * q1) + where + (p, q) = mo + (p1, q1) = f par lt child -updateItemWithOrientation :: Creature -> Maybe (Point3, Q.Quaternion Float) -> Item -> World -> World +updateItemWithOrientation :: Creature -> (Point3, Q.Quaternion Float) -> Item -> World -> World updateItemWithOrientation cr m itm = case _itType itm of - HELD TORCH -> testtorch cr m + HELD TORCH -> testtorch cr itm m _ -> id -testtorch :: Creature -> Maybe (Point3, Q.Quaternion Float) -> World -> World -testtorch cr m = fromMaybe id $ do - (pos, q) <- m - let d = _crDir cr + argV (Q.qToV2 q) - return $ muzFlareAt yellow (_crPos cr `v2z` 0 + rotate3z d pos) d +testtorch :: Creature -> Item -> (Point3, Q.Quaternion Float) -> World -> World +testtorch cr itm (p,q) = --createTorchLightOffset cr itm pos' . + muzFlareAt yellow pos'' d + .( cWorld . lWorld . tempLightSources .:~ + tlsTimeRadColPos 1 250 0.7 pos'' + ) + where + --pos = (_crPos cr `v2z` 0 + rotate3 cdir p) + pos = (_crPos cr `v2z` 0 + rotate3 cdir p) + --pos'' = pos + pos'' = pos + rotate3 d (V3 8 0 1.5) + cdir = _crDir cr + a = argV (Q.qToV2 q) + d = _crDir cr + a itemInvSideEffect :: Creature -> Item -> World -> World itemInvSideEffect cr itm = case _itType itm of diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 9b1076c17..3efc85b2d 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -44,7 +44,7 @@ type ComposedItem = (Item, ItemStructuralFunction) data ItemLink = ILink { _iatType :: ComposeLinkType - , _iatOrient :: Item -> ComposeLinkType -> Item -> Maybe (Point3, Quaternion Float) + , _iatOrient :: Item -> ComposeLinkType -> Item -> (Point3, Quaternion Float) } data LinkTest lt = LTest diff --git a/src/Dodge/ItEffect.hs b/src/Dodge/ItEffect.hs index e4a0049e6..7bdf1754b 100644 --- a/src/Dodge/ItEffect.hs +++ b/src/Dodge/ItEffect.hs @@ -4,7 +4,6 @@ import qualified IntMapHelp as IM import Control.Lens import Dodge.Data.World import Dodge.Euse -import Dodge.LightSource.Torch doInvEffect :: ItInvEffect -> Item -> Creature -> World -> World doInvEffect iie = case iie of @@ -65,4 +64,5 @@ chargeIfEquipped itm cr maxcharge = itm ^?! itUse . leftConsumption . wpMaxCharge createHeldLight :: Item -> Creature -> World -> World -createHeldLight itm cr = createTorchLightOffset cr itm 0 +createHeldLight itm cr = id +--createHeldLight itm cr = createTorchLightOffset cr itm 0 diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index ea468a33e..bd6a060a7 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -25,10 +25,9 @@ itemTreeSPic (LDT (itm, _) l r) = <> foldMap (itemRotTreeSPic itm) (l <> r) itemRotTreeSPic :: Item -> (ItemLink, LabelDoubleTree ItemLink ComposedItem) -> SPic -itemRotTreeSPic par (il, t) = fromMaybe mempty $ do - (p, q) <- _iatOrient il par (_iatType il) itm - return . translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t +itemRotTreeSPic par (il, t) = translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t where + (p, q) = _iatOrient il par (_iatType il) itm itm = t ^. ldtValue . _1 itemSPic :: Item -> SPic diff --git a/src/Dodge/Item/Orientation.hs b/src/Dodge/Item/Orientation.hs index 104891098..b33d0a68c 100644 --- a/src/Dodge/Item/Orientation.hs +++ b/src/Dodge/Item/Orientation.hs @@ -19,8 +19,8 @@ orientByLink itm lt = case (_itType itm,lt) of (HELD _,WeaponScopeLink) -> (V3 5 0 5, Q.qID) _ -> (0,Q.qID) -orientAttachment :: Item -> ComposeLinkType -> Item -> Maybe (Point3, Q.Quaternion Float) -orientAttachment par lnk ch = Just $ case (_itType par,lnk,_itType ch) of +orientAttachment :: Item -> ComposeLinkType -> Item -> (Point3, Q.Quaternion Float) +orientAttachment par lnk ch = 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) _ -> (t1 + Q.rotate q1 t2, q1 * q2) diff --git a/src/Dodge/LightSource/Torch.hs b/src/Dodge/LightSource/Torch.hs deleted file mode 100644 index 84d3e1b5a..000000000 --- a/src/Dodge/LightSource/Torch.hs +++ /dev/null @@ -1,16 +0,0 @@ -module Dodge.LightSource.Torch - ( createTorchLightOffset - ) where - -import Dodge.Data.World -import Dodge.Item.Draw -- heldItemOffset needs to be moved somewhere more sensible -import Dodge.LightSource -- this needs to be split! -import Geometry -import LensHelp - -createTorchLightOffset :: Creature -> Item -> Point3 -> World -> World -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 accf6fafb..fe46cfdfd 100644 --- a/tags +++ b/tags @@ -3333,7 +3333,7 @@ airlockZ src/Dodge/Room/Airlock.hs 91;" f allHotkeys src/Dodge/Creature/YourControl.hs 52;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 46;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 45;" f amr src/Dodge/Item/Held/Rod.hs 46;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 75;" f @@ -3354,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 128;" f +applyPastDamages src/Dodge/Creature/State.hs 131;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 110;" f applyRecoil src/Dodge/HeldUse.hs 85;" f @@ -3420,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 95;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 94;" 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 236;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 235;" 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 346;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 345;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 256;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 255;" 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 259;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 343;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 326;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 258;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 342;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 325;" f baseShoulder src/Dodge/Creature/Picture.hs 128;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 233;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 228;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 232;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 227;" 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 @@ -3537,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 176;" f +chainLinkOrientation src/Dodge/Creature/State.hs 186;" f chainPairs src/Geometry.hs 363;" f changeSwapClose src/Dodge/Inventory.hs 230;" f changeSwapInv src/Dodge/Inventory.hs 246;" f @@ -3554,7 +3554,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 73;" f +checkDeath src/Dodge/Creature/State.hs 76;" f checkEndGame src/Dodge/Update.hs 584;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -3668,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 90;" f +corpseOrGib src/Dodge/Creature/State.hs 93;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f @@ -3827,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 242;" f +defSPic src/Dodge/Item/Draw/SPic.hs 241;" 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 @@ -3929,7 +3929,7 @@ 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 403;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 402;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 19;" f detectorInfo src/Dodge/Item/Info.hs 194;" f determineInvSelCursorWidth src/Dodge/ListDisplayParams.hs 54;" f @@ -3975,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 122;" f +doDamage src/Dodge/Creature/State.hs 125;" f doDamagesFL src/Dodge/Flame.hs 58;" f doDeathToggle src/Dodge/WorldEffect.hs 95;" f doDeathTriggers src/Dodge/WorldEffect.hs 90;" f @@ -4150,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 116;" f +dropByState src/Dodge/Creature/State.hs 119;" 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 @@ -4182,12 +4182,12 @@ eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f 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 +equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 31;" 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 154;" f +equipmentEffects src/Dodge/Creature/State.hs 158;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 22;" f errorAngleVV src/Geometry.hs 62;" f errorClosestPointOnLine src/Geometry.hs 74;" f @@ -4250,12 +4250,12 @@ 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 329;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 328;" 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 390;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 389;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f fletchingModule src/Dodge/Item/Scope.hs 31;" f @@ -4277,7 +4277,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 169;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f -foldCr src/Dodge/Creature/State.hs 42;" f +foldCr src/Dodge/Creature/State.hs 45;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 110;" f followImpulse src/Dodge/Creature/Impulse.hs 37;" f @@ -4426,7 +4426,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 214;" f hat src/Dodge/Item/Equipment.hs 96;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 109;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 393;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 392;" f headMap src/Dodge/DoubleTree.hs 154;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4440,7 +4440,7 @@ 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 174;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 173;" f heldPositionInfo src/Dodge/Item/Info.hs 211;" f helpCommand src/Dodge/Terminal.hs 64;" f helpPoly3D src/Polyhedra.hs 124;" f @@ -4514,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 106;" f +internalCreatureUpdate src/Dodge/Creature/State.hs 109;" f interpWith src/Dodge/Creature/Boid.hs 10;" f intersectCircSeg src/Geometry/Intersect.hs 303;" f intersectCircSegFirst src/Geometry/Intersect.hs 314;" f @@ -4544,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 159;" f +invSideEff src/Dodge/Creature/State.hs 163;" 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 @@ -4562,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 369;" f +isFrictionless src/Dodge/Creature/State.hs 305;" f isGas src/Dodge/Euse.hs 64;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f @@ -4600,16 +4600,16 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f itemFromLeftType src/Dodge/Item.hs 76;" f itemInfo src/Dodge/Item/Info.hs 12;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f -itemInvSideEffect src/Dodge/Creature/State.hs 207;" f +itemInvSideEffect src/Dodge/Creature/State.hs 217;" 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 -itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f +itemSPic src/Dodge/Item/Draw/SPic.hs 33;" f 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 300;" f +itemUpdate src/Dodge/Creature/State.hs 276;" f itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f @@ -4633,7 +4633,7 @@ 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 409;" f +keyPic src/Dodge/Item/Draw/SPic.hs 408;" 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 @@ -4646,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 359;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 358;" f lasRayAt src/Dodge/HeldUse.hs 266;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f lasTunnel src/Dodge/Room/LasTurret.hs 124;" f @@ -4656,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 332;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 331;" 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 @@ -4670,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 98;" f +leftItemSPic src/Dodge/Item/Draw/SPic.hs 97;" f leftPad src/Padding.hs 14;" f leftRightCombine src/Dodge/Item/Grammar.hs 104;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 427;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 426;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f light src/Color.hs 100;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 44;" f @@ -4886,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 307;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 302;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 306;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 301;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f miniTree2 src/Dodge/Room/Room.hs 108;" f minimumOn src/FoldlHelp.hs 12;" f @@ -5147,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 103;" f +poisonSPic src/Dodge/Creature/State.hs 106;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 516;" f pokeArrayOff src/Shader/Poke.hs 527;" f @@ -5486,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 100;" f +scorchSPic src/Dodge/Creature/State.hs 103;" 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 @@ -5557,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 279;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 256;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5595,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 245;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 244;" 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 @@ -5766,7 +5766,7 @@ startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f startRoom src/Dodge/Room/Start.hs 62;" f startSeedGame src/Dodge/StartNewGame.hs 20;" f startSeedGameConc src/Dodge/StartNewGame.hs 27;" f -stateUpdate src/Dodge/Creature/State.hs 60;" f +stateUpdate src/Dodge/Creature/State.hs 63;" f statsModifier src/Dodge/Creature/Info.hs 14;" f stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 386;" f stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f @@ -5836,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 349;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 348;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f testInventory src/Dodge/Creature.hs 256;" f testPic src/Dodge/Render/ShapePicture.hs 163;" f testStringInit src/Dodge/TestString.hs 22;" f -testtorch src/Dodge/Creature/State.hs 201;" f +testtorch src/Dodge/Creature/State.hs 202;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f textJustifyCenter src/Picture/Base.hs 212;" f @@ -5907,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 214;" f +torchShape src/Dodge/Item/Draw/SPic.hs 213;" 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 387;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 386;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -6013,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 319;" f +updateAutoRecharge src/Dodge/Creature/State.hs 288;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 159;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f @@ -6053,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 150;" f +updateInv src/Dodge/Creature/State.hs 153;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateInventorySectionItems src/Dodge/DisplayInventory.hs 143;" f -updateItemTargeting src/Dodge/Creature/State.hs 223;" f -updateItemWithOrientation src/Dodge/Creature/State.hs 196;" f +updateItemTargeting src/Dodge/Creature/State.hs 222;" f +updateItemWithOrientation src/Dodge/Creature/State.hs 197;" 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 @@ -6068,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 358;" f +updateMovement src/Dodge/Creature/State.hs 295;" f updateObjCatMaybes src/Dodge/Update.hs 407;" f updateObjMapMaybe src/Dodge/Update.hs 400;" f updatePastWorlds src/Dodge/Update.hs 305;" f @@ -6086,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 169;" f -updateRootItem' src/Dodge/Creature/State.hs 187;" f +updateRootItem src/Dodge/Creature/State.hs 170;" f +updateRootItem' src/Dodge/Creature/State.hs 176;" 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 @@ -6144,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 144;" f +useEquipment src/Dodge/Creature/State.hs 147;" 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 @@ -6165,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 305;" f +useUpdate src/Dodge/Creature/State.hs 279;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f v2z src/Geometry/Vector3D.hs 93;" f @@ -6195,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 290;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 289;" f waistSP src/Dodge/Creature/HandPos.hs 199;" f walkNozzle src/Dodge/HeldUse.hs 204;" f walkableNodeNear src/Dodge/Path.hs 48;" f