Move hands to touch walls

This commit is contained in:
2026-03-30 15:50:25 +01:00
parent 4598deb70f
commit c7866cf668
5 changed files with 141 additions and 94 deletions
+41 -4
View File
@@ -14,6 +14,9 @@ module Dodge.Creature.HandPos (
rightHandPQ, rightHandPQ,
) where ) where
import Control.Monad
import qualified Data.IntMap.Strict as IM
import Linear
import Control.Lens import Control.Lens
import Dodge.Creature.Test import Dodge.Creature.Test
import Dodge.Data.Creature import Dodge.Data.Creature
@@ -61,11 +64,44 @@ rightHandPQ cr
| oneH cr = (V3 11 (-3) 20, Q.qID) | oneH cr = (V3 11 (-3) 20, Q.qID)
| twists cr = (V3 0 5 20, Q.qz (-1)) `Q.comp` (V3 4 (-10) 0, Q.qID) | twists cr = (V3 0 5 20, Q.qz (-1)) `Q.comp` (V3 4 (-10) 0, Q.qID)
| twoFlat cr = (V3 4 (-8) 12, Q.qID) | twoFlat cr = (V3 4 (-8) 12, Q.qID)
-- | wl <- crRightHandWall cr = (0, Q.qID) | Just p <- crRightHandWall cr = (20 & _xy .~ p, Q.qID)
| otherwise = (handWalkingPos LeftForward (-8) cr, Q.qID) | otherwise = (handWalkingPos LeftForward (-8) cr, Q.qID)
--crRightHandWall :: IM.IntMap Wall -> Creature -> Wall crRightHandWall :: Creature -> Maybe Point2
--crRightHandWall wls cr crRightHandWall cr = do
(_,p) <- IM.lookupMin (cr ^. crWallTouch)
let wp = p - cr ^. crPos . _xy
dp = argV wp
ang = nearZeroAngle (cd - dp)
cdp = unitVectorAtAngle cd
x | ang < 0 = 0.8 - (0.5 * ang / (pi / 4))
| otherwise = 0.8* dotV cdp (signorm wp)
y | ang < 0 = 2 - (5 * ang / (pi / 4))
| otherwise = 2
ep = wp - y *^ signorm wp + x *^ vNormal wp
guard $ ang > negate (pi / 8)
return $ ep & _xy %~ rot
where
cd = cr ^. crDir
rot = rotateV (negate cd)
crLeftHandWall :: Creature -> Maybe Point2
crLeftHandWall cr = do
(_,p) <- IM.lookupMin (cr ^. crWallTouch)
let wp = p - cr ^. crPos . _xy
dp = argV wp
ang = nearZeroAngle (cd - dp)
cdp = unitVectorAtAngle cd
x | ang > 0 = 0.8 + (0.5 * ang / (pi / 4))
| otherwise = 0.8* dotV cdp (signorm wp)
y | ang > 0 = 2 + (5 * ang / (pi / 4))
| otherwise = 2
ep = wp - y *^ signorm wp - x *^ vNormal wp
guard $ ang < (pi / 8)
return $ ep & _xy %~ rot
where
cd = cr ^. crDir
rot = rotateV (negate cd)
translateToRightHand :: Creature -> SPic -> SPic translateToRightHand :: Creature -> SPic -> SPic
translateToRightHand = overPosSP . translatePointToRightHand translateToRightHand = overPosSP . translatePointToRightHand
@@ -75,9 +111,10 @@ rightWristPQ cr = rightHandPQ cr `Q.comp` (V3 0 (-4) (-4), Q.qID)
leftHandPQ :: Creature -> Point3Q leftHandPQ :: Creature -> Point3Q
leftHandPQ cr leftHandPQ cr
| oneH cr = (V3 0 8 10, Q.qz 0.4)
| twists cr = (V3 0 5 20, Q.qz (-1)) `Q.comp` (V3 12 4 0, Q.qz 0.4) | twists cr = (V3 0 5 20, Q.qz (-1)) `Q.comp` (V3 12 4 0, Q.qz 0.4)
| twoFlat cr = (V3 4 8 12, Q.qID) | twoFlat cr = (V3 4 8 12, Q.qID)
| Just p <- crLeftHandWall cr = (20 & _xy .~ p, Q.qID)
| oneH cr = (V3 0 8 10, Q.qz 0.4)
| otherwise = (handWalkingPos RightForward 8 cr, Q.qID) | otherwise = (handWalkingPos RightForward 8 cr, Q.qID)
translatePointToLeftHand :: Creature -> Point3 -> Point3 translatePointToLeftHand :: Creature -> Point3 -> Point3
+2 -3
View File
@@ -22,6 +22,7 @@ import Control.Lens
import Data.Aeson import Data.Aeson
import Data.Aeson.TH import Data.Aeson.TH
import qualified Data.Map.Strict as M import qualified Data.Map.Strict as M
import qualified Data.IntMap.Strict as IM
import Dodge.Data.ActionPlan import Dodge.Data.ActionPlan
import Dodge.Data.Creature.Misc import Dodge.Data.Creature.Misc
import Dodge.Data.Creature.Perception import Dodge.Data.Creature.Perception
@@ -30,8 +31,6 @@ import Dodge.Data.Creature.State
import Dodge.Data.Item import Dodge.Data.Item
import Dodge.Data.Material import Dodge.Data.Material
import Geometry.Data import Geometry.Data
import qualified Data.IntSet as IS
--import qualified IntMapHelp as IM
data Creature = Creature data Creature = Creature
{ _crPos :: Point3 { _crPos :: Point3
@@ -58,7 +57,7 @@ data Creature = Creature
, _crIntention :: Intention , _crIntention :: Intention
, _crName :: String , _crName :: String
, _crDeathTimer :: Int , _crDeathTimer :: Int
, _crWallTouch :: IS.IntSet , _crWallTouch :: IM.IntMap Point2
} }
data CrHP data CrHP
+1 -1
View File
@@ -34,7 +34,7 @@ import Data.Monoid
import RandomHelp import RandomHelp
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit u = [fromMaybe "" $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crName] testStringInit u = fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . ix 0 . crWallTouch . each
-- (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crStance . carriage . strideAmount) -- (fmap show $ u ^.. uvWorld . cWorld . lWorld . creatures . each . crStance . carriage . strideAmount)
-- a <> fromMaybe [] (do -- a <> fromMaybe [] (do
-- a w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18 -- a w1 <- u ^? uvWorld . cWorld . lWorld . walls . ix 18
+19 -9
View File
@@ -9,7 +9,6 @@ import Data.Maybe
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Control.Lens import Control.Lens
import Data.Foldable import Data.Foldable
import qualified Data.IntSet as IS
import Dodge.Base import Dodge.Base
import Dodge.Creature.Radius import Dodge.Creature.Radius
import Dodge.Data.Universe import Dodge.Data.Universe
@@ -56,14 +55,14 @@ pushCr w wls cr
| otherwise = ecr | otherwise = ecr
where where
-- stwls = IM.filter (\wl -> uncurry circOnSegNoEndpoints (wl ^. wlLine) sp r) wls -- stwls = IM.filter (\wl -> uncurry circOnSegNoEndpoints (wl ^. wlLine) sp r) wls
twls = IM.elems $ IM.restrictKeys wls (ecr ^. crWallTouch) -- `IM.union` stwls twls = IM.elems $ IM.intersection wls (ecr ^. crWallTouch) -- `IM.union` stwls
-- ep = ecr ^. crPos . _xy -- ep = ecr ^. crPos . _xy
ap = cr ^. crOldPos . _xy ap = cr ^. crOldPos . _xy
-- sp = cr ^. crPos . _xy -- sp = cr ^. crPos . _xy
ecr = foldl' f (cr & crWallTouch .~ mempty) wls ecr = foldl' f (cr & crWallTouch .~ mempty) wls
r = crRad (cr ^. crType) r = crRad (cr ^. crType)
f acr wl = case pushOutFromWall r (acr ^. crPos . _xy) (wl ^. wlLine) of f acr wl = case pushOutFromWall' r (acr ^. crPos . _xy) (wl ^. wlLine) of
Just p -> acr & crPos . _xy .~ p & crWallTouch %~ IS.insert (wl ^. wlID) Just (p,hitp) -> acr & crPos . _xy .~ p & crWallTouch . at (wl ^. wlID) ?~ hitp
Nothing -> acr Nothing -> acr
wallMovement :: LWorld -> Point2 -> Wall -> Point2 wallMovement :: LWorld -> Point2 -> Wall -> Point2
@@ -100,11 +99,22 @@ wlWlCrush' w p w1 w2 = (t w1 w2 || t w2 w1) -- test either wall is moving toward
wallBuffer :: Float wallBuffer :: Float
wallBuffer = 0 wallBuffer = 0
-- assumes that the wall is orientated ---- assumes that the wall is orientated
-- assumes wall points are different ---- assumes wall points are different
pushOutFromWall :: Float -> Point2 -> (Point2, Point2) -> Maybe Point2 --pushOutFromWall :: Float -> Point2 -> (Point2, Point2) -> Maybe Point2
pushOutFromWall rad cp2 (wp1, wp2) --pushOutFromWall rad cp2 (wp1, wp2)
| isOnWall = Just newP -- | isOnWall = Just newP
-- | otherwise = Nothing
-- where
-- n = errorNormalizeV 61 $ vNormal (wp1 - wp2)
-- wp1' = wp1 + rad *^ n
-- wp2' = wp2 + rad *^ n
-- newP = errorClosestPointOnLine 5 wp1' wp2' cp2
-- isOnWall = circOnSegNoEndpoints wp1 wp2 cp2 rad
pushOutFromWall' :: Float -> Point2 -> (Point2, Point2) -> Maybe (Point2,Point2)
pushOutFromWall' rad cp2 (wp1, wp2)
| isOnWall = Just (newP,newP - rad *^ n)
| otherwise = Nothing | otherwise = Nothing
where where
n = errorNormalizeV 61 $ vNormal (wp1 - wp2) n = errorNormalizeV 61 $ vNormal (wp1 - wp2)
+78 -77
View File
@@ -15,7 +15,7 @@
<$> src/Dodge/Data/ActionPlan.hs 156;" o <$> src/Dodge/Data/ActionPlan.hs 156;" o
<$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/CWorld.hs 52;" o
<$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Camera.hs 38;" o
<$> src/Dodge/Data/Creature.hs 93;" o <$> src/Dodge/Data/Creature.hs 92;" o
<$> src/Dodge/Data/LWorld.hs 179;" o <$> src/Dodge/Data/LWorld.hs 179;" o
<$> src/Dodge/Data/Terminal.hs 69;" o <$> src/Dodge/Data/Terminal.hs 69;" o
ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C ABSOLUTE src/Dodge/Data/Item/Combine.hs 39;" C
@@ -239,7 +239,7 @@ ContextDT src/Dodge/Data/DoubleTree.hs 25;" t
ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C
ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C
ConvexPoly src/Geometry/ConvexPoly.hs 25;" t ConvexPoly src/Geometry/ConvexPoly.hs 25;" t
CookDeath src/Dodge/Data/Creature.hs 70;" C CookDeath src/Dodge/Data/Creature.hs 69;" C
CookingDamage src/Dodge/Data/Damage/Type.hs 5;" C CookingDamage src/Dodge/Data/Damage/Type.hs 5;" C
Corporation src/Dodge/Data/Scenario.hs 46;" C Corporation src/Dodge/Data/Scenario.hs 46;" C
Cosmic src/Dodge/Data/Scenario.hs 74;" C Cosmic src/Dodge/Data/Scenario.hs 74;" C
@@ -252,16 +252,16 @@ CrGroup src/Dodge/Data/Creature/State.hs 23;" t
CrGroupID src/Dodge/Data/Creature/State.hs 29;" C CrGroupID src/Dodge/Data/Creature/State.hs 29;" C
CrGroupParams src/Dodge/Data/CrGroupParams.hs 12;" t CrGroupParams src/Dodge/Data/CrGroupParams.hs 12;" t
CrGroupUpdate src/Dodge/Data/CrGroupParams.hs 20;" t CrGroupUpdate src/Dodge/Data/CrGroupParams.hs 20;" t
CrHP src/Dodge/Data/Creature.hs 64;" t CrHP src/Dodge/Data/Creature.hs 63;" t
CrHitSound src/Dodge/Data/SoundOrigin.hs 32;" C CrHitSound src/Dodge/Data/SoundOrigin.hs 32;" C
CrID src/Dodge/Data/CrWlID.hs 10;" C CrID src/Dodge/Data/CrWlID.hs 10;" C
CrImp src/Dodge/Data/CreatureEffect.hs 9;" t CrImp src/Dodge/Data/CreatureEffect.hs 9;" t
CrInt src/Dodge/Data/Item/Location.hs 22;" t CrInt src/Dodge/Data/Item/Location.hs 22;" t
CrIsAiming src/Dodge/Data/CreatureEffect.hs 20;" C CrIsAiming src/Dodge/Data/CreatureEffect.hs 20;" C
CrIsAnimate src/Dodge/Data/CreatureEffect.hs 20;" C CrIsAnimate src/Dodge/Data/CreatureEffect.hs 20;" C
CrIsCorpse src/Dodge/Data/Creature.hs 66;" C CrIsCorpse src/Dodge/Data/Creature.hs 65;" C
CrIsGibs src/Dodge/Data/Creature.hs 67;" C CrIsGibs src/Dodge/Data/Creature.hs 66;" C
CrIsPitted src/Dodge/Data/Creature.hs 68;" C CrIsPitted src/Dodge/Data/Creature.hs 67;" C
CrMouth src/Dodge/Data/SoundOrigin.hs 16;" C CrMouth src/Dodge/Data/SoundOrigin.hs 16;" C
CrMvType src/Dodge/Data/Creature/Misc.hs 26;" t CrMvType src/Dodge/Data/Creature/Misc.hs 26;" t
CrMvType src/Dodge/Data/Creature/Misc.hs 29;" C CrMvType src/Dodge/Data/Creature/Misc.hs 29;" C
@@ -278,7 +278,7 @@ Cr_status src/Dodge/Data/Config.hs 84;" C
CraftType src/Dodge/Data/Item/Combine.hs 49;" t CraftType src/Dodge/Data/Item/Combine.hs 49;" t
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
Creature src/Dodge/Data/Creature.hs 36;" t Creature src/Dodge/Data/Creature.hs 35;" t
CreaturePart src/Dodge/Data/Wall/Structure.hs 16;" C CreaturePart src/Dodge/Data/Wall/Structure.hs 16;" C
CreatureShape src/Dodge/Data/Creature/Misc.hs 74;" t CreatureShape src/Dodge/Data/Creature/Misc.hs 74;" t
CreatureType src/Dodge/Data/Creature/Misc.hs 58;" t CreatureType src/Dodge/Data/Creature/Misc.hs 58;" t
@@ -307,7 +307,7 @@ DamageHitSound src/Dodge/Data/SoundOrigin.hs 41;" C
DamageLaser src/Dodge/Data/Laser.hs 15;" C DamageLaser src/Dodge/Data/Laser.hs 15;" C
DamageSensor src/Dodge/Data/Machine/Sensor.hs 19;" t DamageSensor src/Dodge/Data/Machine/Sensor.hs 19;" t
DamageType src/Dodge/Data/Damage/Type.hs 3;" t DamageType src/Dodge/Data/Damage/Type.hs 3;" t
DeathType src/Dodge/Data/Creature.hs 70;" t DeathType src/Dodge/Data/Creature.hs 69;" t
Debris src/Dodge/Data/Prop.hs 25;" t Debris src/Dodge/Data/Prop.hs 25;" t
DebrisChunk src/Dodge/Data/Prop.hs 25;" C DebrisChunk src/Dodge/Data/Prop.hs 25;" C
DebrisType src/Dodge/Data/Prop.hs 21;" t DebrisType src/Dodge/Data/Prop.hs 21;" t
@@ -494,7 +494,7 @@ GeoObjShads src/Dodge/Data/Config.hs 117;" C
GetTo src/Dodge/Data/ActionPlan.hs 141;" C GetTo src/Dodge/Data/ActionPlan.hs 141;" C
GetToPoint src/Dodge/Data/Scenario.hs 12;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C
Gib src/Dodge/Data/Prop.hs 22;" C Gib src/Dodge/Data/Prop.hs 22;" C
GibsDeath src/Dodge/Data/Creature.hs 70;" C GibsDeath src/Dodge/Data/Creature.hs 69;" C
Glass src/Dodge/Data/Material.hs 14;" C Glass src/Dodge/Data/Material.hs 14;" C
GlassBreakSound src/Dodge/Data/SoundOrigin.hs 34;" C GlassBreakSound src/Dodge/Data/SoundOrigin.hs 34;" C
Goal src/Dodge/Data/ActionPlan.hs 149;" t Goal src/Dodge/Data/ActionPlan.hs 149;" t
@@ -519,7 +519,7 @@ HEATSENSOR src/Dodge/Data/Item/Combine.hs 82;" C
HELD src/Dodge/Data/Item/Combine.hs 16;" C HELD src/Dodge/Data/Item/Combine.hs 16;" C
HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 101;" C
HOSE src/Dodge/Data/Item/Combine.hs 54;" C HOSE src/Dodge/Data/Item/Combine.hs 54;" C
HP src/Dodge/Data/Creature.hs 65;" C HP src/Dodge/Data/Creature.hs 64;" C
HUD src/Dodge/Data/HUD.hs 29;" t HUD src/Dodge/Data/HUD.hs 29;" t
HalfRes src/Dodge/Data/Config.hs 113;" C HalfRes src/Dodge/Data/Config.hs 113;" C
HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C
@@ -586,7 +586,7 @@ Inspect_wall src/Dodge/Data/Config.hs 106;" C
Institution src/Dodge/Data/Scenario.hs 42;" t Institution src/Dodge/Data/Scenario.hs 42;" t
Int2 src/Geometry/Data.hs 21;" t Int2 src/Geometry/Data.hs 21;" t
IntID src/Dodge/Data/Universe.hs 120;" t IntID src/Dodge/Data/Universe.hs 120;" t
Intention src/Dodge/Data/Creature.hs 72;" t Intention src/Dodge/Data/Creature.hs 71;" t
IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C
IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C
IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t
@@ -750,7 +750,7 @@ MedBaySS src/Dodge/Data/Scenario.hs 100;" C
Medium src/Shape/Data.hs 25;" C Medium src/Shape/Data.hs 25;" C
Melee src/Dodge/Data/ActionPlan.hs 40;" C Melee src/Dodge/Data/ActionPlan.hs 40;" C
MeleeStrike src/Dodge/Data/ActionPlan.hs 144;" C MeleeStrike src/Dodge/Data/ActionPlan.hs 144;" C
Memory src/Dodge/Data/Creature.hs 79;" t Memory src/Dodge/Data/Creature.hs 78;" t
MenuOption src/Dodge/Data/Universe.hs 109;" t MenuOption src/Dodge/Data/Universe.hs 109;" t
MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" t MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" t
MetaBranch src/Dodge/Data/MetaTree.hs 19;" t MetaBranch src/Dodge/Data/MetaTree.hs 19;" t
@@ -997,7 +997,7 @@ PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C
Placement src/Dodge/Data/GenWorld.hs 114;" t Placement src/Dodge/Data/GenWorld.hs 114;" t
PlacementSpot src/Dodge/Data/GenWorld.hs 98;" t PlacementSpot src/Dodge/Data/GenWorld.hs 98;" t
PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C
PlainDeath src/Dodge/Data/Creature.hs 70;" C PlainDeath src/Dodge/Data/Creature.hs 69;" C
PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C
PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t
PlasmaBallType src/Dodge/Data/PlasmaBall.hs 20;" t PlasmaBallType src/Dodge/Data/PlasmaBall.hs 20;" t
@@ -1013,7 +1013,7 @@ Point3Q src/Geometry/Data.hs 52;" t
Point4 src/Geometry/Data.hs 41;" t Point4 src/Geometry/Data.hs 41;" t
Poison src/Dodge/Data/Damage.hs 26;" C Poison src/Dodge/Data/Damage.hs 26;" C
PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C
PoisonDeath src/Dodge/Data/Creature.hs 70;" C PoisonDeath src/Dodge/Data/Creature.hs 69;" C
PoisonGas src/Dodge/Data/Cloud.hs 42;" C PoisonGas src/Dodge/Data/Cloud.hs 42;" C
PolyEdge src/Dodge/Data/Room.hs 51;" C PolyEdge src/Dodge/Data/Room.hs 51;" C
PolyShad src/Picture/Data.hs 31;" C PolyShad src/Picture/Data.hs 31;" C
@@ -1674,36 +1674,36 @@ _cpPoints src/Geometry/ConvexPoly.hs 26;" f
_cpRad src/Geometry/ConvexPoly.hs 28;" f _cpRad src/Geometry/ConvexPoly.hs 28;" f
_cpVigilance src/Dodge/Data/Creature/Perception.hs 31;" f _cpVigilance src/Dodge/Data/Creature/Perception.hs 31;" f
_cpVision src/Dodge/Data/Creature/Perception.hs 34;" f _cpVision src/Dodge/Data/Creature/Perception.hs 34;" f
_crActionPlan src/Dodge/Data/Creature.hs 52;" f _crActionPlan src/Dodge/Data/Creature.hs 51;" f
_crDamage src/Dodge/Data/Creature.hs 49;" f _crDamage src/Dodge/Data/Creature.hs 48;" f
_crDeathTimer src/Dodge/Data/Creature.hs 60;" f _crDeathTimer src/Dodge/Data/Creature.hs 59;" f
_crDir src/Dodge/Data/Creature.hs 40;" f _crDir src/Dodge/Data/Creature.hs 39;" f
_crEquipment src/Dodge/Data/Creature.hs 48;" f _crEquipment src/Dodge/Data/Creature.hs 47;" f
_crFaction src/Dodge/Data/Creature.hs 56;" f _crFaction src/Dodge/Data/Creature.hs 55;" f
_crGroup src/Dodge/Data/Creature.hs 57;" f _crGroup src/Dodge/Data/Creature.hs 56;" f
_crGroupCenter src/Dodge/Data/CrGroupParams.hs 15;" f _crGroupCenter src/Dodge/Data/CrGroupParams.hs 15;" f
_crGroupID src/Dodge/Data/Creature/State.hs 27;" f _crGroupID src/Dodge/Data/Creature/State.hs 27;" f
_crGroupIDs src/Dodge/Data/CrGroupParams.hs 14;" f _crGroupIDs src/Dodge/Data/CrGroupParams.hs 14;" f
_crGroupParamID src/Dodge/Data/CrGroupParams.hs 13;" f _crGroupParamID src/Dodge/Data/CrGroupParams.hs 13;" f
_crGroupUpdate src/Dodge/Data/CrGroupParams.hs 16;" f _crGroupUpdate src/Dodge/Data/CrGroupParams.hs 16;" f
_crHP src/Dodge/Data/Creature.hs 45;" f _crHP src/Dodge/Data/Creature.hs 44;" f
_crID src/Dodge/Data/Creature.hs 44;" f _crID src/Dodge/Data/Creature.hs 43;" f
_crIntention src/Dodge/Data/Creature.hs 58;" f _crIntention src/Dodge/Data/Creature.hs 57;" f
_crInv src/Dodge/Data/Creature.hs 46;" f _crInv src/Dodge/Data/Creature.hs 45;" f
_crManipulation src/Dodge/Data/Creature.hs 47;" f _crManipulation src/Dodge/Data/Creature.hs 46;" f
_crMemory src/Dodge/Data/Creature.hs 54;" f _crMemory src/Dodge/Data/Creature.hs 53;" f
_crMvAim src/Dodge/Data/Creature.hs 42;" f _crMvAim src/Dodge/Data/Creature.hs 41;" f
_crMvDir src/Dodge/Data/Creature.hs 41;" f _crMvDir src/Dodge/Data/Creature.hs 40;" f
_crName src/Dodge/Data/Creature.hs 59;" f _crName src/Dodge/Data/Creature.hs 58;" f
_crOldPos src/Dodge/Data/Creature.hs 38;" f _crOldPos src/Dodge/Data/Creature.hs 37;" f
_crPain src/Dodge/Data/Creature.hs 50;" f _crPain src/Dodge/Data/Creature.hs 49;" f
_crPerception src/Dodge/Data/Creature.hs 53;" f _crPerception src/Dodge/Data/Creature.hs 52;" f
_crPos src/Dodge/Data/Creature.hs 37;" f _crPos src/Dodge/Data/Creature.hs 36;" f
_crStance src/Dodge/Data/Creature.hs 51;" f _crStance src/Dodge/Data/Creature.hs 50;" f
_crType src/Dodge/Data/Creature.hs 43;" f _crType src/Dodge/Data/Creature.hs 42;" f
_crVocalization src/Dodge/Data/Creature.hs 55;" f _crVocalization src/Dodge/Data/Creature.hs 54;" f
_crWallTouch src/Dodge/Data/Creature.hs 61;" f _crWallTouch src/Dodge/Data/Creature.hs 60;" f
_crZVel src/Dodge/Data/Creature.hs 39;" f _crZVel src/Dodge/Data/Creature.hs 38;" f
_crZoning src/Dodge/Data/World.hs 48;" f _crZoning src/Dodge/Data/World.hs 48;" f
_creatureGroups src/Dodge/Data/LWorld.hs 96;" f _creatureGroups src/Dodge/Data/LWorld.hs 96;" f
_creatures src/Dodge/Data/LWorld.hs 95;" f _creatures src/Dodge/Data/LWorld.hs 95;" f
@@ -2054,7 +2054,7 @@ _mtTree src/Dodge/Data/MetaTree.hs 13;" f
_musicData src/Data/Preload.hs 13;" f _musicData src/Data/Preload.hs 13;" f
_mvAimSpeed src/Dodge/Data/Creature/Misc.hs 33;" f _mvAimSpeed src/Dodge/Data/Creature/Misc.hs 33;" f
_mvSpeed src/Dodge/Data/Creature/Misc.hs 28;" f _mvSpeed src/Dodge/Data/Creature/Misc.hs 28;" f
_mvToPoint src/Dodge/Data/Creature.hs 74;" f _mvToPoint src/Dodge/Data/Creature.hs 73;" f
_mvTurnJit src/Dodge/Data/Creature/Misc.hs 32;" f _mvTurnJit src/Dodge/Data/Creature/Misc.hs 32;" f
_mvTurnRad src/Dodge/Data/Creature/Misc.hs 31;" f _mvTurnRad src/Dodge/Data/Creature/Misc.hs 31;" f
_mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f _mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f
@@ -2066,7 +2066,7 @@ _mzRandomOffset src/Dodge/Data/Muzzle.hs 17;" f
_mzRot src/Dodge/Data/Muzzle.hs 11;" f _mzRot src/Dodge/Data/Muzzle.hs 11;" f
_nodeMetaTree src/Dodge/Data/MetaTree.hs 17;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 17;" f
_nodeTree src/Dodge/Data/MetaTree.hs 16;" f _nodeTree src/Dodge/Data/MetaTree.hs 16;" f
_nodesSearched src/Dodge/Data/Creature.hs 81;" f _nodesSearched src/Dodge/Data/Creature.hs 80;" f
_nonInf src/Dodge/Data/CardinalPoint.hs 44;" f _nonInf src/Dodge/Data/CardinalPoint.hs 44;" f
_numLinkEW src/Dodge/Data/Room.hs 34;" f _numLinkEW src/Dodge/Data/Room.hs 34;" f
_numLinkNS src/Dodge/Data/Room.hs 35;" f _numLinkNS src/Dodge/Data/Room.hs 35;" f
@@ -2326,7 +2326,7 @@ _soundStatus src/Sound/Data.hs 45;" f
_soundTime src/Sound/Data.hs 44;" f _soundTime src/Sound/Data.hs 44;" f
_soundVolume src/Sound/Data.hs 49;" f _soundVolume src/Sound/Data.hs 49;" f
_soundVolumeFraction src/Sound/Data.hs 50;" f _soundVolumeFraction src/Sound/Data.hs 50;" f
_soundsToInvestigate src/Dodge/Data/Creature.hs 80;" f _soundsToInvestigate src/Dodge/Data/Creature.hs 79;" f
_spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f
_spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f
_sparks src/Dodge/Data/LWorld.hs 110;" f _sparks src/Dodge/Data/LWorld.hs 110;" f
@@ -2358,7 +2358,7 @@ _swarm src/Dodge/Data/Creature/State.hs 26;" f
_taArcSteps src/Dodge/Data/TeslaArc.hs 17;" f _taArcSteps src/Dodge/Data/TeslaArc.hs 17;" f
_taColor src/Dodge/Data/TeslaArc.hs 18;" f _taColor src/Dodge/Data/TeslaArc.hs 18;" f
_taTimer src/Dodge/Data/TeslaArc.hs 16;" f _taTimer src/Dodge/Data/TeslaArc.hs 16;" f
_targetCr src/Dodge/Data/Creature.hs 73;" f _targetCr src/Dodge/Data/Creature.hs 72;" f
_targetID src/Dodge/Data/ActionPlan.hs 67;" f _targetID src/Dodge/Data/ActionPlan.hs 67;" f
_targetSeenAt src/Dodge/Data/ActionPlan.hs 68;" f _targetSeenAt src/Dodge/Data/ActionPlan.hs 68;" f
_tbPos src/Dodge/Data/TractorBeam.hs 12;" f _tbPos src/Dodge/Data/TractorBeam.hs 12;" f
@@ -2474,7 +2474,7 @@ _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f
_vertices src/Polyhedra/Data.hs 22;" f _vertices src/Polyhedra/Data.hs 22;" f
_viDist src/Dodge/Data/Creature/Perception.hs 41;" f _viDist src/Dodge/Data/Creature/Perception.hs 41;" f
_viFOV src/Dodge/Data/Creature/Perception.hs 40;" f _viFOV src/Dodge/Data/Creature/Perception.hs 40;" f
_viewPoint src/Dodge/Data/Creature.hs 75;" f _viewPoint src/Dodge/Data/Creature.hs 74;" f
_volleyNumBarrels src/Dodge/Data/TriggerType.hs 13;" f _volleyNumBarrels src/Dodge/Data/TriggerType.hs 13;" f
_volleyRate src/Dodge/Data/TriggerType.hs 13;" f _volleyRate src/Dodge/Data/TriggerType.hs 13;" f
_volume_master src/Dodge/Data/Config.hs 49;" f _volume_master src/Dodge/Data/Config.hs 49;" f
@@ -2671,7 +2671,7 @@ axisInt src/Geometry/Intersect.hs 246;" f
azure src/Color.hs 49;" f azure src/Color.hs 49;" f
bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToF src/Geometry/Bezier.hs 37;" f
bQuadToLine src/Geometry/Bezier.hs 30;" f bQuadToLine src/Geometry/Bezier.hs 30;" f
backPQ src/Dodge/Creature/HandPos.hs 124;" f backPQ src/Dodge/Creature/HandPos.hs 146;" f
backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f backpackShape src/Dodge/Item/Draw/SPic.hs 188;" f
@@ -2837,7 +2837,7 @@ checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f
chestPQ src/Dodge/Creature/HandPos.hs 121;" f chestPQ src/Dodge/Creature/HandPos.hs 143;" f
chooseCursorBorders src/Dodge/Render/List.hs 141;" f chooseCursorBorders src/Dodge/Render/List.hs 141;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f
@@ -2886,8 +2886,8 @@ clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f
clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f
clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f
cogRaised src/Dodge/Creature/Perception.hs 101;" f cogRaised src/Dodge/Creature/Perception.hs 101;" f
colCrWall src/Dodge/WallCreatureCollisions.hs 28;" f colCrWall src/Dodge/WallCreatureCollisions.hs 27;" f
colCrsWalls src/Dodge/WallCreatureCollisions.hs 20;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f
collectDamageTypes src/Dodge/Damage.hs 53;" f collectDamageTypes src/Dodge/Damage.hs 53;" f
collectInvItems src/Dodge/Inventory.hs 205;" f collectInvItems src/Dodge/Inventory.hs 205;" f
collide3 src/Dodge/Base/Collide.hs 129;" f collide3 src/Dodge/Base/Collide.hs 129;" f
@@ -2984,6 +2984,7 @@ crMvType src/Dodge/Creature/MoveType.hs 6;" f
crNearPoint src/Dodge/Creature/Test.hs 132;" f crNearPoint src/Dodge/Creature/Test.hs 132;" f
crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f
crRad src/Dodge/Creature/Radius.hs 7;" f crRad src/Dodge/Creature/Radius.hs 7;" f
crRightHandWall src/Dodge/Creature/HandPos.hs 70;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 75;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 75;" f
crSetRoots src/Dodge/Inventory/Location.hs 55;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f
crShape src/Dodge/Creature/Shape.hs 8;" f crShape src/Dodge/Creature/Shape.hs 8;" f
@@ -3494,7 +3495,7 @@ equipInfo src/Dodge/Item/Info.hs 140;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 159;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 159;" f
equipPosition src/Dodge/Item/Draw.hs 38;" f equipPosition src/Dodge/Item/Draw.hs 38;" f
equipSiteInfo src/Dodge/Item/Info.hs 253;" f equipSiteInfo src/Dodge/Item/Info.hs 253;" f
equipSitePQ src/Dodge/Creature/HandPos.hs 28;" f equipSitePQ src/Dodge/Creature/HandPos.hs 31;" f
equipType src/Dodge/Data/EquipType.hs 10;" f equipType src/Dodge/Data/EquipType.hs 10;" f
equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f
equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 56;" f
@@ -3717,7 +3718,7 @@ haltSound src/Dodge/SoundLogic.hs 38;" f
hammerCheck src/Dodge/HeldUse.hs 67;" f hammerCheck src/Dodge/HeldUse.hs 67;" f
handHandleOrient src/Dodge/Item/HeldOffset.hs 57;" f handHandleOrient src/Dodge/Item/HeldOffset.hs 57;" f
handOrient src/Dodge/Item/HeldOffset.hs 39;" f handOrient src/Dodge/Item/HeldOffset.hs 39;" f
handWalkingPos src/Dodge/Creature/HandPos.hs 41;" f handWalkingPos src/Dodge/Creature/HandPos.hs 44;" f
handleEvent src/Dodge/Event.hs 27;" f handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 46;" f handleHotkeys src/Dodge/Creature/YourControl.hs 46;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 23;" f handleKeyboardEvent src/Dodge/Event/Input.hs 23;" f
@@ -3740,7 +3741,7 @@ head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 68;" f headLamp src/Dodge/Item/Equipment.hs 68;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f
headMap src/Dodge/DoubleTree.hs 118;" f headMap src/Dodge/DoubleTree.hs 118;" f
headPQ src/Dodge/Creature/HandPos.hs 115;" f headPQ src/Dodge/Creature/HandPos.hs 137;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f
healthTest src/Dodge/Room/LasTurret.hs 130;" f healthTest src/Dodge/Room/LasTurret.hs 130;" f
@@ -4003,13 +4004,13 @@ leaveResetQuitTerminal src/Dodge/WorldEffect.hs 163;" f
led src/Dodge/Item/Held/Utility.hs 23;" f led src/Dodge/Item/Held/Utility.hs 23;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 193;" f leftChildList src/Dodge/Item/Grammar.hs 193;" f
leftHandPQ src/Dodge/Creature/HandPos.hs 72;" f leftHandPQ src/Dodge/Creature/HandPos.hs 94;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 170;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 205;" f leftRightCombine src/Dodge/Item/Grammar.hs 205;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 85;" f leftWristPQ src/Dodge/Creature/HandPos.hs 107;" f
legPQ src/Dodge/Creature/HandPos.hs 91;" f legPQ src/Dodge/Creature/HandPos.hs 113;" f
legPQ' src/Dodge/Creature/HandPos.hs 96;" f legPQ' src/Dodge/Creature/HandPos.hs 118;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f
lerpP2A src/Dodge/ShiftPoint.hs 14;" f lerpP2A src/Dodge/ShiftPoint.hs 14;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 86;" f liShape src/Dodge/Placement/Instance/LightSource.hs 86;" f
@@ -4310,7 +4311,7 @@ nextInSectionSS src/Dodge/SelectionSections.hs 34;" f
nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f
noPic src/ShapePicture.hs 25;" f noPic src/ShapePicture.hs 25;" f
noShape src/ShapePicture.hs 29;" f noShape src/ShapePicture.hs 29;" f
noclipCheck src/Dodge/WallCreatureCollisions.hs 23;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f
nodesNear src/Dodge/Path.hs 75;" f nodesNear src/Dodge/Path.hs 75;" f
nonConvexChasm src/Dodge/Room/Tutorial.hs 260;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 260;" f
nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f
@@ -4562,10 +4563,10 @@ pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f
ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f
pulseChecker src/Dodge/Item/Equipment.hs 84;" f pulseChecker src/Dodge/Item/Equipment.hs 84;" f
pushCaverns src/Dodge/Room/LongDoor.hs 192;" f pushCaverns src/Dodge/Room/LongDoor.hs 192;" f
pushCr src/Dodge/WallCreatureCollisions.hs 43;" f pushCr src/Dodge/WallCreatureCollisions.hs 42;" f
pushL src/DoubleStack.hs 20;" f pushL src/DoubleStack.hs 20;" f
pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 116;" f pushOutFromCorners src/Dodge/WallCreatureCollisions.hs 126;" f
pushOutFromWall src/Dodge/WallCreatureCollisions.hs 105;" f pushOutFromWall' src/Dodge/WallCreatureCollisions.hs 115;" f
pushR src/DoubleStack.hs 24;" f pushR src/DoubleStack.hs 24;" f
pushScreen src/Dodge/Menu/PushPop.hs 9;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f
pushYouOutFromWalls src/Dodge/Update.hs 342;" f pushYouOutFromWalls src/Dodge/Update.hs 342;" f
@@ -4729,11 +4730,11 @@ rhombus src/Polyhedra.hs 69;" f
rifle src/Dodge/Item/Held/Cane.hs 19;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f
right src/DoubleStack.hs 16;" f right src/DoubleStack.hs 16;" f
rightChildList src/Dodge/Item/Grammar.hs 199;" f rightChildList src/Dodge/Item/Grammar.hs 199;" f
rightHandPQ src/Dodge/Creature/HandPos.hs 59;" f rightHandPQ src/Dodge/Creature/HandPos.hs 62;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 181;" f
rightPad src/Padding.hs 19;" f rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 69;" f rightWristPQ src/Dodge/Creature/HandPos.hs 91;" f
rlPosDir src/Dodge/RoomLink.hs 112;" f rlPosDir src/Dodge/RoomLink.hs 112;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 399;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 399;" f
rmInLinks src/Dodge/RoomLink.hs 153;" f rmInLinks src/Dodge/RoomLink.hs 153;" f
@@ -5017,10 +5018,10 @@ slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f
slideWindow src/ListHelp.hs 81;" f slideWindow src/ListHelp.hs 81;" f
slowCrush90 src/Dodge/Room/LongDoor.hs 257;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f
slowCrushRoom src/Dodge/Room/LongDoor.hs 148;" f slowCrushRoom src/Dodge/Room/LongDoor.hs 148;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 303;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 309;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 320;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 326;" f
smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBattery src/Dodge/Item/Ammo.hs 57;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
@@ -5090,7 +5091,7 @@ sqPlatformChasm src/Dodge/Room/Tutorial.hs 225;" f
sqSpitChasm src/Dodge/Room/Tutorial.hs 240;" f sqSpitChasm src/Dodge/Room/Tutorial.hs 240;" f
square src/Geometry/Polygon.hs 56;" f square src/Geometry/Polygon.hs 56;" f
squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f
squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 119;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 129;" f
squashNormalizeV src/Geometry/Vector.hs 160;" f squashNormalizeV src/Geometry/Vector.hs 160;" f
ssLookupDown src/Dodge/SelectionSections.hs 96;" f ssLookupDown src/Dodge/SelectionSections.hs 96;" f
ssLookupGE' src/Dodge/SelectionSections.hs 150;" f ssLookupGE' src/Dodge/SelectionSections.hs 150;" f
@@ -5304,8 +5305,8 @@ translate3 src/Picture/Base.hs 112;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 50;" f translateFloatingCamera src/Dodge/Update/Camera.hs 50;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 68;" f
translateH src/Picture/Base.hs 104;" f translateH src/Picture/Base.hs 104;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 79;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 101;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 38;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 41;" f
translateSH src/Shape.hs 242;" f translateSH src/Shape.hs 242;" f
translateSHxy src/Shape.hs 246;" f translateSHxy src/Shape.hs 246;" f
translateSHz src/Shape.hs 250;" f translateSHz src/Shape.hs 250;" f
@@ -5313,11 +5314,11 @@ translateSP src/ShapePicture.hs 53;" f
translateSPxy src/ShapePicture.hs 45;" f translateSPxy src/ShapePicture.hs 45;" f
translateSPz src/ShapePicture.hs 49;" f translateSPz src/ShapePicture.hs 49;" f
translateScreenPos src/Dodge/ScreenPos.hs 12;" f translateScreenPos src/Dodge/ScreenPos.hs 12;" f
translateToES src/Dodge/Creature/HandPos.hs 25;" f translateToES src/Dodge/Creature/HandPos.hs 28;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 82;" f translateToLeftHand src/Dodge/Creature/HandPos.hs 104;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 88;" f translateToLeftLeg src/Dodge/Creature/HandPos.hs 110;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 66;" f translateToRightHand src/Dodge/Creature/HandPos.hs 88;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 112;" f translateToRightLeg src/Dodge/Creature/HandPos.hs 134;" f
translateXY src/Polyhedra.hs 23;" f translateXY src/Polyhedra.hs 23;" f
trapTBH src/Geometry/Polygon.hs 22;" f trapTBH src/Geometry/Polygon.hs 22;" f
trapezionBWHW src/Geometry/Polygon.hs 34;" f trapezionBWHW src/Geometry/Polygon.hs 34;" f
@@ -5417,7 +5418,7 @@ updateCreatureStrides src/Dodge/Update.hs 370;" f
updateDebris src/Dodge/Update.hs 656;" f updateDebris src/Dodge/Update.hs 656;" f
updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f
updateDebugMessageOffset src/Dodge/Update.hs 102;" f updateDebugMessageOffset src/Dodge/Update.hs 102;" f
updateDelayedEvents src/Dodge/Update.hs 997;" f updateDelayedEvents src/Dodge/Update.hs 994;" f
updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f
updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortion src/Dodge/Distortion.hs 8;" f
updateDistortions src/Dodge/Update.hs 635;" f updateDistortions src/Dodge/Update.hs 635;" f
@@ -5587,9 +5588,9 @@ volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f
walkNozzle src/Dodge/HeldUse.hs 826;" f walkNozzle src/Dodge/HeldUse.hs 826;" f
walkableNodeNear src/Dodge/Path.hs 69;" f walkableNodeNear src/Dodge/Path.hs 69;" f
wallBlips src/Dodge/RadarSweep.hs 99;" f wallBlips src/Dodge/RadarSweep.hs 99;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 100;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 99;" f
wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallMovement src/Dodge/WallCreatureCollisions.hs 69;" f wallMovement src/Dodge/WallCreatureCollisions.hs 68;" f
wallToSurface src/Dodge/Base/Collide.hs 182;" f wallToSurface src/Dodge/Base/Collide.hs 182;" f
wallsFromRooms src/Dodge/Layout.hs 141;" f wallsFromRooms src/Dodge/Layout.hs 141;" f
wallsToDraw src/Dodge/Render/Walls.hs 18;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f
@@ -5643,9 +5644,9 @@ wlIsOpaque src/Dodge/Base/Wall.hs 6;" f
wlIsSeeThrough src/Dodge/Base/Wall.hs 11;" f wlIsSeeThrough src/Dodge/Base/Wall.hs 11;" f
wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f
wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f
wlWlCrush' src/Dodge/WallCreatureCollisions.hs 90;" f wlWlCrush' src/Dodge/WallCreatureCollisions.hs 89;" f
wlZoneSize src/Dodge/Zoning/Wall.hs 51;" f wlZoneSize src/Dodge/Zoning/Wall.hs 51;" f
wlsCrush' src/Dodge/WallCreatureCollisions.hs 81;" f wlsCrush' src/Dodge/WallCreatureCollisions.hs 80;" f
wlsFromIXs src/Dodge/Zoning/Wall.hs 34;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 34;" f
wlsHit src/Dodge/WorldEvent/ThingsHit.hs 156;" f wlsHit src/Dodge/WorldEvent/ThingsHit.hs 156;" f
wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 168;" f