diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index c564e5720..7fe1d8e2c 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -33,14 +33,12 @@ useItemLoc :: useItemLoc cr loc pt w | HeldPlatformSF <- sf , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsRoot --- , cr ^. crStance . posture == Aiming = , Aiming {} <- cr ^. crStance . posture = return $ heldEffect pt (bimap _iatType (^. _1) ldt) cr w | GadgetPlatformSF <- sf = return $ gadgetEffect pt loc cr w | UnderBarrelPlatformSF <- sf , fromMaybe False $ loc ^? locLDT . ldtValue . _1 . itLocation . ilIsAttached --- , cr ^. crStance . posture == Aiming = , Aiming {} <- cr ^. crStance . posture = return $ heldEffect pt (bimap _iatType (^. _1) ldt) cr w | RemoteDetonatorSF <- sf diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index fdeb62aaa..68b27efe7 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -119,11 +119,11 @@ wasdWithAiming w cr = wasdAim inp cam $ wasdMovement inp cam speed cr wasdAim :: Input -> Camera -> Creature -> Creature wasdAim inp cam cr - | Just 0 <- inp ^? mouseButtons . ix SDL.ButtonRight = - setAimPosture cr - | Just 0 <- inp ^? mouseButtonsReleased . ix SDL.ButtonRight = - removeAimPosture cr + | Just 0 <- inp ^? mouseButtons . ix SDL.ButtonRight + , Nothing <- inp ^? mouseButtons . ix SDL.ButtonLeft + = setAimPosture cr | SDL.ButtonRight `M.member` _mouseButtons inp = aimTurn mouseDir cr + | Aiming <- cr ^. crStance . posture = removeAimPosture cr | otherwise = creatureTurnTowardDir (_crMvAim cr) 0.2 cr where mouseDir = argV $ mouseWorldPos inp cam - (cr ^. crPos) diff --git a/src/Dodge/Data/Input.hs b/src/Dodge/Data/Input.hs index ca0e98d3e..857e0ebfe 100644 --- a/src/Dodge/Data/Input.hs +++ b/src/Dodge/Data/Input.hs @@ -38,6 +38,7 @@ data MouseContext | OverCombEscape | OverTerminalReturn {_mcoTermID :: Int} | OverTerminalEscape + | MouseGameRotate deriving (Show) data Input = Input diff --git a/src/Dodge/Render/Picture.hs b/src/Dodge/Render/Picture.hs index 3c79d2db5..c2b566b01 100644 --- a/src/Dodge/Render/Picture.hs +++ b/src/Dodge/Render/Picture.hs @@ -111,6 +111,7 @@ mouseCursorType u = case u ^. uvWorld . input . mouseContext of OverCombEscape -> rotate (pi / 4) $ drawPlus 5 OverTerminalReturn{} -> drawReturn 5 OverTerminalEscape -> rotate (pi / 4) $ drawPlus 5 + MouseGameRotate -> rotate a (drawVerticalDoubleArrow 5) where w = u ^. uvWorld selsec = u ^? uvWorld . hud . hudElement . diSelection . _Just . _1 @@ -191,6 +192,15 @@ drawDrag x = y = 0.5 * x w = 0.3 * x +drawVerticalDoubleArrow :: Float -> Picture +drawVerticalDoubleArrow x = + line [V2 0 z, V2 0 (- z)] + <> line [V2 (- w) (z - w), V2 0 z, V2 w (z - w)] + <> line [V2 (- w) (w - z), V2 0 (- z), V2 w (w - z)] + where + z = 1.5 * x + w = 0.6 * x + drawDragDrop :: Float -> Picture drawDragDrop x = line (fmap (+ V2 z (- x)) [V2 (- x) x, V2 0 x, V2 0 (- x)]) diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index bc67c3e5b..6087face3 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -327,6 +327,9 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of where w = u ^. uvWorld aimcontext + | Just t1 <- w ^. input . mouseButtons . at ButtonLeft + , Just t2 <- w ^. input . mouseButtons . at ButtonRight + , t1 > t2 = MouseGameRotate | ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming | otherwise = MouseInGame mpos = w ^. input . mousePos diff --git a/tags b/tags index fb7f95ce1..aaf487f2d 100644 --- a/tags +++ b/tags @@ -902,7 +902,7 @@ InheritFloor src/Data/Tile.hs 11;" C InitialPress src/Dodge/Data/Input.hs 16;" C Initialisation src/Dodge/Initialisation.hs 1;" m Initialize src/Dodge/Item/Location/Initialize.hs 1;" m -Input src/Dodge/Data/Input.hs 43;" t +Input src/Dodge/Data/Input.hs 44;" t Input src/Dodge/Data/Input.hs 6;" m Input src/Dodge/Event/Input.hs 3;" m Input src/Dodge/Update/Input.hs 1;" m @@ -1204,6 +1204,7 @@ MountedObject src/Dodge/Data/MountedObject.hs 6;" m MountedProp src/Dodge/Data/MountedObject.hs 13;" C MouseAiming src/Dodge/Data/Input.hs 23;" C MouseContext src/Dodge/Data/Input.hs 21;" t +MouseGameRotate src/Dodge/Data/Input.hs 41;" C MouseInGame src/Dodge/Data/Input.hs 24;" C MouseMenuClick src/Dodge/Data/Input.hs 25;" C MouseMenuCursor src/Dodge/Data/Input.hs 26;" C @@ -1893,15 +1894,15 @@ TORCH src/Dodge/Data/Item/Combine.hs 174;" C TRACTORGUN src/Dodge/Data/Item/Combine.hs 168;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 63;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 69;" C -TSbackspace src/Dodge/Data/Input.hs 64;" C -TSdelete src/Dodge/Data/Input.hs 65;" C -TSdown src/Dodge/Data/Input.hs 70;" C -TSescape src/Dodge/Data/Input.hs 62;" C -TSleft src/Dodge/Data/Input.hs 67;" C -TSreturn src/Dodge/Data/Input.hs 63;" C -TSright src/Dodge/Data/Input.hs 68;" C -TStab src/Dodge/Data/Input.hs 66;" C -TSup src/Dodge/Data/Input.hs 69;" C +TSbackspace src/Dodge/Data/Input.hs 65;" C +TSdelete src/Dodge/Data/Input.hs 66;" C +TSdown src/Dodge/Data/Input.hs 71;" C +TSescape src/Dodge/Data/Input.hs 63;" C +TSleft src/Dodge/Data/Input.hs 68;" C +TSreturn src/Dodge/Data/Input.hs 64;" C +TSright src/Dodge/Data/Input.hs 69;" C +TStab src/Dodge/Data/Input.hs 67;" C +TSup src/Dodge/Data/Input.hs 70;" C TUBE src/Dodge/Data/Item/Combine.hs 50;" C Tank src/Dodge/Placement/Instance/Tank.hs 1;" m Tanks src/Dodge/Room/Tanks.hs 1;" m @@ -1914,7 +1915,7 @@ TargetingLaser src/Dodge/Data/Laser.hs 18;" C TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 35;" C Teleport src/Dodge/Room/Teleport.hs 2;" m -TermSignal src/Dodge/Data/Input.hs 61;" t +TermSignal src/Dodge/Data/Input.hs 62;" t Terminal src/Dodge/Data/Terminal.hs 32;" t Terminal src/Dodge/Data/Terminal.hs 6;" m Terminal src/Dodge/Debug/Terminal.hs 3;" m @@ -2363,8 +2364,8 @@ _cldtParent src/Dodge/Data/DoubleTree.hs 53;" f _cldtParent src/Dodge/Data/DoubleTree.hs 62;" f _cldtUp src/Dodge/Data/DoubleTree.hs 51;" f _cldtUp src/Dodge/Data/DoubleTree.hs 59;" f -_clickPos src/Dodge/Data/Input.hs 52;" f -_clickWorldPos src/Dodge/Data/Input.hs 54;" f +_clickPos src/Dodge/Data/Input.hs 53;" f +_clickWorldPos src/Dodge/Data/Input.hs 55;" f _closeButtons src/Dodge/Data/HUD.hs 50;" f _closeItems src/Dodge/Data/HUD.hs 49;" f _cloudEBO src/Data/Preload/Render.hs 49;" f @@ -2617,10 +2618,10 @@ _heldAim src/Dodge/Data/Item/Use.hs 36;" f _heldDelay src/Dodge/Data/Item/Use.hs 35;" f _heldFrame src/Dodge/Data/Item/Use.hs 39;" f _heldParams src/Dodge/Data/Item/Use.hs 37;" f -_heldPos src/Dodge/Data/Input.hs 53;" f +_heldPos src/Dodge/Data/Input.hs 54;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 38;" f _heldUseEffect src/Dodge/Data/Item/Use.hs 40;" f -_heldWorldPos src/Dodge/Data/Input.hs 55;" f +_heldWorldPos src/Dodge/Data/Input.hs 56;" f _hotkeys src/Dodge/Data/LWorld.hs 148;" f _hud src/Dodge/Data/World.hs 45;" f _hudElement src/Dodge/Data/HUD.hs 45;" f @@ -2798,11 +2799,11 @@ _moString src/Dodge/Data/Universe.hs 108;" f _modOption src/Dodge/Data/Universe.hs 98;" f _modString src/Dodge/Data/Universe.hs 96;" f _modifications src/Dodge/Data/LWorld.hs 133;" f -_mouseButtons src/Dodge/Data/Input.hs 48;" f -_mouseButtonsReleased src/Dodge/Data/Input.hs 49;" f -_mouseContext src/Dodge/Data/Input.hs 45;" f -_mouseMoving src/Dodge/Data/Input.hs 46;" f -_mousePos src/Dodge/Data/Input.hs 44;" f +_mouseButtons src/Dodge/Data/Input.hs 49;" f +_mouseButtonsReleased src/Dodge/Data/Input.hs 50;" f +_mouseContext src/Dodge/Data/Input.hs 46;" f +_mouseMoving src/Dodge/Data/Input.hs 47;" f +_mousePos src/Dodge/Data/Input.hs 45;" f _mtBranches src/Dodge/Data/MetaTree.hs 10;" f _mtBranches src/Dodge/Tree/Compose/Data.hs 8;" f _mtLabel src/Dodge/Data/MetaTree.hs 10;" f @@ -2922,7 +2923,7 @@ _prVel src/Dodge/Data/Prop.hs 24;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 32;" f _pressPlates src/Dodge/Data/LWorld.hs 136;" f -_pressedKeys src/Dodge/Data/Input.hs 47;" f +_pressedKeys src/Dodge/Data/Input.hs 48;" f _projectiles src/Dodge/Data/LWorld.hs 105;" f _props src/Dodge/Data/LWorld.hs 104;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 26;" f @@ -3037,14 +3038,14 @@ _scPositionedMenuOption src/Dodge/Data/Universe.hs 84;" f _scSelectionList src/Dodge/Data/Universe.hs 86;" f _scTitle src/Dodge/Data/Universe.hs 81;" f _screenTextureVAO src/Data/Preload/Render.hs 50;" f -_scrollAmount src/Dodge/Data/Input.hs 50;" f +_scrollAmount src/Dodge/Data/Input.hs 51;" f _scrollItemID src/Dodge/Data/World.hs 64;" f _scrollItemID src/Dodge/Data/World.hs 73;" f _scrollItemID src/Dodge/Data/World.hs 77;" f _scrollSmoothing src/Dodge/Data/World.hs 61;" f _scrollSmoothing src/Dodge/Data/World.hs 67;" f -_scrollTestFloat src/Dodge/Data/Input.hs 57;" f -_scrollTestInt src/Dodge/Data/Input.hs 58;" f +_scrollTestFloat src/Dodge/Data/Input.hs 58;" f +_scrollTestInt src/Dodge/Data/Input.hs 59;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f _scurPos src/Dodge/Data/SelectionList.hs 24;" f _scurSize src/Dodge/Data/SelectionList.hs 25;" f @@ -3103,7 +3104,7 @@ _skinLower src/Dodge/Data/Creature/Misc.hs 73;" f _skinLower src/Dodge/Data/Creature/Misc.hs 79;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 72;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 78;" f -_smoothScrollAmount src/Dodge/Data/Input.hs 51;" f +_smoothScrollAmount src/Dodge/Data/Input.hs 52;" f _soundAngDist src/Sound/Data.hs 53;" f _soundChannel src/Sound/Data.hs 52;" f _soundChunkID src/Sound/Data.hs 57;" f @@ -3160,7 +3161,7 @@ _termID src/Dodge/Data/HUD.hs 42;" f _terminals src/Dodge/Data/LWorld.hs 126;" f _teslaArcs src/Dodge/Data/LWorld.hs 115;" f _testFloat src/Dodge/Data/World.hs 43;" f -_textInput src/Dodge/Data/Input.hs 56;" f +_textInput src/Dodge/Data/Input.hs 57;" f _textureObject src/Shader/Data.hs 95;" f _tiSel src/Dodge/Data/Terminal.hs 22;" f _tiText src/Dodge/Data/Terminal.hs 21;" f @@ -3385,10 +3386,10 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 35;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 401;" f +advanceScrollAmount src/Dodge/Update.hs 404;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 44;" f -aimDelaySweep src/Dodge/Render/Picture.hs 254;" f +aimDelaySweep src/Dodge/Render/Picture.hs 264;" f aimStanceInfo src/Dodge/Item/Info.hs 235;" f aimTurn src/Dodge/Creature/YourControl.hs 161;" f aimingWeaponHandlePos src/Dodge/Item/HeldOffset.hs 69;" f @@ -3626,7 +3627,7 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 43;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 64;" f checkDeath src/Dodge/Creature/State.hs 78;" f -checkEndGame src/Dodge/Update.hs 698;" f +checkEndGame src/Dodge/Update.hs 701;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -3655,7 +3656,7 @@ circle src/Picture/Base.hs 180;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f -clClSpringVel src/Dodge/Update.hs 749;" f +clClSpringVel src/Dodge/Update.hs 752;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -3681,7 +3682,7 @@ closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 719;" f +cloudEffect src/Dodge/Update.hs 722;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 9;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3755,7 +3756,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 79;" f crBlips src/Dodge/RadarSweep.hs 87;" f crCamouflage src/Dodge/Creature/Picture.hs 31;" f crCanSeeCr src/Dodge/Creature/Test.hs 48;" f -crCrSpring src/Dodge/Update.hs 767;" f +crCrSpring src/Dodge/Update.hs 770;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 26;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f @@ -3775,7 +3776,7 @@ crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 22;" f crOnWall src/Dodge/WallCreatureCollisions.hs 85;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 69;" f crSetRoots src/Dodge/Inventory/Location.hs 48;" f -crSpring src/Dodge/Update.hs 762;" f +crSpring src/Dodge/Update.hs 765;" f crStratConMatches src/Dodge/Creature/Test.hs 74;" f crUpdate src/Dodge/Creature/State.hs 62;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f @@ -4013,7 +4014,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 45;" f displayFreeSlots src/Dodge/DisplayInventory.hs 198;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 173;" f -displayTerminalLineString src/Dodge/Update.hs 428;" f +displayTerminalLineString src/Dodge/Update.hs 431;" f dist src/Geometry/Vector.hs 190;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4112,7 +4113,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 28;" f doWeaponRepetitions src/Dodge/HeldUse.hs 151;" f -doWorldEvents src/Dodge/Update.hs 411;" f +doWorldEvents src/Dodge/Update.hs 414;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -4127,7 +4128,7 @@ doublePairSet src/Geometry.hs 165;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 72;" f doubleV2 src/Geometry.hs 168;" f drawARHUD src/Dodge/Creature/State.hs 302;" f -drawAimSweep src/Dodge/Render/Picture.hs 262;" f +drawAimSweep src/Dodge/Render/Picture.hs 272;" f drawAllShadows src/Dodge/Shadows.hs 5;" f drawBaseMachine src/Dodge/Machine/Draw.hs 57;" f drawBeam src/Dodge/Beam/Draw.hs 6;" f @@ -4139,7 +4140,7 @@ drawButton src/Dodge/Button/Draw.hs 9;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 111;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f -drawCombFilter src/Dodge/Render/Picture.hs 234;" f +drawCombFilter src/Dodge/Render/Picture.hs 244;" f drawCombineInventory src/Dodge/Render/HUD.hs 179;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 68;" f drawCoord src/Dodge/Debug/Picture.hs 359;" f @@ -4153,13 +4154,13 @@ drawCursorAt src/Dodge/Render/List.hs 71;" f drawDDATest src/Dodge/Debug/Picture.hs 286;" f drawDoorPaths src/Dodge/Debug/Picture.hs 247;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 87;" f -drawDrag src/Dodge/Render/Picture.hs 182;" f -drawDragDrop src/Dodge/Render/Picture.hs 194;" f -drawDragPickup src/Dodge/Render/Picture.hs 203;" f -drawDragSelect src/Dodge/Render/Picture.hs 179;" f +drawDrag src/Dodge/Render/Picture.hs 183;" f +drawDragDrop src/Dodge/Render/Picture.hs 204;" f +drawDragPickup src/Dodge/Render/Picture.hs 213;" f +drawDragSelect src/Dodge/Render/Picture.hs 180;" f drawDragSelected src/Dodge/Render/HUD.hs 132;" f drawDragSelecting src/Dodge/Render/HUD.hs 149;" f -drawEmptySet src/Dodge/Render/Picture.hs 123;" f +drawEmptySet src/Dodge/Render/Picture.hs 124;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 10;" f drawEquipment src/Dodge/Creature/Picture.hs 142;" f drawExamineInventory src/Dodge/Render/HUD.hs 195;" f @@ -4168,7 +4169,7 @@ drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 26;" f drawFooterText src/Dodge/Render/MenuScreen.hs 72;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f -drawGapPlus src/Dodge/Render/Picture.hs 245;" f +drawGapPlus src/Dodge/Render/Picture.hs 255;" f drawGib src/Dodge/Prop/Draw.hs 31;" f drawHUD src/Dodge/Render/HUD.hs 48;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 22;" f @@ -4177,7 +4178,7 @@ drawInspectWalls src/Dodge/Debug/Picture.hs 227;" f drawInventory src/Dodge/Render/HUD.hs 55;" f drawItemChildrenConnect src/Dodge/Render/HUD.hs 326;" f drawItemConnections src/Dodge/Render/HUD.hs 316;" f -drawJumpDown src/Dodge/Render/Picture.hs 174;" f +drawJumpDown src/Dodge/Render/Picture.hs 175;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 47;" f drawLaser src/Dodge/Laser/Draw.hs 6;" f @@ -4191,8 +4192,8 @@ drawListYoff src/Dodge/Render/List.hs 92;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f drawMapperInventory src/Dodge/Render/HUD.hs 169;" f -drawMenuClick src/Dodge/Render/Picture.hs 146;" f -drawMenuCursor src/Dodge/Render/Picture.hs 160;" f +drawMenuClick src/Dodge/Render/Picture.hs 147;" f +drawMenuCursor src/Dodge/Render/Picture.hs 161;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 63;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 16;" f drawMouseCursor src/Dodge/Render/Picture.hs 79;" f @@ -4204,18 +4205,18 @@ drawOptions src/Dodge/Render/MenuScreen.hs 36;" f drawPathBetween src/Dodge/Debug/Picture.hs 195;" f drawPathEdge src/Dodge/Debug/Picture.hs 252;" f drawPathing src/Dodge/Debug/Picture.hs 422;" f -drawPlus src/Dodge/Render/Picture.hs 143;" f +drawPlus src/Dodge/Render/Picture.hs 144;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 18;" f drawRBOptions src/Dodge/Render/HUD.hs 249;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 37;" f -drawReturn src/Dodge/Render/Picture.hs 130;" f +drawReturn src/Dodge/Render/Picture.hs 131;" f drawRootCursor src/Dodge/Render/HUD.hs 71;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f -drawSelect src/Dodge/Render/Picture.hs 222;" f +drawSelect src/Dodge/Render/Picture.hs 232;" f drawSelectionList src/Dodge/Render/List.hs 35;" f drawSelectionListBackground src/Dodge/Render/List.hs 51;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 16;" f @@ -4239,6 +4240,7 @@ drawTitle src/Dodge/Render/MenuScreen.hs 55;" f drawTitleBackground src/Dodge/Render/List.hs 44;" f drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f drawTurret src/Dodge/Machine/Draw.hs 65;" f +drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 195;" f drawVerticalLampCover src/Dodge/Prop/Draw.hs 63;" f drawWall src/Dodge/Wall/Draw.hs 7;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f @@ -4461,7 +4463,7 @@ getLaserDamage src/Dodge/HeldUse.hs 308;" f getLaserPhaseV src/Dodge/HeldUse.hs 305;" f getLinksOfType src/Dodge/RoomLink.hs 39;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f -getMenuMouseContext src/Dodge/Update.hs 371;" f +getMenuMouseContext src/Dodge/Update.hs 374;" f getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 693;" f getPretty src/AesonHelp.hs 8;" f @@ -4686,7 +4688,7 @@ isLeftOfA src/Geometry.hs 192;" f isNothing' src/MaybeHelp.hs 33;" f isOnSeg src/Geometry.hs 236;" f isOutLnk src/Dodge/PlacementSpot.hs 164;" f -isOverTerminalScreen src/Dodge/Update.hs 382;" f +isOverTerminalScreen src/Dodge/Update.hs 385;" f isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f isRHS src/Geometry/LHS.hs 24;" f isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f @@ -5062,7 +5064,7 @@ muzFlareAt src/Dodge/HeldUse.hs 281;" f mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f -mvGust src/Dodge/Update.hs 710;" f +mvGust src/Dodge/Update.hs 713;" f mvLS src/Dodge/Placement/PlaceSpot.hs 217;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 183;" f @@ -5326,7 +5328,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 105;" f -ppEvents src/Dodge/Update.hs 677;" f +ppEvents src/Dodge/Update.hs 680;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5430,7 +5432,7 @@ randPeakedParam src/RandomHelp.hs 130;" f randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 74;" f randWallReflect src/Dodge/Tesla/Arc.hs 57;" f -randWallReflect src/Dodge/Update.hs 569;" f +randWallReflect src/Dodge/Update.hs 572;" f randomChallenges src/Dodge/Room/Start.hs 62;" f randomCompass src/Dodge/Layout.hs 59;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f @@ -5678,7 +5680,7 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMinInvSize src/Dodge/Creature/Action.hs 145;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f -setOldPos src/Dodge/Update.hs 451;" f +setOldPos src/Dodge/Update.hs 454;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5774,9 +5776,9 @@ showEquipItem src/Dodge/Item/Display.hs 102;" f showInt src/Dodge/Item/Info.hs 67;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showInventoryPathing src/Dodge/Item/Display.hs 82;" f -showManObj src/Dodge/TestString.hs 78;" f +showManObj src/Dodge/TestString.hs 81;" f showTerminalError src/Dodge/Debug/Terminal.hs 78;" f -showTimeFlow src/Dodge/TestString.hs 101;" f +showTimeFlow src/Dodge/TestString.hs 104;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f shrinkVert src/Geometry/Polygon.hs 140;" f shuffle src/RandomHelp.hs 49;" f @@ -5784,7 +5786,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 758;" f +simpleCrSprings src/Dodge/Update.hs 761;" f simpleDamFL src/Dodge/Flame.hs 40;" f simpleTermMessage src/Dodge/Terminal.hs 253;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f @@ -6022,7 +6024,7 @@ tinMag src/Dodge/Item/Ammo.hs 27;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 422;" f titleOptionsMenu src/Dodge/Menu.hs 99;" f titleOptionsNoWrite src/Dodge/Menu.hs 102;" f -tmUpdate src/Dodge/Update.hs 431;" f +tmUpdate src/Dodge/Update.hs 434;" f toBinary src/Dodge/Inventory/SelectionList.hs 135;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -6050,7 +6052,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 338;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f -topTestPart src/Dodge/TestString.hs 74;" f +topTestPart src/Dodge/TestString.hs 77;" f torch src/Dodge/Item/Held/Utility.hs 33;" f torchShape src/Dodge/Item/Draw/SPic.hs 264;" f torqueCr src/Dodge/WorldEffect.hs 67;" f @@ -6174,37 +6176,37 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 28;" f updateBounds src/Dodge/Update/Camera.hs 211;" f updateBulVel src/Dodge/Bullet.hs 53;" f updateBullet src/Dodge/Bullet.hs 21;" f -updateBullets src/Dodge/Update.hs 525;" f +updateBullets src/Dodge/Update.hs 528;" f updateCamera src/Dodge/Update/Camera.hs 27;" f updateCloseObjects src/Dodge/Inventory.hs 110;" f -updateCloud src/Dodge/Update.hs 724;" f -updateClouds src/Dodge/Update.hs 599;" f +updateCloud src/Dodge/Update.hs 727;" f +updateClouds src/Dodge/Update.hs 602;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 44;" f updateCreature src/Dodge/Creature/Update.hs 13;" f -updateCreatureGroups src/Dodge/Update.hs 497;" f -updateCreatureSoundPositions src/Dodge/Update.hs 473;" f +updateCreatureGroups src/Dodge/Update.hs 500;" f +updateCreatureSoundPositions src/Dodge/Update.hs 476;" f updateDebugMessageOffset src/Dodge/Update.hs 94;" f -updateDelayedEvents src/Dodge/Update.hs 787;" f +updateDelayedEvents src/Dodge/Update.hs 790;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 518;" f +updateDistortions src/Dodge/Update.hs 521;" f updateEnergyBall src/Dodge/EnergyBall.hs 45;" f -updateEnergyBalls src/Dodge/Update.hs 587;" f +updateEnergyBalls src/Dodge/Update.hs 590;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 478;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 70;" f -updateFlames src/Dodge/Update.hs 584;" f +updateFlames src/Dodge/Update.hs 587;" f updateFloatingCamera src/Dodge/Update/Camera.hs 32;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 362;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 355;" f -updateGusts src/Dodge/Update.hs 707;" f +updateGusts src/Dodge/Update.hs 710;" f updateHeldRootItem src/Dodge/Creature/State.hs 259;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f -updateIMl src/Dodge/Update.hs 487;" f -updateIMl' src/Dodge/Update.hs 492;" f +updateIMl src/Dodge/Update.hs 490;" f +updateIMl' src/Dodge/Update.hs 495;" f updateInGameCamera src/Dodge/Update/Camera.hs 76;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 398;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f @@ -6214,7 +6216,7 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 392;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 380;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 14;" f -updateLasers src/Dodge/Update.hs 418;" f +updateLasers src/Dodge/Update.hs 421;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 411;" f updateMachine src/Dodge/Machine/Update.hs 19;" f @@ -6226,20 +6228,20 @@ updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 95;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 85;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 156;" f updateMovement src/Dodge/Creature/State.hs 429;" f -updateObjCatMaybes src/Dodge/Update.hs 509;" f -updateObjMapMaybe src/Dodge/Update.hs 502;" f -updatePastWorlds src/Dodge/Update.hs 406;" f +updateObjCatMaybes src/Dodge/Update.hs 512;" f +updateObjMapMaybe src/Dodge/Update.hs 505;" f +updatePastWorlds src/Dodge/Update.hs 409;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 596;" f +updatePosEvents src/Dodge/Update.hs 599;" f updatePreload src/Preload/Update.hs 20;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 22;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 521;" f +updateRadarBlips src/Dodge/Update.hs 524;" f updateRadarSweep src/Dodge/RadarSweep.hs 39;" f -updateRadarSweeps src/Dodge/Update.hs 590;" f +updateRadarSweeps src/Dodge/Update.hs 593;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 108;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f @@ -6248,18 +6250,18 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 264;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 243;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 581;" f +updateShockwaves src/Dodge/Update.hs 584;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 71;" f updateSounds src/Sound.hs 66;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 593;" f +updateSparks src/Dodge/Update.hs 596;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 23;" f -updateTeslaArc src/Dodge/Update.hs 535;" f -updateTeslaArcs src/Dodge/Update.hs 532;" f +updateTeslaArc src/Dodge/Update.hs 538;" f +updateTeslaArcs src/Dodge/Update.hs 535;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 578;" f +updateTractorBeams src/Dodge/Update.hs 581;" f updateTurret src/Dodge/Machine/Update.hs 49;" f updateUniverse src/Dodge/Update.hs 72;" f updateUniverseFirst src/Dodge/Update.hs 84;" f @@ -6270,7 +6272,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 22;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 19;" f -updateWheelEvents src/Dodge/Update.hs 396;" f +updateWheelEvents src/Dodge/Update.hs 399;" f updateWorldEventFlag src/Dodge/Update.hs 119;" f updateWorldEventFlags src/Dodge/Update.hs 107;" f upperBody src/Dodge/Creature/Picture.hs 135;" f @@ -6443,9 +6445,9 @@ zipArcs src/Dodge/Tesla/Arc.hs 110;" f zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 425;" f +zoneClouds src/Dodge/Update.hs 428;" f zoneCreature src/Dodge/Zoning/Creature.hs 53;" f -zoneCreatures src/Dodge/Update.hs 468;" f +zoneCreatures src/Dodge/Update.hs 471;" f zoneExtract src/Dodge/Zoning/Base.hs 51;" f zoneMonoid src/Dodge/Zoning/Base.hs 81;" f zoneOfCirc src/Dodge/Zoning/Base.hs 23;" f