diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 3e36b0938..f0a23f61a 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -144,9 +144,7 @@ inventoryX c = case c of , makeTypeCraftNum 2 PIPE , makeTypeCraftNum 1 CREATURESENSOR ] - 'C' -> - [ wristInvisibility - ] + 'C' -> map makeTypeCraft [minBound..maxBound] 'D' -> [ blinker , unsafeBlinker diff --git a/src/Dodge/Data/Creature.hs b/src/Dodge/Data/Creature.hs index 29ca51dd5..793c021d0 100644 --- a/src/Dodge/Data/Creature.hs +++ b/src/Dodge/Data/Creature.hs @@ -72,13 +72,13 @@ data Creature = Creature } --deriving (Eq, Show, Read) --Generic, Flat) - -data CreatureTargeting = CreatureTargeting - { _ctPos :: Maybe Point2 - , _ctType :: Maybe TargetingType - , _ctID :: Maybe Int - , _ctActive :: Bool - } +-- +--data CreatureTargeting = CreatureTargeting +-- { _ctPos :: Maybe Point2 +-- , _ctType :: Maybe TargetingType +-- , _ctID :: Maybe Int +-- , _ctActive :: Bool +-- } data CreatureCorpse = MakeDefaultCorpse @@ -93,7 +93,7 @@ data Intention = Intention --deriving (Eq, Show, Read) --Generic, Flat) makeLenses ''Creature -makeLenses ''CreatureTargeting +--makeLenses ''CreatureTargeting makeLenses ''Intention concat @@ -102,5 +102,5 @@ concat [ ''CreatureCorpse , ''Creature , ''Intention - , ''CreatureTargeting +-- , ''CreatureTargeting ] diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index ccdc589ba..a0fb1def4 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -68,7 +68,7 @@ data CraftType | GASINJECTOR | FLAKCRAFT | FRAGCRAFT - deriving (Eq, Ord, Show, Read) + deriving (Eq, Ord, Show, Read, Enum, Bounded) data AttachType = ZOOMSCOPE diff --git a/src/Dodge/Default/Creature.hs b/src/Dodge/Default/Creature.hs index e2439036d..daf94bbf8 100644 --- a/src/Dodge/Default/Creature.hs +++ b/src/Dodge/Default/Creature.hs @@ -59,8 +59,8 @@ defaultCreature = -- , _crTargeting = defaultCreatureTargeting } -defaultCreatureTargeting :: CreatureTargeting -defaultCreatureTargeting = CreatureTargeting Nothing Nothing Nothing False +--defaultCreatureTargeting :: CreatureTargeting +--defaultCreatureTargeting = CreatureTargeting Nothing Nothing Nothing False defaultCreatureSkin :: CreatureType defaultCreatureSkin = Humanoid (greyN 0.9) (lightx4 green) (greyN 0.3) InanimateAI diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index 891542d7a..4cab89134 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -33,7 +33,7 @@ itemRotTreeSPic par (il, t) = translateSP p . overPosSP (Q.rotate q) $ itemTreeS itemSPic :: Item -> SPic itemSPic it = case it ^. itType of - CRAFT _ -> defSPic + CRAFT ct -> noPic $ craftItemSPic ct HELD ht -> heldItemSPic ht it EQUIP et -> equipItemSPic et it ATTACH{} -> defSPic @@ -41,6 +41,54 @@ itemSPic it = case it ^. itType of TARGETING{} -> defSPic BULLETMOD{} -> defSPic +craftItemSPic :: CraftType -> Shape +craftItemSPic = \case + PIPE -> colorSH green $ xCylinderST 3 10 +-- TUBE +-- HARDWARE +-- SPRING +-- HOSE +-- TAPE +-- CAN +-- TIN +-- STEELDRUM +-- PLANK +-- GLASSSHARD +-- SCRAPMETAL +-- PUMP +-- MOTOR +-- TRANSFORMER +-- PRISM +-- LIGHTER +-- MAGNET +-- ANTIMATTER +-- PLATE +-- TRANSMITTER +-- MICROCHIP +-- HARDDRIVE +-- RAM +-- AIUNIT +-- CAMERA +-- MINIDISPLAY -- visual display unit +-- LED +-- NAILBOX +-- IRONBAR +-- LIGHTSENSOR +-- SOUNDSENSOR +-- HEATSENSOR +-- MICROPHONE +-- THERMOMETER +-- CREATURESENSOR +-- WIRE +-- FUELCELL +-- PORTABLEFUSION +-- FRAGMODULE +-- FLASHMODULE +-- GASINJECTOR +-- FLAKCRAFT +-- FRAGCRAFT + _ -> mempty + ammoMagSPic :: Item -> AmmoMagType -> SPic ammoMagSPic it = \case TINMAG -> noPic $ upperPrismPolyTS 1 (rectNSWE 0 (- (am * 5)) (-1) 1) @@ -186,7 +234,6 @@ heldItemSPic ht it = case ht of AMR -> noPic baseAMRShape AUTOAMR -> noPic baseAMRShape SNIPERRIFLE -> noPic baseAMRShape -- <> addBullets it - -- MACHINEGUN -> noPic $ baseAMRShape <> addTinClip it FLAMESPITTER -> flamerPic it FLAMETHROWER -> flamerPic it FLAMETORRENT -> flamerPic it diff --git a/tags b/tags index cf865d2f1..bfa855922 100644 --- a/tags +++ b/tags @@ -46,7 +46,7 @@ AesonHelp src/AesonHelp.hs 1;" m AimAt src/Dodge/Data/ActionPlan.hs 84;" C AimParams src/Dodge/Data/Item/Use.hs 113;" t AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m -AimStance src/Dodge/Data/Item/Use.hs 181;" t +AimStance src/Dodge/Data/Item/Use.hs 180;" t Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C Airlock src/Dodge/Room/Airlock.hs 4;" m @@ -66,7 +66,7 @@ AmmoModifierSF src/Dodge/Data/ComposedItem.hs 40;" C AmmoParams src/Dodge/Data/Item/Use.hs 106;" t AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 20;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 42;" C -AmmoPerShot src/Dodge/Data/Item/Use.hs 155;" t +AmmoPerShot src/Dodge/Data/Item/Use.hs 154;" t AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 41;" C AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" t @@ -927,7 +927,7 @@ ItEffect src/Dodge/ItEffect.hs 2;" m ItID src/Dodge/Data/Item.hs 29;" t ItInvEffect src/Dodge/Data/Item/Effect.hs 19;" t ItTargeting src/Dodge/Data/Item.hs 56;" C -ItZoom src/Dodge/Data/Item/Use.hs 188;" t +ItZoom src/Dodge/Data/Item/Use.hs 187;" t Item src/Dodge/Data/Item.hs 41;" t Item src/Dodge/Data/Item.hs 4;" m Item src/Dodge/Default/Item.hs 1;" m @@ -1188,23 +1188,22 @@ Music src/Music.hs 1;" m MusicData src/Music.hs 7;" t MustBeHeld src/Dodge/Data/Item/Use.hs 57;" C Mute src/Dodge/Data/Creature/Misc.hs 28;" C -Muzzle src/Dodge/Data/Item/Use.hs 160;" t -MuzzleBlink src/Dodge/Data/Item/Use.hs 148;" C -MuzzleDetector src/Dodge/Data/Item/Use.hs 147;" C +Muzzle src/Dodge/Data/Item/Use.hs 159;" t +MuzzleBlink src/Dodge/Data/Item/Use.hs 147;" C +MuzzleDetector src/Dodge/Data/Item/Use.hs 146;" C MuzzleEffect src/Dodge/Data/Item/Use.hs 133;" t MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m -MuzzleLaser src/Dodge/Data/Item/Use.hs 136;" C -MuzzleLauncher src/Dodge/Data/Item/Use.hs 139;" C -MuzzleNozzle src/Dodge/Data/Item/Use.hs 140;" C -MuzzleRewind src/Dodge/Data/Item/Use.hs 150;" C -MuzzleScroller src/Dodge/Data/Item/Use.hs 152;" C -MuzzleShatter src/Dodge/Data/Item/Use.hs 146;" C +MuzzleLaser src/Dodge/Data/Item/Use.hs 135;" C +MuzzleLauncher src/Dodge/Data/Item/Use.hs 138;" C +MuzzleNozzle src/Dodge/Data/Item/Use.hs 139;" C +MuzzleRewind src/Dodge/Data/Item/Use.hs 149;" C +MuzzleScroller src/Dodge/Data/Item/Use.hs 151;" C +MuzzleShatter src/Dodge/Data/Item/Use.hs 145;" C MuzzleShootBullet src/Dodge/Data/Item/Use.hs 134;" C -MuzzleShootBulletRandDelay src/Dodge/Data/Item/Use.hs 135;" C -MuzzleStopper src/Dodge/Data/Item/Use.hs 151;" C -MuzzleTesla src/Dodge/Data/Item/Use.hs 137;" C -MuzzleTractor src/Dodge/Data/Item/Use.hs 138;" C -MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 149;" C +MuzzleStopper src/Dodge/Data/Item/Use.hs 150;" C +MuzzleTesla src/Dodge/Data/Item/Use.hs 136;" C +MuzzleTractor src/Dodge/Data/Item/Use.hs 137;" C +MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 148;" C MvForward src/Dodge/Data/ActionPlan.hs 35;" C MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C MvWalking src/Dodge/Data/Creature/Misc.hs 39;" C @@ -1326,7 +1325,7 @@ OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C OneArgument src/Dodge/Data/Terminal.hs 96;" C -OneHand src/Dodge/Data/Item/Use.hs 185;" C +OneHand src/Dodge/Data/Item/Use.hs 184;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C OnwardList src/Dodge/Annotation/Data.hs 16;" C Opacity src/Dodge/Data/Wall.hs 38;" t @@ -1969,9 +1968,9 @@ Turret src/Dodge/Data/Machine.hs 57;" t Turret src/Dodge/Placement/Instance/Turret.hs 1;" m TurretInt src/Dodge/Data/Item/Location.hs 21;" t TwistGoal src/Dodge/Data/Scenario.hs 15;" C -TwoHandFlat src/Dodge/Data/Item/Use.hs 184;" C -TwoHandOver src/Dodge/Data/Item/Use.hs 183;" C -TwoHandUnder src/Dodge/Data/Item/Use.hs 182;" C +TwoHandFlat src/Dodge/Data/Item/Use.hs 183;" C +TwoHandOver src/Dodge/Data/Item/Use.hs 182;" C +TwoHandUnder src/Dodge/Data/Item/Use.hs 181;" C Type src/Dodge/Data/Damage/Type.hs 6;" m Type src/Dodge/Terminal/Type.hs 1;" m Typical src/Shape/Data.hs 36;" C @@ -2007,7 +2006,7 @@ UseBulletMod src/Dodge/Data/Item/Use.hs 48;" C UseCondition src/Dodge/Data/Item/Use.hs 56;" t UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t UseEquip src/Dodge/Data/Item/Use.hs 44;" C -UseExactly src/Dodge/Data/Item/Use.hs 156;" C +UseExactly src/Dodge/Data/Item/Use.hs 155;" C UseFocus src/Dodge/Data/Item/Use.hs 51;" t UseFromLocation src/Dodge/Data/Item/Use.hs 53;" C UseFromRoot src/Dodge/Data/Item/Use.hs 52;" C @@ -2020,7 +2019,7 @@ UseNothing src/Dodge/Data/Item/Use.hs 46;" C UseScope src/Dodge/Data/Item/Use.hs 47;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseTarget src/Dodge/Data/ActionPlan.hs 154;" C -UseUpTo src/Dodge/Data/Item/Use.hs 157;" C +UseUpTo src/Dodge/Data/Item/Use.hs 156;" C UseableAnytime src/Dodge/Data/Item/Use.hs 58;" C UsedInLink src/Dodge/Data/Room.hs 61;" C UsedOutLink src/Dodge/Data/Room.hs 56;" C @@ -2616,9 +2615,9 @@ _itUse src/Dodge/Data/Item.hs 42;" f _itUseCondition src/Dodge/Data/Item.hs 43;" f _itUseFocus src/Dodge/Data/Item.hs 44;" f _itemLocations src/Dodge/Data/LWorld.hs 100;" f -_izFac src/Dodge/Data/Item/Use.hs 191;" f -_izMax src/Dodge/Data/Item/Use.hs 189;" f -_izMin src/Dodge/Data/Item/Use.hs 190;" f +_izFac src/Dodge/Data/Item/Use.hs 190;" f +_izMax src/Dodge/Data/Item/Use.hs 188;" f +_izMin src/Dodge/Data/Item/Use.hs 189;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f _lClock src/Dodge/Data/LWorld.hs 142;" f _lTestInt src/Dodge/Data/LWorld.hs 144;" f @@ -2751,14 +2750,14 @@ _mvSpeed src/Dodge/Data/Creature/Misc.hs 39;" f _mvToPoint src/Dodge/Data/Creature.hs 89;" f _mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f _mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f -_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 167;" f -_mzAmmoSlot src/Dodge/Data/Item/Use.hs 164;" f -_mzEffect src/Dodge/Data/Item/Use.hs 166;" f -_mzFlareType src/Dodge/Data/Item/Use.hs 165;" f -_mzFrame src/Dodge/Data/Item/Use.hs 168;" f -_mzInaccuracy src/Dodge/Data/Item/Use.hs 163;" f -_mzPos src/Dodge/Data/Item/Use.hs 161;" f -_mzRot src/Dodge/Data/Item/Use.hs 162;" f +_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 166;" f +_mzAmmoSlot src/Dodge/Data/Item/Use.hs 163;" f +_mzEffect src/Dodge/Data/Item/Use.hs 165;" f +_mzFlareType src/Dodge/Data/Item/Use.hs 164;" f +_mzFrame src/Dodge/Data/Item/Use.hs 167;" f +_mzInaccuracy src/Dodge/Data/Item/Use.hs 162;" f +_mzPos src/Dodge/Data/Item/Use.hs 160;" f +_mzRot src/Dodge/Data/Item/Use.hs 161;" f _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f @@ -2768,10 +2767,10 @@ _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f -_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 143;" f -_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 142;" f -_nzPressure src/Dodge/Data/Item/Use.hs 141;" f -_nzWalkSpeed src/Dodge/Data/Item/Use.hs 144;" f +_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 142;" f +_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 141;" f +_nzPressure src/Dodge/Data/Item/Use.hs 140;" f +_nzWalkSpeed src/Dodge/Data/Item/Use.hs 143;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f _opDraw src/Dodge/Data/Wall.hs 41;" f @@ -3165,11 +3164,11 @@ _unST src/Dodge/Tree/Compose/Data.hs 12;" f _unTO src/Shader/Data.hs 59;" f _unputTerminal src/Dodge/Data/GenWorld.hs 36;" f _useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f -_useExactly src/Dodge/Data/Item/Use.hs 156;" f +_useExactly src/Dodge/Data/Item/Use.hs 155;" f _useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f _useSelf src/Dodge/Data/ActionPlan.hs 158;" f _useTarget src/Dodge/Data/ActionPlan.hs 155;" f -_useUpTo src/Dodge/Data/Item/Use.hs 157;" f +_useUpTo src/Dodge/Data/Item/Use.hs 156;" f _uvCanContinue src/Dodge/Data/Universe.hs 38;" f _uvConfig src/Dodge/Data/Universe.hs 36;" f _uvDebug src/Dodge/Data/Universe.hs 43;" f @@ -3326,7 +3325,7 @@ allHotkeys src/Dodge/Creature/YourControl.hs 60;" f allInvLocs src/Dodge/Item/Grammar.hs 225;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 44;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 92;" f amr src/Dodge/Item/Held/Rod.hs 44;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 74;" f @@ -3337,23 +3336,23 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f annoToRoomTree src/Dodge/Annotation.hs 17;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 243;" f -applyCME src/Dodge/HeldUse.hs 103;" f +applyCME src/Dodge/HeldUse.hs 105;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f applyEventIO src/Loop.hs 89;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f -applyInvLock src/Dodge/HeldUse.hs 118;" f +applyInvLock src/Dodge/HeldUse.hs 120;" f applyMagnetsToBul src/Dodge/Bullet.hs 36;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f applyPastDamages src/Dodge/Creature/State.hs 135;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPosition src/Sound.hs 110;" f -applyRecoil src/Dodge/HeldUse.hs 137;" f +applyRecoil src/Dodge/HeldUse.hs 139;" f applyResFactor src/Dodge/Data/Config.hs 108;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 79;" f -applySidePush src/Dodge/HeldUse.hs 144;" f -applySoundCME src/Dodge/HeldUse.hs 128;" f +applySidePush src/Dodge/HeldUse.hs 146;" f +applySoundCME src/Dodge/HeldUse.hs 130;" f applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 40;" f applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f @@ -3361,7 +3360,7 @@ applyToNode src/TreeHelp.hs 64;" f applyToRandomNode src/TreeHelp.hs 150;" f applyToSubforest src/TreeHelp.hs 77;" f applyToSubtree src/TreeHelp.hs 70;" f -applyTorqueCME src/Dodge/HeldUse.hs 155;" f +applyTorqueCME src/Dodge/HeldUse.hs 157;" f applyWorldConfig src/Dodge/Config/Update.hs 38;" f aquamarine src/Color.hs 23;" f arc src/Picture/Base.hs 287;" f @@ -3404,35 +3403,35 @@ autoDetector src/Dodge/Item/Weapon/Radar.hs 11;" f autoEffect src/Dodge/Item/Weapon/ExtraEffect.hs 18;" f autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f autoPistol src/Dodge/Item/Held/Stick.hs 47;" f -autoRifle src/Dodge/Item/Held/Cane.hs 68;" f +autoRifle src/Dodge/Item/Held/Cane.hs 69;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 162;" f axisInt src/Geometry/Intersect.hs 227;" f azure src/Color.hs 22;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backpackCombinations src/Dodge/Combine/Combinations.hs 26;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 93;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 141;" 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 233;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 280;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 382;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f bangStick src/Dodge/Item/Held/Stick.hs 17;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 343;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 390;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 253;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 300;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f basePCI src/Dodge/Item/Grammar.hs 110;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 256;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 340;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 323;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 303;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 387;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 370;" f baseShoulder src/Dodge/Creature/Picture.hs 131;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 230;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 225;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 277;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 272;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 28;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f @@ -3443,7 +3442,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 34;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineUpdate src/Dodge/Machine.hs 13;" f -basicMuzFlare src/Dodge/HeldUse.hs 254;" f +basicMuzFlare src/Dodge/HeldUse.hs 257;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 91;" f batteryPack src/Dodge/Item/Equipment.hs 55;" f @@ -3508,7 +3507,7 @@ bulletPayloadModule src/Dodge/Item/Scope.hs 44;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 121;" f bulletTargetingModule src/Dodge/Item/Scope.hs 41;" f bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f -burstRifle src/Dodge/Item/Held/Cane.hs 74;" f +burstRifle src/Dodge/Item/Held/Cane.hs 75;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 520;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f @@ -3696,6 +3695,7 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 42;" f crZoneSize src/Dodge/Zoning/Creature.hs 39;" f craftInfo src/Dodge/Item/Info.hs 123;" f +craftItemSPic src/Dodge/Item/Draw/SPic.hs 44;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 434;" f createArc src/Dodge/Tesla/Arc.hs 67;" f createBarrelSpark src/Dodge/Spark.hs 44;" f @@ -3816,7 +3816,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 462;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 328;" f defDamageMaterial src/Dodge/Material/Damage.hs 17;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f -defSPic src/Dodge/Item/Draw/SPic.hs 239;" f +defSPic src/Dodge/Item/Draw/SPic.hs 286;" f defaultAimMvType src/Dodge/Default/Creature.hs 121;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 9;" f defaultAimingCrit src/Dodge/Default/Creature.hs 130;" f @@ -3905,7 +3905,7 @@ destroyMounts src/Dodge/Block.hs 101;" f destroyProjectile src/Dodge/Projectile/Update.hs 63;" f detV src/Geometry/Vector.hs 93;" f detector src/Dodge/Item/Held/Utility.hs 41;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 389;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 436;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 178;" f determineProjectileTracking src/Dodge/HeldUse.hs 552;" f @@ -4185,7 +4185,7 @@ eqPosText src/Dodge/Equipment/Text.hs 5;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 76;" f equipAllocString src/Dodge/Render/HUD.hs 295;" f equipInfo src/Dodge/Item/Info.hs 96;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 64;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 112;" f equipPosition src/Dodge/Item/Draw.hs 30;" f equipSiteInfo src/Dodge/Item/Info.hs 207;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f @@ -4250,12 +4250,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 326;" f -flareCircleAt src/Dodge/HeldUse.hs 235;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 373;" f +flareCircleAt src/Dodge/HeldUse.hs 238;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 20;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 376;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 423;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f @@ -4292,7 +4292,7 @@ forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fpsText src/Dodge/Render/Picture.hs 47;" f -fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 57;" f +fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 105;" f frag src/Shader/Data.hs 102;" f freeShaderPointers' src/Shader.hs 37;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f @@ -4343,9 +4343,9 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 14;" f getDamageCoding src/Dodge/Terminal.hs 177;" f getDistortions src/Dodge/Render.hs 383;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 45;" f -getLaserColor src/Dodge/HeldUse.hs 251;" f -getLaserDamage src/Dodge/HeldUse.hs 248;" f -getLaserPhaseV src/Dodge/HeldUse.hs 245;" f +getLaserColor src/Dodge/HeldUse.hs 254;" f +getLaserDamage src/Dodge/HeldUse.hs 251;" f +getLaserPhaseV src/Dodge/HeldUse.hs 248;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMenuMouseContext src/Dodge/Update.hs 372;" f @@ -4426,7 +4426,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 215;" f hat src/Dodge/Item/Equipment.hs 133;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 139;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 379;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 426;" f headMap src/Dodge/DoubleTree.hs 170;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4441,7 +4441,7 @@ heldInfo src/Dodge/Item/Info.hs 47;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 78;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 26;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 31;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 167;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 215;" f heldPositionInfo src/Dodge/Item/Info.hs 194;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f @@ -4553,7 +4553,7 @@ invertIntMap src/Multiset.hs 67;" f invertInventoryToMap src/Dodge/Combine.hs 56;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 23;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f -isAmmoIntLink src/Dodge/HeldUse.hs 262;" f +isAmmoIntLink src/Dodge/HeldUse.hs 265;" f isAnimate src/Dodge/Creature/Test.hs 136;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 95;" f @@ -4628,7 +4628,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 30;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 68;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 56;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f -keyPic src/Dodge/Item/Draw/SPic.hs 395;" f +keyPic src/Dodge/Item/Draw/SPic.hs 442;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f lConnect src/Dodge/Render/Connectors.hs 42;" f @@ -4640,7 +4640,7 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 111;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 349;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 396;" f lasRayAt src/Dodge/HeldUse.hs 366;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 104;" f lasTunnel src/Dodge/Room/LasTurret.hs 123;" f @@ -4651,7 +4651,7 @@ laserLinkTest src/Dodge/Item/Grammar.hs 119;" f lastMap src/Dodge/DoubleTree.hs 174;" f launcher src/Dodge/Item/Held/Launcher.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f -launcherPic src/Dodge/Item/Draw/SPic.hs 329;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 376;" f launcherX src/Dodge/Item/Held/Launcher.hs 29;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 72;" f @@ -4668,7 +4668,7 @@ left src/DoubleStack.hs 16;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 146;" f leftPad src/Padding.hs 14;" f leftRightCombine src/Dodge/Item/Grammar.hs 160;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 413;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 460;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 43;" f @@ -4703,7 +4703,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 380;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f -loadMuzzle src/Dodge/HeldUse.hs 172;" f +loadMuzzle src/Dodge/HeldUse.hs 174;" f loadSaveSlot src/Dodge/Save.hs 74;" f loadSeed src/Dodge/LoadSeed.hs 7;" f loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f @@ -4784,7 +4784,7 @@ makeFragBullets src/Dodge/Bullet.hs 107;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f makeGrid src/Grid.hs 46;" f makeIntInterval src/Dodge/Zoning/Base.hs 33;" f -makeMuzzleFlare src/Dodge/HeldUse.hs 193;" f +makeMuzzleFlare src/Dodge/HeldUse.hs 196;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f @@ -4882,9 +4882,9 @@ minCrIXOn src/Dodge/Zoning/Creature.hs 45;" f minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 334;" f miniGunCrit src/Dodge/Creature.hs 62;" f -miniGunX src/Dodge/Item/Held/Cane.hs 83;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 304;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 299;" f +miniGunX src/Dodge/Item/Held/Cane.hs 88;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 351;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 346;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f miniTree2 src/Dodge/Room/Room.hs 106;" f minimumOn src/FoldlHelp.hs 12;" f @@ -4936,7 +4936,7 @@ multiArrow src/Picture/Composite.hs 11;" f multiLookupTrie src/SimpleTrie.hs 34;" f multiLookupTrieI src/SimpleTrie.hs 43;" f muout src/Dodge/RoomLink.hs 129;" f -muzFlareAt src/Dodge/HeldUse.hs 221;" f +muzFlareAt src/Dodge/HeldUse.hs 224;" 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 @@ -5384,7 +5384,7 @@ rezInvBox src/Dodge/Room/RezBox.hs 134;" f rezText src/Dodge/Story.hs 4;" f rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f -rifle src/Dodge/Item/Held/Cane.hs 52;" f +rifle src/Dodge/Item/Held/Cane.hs 53;" f right src/DoubleStack.hs 16;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 153;" f rightPad src/Padding.hs 22;" f @@ -5589,7 +5589,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxSize src/Shape/Parameters.hs 10;" f shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 242;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 289;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 52;" f shellCollisionEffect src/Dodge/Projectile/Update.hs 48;" f @@ -5752,7 +5752,7 @@ ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 98;" f stackPicturesAtOff src/Dodge/Render/List.hs 101;" f stackText src/Picture/Base.hs 188;" f -stackedInventory src/Dodge/Creature.hs 283;" f +stackedInventory src/Dodge/Creature.hs 281;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f startDrag src/Dodge/Update/Input/InGame.hs 256;" f @@ -5834,11 +5834,11 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 78;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 346;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 393;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f -testInventory src/Dodge/Creature.hs 264;" f +testInventory src/Dodge/Creature.hs 262;" f testStringInit src/Dodge/TestString.hs 28;" f text src/Picture/Base.hs 193;" f textGrad src/Picture/Text.hs 5;" f @@ -5905,14 +5905,14 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f topTestPart src/Dodge/TestString.hs 69;" f torch src/Dodge/Item/Held/Utility.hs 33;" f -torchShape src/Dodge/Item/Draw/SPic.hs 211;" f +torchShape src/Dodge/Item/Draw/SPic.hs 258;" f torqueCr src/Dodge/WorldEffect.hs 63;" f torso src/Dodge/Creature/Picture.hs 105;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 335;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 373;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 420;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -6152,7 +6152,7 @@ useE src/Dodge/Euse.hs 34;" f useGasParams src/Dodge/HeldUse.hs 479;" f useHotkey src/Dodge/Creature/YourControl.hs 54;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f -useLoadedAmmo src/Dodge/HeldUse.hs 266;" f +useLoadedAmmo src/Dodge/HeldUse.hs 269;" f useMagShield src/Dodge/Euse.hs 45;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 7;" f @@ -6199,7 +6199,7 @@ visibleWalls src/Dodge/Base/Collide.hs 123;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 30;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 287;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 334;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f walkNozzle src/Dodge/HeldUse.hs 303;" f walkableNodeNear src/Dodge/Path.hs 48;" f