diff --git a/appDodge/Main.hs b/appDodge/Main.hs index c5927d82b..92ec2485d 100644 --- a/appDodge/Main.hs +++ b/appDodge/Main.hs @@ -97,8 +97,11 @@ firstWorldLoad theConfig = do , _uvDebug = mempty , _uvDebugFloat1 = 10 , _uvDebugFloat2 = 0 + , _uvDebugV2_1 = 0 + , _uvDebugV2_2 = 1 , _uvDebugMessageOffset = 0 , _uvSoundQueue = mempty + , _uvDebugPathShowType = PathBetweenDebugV2s } --return $ u & uvScreenLayers .~ [splashMenu u] return $ startNewGameInSlot 0 u diff --git a/src/Dodge/Data/Config.hs b/src/Dodge/Data/Config.hs index becdcc24b..1900356cd 100644 --- a/src/Dodge/Data/Config.hs +++ b/src/Dodge/Data/Config.hs @@ -91,6 +91,8 @@ data DebugBool | Show_zone_circ | Inspect_wall | Show_path_between + | Show_writable_values + | Show_mouse_click_pos deriving (Eq, Ord, Bounded, Enum, Show) data ResFactor = DoubleRes | FullRes | HalfRes | QuarterRes | EighthRes | SixteenthRes diff --git a/src/Dodge/Data/Universe.hs b/src/Dodge/Data/Universe.hs index 1feffad62..86c737e6a 100644 --- a/src/Dodge/Data/Universe.hs +++ b/src/Dodge/Data/Universe.hs @@ -13,6 +13,7 @@ module Dodge.Data.Universe ( module Loop.Data, ) where +import Geometry.Data import Sound.Data import qualified Data.Map.Strict as M import GHC.Word (Word32) @@ -43,10 +44,18 @@ data Universe = Universe , _uvDebug :: M.Map DebugBool [DebugItem] , _uvDebugFloat1 :: Float , _uvDebugFloat2 :: Float + , _uvDebugV2_1 :: Point2 + , _uvDebugV2_2 :: Point2 + , _uvDebugPathShowType :: PathShowType , _uvDebugMessageOffset :: Int , _uvSoundQueue :: [SoundID] -- sounds without a position, to be played once } +data PathShowType + = PathBetweenLeftRightClick + | PathBetweenDebugV2s + deriving (Show,Eq,Ord,Enum,Bounded) + data DebugItem = DebugItem { _debugMessage :: String , _debugFunction :: Universe -> Universe diff --git a/src/Dodge/Debug.hs b/src/Dodge/Debug.hs index 9743ea1eb..7be9b111c 100644 --- a/src/Dodge/Debug.hs +++ b/src/Dodge/Debug.hs @@ -1,9 +1,7 @@ {-# LANGUAGE LambdaCase #-} -module Dodge.Debug (debugEvents,drawDebug) where +module Dodge.Debug (debugEvents, drawDebug) where -import qualified SDL -import System.Hclip import Control.Lens import Control.Monad import qualified Data.IntMap.Strict as IM @@ -16,13 +14,16 @@ import Dodge.Debug.Picture import Linear import Padding import Picture.Base -import ShortShow +import qualified SDL +import System.Hclip +import Text.Read debugEvents :: Universe -> Universe debugEvents u = case dbools ^. at Display_debug of Nothing -> u & uvDebug .~ mempty - Just () -> S.foldr debugEvent (u & uvDebug .~ mempty) dbools - & overDebugEvent + Just () -> + S.foldr debugEvent (u & uvDebug .~ mempty) dbools + & overDebugEvent where dbools = u ^. uvConfig . debug_booleans @@ -63,7 +64,68 @@ debugItem = \case Mouse_position -> mempty Walls_info -> mempty Pathing -> mempty - Show_path_between -> mempty + Show_path_between -> Just . return . debugShowPath + Show_writable_values -> debugWritableValues + Show_mouse_click_pos -> debugMouseClickPos + +debugShowPath :: Universe -> DebugItem +debugShowPath u = + DebugItem (u ^. uvDebugPathShowType . to show) f + where + f u' = fromMaybe u' $ do + guard (u ^. uvWorld . input . mouseButtons . at SDL.ButtonLeft == Just 0) + return (u' & uvDebugPathShowType %~ succB) + +succB :: (Eq a, Bounded a, Enum a) => a -> a +succB x + | x == maxBound = minBound + | otherwise = succ x + +debugWritableValues :: Universe -> Maybe [DebugItem] +debugWritableValues u = + Just $ + mapMaybe f $ + [ (uvDebugV2_1, uvDebugV2_1) + , (uvDebugV2_2, uvDebugV2_2) + ] + where + f (gt, st) = do + s <- u ^? gt + return $ DebugItem (show s) (applyClip st) + +applyClip :: + Read b => + ((a -> Identity b) -> Universe -> Identity Universe) -> + Universe -> + Universe +applyClip l u' = fromMaybe u' $ do + guard (u' ^. uvWorld . input . mouseButtons . at SDL.ButtonLeft == Just 0) + return $ u' & uvIOEffects %~ f + where + f g u = do + s <- getClipboard + case readMaybe s of + Just x -> g (u & l .~ x) + Nothing -> g u + +debugMouseClickPos :: Universe -> Maybe [DebugItem] +debugMouseClickPos u = + Just $ + mapMaybe + f + [ uvWorld . input . clickPos . at SDL.ButtonLeft + , uvWorld . input . clickPos . at SDL.ButtonRight + , uvWorld . input . heldPos . at SDL.ButtonLeft + , uvWorld . input . heldPos . at SDL.ButtonRight + , uvWorld . input . clickWorldPos . at SDL.ButtonLeft + , uvWorld . input . clickWorldPos . at SDL.ButtonRight + , uvWorld . input . heldWorldPos . at SDL.ButtonLeft + , uvWorld . input . heldWorldPos . at SDL.ButtonRight + ] + where + f l = do + s <- show <$> u ^. l + return $ DebugItem s (setClip s) drawCrInfo' :: Universe -> Maybe [DebugItem] drawCrInfo' u = case drawCrInfo u of @@ -74,26 +136,29 @@ drawCrInfo :: Universe -> [DebugItem] drawCrInfo u = foldMap f . IM.elems $ w ^. cWorld . lWorld . creatures where w = u ^. uvWorld - g h ls x = do - rs <- h <$> x - return $ DebugItem ((rightPad 7 '.' ls ++ "...") ++ rs) (setclip rs) + g ls x = do + rs <- show <$> x + return $ DebugItem ((rightPad 7 '.' ls ++ "...") ++ rs) (setClip rs) f cr = fromMaybe [] $ do guard $ pointIsOnScreen (u ^. uvConfig) (w ^. wCam) (cr ^. crPos . _xy) && cr ^. crID /= 0 - Just $ catMaybes - [ g show "crID" $ cr ^? crID - , g show "crHP" $ cr ^? crHP . _HP - , g show "crStrategy" $ cr ^? crActionPlan . apStrategy - , g shortShow "crPos" $ cr ^? crPos . _xy - , g show "cpVigilance" $ cr ^? crPerception . cpVigilance - , g show "crAction" $ cr ^? crActionPlan . apAction - , g show "crImpulse" $ cr ^? crActionPlan . apImpulse - , g show "crName" $ cr ^? crName - ] - setclip s u'' = fromMaybe u'' $ do - guard (SDL.ButtonLeft `M.member` (u'' ^. uvWorld . input . mouseButtons)) - return $ u'' & uvIOEffects %~ (\m u' -> setClipboard s >> m u') + Just $ + catMaybes + [ g "crID" $ cr ^? crID + , g "crHP" $ cr ^? crHP . _HP + , g "crStrategy" $ cr ^? crActionPlan . apStrategy + , g "crPos" $ cr ^? crPos . _xy + , g "cpVigilance" $ cr ^? crPerception . cpVigilance + , g "crAction" $ cr ^? crActionPlan . apAction + , g "crImpulse" $ cr ^? crActionPlan . apImpulse + , g "crName" $ cr ^? crName + ] + +setClip :: String -> Universe -> Universe +setClip s u = fromMaybe u $ do + guard (u ^. uvWorld . input . mouseButtons . at SDL.ButtonLeft == Just 0) + return $ u & uvIOEffects %~ (\m u' -> setClipboard s >> m u') --closestCreatureID :: Universe -> Maybe Int --closestCreatureID u = @@ -120,17 +185,20 @@ drawDebug u = \case View_boundaries -> viewBoundaries $ _uvWorld u Show_bound_box -> drawBoundingBox $ _uvWorld u Show_wall_search_rays -> drawWallSearchRays $ _uvWorld u - Show_dda_test -> drawDDATest $ _uvWorld u - Show_far_wall_detect -> drawFarWallDetect $ _uvWorld u - Show_walls_near_point_you -> drawWallsNearYou $ _uvWorld u - Show_zone_near_point_cursor -> drawZoneNearPointCursor $ _uvWorld u - Show_zone_circ -> drawZoneCirc $ _uvWorld u - Inspect_wall -> drawInspectWalls $ _uvWorld u - Cr_awareness -> drawCreatureDisplayTexts $ _uvWorld u - Show_sound -> fold - $ M.map (soundPic (u ^. uvConfig) (u ^. uvWorld)) $ u ^. uvWorld . playingSounds + Show_dda_test -> drawDDATest $ _uvWorld u + Show_far_wall_detect -> drawFarWallDetect $ _uvWorld u + Show_walls_near_point_you -> drawWallsNearYou $ _uvWorld u + Show_zone_near_point_cursor -> drawZoneNearPointCursor $ _uvWorld u + Show_zone_circ -> drawZoneCirc $ _uvWorld u + Inspect_wall -> drawInspectWalls $ _uvWorld u + Cr_awareness -> drawCreatureDisplayTexts $ _uvWorld u + Show_sound -> + fold $ + M.map (soundPic (u ^. uvConfig) (u ^. uvWorld)) $ u ^. uvWorld . playingSounds Cr_status -> mempty - Mouse_position -> drawMousePosition $ _uvWorld u - Walls_info -> drawWlIDs $ _uvWorld u + Mouse_position -> drawMousePosition $ _uvWorld u + Walls_info -> drawWlIDs $ _uvWorld u Pathing -> drawPathing (u ^. uvConfig) (u ^. uvWorld) - Show_path_between -> drawPathBetween $ _uvWorld u + Show_path_between -> drawPathBetween u + Show_writable_values -> mempty + Show_mouse_click_pos -> mempty diff --git a/src/Dodge/Debug/Picture.hs b/src/Dodge/Debug/Picture.hs index cd9b1e86b..5b28256af 100644 --- a/src/Dodge/Debug/Picture.hs +++ b/src/Dodge/Debug/Picture.hs @@ -198,17 +198,25 @@ drawZoneCol col s (V2 x y) = setLayer DebugLayer . color col $ thickLine 2 (p : drawCreatureDisplayTexts :: World -> Picture drawCreatureDisplayTexts w = foldMap (creatureDisplayText w) (w ^. cWorld . lWorld . creatures) -drawPathBetween :: World -> Picture -drawPathBetween w = concat $ do - sp <- w ^. input . heldWorldPos . at ButtonLeft - ep <- w ^. input . heldWorldPos . at ButtonRight +drawPathBetween :: Universe -> Picture +drawPathBetween u = concat $ do + sp <- case u ^. uvDebugPathShowType of + PathBetweenLeftRightClick -> w ^. input . heldWorldPos . at ButtonLeft + PathBetweenDebugV2s -> u ^? uvDebugV2_1 + ep <- case u ^. uvDebugPathShowType of + PathBetweenLeftRightClick -> w ^. input . heldWorldPos . at ButtonRight + PathBetweenDebugV2s -> u ^? uvDebugV2_2 let nodepos = (`getNodePos` w) nodelist = makePathBetween sp ep w return . setLayer DebugLayer $ color rose (foldMap (arrowPath . mapMaybe nodepos) nodelist) + <> drawCrossCol green sp + <> drawCrossCol cyan ep <> foldMap (color green . arrow sp) (nodepos =<< walkableNodeNear w sp) <> foldMap (color cyan . flip arrow ep) (nodepos =<< walkableNodeNear w ep) <> foldMap (color orange . arrow sp) (pointTowardsImpulse sp ep w) + where + w = u ^. uvWorld drawWallsNearYou :: World -> Picture drawWallsNearYou w = concat $ do diff --git a/tags b/tags index 2da721bca..3323eb689 100644 --- a/tags +++ b/tags @@ -12,7 +12,7 @@ .++~ src/LensHelp.hs 33;" o .+.+~ src/LensHelp.hs 23;" o .:~ src/LensHelp.hs 14;" o -<$> src/Dodge/Data/ActionPlan.hs 181;" o +<$> src/Dodge/Data/ActionPlan.hs 180;" o <$> src/Dodge/Data/CWorld.hs 47;" o <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 89;" o @@ -45,9 +45,9 @@ AimStance src/Dodge/Data/AimStance.hs 11;" t Aiming src/Dodge/Data/Creature/Stance.hs 39;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C -AllRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C +AllRoomClipBoundaries src/Dodge/Data/Config.hs 108;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 20;" C -Ambush src/Dodge/Data/ActionPlan.hs 155;" C +Ambush src/Dodge/Data/ActionPlan.hs 154;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C @@ -145,7 +145,7 @@ BloomLayer src/Picture/Data.hs 25;" C BloomNoZWrite src/Picture/Data.hs 26;" C Blunt src/Dodge/Data/Damage.hs 21;" C Boosting src/Dodge/Data/Creature/Stance.hs 32;" C -BottomMenuOption src/Dodge/Data/Universe.hs 68;" C +BottomMenuOption src/Dodge/Data/Universe.hs 77;" C BounceBullet src/Dodge/Data/Bullet.hs 30;" C Bound_box_screen src/Dodge/Data/Config.hs 81;" C BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C @@ -217,7 +217,7 @@ ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 31;" C ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 30;" C Circ_collision_test src/Dodge/Data/Config.hs 85;" C Climate src/Dodge/Data/Scenario.hs 32;" C -CloseToMelee src/Dodge/Data/ActionPlan.hs 164;" C +CloseToMelee src/Dodge/Data/ActionPlan.hs 163;" C Close_shape_culling src/Dodge/Data/Config.hs 79;" C Cloud src/Dodge/Data/Cloud.hs 14;" t CloudType src/Dodge/Data/Cloud.hs 22;" t @@ -319,7 +319,7 @@ Debris src/Dodge/Data/Prop.hs 48;" t DebrisChunk src/Dodge/Data/Prop.hs 48;" C DebrisType src/Dodge/Data/Prop.hs 42;" t DebugBool src/Dodge/Data/Config.hs 66;" t -DebugItem src/Dodge/Data/Universe.hs 50;" t +DebugItem src/Dodge/Data/Universe.hs 59;" t DebugLayer src/Picture/Data.hs 27;" C DecorationShape src/Dodge/Data/GenParams.hs 20;" t DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C @@ -344,7 +344,7 @@ DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 111;" C DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 97;" C DoActions src/Dodge/Data/ActionPlan.hs 116;" C DoImpulses src/Dodge/Data/ActionPlan.hs 86;" C -DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 146;" C +DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 145;" C DoNotMoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C DoReplicate src/Dodge/Data/ActionPlan.hs 126;" C DoReplicatePartial src/Dodge/Data/ActionPlan.hs 130;" C @@ -358,7 +358,7 @@ DoorObstacle src/Dodge/Data/PathGraph.hs 50;" C DoorOpen src/Dodge/Data/Door.hs 23;" C DoorPart src/Dodge/Data/Wall/Structure.hs 14;" C DoorStatus src/Dodge/Data/Door.hs 23;" t -DoubleRes src/Dodge/Data/Config.hs 96;" C +DoubleRes src/Dodge/Data/Config.hs 98;" C DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 16;" t DrWdId src/Dodge/Data/WorldEffect.hs 68;" C DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 69;" C @@ -381,7 +381,7 @@ Ears src/Dodge/Data/Creature/Perception.hs 47;" C East src/Dodge/Data/CardinalPoint.hs 7;" C East8 src/Dodge/Data/CardinalPoint.hs 22;" C EdgeObstacle src/Dodge/Data/PathGraph.hs 48;" t -EighthRes src/Dodge/Data/Config.hs 96;" C +EighthRes src/Dodge/Data/Config.hs 98;" C Eldritch src/Dodge/Data/Scenario.hs 34;" C ElectricSensor src/Dodge/Data/Machine/Sensor.hs 16;" C ElectricSpark src/Dodge/Data/Spark.hs 22;" C @@ -412,7 +412,7 @@ Explosive src/Dodge/Data/Damage.hs 29;" C ExplosiveBall src/Dodge/Data/EnergyBall/Type.hs 16;" C ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 89;" C ExplosivePutty src/Dodge/Data/AmmoType.hs 13;" C -ExtraMenuOption src/Dodge/Data/Universe.hs 67;" t +ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t Eyes src/Dodge/Data/Creature/Perception.hs 41;" C FBO src/Shader/Data.hs 57;" t FLAMESHIELD src/Dodge/Data/Item/Combine.hs 122;" C @@ -440,7 +440,7 @@ FlameSound src/Dodge/Data/SoundOrigin.hs 29;" C FlameletBall src/Dodge/Data/EnergyBall/Type.hs 14;" C Flamer src/Dodge/Data/SoundOrigin.hs 27;" C Flaming src/Dodge/Data/Damage.hs 25;" C -Flank src/Dodge/Data/ActionPlan.hs 154;" C +Flank src/Dodge/Data/ActionPlan.hs 153;" C FlareType src/Dodge/Data/Muzzle.hs 28;" t FlashBall src/Dodge/Data/EnergyBall/Type.hs 17;" C Flashing src/Dodge/Data/Damage.hs 27;" C @@ -448,7 +448,7 @@ FlatFaces src/Shape/Data.hs 17;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 16;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 45;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 52;" C -Flee src/Dodge/Data/ActionPlan.hs 168;" C +Flee src/Dodge/Data/ActionPlan.hs 167;" C Flesh src/Dodge/Data/Material.hs 11;" C FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 16;" C FloatConst src/Dodge/Data/FloatFunction.hs 17;" C @@ -462,13 +462,13 @@ FlockArmourChaseAI src/Dodge/Data/Creature/Misc.hs 48;" C Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 15;" t Flying src/Dodge/Data/Creature/Stance.hs 31;" C -FollowImpulses src/Dodge/Data/ActionPlan.hs 159;" C +FollowImpulses src/Dodge/Data/ActionPlan.hs 158;" C FootForward src/Dodge/Data/Creature/Stance.hs 35;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 31;" C ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t FromEdge src/Dodge/Data/Room.hs 49;" C -FullRes src/Dodge/Data/Config.hs 96;" C +FullRes src/Dodge/Data/Config.hs 98;" C FullShadowFidelity src/Shape/Data.hs 24;" C FullSize src/Dodge/Data/Item/Params.hs 28;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C @@ -485,7 +485,7 @@ GStuckCreature src/Dodge/Data/Projectile.hs 50;" C GStuckWall src/Dodge/Data/Projectile.hs 51;" C GYROSCOPE src/Dodge/Data/Item/Combine.hs 97;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 18;" C -GameOverOptions src/Dodge/Data/Universe.hs 63;" C +GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameRoom src/Dodge/GameRoom.hs 15;" t GasAmmo src/Dodge/Data/AmmoType.hs 11;" C GasCloud src/Dodge/Data/Cloud.hs 26;" C @@ -496,13 +496,13 @@ GenFloat src/Dodge/Data/GenFloat.hs 11;" t GenParams src/Dodge/Data/GenParams.hs 15;" t GenWorld src/Dodge/Data/GenWorld.hs 24;" t GenericFaction src/Dodge/Data/Creature/State.hs 15;" C -GeoObjShads src/Dodge/Data/Config.hs 100;" C -GetTo src/Dodge/Data/ActionPlan.hs 166;" C +GeoObjShads src/Dodge/Data/Config.hs 102;" C +GetTo src/Dodge/Data/ActionPlan.hs 165;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 43;" C Glass src/Dodge/Data/Material.hs 11;" C GlassBreakSound src/Dodge/Data/SoundOrigin.hs 35;" C -Goal src/Dodge/Data/ActionPlan.hs 174;" t +Goal src/Dodge/Data/ActionPlan.hs 173;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 14;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 13;" C GoesOnHead src/Dodge/Data/Equipment/Misc.hs 12;" C @@ -526,9 +526,9 @@ HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C HOSE src/Dodge/Data/Item/Combine.hs 55;" C HP src/Dodge/Data/Creature.hs 71;" C HUD src/Dodge/Data/HUD.hs 31;" t -HalfRes src/Dodge/Data/Config.hs 96;" C +HalfRes src/Dodge/Data/Config.hs 98;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C -HardQuit src/Dodge/Data/Universe.hs 61;" C +HardQuit src/Dodge/Data/Universe.hs 70;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C HeldItemType src/Dodge/Data/Item/Combine.hs 139;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 14;" C @@ -583,13 +583,13 @@ InanimateAI src/Dodge/Data/Creature/Misc.hs 41;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 13;" C InheritFloor src/Data/Tile.hs 12;" C Input src/Dodge/Data/Input.hs 35;" t -InputScreen src/Dodge/Data/Universe.hs 83;" C +InputScreen src/Dodge/Data/Universe.hs 92;" C Inspect_wall src/Dodge/Data/Config.hs 92;" C Institution src/Dodge/Data/Scenario.hs 42;" t Int2 src/Geometry/Data.hs 21;" t -IntID src/Dodge/Data/Universe.hs 101;" t +IntID src/Dodge/Data/Universe.hs 110;" t Intention src/Dodge/Data/Creature.hs 76;" t -IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C +IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 108;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C IntroScanType src/Dodge/Data/Item/Combine.hs 45;" t InvInt src/Dodge/Data/Item/Location.hs 17;" t @@ -597,7 +597,7 @@ InventoryChange src/Dodge/Data/World.hs 32;" C InventoryConnectSound src/Dodge/Data/SoundOrigin.hs 14;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 39;" t InventorySound src/Dodge/Data/SoundOrigin.hs 13;" C -Investigate src/Dodge/Data/ActionPlan.hs 161;" C +Investigate src/Dodge/Data/ActionPlan.hs 160;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C InwardShockwave src/Dodge/Data/Shockwave.hs 14;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C @@ -628,7 +628,7 @@ JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 13;" C JustStartedPlaying src/Sound/Data.hs 24;" C KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C -Kill src/Dodge/Data/ActionPlan.hs 176;" C +Kill src/Dodge/Data/ActionPlan.hs 175;" C LASER src/Dodge/Data/Item/Combine.hs 36;" C LDT src/Dodge/Data/DoubleTree.hs 34;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 29;" C @@ -680,19 +680,19 @@ LimitedFood src/Dodge/Data/Scenario.hs 39;" C LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 13;" t ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t -LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 175;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 174;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C -LoadingScreen src/Dodge/Data/Universe.hs 64;" C +LoadingScreen src/Dodge/Data/Universe.hs 73;" C LocDT src/Dodge/Data/DoubleTree.hs 101;" C LocLDT src/Dodge/Data/DoubleTree.hs 61;" C LocationDT src/Dodge/Data/DoubleTree.hs 101;" t LocationLDT src/Dodge/Data/DoubleTree.hs 61;" t LoneWolf src/Dodge/Data/Creature/State.hs 26;" C LongAI src/Dodge/Data/Creature/Misc.hs 50;" C -LookAround src/Dodge/Data/ActionPlan.hs 163;" C +LookAround src/Dodge/Data/ActionPlan.hs 162;" C LtAutoAI src/Dodge/Data/Creature/Misc.hs 44;" C -Lure src/Dodge/Data/ActionPlan.hs 156;" C +Lure src/Dodge/Data/ActionPlan.hs 155;" C MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 145;" C MAGENTA src/Color/Data.hs 20;" C MAGNET src/Dodge/Data/Item/Combine.hs 68;" C @@ -705,9 +705,9 @@ MICROCHIP src/Dodge/Data/Item/Combine.hs 72;" C MICROPHONE src/Dodge/Data/Item/Combine.hs 83;" C MINIDISPLAY src/Dodge/Data/Item/Combine.hs 77;" C MINIGUNX src/Dodge/Data/Item/Combine.hs 151;" C -MODBlockedString src/Dodge/Data/Universe.hs 87;" C -MODString src/Dodge/Data/Universe.hs 86;" C -MODStringOption src/Dodge/Data/Universe.hs 88;" C +MODBlockedString src/Dodge/Data/Universe.hs 96;" C +MODString src/Dodge/Data/Universe.hs 95;" C +MODStringOption src/Dodge/Data/Universe.hs 97;" C MOTOR src/Dodge/Data/Item/Combine.hs 64;" C MPO src/Dodge/Base/Collide.hs 98;" t MTRS src/Dodge/Data/MTRS.hs 6;" t @@ -753,10 +753,10 @@ MdWdWd src/Dodge/Data/WorldEffect.hs 45;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 30;" C Melee src/Dodge/Data/ActionPlan.hs 41;" C -MeleeStrike src/Dodge/Data/ActionPlan.hs 169;" C +MeleeStrike src/Dodge/Data/ActionPlan.hs 168;" C Memory src/Dodge/Data/Creature/Memory.hs 13;" t -MenuOption src/Dodge/Data/Universe.hs 90;" t -MenuOptionDisplay src/Dodge/Data/Universe.hs 85;" t +MenuOption src/Dodge/Data/Universe.hs 99;" t +MenuOptionDisplay src/Dodge/Data/Universe.hs 94;" t MetaBranch src/Dodge/Data/MetaTree.hs 18;" t MetaNode src/Dodge/Data/MetaTree.hs 14;" t MetaTree src/Dodge/Data/MetaTree.hs 11;" t @@ -823,13 +823,13 @@ NeverUsable src/Dodge/Data/UseCondition.hs 8;" C NewInt src/NewInt.hs 17;" t NewIntMap src/NewInt.hs 23;" t NewIntSet src/NewInt.hs 20;" t -NewSideEffect src/Dodge/Data/Universe.hs 56;" C +NewSideEffect src/Dodge/Data/Universe.hs 65;" C NoAction src/Dodge/Data/ActionPlan.hs 138;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C NoCrImp src/Dodge/Data/CreatureEffect.hs 11;" C -NoExtraMenuOption src/Dodge/Data/Universe.hs 70;" C +NoExtraMenuOption src/Dodge/Data/Universe.hs 79;" C NoFaction src/Dodge/Data/Creature/State.hs 20;" C NoFlare src/Dodge/Data/Muzzle.hs 29;" C NoHoming src/Dodge/Data/Projectile.hs 42;" C @@ -837,16 +837,16 @@ NoItTargeting src/Dodge/Data/Item.hs 44;" C NoItemScroll src/Dodge/Data/Item.hs 39;" C NoItemZone src/Dodge/Data/Machine/Sensor.hs 34;" C NoLightFlare src/Dodge/Data/Muzzle.hs 31;" C -NoLighting src/Dodge/Data/Config.hs 103;" C +NoLighting src/Dodge/Data/Config.hs 105;" C NoMouseContext src/Dodge/Data/Input.hs 16;" C NoMvType src/Dodge/Data/Creature/Misc.hs 29;" C -NoObjShads src/Dodge/Data/Config.hs 101;" C +NoObjShads src/Dodge/Data/Config.hs 103;" C NoParams src/Dodge/Data/Item/Params.hs 15;" C NoRightButtonState src/Dodge/Data/RightButtonOptions.hs 16;" C -NoRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C +NoRoomClipBoundaries src/Dodge/Data/Config.hs 108;" C NoSF src/Dodge/Data/ComposedItem.hs 29;" C NoShadowFidelity src/Shape/Data.hs 25;" C -NoShadows src/Dodge/Data/Config.hs 102;" C +NoShadows src/Dodge/Data/Config.hs 104;" C NoSubInventory src/Dodge/Data/HUD.hs 17;" C NoTrigger src/Dodge/Data/TriggerType.hs 11;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" C @@ -855,7 +855,7 @@ NodeMTree src/Dodge/Data/MetaTree.hs 16;" C NodeTree src/Dodge/Data/MetaTree.hs 15;" C NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 84;" C NonInf src/Dodge/Data/CardinalPoint.hs 36;" C -NormalOptions src/Dodge/Data/Universe.hs 63;" C +NormalOptions src/Dodge/Data/Universe.hs 72;" C NormalSpark src/Dodge/Data/Spark.hs 22;" C NormalTimeFlow src/Dodge/Data/World.hs 63;" C North src/Dodge/Data/CardinalPoint.hs 6;" C @@ -928,8 +928,8 @@ OnwardCluster src/Dodge/Data/RoomCluster.hs 13;" C Opacity src/Dodge/Data/Wall.hs 40;" t Opaque src/Dodge/Data/Wall.hs 44;" C OpticScope src/Dodge/Data/Item/Scope.hs 14;" C -OptionScreen src/Dodge/Data/Universe.hs 73;" C -OptionScreenFlag src/Dodge/Data/Universe.hs 63;" t +OptionScreen src/Dodge/Data/Universe.hs 82;" C +OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t OutAction src/Dodge/Creature/Action.hs 47;" t OutLink src/Dodge/Data/Room.hs 44;" C OutsideTerminal src/Dodge/Data/Input.hs 30;" C @@ -964,12 +964,15 @@ PSRoomRand src/Dodge/Data/GenWorld.hs 102;" C PSType src/Dodge/Data/GenWorld.hs 32;" t PUMP src/Dodge/Data/Item/Combine.hs 63;" C PaletteColor src/Color/Data.hs 14;" t +PathBetweenDebugV2s src/Dodge/Data/Universe.hs 56;" C +PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 55;" C PathEdge src/Dodge/Data/PathGraph.hs 40;" t PathEdgeNodes src/Dodge/Data/PathGraph.hs 33;" t PathFromEdge src/Dodge/Data/Room.hs 77;" t +PathShowType src/Dodge/Data/Universe.hs 54;" t PathTo src/Dodge/Data/ActionPlan.hs 76;" C Pathing src/Dodge/Data/Config.hs 76;" C -Patrol src/Dodge/Data/ActionPlan.hs 157;" C +Patrol src/Dodge/Data/ActionPlan.hs 156;" C PausedTimeFlow src/Dodge/Data/World.hs 79;" C Payload src/Dodge/Data/Payload.hs 11;" t PenetrateBullet src/Dodge/Data/Bullet.hs 31;" C @@ -1069,7 +1072,7 @@ PutTrigger src/Dodge/Data/GenWorld.hs 48;" C PutWall src/Dodge/Data/GenWorld.hs 55;" C PutWorldUpdate src/Dodge/Data/GenWorld.hs 60;" C QFloat src/Geometry/Data.hs 50;" t -QuarterRes src/Dodge/Data/Config.hs 96;" C +QuarterRes src/Dodge/Data/Config.hs 98;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 10;" C RAM src/Dodge/Data/Item/Combine.hs 74;" C RED src/Color/Data.hs 15;" C @@ -1100,7 +1103,7 @@ RectRoomType src/Dodge/Data/Room.hs 33;" C ReducedRocketSmoke src/Dodge/Data/Projectile.hs 55;" C ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C Religion src/Dodge/Data/Scenario.hs 47;" C -Reload src/Dodge/Data/ActionPlan.hs 167;" C +Reload src/Dodge/Data/ActionPlan.hs 166;" C RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 27;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 25;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 35;" C @@ -1110,7 +1113,7 @@ ReplaceEquipment src/Dodge/Data/RightButtonOptions.hs 31;" C RequireDeadCreatures src/Dodge/Data/Machine/Sensor.hs 39;" C RequireEquipment src/Dodge/Data/Machine/Sensor.hs 38;" C RequireHealth src/Dodge/Data/Machine/Sensor.hs 37;" C -ResFactor src/Dodge/Data/Config.hs 96;" t +ResFactor src/Dodge/Data/Config.hs 98;" t ResearchFacility src/Dodge/Data/Scenario.hs 62;" C ResourceFailure src/Dodge/Data/Scenario.hs 29;" C RespawnDelay src/Dodge/Data/World.hs 61;" C @@ -1128,7 +1131,7 @@ RocketHoming src/Dodge/Data/Projectile.hs 41;" t RocketSmoke src/Dodge/Data/Projectile.hs 54;" t RocketSmoke src/Dodge/Data/Cloud.hs 24;" C Room src/Dodge/Data/GenWorld.hs 123;" t -RoomClipping src/Dodge/Data/Config.hs 106;" t +RoomClipping src/Dodge/Data/Config.hs 108;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomLink src/Dodge/Data/Room.hs 24;" t RoomLinkType src/Dodge/Data/Room.hs 43;" t @@ -1140,7 +1143,7 @@ RoomProperties src/Dodge/Layout/Generate.hs 13;" t RoomType src/Dodge/Data/Room.hs 31;" t RoomWire src/Dodge/Data/Room.hs 53;" t RoundedFaces src/Shape/Data.hs 18;" C -RunningSideEffect src/Dodge/Data/Universe.hs 60;" C +RunningSideEffect src/Dodge/Data/Universe.hs 69;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 62;" C SHATTERGUN src/Dodge/Data/Item/Combine.hs 174;" C SHELLMAG src/Dodge/Data/Item/Combine.hs 110;" C @@ -1161,9 +1164,9 @@ STICKYMOD src/Dodge/Data/Item/Combine.hs 24;" C SaveSlot src/Dodge/Data/SaveSlot.hs 9;" t SaveSlotNum src/Dodge/Data/SaveSlot.hs 12;" C Scope src/Dodge/Data/Item/Scope.hs 13;" t -ScreenLayer src/Dodge/Data/Universe.hs 72;" t +ScreenLayer src/Dodge/Data/Universe.hs 81;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t -Search src/Dodge/Data/ActionPlan.hs 170;" C +Search src/Dodge/Data/ActionPlan.hs 169;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C SectionCursor src/Dodge/Data/SelectionList.hs 23;" t SeeAbove src/Dodge/Data/Wall.hs 42;" C @@ -1182,14 +1185,14 @@ SelfTree src/Dodge/Data/MetaTree.hs 20;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 14;" t SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 33;" C -SentinelAt src/Dodge/Data/ActionPlan.hs 177;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 176;" C SetLSCol src/Dodge/Data/WorldEffect.hs 26;" C SetTrigger src/Dodge/Data/WorldEffect.hs 24;" C ShadNum src/Picture/Data.hs 35;" t Shader src/Shader/Data.hs 51;" t ShaderTexture src/Shader/Data.hs 94;" t ShadowFidelity src/Shape/Data.hs 24;" t -ShadowRendering src/Dodge/Data/Config.hs 99;" t +ShadowRendering src/Dodge/Data/Config.hs 101;" t Shape src/Shape/Data.hs 53;" t ShapeProp src/Dodge/Data/Prop.hs 32;" C ShapeType src/Shape/Data.hs 16;" t @@ -1199,12 +1202,13 @@ ShellSound src/Dodge/Data/SoundOrigin.hs 28;" C ShieldGroup src/Dodge/Data/Creature/State.hs 32;" C Shockwave src/Dodge/Data/Shockwave.hs 17;" t ShockwaveDirection src/Dodge/Data/Shockwave.hs 14;" t -ShootAt src/Dodge/Data/ActionPlan.hs 158;" C +ShootAt src/Dodge/Data/ActionPlan.hs 157;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t Show_bound_box src/Dodge/Data/Config.hs 80;" C Show_dda_test src/Dodge/Data/Config.hs 83;" C Show_far_wall_detect src/Dodge/Data/Config.hs 86;" C +Show_mouse_click_pos src/Dodge/Data/Config.hs 95;" C Show_ms_frame src/Dodge/Data/Config.hs 67;" C Show_path_between src/Dodge/Data/Config.hs 93;" C Show_sound src/Dodge/Data/Config.hs 69;" C @@ -1212,14 +1216,15 @@ Show_wall_search_rays src/Dodge/Data/Config.hs 82;" C Show_walls_near_point_cursor src/Dodge/Data/Config.hs 87;" C Show_walls_near_point_you src/Dodge/Data/Config.hs 88;" C Show_walls_near_segment src/Dodge/Data/Config.hs 89;" C +Show_writable_values src/Dodge/Data/Config.hs 94;" C Show_zone_circ src/Dodge/Data/Config.hs 91;" C Show_zone_near_point_cursor src/Dodge/Data/Config.hs 90;" C ShrapnelBomb src/Dodge/Data/Payload.hs 12;" C ShrinkGunStatus src/Dodge/Data/Item/Params.hs 28;" t Shrunk src/Dodge/Data/Item/Params.hs 28;" C SideCluster src/Dodge/Data/RoomCluster.hs 13;" C -SideEffect src/Dodge/Data/Universe.hs 55;" t -SixteenthRes src/Dodge/Data/Config.hs 96;" C +SideEffect src/Dodge/Data/Universe.hs 64;" t +SixteenthRes src/Dodge/Data/Config.hs 98;" C Size src/Shape/Data.hs 28;" t SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C @@ -1253,7 +1258,7 @@ Sparking src/Dodge/Data/Damage.hs 22;" C Spatial src/Dodge/Data/Scenario.hs 73;" C SpatialInfluence src/Dodge/Data/Scenario.hs 81;" t SpawnedBy src/Dodge/Data/Creature/State.hs 19;" C -SplashOptions src/Dodge/Data/Universe.hs 63;" C +SplashOptions src/Dodge/Data/Universe.hs 72;" C SplitBeamCombine src/Dodge/Data/Beam.hs 42;" C SpreadGunAI src/Dodge/Data/Creature/Misc.hs 42;" C StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C @@ -1265,8 +1270,8 @@ StartSentinelPost src/Dodge/Data/ActionPlan.hs 139;" C StayInArea src/Dodge/Data/Scenario.hs 13;" C Stone src/Dodge/Data/Material.hs 11;" C StorageSS src/Dodge/Data/Scenario.hs 94;" C -Strategy src/Dodge/Data/ActionPlan.hs 153;" t -StrategyActions src/Dodge/Data/ActionPlan.hs 165;" C +Strategy src/Dodge/Data/ActionPlan.hs 152;" t +StrategyActions src/Dodge/Data/ActionPlan.hs 164;" C SubInventory src/Dodge/Data/HUD.hs 16;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t @@ -1351,12 +1356,12 @@ ToPlaySound src/Sound/Data.hs 35;" t ToStart src/Sound/Data.hs 26;" C ToStartMenu src/Sound/Data.hs 29;" C ToStop src/Sound/Data.hs 28;" C -Toggle src/Dodge/Data/Universe.hs 91;" C -Toggle2 src/Dodge/Data/Universe.hs 95;" C +Toggle src/Dodge/Data/Universe.hs 100;" C +Toggle2 src/Dodge/Data/Universe.hs 104;" C ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C TopDT src/Dodge/Data/DoubleTree.hs 85;" C TopLDT src/Dodge/Data/DoubleTree.hs 43;" C -TopMenuOption src/Dodge/Data/Universe.hs 69;" C +TopMenuOption src/Dodge/Data/Universe.hs 78;" C TorchSF src/Dodge/Data/ComposedItem.hs 45;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorqueCr src/Dodge/Data/WorldEffect.hs 31;" C @@ -1389,7 +1394,7 @@ UnderRoof src/Dodge/Data/Scenario.hs 79;" C UnderSea src/Dodge/Data/Scenario.hs 77;" C UniRandFloat src/Dodge/Data/GenFloat.hs 12;" C Unimportant src/Shape/Data.hs 37;" C -Universe src/Dodge/Data/Universe.hs 30;" t +Universe src/Dodge/Data/Universe.hs 31;" t UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 13;" C UnlockInv src/Dodge/Data/WorldEffect.hs 28;" C UnusedLink src/Dodge/Data/Room.hs 68;" C @@ -1459,8 +1464,8 @@ War src/Dodge/Data/Scenario.hs 28;" C WarmTime src/Dodge/Data/Item/Params.hs 21;" C WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C -WarningCry src/Dodge/Data/ActionPlan.hs 162;" C -WatchAndWait src/Dodge/Data/ActionPlan.hs 160;" C +WarningCry src/Dodge/Data/ActionPlan.hs 161;" C +WatchAndWait src/Dodge/Data/ActionPlan.hs 159;" C WdBl src/Dodge/Data/WorldEffect.hs 52;" t WdBlBtOn src/Dodge/Data/WorldEffect.hs 58;" C WdBlConst src/Dodge/Data/WorldEffect.hs 55;" C @@ -1511,7 +1516,7 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 33;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 29;" f _alphaDivideShader src/Data/Preload/Render.hs 18;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 20;" f -_ambushTarget src/Dodge/Data/ActionPlan.hs 155;" f +_ambushTarget src/Dodge/Data/ActionPlan.hs 154;" f _ampBullet src/Dodge/Data/Item/Use.hs 52;" f _ampCreateGas src/Dodge/Data/Item/Use.hs 54;" f _ampPayload src/Dodge/Data/Item/Use.hs 53;" f @@ -1524,7 +1529,7 @@ _apInt src/Dodge/Data/Item/Use.hs 47;" f _apProjectiles src/Dodge/Data/Item/Use.hs 46;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _aps src/Dodge/Data/Muzzle.hs 22;" f -_arbitraryAction src/Dodge/Data/ActionPlan.hs 144;" f +_arbitraryAction src/Dodge/Data/ActionPlan.hs 143;" f _arcNode src/Dodge/Data/LWorld.hs 113;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f _asObject src/Dodge/Data/ArcStep.hs 17;" f @@ -1619,8 +1624,8 @@ _cdtParent src/Dodge/Data/DoubleTree.hs 89;" f _cdtParent src/Dodge/Data/DoubleTree.hs 97;" f _cdtUp src/Dodge/Data/DoubleTree.hs 87;" f _cdtUp src/Dodge/Data/DoubleTree.hs 94;" f -_ceSideEffect src/Dodge/Data/Universe.hs 57;" f -_ceString src/Dodge/Data/Universe.hs 58;" f +_ceSideEffect src/Dodge/Data/Universe.hs 66;" f +_ceString src/Dodge/Data/Universe.hs 67;" f _chasmShader src/Data/Preload/Render.hs 46;" f _chasmVBO src/Data/Preload/Render.hs 45;" f _chasms src/Dodge/Data/CWorld.hs 30;" f @@ -1717,8 +1722,8 @@ _dbSpin src/Dodge/Data/Prop.hs 53;" f _dbType src/Dodge/Data/Prop.hs 50;" f _dbVel src/Dodge/Data/Prop.hs 51;" f _debris src/Dodge/Data/LWorld.hs 103;" f -_debugFunction src/Dodge/Data/Universe.hs 52;" f -_debugMessage src/Dodge/Data/Universe.hs 51;" f +_debugFunction src/Dodge/Data/Universe.hs 61;" f +_debugMessage src/Dodge/Data/Universe.hs 60;" f _debug_booleans src/Dodge/Data/Config.hs 57;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f _delayedEvents src/Dodge/Data/LWorld.hs 132;" f @@ -1795,7 +1800,7 @@ _ebType src/Dodge/Data/EnergyBall.hs 21;" f _ebVel src/Dodge/Data/EnergyBall.hs 18;" f _eboName src/Shader/Data.hs 89;" f _eboPtr src/Shader/Data.hs 90;" f -_emoMenuOption src/Dodge/Data/Universe.hs 68;" f +_emoMenuOption src/Dodge/Data/Universe.hs 77;" f _energyBalls src/Dodge/Data/LWorld.hs 107;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 14;" f _fbo2 src/Data/Preload/Render.hs 29;" f @@ -1813,7 +1818,7 @@ _flPos src/Dodge/Data/Flame.hs 15;" f _flTimer src/Dodge/Data/Flame.hs 14;" f _flVel src/Dodge/Data/Flame.hs 16;" f _flames src/Dodge/Data/LWorld.hs 108;" f -_flankTarget src/Dodge/Data/ActionPlan.hs 154;" f +_flankTarget src/Dodge/Data/ActionPlan.hs 153;" f _flares src/Dodge/Data/LWorld.hs 111;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 16;" f _floorItems src/Dodge/Data/LWorld.hs 129;" f @@ -1916,7 +1921,7 @@ _items src/Dodge/Data/LWorld.hs 98;" f _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f -_killTarget src/Dodge/Data/ActionPlan.hs 176;" f +_killTarget src/Dodge/Data/ActionPlan.hs 175;" f _lAimPos src/Dodge/Data/LWorld.hs 145;" f _lClock src/Dodge/Data/LWorld.hs 140;" f _lInvLock src/Dodge/Data/LWorld.hs 146;" f @@ -1969,7 +1974,7 @@ _lyGen src/Dodge/Data/MetaTree.hs 30;" f _machines src/Dodge/Data/LWorld.hs 123;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f _magnets src/Dodge/Data/LWorld.hs 126;" f -_mainAction src/Dodge/Data/ActionPlan.hs 148;" f +_mainAction src/Dodge/Data/ActionPlan.hs 147;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f _mapInvItmID src/Dodge/Data/HUD.hs 22;" f _mapInvOffset src/Dodge/Data/HUD.hs 20;" f @@ -2013,16 +2018,16 @@ _mdTimer src/Dodge/Data/Modification.hs 19;" f _mdUpdate src/Dodge/Data/Modification.hs 18;" f _mdUpdate src/Dodge/Data/Modification.hs 27;" f _meleeCooldown src/Dodge/Data/Creature/Misc.hs 70;" f -_meleeTarget src/Dodge/Data/ActionPlan.hs 164;" f +_meleeTarget src/Dodge/Data/ActionPlan.hs 163;" f _mgField src/Dodge/Data/Magnet.hs 25;" f _mgPos src/Dodge/Data/Magnet.hs 24;" f -_moEff src/Dodge/Data/Universe.hs 92;" f -_moEff1 src/Dodge/Data/Universe.hs 96;" f -_moEff2 src/Dodge/Data/Universe.hs 97;" f -_moString src/Dodge/Data/Universe.hs 93;" f -_moString src/Dodge/Data/Universe.hs 98;" f -_modOption src/Dodge/Data/Universe.hs 88;" f -_modString src/Dodge/Data/Universe.hs 86;" f +_moEff src/Dodge/Data/Universe.hs 101;" f +_moEff1 src/Dodge/Data/Universe.hs 105;" f +_moEff2 src/Dodge/Data/Universe.hs 106;" f +_moString src/Dodge/Data/Universe.hs 102;" f +_moString src/Dodge/Data/Universe.hs 107;" f +_modOption src/Dodge/Data/Universe.hs 97;" f +_modString src/Dodge/Data/Universe.hs 95;" f _modifications src/Dodge/Data/LWorld.hs 130;" f _mouseButtons src/Dodge/Data/Input.hs 40;" f _mouseButtonsReleased src/Dodge/Data/Input.hs 41;" f @@ -2127,7 +2132,7 @@ _prUpdate src/Dodge/Data/Prop.hs 22;" f _prUpdate src/Dodge/Data/Prop.hs 35;" f _prVel src/Dodge/Data/Prop.hs 24;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f -_preloadData src/Dodge/Data/Universe.hs 32;" f +_preloadData src/Dodge/Data/Universe.hs 33;" f _pressedKeys src/Dodge/Data/Input.hs 39;" f _projectiles src/Dodge/Data/LWorld.hs 104;" f _props src/Dodge/Data/LWorld.hs 102;" f @@ -2234,15 +2239,15 @@ _rsPos src/Dodge/Data/RadarSweep.hs 20;" f _rsRad src/Dodge/Data/RadarSweep.hs 21;" f _rsSource src/Dodge/Data/RadarSweep.hs 26;" f _rsTimer src/Dodge/Data/RadarSweep.hs 23;" f -_scAvailableLines src/Dodge/Data/Universe.hs 80;" f -_scDisplayTime src/Dodge/Data/Universe.hs 81;" f -_scInput src/Dodge/Data/Universe.hs 83;" f -_scOffset src/Dodge/Data/Universe.hs 76;" f -_scOptionFlag src/Dodge/Data/Universe.hs 78;" f -_scOptions src/Dodge/Data/Universe.hs 75;" f -_scPositionedMenuOption src/Dodge/Data/Universe.hs 77;" f -_scSelectionList src/Dodge/Data/Universe.hs 79;" f -_scTitle src/Dodge/Data/Universe.hs 74;" f +_scAvailableLines src/Dodge/Data/Universe.hs 89;" f +_scDisplayTime src/Dodge/Data/Universe.hs 90;" f +_scInput src/Dodge/Data/Universe.hs 92;" f +_scOffset src/Dodge/Data/Universe.hs 85;" f +_scOptionFlag src/Dodge/Data/Universe.hs 87;" f +_scOptions src/Dodge/Data/Universe.hs 84;" f +_scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f +_scSelectionList src/Dodge/Data/Universe.hs 88;" f +_scTitle src/Dodge/Data/Universe.hs 83;" f _screenTextureVAO src/Data/Preload/Render.hs 52;" f _scrollAmount src/Dodge/Data/Input.hs 42;" f _scrollItemID src/Dodge/Data/World.hs 68;" f @@ -2261,8 +2266,8 @@ _sensAmount src/Dodge/Data/Machine/Sensor.hs 22;" f _sensThreshold src/Dodge/Data/Machine/Sensor.hs 24;" f _sensType src/Dodge/Data/Machine/Sensor.hs 23;" f _sensorCoding src/Dodge/Data/GenParams.hs 16;" f -_sentinelDir src/Dodge/Data/ActionPlan.hs 177;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 177;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 176;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 176;" f _sfColor src/Shape/Data.hs 44;" f _sfShadowImportance src/Shape/Data.hs 45;" f _sfSize src/Shape/Data.hs 46;" f @@ -2284,7 +2289,7 @@ _siPayload src/Dodge/Data/SelectionList.hs 49;" f _siPictures src/Dodge/Data/SelectionList.hs 43;" f _siWidth src/Dodge/Data/SelectionList.hs 45;" f _sideEffect src/Loop/Data.hs 13;" f -_sideImpulses src/Dodge/Data/ActionPlan.hs 147;" f +_sideImpulses src/Dodge/Data/ActionPlan.hs 146;" f _silhouetteEBO src/Data/Preload/Render.hs 27;" f _skOldPos src/Dodge/Data/Spark.hs 17;" f _skPos src/Dodge/Data/Spark.hs 16;" f @@ -2417,22 +2422,25 @@ _useMapperPoints src/Dodge/Data/Item/Use.hs 41;" f _useSelf src/Dodge/Data/ActionPlan.hs 141;" f _useToggle src/Dodge/Data/Item/Use.hs 38;" f _useUpTo src/Dodge/Data/Muzzle.hs 63;" 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 -_uvDebugFloat1 src/Dodge/Data/Universe.hs 44;" f -_uvDebugFloat2 src/Dodge/Data/Universe.hs 45;" f -_uvDebugMessageOffset src/Dodge/Data/Universe.hs 46;" f -_uvFrameTicks src/Dodge/Data/Universe.hs 41;" f -_uvIOEffects src/Dodge/Data/Universe.hs 34;" f -_uvLastFrameTicks src/Dodge/Data/Universe.hs 40;" f -_uvMSeed src/Dodge/Data/Universe.hs 39;" f -_uvRAMSave src/Dodge/Data/Universe.hs 42;" f -_uvScreenLayers src/Dodge/Data/Universe.hs 33;" f -_uvSideEffects src/Dodge/Data/Universe.hs 35;" f -_uvSoundQueue src/Dodge/Data/Universe.hs 47;" f -_uvTestString src/Dodge/Data/Universe.hs 37;" f -_uvWorld src/Dodge/Data/Universe.hs 31;" f +_uvCanContinue src/Dodge/Data/Universe.hs 39;" f +_uvConfig src/Dodge/Data/Universe.hs 37;" f +_uvDebug src/Dodge/Data/Universe.hs 44;" f +_uvDebugFloat1 src/Dodge/Data/Universe.hs 45;" f +_uvDebugFloat2 src/Dodge/Data/Universe.hs 46;" f +_uvDebugMessageOffset src/Dodge/Data/Universe.hs 50;" f +_uvDebugPathShowType src/Dodge/Data/Universe.hs 49;" f +_uvDebugV2_1 src/Dodge/Data/Universe.hs 47;" f +_uvDebugV2_2 src/Dodge/Data/Universe.hs 48;" f +_uvFrameTicks src/Dodge/Data/Universe.hs 42;" f +_uvIOEffects src/Dodge/Data/Universe.hs 35;" f +_uvLastFrameTicks src/Dodge/Data/Universe.hs 41;" f +_uvMSeed src/Dodge/Data/Universe.hs 40;" f +_uvRAMSave src/Dodge/Data/Universe.hs 43;" f +_uvScreenLayers src/Dodge/Data/Universe.hs 34;" f +_uvSideEffects src/Dodge/Data/Universe.hs 36;" f +_uvSoundQueue src/Dodge/Data/Universe.hs 51;" f +_uvTestString src/Dodge/Data/Universe.hs 38;" f +_uvWorld src/Dodge/Data/Universe.hs 32;" f _vaCount src/Shader/Data.hs 69;" f _vaNormalize src/Shader/Data.hs 71;" f _vaOffset src/Shader/Data.hs 72;" f @@ -2583,6 +2591,7 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f anythingHitCirc src/Dodge/Base/Collide.hs 348;" f applyCME src/Dodge/HeldUse.hs 369;" f +applyClip src/Dodge/Debug.hs 99;" f applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f applyEventIO src/Loop.hs 89;" f applyGravityPU src/Dodge/Projectile/Update.hs 40;" f @@ -2593,7 +2602,7 @@ applyPastDamages src/Dodge/Creature/State.hs 49;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 23;" f applyPosition src/Sound.hs 111;" f applyRecoil src/Dodge/HeldUse.hs 459;" f -applyResFactor src/Dodge/Data/Config.hs 109;" f +applyResFactor src/Dodge/Data/Config.hs 111;" f applySetTerminalString src/Dodge/Debug/Terminal.hs 83;" f applySidePush src/Dodge/HeldUse.hs 559;" f applySoundCME src/Dodge/HeldUse.hs 449;" f @@ -2662,7 +2671,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -barrelShape src/Dodge/Render/ShapePicture.hs 79;" f +barrelShape src/Dodge/Render/ShapePicture.hs 78;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseCI src/Dodge/Item/Grammar.hs 158;" f @@ -2746,7 +2755,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 69;" f bright src/Color.hs 120;" f brightX src/Color.hs 116;" f -btSPic src/Dodge/Render/ShapePicture.hs 128;" f +btSPic src/Dodge/Render/ShapePicture.hs 127;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPokedVBO src/Shader/Bind.hs 19;" f @@ -3013,7 +3022,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 39;" f crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f cubeShape src/Dodge/Block/Debris.hs 103;" f -cullPoint src/Dodge/Render/ShapePicture.hs 95;" f +cullPoint src/Dodge/Render/ShapePicture.hs 94;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f @@ -3068,12 +3077,15 @@ deadUpperBody src/Dodge/Creature/Picture.hs 113;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f debrisSPic src/Dodge/Prop/Draw.hs 20;" f debrisSize src/Dodge/Block/Debris.hs 77;" f -debugEvent src/Dodge/Debug.hs 35;" f -debugEvents src/Dodge/Debug.hs 21;" f -debugItem src/Dodge/Debug.hs 38;" f +debugEvent src/Dodge/Debug.hs 37;" f +debugEvents src/Dodge/Debug.hs 22;" f +debugItem src/Dodge/Debug.hs 40;" f debugMenu src/Dodge/Menu.hs 124;" f debugMenuOptions src/Dodge/Menu.hs 130;" f -debugOn src/Dodge/Data/Config.hs 150;" f +debugMouseClickPos src/Dodge/Debug.hs 113;" f +debugOn src/Dodge/Data/Config.hs 152;" f +debugShowPath src/Dodge/Debug.hs 72;" f +debugWritableValues src/Dodge/Debug.hs 87;" f decodeSensorType src/Dodge/Terminal.hs 72;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 61;" f decomposeTree src/Dodge/Tree/Compose.hs 58;" f @@ -3102,7 +3114,7 @@ defaultCWGen src/Dodge/Default/World.hs 57;" f defaultCWorld src/Dodge/Default/World.hs 82;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f -defaultConfig src/Dodge/Data/Config.hs 126;" f +defaultConfig src/Dodge/Data/Config.hs 128;" f defaultCraftItem src/Dodge/Default/Item.hs 25;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f @@ -3229,7 +3241,7 @@ doLoop src/Loop.hs 60;" f doMagnetBuBu src/Dodge/Bullet.hs 35;" f doModificationEffect src/Dodge/ModificationEffect.hs 7;" f doPrWdLsLs src/Dodge/PrWdLsLs.hs 8;" f -doPreload appDodge/Main.hs 136;" f +doPreload appDodge/Main.hs 139;" f doPropUpdates src/Dodge/Prop/Update.hs 34;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f @@ -3239,7 +3251,7 @@ doRoomPlacements src/Dodge/Layout.hs 100;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Scroll.hs 91;" f doSectionSize src/Dodge/DisplayInventory.hs 211;" f -doSideEffects appDodge/Main.hs 121;" f +doSideEffects appDodge/Main.hs 124;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 172;" f doTestDrawing src/Dodge/Render.hs 41;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -3279,30 +3291,30 @@ drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f drawBeam src/Dodge/Beam/Draw.hs 6;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlock src/Dodge/Block/Draw.hs 7;" f -drawBoundingBox src/Dodge/Debug/Picture.hs 348;" f -drawBullet src/Dodge/Render/ShapePicture.hs 134;" f +drawBoundingBox src/Dodge/Debug/Picture.hs 355;" f +drawBullet src/Dodge/Render/ShapePicture.hs 133;" f drawButton src/Dodge/Button/Draw.hs 10;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f -drawChasm src/Dodge/Render/ShapePicture.hs 51;" f +drawChasm src/Dodge/Render/ShapePicture.hs 50;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f -drawCliff src/Dodge/Render/ShapePicture.hs 54;" f +drawCliff src/Dodge/Render/ShapePicture.hs 53;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 269;" f drawCombineInventory src/Dodge/Render/HUD.hs 182;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f -drawCoord src/Dodge/Debug/Picture.hs 376;" f -drawCrInfo src/Dodge/Debug.hs 73;" f -drawCrInfo' src/Dodge/Debug.hs 68;" f -drawCreature src/Dodge/Render/ShapePicture.hs 70;" f +drawCoord src/Dodge/Debug/Picture.hs 383;" f +drawCrInfo src/Dodge/Debug.hs 137;" f +drawCrInfo' src/Dodge/Debug.hs 132;" f +drawCreature src/Dodge/Render/ShapePicture.hs 69;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 198;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 72;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f -drawDDATest src/Dodge/Debug/Picture.hs 303;" f +drawDDATest src/Dodge/Debug/Picture.hs 310;" f drawDamSensor src/Dodge/Machine/Draw.hs 27;" f -drawDebug src/Dodge/Debug.hs 107;" f -drawDoorPaths src/Dodge/Debug/Picture.hs 253;" f +drawDebug src/Dodge/Debug.hs 174;" f +drawDoorPaths src/Dodge/Debug/Picture.hs 260;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 95;" f drawDrag src/Dodge/Render/Picture.hs 200;" f drawDragDrop src/Dodge/Render/Picture.hs 229;" f @@ -3315,7 +3327,7 @@ drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 127;" f drawExamineInventory src/Dodge/Render/HUD.hs 198;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f -drawFarWallDetect src/Dodge/Debug/Picture.hs 270;" f +drawFarWallDetect src/Dodge/Debug/Picture.hs 277;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 37;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f @@ -3323,8 +3335,8 @@ drawGapPlus src/Dodge/Render/Picture.hs 280;" f drawGib src/Dodge/Prop/Draw.hs 39;" f drawHUD src/Dodge/Render/HUD.hs 51;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 19;" f -drawInspectWall src/Dodge/Debug/Picture.hs 245;" f -drawInspectWalls src/Dodge/Debug/Picture.hs 233;" f +drawInspectWall src/Dodge/Debug/Picture.hs 252;" f +drawInspectWalls src/Dodge/Debug/Picture.hs 240;" f drawInventory src/Dodge/Render/HUD.hs 58;" f drawItemChildrenConnect src/Dodge/Render/HUD.hs 329;" f drawItemConnections src/Dodge/Render/HUD.hs 319;" f @@ -3348,19 +3360,19 @@ drawMenuOrHUD src/Dodge/Render/Picture.hs 69;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 14;" f drawMouseCursor src/Dodge/Render/Picture.hs 85;" f drawMouseOver src/Dodge/Render/HUD.hs 109;" f -drawMousePosition src/Dodge/Debug/Picture.hs 366;" f +drawMousePosition src/Dodge/Debug/Picture.hs 373;" f drawMovingShape src/Dodge/Prop/Draw.hs 81;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 87;" f drawOptions src/Dodge/Render/MenuScreen.hs 22;" f drawPathBetween src/Dodge/Debug/Picture.hs 201;" f -drawPathEdge src/Dodge/Debug/Picture.hs 258;" f -drawPathing src/Dodge/Debug/Picture.hs 398;" f +drawPathEdge src/Dodge/Debug/Picture.hs 265;" f +drawPathing src/Dodge/Debug/Picture.hs 405;" f drawPlus src/Dodge/Render/Picture.hs 165;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 26;" f drawProxSensor src/Dodge/Machine/Draw.hs 37;" f -drawPulseBall src/Dodge/Render/ShapePicture.hs 62;" f +drawPulseBall src/Dodge/Render/ShapePicture.hs 61;" f drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f drawRBOptions src/Dodge/Render/HUD.hs 251;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f @@ -3395,15 +3407,15 @@ drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 212;" f drawVerticalLampCover src/Dodge/Prop/Draw.hs 71;" f drawWall src/Dodge/Wall/Draw.hs 7;" f drawWallFace src/Dodge/Debug/Picture.hs 73;" f -drawWallSearchRays src/Dodge/Debug/Picture.hs 312;" f -drawWallsNearCursor src/Dodge/Debug/Picture.hs 222;" f +drawWallSearchRays src/Dodge/Debug/Picture.hs 319;" f +drawWallsNearCursor src/Dodge/Debug/Picture.hs 229;" f drawWallsNearSegment src/Dodge/Debug/Picture.hs 130;" f -drawWallsNearYou src/Dodge/Debug/Picture.hs 213;" f +drawWallsNearYou src/Dodge/Debug/Picture.hs 220;" f drawWeapon src/Dodge/Creature/Volition.hs 15;" f -drawWlIDs src/Dodge/Debug/Picture.hs 384;" f -drawZoneCirc src/Dodge/Debug/Picture.hs 292;" f +drawWlIDs src/Dodge/Debug/Picture.hs 391;" f +drawZoneCirc src/Dodge/Debug/Picture.hs 299;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f -drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 285;" f +drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 292;" f dropAll src/Dodge/Creature/Update.hs 129;" f dropExcept src/Dodge/Creature/Action.hs 166;" f dropInventoryPath src/Dodge/HeldUse.hs 1351;" f @@ -3435,7 +3447,7 @@ ebEffect src/Dodge/EnergyBall.hs 45;" f ebFlicker src/Dodge/EnergyBall.hs 70;" f ebtToDamage src/Dodge/EnergyBall.hs 93;" f edgeFormatting src/Dodge/Combine/Graph.hs 131;" f -edgeToPic src/Dodge/Debug/Picture.hs 407;" f +edgeToPic src/Dodge/Debug/Picture.hs 414;" f effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnRemove src/Dodge/Equipment.hs 19;" f eitType src/Dodge/Data/EquipType.hs 15;" f @@ -3488,7 +3500,7 @@ explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f -extraPics src/Dodge/Render/ShapePicture.hs 100;" f +extraPics src/Dodge/Render/ShapePicture.hs 99;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f @@ -3545,7 +3557,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 204;" f flockPointTargetR src/Dodge/Creature/Boid.hs 272;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 232;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 231;" f -floorItemSPic src/Dodge/Render/ShapePicture.hs 121;" f +floorItemSPic src/Dodge/Render/ShapePicture.hs 120;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f @@ -3950,7 +3962,7 @@ lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f lamp src/Dodge/Creature/Lamp.hs 21;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 84;" f +lampCrSPic src/Dodge/Render/ShapePicture.hs 83;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 412;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f @@ -4160,7 +4172,7 @@ mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 104;" f mcProxSensorUpdate src/Dodge/Machine/Update.hs 139;" f mcProxTest src/Dodge/Machine/Update.hs 203;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f -mcSPic src/Dodge/Render/ShapePicture.hs 131;" f +mcSPic src/Dodge/Render/ShapePicture.hs 130;" f mcShootAuto src/Dodge/HeldUse.hs 1169;" f mcShootLaser src/Dodge/HeldUse.hs 1162;" f mcTriggerVal src/Dodge/Machine/Update.hs 110;" f @@ -4311,7 +4323,7 @@ numSelfTree' src/Dodge/Tree/Compose.hs 110;" f numShads src/Picture/Data.hs 42;" f numSubElements src/Shader/Parameters.hs 39;" f numTraversable src/TreeHelp.hs 184;" f -obstacleColor src/Dodge/Debug/Picture.hs 263;" f +obstacleColor src/Dodge/Debug/Picture.hs 270;" f obstructPathsCrossing src/Dodge/Path.hs 138;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f onEquipWristShield src/Dodge/Equipment.hs 37;" f @@ -4342,7 +4354,7 @@ outwardIntegers src/Dodge/Base.hs 181;" f overCol src/Picture/Base.hs 308;" f overColObj src/Shape.hs 273;" f overColSH src/Shape.hs 241;" f -overDebugEvent src/Dodge/Debug.hs 29;" f +overDebugEvent src/Dodge/Debug.hs 31;" f overLnkPosDir src/Dodge/RoomLink.hs 115;" f overLnkType src/Dodge/RoomLink.hs 105;" f overPos src/Picture/Base.hs 303;" f @@ -4430,7 +4442,7 @@ playIfFree src/Sound.hs 137;" f playPositionalSoundQueue src/Sound.hs 145;" f playSoundAndUpdate src/Sound.hs 54;" f playSoundQueue src/Sound.hs 132;" f -playSoundUnlessRewinding appDodge/Main.hs 114;" f +playSoundUnlessRewinding appDodge/Main.hs 117;" f plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f pmLineLoop src/Shader/Data.hs 107;" f pmLineStrip src/Shader/Data.hs 107;" f @@ -4876,6 +4888,7 @@ sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f setAimPosture src/Dodge/Creature/YourControl.hs 145;" f setChannelPos src/Sound.hs 150;" f setClickWorldPos src/Dodge/Update.hs 101;" f +setClip src/Dodge/Debug.hs 160;" f setClusterID src/Dodge/Combine/Graph.hs 116;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f @@ -4947,7 +4960,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 78;" f shiftByV2 src/Dodge/PlacementSpot.hs 250;" f shiftChildren src/Dodge/Tree/Compose.hs 44;" f -shiftDraw src/Dodge/Render/ShapePicture.hs 89;" f +shiftDraw src/Dodge/Render/ShapePicture.hs 88;" f shiftInBy src/Dodge/PlacementSpot.hs 247;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f @@ -5045,7 +5058,7 @@ soundMultiFrom src/Dodge/SoundLogic.hs 187;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 296;" f -soundPic src/Dodge/Debug/Picture.hs 353;" f +soundPic src/Dodge/Debug/Picture.hs 360;" f soundStart src/Dodge/SoundLogic.hs 118;" f soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 150;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f @@ -5137,6 +5150,7 @@ stripZ src/Geometry/Vector3D.hs 97;" f subInvX src/Dodge/ListDisplayParams.hs 46;" f subMap src/TreeHelp.hs 119;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f +succB src/Dodge/Debug.hs 82;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 57;" f swapInOutLinks src/Dodge/RoomLink.hs 98;" f swapIndices src/ListHelp.hs 50;" f @@ -5208,7 +5222,7 @@ tflat3 src/Picture/Data.hs 64;" f tflat4 src/Picture/Data.hs 68;" f theCleanup appDodge/Main.hs 74;" f theColumns src/Dodge/Tree/Shift.hs 146;" f -theUpdateStep appDodge/Main.hs 106;" f +theUpdateStep appDodge/Main.hs 109;" f thickArc src/Picture/Base.hs 298;" f thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f @@ -5462,7 +5476,7 @@ updateRadarBlips src/Dodge/Update.hs 561;" f updateRadarSweep src/Dodge/RadarSweep.hs 40;" f updateRadarSweeps src/Dodge/Update.hs 663;" f updateRandNode src/TreeHelp.hs 109;" f -updateRenderSplit appDodge/Main.hs 109;" f +updateRenderSplit appDodge/Main.hs 112;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Scroll.hs 79;" f @@ -5550,8 +5564,8 @@ verticalPipe src/Dodge/Picture.hs 19;" f verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f verticalWire src/Dodge/Wire.hs 24;" f vgunMuzzles src/Dodge/HeldUse.hs 341;" f -viewBoundaries src/Dodge/Debug/Picture.hs 321;" f -viewClipBounds src/Dodge/Debug/Picture.hs 330;" f +viewBoundaries src/Dodge/Debug/Picture.hs 328;" f +viewClipBounds src/Dodge/Debug/Picture.hs 337;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f violet src/Color.hs 21;" f @@ -5629,7 +5643,7 @@ wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wordsBy src/ListHelp.hs 116;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 18;" f -worldSPic src/Dodge/Render/ShapePicture.hs 23;" f +worldSPic src/Dodge/Render/ShapePicture.hs 22;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f