From 80ef7ec909fa11ba02a57c27d006155ef0d8a9cf Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 26 Mar 2026 15:51:16 +0000 Subject: [PATCH] Beamsplitter attachment for lasers --- src/Dodge/Creature.hs | 8 +- src/Dodge/Creature/Impulse/UseItem.hs | 2 +- src/Dodge/Data/ComposedItem.hs | 4 +- src/Dodge/Data/Item/Combine.hs | 1 + src/Dodge/HeldUse.hs | 21 +- src/Dodge/Item/AimStance.hs | 5 +- src/Dodge/Item/Draw/SPic.hs | 1 + src/Dodge/Item/Grammar.hs | 12 +- src/Dodge/Item/Info.hs | 1 + src/Dodge/Item/InventoryColor.hs | 4 +- src/Dodge/Item/Orientation.hs | 2 +- tags | 397 +++++++++++++------------- 12 files changed, 243 insertions(+), 215 deletions(-) diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 4e8d8bcc5..29aebf6cc 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -209,10 +209,12 @@ inventoryX c = case c of [ makeTypeCraftNum 2 MICROCHIP ] "J" -> - [ laser + [ capacitor + , makeTypeCraft TRANSFORMER + , laser , battery - --, dualBeam - ] <> makeTypeCraftNum 10 TRANSFORMER + ] + <> makeTypeCraftNum 5 BEAMSPLITTER "K" -> [ autoRifle , tinMag diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index a535f224d..3d07112b3 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -50,7 +50,7 @@ useItemLoc cr loc pt w | otherwise = (\loc' -> useItemLoc cr loc' pt w) =<< locUp' loc where aimuse - | LaserWeaponSF <- sf = True + | LaserWeaponXSF {} <- sf = True | HeldPlatformSF <- sf = True | PulseBallSF <- sf = True | PlasmaSF <- sf = True diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 90f586b37..0eafa8901 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -37,7 +37,8 @@ data ItemSF -- Structural Function | GrenadeHitEffectSF | ToggleSF | MapperSF - | LaserWeaponSF +-- | LaserWeaponSF + | LaserWeaponXSF {_lasWepXSF :: Int} | PulseLaserSF | CapacitorSF | TransformerSF @@ -45,6 +46,7 @@ data ItemSF -- Structural Function | PlasmaSF | TorchSF | PumpSF + | BeamSplitterSF deriving (Eq, Ord, Show, Read) type CItem = (Item, ItemSF) diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index b8aa9be62..06a490ff5 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -62,6 +62,7 @@ data CraftType | PUMP | MOTOR | TRANSFORMER + | BEAMSPLITTER | PRISM | LIGHTER | MAGNET diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 6e04a4197..393f049f3 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -175,12 +175,21 @@ itemMuzzles loc = case itm ^. itType of DETECTOR{} -> dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector & ix 0 . mzAmmoSlot . aps .~ UseExactly 100 - LASER -> - dbwMuzzles - & ix 0 . mzPos .~ V2 6 0 - & ix 0 . mzInaccuracy .~ 0 - & ix 0 . mzFlareType .~ LasGunFlare - & ix 0 . mzEffect .~ MuzzleLaser + LASER -> case loc ^? locDT . dtValue . _2 . lasWepXSF of + Nothing -> + dbwMuzzles + & ix 0 . mzPos .~ V2 6 0 + & ix 0 . mzInaccuracy .~ 0 + & ix 0 . mzFlareType .~ LasGunFlare + & ix 0 . mzEffect .~ MuzzleLaser + Just i -> join + [dbwMuzzles + & ix 0 . mzPos .~ V2 6 x + & ix 0 . mzInaccuracy .~ 0 + & ix 0 . mzFlareType .~ LasGunFlare + & ix 0 . mzEffect .~ MuzzleLaser + | x <- spreadAroundCenter i 3 + ] _ -> [] where itm = loc ^. locDT . dtValue . _1 diff --git a/src/Dodge/Item/AimStance.hs b/src/Dodge/Item/AimStance.hs index b958a8142..d3267c5af 100644 --- a/src/Dodge/Item/AimStance.hs +++ b/src/Dodge/Item/AimStance.hs @@ -13,7 +13,10 @@ itemAimStance dt | otherwise = itemBaseStance $ dt ^. dtValue . _1 where islasweapon = dt ^. dtValue . _1 . itType == CRAFT TRANSFORMER - && dt ^? dtRight . ix 0 . dtValue . _2 == Just LaserWeaponSF + && islas (dt ^? dtRight . ix 0 . dtValue . _2) -- == Just LaserWeaponSF + islas = \case + Just (LaserWeaponXSF {}) -> True + _ -> False itemBaseStance :: Item -> AimStance itemBaseStance itm = case itm ^. itType of diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index 663020fba..62bfc7150 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -42,6 +42,7 @@ craftItemSPic = \case PIPE -> colorSH green $ xCylinderST 3 10 TUBE -> colorSH cyan $ xCylinderST 5 20 HARDWARE -> colorSH orange $ upperPrismPolyST 3 $ square 4 + BEAMSPLITTER -> colorSH orange $ upperPrismPolyST 3 $ square 4 SPRING -> colorSH green $ xCylinderST 1 5 HOSE -> colorSH green $ xCylinderST 1 10 TAPE -> diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index f5d886921..833d4c67e 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -53,7 +53,8 @@ itemAboveAttachables (itm,sf) = case (itm ^. itType, sf) of itemBelowAttachables :: CItem -> [ItemSF] itemBelowAttachables (itm,sf) = case (itm ^. itType, sf) of (LASER, WeaponTargetingSF) -> getAmmoLinks itm - (LASER, LaserWeaponSF) -> [PulseBallSF] <> getAmmoLinks itm + (LASER, LaserWeaponXSF 1) -> [PulseBallSF,BeamSplitterSF] <> getAmmoLinks itm + (LASER, LaserWeaponXSF {}) -> replicate 5 BeamSplitterSF <> getAmmoLinks itm -- (LASER, PulseBallSF) -> [PulseBallSF] --(HELD LASER, _) -> [PulseBallSF] (HELD LED, _) -> getAmmoLinks itm @@ -151,10 +152,12 @@ treeToPotentialFunction ldt = case ldt ^. dtValue . _1 . itType of ATTACH GYROSCOPE -> S.singleton ProjectileStabiliserSF HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF HELD BURSTRIFLE -> S.singleton UnderBarrelPlatformSF - LASER | sf == WeaponTargetingSF -> S.fromList [WeaponTargetingSF,LaserWeaponSF] + LASER | sf == WeaponTargetingSF -> S.fromList (WeaponTargetingSF: [LaserWeaponXSF i| i <- [1..6]]) + LASER -> S.fromList [LaserWeaponXSF i| i <- [1..6]] -- 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] + CRAFT BEAMSPLITTER -> S.singleton BeamSplitterSF _ -> S.singleton (ldt ^. dtValue . _2) where sf = ldt ^. dtValue . _2 @@ -172,7 +175,7 @@ leftIsParentCombine ltree rtree = do & dtValue %~ f updateLeftParentSF :: ItemType -> ItemSF -> ItemSF -> ItemSF -updateLeftParentSF LASER WeaponTargetingSF TransformerSF = LaserWeaponSF +updateLeftParentSF LASER WeaponTargetingSF TransformerSF = LaserWeaponXSF 1 updateLeftParentSF _ psf _ = psf rightIsParentCombine :: DTComb CItem @@ -183,7 +186,8 @@ rightIsParentCombine ltree rtree = do & dtValue %~ f updateRightParentSF :: ItemType -> ItemSF -> ItemSF -> ItemSF -updateRightParentSF LASER LaserWeaponSF CapacitorSF = PulseLaserSF +updateRightParentSF LASER (LaserWeaponXSF 1) CapacitorSF = PulseLaserSF +updateRightParentSF LASER (LaserWeaponXSF x) BeamSplitterSF = LaserWeaponXSF (x+1) updateRightParentSF _ psf _ = psf leftChildList :: DTree CItem -> [ItemSF] diff --git a/src/Dodge/Item/Info.hs b/src/Dodge/Item/Info.hs index 1d2dfeb6b..9c8141b9d 100644 --- a/src/Dodge/Item/Info.hs +++ b/src/Dodge/Item/Info.hs @@ -183,6 +183,7 @@ craftInfo fit = case fit of MOTOR -> "A device that can create rotational force." TRANSFORMER -> "A device that can step up or down voltage and current." PRISM -> "An object that refracts light." + BEAMSPLITTER -> "Divides a single light beam into two paths." THERMOMETER -> "An object that measures temperature." LIGHTER -> "A device that can create a small flame." MAGNET -> "A device that attracts according to its dipoles." diff --git a/src/Dodge/Item/InventoryColor.hs b/src/Dodge/Item/InventoryColor.hs index 4807f3272..37b6cb6b0 100644 --- a/src/Dodge/Item/InventoryColor.hs +++ b/src/Dodge/Item/InventoryColor.hs @@ -38,7 +38,7 @@ sfInvColor = \case ProjectileStabiliserSF -> white UnderBarrelPlatformSF -> white UnderBarrelSlotSF -> white - LaserWeaponSF -> white +-- LaserWeaponSF -> white PulseLaserSF -> white CapacitorSF -> yellow PulseBallSF -> white @@ -46,6 +46,8 @@ sfInvColor = \case TransformerSF -> yellow PumpSF -> yellow TorchSF{} -> green + LaserWeaponXSF {} -> white + BeamSplitterSF {} -> white --ammoTypeColor :: AmmoType -> Color --ammoTypeColor = \case diff --git a/src/Dodge/Item/Orientation.hs b/src/Dodge/Item/Orientation.hs index aaa5283c7..d834b2c02 100644 --- a/src/Dodge/Item/Orientation.hs +++ b/src/Dodge/Item/Orientation.hs @@ -80,7 +80,7 @@ itemShapeMin g = f . (^. _1) . itemSPic orientAttachment :: Item -> CItem -> Point3Q orientAttachment par (ch,chsf) = case (_itType par, chsf) of (ATTACH UNDERBARRELSLOT, _) -> (V3 (-5) (-8) 0, Q.qID) - (_,LaserWeaponSF) -> (V3 2 8 0, Q.qID) + (_,LaserWeaponXSF {}) -> (V3 2 8 0, Q.qID) -- (_,TorchSF) -> (V3 2 8 0, Q.qID) -- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2)) -- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4)) diff --git a/tags b/tags index 45c1215d0..313779876 100644 --- a/tags +++ b/tags @@ -19,11 +19,11 @@ <$> src/Dodge/Data/LWorld.hs 179;" o <$> src/Dodge/Data/Terminal.hs 69;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C -AIUNIT src/Dodge/Data/Item/Combine.hs 74;" C -ALTERIFLE src/Dodge/Data/Item/Combine.hs 154;" C +AIUNIT src/Dodge/Data/Item/Combine.hs 75;" C +ALTERIFLE src/Dodge/Data/Item/Combine.hs 155;" C AMMOMAG src/Dodge/Data/Item/Combine.hs 20;" C -AMR src/Dodge/Data/Item/Combine.hs 159;" C -ANTIMATTER src/Dodge/Data/Item/Combine.hs 68;" C +AMR src/Dodge/Data/Item/Combine.hs 160;" C +ANTIMATTER src/Dodge/Data/Item/Combine.hs 69;" C APInt src/Dodge/Data/Item/Use.hs 45;" C APNothing src/Dodge/Data/Item/Use.hs 46;" C APProjectiles src/Dodge/Data/Item/Use.hs 44;" C @@ -31,9 +31,9 @@ AQUAMARINE src/Color/Data.hs 21;" C ARHUD src/Dodge/Data/Item/Combine.hs 34;" C ARHUDSF src/Dodge/Data/ComposedItem.hs 23;" C ATTACH src/Dodge/Data/Item/Combine.hs 19;" C -AUTOAMR src/Dodge/Data/Item/Combine.hs 160;" C -AUTOPISTOL src/Dodge/Data/Item/Combine.hs 146;" C -AUTORIFLE src/Dodge/Data/Item/Combine.hs 155;" C +AUTOAMR src/Dodge/Data/Item/Combine.hs 161;" C +AUTOPISTOL src/Dodge/Data/Item/Combine.hs 147;" C +AUTORIFLE src/Dodge/Data/Item/Combine.hs 156;" C AZURE src/Color/Data.hs 20;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C Action src/Dodge/Data/ActionPlan.hs 65;" t @@ -51,7 +51,7 @@ Ambush src/Dodge/Data/ActionPlan.hs 130;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C -AmmoMagType src/Dodge/Data/Item/Combine.hs 106;" t +AmmoMagType src/Dodge/Data/Item/Combine.hs 107;" t AmmoModifierSF src/Dodge/Data/ComposedItem.hs 30;" C AmmoParams src/Dodge/Data/Item/Use.hs 49;" t AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C @@ -69,7 +69,7 @@ AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C AtEase src/Dodge/Data/Creature/Stance.hs 34;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C AttachParams src/Dodge/Data/Item/Use.hs 43;" t -AttachType src/Dodge/Data/Item/Combine.hs 90;" t +AttachType src/Dodge/Data/Item/Combine.hs 91;" t Attention src/Dodge/Data/Creature/Perception.hs 58;" t AttentiveTo src/Dodge/Data/Creature/Perception.hs 59;" C Audition src/Dodge/Data/Creature/Perception.hs 45;" t @@ -79,26 +79,27 @@ AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C Avatar src/Dodge/Data/Creature/Misc.hs 59;" C AvatarDead src/Dodge/Data/Creature/Misc.hs 67;" C Awareness src/Dodge/Data/Creature/Perception.hs 63;" t -BANGCONE src/Dodge/Data/Item/Combine.hs 148;" C -BANGROD src/Dodge/Data/Item/Combine.hs 157;" C -BANGSTICK src/Dodge/Data/Item/Combine.hs 140;" C -BATTERY src/Dodge/Data/Item/Combine.hs 111;" C -BATTERYPACK src/Dodge/Data/Item/Combine.hs 135;" C -BELTMAG src/Dodge/Data/Item/Combine.hs 109;" C +BANGCONE src/Dodge/Data/Item/Combine.hs 149;" C +BANGROD src/Dodge/Data/Item/Combine.hs 158;" C +BANGSTICK src/Dodge/Data/Item/Combine.hs 141;" C +BATTERY src/Dodge/Data/Item/Combine.hs 112;" C +BATTERYPACK src/Dodge/Data/Item/Combine.hs 136;" C +BEAMSPLITTER src/Dodge/Data/Item/Combine.hs 65;" C +BELTMAG src/Dodge/Data/Item/Combine.hs 110;" C BINGATE src/Dodge/Data/Item/Combine.hs 31;" C BLACK src/Color/Data.hs 25;" C -BLINKER src/Dodge/Data/Item/Combine.hs 177;" C -BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 178;" C -BLOWTORCH src/Dodge/Data/Item/Combine.hs 166;" C +BLINKER src/Dodge/Data/Item/Combine.hs 178;" C +BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 179;" C +BLOWTORCH src/Dodge/Data/Item/Combine.hs 167;" C BLUE src/Color/Data.hs 14;" C -BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 149;" C +BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 150;" C BQuad src/Geometry/Bezier.hs 9;" t -BRAINHAT src/Dodge/Data/Item/Combine.hs 126;" C -BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 134;" C -BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 133;" C +BRAINHAT src/Dodge/Data/Item/Combine.hs 127;" C +BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 135;" C +BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 134;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 22;" C -BULLETSYNTH src/Dodge/Data/Item/Combine.hs 92;" C -BURSTRIFLE src/Dodge/Data/Item/Combine.hs 156;" C +BULLETSYNTH src/Dodge/Data/Item/Combine.hs 93;" C +BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C BackdropCurs src/Dodge/Data/SelectionList.hs 22;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 39;" C @@ -116,6 +117,7 @@ BeamCombineType src/Dodge/Data/Beam.hs 36;" t BeamDraw src/Dodge/Data/Beam.hs 31;" t BeamDrawColor src/Dodge/Data/Beam.hs 33;" C BeamSimple src/Dodge/Data/Beam.hs 48;" C +BeamSplitterSF src/Dodge/Data/ComposedItem.hs 49;" C BeamType src/Dodge/Data/Beam.hs 44;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C BeltBulletAmmo src/Dodge/Data/AmmoType.hs 11;" C @@ -164,19 +166,19 @@ ButtonEvent src/Dodge/Data/Button.hs 13;" t ButtonPress src/Dodge/Data/Button.hs 14;" C ButtonSound src/Dodge/Data/SoundOrigin.hs 37;" C ButtonSwitch src/Dodge/Data/Button.hs 19;" C -CAMERA src/Dodge/Data/Item/Combine.hs 75;" C +CAMERA src/Dodge/Data/Item/Combine.hs 76;" C CAN src/Dodge/Data/Item/Combine.hs 56;" C -CAPACITOR src/Dodge/Data/Item/Combine.hs 102;" C +CAPACITOR src/Dodge/Data/Item/Combine.hs 103;" C CHARTREUSE src/Color/Data.hs 22;" C -CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 112;" C +CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 113;" C CIRCLE src/Dodge/Data/GenParams.hs 18;" C -CItem src/Dodge/Data/ComposedItem.hs 50;" t +CItem src/Dodge/Data/ComposedItem.hs 52;" t CLICKER src/Dodge/Data/Item/Combine.hs 27;" C -COMPRESSOR src/Dodge/Data/Item/Combine.hs 103;" C +COMPRESSOR src/Dodge/Data/Item/Combine.hs 104;" C COPIER src/Dodge/Data/Item/Combine.hs 28;" C CRAFT src/Dodge/Data/Item/Combine.hs 18;" C -CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 183;" C -CREATURESENSOR src/Dodge/Data/Item/Combine.hs 84;" C +CREATUREDETECTOR src/Dodge/Data/Item/Combine.hs 184;" C +CREATURESENSOR src/Dodge/Data/Item/Combine.hs 85;" C CWGen src/Dodge/Data/CWorld.hs 39;" t CWorld src/Dodge/Data/CWorld.hs 23;" t CYAN src/Color/Data.hs 16;" C @@ -191,7 +193,7 @@ Camera src/Dodge/Data/Camera.hs 22;" t CameraScrollTimeFlow src/Dodge/Data/World.hs 73;" C CamouflageStatus src/Dodge/Data/CamouflageStatus.hs 5;" t CapacitorBelow src/Dodge/Data/Muzzle.hs 23;" C -CapacitorSF src/Dodge/Data/ComposedItem.hs 42;" C +CapacitorSF src/Dodge/Data/ComposedItem.hs 43;" C CapacitorSelf src/Dodge/Data/Muzzle.hs 24;" C Cardinal8 src/Dodge/Data/CardinalPoint.hs 27;" t CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t @@ -231,7 +233,7 @@ ConcurrentEffect src/Loop/Data.hs 6;" t ConcurrentEffect src/Loop/Data.hs 11;" C Config src/Dodge/Data/Config.hs 48;" t ConstFloat src/Dodge/Data/GenFloat.hs 9;" C -ConsumableItemType src/Dodge/Data/Item/Combine.hs 115;" t +ConsumableItemType src/Dodge/Data/Item/Combine.hs 116;" t ContextDT src/Dodge/Data/DoubleTree.hs 25;" t ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C @@ -288,11 +290,11 @@ CursorDisplay src/Dodge/Data/SelectionList.hs 20;" t Cylinder src/Shape/Data.hs 14;" C DETECTOR src/Dodge/Data/Item/Combine.hs 33;" C DROPPER src/Dodge/Data/Item/Combine.hs 26;" C -DRUMMAG src/Dodge/Data/Item/Combine.hs 108;" C +DRUMMAG src/Dodge/Data/Item/Combine.hs 109;" C DS src/DoubleStack.hs 3;" t DT src/Dodge/Data/DoubleTree.hs 16;" C DTBottomNode src/Dodge/Data/DoubleTree.hs 14;" C -DTComb src/Dodge/Item/Grammar.hs 165;" t +DTComb src/Dodge/Item/Grammar.hs 168;" t DTMidAboveNode src/Dodge/Data/DoubleTree.hs 12;" C DTMidBelowNode src/Dodge/Data/DoubleTree.hs 13;" C DTRootNode src/Dodge/Data/DoubleTree.hs 10;" C @@ -322,7 +324,7 @@ DefaultRoomType src/Dodge/Data/Room.hs 32;" C DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 27;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C -Detector src/Dodge/Data/Item/Combine.hs 181;" t +Detector src/Dodge/Data/Item/Combine.hs 182;" t Dirt src/Dodge/Data/Material.hs 12;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t DisplayTerminal src/Dodge/Data/HUD.hs 27;" C @@ -360,9 +362,9 @@ Dungeon src/Dodge/Data/Scenario.hs 66;" C Dust src/Dodge/Data/Cloud.hs 26;" t EBSound src/Dodge/Data/SoundOrigin.hs 40;" C ECW src/Dodge/Material/Damage.hs 14;" t -ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 158;" C +ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 159;" C EQUIP src/Dodge/Data/Item/Combine.hs 17;" C -EXPLOSIVES src/Dodge/Data/Item/Combine.hs 117;" C +EXPLOSIVES src/Dodge/Data/Item/Combine.hs 118;" C Ears src/Dodge/Data/Creature/Perception.hs 45;" C East src/Dodge/Data/CardinalPoint.hs 8;" C East8 src/Dodge/Data/CardinalPoint.hs 30;" C @@ -382,7 +384,7 @@ EnergyBallType src/Dodge/Data/EnergyBall/Type.hs 10;" t EnergyGeneratorSS src/Dodge/Data/Scenario.hs 109;" C EngineSS src/Dodge/Data/Scenario.hs 88;" C Enterrement src/Dodge/Data/Damage.hs 27;" C -EquipItemType src/Dodge/Data/Item/Combine.hs 120;" t +EquipItemType src/Dodge/Data/Item/Combine.hs 121;" t EquipOptions src/Dodge/Data/RightButtonOptions.hs 15;" C EquipSite src/Dodge/Data/Equipment/Misc.hs 19;" t EquipType src/Dodge/Data/Equipment/Misc.hs 9;" t @@ -401,15 +403,15 @@ ExplosivePutty src/Dodge/Data/AmmoType.hs 16;" C ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t Eyes src/Dodge/Data/Creature/Perception.hs 39;" C FBO src/Shader/Data.hs 57;" t -FLAMESHIELD src/Dodge/Data/Item/Combine.hs 122;" C -FLAMESPITTER src/Dodge/Data/Item/Combine.hs 162;" C -FLAMETHROWER src/Dodge/Data/Item/Combine.hs 163;" C -FLAMETORRENT src/Dodge/Data/Item/Combine.hs 164;" C -FLAMEWALL src/Dodge/Data/Item/Combine.hs 165;" C -FLATSHIELD src/Dodge/Data/Item/Combine.hs 175;" C -FRONTARMOUR src/Dodge/Data/Item/Combine.hs 123;" C -FUELCELL src/Dodge/Data/Item/Combine.hs 86;" C -FUELPACK src/Dodge/Data/Item/Combine.hs 132;" C +FLAMESHIELD src/Dodge/Data/Item/Combine.hs 123;" C +FLAMESPITTER src/Dodge/Data/Item/Combine.hs 163;" C +FLAMETHROWER src/Dodge/Data/Item/Combine.hs 164;" C +FLAMETORRENT src/Dodge/Data/Item/Combine.hs 165;" C +FLAMEWALL src/Dodge/Data/Item/Combine.hs 166;" C +FLATSHIELD src/Dodge/Data/Item/Combine.hs 176;" C +FRONTARMOUR src/Dodge/Data/Item/Combine.hs 124;" C +FUELCELL src/Dodge/Data/Item/Combine.hs 87;" C +FUELPACK src/Dodge/Data/Item/Combine.hs 133;" C FacilityType src/Dodge/Data/Scenario.hs 55;" t Faction src/Dodge/Data/Creature/State.hs 12;" t Factory src/Dodge/Data/Scenario.hs 56;" C @@ -464,15 +466,15 @@ FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 34;" C GBounce src/Dodge/Data/Projectile.hs 46;" C GEqC src/SameConstr.hs 20;" c -GIMBAL src/Dodge/Data/Item/Combine.hs 95;" C +GIMBAL src/Dodge/Data/Item/Combine.hs 96;" C GLASSSHARD src/Dodge/Data/Item/Combine.hs 60;" C -GLAUNCHER src/Dodge/Data/Item/Combine.hs 171;" C -GRAPECANNON src/Dodge/Data/Item/Combine.hs 150;" C +GLAUNCHER src/Dodge/Data/Item/Combine.hs 172;" C +GRAPECANNON src/Dodge/Data/Item/Combine.hs 151;" C GREEN src/Color/Data.hs 13;" C GStick src/Dodge/Data/Projectile.hs 47;" C GStuckCreature src/Dodge/Data/Projectile.hs 48;" C GStuckWall src/Dodge/Data/Projectile.hs 49;" C -GYROSCOPE src/Dodge/Data/Item/Combine.hs 96;" C +GYROSCOPE src/Dodge/Data/Item/Combine.hs 97;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameRoom src/Dodge/GameRoom.hs 12;" t @@ -506,14 +508,14 @@ GrenadeHitEffect src/Dodge/Data/Projectile.hs 45;" t GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 37;" C Gust src/Dodge/Data/Gust.hs 11;" t GymSS src/Dodge/Data/Scenario.hs 104;" C -HARDDRIVE src/Dodge/Data/Item/Combine.hs 72;" C +HARDDRIVE src/Dodge/Data/Item/Combine.hs 73;" C HARDWARE src/Dodge/Data/Item/Combine.hs 52;" C -HAT src/Dodge/Data/Item/Combine.hs 127;" C -HEADLAMP src/Dodge/Data/Item/Combine.hs 128;" C +HAT src/Dodge/Data/Item/Combine.hs 128;" C +HEADLAMP src/Dodge/Data/Item/Combine.hs 129;" C HEALTH src/Dodge/Data/Item/Combine.hs 45;" C -HEATSENSOR src/Dodge/Data/Item/Combine.hs 81;" C +HEATSENSOR src/Dodge/Data/Item/Combine.hs 82;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C -HOMINGMODULE src/Dodge/Data/Item/Combine.hs 100;" C +HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C HOSE src/Dodge/Data/Item/Combine.hs 54;" C HP src/Dodge/Data/Creature.hs 65;" C HUD src/Dodge/Data/HUD.hs 29;" t @@ -521,7 +523,7 @@ HalfRes src/Dodge/Data/Config.hs 113;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HardQuit src/Dodge/Data/Universe.hs 68;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C -HeldItemType src/Dodge/Data/Item/Combine.hs 139;" t +HeldItemType src/Dodge/Data/Item/Combine.hs 140;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HighlightSI src/Dodge/Data/SelectionList.hs 57;" C @@ -552,9 +554,9 @@ HumanoidAI src/Dodge/Data/Creature/Misc.hs 37;" t IMSI src/Dodge/Data/SelectionList.hs 40;" t IMSS src/Dodge/Data/SelectionList.hs 38;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C -INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 125;" C -IRONBAR src/Dodge/Data/Item/Combine.hs 78;" C -ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 182;" C +INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 126;" C +IRONBAR src/Dodge/Data/Item/Combine.hs 79;" C +ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 183;" C ITEMSCAN src/Dodge/Data/Item/Combine.hs 24;" C ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 29;" t @@ -616,19 +618,19 @@ ItemTargeting src/Dodge/Data/Item.hs 43;" t ItemType src/Dodge/Data/Item/Combine.hs 15;" t ItemUse src/Dodge/Data/Item/Use.hs 28;" t ItmInt src/Dodge/Data/Item/Location.hs 25;" t -JOYSTICK src/Dodge/Data/Item/Combine.hs 94;" C -JUMPLEGS src/Dodge/Data/Item/Combine.hs 131;" C +JOYSTICK src/Dodge/Data/Item/Combine.hs 95;" C +JUMPLEGS src/Dodge/Data/Item/Combine.hs 132;" C JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C -KEYCARD src/Dodge/Data/Item/Combine.hs 176;" C +KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C Kill src/Dodge/Data/ActionPlan.hs 151;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 13;" C LDParams src/Dodge/Data/SelectionList.hs 13;" t -LED src/Dodge/Data/Item/Combine.hs 174;" C -LIGHTER src/Dodge/Data/Item/Combine.hs 66;" C -LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 79;" C +LED src/Dodge/Data/Item/Combine.hs 175;" C +LIGHTER src/Dodge/Data/Item/Combine.hs 67;" C +LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 80;" C LS src/Dodge/Data/LightSource.hs 21;" C LSParam src/Dodge/Data/LightSource.hs 14;" t LWorld src/Dodge/Data/LWorld.hs 94;" t @@ -644,7 +646,7 @@ LasSound src/Dodge/Data/SoundOrigin.hs 29;" C Laser src/Dodge/Data/Laser.hs 19;" t LaserSensor src/Dodge/Data/Machine/Sensor.hs 13;" C LaserType src/Dodge/Data/Laser.hs 14;" t -LaserWeaponSF src/Dodge/Data/ComposedItem.hs 40;" C +LaserWeaponXSF src/Dodge/Data/ComposedItem.hs 41;" C Lasering src/Dodge/Data/Damage.hs 22;" C LauncherAI src/Dodge/Data/Creature/Misc.hs 43;" C LauncherAmmo src/Dodge/Data/AmmoType.hs 9;" C @@ -680,18 +682,18 @@ LongAI src/Dodge/Data/Creature/Misc.hs 48;" C LookAround src/Dodge/Data/ActionPlan.hs 138;" C LtAutoAI src/Dodge/Data/Creature/Misc.hs 42;" C Lure src/Dodge/Data/ActionPlan.hs 131;" C -MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 145;" C +MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 146;" C MAGENTA src/Color/Data.hs 17;" C -MAGNET src/Dodge/Data/Item/Combine.hs 67;" C -MAGSHIELD src/Dodge/Data/Item/Combine.hs 121;" C +MAGNET src/Dodge/Data/Item/Combine.hs 68;" C +MAGSHIELD src/Dodge/Data/Item/Combine.hs 122;" C MAPPER src/Dodge/Data/Item/Combine.hs 25;" C MAXHEALTH src/Dodge/Data/Item/Combine.hs 46;" C MBranch src/Dodge/Data/MetaTree.hs 19;" C -MEDKIT src/Dodge/Data/Item/Combine.hs 116;" C -MICROCHIP src/Dodge/Data/Item/Combine.hs 71;" C -MICROPHONE src/Dodge/Data/Item/Combine.hs 82;" C -MINIDISPLAY src/Dodge/Data/Item/Combine.hs 76;" C -MINIGUNX src/Dodge/Data/Item/Combine.hs 151;" C +MEDKIT src/Dodge/Data/Item/Combine.hs 117;" C +MICROCHIP src/Dodge/Data/Item/Combine.hs 72;" C +MICROPHONE src/Dodge/Data/Item/Combine.hs 83;" C +MINIDISPLAY src/Dodge/Data/Item/Combine.hs 77;" C +MINIGUNX src/Dodge/Data/Item/Combine.hs 152;" C MODBlockedString src/Dodge/Data/Universe.hs 106;" C MODString src/Dodge/Data/Universe.hs 105;" C MODStringOption src/Dodge/Data/Universe.hs 107;" C @@ -800,7 +802,7 @@ Muzzle_positions src/Dodge/Data/Config.hs 110;" C MvForward src/Dodge/Data/ActionPlan.hs 34;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 33;" C MvWalking src/Dodge/Data/Creature/Misc.hs 28;" C -NAILBOX src/Dodge/Data/Item/Combine.hs 77;" C +NAILBOX src/Dodge/Data/Item/Combine.hs 78;" C NInt src/NewInt.hs 16;" C NIntMap src/NewInt.hs 22;" C NIntSet src/NewInt.hs 19;" C @@ -901,7 +903,7 @@ NumShadowCasters src/Dodge/Data/Config.hs 14;" t OChasmWall src/Dodge/Data/Object.hs 15;" C OCreature src/Dodge/Data/Object.hs 12;" C OFloor src/Dodge/Data/Object.hs 14;" C -OItem src/Dodge/Data/ComposedItem.hs 52;" t +OItem src/Dodge/Data/ComposedItem.hs 54;" t OPulseBall src/Dodge/Data/Object.hs 11;" C ORANGE src/Color/Data.hs 23;" C OTButton src/Dodge/Data/ObjectType.hs 15;" C @@ -955,15 +957,15 @@ Overstrung src/Dodge/Data/Creature/Perception.hs 55;" C PBSound src/Dodge/Data/SoundOrigin.hs 42;" C PBall src/Dodge/Data/PlasmaBall.hs 13;" C PIPE src/Dodge/Data/Item/Combine.hs 50;" C -PISTOL src/Dodge/Data/Item/Combine.hs 144;" C +PISTOL src/Dodge/Data/Item/Combine.hs 145;" C PJStabiliser src/Dodge/Projectile/Create.hs 16;" t PLANK src/Dodge/Data/Item/Combine.hs 59;" C -PLATE src/Dodge/Data/Item/Combine.hs 69;" C +PLATE src/Dodge/Data/Item/Combine.hs 70;" C PLUS src/Dodge/Data/GenParams.hs 18;" C -POISONSPRAYER src/Dodge/Data/Item/Combine.hs 172;" C -PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 87;" C -POWERLEGS src/Dodge/Data/Item/Combine.hs 129;" C -PRISM src/Dodge/Data/Item/Combine.hs 65;" C +POISONSPRAYER src/Dodge/Data/Item/Combine.hs 173;" C +PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 88;" C +POWERLEGS src/Dodge/Data/Item/Combine.hs 130;" C +PRISM src/Dodge/Data/Item/Combine.hs 66;" C PS src/Dodge/Data/GenWorld.hs 99;" C PSNoShiftCont src/Dodge/Data/GenWorld.hs 100;" C PSPos src/Dodge/Data/GenWorld.hs 101;" C @@ -997,7 +999,7 @@ PlainDeath src/Dodge/Data/Creature.hs 70;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t PlasmaBallType src/Dodge/Data/PlasmaBall.hs 20;" t -PlasmaSF src/Dodge/Data/ComposedItem.hs 45;" C +PlasmaSF src/Dodge/Data/ComposedItem.hs 46;" C PlayStatus src/Sound/Data.hs 21;" t PlayerFaction src/Dodge/Data/Creature/State.hs 20;" C PlayerGoal src/Dodge/Data/Scenario.hs 3;" t @@ -1032,11 +1034,11 @@ ProximitySensor src/Dodge/Data/Machine/Sensor.hs 24;" t ProximitySensorType src/Dodge/Data/Machine/Sensor.hs 29;" t Pulse src/Dodge/Data/Creature/Misc.hs 52;" t PulseBall src/Dodge/Data/PulseLaser.hs 20;" t -PulseBallSF src/Dodge/Data/ComposedItem.hs 44;" C +PulseBallSF src/Dodge/Data/ComposedItem.hs 45;" C PulseLaser src/Dodge/Data/PulseLaser.hs 11;" t -PulseLaserSF src/Dodge/Data/ComposedItem.hs 41;" C +PulseLaserSF src/Dodge/Data/ComposedItem.hs 42;" C PulseStatus src/Dodge/Data/Creature/Misc.hs 52;" C -PumpSF src/Dodge/Data/ComposedItem.hs 47;" C +PumpSF src/Dodge/Data/ComposedItem.hs 48;" C PushSource src/Dodge/Data/Door.hs 23;" t PushedBy src/Dodge/Data/Door.hs 25;" C PushesItself src/Dodge/Data/Door.hs 24;" C @@ -1065,18 +1067,18 @@ Pyroelectric src/Dodge/Data/Material.hs 22;" C QFloat src/Geometry/Data.hs 50;" t QuarterRes src/Dodge/Data/Config.hs 113;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C -RAM src/Dodge/Data/Item/Combine.hs 73;" C +RAM src/Dodge/Data/Item/Combine.hs 74;" C RCommands src/Dodge/Terminal.hs 165;" C RED src/Color/Data.hs 12;" C RELCURS src/Dodge/Data/Item/Combine.hs 40;" C RELITEM src/Dodge/Data/Item/Combine.hs 41;" C -REMOTEDETONATOR src/Dodge/Data/Item/Combine.hs 98;" C -REMOTESCREEN src/Dodge/Data/Item/Combine.hs 93;" C -REWINDER src/Dodge/Data/Item/Combine.hs 141;" C +REMOTEDETONATOR src/Dodge/Data/Item/Combine.hs 99;" C +REMOTESCREEN src/Dodge/Data/Item/Combine.hs 94;" C +REWINDER src/Dodge/Data/Item/Combine.hs 142;" C RGBA src/Color/Data.hs 28;" t -RIFLE src/Dodge/Data/Item/Combine.hs 153;" C -RLAUNCHER src/Dodge/Data/Item/Combine.hs 169;" C -RLAUNCHERX src/Dodge/Data/Item/Combine.hs 170;" C +RIFLE src/Dodge/Data/Item/Combine.hs 154;" C +RLAUNCHER src/Dodge/Data/Item/Combine.hs 170;" C +RLAUNCHERX src/Dodge/Data/Item/Combine.hs 171;" C ROSE src/Color/Data.hs 18;" C RPLinkStatus src/Dodge/Data/Room.hs 62;" t RProps src/Dodge/Layout/Generate.hs 14;" C @@ -1139,15 +1141,15 @@ RoomWire src/Dodge/Data/Room.hs 57;" t RoundedFaces src/Shape/Data.hs 13;" C RunningSideEffect src/Dodge/Data/Universe.hs 67;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 61;" C -SHATTERGUN src/Dodge/Data/Item/Combine.hs 173;" C -SHELLMAG src/Dodge/Data/Item/Combine.hs 110;" C -SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 101;" C +SHATTERGUN src/Dodge/Data/Item/Combine.hs 174;" C +SHELLMAG src/Dodge/Data/Item/Combine.hs 111;" C +SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 102;" C SIDisplayMod src/Dodge/Data/SelectionList.hs 55;" t -SMG src/Dodge/Data/Item/Combine.hs 147;" C -SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 99;" C -SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 161;" C -SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 80;" C -SPEEDLEGS src/Dodge/Data/Item/Combine.hs 130;" C +SMG src/Dodge/Data/Item/Combine.hs 148;" C +SMOKEREDUCER src/Dodge/Data/Item/Combine.hs 100;" C +SNIPERRIFLE src/Dodge/Data/Item/Combine.hs 162;" C +SOUNDSENSOR src/Dodge/Data/Item/Combine.hs 81;" C +SPEEDLEGS src/Dodge/Data/Item/Combine.hs 131;" C SPRING src/Dodge/Data/Item/Combine.hs 53;" C SPic src/ShapePicture/Data.hs 7;" t SQUARE src/Dodge/Data/GenParams.hs 18;" C @@ -1286,18 +1288,18 @@ TCDamageCommand src/Dodge/Data/Terminal.hs 50;" C TCInfo src/Dodge/Data/Terminal.hs 48;" C TCom src/Dodge/Data/Terminal.hs 47;" t TCommands src/Dodge/Terminal.hs 56;" t -TESLACOIL src/Dodge/Data/Item/Combine.hs 167;" C -THERMOMETER src/Dodge/Data/Item/Combine.hs 83;" C +TESLACOIL src/Dodge/Data/Item/Combine.hs 168;" C +THERMOMETER src/Dodge/Data/Item/Combine.hs 84;" C THREELINES src/Dodge/Data/GenParams.hs 18;" C -TIMESCROLLER src/Dodge/Data/Item/Combine.hs 143;" C -TIMESTOPPER src/Dodge/Data/Item/Combine.hs 142;" C +TIMESCROLLER src/Dodge/Data/Item/Combine.hs 144;" C +TIMESTOPPER src/Dodge/Data/Item/Combine.hs 143;" C TIN src/Dodge/Data/Item/Combine.hs 57;" C -TINMAG src/Dodge/Data/Item/Combine.hs 107;" C +TINMAG src/Dodge/Data/Item/Combine.hs 108;" C TLine src/Dodge/Data/Terminal.hs 36;" C TO src/Shader/Data.hs 59;" t -TRACTORGUN src/Dodge/Data/Item/Combine.hs 168;" C +TRACTORGUN src/Dodge/Data/Item/Combine.hs 169;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 64;" C -TRANSMITTER src/Dodge/Data/Item/Combine.hs 70;" C +TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C TSbackspace src/Dodge/Data/Input.hs 59;" C TSdelete src/Dodge/Data/Input.hs 60;" C TSdown src/Dodge/Data/Input.hs 65;" C @@ -1365,12 +1367,12 @@ Toggle2 src/Dodge/Data/Universe.hs 114;" C ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C TopDT src/Dodge/Data/DoubleTree.hs 26;" C TopMenuOption src/Dodge/Data/Universe.hs 78;" C -TorchSF src/Dodge/Data/ComposedItem.hs 46;" C +TorchSF src/Dodge/Data/ComposedItem.hs 47;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorqueCr src/Dodge/Data/WorldEffect.hs 34;" C TractorBeam src/Dodge/Data/TractorBeam.hs 11;" t TrainingCamp src/Dodge/Data/Scenario.hs 63;" C -TransformerSF src/Dodge/Data/ComposedItem.hs 43;" C +TransformerSF src/Dodge/Data/ComposedItem.hs 44;" C TransporterSS src/Dodge/Data/Scenario.hs 114;" C Trie src/SimpleTrie.hs 10;" t TriggerSF src/Dodge/Data/ComposedItem.hs 22;" C @@ -1388,7 +1390,7 @@ TwoHandFlat src/Dodge/Data/AimStance.hs 13;" C TwoHandOver src/Dodge/Data/AimStance.hs 12;" C TwoHandUnder src/Dodge/Data/AimStance.hs 11;" C Typical src/Shape/Data.hs 31;" C -UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 97;" C +UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C UNIGATE src/Dodge/Data/Item/Combine.hs 30;" C UintBO src/Shader/Data.hs 91;" t UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 16;" C @@ -1436,7 +1438,7 @@ VAO src/Shader/Data.hs 64;" t VBO src/Shader/Data.hs 79;" t VF src/Polyhedra/Data.hs 21;" t VIOLET src/Color/Data.hs 19;" C -VOLLEYGUN src/Dodge/Data/Item/Combine.hs 152;" C +VOLLEYGUN src/Dodge/Data/Item/Combine.hs 153;" C VertexAttribute src/Shader/Data.hs 66;" t Verx src/Picture/Data.hs 11;" t View_gr_boundaries src/Dodge/Data/Config.hs 87;" C @@ -1449,11 +1451,11 @@ Vision src/Dodge/Data/Creature/Perception.hs 39;" t Vocalization src/Dodge/Data/Creature/Misc.hs 18;" t VolleyGunTrigger src/Dodge/Data/TriggerType.hs 13;" C VolleyUnfiredBarrels src/Dodge/Data/Item/Params.hs 17;" C -WALLDETECTOR src/Dodge/Data/Item/Combine.hs 184;" C +WALLDETECTOR src/Dodge/Data/Item/Combine.hs 185;" C WHITE src/Color/Data.hs 24;" C -WIRE src/Dodge/Data/Item/Combine.hs 85;" C -WRISTARMOUR src/Dodge/Data/Item/Combine.hs 124;" C -WRIST_ECG src/Dodge/Data/Item/Combine.hs 136;" C +WIRE src/Dodge/Data/Item/Combine.hs 86;" C +WRISTARMOUR src/Dodge/Data/Item/Combine.hs 125;" C +WRIST_ECG src/Dodge/Data/Item/Combine.hs 137;" C WaitThen src/Dodge/Data/ActionPlan.hs 74;" C Walking src/Dodge/Data/Creature/Stance.hs 23;" C Wall src/Dodge/Data/Wall.hs 17;" t @@ -1513,7 +1515,7 @@ WorldEventFlag src/Dodge/Data/World.hs 30;" t WorldGovernment src/Dodge/Data/Scenario.hs 52;" C XInfinity src/Dodge/Data/CardinalPoint.hs 44;" t YELLOW src/Color/Data.hs 15;" C -ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 91;" C +ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 92;" C ZombieFaction src/Dodge/Data/Creature/State.hs 14;" C __Just' src/MaybeHelp.hs 11;" f _aimStance src/Dodge/Data/Creature/Stance.hs 33;" f @@ -1937,6 +1939,7 @@ _lWorld src/Dodge/Data/CWorld.hs 24;" f _lampColor src/Dodge/Data/Creature/Misc.hs 72;" f _lampHeight src/Dodge/Data/Creature/Misc.hs 72;" f _lampLSID src/Dodge/Data/Creature/Misc.hs 72;" f +_lasWepXSF src/Dodge/Data/ComposedItem.hs 41;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f _lasers src/Dodge/Data/LWorld.hs 117;" f @@ -2283,7 +2286,7 @@ _shaderVAO src/Shader/Data.hs 54;" f _shapeEBO src/Data/Preload/Render.hs 29;" f _shapeHalfSize src/Shape/Data.hs 13;" f _shapeShader src/Data/Preload/Render.hs 28;" f -_shellPayload src/Dodge/Data/Item/Combine.hs 101;" f +_shellPayload src/Dodge/Data/Item/Combine.hs 102;" f _shockwaves src/Dodge/Data/LWorld.hs 116;" f _siColor src/Dodge/Data/SelectionList.hs 49;" f _siDisplayMod src/Dodge/Data/SelectionList.hs 52;" f @@ -2511,9 +2514,9 @@ _wsBlock src/Dodge/Data/Wall/Structure.hs 14;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsIsAutoDoor src/Dodge/Data/Wall/Structure.hs 12;" f _wsMachine src/Dodge/Data/Wall/Structure.hs 13;" f -_xNum src/Dodge/Data/Item/Combine.hs 140;" f -_xNum src/Dodge/Data/Item/Combine.hs 150;" f -_xNum src/Dodge/Data/Item/Combine.hs 170;" f +_xNum src/Dodge/Data/Item/Combine.hs 141;" f +_xNum src/Dodge/Data/Item/Combine.hs 151;" f +_xNum src/Dodge/Data/Item/Combine.hs 171;" f aBar src/Dodge/Placement/Instance/LightSource.hs 68;" f aFlame src/Dodge/Gas.hs 20;" f aGasCloud src/Dodge/Gas.hs 15;" f @@ -2566,7 +2569,7 @@ adjustIMZone src/Dodge/Base.hs 81;" f advanceScrollAmount src/Dodge/Update.hs 480;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f aimDelaySweep src/Dodge/Render/Picture.hs 285;" f -aimStanceInfo src/Dodge/Item/Info.hs 242;" f +aimStanceInfo src/Dodge/Item/Info.hs 243;" f aimTurn src/Dodge/Creature/YourControl.hs 181;" f airlock src/Dodge/Room/Airlock.hs 28;" f airlock0 src/Dodge/Room/Airlock.hs 79;" f @@ -2580,7 +2583,7 @@ alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 128;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 129;" f amr src/Dodge/Item/Held/Rod.hs 34;" f anRoom src/Dodge/Floor.hs 116;" f analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f @@ -2664,10 +2667,10 @@ bQuadToLine src/Geometry/Bezier.hs 30;" f backPQ src/Dodge/Creature/HandPos.hs 128;" f backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 187;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f -bangConeShape src/Dodge/Item/Draw/SPic.hs 303;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 304;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 647;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 827;" f @@ -2675,17 +2678,17 @@ bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f barrelShape src/Dodge/Render/ShapePicture.hs 120;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 407;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 408;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f -baseCI src/Dodge/Item/Grammar.hs 162;" f +baseCI src/Dodge/Item/Grammar.hs 165;" f baseFloorTileSize src/Tile.hs 45;" f baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 323;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 404;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 392;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 405;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 393;" f baseShoulder src/Dodge/Creature/Picture.hs 114;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 300;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 292;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f baseStickSpread src/Dodge/HeldUse.hs 336;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 39;" f @@ -2952,7 +2955,7 @@ crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f crHasTarget src/Dodge/Creature/Test.hs 66;" f crHasTargetLOS src/Dodge/Creature/Test.hs 69;" f crHeight src/Dodge/Base/Collide.hs 173;" f -crHit src/Dodge/WorldEvent/ThingsHit.hs 132;" f +crHit src/Dodge/WorldEvent/ThingsHit.hs 136;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f crInAimStance src/Dodge/Creature/Test.hs 94;" f @@ -3012,9 +3015,9 @@ critsRoom src/Dodge/Room/Room.hs 419;" f crixsNearSeg src/Dodge/Zoning/Creature.hs 30;" f crossPic src/Dodge/Render/Label.hs 28;" f crossProd src/Geometry/Vector3D.hs 41;" f -crsHit src/Dodge/WorldEvent/ThingsHit.hs 80;" f -crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 179;" f -crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 91;" f +crsHit src/Dodge/WorldEvent/ThingsHit.hs 84;" f +crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 183;" f +crsHitZ src/Dodge/WorldEvent/ThingsHit.hs 95;" f crsItmsUnused src/Dodge/Room/Containing.hs 45;" f crsNearCirc src/Dodge/Zoning/Creature.hs 36;" f crsNearPoint src/Dodge/Zoning/Creature.hs 18;" f @@ -3118,7 +3121,7 @@ defDamageMaterial src/Dodge/Material/Damage.hs 34;" f defEquipment src/Dodge/Default.hs 24;" f defHeldItem src/Dodge/Default/Item.hs 9;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f -defSPic src/Dodge/Item/Draw/SPic.hs 309;" f +defSPic src/Dodge/Item/Draw/SPic.hs 310;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f defaultAimingCrit src/Dodge/Default/Creature.hs 109;" f defaultAudition src/Dodge/Default/Creature.hs 94;" f @@ -3182,8 +3185,8 @@ destroyMounts src/Dodge/Wall/Damage.hs 164;" f destroyProjectile src/Dodge/Projectile/Update.hs 112;" f detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 432;" f -detectorInfo src/Dodge/Item/Info.hs 223;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 433;" f +detectorInfo src/Dodge/Item/Info.hs 224;" f determineProjectileTracking src/Dodge/HeldUse.hs 1212;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f did src/Dodge/Item/InvSize.hs 54;" f @@ -3476,9 +3479,9 @@ equipAllocString src/Dodge/Render/HUD.hs 316;" f equipAttachPos src/Dodge/Item/Draw.hs 30;" f equipBackgroundEffect src/Dodge/Euse.hs 22;" f equipInfo src/Dodge/Item/Info.hs 140;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 158;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 159;" f equipPosition src/Dodge/Item/Draw.hs 38;" f -equipSiteInfo src/Dodge/Item/Info.hs 252;" f +equipSiteInfo src/Dodge/Item/Info.hs 253;" f equipSitePQ src/Dodge/Creature/HandPos.hs 27;" f equipType src/Dodge/Data/EquipType.hs 10;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f @@ -3504,8 +3507,8 @@ explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 79;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extraPics src/Dodge/Render/ShapePicture.hs 141;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 93;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 102;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 94;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 103;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f @@ -3540,12 +3543,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 395;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 396;" f flareCircleAt src/Dodge/HeldUse.hs 705;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatLookupItems src/Dodge/Combine.hs 39;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 419;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 420;" f fleeFrom src/Dodge/CreatureEffect.hs 93;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f @@ -3574,7 +3577,7 @@ forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 37;" f fpsText src/Dodge/Render/Picture.hs 57;" f -fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 146;" f +fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 147;" f frag src/Shader/Data.hs 110;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 545;" f fromJust' src/MaybeHelp.hs 22;" f @@ -3612,9 +3615,9 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAimZoom src/Dodge/Update/Camera.hs 151;" f -getAmmoLinks src/Dodge/Item/Grammar.hs 107;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 108;" f getAttachedSFLink src/Dodge/HeldUse.hs 798;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 88;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 89;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 173;" f getBulletType src/Dodge/HeldUse.hs 933;" f @@ -3667,7 +3670,7 @@ glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 711;" f glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 687;" f glassSwitchBack src/Dodge/Room/Room.hs 83;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 117;" f -glauncherPic src/Dodge/Item/Draw/SPic.hs 401;" f +glauncherPic src/Dodge/Item/Draw/SPic.hs 402;" f gluintSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 150;" f @@ -3723,14 +3726,14 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 310;" f hat src/Dodge/Item/Equipment.hs 65;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 68;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 422;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f headMap src/Dodge/DoubleTree.hs 118;" f headPQ src/Dodge/Creature/HandPos.hs 116;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f healthTest src/Dodge/Room/LasTurret.hs 130;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f -heldAimStance src/Dodge/Item/AimStance.hs 24;" f +heldAimStance src/Dodge/Item/AimStance.hs 27;" f heldAimZoom src/Dodge/Update/Camera.hs 157;" f heldEffect src/Dodge/HeldUse.hs 63;" f heldEffectMuzzles src/Dodge/HeldUse.hs 134;" f @@ -3742,9 +3745,9 @@ heldItemInvLock src/Dodge/HeldUse.hs 459;" f heldItemMuzVel src/Dodge/HeldUse.hs 1018;" f heldItemMuzzles src/Dodge/HeldUse.hs 188;" f heldItemRifling src/Dodge/HeldUse.hs 1060;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 234;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 235;" f heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f -heldPositionInfo src/Dodge/Item/Info.hs 239;" f +heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldTorqueAmount src/Dodge/HeldUse.hs 601;" f heldTriggerType src/Dodge/BaseTriggerType.hs 28;" f heron src/Geometry.hs 218;" f @@ -3825,18 +3828,18 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 62;" f introScanValue src/Dodge/Inventory/SelectionList.hs 77;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 240;" f +invAdj src/Dodge/Item/Grammar.hs 244;" f invCursorParams src/Dodge/ListDisplayParams.hs 35;" f invDP src/Dodge/ListDisplayParams.hs 32;" f -invDT src/Dodge/Item/Grammar.hs 221;" f -invDT' src/Dodge/Item/Grammar.hs 226;" f +invDT src/Dodge/Item/Grammar.hs 225;" f +invDT' src/Dodge/Item/Grammar.hs 230;" f invDimColor src/Dodge/DisplayInventory.hs 190;" f invHead src/Dodge/Render/HUD.hs 421;" f -invIMDT src/Dodge/Item/Grammar.hs 250;" f -invIndents src/Dodge/Item/Grammar.hs 257;" f +invIMDT src/Dodge/Item/Grammar.hs 254;" f +invIndents src/Dodge/Item/Grammar.hs 261;" f invItemEffs src/Dodge/Creature/State.hs 63;" f invItemLocUpdate src/Dodge/Creature/State.hs 71;" f -invRootMap src/Dodge/Item/Grammar.hs 231;" f +invRootMap src/Dodge/Item/Grammar.hs 235;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSetSelection src/Dodge/Inventory.hs 284;" f invSetSelectionPos src/Dodge/Inventory.hs 292;" f @@ -3859,7 +3862,7 @@ isAnimate src/Dodge/Creature/Test.hs 135;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 77;" f isCornerLink src/Dodge/RoomLink.hs 66;" f -isFlyable src/Dodge/WorldEvent/ThingsHit.hs 187;" f +isFlyable src/Dodge/WorldEvent/ThingsHit.hs 191;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 199;" f isInLnk src/Dodge/PlacementSpot.hs 163;" f isJust' src/MaybeHelp.hs 27;" f @@ -3881,7 +3884,7 @@ isUnusedLnkType src/Dodge/PlacementSpot.hs 197;" f isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 181;" f isValidCommand src/Dodge/Debug/Terminal.hs 134;" f isVowel src/StringHelp.hs 8;" f -isWalkable src/Dodge/WorldEvent/ThingsHit.hs 194;" f +isWalkable src/Dodge/WorldEvent/ThingsHit.hs 198;" f isoMatrix src/MatrixHelper.hs 35;" f isotriBWH src/Geometry/Polygon.hs 30;" f itDim src/Dodge/Item/InvSize.hs 21;" f @@ -3893,7 +3896,7 @@ itemAboveAttachables src/Dodge/Item/Grammar.hs 37;" f itemAimStance src/Dodge/Item/AimStance.hs 10;" f itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 13;" f itemBaseName src/Dodge/Item/Display.hs 60;" f -itemBaseStance src/Dodge/Item/AimStance.hs 18;" f +itemBaseStance src/Dodge/Item/AimStance.hs 21;" f itemBelowAttachables src/Dodge/Item/Grammar.hs 53;" f itemBlips src/Dodge/RadarSweep.hs 94;" f itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f @@ -3926,18 +3929,18 @@ itemShapeMaxZ src/Dodge/Item/Orientation.hs 65;" f itemShapeMin src/Dodge/Item/Orientation.hs 74;" f itemSidePush src/Dodge/HeldUse.hs 403;" f itemString src/Dodge/Item/Display.hs 56;" f -itemToFunction src/Dodge/Item/Grammar.hs 110;" f +itemToFunction src/Dodge/Item/Grammar.hs 111;" f itemTreeSPic src/Dodge/Item/Draw/SPicTree.hs 13;" f itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f itemWeight src/Dodge/Creature/Statistics.hs 74;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 30;" f -itmEquipSiteInfo src/Dodge/Item/Info.hs 249;" f +itmEquipSiteInfo src/Dodge/Item/Info.hs 250;" f itmSpaceInfo src/Dodge/Item/Info.hs 25;" f -itmUsageInfo src/Dodge/Item/Info.hs 229;" f +itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 71;" f -joinItemsInList src/Dodge/Item/Grammar.hs 211;" f +joinItemsInList src/Dodge/Item/Grammar.hs 215;" f joystick src/Dodge/Item/Scope.hs 158;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f @@ -3952,7 +3955,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 20;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 105;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 93;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f -keyPic src/Dodge/Item/Draw/SPic.hs 438;" f +keyPic src/Dodge/Item/Draw/SPic.hs 439;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f lChasm src/Dodge/Room/Tutorial.hs 143;" f @@ -3967,7 +3970,7 @@ lasCenRunClose1 src/Dodge/Room/LasTurret.hs 398;" f lasCenRunClose2 src/Dodge/Room/LasTurret.hs 471;" f lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 363;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 165;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 413;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 414;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f lasRunRand src/Dodge/Room/LasTurret.hs 468;" f lasRunYinYang src/Dodge/Room/LasTurret.hs 186;" f @@ -3987,14 +3990,14 @@ ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 84;" f leaveResetQuitTerminal src/Dodge/WorldEffect.hs 165;" f led src/Dodge/Item/Held/Utility.hs 23;" f left src/DoubleStack.hs 16;" f -leftChildList src/Dodge/Item/Grammar.hs 189;" f +leftChildList src/Dodge/Item/Grammar.hs 193;" f leftHandPQ src/Dodge/Creature/HandPos.hs 61;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 167;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f leftLegPQ src/Dodge/Creature/HandPos.hs 85;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 201;" f +leftRightCombine src/Dodge/Item/Grammar.hs 205;" f leftWristPQ src/Dodge/Creature/HandPos.hs 82;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 447;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f liShape src/Dodge/Placement/Instance/LightSource.hs 84;" f light src/Color.hs 131;" f @@ -4203,8 +4206,8 @@ minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 583;" f miniGunCrit src/Dodge/Creature.hs 61;" f miniGunX src/Dodge/Item/Held/Cane.hs 33;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 374;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 366;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 375;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 367;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 653;" f miniTree2 src/Dodge/Room/Room.hs 124;" f minimumOn src/FoldlHelp.hs 14;" f @@ -4378,7 +4381,7 @@ pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 217;" f pbFlicker src/Dodge/Update.hs 546;" f -pbsHit src/Dodge/WorldEvent/ThingsHit.hs 108;" f +pbsHit src/Dodge/WorldEvent/ThingsHit.hs 112;" f peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 214;" f @@ -4708,15 +4711,15 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 69;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f right src/DoubleStack.hs 16;" f -rightChildList src/Dodge/Item/Grammar.hs 195;" f +rightChildList src/Dodge/Item/Grammar.hs 199;" f rightHandPQ src/Dodge/Creature/HandPos.hs 40;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 178;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f rightLegPQ src/Dodge/Creature/HandPos.hs 101;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rightWristPQ src/Dodge/Creature/HandPos.hs 58;" f rlPosDir src/Dodge/RoomLink.hs 112;" f -rlauncherPic src/Dodge/Item/Draw/SPic.hs 398;" f +rlauncherPic src/Dodge/Item/Draw/SPic.hs 399;" f rmInLinks src/Dodge/RoomLink.hs 153;" f rmInvItem src/Dodge/Inventory.hs 83;" f rmLinksOfType src/Dodge/RoomLink.hs 150;" f @@ -4904,7 +4907,7 @@ shapeBounds src/Dodge/Room/Foreground.hs 147;" f shapePoints src/Dodge/Room/Foreground.hs 144;" f shapeVerxSize src/Shape/Parameters.hs 5;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 313;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f shellHitCreature src/Dodge/Projectile/Update.hs 84;" f shellHitFloor src/Dodge/Projectile/Update.hs 98;" f @@ -5089,7 +5092,7 @@ ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 95;" f stackPicturesAtOff src/Dodge/Render/List.hs 98;" f stackText src/Picture/Base.hs 180;" f -stackedInventory src/Dodge/Creature.hs 324;" f +stackedInventory src/Dodge/Creature.hs 326;" f startCr src/Dodge/Creature.hs 90;" f startCrafts src/Dodge/Room/Start.hs 94;" f startDrag src/Dodge/Update/Input/InGame.hs 286;" f @@ -5177,10 +5180,10 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 43;" f terminalShape src/Dodge/Machine/Draw.hs 50;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 129;" f teslaCoil src/Dodge/Item/Held/BatteryGuns.hs 12;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 410;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 411;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 18;" f testEvent src/Dodge/Event/Test.hs 11;" f -testInventory src/Dodge/Creature.hs 305;" f +testInventory src/Dodge/Creature.hs 307;" f testPic src/Dodge/Render/ShapePicture.hs 57;" f testSPic src/Dodge/Render/ShapePicture.hs 54;" f testStringInit src/Dodge/TestString.hs 35;" f @@ -5205,10 +5208,10 @@ thickCircle src/Picture/Base.hs 267;" f thickLine src/Picture/Base.hs 238;" f thickLineCol src/Picture/Base.hs 250;" f thinHighBar src/Dodge/Room/Foreground.hs 77;" f -thingHit src/Dodge/WorldEvent/ThingsHit.hs 129;" f -thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 117;" f +thingHit src/Dodge/WorldEvent/ThingsHit.hs 133;" f +thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 121;" f thingsHit src/Dodge/WorldEvent/ThingsHit.hs 45;" f -thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 138;" f +thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 142;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 53;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 801;" f @@ -5262,7 +5265,7 @@ topInvW src/Dodge/ListDisplayParams.hs 54;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 54;" f -torchShape src/Dodge/Item/Draw/SPic.hs 276;" f +torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torqueAmount src/Dodge/HeldUse.hs 596;" f torqueCr src/Dodge/WorldEffect.hs 86;" f torso src/Dodge/Creature/Picture.hs 100;" f @@ -5270,7 +5273,7 @@ tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 843;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 39;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 416;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 417;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 116;" f @@ -5306,7 +5309,7 @@ treeMaxDepthFromTrunk src/Dodge/Layout/Generate.hs 22;" f treePath src/Dodge/Tree/GenerateStructure.hs 13;" f treePaths src/TreeHelp.hs 139;" f treePost src/TreeHelp.hs 46;" f -treeToPotentialFunction src/Dodge/Item/Grammar.hs 147;" f +treeToPotentialFunction src/Dodge/Item/Grammar.hs 148;" f triLootRoom src/Dodge/Room/Treasure.hs 23;" f triangulateEarClip src/Geometry/Polygon.hs 162;" f triggerDoorRoom src/Dodge/Room/Door.hs 32;" f @@ -5433,7 +5436,7 @@ updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 380;" f updateLampoid src/Dodge/Lampoid.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 11;" f updateLasers src/Dodge/Update.hs 496;" f -updateLeftParentSF src/Dodge/Item/Grammar.hs 174;" f +updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLivingCreature src/Dodge/Creature/Update.hs 47;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 417;" f @@ -5463,7 +5466,7 @@ updateRadarSweep src/Dodge/RadarSweep.hs 40;" f updateRadarSweeps src/Dodge/Update.hs 748;" f updateRandNode src/TreeHelp.hs 109;" f updateRenderSplit appDodge/Main.hs 104;" f -updateRightParentSF src/Dodge/Item/Grammar.hs 185;" f +updateRightParentSF src/Dodge/Item/Grammar.hs 188;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f @@ -5560,7 +5563,7 @@ visibleWalls src/Dodge/Base/Collide.hs 216;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 62;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 354;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f walkNozzle src/Dodge/HeldUse.hs 819;" f walkableNodeNear src/Dodge/Path.hs 69;" f wallBlips src/Dodge/RadarSweep.hs 99;" f @@ -5610,7 +5613,7 @@ windowXFloat src/Dodge/Data/Config.hs 72;" f windowYFloat src/Dodge/Data/Config.hs 74;" f withAlpha src/Color.hs 37;" f withByteString src/Shader/Compile.hs 157;" f -wlHitPos src/Dodge/WorldEvent/ThingsHit.hs 156;" f +wlHitPos src/Dodge/WorldEvent/ThingsHit.hs 160;" f wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f wlIXsNearRect src/Dodge/Zoning/Wall.hs 29;" f @@ -5621,9 +5624,9 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f -wlsHit src/Dodge/WorldEvent/ThingsHit.hs 152;" f -wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 164;" f -wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 159;" f +wlsHit src/Dodge/WorldEvent/ThingsHit.hs 156;" f +wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f +wlsHitUnsorted src/Dodge/WorldEvent/ThingsHit.hs 163;" 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