From f9bcac915f60790eef6b8d2ed9776be19a55cd2c Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 15 Oct 2025 14:19:38 +0100 Subject: [PATCH] Commit before trying to remove reified impulses --- src/Dodge/Creature.hs.orig | 307 ----------------------------- src/Dodge/Creature/Action/Blink.hs | 10 +- src/Dodge/Creature/AutoCrit.hs | 4 +- src/Dodge/Creature/ReaderUpdate.hs | 63 +++--- src/Dodge/Data/ActionPlan.hs | 4 +- src/Dodge/Debug.hs | 1 + tags | 210 ++++++++++---------- 7 files changed, 147 insertions(+), 452 deletions(-) delete mode 100644 src/Dodge/Creature.hs.orig diff --git a/src/Dodge/Creature.hs.orig b/src/Dodge/Creature.hs.orig deleted file mode 100644 index 307d2eec1..000000000 --- a/src/Dodge/Creature.hs.orig +++ /dev/null @@ -1,307 +0,0 @@ -module Dodge.Creature - ( module Dodge.Creature - , module Dodge.Creature.Inanimate - ) - where --- imports {{{ -import Dodge.Data.Creature -import Dodge.AIs -import Dodge.CreatureState -import Dodge.Default -import Dodge.Base -import Dodge.Item.Weapon -import Dodge.Item.Consumable -import Dodge.WorldEvent.Cloud -import Dodge.Creature.YourControl -import Dodge.Creature.Inanimate - -import Picture -import Geometry - -import Data.List -import Data.Char -import Data.Maybe -import Data.Function -import Data.Graph.Inductive.Graph -import Data.Graph.Inductive.PatriciaTree -import Codec.BMP -import qualified Data.ByteString as B -import Control.Lens -import Control.Applicative -import Control.Monad.State -import Control.Monad -import System.Random -import qualified Data.Set as S -import qualified IntMapHelp as IM -import qualified Data.Map as M -import Foreign.ForeignPtr -import Control.Concurrent - -colouredEnemy col = color col $ circleSolid 10, circLine 10 - -spawnerCrit :: Creature -spawnerCrit = defaultCreature - { _crUpdate = stateUpdate $ spawnerAI chaseCrit - , _crHP = 300 - , _crPict = enemyPict blue - , _crState = defaultState {_goals = [[WaitFor 0]] - } - , _crInv = IM.empty -- IM.fromList [(0,frontArmour)] - } -smallChaseCrit :: Creature -smallChaseCrit = defaultCreature - { _crUpdate = stateUpdate chaseAI - , _crHP = 1 - , _crRad = 4 - , _crPict = enemyPict green - , _crState = defaultState {_goals = [[Wait]] - ,_faction = ChaseCritters} - , _crInv = IM.empty -- IM.fromList [(0,frontArmour)] - , _crCorpse = onLayer CorpseLayer $ color (greyN 0.5) $ circleSolid 4 - } -chaseCrit :: Creature -chaseCrit = defaultCreature - { _crUpdate = stateUpdate chaseAI - , _crHP = 300 - , _crPict = enemyPict green - , _crState = defaultState {_goals = [[Wait]] - ,_faction = ChaseCritters} - , _crInv = IM.empty - } -armourChaseCrit :: Creature -armourChaseCrit = defaultCreature - { _crUpdate = stateUpdate chaseAI - , _crHP = 300 - , _crPict = enemyPict green - , _crState = defaultState {_goals = [[Wait]]} - , _crInv = IM.fromList [(0,frontArmour)] - } -miniGunCrit :: Creature -miniGunCrit = defaultCreature - { _crPict = enemyPict red - , _crUpdate = stateUpdate miniAI - , _crInv = IM.fromList [(0,miniGun)] - , _crInvSel = 0 - , _crRad = 10 - , _crState = defaultState {_goals = [[InitGuard]]} - , _crHP = 500 - } -longCrit :: Creature -longCrit = defaultCreature - { _crPict = enemyPict red - , _crUpdate = stateUpdate sniperAI - , _crInv = IM.fromList [(0,longGun),(1,medkit 100)] - , _crInvSel = 0 - , _crRad = 10 - , _crState = defaultState {_goals = [[InitGuard]]} - , _crHP = 300 - } -multGunCrit :: Creature -multGunCrit = defaultCreature - { _crPict = enemyPict red - , _crUpdate = stateUpdate (twitchMissAI 300 350) - , _crInv = IM.fromList [(0,multGun),(1,medkit 100)] - , _crInvSel = 0 - , _crRad = 10 - , _crState = defaultState {_goals = [[InitGuard]]} - , _crHP = 300 - } -launcherCrit :: Creature -launcherCrit = defaultCreature - { _crPict = enemyPict red - , _crUpdate = stateUpdate (launcherAI 150 200) - , _crInv = IM.fromList [(0,launcher),(1,medkit 100)] - , _crInvSel = 0 - , _crRad = 10 - , _crState = defaultState {_goals = [[Init]]} - , _crHP = 300 - } -spreadGunCrit :: Creature -spreadGunCrit = defaultCreature - { _crPict = enemyPict red - , _crUpdate = stateUpdate chargeAI - , _crInv = IM.fromList [(0,spreadGun),(1,medkit 100)] - , _crInvSel = 0 - , _crRad = 10 - , _crState = defaultState {_goals = [[Init]]} - , _crHP = 300 - } -pistolCrit :: Creature -pistolCrit = defaultCreature - { _crPict = enemyPict red - , _crUpdate = stateUpdate (dodgeAI 150 200) - , _crInv = IM.fromList [(0,pistol),(1,medkit 100)] - , _crInvSel = 0 - , _crRad = 10 - , _crState = defaultState {_goals = [[InitGuard]]} - , _crHP = 500 - } -autoCrit :: Creature -autoCrit = defaultCreature - { _crPict = enemyPict red - --, _crUpdate = checkDeadStopSound n . shooterFootsteps n . makeStateAI autoShooterAI n - , _crUpdate = stateUpdate basicShooterAI - --, _crUpdate = shooterFootsteps n . makeStateAI autoShooterAI n - , _crInv = IM.fromList [(0,autoGun),(1,medkit 100)] - , _crInvSel = 0 - , _crRad = 10 - --, _crState = ShooterWait - , _crState = defaultState {_goals = [[InitGuard]]} - , _crHP = 300 - } -addArmour :: Creature -> Creature -addArmour = over crInv insarmour - where insarmour xs = IM.insert i frontArmour xs - where i = newKey xs - -equipOnTop :: (Creature -> Picture) -> Creature -> Picture -equipOnTop f cr = onLayer CrLayer (f cr) <> drawEquipment cr - -drawEquipment :: Creature -> Picture -drawEquipment cr = foldMap f $ IM.toList (_crInv cr) - where f (i,it) = case it ^? itEquipPict of - Just g -> g cr i - _ -> blank - -frontArmouredPict = const $ fold [ color (greyN 0.8) $ circleSolid 20 - , color red $ circLine 20 - ] - ---packCrits :: (Int -> World -> World) -> [Int] -> [Creature] ---packCrits ai is = [(defaultCreature i) --- { _crPos = (150,10+20*fromIntegral i) --- , _crPict = swarmPict --- , _crUpdate = ai i --- --, _crUpdate = swarmAI is i --- , _crRad = 3 --- , _crHP = 1 --- , _crMass = 2 --- } --- | i <- is] - ---queenBeeCrit :: Int -> Creature ---queenBeeCrit cID = (defaultCreature cID) --- { _crRad = 20 --- , _crCorpse = color (greyN 0.5) $ circleSolid 20 --- , _crPict = const $ pictures [color black $ circSolid 20 --- ,color yellow $ circLine 20 --- ] --- , _crUpdate = checkDead cID . makeStateAI queenBeeAI cID --- , _crState = QueenBee 0 20 --- , _crMass = 20 --- } - ---antCrit :: Int -> Creature ---antCrit cID = (defaultCreature cID) --- { _crPos = (0,100 + 3 * fromIntegral cID) --- , _crUpdate = checkDead cID . makeStateAI (antAI 2) cID --- , _crState = AntMove 50 --- , _crPict = antPic --- , _crRad = 3 --- , _crHP = 1 --- , _crMass = 2 --- , _crCorpse = color (greyN 0.5) $ circSolid 3 --- } --- where i = evalState (state (randomR (1::Int,100))) (mkStdGen cID) ---antPic = const $ pictures [ translate (-1) 0 $ circleSolid 2 --- , translate (2) 0 $ circleSolid 1 --- , translate (1) 0 $ circleSolid 1 --- , line [(3,3),(-3,-3)] --- , line [(-3,3),(3,-3)] --- , line [(0,-3),(0,3)] --- ] - -flamerPict = const $ pictures [color (light $ light $ light $ dim blue) $ circleSolid 10, circLine 10] - - - -goalPict cr = let r = _crRad cr in case _crState cr of - CrSt {_goals = gls ,_crDamage = crDam } --- | crDam > _crHP cr -> color white $ circleSolid r - | otherwise -> case head gls of - [] -> sizeColEnemy r white - (MoveToFor p i:_) -> dImpulses $ sizeColEnemy r green - (WaitFor x:_) -> dImpulses $ sizeColEnemy r yellow - (FireAt p:_) -> dImpulses $ sizeColEnemy r red - (Reload:_) -> dImpulses $ sizeColEnemy r orange - (PathTo p:_) -> dImpulses $ sizeColEnemy r cyan - (SubPathTo p i _:_) -> dImpulses $ sizeColEnemy r blue - (Search i:_) -> dImpulses $ sizeColEnemy r black - _ -> dImpulses $ sizeColEnemy r magenta - where dImpulses p = pictures [p, rotate (0 - _crDir cr) $ scale 0.1 0.1 $ color white $ text $ show gls] - _ -> sizeColEnemy r (light $ dim green) - -startCr :: Creature -startCr = defaultCreature - { _crPos = (0,0) - , _crOldPos = (0,0) - , _crDir = 0 - , _crID = 0 - , _crPict = basicCrPict $ greyN 0.8 - - , _crUpdate = stateUpdate yourControl - , _crRad = 10 - , _crMass = 10 - , _crHP = 10000 - , _crMaxHP = 1500 - , _crInv = IM.fromList (zip [0..20] -<<<<<<< HEAD:src/Dodge/Creature.hs - ( - [pistol,autoGun,launcher,lasGun,grenade - ,ltAutoGun,flamer,multGun,spreadGun,remoteLauncher - ,longGun - ,hvAutoGun - ,teslaGun - ,latchkey 0 - ,miniGun - ,medkit 50 - ,bezierGun - ,poisonSprayer - ,blinkGun - ,frontArmour - ] - ++ repeat NoItem)) - -- startInv -======= - ([pistol,flameGrenade, teslaGrenade, autoGun,launcher,flameLauncher, poisonLauncher, teslaLauncher, lasGun,grenade - ,ltAutoGun,flamer,multGun,spreadGun,remoteLauncher - ,longGun - ,hvAutoGun - ,teslaGun - ,latchkey 0 - ,miniGun - ,medkit 50 - ,bezierGun - ,poisonSprayer - ,blinkGun - ] - ++ repeat NoItem)) - -- startInv ->>>>>>> testing:src/Dodge/Critters.hs - , _crCorpse = onLayer CorpseLayer $ color (greyN 0.5) $ pictures [color (greyN 0.8) $ circleSolid 10, circLine 10] - } - -smokeGenGun = effectGun "smoke" $ \_ -> spawnSmokeAtCursor - -enemyPict :: Color -> Creature -> Picture -enemyPict col = equipOnTop $ sizeEnemy (light $ light $ light $ light col) - -sizeEnemy col cr - | pdam > 200 = color red $ circleSolid $ _crRad cr - | pdam > 100 = color white $ circleSolid $ _crRad cr - | mod pdam 2 == 1 = color white $ circleSolid $ _crRad cr - | otherwise = pictures [color col $ circleSolid $ _crRad cr - , circLine $ _crRad cr ] - where pdam = _crPastDamage $ _crState cr - -sizeColEnemy r col = pictures [color col $ circleSolid r, circLine r] - -basicCrPict :: Color -> Creature -> Picture -basicCrPict col cr = pictures [ onLayer CrLayer naked , drawEquipment cr] - where naked | pdam > 200 = color red $ circleSolid $ _crRad cr - | pdam > 100 = color white $ circleSolid $ _crRad cr - | mod pdam 2 == 1 = color white $ circleSolid $ _crRad cr - -- | crDam > _crHP cr && odd (crDam - _crHP cr) - -- = [color white $ circleSolid $ _crRad cr] - | otherwise = pictures [color col $ circleSolid $ _crRad cr, circLine $ _crRad cr] - pdam = _crPastDamage $ _crState cr diff --git a/src/Dodge/Creature/Action/Blink.hs b/src/Dodge/Creature/Action/Blink.hs index 805b58af0..0834821cd 100644 --- a/src/Dodge/Creature/Action/Blink.hs +++ b/src/Dodge/Creature/Action/Blink.hs @@ -54,10 +54,7 @@ blinkDistortions sp ep = cWorld . lWorld . distortions .++~ distortionBulge {- | Teleport a creature to the mouse position. Can go through walls, if ending up in wall does big damage. -} -unsafeBlinkAction :: - Creature -> - World -> - World +unsafeBlinkAction :: Creature -> World -> World unsafeBlinkAction cr w | success = soundMultiFrom [TeleSound 0, TeleSound 1] mwp teleS Nothing @@ -86,10 +83,7 @@ blinkShockwave :: blinkShockwave i p = makeShockwaveAt [i] (p `v2z` 20) 60 1 2 cyan -- | Like a blink action, but no ingoing distortion -blinkActionFail :: - Creature -> - World -> - World +blinkActionFail :: Creature -> World -> World blinkActionFail cr w = w & soundMultiFrom [TeleSound 0, TeleSound 1] p3 teleS Nothing diff --git a/src/Dodge/Creature/AutoCrit.hs b/src/Dodge/Creature/AutoCrit.hs index 2214a6dbc..b803ccd48 100644 --- a/src/Dodge/Creature/AutoCrit.hs +++ b/src/Dodge/Creature/AutoCrit.hs @@ -1,6 +1,4 @@ -module Dodge.Creature.AutoCrit ( - autoCrit, -) where +module Dodge.Creature.AutoCrit ( autoCrit) where --import Dodge.Item.Held.Cane --import Control.Lens diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index 0cdf310ad..71a8b29ff 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -13,25 +13,24 @@ module Dodge.Creature.ReaderUpdate ( setViewPos, ) where -import Linear -import Dodge.Creature.Vocalization -import Dodge.Creature.Radius -import RandomHelp -import Dodge.Creature.Perception -import qualified IntMapHelp as IM -import Data.List (sortOn) import Control.Applicative -import LensHelp import Control.Monad import Data.Bifunctor +import Data.List (sortOn) import Data.Maybe import Dodge.Base ---import Dodge.Creature.Volition +import Dodge.Creature.Perception +import Dodge.Creature.Radius +import Dodge.Creature.Vocalization import Dodge.Data.CreatureEffect import Dodge.Data.World import Dodge.Zoning.Creature import FoldableHelp import Geometry +import qualified IntMapHelp as IM +import LensHelp +import Linear +import RandomHelp overrideMeleeCloseTarget :: Creature -> Creature overrideMeleeCloseTarget cr = maybe cr (tryMeleeAttack cr) (_targetCr $ _crIntention cr) @@ -43,12 +42,15 @@ tryMeleeAttack cr tcr && dist tpos cpos < crRad (cr ^. crType) + crRad (tcr ^. crType) + 5 && abs (_crDir cr - argV (tpos -.- cpos)) < pi / 4 = cr & crActionPlan . apImpulse .~ [Melee $ _crID tcr] - & crActionPlan . apAction .~ [DoReplicate 10 NoAction `DoActionThen` DoImpulses - [ChangeStrategy (CloseToMelee $ _crID tcr)] ] + & crActionPlan . apAction + .~ [ DoReplicate 10 NoAction + `DoActionThen` DoImpulses + [ChangeStrategy (CloseToMelee $ _crID tcr)] + ] & crActionPlan . apStrategy .~ MeleeStrike | otherwise = cr where - cpos = cr ^. crPos . _xy + cpos = cr ^. crPos . _xy tpos = tcr ^. crPos . _xy setMvPos :: World -> Creature -> Creature @@ -92,7 +94,7 @@ flockACC w cr = case cr ^? crIntention . targetCr . _Just of Nothing -> cr Just tcr -> let tpos = tcr ^. crPos . _xy - cpos = cr ^. crPos . _xy + cpos = cr ^. crPos . _xy isFarACC cr' = _crGroup cr' == _crGroup cr && _crID cr' /= _crID cr @@ -117,19 +119,25 @@ chaseCritMv w cr = case _apStrategy (_crActionPlan cr) of StrategyActions _ _ -> cr WarningCry -> cr MeleeStrike -> cr - CloseToMelee cid | Just 0 == (cr ^? crVocalization . vcCoolDown) - -> cr & crActionPlan . apAction - .:~ ImpulsesList ( [Bark soundid] : replicate numjits [RandomImpulse thejitter] - ++ [[ChangeStrategy (CloseToMelee cid)]]) - & crVocalization . vcCoolDown .~ 10 - & crActionPlan . apStrategy .~ WarningCry + CloseToMelee cid + | Just 0 == (cr ^? crVocalization . vcCoolDown) -> + cr + & crActionPlan . apAction + .:~ ImpulsesList + ( [Bark soundid] : + replicate numjits [RandomImpulse thejitter] + ++ [[ChangeStrategy (CloseToMelee cid)]] + ) + & crVocalization . vcCoolDown .~ 10 + & crActionPlan . apStrategy .~ WarningCry where thejitter = RandImpulseCircMove 3 soundid = evalState (takeOne (crWarningSounds cr)) (_randGen w) numjits = fst $ randomR (15, 25) (_randGen w) _ -> case cr ^? crIntention . mvToPoint . _Just of Just p - | dist (cr ^. crPos . _xy) p > crRad (cr ^. crType) -> cr & crActionPlan . apAction .~ [PathTo p] + | dist (cr ^. crPos . _xy) p > crRad (cr ^. crType) -> + cr & crActionPlan . apAction .~ [PathTo p] | otherwise -> cr & crActionPlan . apAction .~ [bfsThenReturn 500 `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait]] & crActionPlan . apStrategy .~ WatchAndWait @@ -151,12 +159,13 @@ viewTarget w cr = case cr ^? crIntention . viewPoint . _Just of cr & crActionPlan . apAction .~ [TurnToPoint p] --- %~ replaceNullWith --- ( TurnToPoint p --- ) + -- %~ replaceNullWith + -- ( TurnToPoint p + -- ) & crIntention . viewPoint .~ Nothing & crActionPlan . apStrategy .~ Investigate - | otherwise -> cr & crActionPlan . apAction %~ replaceNullWith (PathTo p) + | otherwise -> + cr & crActionPlan . apAction %~ replaceNullWith (PathTo p) & crActionPlan . apStrategy .~ Investigate Nothing -> cr @@ -198,8 +207,10 @@ targetYouWhenCognizant :: World -> Creature -> Creature targetYouWhenCognizant w cr = case cr ^? crPerception . cpAwareness . ix 0 of -- so this caused a space leak: be careful with ?~ -- consider changing targeted creature to be just an index - Just (Cognizant _) -> (w ^?! cWorld . lWorld . creatures . ix 0) `seq` - cr & crIntention . targetCr ?~ (w ^?! cWorld . lWorld . creatures . ix 0) + Just (Cognizant _) -> + (w ^?! cWorld . lWorld . creatures . ix 0) + `seq` cr + & crIntention . targetCr ?~ (w ^?! cWorld . lWorld . creatures . ix 0) & crPerception . cpVigilance .~ Vigilant _ -> cr & crIntention . targetCr .~ Nothing diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index d3a0ff532..109dd2015 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -85,9 +85,7 @@ data Action { _targetID :: Int , _targetSeenAt :: Point2 } - | PathTo - { _pathToPoint :: Point2 - } + | PathTo { _pathToPoint :: Point2 } | TurnToPoint { _turnToPoint :: Point2 } diff --git a/src/Dodge/Debug.hs b/src/Dodge/Debug.hs index f502dd631..9743ea1eb 100644 --- a/src/Dodge/Debug.hs +++ b/src/Dodge/Debug.hs @@ -89,6 +89,7 @@ drawCrInfo u = foldMap f . IM.elems $ w ^. cWorld . lWorld . creatures , 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)) diff --git a/tags b/tags index 2a8961575..a55c23c2b 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 204;" o +<$> src/Dodge/Data/ActionPlan.hs 202;" o <$> src/Dodge/Data/CWorld.hs 47;" o <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 89;" o @@ -47,7 +47,7 @@ AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 106;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 20;" C -Ambush src/Dodge/Data/ActionPlan.hs 178;" C +Ambush src/Dodge/Data/ActionPlan.hs 176;" 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 @@ -58,7 +58,7 @@ AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoPerShot src/Dodge/Data/Muzzle.hs 61;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 5;" t -ArbitraryAction src/Dodge/Data/ActionPlan.hs 166;" C +ArbitraryAction src/Dodge/Data/ActionPlan.hs 164;" C ArbitraryImpulse src/Dodge/Data/ActionPlan.hs 47;" C ArbitraryImpulseEffect src/Dodge/Data/ActionPlan.hs 48;" C ArbitraryImpulseFunction src/Dodge/Data/ActionPlan.hs 46;" C @@ -220,7 +220,7 @@ ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 62;" C ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 61;" 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 187;" C +CloseToMelee src/Dodge/Data/ActionPlan.hs 185;" 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 @@ -343,18 +343,18 @@ DisplayTerminal src/Dodge/Data/HUD.hs 29;" C Display_debug src/Dodge/Data/Config.hs 68;" C Distortion src/Dodge/Data/Distortion.hs 12;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C -DoActionIf src/Dodge/Data/ActionPlan.hs 116;" C -DoActionIfElse src/Dodge/Data/ActionPlan.hs 120;" C -DoActionThen src/Dodge/Data/ActionPlan.hs 133;" C -DoActionWhile src/Dodge/Data/ActionPlan.hs 107;" C -DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 125;" C -DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 111;" C -DoActions src/Dodge/Data/ActionPlan.hs 130;" C -DoImpulses src/Dodge/Data/ActionPlan.hs 100;" C -DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 169;" C +DoActionIf src/Dodge/Data/ActionPlan.hs 114;" C +DoActionIfElse src/Dodge/Data/ActionPlan.hs 118;" C +DoActionThen src/Dodge/Data/ActionPlan.hs 131;" C +DoActionWhile src/Dodge/Data/ActionPlan.hs 105;" C +DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 123;" C +DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 109;" C +DoActions src/Dodge/Data/ActionPlan.hs 128;" C +DoImpulses src/Dodge/Data/ActionPlan.hs 98;" C +DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 167;" C DoNotMoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C -DoReplicate src/Dodge/Data/ActionPlan.hs 140;" C -DoReplicatePartial src/Dodge/Data/ActionPlan.hs 144;" C +DoReplicate src/Dodge/Data/ActionPlan.hs 138;" C +DoReplicatePartial src/Dodge/Data/ActionPlan.hs 142;" C DockingBaySS src/Dodge/Data/Scenario.hs 92;" C Door src/Dodge/Data/Door.hs 34;" t DoorClosed src/Dodge/Data/Door.hs 23;" C @@ -447,7 +447,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 177;" C +Flank src/Dodge/Data/ActionPlan.hs 175;" 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 @@ -455,7 +455,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 191;" C +Flee src/Dodge/Data/ActionPlan.hs 189;" 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 @@ -469,7 +469,7 @@ 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 182;" C +FollowImpulses src/Dodge/Data/ActionPlan.hs 180;" 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 @@ -504,12 +504,12 @@ 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 189;" C +GetTo src/Dodge/Data/ActionPlan.hs 187;" 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 197;" t +Goal src/Dodge/Data/ActionPlan.hs 195;" 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 @@ -578,7 +578,7 @@ ImpulseNothing src/Dodge/Data/ActionPlan.hs 58;" C ImpulseUseAheadPos src/Dodge/Data/ActionPlan.hs 55;" C ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 52;" C ImpulseUseTargetCID src/Dodge/Data/ActionPlan.hs 49;" C -ImpulsesList src/Dodge/Data/ActionPlan.hs 97;" C +ImpulsesList src/Dodge/Data/ActionPlan.hs 95;" C InDivineZone src/Dodge/Data/Scenario.hs 22;" C InDream src/Dodge/Data/Scenario.hs 19;" C InInv src/Dodge/Data/Item/Location.hs 27;" C @@ -607,7 +607,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 184;" C +Investigate src/Dodge/Data/ActionPlan.hs 182;" 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 @@ -638,7 +638,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 199;" C +Kill src/Dodge/Data/ActionPlan.hs 197;" 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 @@ -675,7 +675,7 @@ LaundrySS src/Dodge/Data/Scenario.hs 115;" C LayVars src/Dodge/Data/MetaTree.hs 29;" C Layer src/Picture/Data.hs 22;" t LayoutVars src/Dodge/Data/MetaTree.hs 29;" t -LeadTarget src/Dodge/Data/ActionPlan.hs 149;" C +LeadTarget src/Dodge/Data/ActionPlan.hs 147;" C LeftForward src/Dodge/Data/Creature/Stance.hs 35;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 86;" C LeftwardLDT src/Dodge/Data/DoubleTree.hs 44;" C @@ -690,7 +690,7 @@ 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 198;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 196;" 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 @@ -700,9 +700,9 @@ 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 186;" C +LookAround src/Dodge/Data/ActionPlan.hs 184;" C LtAutoAI src/Dodge/Data/Creature/Misc.hs 44;" C -Lure src/Dodge/Data/ActionPlan.hs 179;" C +Lure src/Dodge/Data/ActionPlan.hs 177;" 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 @@ -767,7 +767,7 @@ 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 192;" C +MeleeStrike src/Dodge/Data/ActionPlan.hs 190;" 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 @@ -838,7 +838,7 @@ 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 -NoAction src/Dodge/Data/ActionPlan.hs 152;" C +NoAction src/Dodge/Data/ActionPlan.hs 150;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 43;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -990,7 +990,7 @@ PathEdgeNodes src/Dodge/Data/PathGraph.hs 33;" t PathFromEdge src/Dodge/Data/Room.hs 77;" t PathTo src/Dodge/Data/ActionPlan.hs 88;" C Pathing src/Dodge/Data/Config.hs 76;" C -Patrol src/Dodge/Data/ActionPlan.hs 180;" C +Patrol src/Dodge/Data/ActionPlan.hs 178;" 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 @@ -1121,7 +1121,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 190;" C +Reload src/Dodge/Data/ActionPlan.hs 188;" 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 @@ -1184,7 +1184,7 @@ 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 ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t -Search src/Dodge/Data/ActionPlan.hs 193;" C +Search src/Dodge/Data/ActionPlan.hs 191;" 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 @@ -1203,7 +1203,7 @@ 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 200;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 198;" C SetLSCol src/Dodge/Data/WorldEffect.hs 26;" C SetTrigger src/Dodge/Data/WorldEffect.hs 24;" C ShadNum src/Picture/Data.hs 35;" t @@ -1220,7 +1220,7 @@ 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 181;" C +ShootAt src/Dodge/Data/ActionPlan.hs 179;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t Show_bound_box src/Dodge/Data/Config.hs 80;" C @@ -1282,12 +1282,12 @@ StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C Stance src/Dodge/Data/Creature/Stance.hs 17;" t StandaloneWall src/Dodge/Data/Wall/Structure.hs 13;" C Standing src/Dodge/Data/Creature/Stance.hs 29;" C -StartSentinelPost src/Dodge/Data/ActionPlan.hs 153;" C +StartSentinelPost src/Dodge/Data/ActionPlan.hs 151;" 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 176;" t -StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C +Strategy src/Dodge/Data/ActionPlan.hs 174;" t +StrategyActions src/Dodge/Data/ActionPlan.hs 186;" C SubInventory src/Dodge/Data/HUD.hs 16;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t @@ -1391,7 +1391,7 @@ TriggerType src/Dodge/Data/TriggerType.hs 7;" t TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C Turn src/Dodge/Data/ActionPlan.hs 30;" C TurnTo src/Dodge/Data/ActionPlan.hs 36;" C -TurnToPoint src/Dodge/Data/ActionPlan.hs 91;" C +TurnToPoint src/Dodge/Data/ActionPlan.hs 89;" C TurnToward src/Dodge/Data/ActionPlan.hs 33;" C TurnTowardCr src/Dodge/Data/CreatureEffect.hs 25;" C Turret src/Dodge/Data/Machine.hs 51;" t @@ -1414,7 +1414,7 @@ Universe src/Dodge/Data/Universe.hs 30;" 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 -UseAheadPos src/Dodge/Data/ActionPlan.hs 160;" C +UseAheadPos src/Dodge/Data/ActionPlan.hs 158;" C UseAttach src/Dodge/Data/Item/Use.hs 32;" C UseBulletMod src/Dodge/Data/Item/Use.hs 37;" C UseCondition src/Dodge/Data/UseCondition.hs 4;" t @@ -1428,11 +1428,11 @@ UseInvItem src/Dodge/Data/WorldEffect.hs 35;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItemWidth src/Dodge/Data/SelectionList.hs 39;" C UseMapper src/Dodge/Data/Item/Use.hs 39;" C -UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C +UseMvTargetPos src/Dodge/Data/ActionPlan.hs 161;" C UseNothing src/Dodge/Data/Item/Use.hs 34;" C UseScope src/Dodge/Data/Item/Use.hs 36;" C -UseSelf src/Dodge/Data/ActionPlan.hs 157;" C -UseTarget src/Dodge/Data/ActionPlan.hs 154;" C +UseSelf src/Dodge/Data/ActionPlan.hs 155;" C +UseTarget src/Dodge/Data/ActionPlan.hs 152;" C UseToggle src/Dodge/Data/Item/Use.hs 38;" C UseUpTo src/Dodge/Data/Muzzle.hs 63;" C UseValue src/Dodge/Data/Item/Use.hs 35;" C @@ -1467,7 +1467,7 @@ WHITE src/Color/Data.hs 27;" C WIRE src/Dodge/Data/Item/Combine.hs 86;" C WRISTARMOUR src/Dodge/Data/Item/Combine.hs 124;" C WRIST_ECG src/Dodge/Data/Item/Combine.hs 136;" C -WaitThen src/Dodge/Data/ActionPlan.hs 103;" C +WaitThen src/Dodge/Data/ActionPlan.hs 101;" C Walking src/Dodge/Data/Creature/Stance.hs 25;" C Wall src/Dodge/Data/Wall.hs 20;" t WallArcNode src/Dodge/Data/LWorld.hs 158;" C @@ -1483,8 +1483,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 185;" C -WatchAndWait src/Dodge/Data/ActionPlan.hs 183;" C +WarningCry src/Dodge/Data/ActionPlan.hs 183;" C +WatchAndWait src/Dodge/Data/ActionPlan.hs 181;" 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 @@ -1536,7 +1536,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 178;" f +_ambushTarget src/Dodge/Data/ActionPlan.hs 176;" 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 @@ -1549,7 +1549,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 167;" f +_arbitraryAction src/Dodge/Data/ActionPlan.hs 165;" 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 @@ -1766,27 +1766,27 @@ _dmPos src/Dodge/Data/Damage.hs 27;" f _dmVector src/Dodge/Data/Damage.hs 20;" f _dmVector src/Dodge/Data/Damage.hs 23;" f _dmVector src/Dodge/Data/Damage.hs 26;" f -_doActionIfAction src/Dodge/Data/ActionPlan.hs 118;" f -_doActionIfCondition src/Dodge/Data/ActionPlan.hs 117;" f -_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 122;" f -_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 123;" f -_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 121;" f -_doActionThenFirst src/Dodge/Data/ActionPlan.hs 134;" f -_doActionThenSecond src/Dodge/Data/ActionPlan.hs 135;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 109;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 114;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 108;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 113;" f -_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 112;" f -_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 127;" f -_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 126;" f -_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 128;" f -_doActionsList src/Dodge/Data/ActionPlan.hs 131;" f -_doImpulsesList src/Dodge/Data/ActionPlan.hs 101;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 142;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 147;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 141;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 146;" f +_doActionIfAction src/Dodge/Data/ActionPlan.hs 116;" f +_doActionIfCondition src/Dodge/Data/ActionPlan.hs 115;" f +_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 120;" f +_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 121;" f +_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 119;" f +_doActionThenFirst src/Dodge/Data/ActionPlan.hs 132;" f +_doActionThenSecond src/Dodge/Data/ActionPlan.hs 133;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 107;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 112;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 106;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 111;" f +_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 110;" f +_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 125;" f +_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 124;" f +_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 126;" f +_doActionsList src/Dodge/Data/ActionPlan.hs 129;" f +_doImpulsesList src/Dodge/Data/ActionPlan.hs 99;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 140;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 145;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 139;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 144;" f _doors src/Dodge/Data/LWorld.hs 122;" f _drClosePos src/Dodge/Data/Door.hs 42;" f _drDeath src/Dodge/Data/Door.hs 44;" f @@ -1838,7 +1838,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 177;" f +_flankTarget src/Dodge/Data/ActionPlan.hs 175;" 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 @@ -1921,7 +1921,7 @@ _immediateUpdate src/Loop/Data.hs 12;" f _impulseUseAheadPos src/Dodge/Data/ActionPlan.hs 56;" f _impulseUseTarget src/Dodge/Data/ActionPlan.hs 53;" f _impulseUseTargetCID src/Dodge/Data/ActionPlan.hs 50;" f -_impulsesListList src/Dodge/Data/ActionPlan.hs 98;" f +_impulsesListList src/Dodge/Data/ActionPlan.hs 96;" f _input src/Dodge/Data/World.hs 43;" f _isWarming src/Dodge/Data/Item/Params.hs 23;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f @@ -1943,7 +1943,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 199;" f +_killTarget src/Dodge/Data/ActionPlan.hs 197;" 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 @@ -1962,7 +1962,7 @@ _ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f _ldtLeft src/Dodge/Data/DoubleTree.hs 36;" f _ldtRight src/Dodge/Data/DoubleTree.hs 37;" f _ldtValue src/Dodge/Data/DoubleTree.hs 35;" f -_leadTargetBy src/Dodge/Data/ActionPlan.hs 150;" f +_leadTargetBy src/Dodge/Data/ActionPlan.hs 148;" f _lightSources src/Dodge/Data/LWorld.hs 135;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f @@ -1996,7 +1996,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 171;" f +_mainAction src/Dodge/Data/ActionPlan.hs 169;" 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 @@ -2040,7 +2040,7 @@ _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 187;" f +_meleeTarget src/Dodge/Data/ActionPlan.hs 185;" 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 @@ -2093,10 +2093,10 @@ _opTexture src/Dodge/Data/Wall.hs 44;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 20;" f _opticPos src/Dodge/Data/Item/Scope.hs 16;" f _opticZoom src/Dodge/Data/Item/Scope.hs 19;" f -_partialAction src/Dodge/Data/ActionPlan.hs 145;" f +_partialAction src/Dodge/Data/ActionPlan.hs 143;" f _pastWorlds src/Dodge/Data/World.hs 38;" f _pathGraph src/Dodge/Data/CWorld.hs 28;" f -_pathToPoint src/Dodge/Data/ActionPlan.hs 89;" f +_pathToPoint src/Dodge/Data/ActionPlan.hs 88;" f _pbID src/Dodge/Data/PulseLaser.hs 24;" f _pbPos src/Dodge/Data/PulseLaser.hs 22;" f _pbTimer src/Dodge/Data/PulseLaser.hs 23;" f @@ -2288,8 +2288,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 200;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 200;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 198;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 198;" f _sfColor src/Shape/Data.hs 44;" f _sfShadowImportance src/Shape/Data.hs 45;" f _sfSize src/Shape/Data.hs 46;" f @@ -2311,7 +2311,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 170;" f +_sideImpulses src/Dodge/Data/ActionPlan.hs 168;" 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 @@ -2419,7 +2419,7 @@ _tuDir src/Dodge/Data/Machine.hs 55;" f _tuFireTime src/Dodge/Data/Machine.hs 54;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 53;" f _tuWeapon src/Dodge/Data/Machine.hs 52;" f -_turnToPoint src/Dodge/Data/ActionPlan.hs 92;" f +_turnToPoint src/Dodge/Data/ActionPlan.hs 90;" f _uInt src/Dodge/Data/Item/Use.hs 33;" f _uScope src/Dodge/Data/Item/Use.hs 36;" f _uValue src/Dodge/Data/Item/Use.hs 35;" f @@ -2438,13 +2438,13 @@ _unTO src/Shader/Data.hs 59;" f _unfiredBarrels src/Dodge/Data/Item/Params.hs 19;" f _unpauseClock src/Dodge/Data/World.hs 56;" f _unputTerminal src/Dodge/Data/GenWorld.hs 43;" f -_useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f +_useAheadPos src/Dodge/Data/ActionPlan.hs 159;" f _useExactly src/Dodge/Data/Muzzle.hs 62;" f _useMapperLines src/Dodge/Data/Item/Use.hs 40;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 41;" f -_useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f -_useSelf src/Dodge/Data/ActionPlan.hs 158;" f -_useTarget src/Dodge/Data/ActionPlan.hs 155;" f +_useMvTargetPos src/Dodge/Data/ActionPlan.hs 162;" f +_useSelf src/Dodge/Data/ActionPlan.hs 156;" f +_useTarget src/Dodge/Data/ActionPlan.hs 153;" 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 @@ -2491,8 +2491,8 @@ _vxPos src/Picture/Data.hs 14;" f _vxShadNum src/Picture/Data.hs 18;" f _wCam src/Dodge/Data/World.hs 55;" f _wTime src/Dodge/Data/Item/Params.hs 22;" f -_waitThenAction src/Dodge/Data/ActionPlan.hs 105;" f -_waitThenTimer src/Dodge/Data/ActionPlan.hs 104;" f +_waitThenAction src/Dodge/Data/ActionPlan.hs 103;" f +_waitThenTimer src/Dodge/Data/ActionPlan.hs 102;" f _wallDamages src/Dodge/Data/LWorld.hs 121;" f _wallShader src/Data/Preload/Render.hs 48;" f _wallVBO src/Data/Preload/Render.hs 47;" f @@ -2667,7 +2667,7 @@ attachList src/Dodge/Tree/Compose.hs 80;" f attachOnward src/Dodge/Tree/Compose.hs 95;" f attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f -attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 69;" f +attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 71;" f attribSize src/Shader/Compile.hs 306;" f autoAmr src/Dodge/Item/Held/Rod.hs 39;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 488;" f @@ -2720,7 +2720,7 @@ batteryPack src/Dodge/Item/Equipment.hs 46;" f belowNumX src/Dodge/Combine/Graph.hs 86;" f beltMag src/Dodge/Item/Ammo.hs 39;" f bfsNodePoints src/Dodge/Path.hs 57;" f -bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 219;" f +bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 230;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f bgunSound src/Dodge/HeldUse.hs 514;" f bindFBO src/Render.hs 245;" f @@ -2821,7 +2821,7 @@ charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 24;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 27;" f chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f -chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 115;" f +chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 117;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" f @@ -3277,7 +3277,7 @@ 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 -doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 167;" f +doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 176;" f doTestDrawing src/Dodge/Render.hs 41;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f @@ -3339,7 +3339,7 @@ drawCursorAt src/Dodge/Render/List.hs 72;" f drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 139;" f drawDDATest src/Dodge/Debug/Picture.hs 303;" f drawDamSensor src/Dodge/Machine/Draw.hs 27;" f -drawDebug src/Dodge/Debug.hs 104;" f +drawDebug src/Dodge/Debug.hs 107;" f drawDoorPaths src/Dodge/Debug/Picture.hs 253;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 95;" f drawDrag src/Dodge/Render/Picture.hs 200;" f @@ -3575,7 +3575,7 @@ fleeFromTarget src/Dodge/CreatureEffect.hs 68;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f floatSize src/Shader/Parameters.hs 17;" f -flockACC src/Dodge/Creature/ReaderUpdate.hs 90;" f +flockACC src/Dodge/Creature/ReaderUpdate.hs 92;" f flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockCenterFunc src/Dodge/Creature/Boid.hs 255;" f flockChaseTarget src/Dodge/Creature/Boid.hs 186;" f @@ -3697,7 +3697,7 @@ glassSwitchBackCrits src/Dodge/Room/Room.hs 106;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 400;" f glushortSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f -goToTarget src/Dodge/Creature/ReaderUpdate.hs 139;" f +goToTarget src/Dodge/Creature/ReaderUpdate.hs 147;" f grahamEliminate src/Geometry/Polygon.hs 163;" f grahamScan src/Geometry/Polygon.hs 154;" f grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f @@ -4047,7 +4047,7 @@ linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 239;" f listControls src/Dodge/Menu.hs 251;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f -listGuard src/Dodge/Creature/ReaderUpdate.hs 191;" f +listGuard src/Dodge/Creature/ReaderUpdate.hs 200;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 43;" f @@ -4393,8 +4393,8 @@ overlapCircWalls src/Dodge/Base/Collide.hs 231;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" f overlapSegCrs src/Dodge/Base/Collide.hs 61;" f overlapSegWalls src/Dodge/Base/Collide.hs 213;" f -overrideInternal src/Dodge/Creature/ReaderUpdate.hs 175;" f -overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 36;" f +overrideInternal src/Dodge/Creature/ReaderUpdate.hs 184;" f +overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f overwriteLabel src/Dodge/Tree/Compose.hs 31;" f p src/ShortShow.hs 48;" f pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f @@ -4738,7 +4738,7 @@ renderLayer src/Render.hs 234;" f renderLightingNoShadows src/Render.hs 48;" f renderListAt src/Dodge/Render/List.hs 192;" f renderShadows src/Render.hs 117;" f -replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 163;" f +replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 172;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetPLUse src/Dodge/PlacementSpot.hs 92;" f @@ -4886,7 +4886,7 @@ seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 576;" f seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 588;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f -searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 206;" f +searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 217;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 43;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 198;" f sectionsSizes src/Dodge/DisplayInventory.hs 201;" f @@ -4928,7 +4928,7 @@ setLayer src/Picture/Base.hs 139;" f setLinkType src/Dodge/RoomLink.hs 78;" f setLinkTypePD src/Dodge/RoomLink.hs 85;" f setMusicVolume src/Sound.hs 162;" f -setMvPos src/Dodge/Creature/ReaderUpdate.hs 54;" f +setMvPos src/Dodge/Creature/ReaderUpdate.hs 56;" f setOldPos src/Dodge/Update.hs 502;" f setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f @@ -4940,13 +4940,13 @@ setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f setSoundVolume src/Sound.hs 157;" f -setTargetMv src/Dodge/Creature/ReaderUpdate.hs 77;" f +setTargetMv src/Dodge/Creature/ReaderUpdate.hs 79;" f setTile src/Dodge/Layout.hs 66;" f setTiles src/Dodge/Layout.hs 63;" f setToggle src/Dodge/Prop/Update.hs 44;" f setTreeInts src/Dodge/Room/Tutorial.hs 67;" f setViewDistance src/Dodge/Update/Camera.hs 236;" f -setViewPos src/Dodge/Creature/ReaderUpdate.hs 64;" f +setViewPos src/Dodge/Creature/ReaderUpdate.hs 66;" f setViewport src/Dodge/Render.hs 440;" f setVol src/Dodge/Config.hs 47;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f @@ -5213,7 +5213,7 @@ targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f targetYouLOS src/Dodge/Creature/ChooseTarget.hs 8;" f -targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 197;" f +targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 206;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f @@ -5366,7 +5366,7 @@ tryDrawToCapacitor src/Dodge/Creature/State.hs 151;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 138;" f tryGetChannel src/Sound.hs 97;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 22;" f -tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 39;" f +tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 145;" f tryPlay src/Sound.hs 84;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f @@ -5593,7 +5593,7 @@ vgunMuzzles src/Dodge/HeldUse.hs 341;" f viewBoundaries src/Dodge/Debug/Picture.hs 321;" f viewClipBounds src/Dodge/Debug/Picture.hs 330;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 194;" f -viewTarget src/Dodge/Creature/ReaderUpdate.hs 147;" f +viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f violet src/Color.hs 21;" f visibleWalls src/Dodge/Base/Collide.hs 217;" f visionCheck src/Dodge/Creature/Perception.hs 153;" f @@ -5617,7 +5617,7 @@ wasdM src/Dodge/WASD.hs 9;" f wasdMovement src/Dodge/Creature/YourControl.hs 169;" f wasdWithAiming src/Dodge/Creature/YourControl.hs 126;" f watchCombinations src/Dodge/Combine/Combinations.hs 16;" f -watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 180;" f +watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 189;" f weakenMatS src/Dodge/Material/Sound.hs 18;" f weaponBehindPillar src/Dodge/Room/Room.hs 186;" f weaponBetweenPillars src/Dodge/Room/Room.hs 202;" f