diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 20cbe5eab..7af9cebe1 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -293,7 +293,8 @@ drawARHUD (LocLDT con _) w = fromMaybe w $ do shineTargetLaser :: Creature -> LocationLDT ItemLink OItem -> World -> World shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do guard (crIsAiming cr) - (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) +-- (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) + (_, mag) <- find (isammolink . (^. _2 . ldtValue . _2)) (itmtree ^. ldtLeft) i <- mag ^. ldtValue . _1 . itConsumables guard $ i >= x maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID @@ -319,7 +320,7 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d itmtree = loc ^. locLDT (p, q) = o `Q.comp` (V3 5 0 0, Q.qID) x = 1 - isammolink AmmoInLink{} = True + isammolink AmmoMagSF{} = True isammolink _ = False pos = _crPos cr + xyV3 (rotate3 cdir p) cdir = _crDir cr @@ -331,7 +332,7 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d shineTorch :: Creature -> LocationLDT ItemLink OItem -> World -> World shineTorch cr loc = fromMaybe id $ do - (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) + (_, mag) <- find (isammolink . (^. _2 . ldtValue . _2)) (itmtree ^. ldtLeft) i <- mag ^. ldtValue . _1 . itConsumables guard $ crIsAiming cr guard $ i >= x @@ -343,7 +344,7 @@ shineTorch cr loc = fromMaybe id $ do itmtree = loc ^. locLDT (p, q) = locOrient (locLDTToLocDT loc) cr x = 10 - isammolink AmmoInLink{} = True + isammolink AmmoMagSF{} = True isammolink _ = False pos = _crPos cr `v2z` 0 + rotate3 cdir (p + Q.rotate q (V3 8 0 1.5)) cdir = _crDir cr diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 962f40aba..af9d74812 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -46,7 +46,7 @@ data ItemStructuralFunction | IntroScanSF | TriggerSF | ARHUDSF - | AmmoMagSF AmmoType + | AmmoMagSF Int AmmoType | RemoteScreenSF | JoystickSF | RemoteDetonatorSF diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index d79aed4a8..f1a7bbeac 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -99,7 +99,7 @@ hammerCheck f pt loc cr w = case itemTriggerType loc of & randGen .~ gen HammerTrigger t | w ^. cWorld . lWorld . lClock - t > timelastused - , isNothing $ lookup MakeAutoLink (tree ^. ldtRight) +-- , isNothing $ lookup MakeAutoLink (tree ^. ldtRight) , pt == InitialPress -> f loc cr w AutoTrigger t @@ -675,7 +675,7 @@ loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do -- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame let as = _mzAmmoSlot mz amamount = _mzAmmoPerShot mz - (i, (_, mag)) <- findWithIx (isAmmoIntLink as . fst) l + (i, (_, mag)) <- findWithIx (isAmmoIntLink as . (^. _2 . ldtValue . _2)) l availableammo <- mag ^. ldtValue . _1 . itConsumables let usedammo = case amamount of UseUpTo x -> min x availableammo @@ -754,8 +754,8 @@ basicMuzFlare pos dir = . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir -isAmmoIntLink :: Int -> ItemLink -> Bool -isAmmoIntLink i (AmmoInLink j _) = i == j +isAmmoIntLink :: Int -> ItemStructuralFunction -> Bool +isAmmoIntLink i (AmmoMagSF j _) = i == j isAmmoIntLink _ _ = False useLoadedAmmo :: diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 25eb88882..428edf8fb 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -57,13 +57,22 @@ itemToBreakLists :: Item -> ItemStructuralFunction -> ([(ItemStructuralFunction, ItemLink)], [(ItemStructuralFunction, ItemLink)]) -itemToBreakLists itm itmf = case (itm ^. itType, itmf) of +itemToBreakLists itm itmf = (fmap f l, fmap f r) + where + f x = (x, SFLink x) + (l,r) = itemToBreakLists' itm itmf + +itemToBreakLists' :: + Item -> + ItemStructuralFunction -> + ([(ItemStructuralFunction)], [(ItemStructuralFunction)]) +itemToBreakLists' itm itmf = case (itm ^. itType, itmf) of (HELD TORCH, _) -> (getAmmoLinks itm, []) - (ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF, UnderBarrelPlatformLink)], []) + (ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF)], []) (_, HeldPlatformSF) -> ( getAmmoLinks itm <> extraWeaponLinksBelow itm - , [(WeaponTargetingSF, WeaponTargetingLink), (WeaponScopeSF, WeaponScopeLink)] + , [(WeaponTargetingSF), (WeaponScopeSF)] <> getAutoSpringLinks itm <> extraWeaponLinks itm ) @@ -71,69 +80,69 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of ( getAmmoLinks itm,[]) (DETECTOR {}, _) -> ( getAmmoLinks itm - , [(ARHUDSF,SFLink ARHUDSF),(TriggerSF, TriggerLink),(MapperSF,SFLink MapperSF)] + , [(ARHUDSF),(TriggerSF),(MapperSF)] ) - (CRAFT TRANSFORMER, _) -> ([],[(LaserWeaponSF,SFLink LaserWeaponSF)]) + (CRAFT TRANSFORMER, _) -> ([],[(LaserWeaponSF)]) (MAPPER, _) -> ( [] - , [(ARHUDSF,SFLink ARHUDSF)] + , [(ARHUDSF)] ) (_, GadgetPlatformSF) -> ( getAmmoLinks itm - , [(TriggerSF, TriggerLink), (WeaponTargetingSF, WeaponTargetingLink), (WeaponScopeSF, WeaponScopeLink)] + , [(TriggerSF), (WeaponTargetingSF), (WeaponScopeSF)] ) (_, AmmoMagSF{}) -> fromMaybe ([], []) $ do atype <- magAmmoType itm let screenanddet = case atype of LauncherAmmo -> - [ (RemoteScreenSF, RemoteScreenLink) - , (RemoteDetonatorSF, RemoteDetonatorLink) + [ (RemoteScreenSF) + , (RemoteDetonatorSF) ] _ -> [] return - ( [ (AmmoModifierSF atype, AmmoModLink) - , (AmmoTargetingSF atype, AmmoTargetingLink) - , (AmmoPayloadSF atype, AmmoPayloadLink) - , (AmmoEffectSF atype, AmmoEffectLink) - , (SmokeReducerSF, SmokeReducerLink) + ( [ (AmmoModifierSF atype) + , (AmmoTargetingSF atype) + , (AmmoPayloadSF atype) + , (AmmoEffectSF atype) + , (SmokeReducerSF) ] <> screenanddet , [] ) (_, RemoteScreenSF) -> - ( [(JoystickSF, JoystickLink)] + ( [(JoystickSF)] , [] ) - (_, WeaponTargetingSF) -> (getAmmoLinks itm ++ [(ARHUDSF, SFLink ARHUDSF)], []) + (_, WeaponTargetingSF) -> (getAmmoLinks itm ++ [(ARHUDSF)], []) (ATTACH BULLETSYNTH, _) -> - ([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)], []) + ([(AmmoMagSF 0 ElectricalAmmo)], []) _ -> ([], []) -getAutoSpringLinks :: Item -> [(ItemStructuralFunction, ItemLink)] +getAutoSpringLinks :: Item -> [(ItemStructuralFunction)] getAutoSpringLinks itm = case baseItemTriggerType itm of - HammerTrigger _ -> [(MakeAutoSF, MakeAutoLink)] + HammerTrigger _ -> [(MakeAutoSF)] _ -> [] -extraWeaponLinks :: Item -> [(ItemStructuralFunction, ItemLink)] +extraWeaponLinks :: Item -> [(ItemStructuralFunction)] extraWeaponLinks itm = case itm ^. itType of - HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF,GrenadeHitEffectLink)] + HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF)] HELD RLAUNCHER -> launcherlinks HELD RLAUNCHERX{} -> launcherlinks _ -> [] where - launcherlinks = [(ProjectileStabiliserSF,ProjectileStabiliserLink)] + launcherlinks = [(ProjectileStabiliserSF)] -extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, ItemLink)] +extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction)] extraWeaponLinksBelow itm -- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance | TwoHandUnder <- itemBaseStance itm - = [(UnderBarrelSlotSF,UnderBarrelSlotLink)] + = [(UnderBarrelSlotSF)] | otherwise = [] -getAmmoLinks :: Item -> [(ItemStructuralFunction, ItemLink)] +getAmmoLinks :: Item -> [(ItemStructuralFunction)] getAmmoLinks itm = map - (\(i, a) -> (AmmoMagSF a, AmmoInLink i a)) + (\(i, a) -> (AmmoMagSF i a)) (IM.toList $ itemAmmoSlots itm) itemToFunction :: Item -> ItemStructuralFunction @@ -149,8 +158,8 @@ itemToFunction itm = case itm ^. itType of _ | Just amtype <- magAmmoType itm-- ^? itConsumables . magType , Just _ <- itm ^? itLocation . ilEquipSite . _Just -> - AmmoMagSF amtype - AMMOMAG{} -> maybe NoSF AmmoMagSF $ magAmmoType itm -- ^? itConsumables . magType + AmmoMagSF 0 amtype + AMMOMAG{} -> maybe NoSF (AmmoMagSF 0) $ magAmmoType itm -- ^? itConsumables . magType ATTACH REMOTESCREEN -> RemoteScreenSF ATTACH JOYSTICK -> JoystickSF ATTACH REMOTEDETONATOR -> RemoteDetonatorSF @@ -178,6 +187,8 @@ treeToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF HELD BURSTRIFLE -> S.singleton UnderBarrelPlatformSF HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF] + -- following limits items to ten ammo slots + _ | AmmoMagSF _ x <- ldt ^. ldtValue . _2 -> S.fromList [AmmoMagSF i x | i <- [0..9]] _ -> S.singleton (ldt ^. ldtValue . _2) baseCI :: Item -> CItem diff --git a/tags b/tags index ffc8bcb86..617ae8296 100644 --- a/tags +++ b/tags @@ -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 186;" t +LDTComb src/Dodge/Item/Grammar.hs 197;" 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 @@ -3366,8 +3366,8 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f -allInvLocs src/Dodge/Item/Grammar.hs 289;" f -allInvLocs' src/Dodge/Item/Grammar.hs 310;" f +allInvLocs src/Dodge/Item/Grammar.hs 300;" f +allInvLocs' src/Dodge/Item/Grammar.hs 321;" f allVisibleWalls src/Dodge/Base/Collide.hs 132;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f @@ -3468,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 183;" f +baseCI src/Dodge/Item/Grammar.hs 194;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 311;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f @@ -3699,7 +3699,7 @@ commandColor src/Dodge/Terminal.hs 132;" f commandFutureLines src/Dodge/Terminal.hs 256;" f commandsCommand src/Dodge/Terminal.hs 93;" f commonPrefix src/Dodge/Debug/Terminal.hs 146;" f -comp src/Quaternion.hs 63;" f +comp src/Quaternion.hs 64;" f compactDraw src/Dodge/LevelGen.hs 91;" f compactDraw' src/Dodge/LevelGen.hs 102;" f compactDrawTree src/Dodge/LevelGen.hs 85;" f @@ -4326,8 +4326,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 117;" f -extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 126;" f +extraWeaponLinks src/Dodge/Item/Grammar.hs 126;" f +extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 135;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f @@ -4446,11 +4446,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 133;" f +getAmmoLinks src/Dodge/Item/Grammar.hs 142;" f getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f getAttachedSFLink src/Dodge/HeldUse.hs 803;" f -getAutoSpringLinks src/Dodge/Item/Grammar.hs 112;" f +getAutoSpringLinks src/Dodge/Item/Grammar.hs 121;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 171;" f getBulletType src/Dodge/HeldUse.hs 928;" f @@ -4532,7 +4532,7 @@ halfHeight src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f haltSound src/Dodge/SoundLogic.hs 38;" f hammerCheck src/Dodge/HeldUse.hs 64;" f -handHandleOrient src/Dodge/Item/HeldOffset.hs 67;" f +handHandleOrient src/Dodge/Item/HeldOffset.hs 62;" f handOrient src/Dodge/Item/HeldOffset.hs 38;" f handleEvent src/Dodge/Event.hs 27;" f handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f @@ -4541,7 +4541,7 @@ handleMouseButtonEvent src/Dodge/Event/Input.hs 63;" f handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f handleMouseWheelEvent src/Dodge/Event/Input.hs 58;" f handleOrient src/Dodge/Item/HeldOffset.hs 32;" f -handlePos src/Dodge/Item/HeldOffset.hs 89;" f +handlePos src/Dodge/Item/HeldOffset.hs 84;" f handleResizeEvent src/Dodge/Event.hs 53;" f handleTextInput src/Dodge/Event/Input.hs 18;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f @@ -4566,14 +4566,13 @@ heldAimStance src/Dodge/Item/AimStance.hs 23;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f heldEffect src/Dodge/HeldUse.hs 61;" f heldEffectMuzzles src/Dodge/HeldUse.hs 128;" f -heldHandlePos src/Dodge/Item/HeldOffset.hs 94;" f +heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f heldInfo src/Dodge/Item/Info.hs 90;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f heldItemInvLock src/Dodge/HeldUse.hs 479;" f heldItemMuzVel src/Dodge/HeldUse.hs 1025;" f heldItemMuzzles src/Dodge/HeldUse.hs 157;" f -heldItemOffset src/Dodge/Item/HeldOffset.hs 62;" f heldItemRifling src/Dodge/HeldUse.hs 1069;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f @@ -4666,19 +4665,19 @@ interweave src/Justify.hs 17;" f introScan src/Dodge/Item/Scope.hs 57;" f introScanValue src/Dodge/Inventory/SelectionList.hs 79;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f -invAdj src/Dodge/Item/Grammar.hs 266;" f +invAdj src/Dodge/Item/Grammar.hs 277;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f -invDT src/Dodge/Item/Grammar.hs 243;" f +invDT src/Dodge/Item/Grammar.hs 254;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f invHead src/Dodge/Render/HUD.hs 405;" f invItemLocUpdate src/Dodge/Creature/State.hs 153;" f -invLDT src/Dodge/Item/Grammar.hs 238;" f -invLDT' src/Dodge/Item/Grammar.hs 248;" f +invLDT src/Dodge/Item/Grammar.hs 249;" f +invLDT' src/Dodge/Item/Grammar.hs 259;" f invRootItemEffs src/Dodge/Creature/State.hs 146;" f -invRootMap src/Dodge/Item/Grammar.hs 255;" f -invRootTrees src/Dodge/Item/Grammar.hs 276;" f -invRootTrees' src/Dodge/Item/Grammar.hs 282;" f +invRootMap src/Dodge/Item/Grammar.hs 266;" f +invRootTrees src/Dodge/Item/Grammar.hs 287;" f +invRootTrees' src/Dodge/Item/Grammar.hs 293;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSetSelection src/Dodge/Inventory.hs 185;" f invSetSelectionPos src/Dodge/Inventory.hs 193;" f @@ -4756,7 +4755,8 @@ itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f itemSidePush src/Dodge/HeldUse.hs 420;" f itemString src/Dodge/Item/Display.hs 56;" f itemToBreakLists src/Dodge/Item/Grammar.hs 56;" f -itemToFunction src/Dodge/Item/Grammar.hs 139;" f +itemToBreakLists' src/Dodge/Item/Grammar.hs 65;" f +itemToFunction src/Dodge/Item/Grammar.hs 148;" 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 @@ -4768,7 +4768,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f -joinItemsInList src/Dodge/Item/Grammar.hs 228;" f +joinItemsInList src/Dodge/Item/Grammar.hs 239;" f joystick src/Dodge/Item/Scope.hs 149;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f @@ -4818,10 +4818,10 @@ ldtToIM src/Dodge/DoubleTree.hs 219;" f ldtToIndentList src/Dodge/DoubleTree.hs 222;" f ldtToLoc src/Dodge/DoubleTree.hs 268;" f left src/DoubleStack.hs 16;" f -leftChildList src/Dodge/Item/Grammar.hs 202;" f -leftIsParentCombine src/Dodge/Item/Grammar.hs 188;" f +leftChildList src/Dodge/Item/Grammar.hs 213;" f +leftIsParentCombine src/Dodge/Item/Grammar.hs 199;" f leftPad src/Padding.hs 15;" f -leftRightCombine src/Dodge/Item/Grammar.hs 214;" f +leftRightCombine src/Dodge/Item/Grammar.hs 225;" f legsSPic src/Dodge/Item/Draw/SPic.hs 475;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f @@ -5369,6 +5369,7 @@ ppDraw src/Dodge/Render/ShapePicture.hs 96;" f ppEvents src/Dodge/Update.hs 696;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f +prePos src/Quaternion.hs 67;" f preloadRender src/Preload/Render.hs 30;" f premapMaybe src/FoldlHelp.hs 26;" f prependTwo src/Geometry.hs 176;" f @@ -5439,10 +5440,10 @@ putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f putWireEnd src/Dodge/Wire.hs 31;" f putWireStart src/Dodge/Wire.hs 34;" f -qID src/Quaternion.hs 60;" f -qToAng src/Quaternion.hs 57;" f -qToV2 src/Quaternion.hs 54;" f -qToV3 src/Quaternion.hs 51;" f +qID src/Quaternion.hs 61;" f +qToAng src/Quaternion.hs 58;" f +qToV2 src/Quaternion.hs 55;" f +qToV3 src/Quaternion.hs 52;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f quitCommand src/Dodge/Terminal.hs 57;" f @@ -5562,8 +5563,8 @@ rezText' src/Dodge/Story.hs 17;" f rhombus src/Polyhedra.hs 72;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f right src/DoubleStack.hs 16;" f -rightChildList src/Dodge/Item/Grammar.hs 208;" f -rightIsParentCombine src/Dodge/Item/Grammar.hs 195;" f +rightChildList src/Dodge/Item/Grammar.hs 219;" f +rightIsParentCombine src/Dodge/Item/Grammar.hs 206;" f rightPad src/Padding.hs 19;" f rightPadNoSquash src/Padding.hs 23;" f rlPosDir src/Dodge/RoomLink.hs 94;" f @@ -5611,7 +5612,7 @@ rotateSHx src/Shape.hs 265;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 201;" f -rotateToZ src/Quaternion.hs 37;" f +rotateToZ src/Quaternion.hs 38;" f rotateV src/Geometry/Vector.hs 105;" f rotateVAround src/Geometry/Vector.hs 112;" f rotateXY src/Polyhedra.hs 31;" f @@ -5814,7 +5815,7 @@ shootingRange src/Dodge/Room/Room.hs 332;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 9;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f -shoulderHeight src/Dodge/Item/HeldOffset.hs 74;" f +shoulderHeight src/Dodge/Item/HeldOffset.hs 69;" f shoulderSH src/Dodge/Creature/Picture.hs 133;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f showAttachItem src/Dodge/Item/Display.hs 91;" f @@ -5964,7 +5965,7 @@ strFromEquipment src/Dodge/Creature/Statistics.hs 48;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 60;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 35;" f strictify src/MaybeHelp.hs 37;" f -strideRot src/Dodge/Item/HeldOffset.hs 77;" f +strideRot src/Dodge/Item/HeldOffset.hs 72;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f @@ -6153,7 +6154,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 173;" f +treeToPotentialFunction src/Dodge/Item/Grammar.hs 182;" 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 @@ -6188,7 +6189,7 @@ twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twists src/Dodge/Creature/Test.hs 110;" f twoFlat src/Dodge/Creature/Test.hs 107;" f -twoFlatHRot src/Dodge/Item/HeldOffset.hs 86;" f +twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f @@ -6375,7 +6376,7 @@ vNormal src/Geometry/Vector.hs 148;" f vNormaly src/Geometry/Vector3D.hs 72;" f vShape src/Dodge/Placement/Instance/LightSource.hs 113;" f vToL src/MatrixHelper.hs 46;" f -vToQuat src/Quaternion.hs 44;" f +vToQuat src/Quaternion.hs 45;" f validTerminalCommands src/Dodge/Debug/Terminal.hs 134;" f vasTightStride src/Shader/Compile.hs 297;" f vecBetweenSpeed src/Dodge/Base.hs 146;" f