Start simplifying creature body parts/attachment positioning

This commit is contained in:
2025-08-09 09:47:05 +01:00
parent 9fb7440776
commit 1063a2314d
10 changed files with 240 additions and 183 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+157 -97
View File
@@ -9,11 +9,14 @@ module Dodge.Creature.HandPos (
translateToRightLeg,
translateToHead,
translateToChest,
translateToBack,
-- translateToBack,
translateToLeftHand,
translateToRightHand,
backPQ,
headPQ,
) where
import qualified Quaternion as Q
import Control.Lens
import Dodge.Creature.Test
import Dodge.Data.Creature
@@ -21,96 +24,141 @@ import Geometry
import ShapePicture
translatePointToRightHand :: Creature -> Point3 -> Point3
translatePointToRightHand cr = translatePointToRightHand' cr . mirrorV3xz
translatePointToRightHand cr p = fst (rightHandPQ cr `Q.comp` (p,Q.qID))
--translatePointToRightHand' cr . mirrorV3xz
mirrorV3xz :: Point3 -> Point3
mirrorV3xz (V3 x y z) = V3 x (- y) z
--mirrorV3xz :: Point3 -> Point3
--mirrorV3xz (V3 x y z) = V3 x (- y) z
translatePointToRightHand' :: Creature -> Point3 -> Point3
translatePointToRightHand' cr
| oneH cr = (+.+.+ V3 11 (-3) 20) . rotate3 0.4 -- . rotate3 (-0.5)-- . scaleSH (V3 1 1.5 1)
| twists cr = (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 4 (-10) 0)
| twoFlat cr = (+.+.+ V3 4 (-8) 10)
--translatePointToRightHand' :: Creature -> Point3 -> Point3
--translatePointToRightHand' cr
-- | oneH cr = (+.+.+ V3 11 (-3) 20) . rotate3 0.4 -- . rotate3 (-0.5)-- . scaleSH (V3 1 1.5 1)
-- | twists cr = (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 4 (-10) 0)
-- | twoFlat cr = (+.+.+ V3 4 (-8) 10)
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> (+.+.+ V3 (- f sa) (- off) 10)
-- _ -> (+.+.+ V3 0 (- off) 10)
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
rightHandPQ :: Creature -> Point3Q
rightHandPQ cr
| 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)
| twoFlat cr = (V3 4 (-8) 10, Q.qID)
| otherwise = case cr ^? crStance . carriage of
Just (Walking sa LeftForward) -> (+.+.+ V3 (- f sa) (- off) 10)
_ -> (+.+.+ V3 0 (- off) 10)
Just (Walking sa LeftForward) -> (V3 (- f sa) (- off) 10, Q.qID)
Just (Walking sa RightForward) -> (V3 (- g sa) (- off) 10, Q.qID)
_ -> (V3 0 (- off) 10, Q.qID)
where
off = 8
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
f i = negate 2 + negate 6 * (sLen - i) / sLen
g i = negate 2 + negate 6 * (i) / sLen
translateToRightHand :: Creature -> SPic -> SPic
translateToRightHand = translateToRightHand' -- . mirrorSPxz
translateToRightHand' :: Creature -> SPic -> SPic
translateToRightHand' cr
| oneH cr = shoulderSP . translateSPxy 11 (-3) . rotateSP (-0.5) -- . scaleSH (V3 1 1.5 1)
| twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 4 (-10)
| twoFlat cr = waistSP . translateSPxy 4 (-8)
| otherwise = case cr ^? crStance . carriage of
Just (Walking sa LeftForward) -> waistSP . translateSPxy (- f sa) (- off)
_ -> waistSP . translateSPxy 0 (- off)
where
off = 8
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
translateToRightHand = overPosSP . translatePointToRightHand
--translateToRightHand = translateToRightHand' -- . mirrorSPxz
--
--translateToRightHand' :: Creature -> SPic -> SPic
--translateToRightHand' cr
-- | oneH cr = shoulderSP . translateSPxy 11 (-3) . rotateSP (-0.5) -- . scaleSH (V3 1 1.5 1)
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 4 (-10)
-- | twoFlat cr = waistSP . translateSPxy 4 (-8)
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- f sa) (- off)
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- g sa) (- off)
-- _ -> waistSP . translateSPxy 0 (- off)
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
translateToRightWrist :: Creature -> SPic -> SPic
translateToRightWrist = translateToRightWrist' -- . mirrorSPxz
translateToRightWrist cr = overPosSP
(\p -> fst $ rightHandPQ cr `Q.comp` (V3 0 (-4) (-4)+p, Q.qID))
-- --translateToRightWrist' -- . mirrorSPxz
--
--translateToRightWrist' :: Creature -> SPic -> SPic
--translateToRightWrist' cr
-- | oneH cr = shoulderSP . translateSPxy 11 (-3) . rotateSP (-0.5) . offTrans -- . scaleSH (V3 1 1.5 1)
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 4 (-10) . offTrans
-- | twoFlat cr = waistSP . translateSPxy 4 (-8) . offTrans
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- f sa) (- off) . offTrans
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- g sa) (- off) . offTrans
-- _ -> waistSP . translateSPxy 0 (- off) . offTrans
-- where
-- offTrans = translateSP (V3 0 4 (-4))
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
translateToRightWrist' :: Creature -> SPic -> SPic
translateToRightWrist' cr
| oneH cr = shoulderSP . translateSPxy 11 (-3) . rotateSP (-0.5) . offTrans -- . scaleSH (V3 1 1.5 1)
| twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 4 (-10) . offTrans
| twoFlat cr = waistSP . translateSPxy 4 (-8) . offTrans
leftHandPQ :: Creature -> Point3Q
leftHandPQ cr
| oneH cr = (V3 0 off 10, 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 10, Q.qID)
| otherwise = case cr ^? crStance . carriage of
Just (Walking sa LeftForward) -> waistSP . translateSPxy (- f sa) (- off) . offTrans
_ -> waistSP . translateSPxy 0 (- off) . offTrans
Just (Walking sa RightForward) -> (V3 (- f sa) off 10 , Q.qID)
Just (Walking sa LeftForward) -> (V3 (- g sa) off 10 , Q.qID)
_ -> (V3 0 off 10, Q.qID)
where
offTrans = translateSP (V3 0 4 (-4))
off = 8
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
f i = negate 2 + negate 6 * (sLen - i) / sLen
g i = negate 2 + negate 6 * ( i) / sLen
translatePointToLeftHand :: Creature -> Point3 -> Point3
translatePointToLeftHand cr
| oneH cr = (+.+.+ V3 0 0 10) . rotate3 0.4 . (+.+.+ V3 0 off 0)
| twists cr = (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 12 4 0) . rotate3 0.4
| twoFlat cr = (+.+.+ V3 4 8 10)
| otherwise = case cr ^? crStance . carriage of
Just (Walking sa RightForward) -> (+.+.+ V3 (- f sa) off 10)
_ -> (+.+.+ V3 0 off 10)
where
off = 8
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
translatePointToLeftHand cr p = fst (leftHandPQ cr `Q.comp` (p,Q.qID))
-- | oneH cr = (+.+.+ V3 0 0 10) . rotate3 0.4 . (+.+.+ V3 0 off 0)
-- | twists cr = (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 12 4 0) . rotate3 0.4
-- | twoFlat cr = (+.+.+ V3 4 8 10)
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa RightForward) -> (+.+.+ V3 (- f sa) off 10)
-- _ -> (+.+.+ V3 0 off 10)
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
translateToLeftHand :: Creature -> SPic -> SPic
translateToLeftHand cr
| oneH cr = waistSP . rotateSP 0.4 . translateSPxy 0 off
| twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 12 4
| twoFlat cr = waistSP . translateSPxy 4 8
| otherwise = case cr ^? crStance . carriage of
Just (Walking sa RightForward) -> waistSP . translateSPxy (- f sa) off
_ -> waistSP . translateSPxy 0 off
where
off = 8
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
translateToLeftHand = overPosSP . translatePointToLeftHand
--translateToLeftHand cr =
-- | oneH cr = waistSP . rotateSP 0.4 . translateSPxy 0 off
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 12 4
-- | twoFlat cr = waistSP . translateSPxy 4 8
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- f sa) off
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- g sa) off
-- _ -> waistSP . translateSPxy 0 off
-- where
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
translateToLeftWrist :: Creature -> SPic -> SPic
translateToLeftWrist cr
| oneH cr = waistSP . rotateSP 0.4 . translateSPxy 0 off . offTrans
| twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 12 4 . offTrans
| twoFlat cr = waistSP . translateSPxy 4 8 . offTrans
| otherwise = case cr ^? crStance . carriage of
Just (Walking sa RightForward) -> waistSP . translateSPxy (- f sa) off . offTrans
_ -> waistSP . translateSPxy 0 off . offTrans
where
offTrans = translateSP (V3 0 4 (-4))
off = 8
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
translateToLeftWrist cr = overPosSP
(\p -> fst $ leftHandPQ cr `Q.comp` (V3 0 4 (-4)+p, Q.qID))
-- | oneH cr = waistSP . rotateSP 0.4 . translateSPxy 0 off . offTrans
-- | twists cr = shoulderSP . translateSPxy 0 5 . rotateSP (-1) . translateSPxy 12 4 . offTrans
-- | twoFlat cr = waistSP . translateSPxy 4 8 . offTrans
-- | otherwise = case cr ^? crStance . carriage of
-- Just (Walking sa RightForward) -> waistSP . translateSPxy (- f sa) off . offTrans
-- Just (Walking sa LeftForward) -> waistSP . translateSPxy (- g sa) off . offTrans
-- _ -> waistSP . translateSPxy 0 off . offTrans
-- where
-- offTrans = translateSP (V3 0 4 (-4))
-- off = 8
-- sLen = _strideLength $ _crStance cr
-- f i = negate 2 + negate 6 * (sLen - i) / sLen
-- g i = negate 2 + negate 6 * (i) / sLen
translateToLeftLeg :: Creature -> SPic -> SPic
translateToLeftLeg cr =
@@ -121,7 +169,7 @@ translateToLeftLeg cr =
where
off = 5
sLen = _strideLength $ _crStance cr
f i = 6 * fromIntegral (sLen - i) / fromIntegral sLen
f i = 8 * (sLen - i) / sLen
translateToRightLeg :: Creature -> SPic -> SPic
translateToRightLeg cr =
@@ -132,27 +180,33 @@ translateToRightLeg cr =
where
off = 5
sLen = _strideLength $ _crStance cr
f i = 6 * fromIntegral (sLen - i) / fromIntegral sLen
f i = 8 * (sLen - i) / sLen
translateToHead :: Creature -> SPic -> SPic
translateToHead cr
| twists cr =
translateSPz 20 . translateSPxy 0 5 . rotateSP (-1) . translateSPxy (negate 2.5) 0.25
. rotateSP 1
| oneH cr =
translateSPz 20 . rotateSP 0.5 . translateSPxy 2.5 0
. rotateSP (negate 0.5)
| otherwise = translateSPz 20 . translateSPxy 2.5 0
translateToHead cr = overPosSP (\p -> fst $ (headPQ cr `Q.comp` (p,Q.qID)))
-- | twists cr =
-- translateSPz 20 . translateSPxy 0 5 . rotateSP (-1) . translateSPxy (negate 2.5) 0.25
-- . rotateSP 1
-- | oneH cr =
-- translateSPz 20 . rotateSP 0.5 . translateSPxy 2.5 0
-- . rotateSP (negate 0.5)
-- | otherwise = translateSPz 20 . translateSPxy 2.5 0
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 :: Creature -> Point3 -> Point3
translatePointToHead cr
| twists cr =
(+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 (negate 2.5) 0.25 0)
. rotate3 1
| oneH cr =
(+.+.+ V3 0 0 20) . rotate3 0.5 . (+.+.+ V3 2.5 0 0)
. rotate3 (negate 0.5)
| otherwise = (+.+.+ V3 2.5 0 20)
translatePointToHead cr p = fst (headPQ cr `Q.comp` (p,Q.qID))
-- | twists cr =
-- (+.+.+ V3 0 5 20) . rotate3 (-1) . (+.+.+ V3 (negate 2.5) 0.25 0)
-- . rotate3 1
-- | oneH cr =
-- (+.+.+ V3 0 0 20) . rotate3 0.5 . (+.+.+ V3 2.5 0 0)
-- . rotate3 (negate 0.5)
-- | otherwise = (+.+.+ V3 2.5 0 20)
translateToChest :: Creature -> SPic -> SPic
translateToChest cr
@@ -161,14 +215,20 @@ translateToChest cr
| twists cr = rotateSP (-1)
| otherwise = id
translateToBack :: Creature -> Point3 -> SPic -> SPic
translateToBack cr p
| oneH cr = rotateSP 0.5 . translateSP p
| twists cr = rotateSP (-1.5) . translateSP (p - V3 5 0 0)
| otherwise = translateSP p
backPQ :: Creature -> Point3Q
backPQ cr
| oneH cr = (V3 0 0 10, Q.qz 0.5)
| twists cr = (V3 0 3 10, Q.qz (-1.5))
| otherwise = (V3 0 0 10, Q.qz 0)
shoulderSP :: SPic -> SPic
shoulderSP = translateSPz 20
--translateToBack :: Creature -> Point3 -> SPic -> SPic
--translateToBack cr p
-- | oneH cr = rotateSP 0.5 . translateSP p
-- | twists cr = rotateSP (-1.5) . translateSP (p - V3 5 0 0)
-- | otherwise = translateSP p
waistSP :: SPic -> SPic
waistSP = translateSPz 10
--shoulderSP :: SPic -> SPic
--shoulderSP = translateSPz 20
--
--waistSP :: SPic -> SPic
--waistSP = translateSPz 10
+1 -1
View File
@@ -46,7 +46,7 @@ advanceStepCounter speed = crStance . carriage %~ f
where
f car = case car of
Standing -> f (Walking 0 RightForward)
Walking i ff -> Walking (i + ceiling speed) ff
Walking i ff -> Walking (i + speed) ff
_ -> car
creatureTurnTo :: Point2 -> Creature -> Creature
+21 -24
View File
@@ -9,11 +9,11 @@ module Dodge.Creature.Picture (
deadFeet,
) where
import Dodge.Creature.HandPos
import Control.Lens
import Dodge.Creature.HandPos (translateToLeftHand, translateToRightHand)
import Dodge.Creature.Radius
import Dodge.Creature.Shape
import Dodge.Creature.Test
--import Dodge.Creature.Test
import Dodge.Damage
import Dodge.Data.Creature
import Dodge.Item.Draw
@@ -37,7 +37,7 @@ basicCrShape cr
| otherwise =
scaleSH (V3 crsize crsize crsize) $
mconcat
[ colorSH (_skinHead cskin) . translateSHz 20 $ scalp cr
[ colorSH (_skinHead cskin) $ scalp cr
, colorSH (_skinUpper cskin) $ upperBody cr
, rotmdir $ colorSH (_skinLower cskin) $ feet cr
]
@@ -60,7 +60,8 @@ feet cr = case cr ^? crStance . carriage of
aFoot = upperPrismPolyST 10 $ polyCirc 3 4
off = 5
sLen = _strideLength $ _crStance cr
f i = 6 * fromIntegral (sLen - i) / fromIntegral sLen
--f i = 6 * (sLen - i) / sLen
f i = 8 * (sLen - 2*i) / sLen
deadFeet :: Creature -> Shape
{-# INLINE deadFeet #-}
@@ -89,34 +90,30 @@ deadRot cr = overPosSH (Q.rotateToZ d)
scalp :: Creature -> Shape
{-# INLINE scalp #-}
scalp cr
| 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
scalp cr = overPosSH (\p -> fst (headPQ cr `Q.comp` (p,Q.qID))) 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
where
fhead = colorSH (greyN 0.9) . upperPrismPolyHalfST 5 $ polyCirc 3 5
torso :: Creature -> Shape
{-# INLINE torso #-}
torso cr
| oneH cr =
rotateSH 0.5 $
mconcat
[ translateSHxy 0 3 . rotateSH (negate 0.2) $ aShoulder
, translateSHxy 0 (negate 3) . rotateSH 0.2 $ aShoulder
]
| twists cr =
translateSHxy 0 5 . rotateSH (-1) $
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 =
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
where
tsh =
mconcat
[ translateSHxy 0 3 . rotateSH (negate 0.2) $ aShoulder
, translateSHxy 0 (negate 3) . rotateSH 0.2 $ aShoulder
]
where
aShoulder = scaleSH (V3 10 10 1) baseShoulder
deadUpperBody :: Creature -> Shape
@@ -124,7 +121,7 @@ deadUpperBody cr = deadRot cr . translateSHz (negate 10) . upperBody $ cr
baseShoulder :: Shape
{-# INLINE baseShoulder #-}
baseShoulder = translateSHz (-10) . 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 :: Creature -> Shape
{-# INLINE upperBody #-}
+2 -2
View File
@@ -13,13 +13,13 @@ import Geometry.Data
data Stance = Stance
{ _carriage :: Carriage
, _posture :: Posture
, _strideLength :: Int
, _strideLength :: Float
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Carriage
= Walking
{ _strideAmount :: Int
{ _strideAmount :: Float
, _currentFoot :: FootForward
}
| Standing
+1 -1
View File
@@ -107,7 +107,7 @@ defaultIntention =
defaultAimingCrit :: Creature
defaultAimingCrit = defaultCreature
yourDefaultStrideLength :: Int
yourDefaultStrideLength :: Float
yourDefaultStrideLength = 40
--defaultState :: CreatureState
+2 -1
View File
@@ -46,5 +46,6 @@ equipPosition epos cr p sh = case epos of
<> translateToRightLeg cr sh-- (mirrorSPxz sh)
OnHead -> translateToHead cr sh
OnChest -> translateToChest cr sh
OnBack -> translateToBack cr p sh
--OnBack -> translateToBack cr p sh
OnBack -> overPosSP (\x -> fst $ backPQ cr `Q.comp` (p + x,Q.qID)) sh
OnSpecial -> sh
+2 -2
View File
@@ -50,7 +50,7 @@ handOrient cr = case cr ^. crStance . posture of
walkhandp = case cr ^? crStance . carriage of
Just (Walking x LeftForward) -> f x * 50 -2
_ -> - 2
f i = 0.1 * fromIntegral (sLen - i) / fromIntegral sLen
f i = 0.1 * (sLen - i) / sLen
sLen = _strideLength $ _crStance cr
locOrient :: LocationDT OItem -> Creature -> Point3Q
@@ -74,7 +74,7 @@ strideRot cr = case cr ^? crStance . carriage of
Just (Walking x RightForward) -> - f x
_ -> 0
where
f i = 0.1 * fromIntegral (sLen - i) / fromIntegral sLen
f i = 0.1 * (sLen - i) / sLen
sLen = _strideLength $ _crStance cr
twoFlatHRot :: Creature -> Float
+4
View File
@@ -11,6 +11,7 @@ The warnings have been disabled.
-}
module Quaternion (
qID,
qz,
qToV3,
qToV2,
qToAng,
@@ -67,4 +68,7 @@ comp (p,q) (p1,q1) = (p + Q.rotate q p1, q * q1)
prePos :: Point3Q -> Point3 -> Point3
prePos (p,q) p1 = p + Q.rotate q p1
qz :: Float -> Q.Quaternion Float
qz = Q.axisAngle (V3 0 0 1)
--deriving instance (Flat a => Flat (Quaternion a))
+49 -54
View File
@@ -42,7 +42,7 @@ ActionPlan src/Dodge/Data/ActionPlan.hs 16;" t
AddGoal src/Dodge/Data/ActionPlan.hs 45;" C
AimAt src/Dodge/Data/ActionPlan.hs 84;" C
AimStance src/Dodge/Data/AimStance.hs 5;" t
Aiming src/Dodge/Data/Creature/Stance.hs 39;" C
Aiming src/Dodge/Data/Creature/Stance.hs 35;" C
AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C
AlienContact src/Dodge/Data/Scenario.hs 30;" C
AllRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
@@ -72,7 +72,7 @@ Arcing src/Dodge/Data/Item/Params.hs 17;" C
ArmourySS src/Dodge/Data/Scenario.hs 112;" C
Asleep src/Dodge/Data/Creature/Perception.hs 54;" C
AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C
AtEase src/Dodge/Data/Creature/Stance.hs 40;" C
AtEase src/Dodge/Data/Creature/Stance.hs 36;" C
AtomicWaste src/Dodge/Data/Scenario.hs 26;" C
AttachParams src/Dodge/Data/Item/Use.hs 45;" t
AttachType src/Dodge/Data/Item/Combine.hs 92;" t
@@ -686,7 +686,7 @@ LauncherAmmo src/Dodge/Data/AmmoType.hs 6;" C
LaundrySS src/Dodge/Data/Scenario.hs 115;" C
Layer src/Picture/Data.hs 22;" t
LeadTarget src/Dodge/Data/ActionPlan.hs 149;" C
LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C
LeftForward src/Dodge/Data/Creature/Stance.hs 31;" C
LeftwardDT src/Dodge/Data/DoubleTree.hs 86;" C
LeftwardLDT src/Dodge/Data/DoubleTree.hs 44;" C
Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C
@@ -1031,7 +1031,7 @@ PolyShad src/Picture/Data.hs 36;" C
Polyhedra src/Polyhedra/Data.hs 13;" t
Polyhedron src/Polyhedra/Data.hs 13;" C
PosRooms src/Dodge/Tree/Shift.hs 28;" t
Posture src/Dodge/Data/Creature/Stance.hs 38;" t
Posture src/Dodge/Data/Creature/Stance.hs 34;" t
PrWdLsId src/Dodge/Data/Prop.hs 83;" C
PrWdLsLs src/Dodge/Data/Prop.hs 82;" t
PrWdLsSetColor src/Dodge/Data/Prop.hs 85;" C
@@ -1154,7 +1154,7 @@ Revenge src/Dodge/Data/Scenario.hs 6;" C
RewindLeftClick src/Dodge/Data/World.hs 73;" C
RezBaySS src/Dodge/Data/Scenario.hs 105;" C
RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 13;" t
RightForward src/Dodge/Data/Creature/Stance.hs 34;" C
RightForward src/Dodge/Data/Creature/Stance.hs 31;" C
RightwardDT src/Dodge/Data/DoubleTree.hs 93;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 52;" C
Rocket src/Dodge/Data/Projectile.hs 34;" C
@@ -1502,8 +1502,6 @@ WarmTime src/Dodge/Data/Item/Params.hs 21;" C
WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C
WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C
WarningCry src/Dodge/Data/ActionPlan.hs 185;" C
WasLeftForward src/Dodge/Data/Creature/Stance.hs 33;" C
WasRightForward src/Dodge/Data/Creature/Stance.hs 35;" C
WatchAndWait src/Dodge/Data/ActionPlan.hs 183;" C
WdBl src/Dodge/Data/WorldEffect.hs 50;" t
WdBlBtOn src/Dodge/Data/WorldEffect.hs 56;" C
@@ -2713,7 +2711,7 @@ argumentHelp src/Dodge/Terminal.hs 151;" 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 69;" f
arms src/Dodge/Creature/Picture.hs 70;" f
arrow src/Picture/Composite.hs 19;" f
arrowPath src/Picture/Composite.hs 8;" f
assignHotkey src/Dodge/AssignHotkey.hs 13;" f
@@ -2742,6 +2740,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 211;" 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
@@ -2763,7 +2762,7 @@ 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 125;" f
baseShoulder src/Dodge/Creature/Picture.hs 126;" f
baseStickShape src/Dodge/Item/Draw/SPic.hs 312;" f
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 304;" f
baseStickSpread src/Dodge/HeldUse.hs 320;" f
@@ -2884,11 +2883,12 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmTest src/Dodge/Creature/Update.hs 141;" f
chasmTest src/Dodge/Creature/Update.hs 129;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 64;" f
checkDeath src/Dodge/Creature/Update.hs 85;" f
checkDeath src/Dodge/Creature/Update.hs 70;" f
checkDeath' src/Dodge/Creature/Update.hs 73;" f
checkEndGame src/Dodge/Update.hs 800;" f
checkErrorGL src/Shader/Compile.hs 255;" f
checkFBO src/Framebuffer/Check.hs 6;" f
@@ -2902,7 +2902,7 @@ checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f
chooseCursorBorders src/Dodge/Render/List.hs 156;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 36;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 36;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 34;" f
chooseFreeSite src/Dodge/Inventory/RBList.hs 42;" f
chooseMovementLtAuto src/Dodge/CreatureEffect.hs 105;" f
chooseMovementPistol src/Dodge/Humanoid.hs 203;" f
@@ -2994,7 +2994,7 @@ commandColor src/Dodge/Terminal.hs 132;" f
commandFutureLines src/Dodge/Terminal.hs 256;" f
commandsCommand src/Dodge/Terminal.hs 93;" f
commonPrefix src/Dodge/Debug/Terminal.hs 146;" f
comp src/Quaternion.hs 64;" f
comp src/Quaternion.hs 65;" f
compactDraw src/Dodge/LevelGen.hs 91;" f
compactDraw' src/Dodge/LevelGen.hs 102;" f
compactDrawTree src/Dodge/LevelGen.hs 85;" f
@@ -3022,7 +3022,7 @@ copyItemToFloor src/Dodge/FloorItem.hs 18;" f
copyItemToFloorID src/Dodge/FloorItem.hs 22;" f
corDoor src/Dodge/Room/Room.hs 376;" f
cornerList src/Preload/Render.hs 198;" f
corpseOrGib src/Dodge/Creature/Update.hs 121;" f
corpseOrGib src/Dodge/Creature/Update.hs 109;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f
@@ -3155,10 +3155,10 @@ dbwMuzzles src/Dodge/HeldUse.hs 323;" 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 65;" f
deadRot src/Dodge/Creature/Picture.hs 81;" f
deadScalp src/Dodge/Creature/Picture.hs 78;" f
deadUpperBody src/Dodge/Creature/Picture.hs 122;" f
deadFeet src/Dodge/Creature/Picture.hs 66;" f
deadRot src/Dodge/Creature/Picture.hs 82;" f
deadScalp src/Dodge/Creature/Picture.hs 79;" f
deadUpperBody src/Dodge/Creature/Picture.hs 123;" 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
@@ -3247,7 +3247,7 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f
denormalEdges src/Polyhedra.hs 136;" f
destroyAllInvItems src/Dodge/Inventory.hs 60;" f
destroyBlock src/Dodge/Block.hs 52;" f
destroyCreature src/Dodge/Creature/Update.hs 113;" f
destroyCreature src/Dodge/Creature/Update.hs 101;" f
destroyDoor src/Dodge/Block.hs 80;" f
destroyInvItem src/Dodge/Inventory.hs 45;" f
destroyItem src/Dodge/Inventory.hs 64;" f
@@ -3424,7 +3424,7 @@ drawDragSelected src/Dodge/Render/HUD.hs 133;" f
drawDragSelecting src/Dodge/Render/HUD.hs 150;" f
drawEmptySet src/Dodge/Render/Picture.hs 124;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 136;" f
drawEquipment src/Dodge/Creature/Picture.hs 137;" f
drawExamineInventory src/Dodge/Render/HUD.hs 195;" f
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 269;" f
@@ -3514,7 +3514,7 @@ drawWeapon src/Dodge/Creature/Volition.hs 14;" f
drawWlIDs src/Dodge/Debug/Picture.hs 372;" f
drawZoneCol src/Dodge/Debug/Picture.hs 147;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 284;" f
dropAll src/Dodge/Creature/Update.hs 138;" f
dropAll src/Dodge/Creature/Update.hs 126;" f
dropExcept src/Dodge/Creature/Action.hs 166;" f
dropInventoryPath src/Dodge/HeldUse.hs 1429;" f
dropItem src/Dodge/Creature/Action.hs 172;" f
@@ -3660,7 +3660,6 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 120;" f
floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
foldCr src/Dodge/Creature/Update.hs 75;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 38;" f
@@ -4087,6 +4086,7 @@ ldtToIndentList src/Dodge/DoubleTree.hs 221;" f
ldtToLoc src/Dodge/DoubleTree.hs 267;" f
left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 184;" f
leftHandPQ src/Dodge/Creature/HandPos.hs 100;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 162;" f
leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 196;" f
@@ -4313,7 +4313,6 @@ miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 381;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f
miniTree2 src/Dodge/Room/Room.hs 106;" f
minimumOn src/FoldlHelp.hs 14;" f
mirrorV3xz src/Dodge/Creature/HandPos.hs 26;" f
mirrorXAxis src/Geometry/Polygon.hs 49;" f
mirrorxz src/Picture/Base.hs 335;" f
mirroryz src/Picture/Base.hs 340;" f
@@ -4565,7 +4564,7 @@ pointerToItemLocation src/Dodge/Item/Location.hs 14;" f
pointerYourRootItem src/Dodge/Item/Location.hs 31;" f
pointerYourSelectedItem src/Dodge/Item/Location.hs 25;" f
pointsToPoly src/Geometry/ConvexPoly.hs 39;" f
poisonSPic src/Dodge/Creature/Update.hs 134;" f
poisonSPic src/Dodge/Creature/Update.hs 122;" f
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
poke34 src/Shader/Poke.hs 506;" f
pokeArrayOff src/Shader/Poke.hs 517;" f
@@ -4636,7 +4635,7 @@ ppDraw src/Dodge/Render/ShapePicture.hs 117;" f
ppEvents src/Dodge/Update.hs 779;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f
prePos src/Quaternion.hs 67;" f
prePos src/Quaternion.hs 68;" f
preloadRender src/Preload/Render.hs 30;" f
premapMaybe src/FoldlHelp.hs 26;" f
prependTwo src/Geometry.hs 180;" f
@@ -4706,13 +4705,14 @@ putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f
putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putWireEnd src/Dodge/Wire.hs 31;" f
putWireStart src/Dodge/Wire.hs 34;" f
qID src/Quaternion.hs 61;" f
qToAng src/Quaternion.hs 58;" f
qToV2 src/Quaternion.hs 55;" f
qToV3 src/Quaternion.hs 52;" f
qID src/Quaternion.hs 62;" f
qToAng src/Quaternion.hs 59;" f
qToV2 src/Quaternion.hs 56;" f
qToV3 src/Quaternion.hs 53;" f
quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f
quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f
quitCommand src/Dodge/Terminal.hs 57;" f
qz src/Quaternion.hs 71;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
rToOnward src/Dodge/Cleat.hs 21;" f
@@ -4832,6 +4832,7 @@ 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 190;" f
rightHandPQ src/Dodge/Creature/HandPos.hs 45;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 173;" f
rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f
@@ -4879,7 +4880,7 @@ rotateSHx src/Shape.hs 265;" f
rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 64;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 202;" f
rotateToZ src/Quaternion.hs 38;" f
rotateToZ src/Quaternion.hs 39;" f
rotateV src/Geometry/Vector.hs 105;" f
rotateVAround src/Geometry/Vector.hs 112;" f
rotateXY src/Polyhedra.hs 31;" f
@@ -4921,10 +4922,10 @@ 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 90;" f
scalp src/Dodge/Creature/Picture.hs 91;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 95;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/Update.hs 131;" f
scorchSPic src/Dodge/Creature/Update.hs 119;" f
screenBox src/Dodge/Base/Window.hs 53;" f
screenPolygon src/Dodge/Base/Window.hs 17;" f
screenPolygonBord src/Dodge/Base/Window.hs 27;" f
@@ -5087,8 +5088,7 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f
shortShow src/ShortShow.hs 9;" f
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 708;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 68;" f
shoulderSH src/Dodge/Creature/Picture.hs 133;" f
shoulderSP src/Dodge/Creature/HandPos.hs 170;" f
shoulderSH src/Dodge/Creature/Picture.hs 134;" 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
@@ -5367,7 +5367,7 @@ torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 290;" f
torqueAmount src/Dodge/HeldUse.hs 597;" f
torqueCr src/Dodge/WorldEffect.hs 67;" f
torso src/Dodge/Creature/Picture.hs 99;" f
torso src/Dodge/Creature/Picture.hs 100;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 831;" f
@@ -5383,10 +5383,9 @@ 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
translatePointToHead src/Dodge/Creature/HandPos.hs 147;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 23;" f
translatePointToRightHand' src/Dodge/Creature/HandPos.hs 29;" f
translatePointToHead src/Dodge/Creature/HandPos.hs 194;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 116;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 25;" f
translateSH src/Shape.hs 245;" f
translateSHxy src/Shape.hs 249;" f
translateSHz src/Shape.hs 253;" f
@@ -5394,17 +5393,14 @@ 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
translateToBack src/Dodge/Creature/HandPos.hs 164;" f
translateToChest src/Dodge/Creature/HandPos.hs 157;" f
translateToHead src/Dodge/Creature/HandPos.hs 137;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 88;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 115;" f
translateToLeftWrist src/Dodge/Creature/HandPos.hs 101;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 42;" f
translateToRightHand' src/Dodge/Creature/HandPos.hs 45;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 126;" f
translateToRightWrist src/Dodge/Creature/HandPos.hs 58;" f
translateToRightWrist' src/Dodge/Creature/HandPos.hs 61;" f
translateToChest src/Dodge/Creature/HandPos.hs 204;" f
translateToHead src/Dodge/Creature/HandPos.hs 184;" f
translateToLeftHand src/Dodge/Creature/HandPos.hs 129;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 162;" f
translateToLeftWrist src/Dodge/Creature/HandPos.hs 145;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 60;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 173;" f
translateToRightWrist src/Dodge/Creature/HandPos.hs 79;" f
translateWallID src/Dodge/Wall/Move.hs 37;" f
translateXY src/Polyhedra.hs 26;" f
trapezionBWHW src/Geometry/Polygon.hs 24;" f
@@ -5549,7 +5545,7 @@ updatePastWorlds src/Dodge/Update.hs 441;" f
updatePreload src/Preload/Update.hs 20;" f
updateProjectile src/Dodge/Projectile/Update.hs 28;" f
updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 156;" f
updatePulse src/Dodge/Creature/Update.hs 144;" f
updatePulseBall src/Dodge/Update.hs 467;" f
updatePulseLaser src/Dodge/Update.hs 641;" f
updatePulseLasers src/Dodge/Update.hs 462;" f
@@ -5590,7 +5586,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f
updateWheelEvents src/Dodge/Update.hs 431;" f
updateWorldEventFlag src/Dodge/Update.hs 125;" f
updateWorldEventFlags src/Dodge/Update.hs 113;" f
upperBody src/Dodge/Creature/Picture.hs 129;" f
upperBody src/Dodge/Creature/Picture.hs 130;" f
upperBox src/Shape.hs 156;" f
upperBoxHalf src/Shape.hs 222;" f
upperBoxMT src/Shape.hs 147;" f
@@ -5634,7 +5630,7 @@ vNormal src/Geometry/Vector.hs 148;" f
vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 113;" f
vToL src/MatrixHelper.hs 46;" f
vToQuat src/Quaternion.hs 45;" f
vToQuat src/Quaternion.hs 46;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 134;" f
vasTightStride src/Shader/Compile.hs 297;" f
vecBetweenSpeed src/Dodge/Base.hs 146;" f
@@ -5657,7 +5653,6 @@ visionCheck src/Dodge/Creature/Perception.hs 153;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 369;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 801;" f
walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 98;" f