diff --git a/src/Dodge/Corpse/Make.hs b/src/Dodge/Corpse/Make.hs index 3bea0329e..05161e98d 100644 --- a/src/Dodge/Corpse/Make.hs +++ b/src/Dodge/Corpse/Make.hs @@ -9,10 +9,9 @@ import Dodge.Data.Creature import Geometry import Shape import ShapePicture -import qualified Data.IntMap.Strict as IM -makeCorpse :: IM.IntMap Item -> Creature -> Corpse -makeCorpse m cr = +makeCorpse :: Creature -> Corpse +makeCorpse cr = defaultCorpse & cpPos .~ _crPos cr & cpDir .~ _crDir cr @@ -20,8 +19,8 @@ makeCorpse m cr = .~ noPic ( scaleSH (V3 crsize crsize crsize) $ mconcat - [ colorSH (_skinHead cskin) $ deadScalp m cr - , colorSH (_skinUpper cskin) $ deadUpperBody m cr + [ colorSH (_skinHead cskin) $ deadScalp cr + , colorSH (_skinUpper cskin) $ deadUpperBody cr , rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr ] ) diff --git a/src/Dodge/Creature/HandPos.hs b/src/Dodge/Creature/HandPos.hs index 6d0f66d9a..e1c29f33e 100644 --- a/src/Dodge/Creature/HandPos.hs +++ b/src/Dodge/Creature/HandPos.hs @@ -1,14 +1,10 @@ {-# LANGUAGE LambdaCase #-} module Dodge.Creature.HandPos ( + equipSitePQ, translatePointToLeftHand, translatePointToRightHand, - translatePointToHead, - translateToLeftWrist, - translateToRightWrist, translateToLeftLeg, translateToRightLeg, - translateToHead, - translateToChest, translateToLeftHand, translateToRightHand, backPQ, @@ -17,7 +13,6 @@ module Dodge.Creature.HandPos ( ) where import Dodge.Data.Equipment.Misc -import qualified Data.IntMap.Strict as IM import qualified Quaternion as Q import Control.Lens import Dodge.Creature.Test @@ -35,11 +30,8 @@ equipSitePQ = \case OnHead -> headPQ OnChest -> chestPQ OnBack -> backPQ - OnLegs -> legsPQ - -legsPQ :: a -legsPQ = undefined - + OnLeftLeg -> leftLegPQ + OnRightLeg -> rightLegPQ translatePointToRightHand :: Creature -> Point3 -> Point3 translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID)) @@ -70,10 +62,6 @@ rightHandPQ cr translateToRightHand :: Creature -> SPic -> SPic 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 cr = rightHandPQ cr `Q.comp` (V3 0 (-4) (-4), Q.qID) @@ -95,13 +83,10 @@ leftHandPQ cr translatePointToLeftHand :: Creature -> Point3 -> Point3 translatePointToLeftHand cr p = fst (leftHandPQ cr `Q.comp` (p,Q.qID)) -translateToLeftHand :: IM.IntMap Item -> Creature -> SPic -> SPic -translateToLeftHand m = overPosSP . translatePointToLeftHand - -translateToLeftWrist :: Creature -> SPic -> SPic -translateToLeftWrist cr = overPosSP - (\p -> fst $ leftHandPQ cr `Q.comp` (V3 0 4 (-4)+p, Q.qID)) +translateToLeftHand :: Creature -> SPic -> SPic +translateToLeftHand = overPosSP . translatePointToLeftHand +leftWristPQ :: Creature -> Point3Q leftWristPQ cr = leftHandPQ cr `Q.comp` (V3 0 4 (-4), Q.qID) leftLegPQ :: Creature -> Point3Q @@ -135,24 +120,18 @@ rightLegPQ cr = Q.comp (0,Q.qz (_crMvDir cr - _crDir cr)) translateToRightLeg :: Creature -> SPic -> SPic 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 cr | 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)) | otherwise = (V3 2.5 0 20, Q.qID) -translatePointToHead :: IM.IntMap Item -> Creature -> Point3 -> Point3 -translatePointToHead m cr p = fst (headPQ cr `Q.comp` (p,Q.qID)) +--translatePointToHead :: IM.IntMap Item -> Creature -> Point3 -> Point3 +--translatePointToHead m cr p = fst (headPQ cr `Q.comp` (p,Q.qID)) chestPQ :: Creature -> Point3Q 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 cr | oneH cr = (V3 0 0 10, Q.qz 0.5) diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index 00b2b6dab..ec2a3fa55 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -9,6 +9,7 @@ module Dodge.Creature.Picture ( deadFeet, ) where +import Dodge.Data.Equipment.Misc import Dodge.Creature.HandPos import qualified Data.IntMap.Strict as IM import Control.Lens @@ -27,19 +28,19 @@ import Shape import ShapePicture 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 _ = FullyVisible -basicCrShape :: IM.IntMap Item -> Creature -> Shape -basicCrShape m cr +basicCrShape :: Creature -> Shape +basicCrShape cr | crCamouflage cr == Invisible = mempty | otherwise = scaleSH (V3 crsize crsize crsize) $ mconcat - [ colorSH (_skinHead cskin) $ scalp m cr - , colorSH (_skinUpper cskin) $ upperBody m cr + [ colorSH (_skinHead cskin) $ scalp cr + , colorSH (_skinUpper cskin) $ upperBody cr , rotmdir $ colorSH (_skinLower cskin) $ feet cr ] where @@ -68,17 +69,17 @@ deadFeet :: Creature -> Shape {-# INLINE deadFeet #-} deadFeet = feet -arms :: IM.IntMap Item -> Creature -> Shape +arms :: Creature -> Shape {-# INLINE arms #-} -arms m cr = +arms cr = (^. _1) $ translateToRightHand cr aHand - <> translateToLeftHand m cr aHand + <> translateToLeftHand cr aHand where aHand = noPic $ translateSHz (-4) . upperPrismPolyHalfST 4 $ polyCirc 3 4 -deadScalp :: IM.IntMap Item -> Creature -> Shape -deadScalp m cr = deadRot cr . translateSHz 10 . scalp m $ cr +deadScalp :: Creature -> Shape +deadScalp cr = deadRot cr . translateSHz 10 . scalp $ cr deadRot :: Creature -> Shape -> Shape deadRot cr = overPosSH (Q.rotateToZ d) @@ -89,9 +90,9 @@ deadRot cr = overPosSH (Q.rotateToZ d) (addZ 0 . unitVectorAtAngle . subtract (_crDir cr + pi)) (damageDirection $ _crDamage cr) -scalp :: IM.IntMap Item -> Creature -> Shape +scalp :: Creature -> Shape {-# 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 -- | oneH cr = rotateSH 0.5 $ 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 {-# INLINE torso #-} -torso cr = overPosSH (\p -> fst (backPQ cr `Q.comp` (p,Q.qID))) 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 +torso cr = overPosSH (translateToES cr OnBack) tsh where tsh = 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 -deadUpperBody :: IM.IntMap Item -> Creature -> Shape -deadUpperBody m cr = deadRot cr . translateSHz (negate 10) . upperBody m $ cr +deadUpperBody :: Creature -> Shape +deadUpperBody cr = deadRot cr . translateSHz (negate 10) . upperBody $ cr baseShoulder :: Shape {-# INLINE baseShoulder #-} 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 #-} -upperBody m cr = arms m cr <> shoulderSH (torso cr) +upperBody cr = arms cr <> shoulderSH (torso cr) shoulderSH :: Shape -> Shape shoulderSH = translateSHz 20 drawEquipment :: IM.IntMap Item -> Creature -> SPic {-# 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) diff --git a/src/Dodge/Creature/Test.hs b/src/Dodge/Creature/Test.hs index fc3703892..cd090c85b 100644 --- a/src/Dodge/Creature/Test.hs +++ b/src/Dodge/Creature/Test.hs @@ -26,11 +26,9 @@ module Dodge.Creature.Test ( import NewInt import qualified Data.IntMap.Strict as IM -import Dodge.Item.Grammar import Dodge.Creature.Radius import Dodge.Data.Equipment.Misc import Dodge.Data.AimStance -import Dodge.Item.AimStance import Control.Lens import Data.List (find) import Data.Maybe diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 35b295c47..90ef6b9bb 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -107,7 +107,7 @@ corpseOrGib cr w = w & case cr ^? crDamage . to maxDamageType . _Just . _1 of _ -> addcorpse thecorpse where addcorpse ctype = plNew (cWorld . lWorld . corpses) cpID ctype - thecorpse = makeCorpse (w ^. cWorld . lWorld . items) cr + thecorpse = makeCorpse cr scorchSPic :: SPic -> SPic scorchSPic = _1 %~ overColSH (mixColors 0.9 0.1 black . normalizeColor) diff --git a/src/Dodge/Data/EquipType.hs b/src/Dodge/Data/EquipType.hs index 0c989b3f1..fcaf4ea53 100644 --- a/src/Dodge/Data/EquipType.hs +++ b/src/Dodge/Data/EquipType.hs @@ -22,9 +22,9 @@ eitType = \case BRAINHAT -> GoesOnHead HAT -> GoesOnHead HEADLAMP -> GoesOnHead - POWERLEGS -> GoesOnLegs - SPEEDLEGS -> GoesOnLegs - JUMPLEGS -> GoesOnLegs + POWERLEGS -> GoesOnLeg + SPEEDLEGS -> GoesOnLeg + JUMPLEGS -> GoesOnLeg FUELPACK -> GoesOnBack BULLETBELTPACK -> GoesOnBack BULLETBELTBRACER -> GoesOnWrist diff --git a/src/Dodge/Data/Equipment/Misc.hs b/src/Dodge/Data/Equipment/Misc.hs index 1543975e6..39b8c5ad4 100644 --- a/src/Dodge/Data/Equipment/Misc.hs +++ b/src/Dodge/Data/Equipment/Misc.hs @@ -13,7 +13,7 @@ data EquipType | GoesOnChest | GoesOnBack | GoesOnWrist - | GoesOnLegs + | GoesOnLeg deriving (Eq, Ord, Show, Read) --deriving (Eq, Ord, Show, Read) --Generic, Flat) @@ -24,7 +24,8 @@ data EquipSite | OnBack | OnLeftWrist | OnRightWrist - | OnLegs + | OnLeftLeg + | OnRightLeg -- | OnSpecial deriving (Eq, Ord, Show, Read) diff --git a/src/Dodge/Equipment.hs b/src/Dodge/Equipment.hs index b68071b0a..e7521923f 100644 --- a/src/Dodge/Equipment.hs +++ b/src/Dodge/Equipment.hs @@ -6,8 +6,6 @@ module Dodge.Equipment ( import Control.Lens import Data.Maybe import Dodge.Creature.HandPos -import Dodge.Creature.Test -import Dodge.Data.Equipment.Misc import Dodge.Data.World import Dodge.Item.Location import Dodge.Wall.Delete @@ -50,13 +48,12 @@ setWristShieldPos :: Item -> Creature -> World -> World setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline where i = _itParamID $ _itParams itm - m = w ^. cWorld . lWorld . items wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) invid = _ilInvID (_itLocation itm) handtrans = case cr ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k . itLocation . ilEquipSite . _Just of - Just OnLeftWrist -> \cr' -> translatePointToLeftHand cr' . g - _ -> translatePointToRightHand - g - | twists cr = (+.+.+ V3 (-5) 10 0) - | otherwise = id - f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans cr + Just x -> translateToES cr x -- . g + _ -> undefined +-- g +-- | twists cr = (+.+.+ V3 (-5) 10 0) +-- | otherwise = id + f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans diff --git a/src/Dodge/Equipment/Text.hs b/src/Dodge/Equipment/Text.hs index 68e5dceef..2ea11661b 100644 --- a/src/Dodge/Equipment/Text.hs +++ b/src/Dodge/Equipment/Text.hs @@ -9,6 +9,5 @@ eqPosText ep = case ep of OnBack -> "BACK" OnLeftWrist -> "L.WRIST" OnRightWrist -> "R.WRIST" - OnLegs -> "LEGS" --- OnSpecial -> "EQUIPPED" - + OnLeftLeg -> "L.LEG" + OnRightLeg -> "R.LEG" diff --git a/src/Dodge/Euse.hs b/src/Dodge/Euse.hs index 3f0c28e3e..e72c6bdd7 100644 --- a/src/Dodge/Euse.hs +++ b/src/Dodge/Euse.hs @@ -35,7 +35,6 @@ useMagShield mt _ cr w = setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World setWristShieldPos itm cr x w = moveWallIDUnsafe i wlline w where - m = w ^. cWorld . lWorld . items i = _itParamID $ _itParams itm wlline = (f (V3 (-10) 7 0), f (V3 10 7 0)) handtrans = case x of @@ -58,6 +57,6 @@ createHeadLamp _ cr w = w & cWorld . lWorld . lights .:~ LSParam ((_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 0.7 diff --git a/src/Dodge/Inventory/RBList.hs b/src/Dodge/Inventory/RBList.hs index 800ee4563..30fae344c 100644 --- a/src/Dodge/Inventory/RBList.hs +++ b/src/Dodge/Inventory/RBList.hs @@ -80,4 +80,4 @@ eqTypeToSites es = case es of GoesOnChest -> [OnChest] GoesOnBack -> [OnBack] GoesOnWrist -> [OnLeftWrist, OnRightWrist] - GoesOnLegs -> [OnLegs] + GoesOnLeg -> [OnLeftLeg,OnRightLeg] diff --git a/src/Dodge/Item/Draw.hs b/src/Dodge/Item/Draw.hs index b26093669..54c8e31e2 100644 --- a/src/Dodge/Item/Draw.hs +++ b/src/Dodge/Item/Draw.hs @@ -4,7 +4,6 @@ module Dodge.Item.Draw ( itemEquipPict, ) where -import qualified Data.IntMap.Strict as IM import qualified Quaternion as Q import Dodge.Data.Equipment.Misc import Dodge.Data.ComposedItem @@ -17,12 +16,12 @@ import Dodge.Item.Draw.SPic import Dodge.Item.HeldOffset import ShapePicture -itemEquipPict :: IM.IntMap Item -> Creature -> DTree CItem -> SPic -itemEquipPict m cr itmtree +itemEquipPict :: Creature -> DTree CItem -> SPic +itemEquipPict cr itmtree | --Just i <- itm ^? itLocation . ilInvID Just esite <- itm ^? itLocation . ilEquipSite . _Just , 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 = overPosSP (Q.prePos $ handHandleOrient loc cr) (itemTreeSPic itmtree) | otherwise = mempty @@ -30,23 +29,25 @@ itemEquipPict m cr itmtree itm = itmtree ^. dtValue . _1 loc = LocDT TopDT itmtree -equipAttachPos :: EquipItemType -> Point3 +equipAttachPos :: EquipItemType -> Point3Q equipAttachPos = \case - BATTERYPACK -> V3 (-8) 0 10 - FUELPACK -> V3 (-9) 0 10 - BULLETBELTPACK -> V3 (-9) 0 10 - BULLETBELTBRACER -> V3 (-9) 0 10 - _ -> 0 + BATTERYPACK -> (V3 (-8) 0 10, Q.qID) + FUELPACK -> (V3 (-9) 0 10, Q.qID) + BULLETBELTPACK -> (V3 (-9) 0 10, Q.qID) + BULLETBELTBRACER -> (V3 (-9) 0 10, Q.qID) + _ -> (0, Q.qID) -equipPosition :: EquipSite -> IM.IntMap Item -> Creature -> Point3 -> SPic -> SPic -equipPosition epos m cr p sh = case epos of - OnLeftWrist -> translateToLeftWrist cr sh - OnRightWrist -> translateToRightWrist cr sh - OnLegs -> - translateToLeftLeg cr sh - <> translateToRightLeg cr sh-- (mirrorSPxz sh) - OnHead -> translateToHead m cr sh - OnChest -> translateToChest m cr sh - --OnBack -> translateToBack cr p sh - OnBack -> overPosSP (\x -> fst $ backPQ cr `Q.comp` (p + x,Q.qID)) sh --- OnSpecial -> sh +equipPosition :: EquipSite -> Creature -> Point3Q -> SPic -> SPic +equipPosition es cr q = overPosSP + (\x -> fst $ equipSitePQ es cr `Q.comp` q `Q.comp` (x,Q.qID)) +-- case epos of +-- --OnLeftWrist -> translateToLeftWrist cr +-- --OnRightWrist -> translateToRightWrist cr +-- OnLeftWrist -> overPosSP (translateToES cr OnLeftWrist) +-- OnRightWrist -> overPosSP (translateToES cr OnRightWrist) +-- OnLegs -> +-- translateToLeftLeg cr +-- <> translateToRightLeg cr-- (mirrorSPxz sh) +-- OnHead -> overPosSP (translateToES cr OnHead) +-- OnChest -> overPosSP (translateToES cr OnChest) +-- OnBack -> overPosSP (\x -> fst $ backPQ cr `Q.comp` (p + x,Q.qID)) diff --git a/src/Dodge/Item/Info.hs b/src/Dodge/Item/Info.hs index 9c0f4df17..6fe30bc3f 100644 --- a/src/Dodge/Item/Info.hs +++ b/src/Dodge/Item/Info.hs @@ -257,7 +257,7 @@ equipSiteInfo es = case es of GoesOnChest -> " on the chest" GoesOnBack -> " on the back" GoesOnWrist -> " on a wrist" - GoesOnLegs -> " on both legs" + GoesOnLeg -> " on a leg" --makeCommaList :: [String] -> String --makeCommaList [] = "" diff --git a/tags b/tags index 0a81d9b4d..4535eced2 100644 --- a/tags +++ b/tags @@ -517,7 +517,7 @@ Goal src/Dodge/Data/ActionPlan.hs 196;" 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 -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 Government src/Dodge/Data/Scenario.hs 43;" C 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 HomeUsingTargeting src/Dodge/Data/Projectile.hs 44;" C Hospital src/Dodge/Data/Scenario.hs 69;" C -Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t -Hotkey0 src/Dodge/Data/Equipment/Misc.hs 49;" C -Hotkey1 src/Dodge/Data/Equipment/Misc.hs 40;" C -Hotkey2 src/Dodge/Data/Equipment/Misc.hs 41;" C -Hotkey3 src/Dodge/Data/Equipment/Misc.hs 42;" C -Hotkey4 src/Dodge/Data/Equipment/Misc.hs 43;" C -Hotkey5 src/Dodge/Data/Equipment/Misc.hs 44;" C -Hotkey6 src/Dodge/Data/Equipment/Misc.hs 45;" C -Hotkey7 src/Dodge/Data/Equipment/Misc.hs 46;" C -Hotkey8 src/Dodge/Data/Equipment/Misc.hs 47;" C -Hotkey9 src/Dodge/Data/Equipment/Misc.hs 48;" C -HotkeyC src/Dodge/Data/Equipment/Misc.hs 38;" C -HotkeyE src/Dodge/Data/Equipment/Misc.hs 34;" C -HotkeyQ src/Dodge/Data/Equipment/Misc.hs 33;" C -HotkeyR src/Dodge/Data/Equipment/Misc.hs 35;" C -HotkeyV src/Dodge/Data/Equipment/Misc.hs 39;" C -HotkeyX src/Dodge/Data/Equipment/Misc.hs 37;" C -HotkeyZ src/Dodge/Data/Equipment/Misc.hs 36;" C +Hotkey src/Dodge/Data/Equipment/Misc.hs 33;" t +Hotkey0 src/Dodge/Data/Equipment/Misc.hs 50;" C +Hotkey1 src/Dodge/Data/Equipment/Misc.hs 41;" C +Hotkey2 src/Dodge/Data/Equipment/Misc.hs 42;" C +Hotkey3 src/Dodge/Data/Equipment/Misc.hs 43;" C +Hotkey4 src/Dodge/Data/Equipment/Misc.hs 44;" C +Hotkey5 src/Dodge/Data/Equipment/Misc.hs 45;" C +Hotkey6 src/Dodge/Data/Equipment/Misc.hs 46;" C +Hotkey7 src/Dodge/Data/Equipment/Misc.hs 47;" C +Hotkey8 src/Dodge/Data/Equipment/Misc.hs 48;" C +Hotkey9 src/Dodge/Data/Equipment/Misc.hs 49;" C +HotkeyC src/Dodge/Data/Equipment/Misc.hs 39;" C +HotkeyE src/Dodge/Data/Equipment/Misc.hs 35;" C +HotkeyQ src/Dodge/Data/Equipment/Misc.hs 34;" C +HotkeyR src/Dodge/Data/Equipment/Misc.hs 36;" C +HotkeyV src/Dodge/Data/Equipment/Misc.hs 40;" C +HotkeyX src/Dodge/Data/Equipment/Misc.hs 38;" C +HotkeyZ src/Dodge/Data/Equipment/Misc.hs 37;" C Huge src/Shape/Data.hs 28;" C Humanoid src/Dodge/Data/Creature/Misc.hs 77;" C 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 OnFloor src/Dodge/Data/Item/Location.hs 36;" 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 -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 OnTurret src/Dodge/Data/Item/Location.hs 35;" 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 armouredChasers src/Dodge/Room/Boss.hs 63;" 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 arrowPath src/Picture/Composite.hs 8;" 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 bQuadToF src/Geometry/Bezier.hs 37;" 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 backpackShape src/Dodge/Item/Draw/SPic.hs 200;" 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 baseRodShape src/Dodge/Item/Draw/SPic.hs 415;" 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 baseStickShapeX src/Dodge/Item/Draw/SPic.hs 304;" f baseStickSpread src/Dodge/HeldUse.hs 311;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 38;" f -basicCrPict src/Dodge/Creature/Picture.hs 29;" f -basicCrShape src/Dodge/Creature/Picture.hs 35;" f +basicCrPict src/Dodge/Creature/Picture.hs 30;" f +basicCrShape src/Dodge/Creature/Picture.hs 36;" f basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" 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/Deprecated.hs 59;" 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 chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" 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 corridorWallN src/Dodge/Room/Corridor.hs 71;" 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 -crCamouflage src/Dodge/Creature/Picture.hs 32;" f -crCanSeeCr src/Dodge/Creature/Test.hs 53;" f +crCamouflage src/Dodge/Creature/Picture.hs 33;" f +crCanSeeCr src/Dodge/Creature/Test.hs 51;" f crCrSpring src/Dodge/Update.hs 886;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 60;" f crDexterity src/Dodge/Creature/Statistics.hs 17;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f -crHasTarget src/Dodge/Creature/Test.hs 66;" f -crHasTargetLOS src/Dodge/Creature/Test.hs 69;" f +crHasTarget src/Dodge/Creature/Test.hs 64;" f +crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" 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 -crIsAiming src/Dodge/Creature/Test.hs 61;" f -crIsArmouredFrom src/Dodge/Creature/Test.hs 110;" f +crIsAiming src/Dodge/Creature/Test.hs 59;" f +crIsArmouredFrom src/Dodge/Creature/Test.hs 108;" f crMass src/Dodge/Creature/Mass.hs 5;" f crMaterial src/Dodge/Creature/Material.hs 8;" 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 crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" 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 crOnWall src/Dodge/WallCreatureCollisions.hs 86;" 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 crShape src/Dodge/Creature/Shape.hs 8;" 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 crUpdate' src/Dodge/Creature/Update.hs 57;" 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 createForceField src/Dodge/ForceField.hs 7;" 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 createLightMap src/Render.hs 26;" 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 deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deadEndRoom src/Dodge/Room/Room.hs 235;" f -deadFeet src/Dodge/Creature/Picture.hs 67;" f -deadRot src/Dodge/Creature/Picture.hs 83;" f -deadScalp src/Dodge/Creature/Picture.hs 80;" f -deadUpperBody src/Dodge/Creature/Picture.hs 120;" f +deadFeet src/Dodge/Creature/Picture.hs 68;" f +deadRot src/Dodge/Creature/Picture.hs 84;" f +deadScalp src/Dodge/Creature/Picture.hs 81;" f +deadUpperBody src/Dodge/Creature/Picture.hs 113;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f debrisSPic src/Dodge/Prop/Draw.hs 20;" f debrisSize src/Dodge/Block/Debris.hs 77;" f @@ -3169,7 +3170,7 @@ defaultCWorld src/Dodge/Default/World.hs 81;" f defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" 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 defaultCreature src/Dodge/Default/Creature.hs 12;" 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 drawEmptySet src/Dodge/Render/Picture.hs 140;" 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 drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" 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 edgeFormatting src/Dodge/Combine/Graph.hs 131;" f edgeToPic src/Dodge/Debug/Picture.hs 436;" f -effectOnEquip src/Dodge/Equipment.hs 32;" f -effectOnRemove src/Dodge/Equipment.hs 19;" f +effectOnEquip src/Dodge/Equipment.hs 30;" f +effectOnRemove src/Dodge/Equipment.hs 17;" f eitType src/Dodge/Data/EquipType.hs 15;" f ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" 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 eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" 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 equipInfo src/Dodge/Item/Info.hs 141;" 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 -equipSitePQ src/Dodge/Creature/HandPos.hs 30;" f +equipSitePQ src/Dodge/Creature/HandPos.hs 25;" f equipType src/Dodge/Data/EquipType.hs 10;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" 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 farWallDistDirection src/Dodge/Update/Camera.hs 239;" 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 filter3 src/FoldableHelp.hs 76;" 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 headLampShape src/Dodge/Item/Draw/SPic.hs 455;" 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 healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 75;" 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 invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" 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 isConnected src/Dodge/Inventory/Swap.hs 76;" 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 itemDetectorEffect src/Dodge/HeldUse.hs 764;" 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 itemFromAmmoMag src/Dodge/Item.hs 42;" 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 left src/DoubleStack.hs 16;" 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 -leftLegPQ src/Dodge/Creature/HandPos.hs 104;" f +leftLegPQ src/Dodge/Creature/HandPos.hs 95;" f leftPad src/Padding.hs 15;" f leftRightCombine src/Dodge/Item/Grammar.hs 197;" f -leftWristPQ src/Dodge/Creature/HandPos.hs 102;" f -legsPQ src/Dodge/Creature/HandPos.hs 39;" f +leftWristPQ src/Dodge/Creature/HandPos.hs 92;" f +legsPQ src/Dodge/Creature/HandPos.hs 35;" f legsSPic src/Dodge/Item/Draw/SPic.hs 480;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" 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 makeColorTermLine src/Dodge/Terminal.hs 134;" 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 makeDebrisDirected src/Dodge/Block/Debris.hs 48;" 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 obstructPathsCrossing src/Dodge/Path.hs 138;" f oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f -onEquipWristShield src/Dodge/Equipment.hs 37;" f -onRemoveWristShield src/Dodge/Equipment.hs 24;" f +onEquipWristShield src/Dodge/Equipment.hs 35;" f +onRemoveWristShield src/Dodge/Equipment.hs 22;" 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 optionMenu src/Dodge/Menu.hs 108;" 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 right src/DoubleStack.hs 16;" 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 -rightLegPQ src/Dodge/Creature/HandPos.hs 120;" f +rightLegPQ src/Dodge/Creature/HandPos.hs 111;" f rightPad src/Padding.hs 19;" 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 rlauncherPic src/Dodge/Item/Draw/SPic.hs 409;" 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 scaleMatrix src/MatrixHelper.hs 56;" 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 scodeToChar src/Dodge/ScodeToChar.hs 6;" 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 setViewport src/Dodge/Render.hs 440;" 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 setupConLoop src/Loop.hs 102;" f setupConLoop' src/Loop.hs 192;" f @@ -5054,7 +5055,7 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 7;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" 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 showEquipItem src/Dodge/Item/Display.hs 107;" 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 torqueAmount src/Dodge/HeldUse.hs 573;" 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 tractFlIt src/Dodge/TractorBeam/Update.hs 22;" 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 translateFloatingCameraKeys src/Dodge/Update/Camera.hs 63;" f translateH src/Picture/Base.hs 112;" f -translatePointToEquipSite src/Dodge/Creature/HandPos.hs 27;" f -translatePointToHead src/Dodge/Creature/HandPos.hs 144;" f -translatePointToLeftHand src/Dodge/Creature/HandPos.hs 92;" f -translatePointToRightHand src/Dodge/Creature/HandPos.hs 42;" f +translatePointToLeftHand src/Dodge/Creature/HandPos.hs 86;" f +translatePointToRightHand src/Dodge/Creature/HandPos.hs 39;" f translateSH src/Shape.hs 245;" f translateSHxy src/Shape.hs 249;" f translateSHz src/Shape.hs 253;" f @@ -5365,14 +5364,11 @@ translateSP src/ShapePicture.hs 53;" f translateSPxy src/ShapePicture.hs 45;" f translateSPz src/ShapePicture.hs 49;" f translateScreenPos src/Dodge/ScreenPos.hs 12;" f -translateToChest src/Dodge/Creature/HandPos.hs 150;" f -translateToHead src/Dodge/Creature/HandPos.hs 135;" f -translateToLeftHand src/Dodge/Creature/HandPos.hs 95;" f -translateToLeftLeg src/Dodge/Creature/HandPos.hs 117;" f -translateToLeftWrist src/Dodge/Creature/HandPos.hs 98;" 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 +translateToES src/Dodge/Creature/HandPos.hs 22;" f +translateToLeftHand src/Dodge/Creature/HandPos.hs 89;" f +translateToLeftLeg src/Dodge/Creature/HandPos.hs 108;" f +translateToRightHand src/Dodge/Creature/HandPos.hs 65;" f +translateToRightLeg src/Dodge/Creature/HandPos.hs 123;" f translateWallID src/Dodge/Wall/Move.hs 37;" f translateXY src/Polyhedra.hs 26;" 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 twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f -twists src/Dodge/Creature/Test.hs 104;" f -twoFlat src/Dodge/Creature/Test.hs 101;" f +twists src/Dodge/Creature/Test.hs 102;" f +twoFlat src/Dodge/Creature/Test.hs 99;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 165;" 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 updateWorldEventFlag src/Dodge/Update.hs 125;" 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 upperBoxHalf src/Shape.hs 222;" f upperBoxMT src/Shape.hs 147;" f