From e3c6ef1398137a6992c708d0b1229e4f0c689fd3 Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 10 Jul 2025 10:31:04 +0100 Subject: [PATCH] Allow for laser to be attached to transformer to create weapon --- src/Dodge/Creature/Impulse/UseItem.hs | 8 ++- src/Dodge/Data/ComposedItem.hs | 1 + src/Dodge/Item/Grammar.hs | 10 +--- src/Dodge/Item/InventoryColor.hs | 1 + tags | 84 +++++++++++++-------------- 5 files changed, 49 insertions(+), 55 deletions(-) diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 02d031cd8..0cd6ba3a6 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -20,13 +20,15 @@ useItem invid pt w = fmap (worldEventFlags . at InventoryChange ?~ ()) $ do cr <- w ^? cWorld . lWorld . creatures . ix 0 itmloc <- allInvLocs (_crInv cr) ^? ix invid . _2 useItemLoc cr itmloc pt w --- let usedloc = chooseUseLocation itmloc --- useItemLoc cr usedloc pt w useItemLoc :: Creature -> LocationLDT ItemLink OItem -> PressType -> World -> Maybe World useItemLoc cr loc pt w | HeldPlatformSF <- sf - , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsRoot + , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsAttached + , Aiming{} <- cr ^. crStance . posture = + return $ gadgetEffect pt loc cr w + | LaserWeaponSF <- sf + , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsAttached , Aiming{} <- cr ^. crStance . posture = return $ gadgetEffect pt loc cr w | GadgetPlatformSF <- sf = diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 157c48e93..05a40079f 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -62,6 +62,7 @@ data ItemStructuralFunction | GrenadeHitEffectSF | ToggleSF | MapperSF + | LaserWeaponSF deriving (Eq, Ord, Show, Read) type CItem = (Item, ItemStructuralFunction) diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 5d5f026df..4f6bd68e9 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -56,6 +56,7 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of ( getAmmoLinks itm , [(ARHUDSF,SFLink ARHUDSF),(TriggerSF, TriggerLink),(MapperSF,SFLink MapperSF)] ) + (CRAFT TRANSFORMER, _) -> ([],[(LaserWeaponSF,SFLink LaserWeaponSF)]) (MAPPER, _) -> ( [] , [(ARHUDSF,SFLink ARHUDSF)] @@ -127,7 +128,6 @@ itemToFunction itm = case itm ^. itType of HELD LASER -> WeaponTargetingSF HELD{} -> case itUseCondition itm of UseableWhenAimed -> HeldPlatformSF - --Just MustBeHeld -> UnloadedWeaponSF _ -> GadgetPlatformSF _ | Just amtype <- magAmmoType itm-- ^? itConsumables . magType @@ -160,6 +160,7 @@ treeToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of ATTACH GYROSCOPE -> S.singleton ProjectileStabiliserSF HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF HELD BURSTRIFLE -> S.singleton UnderBarrelPlatformSF + HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF] _ -> S.singleton (ldt ^. ldtValue . _2) baseCI :: Item -> CItem @@ -215,13 +216,6 @@ joinItemsInList f = fst . h . ([],) h ( z : zs, y : ys) = case f y z of Nothing -> h ( y : z : zs,ys) Just w -> h ( zs,w : ys) ---joinItemsInList f xs = snd $ h (xs, []) --- where --- h ([], zs) = ([], zs) --- h (y : ys, []) = h (ys, [y]) --- h (y : ys, z : zs) = case f y z of --- Nothing -> h (ys, y : z : zs) --- Just w -> h (w : ys, zs) -- this puts the first elements in the intmap at the end of the list invLDT :: IM.IntMap Item -> [LDTree ItemLink CItem] diff --git a/src/Dodge/Item/InventoryColor.hs b/src/Dodge/Item/InventoryColor.hs index ba2d5a48f..42d2e4f57 100644 --- a/src/Dodge/Item/InventoryColor.hs +++ b/src/Dodge/Item/InventoryColor.hs @@ -35,6 +35,7 @@ itemInvColor ci = case ci ^. _2 of ProjectileStabiliserSF -> white UnderBarrelPlatformSF -> white UnderBarrelSlotSF -> white + LaserWeaponSF -> white --ammoTypeColor :: AmmoType -> Color --ammoTypeColor = \case diff --git a/tags b/tags index 4f48b16bb..fdd1839e5 100644 --- a/tags +++ b/tags @@ -249,7 +249,7 @@ CHARTREUSE src/Color/Data.hs 25;" C CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 111;" C CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C -CItem src/Dodge/Data/ComposedItem.hs 67;" t +CItem src/Dodge/Data/ComposedItem.hs 68;" 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 @@ -778,7 +778,7 @@ GoesOnLegs src/Dodge/Data/Equipment/Misc.hs 16;" C GoesOnWrist src/Dodge/Data/Equipment/Misc.hs 15;" C Government src/Dodge/Data/Scenario.hs 43;" C GovernmentScope src/Dodge/Data/Scenario.hs 49;" t -Grammar src/Dodge/Item/Grammar.hs 1;" m +Grammar src/Dodge/Item/Grammar.hs 2;" m Graph src/Dodge/Combine/Graph.hs 3;" m Graph src/Dodge/Graph.hs 2;" m GraphHelp src/GraphHelp.hs 1;" m @@ -977,7 +977,7 @@ Kill src/Dodge/Data/ActionPlan.hs 198;" C LASER src/Dodge/Data/Item/Combine.hs 168;" C LDT src/Dodge/Data/DoubleTree.hs 34;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 29;" C -LDTComb src/Dodge/Item/Grammar.hs 167;" t +LDTComb src/Dodge/Item/Grammar.hs 169;" t LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 27;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 28;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 25;" C @@ -1006,6 +1006,7 @@ LasBeamCombine src/Dodge/Data/Beam.hs 40;" C LasGunFlare src/Dodge/Data/Muzzle.hs 27;" C LasSound src/Dodge/Data/SoundOrigin.hs 28;" C LasTurret src/Dodge/Room/LasTurret.hs 1;" m +LasWeaponSF src/Dodge/Data/ComposedItem.hs 65;" C 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 @@ -1333,7 +1334,7 @@ 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 -OItem src/Dodge/Data/ComposedItem.hs 69;" t +OItem src/Dodge/Data/ComposedItem.hs 70;" t ORANGE src/Color/Data.hs 26;" C ObButton src/Dodge/Data/ObjectType.hs 17;" C ObCreature src/Dodge/Data/ObjectType.hs 13;" C @@ -3389,7 +3390,7 @@ applyGravityPU src/Dodge/Projectile/Update.hs 56;" f applyIndividualDamage src/Dodge/Creature/Damage.hs 16;" f applyInvLock src/Dodge/HeldUse.hs 463;" f applyMagnetsToBul src/Dodge/Bullet.hs 30;" f -applyPastDamages src/Dodge/Creature/State.hs 134;" f +applyPastDamages src/Dodge/Creature/State.hs 132;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 22;" f applyPosition src/Sound.hs 111;" f applyRecoil src/Dodge/HeldUse.hs 495;" f @@ -3467,7 +3468,7 @@ barrel src/Dodge/Creature/Inanimate.hs 17;" f barrelShape src/Dodge/Render/ShapePicture.hs 46;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 405;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCI src/Dodge/Item/Grammar.hs 164;" f +baseCI src/Dodge/Item/Grammar.hs 166;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 311;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f @@ -3586,7 +3587,6 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 289;" f centroid src/Geometry/Polygon.hs 130;" f centroidNum src/Geometry/Polygon.hs 133;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f -chainLinkOrientation src/Dodge/Creature/State.hs 306;" f chainPairs src/Geometry.hs 359;" f changeSwapOther src/Dodge/Inventory.hs 144;" f changeSwapSel src/Dodge/Inventory.hs 137;" f @@ -3601,7 +3601,7 @@ chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f 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 79;" f +checkDeath src/Dodge/Creature/State.hs 77;" f checkEndGame src/Dodge/Update.hs 717;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -3718,16 +3718,16 @@ contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f convexHull src/Geometry/Polygon.hs 104;" f convexHullSafe src/Geometry/Polygon.hs 111;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f -coolMachinePistol src/Dodge/Creature/State.hs 185;" f -coolMinigun src/Dodge/Creature/State.hs 178;" f +coolMachinePistol src/Dodge/Creature/State.hs 183;" f +coolMinigun src/Dodge/Creature/State.hs 176;" f copier src/Dodge/Item/Scope.hs 88;" f -copierItemUpdate src/Dodge/Creature/State.hs 214;" f +copierItemUpdate src/Dodge/Creature/State.hs 212;" f copierItemUpdate src/Dodge/ItEffect.hs 37;" f copyItemToFloor src/Dodge/FloorItem.hs 18;" f copyItemToFloorID src/Dodge/FloorItem.hs 22;" f corDoor src/Dodge/Room/Room.hs 376;" f cornerList src/Preload/Render.hs 195;" f -corpseOrGib src/Dodge/Creature/State.hs 108;" f +corpseOrGib src/Dodge/Creature/State.hs 106;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f @@ -3768,7 +3768,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 809;" f crStratConMatches src/Dodge/Creature/Test.hs 77;" f crStrength src/Dodge/Creature/Statistics.hs 24;" f -crUpdate src/Dodge/Creature/State.hs 65;" f +crUpdate src/Dodge/Creature/State.hs 64;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 42;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f @@ -4015,7 +4015,7 @@ dmType src/Dodge/Damage.hs 38;" f doAfterPlacement src/Dodge/Layout.hs 86;" f doAfterPlacements src/Dodge/Layout.hs 83;" f doAimTwist src/Dodge/Creature/YourControl.hs 140;" f -doAnyEquipmentEffect src/Dodge/Creature/State.hs 224;" f +doAnyEquipmentEffect src/Dodge/Creature/State.hs 222;" f doArcStep src/Dodge/Tesla/Arc.hs 135;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBlBl src/Dodge/BlBl.hs 5;" f @@ -4031,7 +4031,7 @@ doCrImp src/Dodge/CreatureEffect.hs 28;" f doCrWdAc src/Dodge/CreatureEffect.hs 77;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f -doDamage src/Dodge/Creature/State.hs 130;" f +doDamage src/Dodge/Creature/State.hs 128;" f doDeathToggle src/Dodge/WorldEffect.hs 90;" f doDeathTriggers src/Dodge/WorldEffect.hs 85;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f @@ -4112,7 +4112,7 @@ doublePair src/Geometry.hs 161;" f doublePairSet src/Geometry.hs 165;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 95;" f doubleV2 src/Geometry.hs 168;" f -drawARHUD src/Dodge/Creature/State.hs 328;" f +drawARHUD src/Dodge/Creature/State.hs 285;" f drawAimSweep src/Dodge/Render/Picture.hs 271;" f drawAllShadows src/Dodge/Shadows.hs 5;" f drawBaseMachine src/Dodge/Machine/Draw.hs 57;" f @@ -4239,7 +4239,7 @@ drawWlIDs src/Dodge/Debug/Picture.hs 367;" f drawZoneCol src/Dodge/Debug/Picture.hs 142;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f -dropAll src/Dodge/Creature/State.hs 127;" f +dropAll src/Dodge/Creature/State.hs 125;" f dropExcept src/Dodge/Creature/Action.hs 166;" f dropInventoryPath src/Dodge/HeldUse.hs 1373;" f dropItem src/Dodge/Creature/Action.hs 172;" f @@ -4323,8 +4323,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 73;" f -extraWeaponLinks src/Dodge/Item/Grammar.hs 98;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 107;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 100;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 109;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f @@ -4388,7 +4388,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 99;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 547;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f -foldCr src/Dodge/Creature/State.hs 51;" f +foldCr src/Dodge/Creature/State.hs 50;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 110;" f followImpulse src/Dodge/Creature/Impulse.hs 38;" f @@ -4443,11 +4443,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 114;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 116;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f getAttachedSFLink src/Dodge/HeldUse.hs 802;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 93;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 95;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 171;" f getBulletType src/Dodge/HeldUse.hs 927;" f @@ -4668,10 +4668,10 @@ invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f invHead src/Dodge/Render/HUD.hs 405;" f -invItemLocUpdate src/Dodge/Creature/State.hs 155;" f +invItemLocUpdate src/Dodge/Creature/State.hs 153;" f invLDT src/Dodge/Item/Grammar.hs 221;" f invLDT' src/Dodge/Item/Grammar.hs 226;" f -invRootItemEffs src/Dodge/Creature/State.hs 148;" f +invRootItemEffs src/Dodge/Creature/State.hs 146;" f invRootMap src/Dodge/Item/Grammar.hs 233;" f invRootTrees src/Dodge/Item/Grammar.hs 254;" f invRootTrees' src/Dodge/Item/Grammar.hs 260;" f @@ -4751,8 +4751,8 @@ itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 120;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f itemSidePush src/Dodge/HeldUse.hs 419;" f itemString src/Dodge/Item/Display.hs 56;" f -itemToBreakLists src/Dodge/Item/Grammar.hs 38;" f -itemToFunction src/Dodge/Item/Grammar.hs 120;" f +itemToBreakLists src/Dodge/Item/Grammar.hs 39;" f +itemToFunction src/Dodge/Item/Grammar.hs 122;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f itemTriggerType src/Dodge/BaseTriggerType.hs 15;" f itemWeight src/Dodge/Creature/Statistics.hs 66;" f @@ -4815,7 +4815,7 @@ ldtToIndentList src/Dodge/DoubleTree.hs 187;" f ldtToLoc src/Dodge/DoubleTree.hs 233;" f left src/DoubleStack.hs 16;" f leftChildList src/Dodge/Item/Grammar.hs 185;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 169;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 171;" f leftPad src/Padding.hs 15;" f leftRightCombine src/Dodge/Item/Grammar.hs 197;" f legsSPic src/Dodge/Item/Draw/SPic.hs 475;" f @@ -5294,7 +5294,7 @@ pointerToItemLocation src/Dodge/Item/Location.hs 14;" f pointerYourRootItem src/Dodge/Item/Location.hs 31;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 25;" f pointsToPoly src/Geometry/ConvexPoly.hs 39;" f -poisonSPic src/Dodge/Creature/State.hs 121;" f +poisonSPic src/Dodge/Creature/State.hs 119;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 506;" f pokeArrayOff src/Shader/Poke.hs 517;" f @@ -5557,7 +5557,7 @@ 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 191;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 177;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 178;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5650,7 +5650,7 @@ scaleSH src/Shape.hs 269;" f scalp src/Dodge/Creature/Picture.hs 90;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 95;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/State.hs 118;" f +scorchSPic src/Dodge/Creature/State.hs 116;" f screenBox src/Dodge/Base/Window.hs 53;" f screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f @@ -5723,7 +5723,7 @@ setOldPos src/Dodge/Update.hs 475;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f -setRBCreatureTargeting src/Dodge/Creature/State.hs 482;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 384;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 334;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 290;" f @@ -5738,7 +5738,7 @@ setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewport src/Dodge/Render.hs 416;" f setVol src/Dodge/Config/Update.hs 30;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f -setWristShieldPos src/Dodge/Euse.hs 34;" f +setWristShieldPos src/Dodge/Euse.hs 35;" f setupConLoop src/Loop.hs 102;" f setupConLoop' src/Loop.hs 192;" f setupEBO src/Shader/Compile.hs 188;" f @@ -5790,9 +5790,8 @@ shiftRoomBy src/Dodge/Room/Link.hs 37;" f shiftRoomShiftBy src/Dodge/Room/Link.hs 81;" f shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f shiftedGrid src/Grid.hs 25;" f -shineTargetLaser src/Dodge/Creature/State.hs 336;" f -shineTorch src/Dodge/Creature/State.hs 413;" f -shineTorch' src/Dodge/Creature/State.hs 430;" f +shineTargetLaser src/Dodge/Creature/State.hs 293;" f +shineTorch src/Dodge/Creature/State.hs 332;" f shootBullet src/Dodge/HeldUse.hs 990;" f shootBullets src/Dodge/HeldUse.hs 980;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f @@ -5963,7 +5962,6 @@ strideRot src/Dodge/Item/HeldOffset.hs 75;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -structureToPotentialFunction src/Dodge/Item/Grammar.hs 155;" f subInvX src/Dodge/ListDisplayParams.hs 48;" f subMap src/TreeHelp.hs 118;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f @@ -6149,6 +6147,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 156;" 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 @@ -6157,7 +6156,7 @@ triggerSwitchSPicLight src/Dodge/Placement/Instance/Button.hs 31;" f truncFaces src/Polyhedra/Geodesic.hs 53;" f truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f -tryAttachItems src/Dodge/Item/Grammar.hs 34;" f +tryAttachItems src/Dodge/Item/Grammar.hs 35;" f tryClickUse src/Dodge/Creature/YourControl.hs 221;" f tryCombine src/Dodge/Update/Input/InGame.hs 526;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 125;" f @@ -6173,8 +6172,8 @@ tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f trySeedFromClipboard src/Dodge/Menu.hs 91;" f tryShellBounce src/Dodge/Projectile/Update.hs 103;" f trySpinByCID src/Dodge/Projectile/Update.hs 177;" f -trySynthBullet src/Dodge/Creature/State.hs 237;" f -tryUseParent src/Dodge/Creature/State.hs 231;" f +trySynthBullet src/Dodge/Creature/State.hs 232;" f +tryUseParent src/Dodge/Creature/State.hs 226;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turret src/Dodge/Placement/Instance/Turret.hs 35;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 22;" f @@ -6214,7 +6213,6 @@ updateAimPos src/Dodge/Update.hs 308;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla/Arc.hs 100;" f -updateAttachedItems src/Dodge/Creature/State.hs 296;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 453;" f updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f @@ -6252,7 +6250,6 @@ 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 726;" f -updateHeldRootItem src/Dodge/Creature/State.hs 290;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 510;" f updateIMl' src/Dodge/Update.hs 515;" f @@ -6260,8 +6257,7 @@ 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 updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f -updateItemTargeting src/Dodge/Creature/State.hs 451;" f -updateItemWithOrientation src/Dodge/Creature/State.hs 311;" f +updateItemTargeting src/Dodge/Creature/State.hs 353;" f 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 @@ -6351,7 +6347,7 @@ useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLoadedAmmo src/Dodge/HeldUse.hs 760;" f -useMagShield src/Dodge/Euse.hs 26;" f +useMagShield src/Dodge/Euse.hs 27;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 18;" f useRewindGun src/Dodge/HeldUse.hs 1364;" f