Continue to refactor body/equipment positionings

This commit is contained in:
2025-08-27 14:40:13 +01:00
parent 9d2a2e6730
commit 86696deb56
14 changed files with 151 additions and 189 deletions
+4 -5
View File
@@ -9,10 +9,9 @@ import Dodge.Data.Creature
import Geometry import Geometry
import Shape import Shape
import ShapePicture import ShapePicture
import qualified Data.IntMap.Strict as IM
makeCorpse :: IM.IntMap Item -> Creature -> Corpse makeCorpse :: Creature -> Corpse
makeCorpse m cr = makeCorpse cr =
defaultCorpse defaultCorpse
& cpPos .~ _crPos cr & cpPos .~ _crPos cr
& cpDir .~ _crDir cr & cpDir .~ _crDir cr
@@ -20,8 +19,8 @@ makeCorpse m cr =
.~ noPic .~ noPic
( scaleSH (V3 crsize crsize crsize) $ ( scaleSH (V3 crsize crsize crsize) $
mconcat mconcat
[ colorSH (_skinHead cskin) $ deadScalp m cr [ colorSH (_skinHead cskin) $ deadScalp cr
, colorSH (_skinUpper cskin) $ deadUpperBody m cr , colorSH (_skinUpper cskin) $ deadUpperBody cr
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr , rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
] ]
) )
+8 -29
View File
@@ -1,14 +1,10 @@
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
module Dodge.Creature.HandPos ( module Dodge.Creature.HandPos (
equipSitePQ,
translatePointToLeftHand, translatePointToLeftHand,
translatePointToRightHand, translatePointToRightHand,
translatePointToHead,
translateToLeftWrist,
translateToRightWrist,
translateToLeftLeg, translateToLeftLeg,
translateToRightLeg, translateToRightLeg,
translateToHead,
translateToChest,
translateToLeftHand, translateToLeftHand,
translateToRightHand, translateToRightHand,
backPQ, backPQ,
@@ -17,7 +13,6 @@ module Dodge.Creature.HandPos (
) where ) where
import Dodge.Data.Equipment.Misc import Dodge.Data.Equipment.Misc
import qualified Data.IntMap.Strict as IM
import qualified Quaternion as Q import qualified Quaternion as Q
import Control.Lens import Control.Lens
import Dodge.Creature.Test import Dodge.Creature.Test
@@ -35,11 +30,8 @@ equipSitePQ = \case
OnHead -> headPQ OnHead -> headPQ
OnChest -> chestPQ OnChest -> chestPQ
OnBack -> backPQ OnBack -> backPQ
OnLegs -> legsPQ OnLeftLeg -> leftLegPQ
OnRightLeg -> rightLegPQ
legsPQ :: a
legsPQ = undefined
translatePointToRightHand :: Creature -> Point3 -> Point3 translatePointToRightHand :: Creature -> Point3 -> Point3
translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID)) translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID))
@@ -70,10 +62,6 @@ rightHandPQ cr
translateToRightHand :: Creature -> SPic -> SPic translateToRightHand :: Creature -> SPic -> SPic
translateToRightHand = overPosSP . translatePointToRightHand translateToRightHand = overPosSP . translatePointToRightHand
translateToRightWrist :: Creature -> SPic -> SPic
translateToRightWrist cr = overPosSP
(\p -> fst $ rightHandPQ cr `Q.comp` (V3 0 (-4) (-4)+p, Q.qID))
rightWristPQ :: Creature -> Point3Q rightWristPQ :: Creature -> Point3Q
rightWristPQ cr = rightHandPQ cr `Q.comp` (V3 0 (-4) (-4), Q.qID) rightWristPQ cr = rightHandPQ cr `Q.comp` (V3 0 (-4) (-4), Q.qID)
@@ -95,13 +83,10 @@ leftHandPQ cr
translatePointToLeftHand :: Creature -> Point3 -> Point3 translatePointToLeftHand :: Creature -> Point3 -> Point3
translatePointToLeftHand cr p = fst (leftHandPQ cr `Q.comp` (p,Q.qID)) translatePointToLeftHand cr p = fst (leftHandPQ cr `Q.comp` (p,Q.qID))
translateToLeftHand :: IM.IntMap Item -> Creature -> SPic -> SPic translateToLeftHand :: Creature -> SPic -> SPic
translateToLeftHand m = overPosSP . translatePointToLeftHand translateToLeftHand = overPosSP . translatePointToLeftHand
translateToLeftWrist :: Creature -> SPic -> SPic
translateToLeftWrist cr = overPosSP
(\p -> fst $ leftHandPQ cr `Q.comp` (V3 0 4 (-4)+p, Q.qID))
leftWristPQ :: Creature -> Point3Q
leftWristPQ cr = leftHandPQ cr `Q.comp` (V3 0 4 (-4), Q.qID) leftWristPQ cr = leftHandPQ cr `Q.comp` (V3 0 4 (-4), Q.qID)
leftLegPQ :: Creature -> Point3Q leftLegPQ :: Creature -> Point3Q
@@ -135,24 +120,18 @@ rightLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr))
translateToRightLeg :: Creature -> SPic -> SPic translateToRightLeg :: Creature -> SPic -> SPic
translateToRightLeg cr = overPosSP (\p -> fst (rightLegPQ cr `Q.comp` (p,Q.qID))) translateToRightLeg cr = overPosSP (\p -> fst (rightLegPQ cr `Q.comp` (p,Q.qID)))
translateToHead :: IM.IntMap Item -> Creature -> SPic -> SPic
translateToHead m cr = overPosSP (\p -> fst (headPQ cr `Q.comp` (p,Q.qID)))
headPQ :: Creature -> Point3Q headPQ :: Creature -> Point3Q
headPQ cr headPQ cr
| twists cr = (V3 0 2 20, Q.qz (-1)) `Q.comp` (V3 (negate 2.5) 0.25 0, Q.qz 1) | twists cr = (V3 0 2 20, Q.qz (-1)) `Q.comp` (V3 (negate 2.5) 0.25 0, Q.qz 1)
| oneH cr = (V3 0 0 20, Q.qz 0.5) `Q.comp` (V3 2.5 0 0, Q.qz (-0.5)) | oneH cr = (V3 0 0 20, Q.qz 0.5) `Q.comp` (V3 2.5 0 0, Q.qz (-0.5))
| otherwise = (V3 2.5 0 20, Q.qID) | otherwise = (V3 2.5 0 20, Q.qID)
translatePointToHead :: IM.IntMap Item -> Creature -> Point3 -> Point3 --translatePointToHead :: IM.IntMap Item -> Creature -> Point3 -> Point3
translatePointToHead m cr p = fst (headPQ cr `Q.comp` (p,Q.qID)) --translatePointToHead m cr p = fst (headPQ cr `Q.comp` (p,Q.qID))
chestPQ :: Creature -> Point3Q chestPQ :: Creature -> Point3Q
chestPQ cr = backPQ cr `Q.comp` (0,Q.qz pi) chestPQ cr = backPQ cr `Q.comp` (0,Q.qz pi)
translateToChest :: IM.IntMap Item -> Creature -> SPic -> SPic
translateToChest m cr = overPosSP (\p -> fst $ chestPQ cr `Q.comp` (p,Q.qID))
backPQ :: Creature -> Point3Q backPQ :: Creature -> Point3Q
backPQ cr backPQ cr
| oneH cr = (V3 0 0 10, Q.qz 0.5) | oneH cr = (V3 0 0 10, Q.qz 0.5)
+19 -26
View File
@@ -9,6 +9,7 @@ module Dodge.Creature.Picture (
deadFeet, deadFeet,
) where ) where
import Dodge.Data.Equipment.Misc
import Dodge.Creature.HandPos import Dodge.Creature.HandPos
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Control.Lens import Control.Lens
@@ -27,19 +28,19 @@ import Shape
import ShapePicture import ShapePicture
basicCrPict :: IM.IntMap Item -> Creature -> SPic basicCrPict :: IM.IntMap Item -> Creature -> SPic
basicCrPict m cr = drawEquipment m cr <> noPic (basicCrShape m cr) basicCrPict m cr = drawEquipment m cr <> noPic (basicCrShape cr)
crCamouflage :: Creature -> CamouflageStatus crCamouflage :: Creature -> CamouflageStatus
crCamouflage _ = FullyVisible crCamouflage _ = FullyVisible
basicCrShape :: IM.IntMap Item -> Creature -> Shape basicCrShape :: Creature -> Shape
basicCrShape m cr basicCrShape cr
| crCamouflage cr == Invisible = mempty | crCamouflage cr == Invisible = mempty
| otherwise = | otherwise =
scaleSH (V3 crsize crsize crsize) $ scaleSH (V3 crsize crsize crsize) $
mconcat mconcat
[ colorSH (_skinHead cskin) $ scalp m cr [ colorSH (_skinHead cskin) $ scalp cr
, colorSH (_skinUpper cskin) $ upperBody m cr , colorSH (_skinUpper cskin) $ upperBody cr
, rotmdir $ colorSH (_skinLower cskin) $ feet cr , rotmdir $ colorSH (_skinLower cskin) $ feet cr
] ]
where where
@@ -68,17 +69,17 @@ deadFeet :: Creature -> Shape
{-# INLINE deadFeet #-} {-# INLINE deadFeet #-}
deadFeet = feet deadFeet = feet
arms :: IM.IntMap Item -> Creature -> Shape arms :: Creature -> Shape
{-# INLINE arms #-} {-# INLINE arms #-}
arms m cr = arms cr =
(^. _1) $ (^. _1) $
translateToRightHand cr aHand translateToRightHand cr aHand
<> translateToLeftHand m cr aHand <> translateToLeftHand cr aHand
where where
aHand = noPic $ translateSHz (-4) . upperPrismPolyHalfST 4 $ polyCirc 3 4 aHand = noPic $ translateSHz (-4) . upperPrismPolyHalfST 4 $ polyCirc 3 4
deadScalp :: IM.IntMap Item -> Creature -> Shape deadScalp :: Creature -> Shape
deadScalp m cr = deadRot cr . translateSHz 10 . scalp m $ cr deadScalp cr = deadRot cr . translateSHz 10 . scalp $ cr
deadRot :: Creature -> Shape -> Shape deadRot :: Creature -> Shape -> Shape
deadRot cr = overPosSH (Q.rotateToZ d) deadRot cr = overPosSH (Q.rotateToZ d)
@@ -89,9 +90,9 @@ deadRot cr = overPosSH (Q.rotateToZ d)
(addZ 0 . unitVectorAtAngle . subtract (_crDir cr + pi)) (addZ 0 . unitVectorAtAngle . subtract (_crDir cr + pi))
(damageDirection $ _crDamage cr) (damageDirection $ _crDamage cr)
scalp :: IM.IntMap Item -> Creature -> Shape scalp :: Creature -> Shape
{-# INLINE scalp #-} {-# INLINE scalp #-}
scalp m cr = overPosSH (\p -> fst (headPQ cr `Q.comp` (p,Q.qID))) fhead scalp cr = overPosSH (translateToES cr OnHead) fhead
-- | twists cr = translateSHxy 0 5 . rotateSH (-1) $ translateSHxy (negate 2.5) 0.25 fhead -- | twists cr = translateSHxy 0 5 . rotateSH (-1) $ translateSHxy (negate 2.5) 0.25 fhead
-- | oneH cr = rotateSH 0.5 $ translateSHxy 2.5 0 fhead -- | oneH cr = rotateSH 0.5 $ translateSHxy 2.5 0 fhead
-- | otherwise = translateSHxy 2.5 0 fhead -- | otherwise = translateSHxy 2.5 0 fhead
@@ -100,15 +101,7 @@ scalp m cr = overPosSH (\p -> fst (headPQ cr `Q.comp` (p,Q.qID))) fhead
torso :: Creature -> Shape torso :: Creature -> Shape
{-# INLINE torso #-} {-# INLINE torso #-}
torso cr = overPosSH (\p -> fst (backPQ cr `Q.comp` (p,Q.qID))) tsh torso cr = overPosSH (translateToES cr OnBack) tsh
-- | oneH cr = rotateSH 0.5 tsh
-- | twists cr =
-- translateSHxy 0 3 . rotateSH (-1.3) $ tsh
---- mconcat
---- [ rotateSH (negate 0.2) . translateSHxy 2 3 . rotateSH (negate 0.4) $ aShoulder
---- , rotateSH (negate 0.2) . translateSHxy 0 (negate 3) . rotateSH 0.2 $ aShoulder
---- ]
-- | otherwise = tsh
where where
tsh = tsh =
mconcat mconcat
@@ -117,20 +110,20 @@ torso cr = overPosSH (\p -> fst (backPQ cr `Q.comp` (p,Q.qID))) tsh
] ]
aShoulder = scaleSH (V3 10 10 1) baseShoulder aShoulder = scaleSH (V3 10 10 1) baseShoulder
deadUpperBody :: IM.IntMap Item -> Creature -> Shape deadUpperBody :: Creature -> Shape
deadUpperBody m cr = deadRot cr . translateSHz (negate 10) . upperBody m $ cr deadUpperBody cr = deadRot cr . translateSHz (negate 10) . upperBody $ cr
baseShoulder :: Shape baseShoulder :: Shape
{-# INLINE baseShoulder #-} {-# INLINE baseShoulder #-}
baseShoulder = translateSHz (-20) . scaleSH (V3 0.5 1 1) . upperPrismPolyHalfMI 10 $ polyCirc 3 1 baseShoulder = translateSHz (-20) . scaleSH (V3 0.5 1 1) . upperPrismPolyHalfMI 10 $ polyCirc 3 1
upperBody :: IM.IntMap Item -> Creature -> Shape upperBody :: Creature -> Shape
{-# INLINE upperBody #-} {-# INLINE upperBody #-}
upperBody m cr = arms m cr <> shoulderSH (torso cr) upperBody cr = arms cr <> shoulderSH (torso cr)
shoulderSH :: Shape -> Shape shoulderSH :: Shape -> Shape
shoulderSH = translateSHz 20 shoulderSH = translateSHz 20
drawEquipment :: IM.IntMap Item -> Creature -> SPic drawEquipment :: IM.IntMap Item -> Creature -> SPic
{-# INLINE drawEquipment #-} {-# INLINE drawEquipment #-}
drawEquipment m cr = foldMap (itemEquipPict m cr) (invDT . fmap (\i -> m ^?! ix i) $ _crInv cr) drawEquipment m cr = foldMap (itemEquipPict cr) (invDT . fmap (\i -> m ^?! ix i) $ _crInv cr)
-2
View File
@@ -26,11 +26,9 @@ module Dodge.Creature.Test (
import NewInt import NewInt
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Dodge.Item.Grammar
import Dodge.Creature.Radius import Dodge.Creature.Radius
import Dodge.Data.Equipment.Misc import Dodge.Data.Equipment.Misc
import Dodge.Data.AimStance import Dodge.Data.AimStance
import Dodge.Item.AimStance
import Control.Lens import Control.Lens
import Data.List (find) import Data.List (find)
import Data.Maybe import Data.Maybe
+1 -1
View File
@@ -107,7 +107,7 @@ corpseOrGib cr w = w & case cr ^? crDamage . to maxDamageType . _Just . _1 of
_ -> addcorpse thecorpse _ -> addcorpse thecorpse
where where
addcorpse ctype = plNew (cWorld . lWorld . corpses) cpID ctype addcorpse ctype = plNew (cWorld . lWorld . corpses) cpID ctype
thecorpse = makeCorpse (w ^. cWorld . lWorld . items) cr thecorpse = makeCorpse cr
scorchSPic :: SPic -> SPic scorchSPic :: SPic -> SPic
scorchSPic = _1 %~ overColSH (mixColors 0.9 0.1 black . normalizeColor) scorchSPic = _1 %~ overColSH (mixColors 0.9 0.1 black . normalizeColor)
+3 -3
View File
@@ -22,9 +22,9 @@ eitType = \case
BRAINHAT -> GoesOnHead BRAINHAT -> GoesOnHead
HAT -> GoesOnHead HAT -> GoesOnHead
HEADLAMP -> GoesOnHead HEADLAMP -> GoesOnHead
POWERLEGS -> GoesOnLegs POWERLEGS -> GoesOnLeg
SPEEDLEGS -> GoesOnLegs SPEEDLEGS -> GoesOnLeg
JUMPLEGS -> GoesOnLegs JUMPLEGS -> GoesOnLeg
FUELPACK -> GoesOnBack FUELPACK -> GoesOnBack
BULLETBELTPACK -> GoesOnBack BULLETBELTPACK -> GoesOnBack
BULLETBELTBRACER -> GoesOnWrist BULLETBELTBRACER -> GoesOnWrist
+3 -2
View File
@@ -13,7 +13,7 @@ data EquipType
| GoesOnChest | GoesOnChest
| GoesOnBack | GoesOnBack
| GoesOnWrist | GoesOnWrist
| GoesOnLegs | GoesOnLeg
deriving (Eq, Ord, Show, Read) deriving (Eq, Ord, Show, Read)
--deriving (Eq, Ord, Show, Read) --Generic, Flat) --deriving (Eq, Ord, Show, Read) --Generic, Flat)
@@ -24,7 +24,8 @@ data EquipSite
| OnBack | OnBack
| OnLeftWrist | OnLeftWrist
| OnRightWrist | OnRightWrist
| OnLegs | OnLeftLeg
| OnRightLeg
-- | OnSpecial -- | OnSpecial
deriving (Eq, Ord, Show, Read) deriving (Eq, Ord, Show, Read)
+6 -9
View File
@@ -6,8 +6,6 @@ module Dodge.Equipment (
import Control.Lens import Control.Lens
import Data.Maybe import Data.Maybe
import Dodge.Creature.HandPos import Dodge.Creature.HandPos
import Dodge.Creature.Test
import Dodge.Data.Equipment.Misc
import Dodge.Data.World import Dodge.Data.World
import Dodge.Item.Location import Dodge.Item.Location
import Dodge.Wall.Delete import Dodge.Wall.Delete
@@ -50,13 +48,12 @@ setWristShieldPos :: Item -> Creature -> World -> World
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where where
i = _itParamID $ _itParams itm i = _itParamID $ _itParams itm
m = w ^. cWorld . lWorld . items
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
invid = _ilInvID (_itLocation itm) invid = _ilInvID (_itLocation itm)
handtrans = case cr ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k . itLocation . ilEquipSite . _Just of handtrans = case cr ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k . itLocation . ilEquipSite . _Just of
Just OnLeftWrist -> \cr' -> translatePointToLeftHand cr' . g Just x -> translateToES cr x -- . g
_ -> translatePointToRightHand _ -> undefined
g -- g
| twists cr = (+.+.+ V3 (-5) 10 0) -- | twists cr = (+.+.+ V3 (-5) 10 0)
| otherwise = id -- | otherwise = id
f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans cr f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans
+2 -3
View File
@@ -9,6 +9,5 @@ eqPosText ep = case ep of
OnBack -> "BACK" OnBack -> "BACK"
OnLeftWrist -> "L.WRIST" OnLeftWrist -> "L.WRIST"
OnRightWrist -> "R.WRIST" OnRightWrist -> "R.WRIST"
OnLegs -> "LEGS" OnLeftLeg -> "L.LEG"
-- OnSpecial -> "EQUIPPED" OnRightLeg -> "R.LEG"
+1 -2
View File
@@ -35,7 +35,6 @@ useMagShield mt _ cr w =
setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World
setWristShieldPos itm cr x w = moveWallIDUnsafe i wlline w setWristShieldPos itm cr x w = moveWallIDUnsafe i wlline w
where where
m = w ^. cWorld . lWorld . items
i = _itParamID $ _itParams itm i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
handtrans = case x of handtrans = case x of
@@ -58,6 +57,6 @@ createHeadLamp _ cr w = w &
cWorld . lWorld . lights cWorld . lWorld . lights
.:~ LSParam .:~ LSParam
((_crPos cr `v2z` 0) +.+.+ rotate3 (_crDir cr) ((_crPos cr `v2z` 0) +.+.+ rotate3 (_crDir cr)
(translatePointToHead (w ^. cWorld . lWorld . items) cr (V3 5 0 3))) (translateToES cr OnHead (V3 5 0 3)))
200 200
0.7 0.7
+1 -1
View File
@@ -80,4 +80,4 @@ eqTypeToSites es = case es of
GoesOnChest -> [OnChest] GoesOnChest -> [OnChest]
GoesOnBack -> [OnBack] GoesOnBack -> [OnBack]
GoesOnWrist -> [OnLeftWrist, OnRightWrist] GoesOnWrist -> [OnLeftWrist, OnRightWrist]
GoesOnLegs -> [OnLegs] GoesOnLeg -> [OnLeftLeg,OnRightLeg]
+23 -22
View File
@@ -4,7 +4,6 @@ module Dodge.Item.Draw (
itemEquipPict, itemEquipPict,
) where ) where
import qualified Data.IntMap.Strict as IM
import qualified Quaternion as Q import qualified Quaternion as Q
import Dodge.Data.Equipment.Misc import Dodge.Data.Equipment.Misc
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
@@ -17,12 +16,12 @@ import Dodge.Item.Draw.SPic
import Dodge.Item.HeldOffset import Dodge.Item.HeldOffset
import ShapePicture import ShapePicture
itemEquipPict :: IM.IntMap Item -> Creature -> DTree CItem -> SPic itemEquipPict :: Creature -> DTree CItem -> SPic
itemEquipPict m cr itmtree itemEquipPict cr itmtree
| --Just i <- itm ^? itLocation . ilInvID | --Just i <- itm ^? itLocation . ilInvID
Just esite <- itm ^? itLocation . ilEquipSite . _Just Just esite <- itm ^? itLocation . ilEquipSite . _Just
, Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip , Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip
= equipPosition esite m cr attachpos (itemSPic itm) = equipPosition esite cr attachpos (itemSPic itm)
| itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem | itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem
= overPosSP (Q.prePos $ handHandleOrient loc cr) (itemTreeSPic itmtree) = overPosSP (Q.prePos $ handHandleOrient loc cr) (itemTreeSPic itmtree)
| otherwise = mempty | otherwise = mempty
@@ -30,23 +29,25 @@ itemEquipPict m cr itmtree
itm = itmtree ^. dtValue . _1 itm = itmtree ^. dtValue . _1
loc = LocDT TopDT itmtree loc = LocDT TopDT itmtree
equipAttachPos :: EquipItemType -> Point3 equipAttachPos :: EquipItemType -> Point3Q
equipAttachPos = \case equipAttachPos = \case
BATTERYPACK -> V3 (-8) 0 10 BATTERYPACK -> (V3 (-8) 0 10, Q.qID)
FUELPACK -> V3 (-9) 0 10 FUELPACK -> (V3 (-9) 0 10, Q.qID)
BULLETBELTPACK -> V3 (-9) 0 10 BULLETBELTPACK -> (V3 (-9) 0 10, Q.qID)
BULLETBELTBRACER -> V3 (-9) 0 10 BULLETBELTBRACER -> (V3 (-9) 0 10, Q.qID)
_ -> 0 _ -> (0, Q.qID)
equipPosition :: EquipSite -> IM.IntMap Item -> Creature -> Point3 -> SPic -> SPic equipPosition :: EquipSite -> Creature -> Point3Q -> SPic -> SPic
equipPosition epos m cr p sh = case epos of equipPosition es cr q = overPosSP
OnLeftWrist -> translateToLeftWrist cr sh (\x -> fst $ equipSitePQ es cr `Q.comp` q `Q.comp` (x,Q.qID))
OnRightWrist -> translateToRightWrist cr sh -- case epos of
OnLegs -> -- --OnLeftWrist -> translateToLeftWrist cr
translateToLeftLeg cr sh -- --OnRightWrist -> translateToRightWrist cr
<> translateToRightLeg cr sh-- (mirrorSPxz sh) -- OnLeftWrist -> overPosSP (translateToES cr OnLeftWrist)
OnHead -> translateToHead m cr sh -- OnRightWrist -> overPosSP (translateToES cr OnRightWrist)
OnChest -> translateToChest m cr sh -- OnLegs ->
--OnBack -> translateToBack cr p sh -- translateToLeftLeg cr
OnBack -> overPosSP (\x -> fst $ backPQ cr `Q.comp` (p + x,Q.qID)) sh -- <> translateToRightLeg cr-- (mirrorSPxz sh)
-- OnSpecial -> sh -- OnHead -> overPosSP (translateToES cr OnHead)
-- OnChest -> overPosSP (translateToES cr OnChest)
-- OnBack -> overPosSP (\x -> fst $ backPQ cr `Q.comp` (p + x,Q.qID))
+1 -1
View File
@@ -257,7 +257,7 @@ equipSiteInfo es = case es of
GoesOnChest -> " on the chest" GoesOnChest -> " on the chest"
GoesOnBack -> " on the back" GoesOnBack -> " on the back"
GoesOnWrist -> " on a wrist" GoesOnWrist -> " on a wrist"
GoesOnLegs -> " on both legs" GoesOnLeg -> " on a leg"
--makeCommaList :: [String] -> String --makeCommaList :: [String] -> String
--makeCommaList [] = "" --makeCommaList [] = ""
+79 -83
View File
@@ -517,7 +517,7 @@ Goal src/Dodge/Data/ActionPlan.hs 196;" t
GoesOnBack src/Dodge/Data/Equipment/Misc.hs 14;" C GoesOnBack src/Dodge/Data/Equipment/Misc.hs 14;" C
GoesOnChest src/Dodge/Data/Equipment/Misc.hs 13;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 13;" C
GoesOnHead src/Dodge/Data/Equipment/Misc.hs 12;" C GoesOnHead src/Dodge/Data/Equipment/Misc.hs 12;" C
GoesOnLegs src/Dodge/Data/Equipment/Misc.hs 16;" C GoesOnLeg src/Dodge/Data/Equipment/Misc.hs 16;" C
GoesOnWrist src/Dodge/Data/Equipment/Misc.hs 15;" C GoesOnWrist src/Dodge/Data/Equipment/Misc.hs 15;" C
Government src/Dodge/Data/Scenario.hs 43;" C Government src/Dodge/Data/Scenario.hs 43;" C
GovernmentScope src/Dodge/Data/Scenario.hs 49;" t GovernmentScope src/Dodge/Data/Scenario.hs 49;" t
@@ -546,24 +546,24 @@ HiddenGoal src/Dodge/Data/Scenario.hs 14;" C
HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 43;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 43;" C
HomeUsingTargeting src/Dodge/Data/Projectile.hs 44;" C HomeUsingTargeting src/Dodge/Data/Projectile.hs 44;" C
Hospital src/Dodge/Data/Scenario.hs 69;" C Hospital src/Dodge/Data/Scenario.hs 69;" C
Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t Hotkey src/Dodge/Data/Equipment/Misc.hs 33;" t
Hotkey0 src/Dodge/Data/Equipment/Misc.hs 49;" C Hotkey0 src/Dodge/Data/Equipment/Misc.hs 50;" C
Hotkey1 src/Dodge/Data/Equipment/Misc.hs 40;" C Hotkey1 src/Dodge/Data/Equipment/Misc.hs 41;" C
Hotkey2 src/Dodge/Data/Equipment/Misc.hs 41;" C Hotkey2 src/Dodge/Data/Equipment/Misc.hs 42;" C
Hotkey3 src/Dodge/Data/Equipment/Misc.hs 42;" C Hotkey3 src/Dodge/Data/Equipment/Misc.hs 43;" C
Hotkey4 src/Dodge/Data/Equipment/Misc.hs 43;" C Hotkey4 src/Dodge/Data/Equipment/Misc.hs 44;" C
Hotkey5 src/Dodge/Data/Equipment/Misc.hs 44;" C Hotkey5 src/Dodge/Data/Equipment/Misc.hs 45;" C
Hotkey6 src/Dodge/Data/Equipment/Misc.hs 45;" C Hotkey6 src/Dodge/Data/Equipment/Misc.hs 46;" C
Hotkey7 src/Dodge/Data/Equipment/Misc.hs 46;" C Hotkey7 src/Dodge/Data/Equipment/Misc.hs 47;" C
Hotkey8 src/Dodge/Data/Equipment/Misc.hs 47;" C Hotkey8 src/Dodge/Data/Equipment/Misc.hs 48;" C
Hotkey9 src/Dodge/Data/Equipment/Misc.hs 48;" C Hotkey9 src/Dodge/Data/Equipment/Misc.hs 49;" C
HotkeyC src/Dodge/Data/Equipment/Misc.hs 38;" C HotkeyC src/Dodge/Data/Equipment/Misc.hs 39;" C
HotkeyE src/Dodge/Data/Equipment/Misc.hs 34;" C HotkeyE src/Dodge/Data/Equipment/Misc.hs 35;" C
HotkeyQ src/Dodge/Data/Equipment/Misc.hs 33;" C HotkeyQ src/Dodge/Data/Equipment/Misc.hs 34;" C
HotkeyR src/Dodge/Data/Equipment/Misc.hs 35;" C HotkeyR src/Dodge/Data/Equipment/Misc.hs 36;" C
HotkeyV src/Dodge/Data/Equipment/Misc.hs 39;" C HotkeyV src/Dodge/Data/Equipment/Misc.hs 40;" C
HotkeyX src/Dodge/Data/Equipment/Misc.hs 37;" C HotkeyX src/Dodge/Data/Equipment/Misc.hs 38;" C
HotkeyZ src/Dodge/Data/Equipment/Misc.hs 36;" C HotkeyZ src/Dodge/Data/Equipment/Misc.hs 37;" C
Huge src/Shape/Data.hs 28;" C Huge src/Shape/Data.hs 28;" C
Humanoid src/Dodge/Data/Creature/Misc.hs 77;" C Humanoid src/Dodge/Data/Creature/Misc.hs 77;" C
HumanoidAI src/Dodge/Data/Creature/Misc.hs 39;" t HumanoidAI src/Dodge/Data/Creature/Misc.hs 39;" t
@@ -937,8 +937,9 @@ OnChest src/Dodge/Data/Equipment/Misc.hs 23;" C
OnEdge src/Dodge/Data/Room.hs 46;" C OnEdge src/Dodge/Data/Room.hs 46;" C
OnFloor src/Dodge/Data/Item/Location.hs 36;" C OnFloor src/Dodge/Data/Item/Location.hs 36;" C
OnHead src/Dodge/Data/Equipment/Misc.hs 22;" C OnHead src/Dodge/Data/Equipment/Misc.hs 22;" C
OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 27;" C
OnLeftWrist src/Dodge/Data/Equipment/Misc.hs 25;" C OnLeftWrist src/Dodge/Data/Equipment/Misc.hs 25;" C
OnLegs src/Dodge/Data/Equipment/Misc.hs 27;" C OnRightLeg src/Dodge/Data/Equipment/Misc.hs 28;" C
OnRightWrist src/Dodge/Data/Equipment/Misc.hs 26;" C OnRightWrist src/Dodge/Data/Equipment/Misc.hs 26;" C
OnTurret src/Dodge/Data/Item/Location.hs 35;" C OnTurret src/Dodge/Data/Item/Location.hs 35;" C
OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C
@@ -2679,7 +2680,7 @@ argV src/Geometry/Vector.hs 80;" f
armourChaseCrit src/Dodge/Creature/ArmourChase.hs 35;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 35;" f
armouredChasers src/Dodge/Room/Boss.hs 63;" f armouredChasers src/Dodge/Room/Boss.hs 63;" f
armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f
arms src/Dodge/Creature/Picture.hs 71;" f arms src/Dodge/Creature/Picture.hs 72;" f
arrow src/Picture/Composite.hs 19;" f arrow src/Picture/Composite.hs 19;" f
arrowPath src/Picture/Composite.hs 8;" f arrowPath src/Picture/Composite.hs 8;" f
assignHotkey src/Dodge/AssignHotkey.hs 9;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f
@@ -2709,7 +2710,7 @@ axisInt src/Geometry/Intersect.hs 257;" f
azure src/Color.hs 22;" f azure src/Color.hs 22;" 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 153;" f backPQ src/Dodge/Creature/HandPos.hs 138;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 200;" f backpackShape src/Dodge/Item/Draw/SPic.hs 200;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
@@ -2731,14 +2732,14 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f
baseRifleShape src/Dodge/Item/Draw/SPic.hs 338;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 338;" f
baseRodShape src/Dodge/Item/Draw/SPic.hs 415;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 415;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 403;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 403;" f
baseShoulder src/Dodge/Creature/Picture.hs 123;" f baseShoulder src/Dodge/Creature/Picture.hs 116;" f
baseStickShape src/Dodge/Item/Draw/SPic.hs 312;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 312;" f
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 304;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 304;" f
baseStickSpread src/Dodge/HeldUse.hs 311;" f baseStickSpread src/Dodge/HeldUse.hs 311;" f
basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f
basicAwarenessUpdate src/Dodge/Creature/Perception.hs 38;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 38;" f
basicCrPict src/Dodge/Creature/Picture.hs 29;" f basicCrPict src/Dodge/Creature/Picture.hs 30;" f
basicCrShape src/Dodge/Creature/Picture.hs 35;" f basicCrShape src/Dodge/Creature/Picture.hs 36;" f
basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
@@ -2868,7 +2869,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 75;" f chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f
chestPQ src/Dodge/Creature/HandPos.hs 147;" f chestPQ src/Dodge/Creature/HandPos.hs 135;" f
chooseCursorBorders src/Dodge/Render/List.hs 156;" f chooseCursorBorders src/Dodge/Render/List.hs 156;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 34;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 34;" f
@@ -2995,24 +2996,24 @@ corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f corridorN src/Dodge/Room/Corridor.hs 52;" f
corridorWallN src/Dodge/Room/Corridor.hs 71;" f corridorWallN src/Dodge/Room/Corridor.hs 71;" f
crAdd src/Dodge/Room/RezBox.hs 115;" f crAdd src/Dodge/Room/RezBox.hs 115;" f
crAwayFromPost src/Dodge/Creature/Test.hs 84;" f crAwayFromPost src/Dodge/Creature/Test.hs 82;" f
crBlips src/Dodge/RadarSweep.hs 87;" f crBlips src/Dodge/RadarSweep.hs 87;" f
crCamouflage src/Dodge/Creature/Picture.hs 32;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f
crCanSeeCr src/Dodge/Creature/Test.hs 53;" f crCanSeeCr src/Dodge/Creature/Test.hs 51;" f
crCrSpring src/Dodge/Update.hs 886;" f crCrSpring src/Dodge/Update.hs 886;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 60;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 60;" f
crDexterity src/Dodge/Creature/Statistics.hs 17;" f crDexterity src/Dodge/Creature/Statistics.hs 17;" f
crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f
crHasTarget src/Dodge/Creature/Test.hs 66;" f crHasTarget src/Dodge/Creature/Test.hs 64;" f
crHasTargetLOS src/Dodge/Creature/Test.hs 69;" f crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f
crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f
crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f
crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f
crInAimStance src/Dodge/Creature/Test.hs 95;" f crInAimStance src/Dodge/Creature/Test.hs 93;" f
crIntelligence src/Dodge/Creature/Statistics.hs 37;" f crIntelligence src/Dodge/Creature/Statistics.hs 37;" f
crIsAiming src/Dodge/Creature/Test.hs 61;" f crIsAiming src/Dodge/Creature/Test.hs 59;" f
crIsArmouredFrom src/Dodge/Creature/Test.hs 110;" f crIsArmouredFrom src/Dodge/Creature/Test.hs 108;" f
crMass src/Dodge/Creature/Mass.hs 5;" f crMass src/Dodge/Creature/Mass.hs 5;" f
crMaterial src/Dodge/Creature/Material.hs 8;" f crMaterial src/Dodge/Creature/Material.hs 8;" f
crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f
@@ -3020,15 +3021,15 @@ crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 28;" f
crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f
crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" f crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" f
crMvType src/Dodge/Creature/MoveType.hs 6;" f crMvType src/Dodge/Creature/MoveType.hs 6;" f
crNearPoint src/Dodge/Creature/Test.hs 132;" f crNearPoint src/Dodge/Creature/Test.hs 130;" f
crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f
crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f
crRad src/Dodge/Creature/Radius.hs 7;" f crRad src/Dodge/Creature/Radius.hs 7;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" 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
crSpring src/Dodge/Update.hs 881;" f crSpring src/Dodge/Update.hs 881;" f
crStratConMatches src/Dodge/Creature/Test.hs 79;" f crStratConMatches src/Dodge/Creature/Test.hs 77;" f
crStrength src/Dodge/Creature/Statistics.hs 27;" f crStrength src/Dodge/Creature/Statistics.hs 27;" f
crUpdate' src/Dodge/Creature/Update.hs 57;" f crUpdate' src/Dodge/Creature/Update.hs 57;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f
@@ -3043,7 +3044,7 @@ crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 185;" f createFlIt src/Dodge/Placement/PlaceSpot.hs 185;" f
createForceField src/Dodge/ForceField.hs 7;" f createForceField src/Dodge/ForceField.hs 7;" f
createGas src/Dodge/Gas.hs 8;" f createGas src/Dodge/Gas.hs 8;" f
createHeadLamp src/Dodge/Euse.hs 56;" f createHeadLamp src/Dodge/Euse.hs 55;" f
createItemYou src/Dodge/Inventory/Add.hs 61;" f createItemYou src/Dodge/Inventory/Add.hs 61;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f createPathGrid src/Dodge/Room/Path.hs 21;" f
@@ -3122,10 +3123,10 @@ dbwMuzzles src/Dodge/HeldUse.hs 314;" f
deZoneIX src/Dodge/Zoning/Base.hs 89;" f deZoneIX src/Dodge/Zoning/Base.hs 89;" f
deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f
deadEndRoom src/Dodge/Room/Room.hs 235;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f
deadFeet src/Dodge/Creature/Picture.hs 67;" f deadFeet src/Dodge/Creature/Picture.hs 68;" f
deadRot src/Dodge/Creature/Picture.hs 83;" f deadRot src/Dodge/Creature/Picture.hs 84;" f
deadScalp src/Dodge/Creature/Picture.hs 80;" f deadScalp src/Dodge/Creature/Picture.hs 81;" f
deadUpperBody src/Dodge/Creature/Picture.hs 120;" f deadUpperBody src/Dodge/Creature/Picture.hs 113;" f
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f
debrisSPic src/Dodge/Prop/Draw.hs 20;" f debrisSPic src/Dodge/Prop/Draw.hs 20;" f
debrisSize src/Dodge/Block/Debris.hs 77;" f debrisSize src/Dodge/Block/Debris.hs 77;" f
@@ -3169,7 +3170,7 @@ defaultCWorld src/Dodge/Default/World.hs 81;" f
defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f
defaultClusterStatus src/Dodge/Default/Room.hs 38;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" f
defaultConfig src/Dodge/Data/Config.hs 127;" f defaultConfig src/Dodge/Data/Config.hs 127;" f
defaultCorpse src/Dodge/Corpse/Make.hs 33;" f defaultCorpse src/Dodge/Corpse/Make.hs 32;" f
defaultCraftItem src/Dodge/Default/Item.hs 25;" f defaultCraftItem src/Dodge/Default/Item.hs 25;" f
defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f
defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f
@@ -3392,7 +3393,7 @@ drawDragSelected src/Dodge/Render/HUD.hs 132;" f
drawDragSelecting src/Dodge/Render/HUD.hs 149;" f drawDragSelecting src/Dodge/Render/HUD.hs 149;" f
drawEmptySet src/Dodge/Render/Picture.hs 140;" f drawEmptySet src/Dodge/Render/Picture.hs 140;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 134;" f drawEquipment src/Dodge/Creature/Picture.hs 127;" f
drawExamineInventory src/Dodge/Render/HUD.hs 194;" f drawExamineInventory src/Dodge/Render/HUD.hs 194;" f
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 269;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 269;" f
@@ -3515,8 +3516,8 @@ ebFlicker src/Dodge/EnergyBall.hs 70;" f
ebtToDamage src/Dodge/EnergyBall.hs 93;" f ebtToDamage src/Dodge/EnergyBall.hs 93;" f
edgeFormatting src/Dodge/Combine/Graph.hs 131;" f edgeFormatting src/Dodge/Combine/Graph.hs 131;" f
edgeToPic src/Dodge/Debug/Picture.hs 436;" f edgeToPic src/Dodge/Debug/Picture.hs 436;" f
effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnEquip src/Dodge/Equipment.hs 30;" f
effectOnRemove src/Dodge/Equipment.hs 19;" f effectOnRemove src/Dodge/Equipment.hs 17;" f
eitType src/Dodge/Data/EquipType.hs 15;" f eitType src/Dodge/Data/EquipType.hs 15;" f
ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f
elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 508;" f
@@ -3537,13 +3538,13 @@ eqConstr src/SameConstr.hs 17;" f
eqPosText src/Dodge/Equipment/Text.hs 5;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f
eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f
equipAllocString src/Dodge/Render/HUD.hs 306;" f equipAllocString src/Dodge/Render/HUD.hs 306;" f
equipAttachPos src/Dodge/Item/Draw.hs 33;" f equipAttachPos src/Dodge/Item/Draw.hs 32;" f
equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f
equipInfo src/Dodge/Item/Info.hs 141;" f equipInfo src/Dodge/Item/Info.hs 141;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 171;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 171;" f
equipPosition src/Dodge/Item/Draw.hs 41;" f equipPosition src/Dodge/Item/Draw.hs 40;" f
equipSiteInfo src/Dodge/Item/Info.hs 254;" f equipSiteInfo src/Dodge/Item/Info.hs 254;" f
equipSitePQ src/Dodge/Creature/HandPos.hs 30;" f equipSitePQ src/Dodge/Creature/HandPos.hs 25;" 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 54;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 54;" f
@@ -3577,7 +3578,7 @@ faceEdges src/Polyhedra.hs 65;" f
facesToVF src/Polyhedra/Geodesic.hs 69;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f
farWallDistDirection src/Dodge/Update/Camera.hs 239;" f farWallDistDirection src/Dodge/Update/Camera.hs 239;" f
fdiv src/ShortShow.hs 37;" f fdiv src/ShortShow.hs 37;" f
feet src/Dodge/Creature/Picture.hs 50;" f feet src/Dodge/Creature/Picture.hs 51;" f
ffoldM src/Framebuffer/Update.hs 79;" f ffoldM src/Framebuffer/Update.hs 79;" f
filter3 src/FoldableHelp.hs 76;" f filter3 src/FoldableHelp.hs 76;" f
filterSectionsPair src/Dodge/DisplayInventory.hs 165;" f filterSectionsPair src/Dodge/DisplayInventory.hs 165;" f
@@ -3789,7 +3790,7 @@ head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 79;" f headLamp src/Dodge/Item/Equipment.hs 79;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 455;" f headLampShape src/Dodge/Item/Draw/SPic.hs 455;" f
headMap src/Dodge/DoubleTree.hs 249;" f headMap src/Dodge/DoubleTree.hs 249;" f
headPQ src/Dodge/Creature/HandPos.hs 138;" f headPQ src/Dodge/Creature/HandPos.hs 126;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 492;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 75;" f healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 75;" f
healthTest src/Dodge/Room/LasTurret.hs 96;" f healthTest src/Dodge/Room/LasTurret.hs 96;" f
@@ -3921,7 +3922,7 @@ invertInventoryToMap src/Dodge/Combine.hs 56;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 710;" f isAmmoIntLink src/Dodge/HeldUse.hs 710;" f
isAnimate src/Dodge/Creature/Test.hs 135;" f isAnimate src/Dodge/Creature/Test.hs 133;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 76;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f
isElectrical src/Dodge/Machine/Update.hs 80;" f isElectrical src/Dodge/Machine/Update.hs 80;" f
@@ -3964,7 +3965,7 @@ itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f itemCombinationsEdges src/Dodge/Combine/Graph.hs 61;" f
itemDetectorEffect src/Dodge/HeldUse.hs 764;" f itemDetectorEffect src/Dodge/HeldUse.hs 764;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 50;" f
itemEquipPict src/Dodge/Item/Draw.hs 20;" f itemEquipPict src/Dodge/Item/Draw.hs 19;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 85;" f
itemFromAmmoMag src/Dodge/Item.hs 42;" f itemFromAmmoMag src/Dodge/Item.hs 42;" f
itemFromAttachType src/Dodge/Item.hs 51;" f itemFromAttachType src/Dodge/Item.hs 51;" f
@@ -4047,13 +4048,13 @@ ldtToIndentList src/Dodge/DoubleTree.hs 222;" f
ldtToLoc src/Dodge/DoubleTree.hs 268;" f ldtToLoc src/Dodge/DoubleTree.hs 268;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 185;" f leftChildList src/Dodge/Item/Grammar.hs 185;" f
leftHandPQ src/Dodge/Creature/HandPos.hs 77;" f leftHandPQ src/Dodge/Creature/HandPos.hs 71;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 163;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 163;" f
leftLegPQ src/Dodge/Creature/HandPos.hs 104;" f leftLegPQ src/Dodge/Creature/HandPos.hs 95;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 197;" f leftRightCombine src/Dodge/Item/Grammar.hs 197;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 102;" f leftWristPQ src/Dodge/Creature/HandPos.hs 92;" f
legsPQ src/Dodge/Creature/HandPos.hs 39;" f legsPQ src/Dodge/Creature/HandPos.hs 35;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f light src/Color.hs 104;" f
@@ -4158,7 +4159,7 @@ makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
makeColorTermLine src/Dodge/Terminal.hs 134;" f makeColorTermLine src/Dodge/Terminal.hs 134;" f
makeColorTermPara src/Dodge/Terminal.hs 131;" f makeColorTermPara src/Dodge/Terminal.hs 131;" f
makeCorpse src/Dodge/Corpse/Make.hs 14;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f
makeDebris src/Dodge/Block/Debris.hs 45;" f makeDebris src/Dodge/Block/Debris.hs 45;" f
makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f
makeDoorDebris src/Dodge/Block/Debris.hs 24;" f makeDoorDebris src/Dodge/Block/Debris.hs 24;" f
@@ -4379,10 +4380,10 @@ numTraversable src/TreeHelp.hs 183;" f
obstacleColor src/Dodge/Debug/Picture.hs 262;" f obstacleColor src/Dodge/Debug/Picture.hs 262;" f
obstructPathsCrossing src/Dodge/Path.hs 138;" f obstructPathsCrossing src/Dodge/Path.hs 138;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f
onEquipWristShield src/Dodge/Equipment.hs 37;" f onEquipWristShield src/Dodge/Equipment.hs 35;" f
onRemoveWristShield src/Dodge/Equipment.hs 24;" f onRemoveWristShield src/Dodge/Equipment.hs 22;" f
onXY src/Geometry/Vector3D.hs 130;" f onXY src/Geometry/Vector3D.hs 130;" f
oneH src/Dodge/Creature/Test.hs 98;" f oneH src/Dodge/Creature/Test.hs 96;" f
openConsole src/Dodge/Update.hs 136;" f openConsole src/Dodge/Update.hs 136;" f
optionMenu src/Dodge/Menu.hs 108;" f optionMenu src/Dodge/Menu.hs 108;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f
@@ -4799,12 +4800,12 @@ rhombus src/Polyhedra.hs 72;" 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 191;" f rightChildList src/Dodge/Item/Grammar.hs 191;" f
rightHandPQ src/Dodge/Creature/HandPos.hs 53;" f rightHandPQ src/Dodge/Creature/HandPos.hs 50;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 174;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 174;" f
rightLegPQ src/Dodge/Creature/HandPos.hs 120;" f rightLegPQ src/Dodge/Creature/HandPos.hs 111;" 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 75;" f rightWristPQ src/Dodge/Creature/HandPos.hs 68;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f rlPosDir src/Dodge/RoomLink.hs 94;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 409;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 409;" f
rmInLinks src/Dodge/RoomLink.hs 138;" f rmInLinks src/Dodge/RoomLink.hs 138;" f
@@ -4891,7 +4892,7 @@ scale3 src/Picture/Base.hs 145;" f
scaleMat src/MatrixHelper.hs 59;" f scaleMat src/MatrixHelper.hs 59;" f
scaleMatrix src/MatrixHelper.hs 56;" f scaleMatrix src/MatrixHelper.hs 56;" f
scaleSH src/Shape.hs 269;" f scaleSH src/Shape.hs 269;" f
scalp src/Dodge/Creature/Picture.hs 92;" f scalp src/Dodge/Creature/Picture.hs 93;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 101;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 101;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/Update.hs 112;" f scorchSPic src/Dodge/Creature/Update.hs 112;" f
@@ -4978,7 +4979,7 @@ setViewDistance src/Dodge/Update/Camera.hs 234;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f setViewport src/Dodge/Render.hs 440;" f
setVol src/Dodge/Config/Update.hs 30;" f setVol src/Dodge/Config/Update.hs 30;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Equipment.hs 47;" f
setWristShieldPos src/Dodge/Euse.hs 35;" f setWristShieldPos src/Dodge/Euse.hs 35;" f
setupConLoop src/Loop.hs 102;" f setupConLoop src/Loop.hs 102;" f
setupConLoop' src/Loop.hs 192;" f setupConLoop' src/Loop.hs 192;" f
@@ -5054,7 +5055,7 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f
shortShow src/ShortShow.hs 7;" f shortShow src/ShortShow.hs 7;" f
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 69;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 69;" f
shoulderSH src/Dodge/Creature/Picture.hs 131;" f shoulderSH src/Dodge/Creature/Picture.hs 124;" f
showAttachItem src/Dodge/Item/Display.hs 92;" f showAttachItem src/Dodge/Item/Display.hs 92;" f
showEquipItem src/Dodge/Item/Display.hs 107;" f showEquipItem src/Dodge/Item/Display.hs 107;" f
showInt src/Dodge/Item/Info.hs 75;" f showInt src/Dodge/Item/Info.hs 75;" f
@@ -5338,7 +5339,7 @@ torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f
torqueAmount src/Dodge/HeldUse.hs 573;" f torqueAmount src/Dodge/HeldUse.hs 573;" f
torqueCr src/Dodge/WorldEffect.hs 71;" f torqueCr src/Dodge/WorldEffect.hs 71;" f
torso src/Dodge/Creature/Picture.hs 101;" f torso src/Dodge/Creature/Picture.hs 102;" f
tractCr src/Dodge/TractorBeam/Update.hs 27;" f tractCr src/Dodge/TractorBeam/Update.hs 27;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f
tractorBeamAt src/Dodge/HeldUse.hs 807;" f tractorBeamAt src/Dodge/HeldUse.hs 807;" f
@@ -5354,10 +5355,8 @@ translate3 src/Picture/Base.hs 120;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 46;" f translateFloatingCamera src/Dodge/Update/Camera.hs 46;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f
translateH src/Picture/Base.hs 112;" f translateH src/Picture/Base.hs 112;" f
translatePointToEquipSite src/Dodge/Creature/HandPos.hs 27;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 86;" f
translatePointToHead src/Dodge/Creature/HandPos.hs 144;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 39;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 92;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 42;" f
translateSH src/Shape.hs 245;" f translateSH src/Shape.hs 245;" f
translateSHxy src/Shape.hs 249;" f translateSHxy src/Shape.hs 249;" f
translateSHz src/Shape.hs 253;" f translateSHz src/Shape.hs 253;" f
@@ -5365,14 +5364,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
translateToChest src/Dodge/Creature/HandPos.hs 150;" f translateToES src/Dodge/Creature/HandPos.hs 22;" f
translateToHead src/Dodge/Creature/HandPos.hs 135;" f translateToLeftHand src/Dodge/Creature/HandPos.hs 89;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 95;" f translateToLeftLeg src/Dodge/Creature/HandPos.hs 108;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 117;" f translateToRightHand src/Dodge/Creature/HandPos.hs 65;" f
translateToLeftWrist src/Dodge/Creature/HandPos.hs 98;" f translateToRightLeg src/Dodge/Creature/HandPos.hs 123;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 68;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 132;" f
translateToRightWrist src/Dodge/Creature/HandPos.hs 71;" f
translateWallID src/Dodge/Wall/Move.hs 37;" f translateWallID src/Dodge/Wall/Move.hs 37;" f
translateXY src/Polyhedra.hs 26;" f translateXY src/Polyhedra.hs 26;" f
trapezionBWHW src/Geometry/Polygon.hs 24;" f trapezionBWHW src/Geometry/Polygon.hs 24;" f
@@ -5421,8 +5417,8 @@ tutorialMessage1 src/Dodge/Room/Tutorial.hs 95;" f
tweenAngles src/Geometry/Vector.hs 195;" f tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f
twists src/Dodge/Creature/Test.hs 104;" f twists src/Dodge/Creature/Test.hs 102;" f
twoFlat src/Dodge/Creature/Test.hs 101;" f twoFlat src/Dodge/Creature/Test.hs 99;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 154;" f twoRoomPoss src/Dodge/PlacementSpot.hs 154;" f
@@ -5564,7 +5560,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f
updateWheelEvents src/Dodge/Update.hs 422;" f updateWheelEvents src/Dodge/Update.hs 422;" f
updateWorldEventFlag src/Dodge/Update.hs 125;" f updateWorldEventFlag src/Dodge/Update.hs 125;" f
updateWorldEventFlags src/Dodge/Update.hs 113;" f updateWorldEventFlags src/Dodge/Update.hs 113;" f
upperBody src/Dodge/Creature/Picture.hs 127;" f upperBody src/Dodge/Creature/Picture.hs 120;" f
upperBox src/Shape.hs 156;" f upperBox src/Shape.hs 156;" f
upperBoxHalf src/Shape.hs 222;" f upperBoxHalf src/Shape.hs 222;" f
upperBoxMT src/Shape.hs 147;" f upperBoxMT src/Shape.hs 147;" f