From ea35753744f3fb1fac9bbc958571acd82fc3d021 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 28 Jul 2025 18:30:02 +0100 Subject: [PATCH] Fix various attachment issues involving pulse laser --- src/Dodge/Data/ComposedItem.hs | 2 + src/Dodge/HeldUse.hs | 2 +- src/Dodge/Item/Grammar.hs | 24 +++- src/Dodge/Item/InventoryColor.hs | 9 +- tags | 237 ++++++++++++++++--------------- 5 files changed, 151 insertions(+), 123 deletions(-) diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 4702222ff..4104169dc 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -38,7 +38,9 @@ data ItemSF -- Structural Function | ToggleSF | MapperSF | LaserWeaponSF + | PulseLaserSF | CapacitorSF + | TransformerSF | PulseBallSF deriving (Eq, Ord, Show, Read) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 9a29ffc7d..a571fd71a 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -934,7 +934,7 @@ shootPulseBall p dir w = PulseBall { _pbPos = p , _pbVel = 3.5 * unitVectorAtAngle dir - , _pbTimer = 100 + , _pbTimer = 200 , _pbID = i } & soundStart (PBSound i) p energyReleaseS Nothing diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 8b54aba63..06b6d6a3f 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -40,14 +40,17 @@ itemAboveAttachables (itm,sf) = case (itm ^. itType, sf) of <> getAutoSpringLinks itm <> extraWeaponLinks itm (DETECTOR {}, _) -> [ARHUDSF,TriggerSF,MapperSF] - (CRAFT TRANSFORMER, _) -> [LaserWeaponSF] + --(CRAFT TRANSFORMER, _) -> [LaserWeaponSF] + (HELD LASER, _) -> [TransformerSF] (MAPPER, _) -> [ARHUDSF] (_, GadgetPlatformSF) -> [TriggerSF, WeaponTargetingSF, WeaponScopeSF] _ -> [] itemBelowAttachables :: CItem -> [ItemSF] itemBelowAttachables (itm,sf) = case (itm ^. itType, sf) of - (HELD LASER, _) -> getAmmoLinks itm <> [PulseBallSF] + (HELD LASER, WeaponTargetingSF) -> getAmmoLinks itm + (HELD LASER, LaserWeaponSF) -> [PulseBallSF] <> getAmmoLinks itm + (HELD LASER, PulseBallSF) -> [PulseBallSF] --(HELD LASER, _) -> [PulseBallSF] (HELD TORCH, _) -> getAmmoLinks itm (ATTACH CAPACITOR, _) -> [AmmoMagSF 0 ElectricalAmmo] @@ -132,6 +135,7 @@ itemToFunction itm = case itm ^. itType of DROPPER{} -> GadgetPlatformSF CLICKER{} -> GadgetPlatformSF ATTACH CAPACITOR -> CapacitorSF + CRAFT TRANSFORMER -> TransformerSF _ -> NoSF treeToPotentialFunction :: DTree CItem -> S.Set ItemSF @@ -141,11 +145,13 @@ treeToPotentialFunction ldt = case ldt ^. dtValue . _1 . itType of ATTACH GYROSCOPE -> S.singleton ProjectileStabiliserSF HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF HELD BURSTRIFLE -> S.singleton UnderBarrelPlatformSF - HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF] + HELD LASER | sf == WeaponTargetingSF -> S.fromList [WeaponTargetingSF,LaserWeaponSF] -- following limits items to ten ammo slots _ | AmmoMagSF _ x <- ldt ^. dtValue . _2 -> S.fromList [AmmoMagSF i x | i <- [0..9]] ATTACH CAPACITOR -> S.fromList [CapacitorSF,PulseBallSF] _ -> S.singleton (ldt ^. dtValue . _2) + where + sf = ldt ^. dtValue . _2 baseCI :: Item -> CItem baseCI itm = (itm, itemToFunction itm) @@ -155,12 +161,24 @@ type DTComb a = DTree a -> DTree a -> Maybe (DTree a) leftIsParentCombine :: DTComb CItem leftIsParentCombine ltree rtree = do sf <- find (`S.member` treeToPotentialFunction rtree) (rightChildList ltree) + let f (itm,psf) = (itm, updateLeftParentSF (itm ^. itType) psf sf) return $ ltree & dtRight .:~ ( rtree & dtValue . _2 .~ sf) + & dtValue %~ f + +updateLeftParentSF :: ItemType -> ItemSF -> ItemSF -> ItemSF +updateLeftParentSF (HELD LASER) WeaponTargetingSF TransformerSF = LaserWeaponSF +updateLeftParentSF _ psf _ = psf rightIsParentCombine :: DTComb CItem rightIsParentCombine ltree rtree = do sf <- find (`S.member` treeToPotentialFunction ltree) (leftChildList rtree) + let f (itm,psf) = (itm, updateRightParentSF (itm ^. itType) psf sf) return $ rtree & dtLeft .:~ ( ltree & dtValue . _2 .~ sf) + & dtValue %~ f + +updateRightParentSF :: ItemType -> ItemSF -> ItemSF -> ItemSF +updateRightParentSF (HELD LASER) LaserWeaponSF CapacitorSF = PulseLaserSF +updateRightParentSF _ psf _ = psf leftChildList :: DTree CItem -> [ItemSF] leftChildList t = foldl' f l (reverse $ t ^.. dtLeft . each . dtValue . _2) diff --git a/src/Dodge/Item/InventoryColor.hs b/src/Dodge/Item/InventoryColor.hs index 6b22f5087..7148d71ee 100644 --- a/src/Dodge/Item/InventoryColor.hs +++ b/src/Dodge/Item/InventoryColor.hs @@ -1,13 +1,16 @@ +{-# LANGUAGE LambdaCase #-} module Dodge.Item.InventoryColor ( itemInvColor, ) where import Color -import Control.Lens import Dodge.Data.ComposedItem itemInvColor :: CItem -> Color -itemInvColor ci = case ci ^. _2 of +itemInvColor (_,sf) = sfInvColor sf + +sfInvColor :: ItemSF -> Color +sfInvColor = \case MapperSF -> white GrenadeHitEffectSF -> yellow IntroScanSF -> white @@ -36,8 +39,10 @@ itemInvColor ci = case ci ^. _2 of UnderBarrelPlatformSF -> white UnderBarrelSlotSF -> white LaserWeaponSF -> white + PulseLaserSF -> orange CapacitorSF -> yellow PulseBallSF -> white + TransformerSF -> yellow --ammoTypeColor :: AmmoType -> Color --ammoTypeColor = \case diff --git a/tags b/tags index 5fb23d127..7e9325d6d 100644 --- a/tags +++ b/tags @@ -246,7 +246,7 @@ CHARTREUSE src/Color/Data.hs 25;" C CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 112;" C CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C -CItem src/Dodge/Data/ComposedItem.hs 45;" t +CItem src/Dodge/Data/ComposedItem.hs 46;" t CLICKER src/Dodge/Data/Item/Combine.hs 28;" C CME src/Dodge/Data/MuzzleEffect.hs 14;" C COPIER src/Dodge/Data/Item/Combine.hs 29;" C @@ -439,7 +439,7 @@ DRUMMAG src/Dodge/Data/Item/Combine.hs 108;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 31;" C DTBottomNode src/Dodge/Data/DoubleTree.hs 21;" C -DTComb src/Dodge/Item/Grammar.hs 153;" t +DTComb src/Dodge/Item/Grammar.hs 156;" t DTMidAboveNode src/Dodge/Data/DoubleTree.hs 19;" C DTMidBelowNode src/Dodge/Data/DoubleTree.hs 20;" C DTRootNode src/Dodge/Data/DoubleTree.hs 17;" C @@ -914,7 +914,7 @@ InvInt src/Dodge/Data/Item/Location.hs 19;" t InvSize src/Dodge/Item/InvSize.hs 2;" m Inventory src/Dodge/Inventory.hs 2;" m InventoryChange src/Dodge/Data/World.hs 31;" C -InventoryColor src/Dodge/Item/InventoryColor.hs 1;" m +InventoryColor src/Dodge/Item/InventoryColor.hs 2;" m InventoryConnectSound src/Dodge/Data/SoundOrigin.hs 14;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 38;" t InventorySound src/Dodge/Data/SoundOrigin.hs 13;" C @@ -1005,7 +1005,7 @@ LasSound src/Dodge/Data/SoundOrigin.hs 28;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m Laser src/Dodge/Data/Laser.hs 21;" t Laser src/Dodge/Data/Laser.hs 6;" m -LaserPath src/Dodge/Item/Weapon/LaserPath.hs 1;" m +LaserPath src/Dodge/Item/Weapon/LaserPath.hs 2;" m LaserSensor src/Dodge/Data/Machine/Sensor/Type.hs 11;" C LaserType src/Dodge/Data/Laser.hs 16;" t LaserWeaponSF src/Dodge/Data/ComposedItem.hs 40;" C @@ -1333,9 +1333,9 @@ NumShadowCasters6 src/Dodge/Data/Config.hs 21;" C NumShadowCasters7 src/Dodge/Data/Config.hs 22;" C NumShadowCasters8 src/Dodge/Data/Config.hs 23;" C NumShadowCasters9 src/Dodge/Data/Config.hs 24;" C -OCreature src/Dodge/Data/Object.hs 10;" C -OItem src/Dodge/Data/ComposedItem.hs 47;" t -OPulseBall src/Dodge/Data/Object.hs 9;" C +OCreature src/Dodge/Data/Object.hs 12;" C +OItem src/Dodge/Data/ComposedItem.hs 48;" t +OPulseBall src/Dodge/Data/Object.hs 11;" C ORANGE src/Color/Data.hs 26;" C OTButton src/Dodge/Data/ObjectType.hs 17;" C OTCreature src/Dodge/Data/ObjectType.hs 13;" C @@ -1349,8 +1349,8 @@ OTPulseBall src/Dodge/Data/ObjectType.hs 23;" C OTTerminal src/Dodge/Data/ObjectType.hs 12;" C OTTrigger src/Dodge/Data/ObjectType.hs 21;" C OTWall src/Dodge/Data/ObjectType.hs 15;" C -OWall src/Dodge/Data/Object.hs 11;" C -Object src/Dodge/Data/Object.hs 8;" t +OWall src/Dodge/Data/Object.hs 13;" C +Object src/Dodge/Data/Object.hs 10;" t Object src/Dodge/Data/Object.hs 4;" m ObjectType src/Dodge/Data/ObjectType.hs 11;" t ObjectType src/Dodge/Data/ObjectType.hs 6;" m @@ -1542,7 +1542,7 @@ ProximityRequirement src/Dodge/Data/Machine/Sensor.hs 36;" t ProximitySensor src/Dodge/Data/Machine/Sensor.hs 27;" C Pulse src/Dodge/Data/Creature/Misc.hs 54;" t PulseBall src/Dodge/Data/PulseLaser.hs 20;" t -PulseBallSF src/Dodge/Data/ComposedItem.hs 42;" C +PulseBallSF src/Dodge/Data/ComposedItem.hs 43;" C PulseLaser src/Dodge/Data/PulseLaser.hs 11;" t PulseLaser src/Dodge/Data/PulseLaser.hs 4;" m PulseLaser src/Dodge/PulseLaser.hs 1;" m @@ -2020,6 +2020,7 @@ TorqueCr src/Dodge/Data/WorldEffect.hs 30;" C TractorBeam src/Dodge/Data/TractorBeam.hs 13;" t TractorBeam src/Dodge/Data/TractorBeam.hs 6;" m TrainingCamp src/Dodge/Data/Scenario.hs 63;" C +TransformerSF src/Dodge/Data/ComposedItem.hs 42;" C Translate src/Dodge/Path/Translate.hs 1;" m TransporterSS src/Dodge/Data/Scenario.hs 114;" C Treasure src/Dodge/Room/Treasure.hs 5;" m @@ -3364,7 +3365,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 36;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 434;" f +advanceScrollAmount src/Dodge/Update.hs 436;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 44;" f aimDelaySweep src/Dodge/Render/Picture.hs 264;" f @@ -3479,7 +3480,7 @@ barrel src/Dodge/Creature/Inanimate.hs 17;" f barrelShape src/Dodge/Render/ShapePicture.hs 55;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 418;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCI src/Dodge/Item/Grammar.hs 150;" f +baseCI src/Dodge/Item/Grammar.hs 153;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 335;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f @@ -3615,13 +3616,13 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 64;" f checkDeath src/Dodge/Creature/State.hs 77;" f -checkEndGame src/Dodge/Update.hs 780;" f +checkEndGame src/Dodge/Update.hs 791;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 17;" f checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f -checkTermDist src/Dodge/Update.hs 332;" f +checkTermDist src/Dodge/Update.hs 334;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f @@ -3645,7 +3646,7 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f -clClSpringVel src/Dodge/Update.hs 849;" f +clClSpringVel src/Dodge/Update.hs 860;" f clColor src/Shader/Poke/Cloud.hs 35;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f @@ -3675,7 +3676,7 @@ closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 801;" f +cloudEffect src/Dodge/Update.hs 812;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3751,14 +3752,14 @@ crAwayFromPost src/Dodge/Creature/Test.hs 82;" f crBlips src/Dodge/RadarSweep.hs 87;" f crCamouflage src/Dodge/Creature/Picture.hs 31;" f crCanSeeCr src/Dodge/Creature/Test.hs 51;" f -crCrSpring src/Dodge/Update.hs 878;" f +crCrSpring src/Dodge/Update.hs 889;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 57;" f crDexterity src/Dodge/Creature/Statistics.hs 14;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f crHasTarget src/Dodge/Creature/Test.hs 64;" f crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f -crHit src/Dodge/WorldEvent/ThingsHit.hs 83;" f +crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f crInAimStance src/Dodge/Creature/Test.hs 93;" f @@ -3779,7 +3780,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f crSetRoots src/Dodge/Inventory/Location.hs 48;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 873;" f +crSpring src/Dodge/Update.hs 884;" f crStratConMatches src/Dodge/Creature/Test.hs 77;" f crStrength src/Dodge/Creature/Statistics.hs 24;" f crUpdate src/Dodge/Creature/State.hs 64;" f @@ -3787,7 +3788,7 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 42;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f -crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 40;" f +crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 41;" f crZoneSize src/Dodge/Zoning/Creature.hs 41;" f craftInfo src/Dodge/Item/Info.hs 168;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 55;" f @@ -3819,8 +3820,8 @@ crixsNearSeg src/Dodge/Zoning/Creature.hs 29;" f crossPic src/Dodge/Render/Label.hs 27;" f crossProd src/Geometry/Vector3D.hs 41;" f crossV src/Geometry/Vector.hs 178;" f -crsHit src/Dodge/WorldEvent/ThingsHit.hs 48;" f -crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 118;" f +crsHit src/Dodge/WorldEvent/ThingsHit.hs 51;" f +crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 121;" f crsItmsUnused src/Dodge/Room/Containing.hs 45;" f crsNearCirc src/Dodge/Zoning/Creature.hs 35;" f crsNearPoint src/Dodge/Zoning/Creature.hs 17;" f @@ -4019,7 +4020,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 45;" f displayFreeSlots src/Dodge/DisplayInventory.hs 198;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f -displayTerminalLineString src/Dodge/Update.hs 494;" f +displayTerminalLineString src/Dodge/Update.hs 496;" f dist src/Geometry/Vector.hs 190;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4072,7 +4073,7 @@ doIndividualPlacements src/Dodge/Layout.hs 117;" f doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f doIntImp src/Dodge/CreatureEffect.hs 24;" f doInvEffect src/Dodge/ItEffect.hs 16;" f -doItemTimeScroll src/Dodge/Update.hs 202;" f +doItemTimeScroll src/Dodge/Update.hs 204;" f doLoop src/Loop.hs 60;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f doMP2Ac src/Dodge/CreatureEffect.hs 73;" f @@ -4106,7 +4107,7 @@ doTestDrawing src/Dodge/Render.hs 42;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 146;" f -doTimeScroll src/Dodge/Update.hs 207;" f +doTimeScroll src/Dodge/Update.hs 209;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 99;" f doWallRotate src/Dodge/Update/Camera.hs 212;" f @@ -4115,7 +4116,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 27;" f -doWorldEvents src/Dodge/Update.hs 444;" f +doWorldEvents src/Dodge/Update.hs 446;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -4281,7 +4282,7 @@ dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f dummyMenuOption src/Dodge/Menu/Option.hs 74;" f dustColor src/Shader/Poke/Cloud.hs 71;" f -dustSpringVel src/Dodge/Update.hs 860;" f +dustSpringVel src/Dodge/Update.hs 871;" f ebColor src/Dodge/EnergyBall.hs 94;" f ebDamage src/Dodge/EnergyBall.hs 102;" f ebEffect src/Dodge/EnergyBall.hs 49;" f @@ -4344,8 +4345,8 @@ extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extraPics src/Dodge/Render/ShapePicture.hs 82;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 86;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 95;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 88;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 97;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f @@ -4436,7 +4437,7 @@ fromV3 src/Geometry/Data.hs 63;" f frontArmour src/Dodge/Item/Equipment.hs 38;" f fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 53;" f -functionalUpdate src/Dodge/Update.hs 257;" f +functionalUpdate src/Dodge/Update.hs 259;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f @@ -4464,11 +4465,11 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 135;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 100;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 102;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f getAttachedSFLink src/Dodge/HeldUse.hs 779;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 81;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 83;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 171;" f getBulletType src/Dodge/HeldUse.hs 956;" f @@ -4487,7 +4488,7 @@ getLaserDamage src/Dodge/HeldUse.hs 716;" f getLaserPhaseV src/Dodge/HeldUse.hs 713;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f -getMenuMouseContext src/Dodge/Update.hs 404;" f +getMenuMouseContext src/Dodge/Update.hs 406;" f getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 1313;" f getPretty src/AesonHelp.hs 8;" f @@ -4683,18 +4684,18 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 57;" f introScanValue src/Dodge/Inventory/SelectionList.hs 80;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 219;" f +invAdj src/Dodge/Item/Grammar.hs 228;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f -invDT src/Dodge/Item/Grammar.hs 196;" f -invDT' src/Dodge/Item/Grammar.hs 201;" f +invDT src/Dodge/Item/Grammar.hs 205;" f +invDT' src/Dodge/Item/Grammar.hs 210;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f invHead src/Dodge/Render/HUD.hs 404;" f -invIMDT src/Dodge/Item/Grammar.hs 229;" f -invIndents src/Dodge/Item/Grammar.hs 236;" f +invIMDT src/Dodge/Item/Grammar.hs 238;" f +invIndents src/Dodge/Item/Grammar.hs 245;" f invItemEffs src/Dodge/Creature/State.hs 146;" f invItemLocUpdate src/Dodge/Creature/State.hs 153;" f -invRootMap src/Dodge/Item/Grammar.hs 208;" f +invRootMap src/Dodge/Item/Grammar.hs 217;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSetSelection src/Dodge/Inventory.hs 185;" f invSetSelectionPos src/Dodge/Inventory.hs 193;" f @@ -4725,7 +4726,7 @@ isLeftOfA src/Geometry.hs 192;" f isNothing' src/MaybeHelp.hs 33;" f isOnSeg src/Geometry.hs 236;" f isOutLnk src/Dodge/PlacementSpot.hs 164;" f -isOverTerminalScreen src/Dodge/Update.hs 415;" f +isOverTerminalScreen src/Dodge/Update.hs 417;" f isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f isPulseLaser src/Dodge/PulseLaser.hs 8;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f @@ -4747,7 +4748,7 @@ itemAboveAttachables src/Dodge/Item/Grammar.hs 36;" f itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 12;" f itemBaseName src/Dodge/Item/Display.hs 60;" f itemBaseStance src/Dodge/Item/AimStance.hs 18;" f -itemBelowAttachables src/Dodge/Item/Grammar.hs 48;" f +itemBelowAttachables src/Dodge/Item/Grammar.hs 49;" f itemBlips src/Dodge/RadarSweep.hs 93;" f itemBulkiness src/Dodge/Creature/YourControl.hs 172;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f @@ -4775,7 +4776,7 @@ itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 121;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 148;" f itemSidePush src/Dodge/HeldUse.hs 396;" f itemString src/Dodge/Item/Display.hs 56;" f -itemToFunction src/Dodge/Item/Grammar.hs 103;" f +itemToFunction src/Dodge/Item/Grammar.hs 105;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f itemWeight src/Dodge/Creature/Statistics.hs 66;" f @@ -4787,7 +4788,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -joinItemsInList src/Dodge/Item/Grammar.hs 186;" f +joinItemsInList src/Dodge/Item/Grammar.hs 195;" f joystick src/Dodge/Item/Scope.hs 149;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f @@ -4838,10 +4839,10 @@ ldtToIM src/Dodge/DoubleTree.hs 218;" f ldtToIndentList src/Dodge/DoubleTree.hs 221;" f ldtToLoc src/Dodge/DoubleTree.hs 267;" f left src/DoubleStack.hs 16;" f -leftChildList src/Dodge/Item/Grammar.hs 165;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 155;" f +leftChildList src/Dodge/Item/Grammar.hs 174;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 158;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 177;" f +leftRightCombine src/Dodge/Item/Grammar.hs 186;" f legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f @@ -5010,7 +5011,7 @@ maybeClearPaths src/Dodge/Block.hs 69;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 536;" f -maybeOpenConsole src/Dodge/Update.hs 128;" f +maybeOpenConsole src/Dodge/Update.hs 130;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f @@ -5124,7 +5125,7 @@ muzFlareAt src/Dodge/HeldUse.hs 689;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f -mvGust src/Dodge/Update.hs 792;" f +mvGust src/Dodge/Update.hs 803;" f mvLS src/Dodge/Placement/PlaceSpot.hs 217;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 183;" f @@ -5182,7 +5183,7 @@ onEquipWristShield src/Dodge/Equipment.hs 37;" f onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 103;" f -openConsole src/Dodge/Update.hs 133;" f +openConsole src/Dodge/Update.hs 135;" f optionMenu src/Dodge/Menu.hs 108;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 43;" f @@ -5236,9 +5237,9 @@ pauseGame src/Dodge/Update/Input/InGame.hs 501;" f pauseMenu src/Dodge/Menu.hs 56;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseSound src/Dodge/SoundLogic.hs 42;" f -pauseTime src/Dodge/Update.hs 190;" f -pbFlicker src/Dodge/Update.hs 481;" f -pbsHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f +pauseTime src/Dodge/Update.hs 192;" f +pbFlicker src/Dodge/Update.hs 483;" f +pbsHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 209;" f @@ -5393,7 +5394,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 105;" f -ppEvents src/Dodge/Update.hs 759;" f +ppEvents src/Dodge/Update.hs 770;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f prePos src/Quaternion.hs 67;" f @@ -5500,7 +5501,7 @@ randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f randWallReflect src/Dodge/Tesla/Arc.hs 57;" f -randWallReflect src/Dodge/Update.hs 652;" f +randWallReflect src/Dodge/Update.hs 663;" f randomChallenges src/Dodge/Room/Start.hs 62;" f randomCompass src/Dodge/Layout.hs 59;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f @@ -5533,9 +5534,9 @@ reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f reflectAngle src/Geometry.hs 141;" f reflectIn src/Geometry.hs 136;" f reflectInParam src/Geometry.hs 229;" f -reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 14;" f -reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 66;" f -refract src/Dodge/Item/Weapon/LaserPath.hs 41;" f +reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 16;" f +reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 69;" f +refract src/Dodge/Item/Weapon/LaserPath.hs 43;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f regexList src/Dodge/DisplayInventory.hs 314;" f @@ -5591,8 +5592,8 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f right src/DoubleStack.hs 16;" f -rightChildList src/Dodge/Item/Grammar.hs 171;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 160;" f +rightChildList src/Dodge/Item/Grammar.hs 180;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 163;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5698,8 +5699,8 @@ scrollCommands src/Dodge/Update/Scroll.hs 158;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f scrollRBOption src/Dodge/Update/Scroll.hs 152;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f -scrollTimeBack src/Dodge/Update.hs 217;" f -scrollTimeForward src/Dodge/Update.hs 240;" f +scrollTimeBack src/Dodge/Update.hs 219;" f +scrollTimeForward src/Dodge/Update.hs 242;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 567;" f seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 651;" f seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f @@ -5740,7 +5741,7 @@ sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f setAimPosture src/Dodge/Creature/YourControl.hs 137;" f setChannelPos src/Sound.hs 150;" f -setClickWorldPos src/Dodge/Update.hs 103;" f +setClickWorldPos src/Dodge/Update.hs 105;" f setClusterID src/Dodge/Combine/Graph.hs 116;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f @@ -5754,7 +5755,7 @@ setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMusicVolume src/Sound.hs 162;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f -setOldPos src/Dodge/Update.hs 517;" f +setOldPos src/Dodge/Update.hs 519;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5790,6 +5791,7 @@ setupVBOVAO src/Shader/Compile.hs 200;" f setupVertexAttribPointer src/Shader/Compile.hs 224;" f setupVertexAttribs src/Shader/Compile.hs 218;" f setupWorldBounds src/Dodge/Layout.hs 125;" f +sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f shadVBOptr src/Shader.hs 40;" f shaderTypeExt src/Shader/Compile.hs 172;" f shapeBounds src/Dodge/Room/Foreground.hs 148;" f @@ -5863,7 +5865,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 869;" f +simpleCrSprings src/Dodge/Update.hs 880;" f simpleTermMessage src/Dodge/Terminal.hs 253;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 469;" f @@ -6078,16 +6080,16 @@ thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f thickLineCol src/Picture/Base.hs 255;" f thinHighBar src/Dodge/Room/Foreground.hs 77;" f -thingHit src/Dodge/WorldEvent/ThingsHit.hs 80;" f -thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 68;" f -thingsHit src/Dodge/WorldEvent/ThingsHit.hs 33;" f -thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 89;" f +thingHit src/Dodge/WorldEvent/ThingsHit.hs 83;" f +thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 71;" f +thingsHit src/Dodge/WorldEvent/ThingsHit.hs 34;" f +thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 92;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f throwItem src/Dodge/Creature/Action.hs 205;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 177;" f +timeFlowUpdate src/Dodge/Update.hs 179;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeScroller src/Dodge/Item/Weapon/Utility.hs 47;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f @@ -6103,7 +6105,7 @@ tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 571;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 563;" f titleOptionsMenu src/Dodge/Menu.hs 102;" f titleOptionsNoWrite src/Dodge/Menu.hs 105;" f -tmUpdate src/Dodge/Update.hs 497;" f +tmUpdate src/Dodge/Update.hs 499;" f toBinary src/Dodge/Inventory/SelectionList.hs 138;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -6184,7 +6186,7 @@ treeMaxDepthFromTrunk src/Dodge/Layout/Generate.hs 21;" f treePath src/Dodge/Tree/GenerateStructure.hs 13;" f treePaths src/TreeHelp.hs 138;" f treePost src/TreeHelp.hs 45;" f -treeToPotentialFunction src/Dodge/Item/Grammar.hs 137;" f +treeToPotentialFunction src/Dodge/Item/Grammar.hs 140;" f triLootRoom src/Dodge/Room/Treasure.hs 22;" f triggerDoorRoom src/Dodge/Room/Door.hs 30;" f triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f @@ -6247,7 +6249,7 @@ unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 139;" f unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 122;" f unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f upProjectile src/Dodge/Projectile/Update.hs 35;" f -updateAimPos src/Dodge/Update.hs 319;" f +updateAimPos src/Dodge/Update.hs 321;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla/Arc.hs 100;" f @@ -6258,39 +6260,39 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 29;" f updateBounds src/Dodge/Update/Camera.hs 250;" f updateBulVel src/Dodge/Bullet.hs 55;" f updateBullet src/Dodge/Bullet.hs 20;" f -updateBullets src/Dodge/Update.hs 590;" f +updateBullets src/Dodge/Update.hs 592;" f updateCamera src/Dodge/Update/Camera.hs 29;" f updateCloseObjects src/Dodge/Inventory.hs 116;" f -updateCloud src/Dodge/Update.hs 806;" f -updateClouds src/Dodge/Update.hs 678;" f +updateCloud src/Dodge/Update.hs 817;" f +updateClouds src/Dodge/Update.hs 689;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 44;" f updateCreature src/Dodge/Creature/Update.hs 13;" f -updateCreatureGroups src/Dodge/Update.hs 562;" f -updateCreatureSoundPositions src/Dodge/Update.hs 538;" f -updateDebugMessageOffset src/Dodge/Update.hs 97;" f -updateDelayedEvents src/Dodge/Update.hs 898;" f +updateCreatureGroups src/Dodge/Update.hs 564;" f +updateCreatureSoundPositions src/Dodge/Update.hs 540;" f +updateDebugMessageOffset src/Dodge/Update.hs 99;" f +updateDelayedEvents src/Dodge/Update.hs 909;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 583;" f -updateDoor src/Dodge/Update.hs 324;" f -updateDust src/Dodge/Update.hs 830;" f -updateDusts src/Dodge/Update.hs 681;" f +updateDistortions src/Dodge/Update.hs 585;" f +updateDoor src/Dodge/Update.hs 326;" f +updateDust src/Dodge/Update.hs 841;" f +updateDusts src/Dodge/Update.hs 692;" f updateEnergyBall src/Dodge/EnergyBall.hs 35;" f -updateEnergyBalls src/Dodge/Update.hs 669;" f +updateEnergyBalls src/Dodge/Update.hs 680;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 480;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 666;" f +updateFlames src/Dodge/Update.hs 677;" f updateFloatingCamera src/Dodge/Update/Camera.hs 34;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 364;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 357;" f -updateGusts src/Dodge/Update.hs 789;" f +updateGusts src/Dodge/Update.hs 800;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f -updateIMl src/Dodge/Update.hs 552;" f -updateIMl' src/Dodge/Update.hs 557;" f +updateIMl src/Dodge/Update.hs 554;" f +updateIMl' src/Dodge/Update.hs 559;" f updateInGameCamera src/Dodge/Update/Camera.hs 78;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 400;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f @@ -6300,66 +6302,67 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 394;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 382;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 451;" f +updateLasers src/Dodge/Update.hs 453;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 413;" f updateMachine src/Dodge/Machine/Update.hs 20;" f -updateMagnets src/Dodge/Update.hs 327;" f +updateMagnets src/Dodge/Update.hs 329;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 197;" f -updateMouseContext src/Dodge/Update.hs 340;" f -updateMouseContextGame src/Dodge/Update.hs 345;" f +updateMouseContext src/Dodge/Update.hs 342;" f +updateMouseContextGame src/Dodge/Update.hs 347;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 95;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 85;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 158;" f -updateObjCatMaybes src/Dodge/Update.hs 574;" f -updateObjMapMaybe src/Dodge/Update.hs 567;" f -updatePastWorlds src/Dodge/Update.hs 439;" f +updateObjCatMaybes src/Dodge/Update.hs 576;" f +updateObjMapMaybe src/Dodge/Update.hs 569;" f +updatePastWorlds src/Dodge/Update.hs 441;" f updatePosEvent src/Dodge/PosEvent.hs 10;" f updatePreload src/Preload/Update.hs 20;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 22;" f -updatePulseBall src/Dodge/Update.hs 465;" f -updatePulseLaser src/Dodge/Update.hs 630;" f -updatePulseLasers src/Dodge/Update.hs 460;" f +updatePulseBall src/Dodge/Update.hs 467;" f +updatePulseLaser src/Dodge/Update.hs 632;" f +updatePulseLasers src/Dodge/Update.hs 462;" f updateRBList src/Dodge/Inventory/RBList.hs 18;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 586;" f +updateRadarBlips src/Dodge/Update.hs 588;" f updateRadarSweep src/Dodge/RadarSweep.hs 39;" f -updateRadarSweeps src/Dodge/Update.hs 672;" f +updateRadarSweeps src/Dodge/Update.hs 683;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 108;" f +updateRightParentSF src/Dodge/Item/Grammar.hs 170;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f updateScopeZoom src/Dodge/Update/Scroll.hs 72;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 264;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f updateShockwave src/Dodge/Shockwave/Update.hs 10;" f -updateShockwaves src/Dodge/Update.hs 663;" f +updateShockwaves src/Dodge/Update.hs 674;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 72;" f updateSounds src/Sound.hs 67;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 675;" f +updateSparks src/Dodge/Update.hs 686;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 23;" f -updateTeslaArc src/Dodge/Update.hs 600;" f -updateTeslaArcs src/Dodge/Update.hs 597;" f +updateTeslaArc src/Dodge/Update.hs 602;" f +updateTeslaArcs src/Dodge/Update.hs 599;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 660;" f +updateTractorBeams src/Dodge/Update.hs 671;" f updateTurret src/Dodge/Machine/Update.hs 50;" f -updateUniverse src/Dodge/Update.hs 76;" f -updateUniverseFirst src/Dodge/Update.hs 87;" f -updateUniverseLast src/Dodge/Update.hs 138;" f -updateUniverseMid src/Dodge/Update.hs 160;" f +updateUniverse src/Dodge/Update.hs 78;" f +updateUniverseFirst src/Dodge/Update.hs 89;" f +updateUniverseLast src/Dodge/Update.hs 140;" f +updateUniverseMid src/Dodge/Update.hs 162;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 42;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f -updateWheelEvents src/Dodge/Update.hs 429;" f -updateWorldEventFlag src/Dodge/Update.hs 122;" f -updateWorldEventFlags src/Dodge/Update.hs 110;" f +updateWheelEvents src/Dodge/Update.hs 431;" f +updateWorldEventFlag src/Dodge/Update.hs 124;" f +updateWorldEventFlags src/Dodge/Update.hs 112;" f upperBody src/Dodge/Creature/Picture.hs 129;" f upperBox src/Shape.hs 156;" f upperBoxHalf src/Shape.hs 222;" f @@ -6494,8 +6497,8 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 45;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 48;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f -wlsHit src/Dodge/WorldEvent/ThingsHit.hs 103;" f -wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 111;" f +wlsHit src/Dodge/WorldEvent/ThingsHit.hs 106;" f +wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 114;" f wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f @@ -6538,11 +6541,11 @@ zipArcs src/Dodge/Tesla/Arc.hs 110;" f zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 488;" f +zoneClouds src/Dodge/Update.hs 490;" f zoneCreature src/Dodge/Zoning/Creature.hs 54;" f -zoneCreatures src/Dodge/Update.hs 533;" f +zoneCreatures src/Dodge/Update.hs 535;" f zoneDust src/Dodge/Zoning/Cloud.hs 48;" f -zoneDusts src/Dodge/Update.hs 491;" f +zoneDusts src/Dodge/Update.hs 493;" f zoneExtract src/Dodge/Zoning/Base.hs 52;" f zoneMonoid src/Dodge/Zoning/Base.hs 83;" f zoneOfCirc src/Dodge/Zoning/Base.hs 24;" f