Make aimStance record into function

This commit is contained in:
2025-06-03 15:19:35 +01:00
parent 589603e474
commit a17961eac7
20 changed files with 297 additions and 262 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -3
View File
@@ -24,8 +24,7 @@ module Dodge.Creature.Test (
crSafeDistFromTarg,
) where
--import MaybeHelp
--import Control.Applicative
import Dodge.Item.AimStance
import Control.Lens
import Data.List (find)
import Data.Maybe
@@ -92,7 +91,9 @@ crInAimStance as cr = crIsAiming cr && mitstance == Just as
where
mitstance = do
i <- cr ^? crManipulation . manObject . imRootSelectedItem
cr ^? crInv . ix i . itUse . heldAim . aimStance
itm <- cr ^? crInv . ix i
return $ aStance itm
--cr ^? crInv . ix i . itUse . heldAim . aimStance
oneH :: Creature -> Bool
oneH = crInAimStance OneHand
+2 -1
View File
@@ -2,6 +2,7 @@ module Dodge.Creature.YourControl (
yourControl,
) where
import Dodge.Item.AimStance
import Control.Monad
import qualified Data.Map.Strict as M
import Data.Maybe
@@ -134,7 +135,7 @@ setAimPosture = (crStance . posture .~ Aiming) . doAimTwist (- twoHandTwistAmoun
doAimTwist :: Float -> Creature -> Creature
doAimTwist x cr = fromMaybe cr $ do
itRef <- cr ^? crManipulation . manObject . imRootSelectedItem
astance <- cr ^? crInv . ix itRef . itUse . heldAim . aimStance
astance <- fmap aStance $ cr ^? crInv . ix itRef
guard $ astance == TwoHandOver || astance == TwoHandUnder
return $ cr & crDir +~ x
+3 -7
View File
@@ -28,7 +28,7 @@ import Dodge.Data.Item.Targeting
import Dodge.Data.Item.Use.Consumption
import Dodge.Data.Item.Use.Equipment
import Geometry.Data
import Sound.Data
--import Sound.Data
data ItemUse
= UseHeld
@@ -82,13 +82,9 @@ data HeldParams
= DefaultHeldParams
| GasSprayParams
{ _gasCreation :: GasCreate
-- , _recoil :: Float
, _torqueAfter :: Float
, _randomOffset :: Float
, _sidePush :: Float
, _bulGunSound :: Maybe (SoundID, Int) -- if the int is 0, play sound on new channel
-- if >0, continue playing sound for
-- given time
, _weaponInvLock :: Int
, _weaponRepeat :: [Int]
}
@@ -100,7 +96,7 @@ data HeldParams
, _torqueAfter :: Float
, _randomOffset :: Float
, _sidePush :: Float
, _bulGunSound :: Maybe (SoundID, Int) -- if the int is 0, play sound on new channel
-- , _bulGunSound :: Maybe (SoundID, Int) -- if the int is 0, play sound on new channel
-- if >0, continue playing sound for
-- given time
, _weaponInvLock :: Int
@@ -120,7 +116,7 @@ data AimParams = AimParams
, _aimTurnSpeed :: Float
, _aimRange :: Float
, _aimZoom :: ItZoom
, _aimStance :: AimStance
-- , _aimStance :: AimStance
, _aimHandlePos :: V2 Float
, _aimMuzzles :: [Muzzle]
}
+2 -2
View File
@@ -4,7 +4,7 @@ module Dodge.Default.Item.Use (
module Dodge.Default.Item.Use.Equipment,
) where
import Dodge.SoundLogic.ExternallyGeneratedSounds
--import Dodge.SoundLogic.ExternallyGeneratedSounds
import Dodge.Data.Item.Use
import Dodge.Default.Item.Use.AimParams
import Dodge.Default.Item.Use.Equipment
@@ -35,7 +35,7 @@ defaultHeldUse = UseHeld
, _torqueAfter = 0.2
, _randomOffset = 0
, _sidePush = 0
, _bulGunSound = Just (tap3S, 0)
-- , _bulGunSound = Just (tap3S, 0)
, _weaponInvLock = 0
, _weaponRepeat = []
}
-1
View File
@@ -13,7 +13,6 @@ defaultAimParams =
, _aimTurnSpeed = 1
, _aimRange = 0
, _aimZoom = defaultItZoom
, _aimStance = OneHand
, _aimHandlePos = V2 3 0
, _aimMuzzles =
[ Muzzle
+50 -8
View File
@@ -8,6 +8,7 @@ module Dodge.HeldUse (
mcUseHeld,
) where
import Sound.Data
import Color
import Control.Applicative
import Control.Monad
@@ -187,7 +188,7 @@ applyInvLock itm cr = case itm ^? itUse . heldParams . weaponInvLock of
applySoundCME :: Item -> Creature -> World -> World
applySoundCME itm cr = fromMaybe id $ do
(soundid, x) <- itm ^? itUse . heldParams . bulGunSound . _Just
(soundid, x) <- bgunSound itm
return $
if x > 0
then soundContinue (CrWeaponSound cid 0) (_crPos cr) soundid (Just x)
@@ -198,7 +199,6 @@ applySoundCME itm cr = fromMaybe id $ do
applyRecoil :: Item -> Creature -> World -> World
applyRecoil itm cr = cWorld . lWorld . creatures . ix (_crID cr) %~ pushback
where
-- recoilAmount = fromMaybe 0 $ itm ^? itUse . heldParams . recoil
pushback = over crPos (+.+ rotateV (_crDir cr) (V2 ((- recoilAmount itm) / _crMass cr) 0))
recoilAmount :: Item -> Float
@@ -247,6 +247,54 @@ recoilAmount itm
BLINKERUNSAFE -> 0
| otherwise = 0
-- if the int is 0, play sound on new channel
-- if >0, continue playing sound for given time
bgunSound :: Item -> Maybe (SoundID,Int)
bgunSound itm
| HELD hit <- itm ^. itType = case hit of
BANGSTICK _ -> Just (tap3S, 0)
REWINDER -> Nothing
TIMESTOPPER -> Nothing
TIMESCROLLER -> Nothing
PISTOL -> Just (tap3S, 0)
MACHINEPISTOL -> Just (tap1S, 0)
AUTOPISTOL -> Just (tap1S, 0)
SMG -> Just (tap1S, 0)
BANGCONE -> Just (bangEchoS,0)
BLUNDERBUSS -> Just (bangEchoS,0)
GRAPECANNON _ -> Just (bangEchoS,0)
MINIGUNX _ -> Just (mini1S,2)
VOLLEYGUN _ -> Just (tap3S, 0)
RIFLE -> Just (tap3S, 0)
ALTERIFLE -> Just (tap3S, 0)
AUTORIFLE -> Just (tap3S, 0)
BURSTRIFLE -> Just (tap3S, 0)
BANGROD -> Just (bangEchoS,0)
ELEPHANTGUN -> Just (bangEchoS,0)
AMR -> Just (bangEchoS,0)
AUTOAMR -> Just (bangEchoS,0)
SNIPERRIFLE -> Just (bangEchoS,0)
FLAMESPITTER -> Nothing
FLAMETHROWER -> Nothing
FLAMETORRENT -> Nothing
FLAMEWALL -> Nothing
BLOWTORCH -> Nothing
SPARKGUN -> Nothing
TESLAGUN -> Nothing
LASER -> Nothing
TRACTORGUN -> Nothing
RLAUNCHER -> Just (tap4S, 0)
RLAUNCHERX _ -> Just (tap4S, 0)
GLAUNCHER -> Just (tap4S, 0)
POISONSPRAYER -> Just (foamSprayLoopS,5)
SHATTERGUN -> Nothing
TORCH -> Nothing
FLATSHIELD -> Nothing
KEYCARD _ -> Nothing
BLINKER -> Nothing
BLINKERUNSAFE -> Nothing
| otherwise = Nothing
applySidePush :: Float -> Creature -> World -> World
applySidePush 0 _ w = w
applySidePush maxSide cr w =
@@ -545,13 +593,8 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do
-~ x
getBulletType ::
-- LabelDoubleTree ComposeLinkType Item ->
LabelDoubleTree ComposeLinkType Item ->
-- Muzzle ->
-- Creature ->
-- World ->
Maybe Bullet
--getBulletType itmtree magtree mz cr w =
getBulletType magtree =
magtree ^? ldtValue . itConsumables . magParams . ampBullet
-- <&> buTrajectory .~ btraj
@@ -598,7 +641,6 @@ shootBullet ::
World ->
World
shootBullet itmtree cr (mz, x, magtree) w = fromMaybe w $ do
-- thebullet <- getBulletType itmtree magtree mz cr w
thebullet <- getBulletType magtree
return $ foldl' (&) w (replicate x (makeBullet' thebullet (itmtree ^. ldtValue) cr mz))
+3 -1
View File
@@ -7,6 +7,7 @@ module Dodge.Item.Grammar (
allInvLocs,
) where
import Dodge.Item.AimStance
import Control.Applicative
import qualified Data.IntMap.Strict as IM
import Data.Maybe
@@ -125,7 +126,8 @@ extraWeaponLinks itm = case itm ^. itType of
extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, ComposeLinkType)]
extraWeaponLinksBelow itm
| Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance
-- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance
| TwoHandUnder <- aStance itm
= [(UnderBarrelSlotSF,UnderBarrelSlotLink)]
| otherwise = []
-3
View File
@@ -23,7 +23,6 @@ teslaGun =
& itParams .~ teslaParams
& itUse . heldDelay .~ NoDelay
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimStance .~ TwoHandFlat
& itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 10 0
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldAim . aimMuzzles . ix 0 . mzFlareType .~ TeslaGunFlare
@@ -61,7 +60,6 @@ laser =
}
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimStance .~ TwoHandFlat
& itType .~ HELD LASER
-- previous attractionPower values: 1, -1, -10, 0
@@ -75,7 +73,6 @@ tractorGun =
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimStance .~ TwoHandUnder
& itUse . heldAim . aimMuzzles . ix 0 . mzFlareType .~ NoFlare
& itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleTractor
& itType .~ HELD TRACTORGUN
+1 -4
View File
@@ -25,7 +25,6 @@ defaultBangCane =
& itUse . heldParams . torqueAfter .~ 0.1
& itUse . heldDelay . rateMax .~ 6
-- & itUse . heldMods .~ BangCaneMod
& itUse . heldAim . aimStance .~ OneHand
-- & itUse . heldAim . aimHandlePos .~ 5
volleyGun :: Int -> Item
@@ -33,7 +32,6 @@ volleyGun i =
defaultBangCane
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimStance .~ TwoHandFlat
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
& itUse . heldAim . aimMuzzles .~ getZipList
(ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6]
@@ -54,7 +52,6 @@ volleyGun i =
rifle :: Item
rifle =
defaultBangCane
& itUse . heldAim . aimStance .~ TwoHandUnder
& itType .~ HELD RIFLE
& itUse . heldAim . aimWeight .~ 6
& itUse . heldAim . aimRange .~ 1
@@ -100,7 +97,7 @@ miniGunX i =
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
& itAmmoSlots .~ singleAmmo BeltBulletAmmo
& itUse . heldParams . bulGunSound ?~ (mini1S,2)
-- & itUse . heldParams . bulGunSound ?~ (mini1S,2)
& itUse . heldAim . aimTurnSpeed .~ 0.5
& itUse . heldAim . aimMuzzles
.~ replicate i
+9 -10
View File
@@ -1,10 +1,12 @@
module Dodge.Item.Held.Cone where
module Dodge.Item.Held.Cone (
bangCone,
blunderbuss,
grapeCannon,
) where
import Dodge.SoundLogic.ExternallyGeneratedSounds
import Control.Lens
import Dodge.Data.Item
import Dodge.Default.Item
--import Dodge.Reloading.Action
import Geometry.Data
import Linear
@@ -12,22 +14,20 @@ bangCone :: Item
bangCone =
defaultBulletWeapon
& itUse . heldDelay . rateMax .~ 20
& itUse . heldAim . aimMuzzles
.~ replicate 15
(Muzzle (V2 15 0) 0 0.5 0 NoFlare MuzzleShootBullet (UseExactly 1) 0)
& itUse . heldAim . aimMuzzles
.~ replicate
15
(Muzzle (V2 15 0) 0 0.5 0 NoFlare MuzzleShootBullet (UseExactly 1) 0)
& itUse . heldAim . aimMuzzles . ix 0 . mzFlareType .~ BasicFlare
& itUse . heldParams . muzVel .~ UniRandFloat 0.5 0.8
& itUse . heldParams . rifling .~ UniRandFloat 0.3 0.8
-- & itUse . heldParams . recoil .~ 150
& itUse . heldParams . torqueAfter .~ 0.1
& itUse . heldParams . randomOffset .~ 12
& itUse . heldParams . bulGunSound ?~ (bangEchoS,0)
& itType .~ HELD BANGCONE
blunderbuss :: Item
blunderbuss =
bangCone
& itUse . heldAim . aimStance .~ TwoHandUnder
& itUse . heldAim . aimWeight .~ 6
-- & itUse . heldAim . aimHandlePos .~ 5
& itUse . heldAim . aimMuzzles . ix 0 . mzPos . _x .~ 30
@@ -37,6 +37,5 @@ grapeCannon :: Int -> Item
grapeCannon i =
blunderbuss
& itType .~ HELD (GRAPECANNON i)
-- & itUse . heldParams . recoil .~ (150 + fromIntegral i * 50)
& itUse . heldParams . torqueAfter .~ (0.1 + 0.2 * fromIntegral i)
& itUse . heldParams . randomOffset .~ (12 + 4 * fromIntegral i)
+23 -19
View File
@@ -1,13 +1,15 @@
module Dodge.Item.Held.Launcher where
module Dodge.Item.Held.Launcher (
rLauncher,
rLauncherX,
gLauncher,
) where
import Dodge.SoundLogic.ExternallyGeneratedSounds
import Control.Applicative
import Dodge.Default.Item
--import Dodge.Reloading.Action
import Control.Lens
import Dodge.Data.Item
import qualified IntMapHelp as IM
import Dodge.Default.Item
import Geometry.Data
import qualified IntMapHelp as IM
rLauncher :: Item
rLauncher =
@@ -15,7 +17,6 @@ rLauncher =
& itUse . heldDelay . rateMax .~ 20
& itUse . heldAim . aimWeight .~ 8
& itUse . heldAim . aimRange .~ 0.5
& itUse . heldAim . aimStance .~ TwoHandOver
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleRLauncher
& itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 20 0
@@ -23,12 +24,14 @@ rLauncher =
& itType .~ HELD RLAUNCHER
& itUse . heldParams . muzVel .~ ConstFloat 0
& itUse . heldParams . rifling .~ ConstFloat 0
-- & itUse . heldParams . recoil .~ 0
-- & itUse . heldParams . recoil .~ 0
& itUse . heldParams . torqueAfter .~ 0
& itUse . heldParams . bulGunSound ?~ (tap4S, 0)
-- & itUse . heldParams . bulGunSound ?~ (tap4S, 0)
gLauncher :: Item
gLauncher = rLauncher
gLauncher =
rLauncher
& itType .~ HELD GLAUNCHER
& itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleGLauncher
@@ -36,14 +39,15 @@ rLauncherX :: Int -> Item
rLauncherX i =
rLauncher
& itType .~ HELD (RLAUNCHERX i)
& itUse . heldAim . aimMuzzles .~ getZipList
(ZipList [Muzzle (V2 20 0) a 0 | a <- angles]
<*> ZipList [0..]
<*> pure NoFlare
<*> pure MuzzleRLauncher
<*> pure (UseExactly 1)
<*> pure 0
)
& itAmmoSlots .~ IM.fromList [(j,LauncherAmmo) | j <- [0..i-1]]
& itUse . heldAim . aimMuzzles
.~ getZipList
( ZipList [Muzzle (V2 20 0) a 0 | a <- angles]
<*> ZipList [0 ..]
<*> pure NoFlare
<*> pure MuzzleRLauncher
<*> pure (UseExactly 1)
<*> pure 0
)
& itAmmoSlots .~ IM.fromList [(j, LauncherAmmo) | j <- [0 .. i -1]]
where
angles = take i [0,2*pi/ fromIntegral i ..]
angles = take i [0, 2 * pi / fromIntegral i ..]
+2 -4
View File
@@ -7,7 +7,7 @@ module Dodge.Item.Held.Rod (
-- machineGun,
) where
import Dodge.SoundLogic.ExternallyGeneratedSounds
--import Dodge.SoundLogic.ExternallyGeneratedSounds
import Dodge.Data.Item
import Dodge.Default
--import Dodge.Item.Weapon.Bullet
@@ -21,12 +21,11 @@ bangRod =
& itUse . heldParams . rifling .~ ConstFloat 1
-- & itUse . heldParams . recoil .~ 50
& itUse . heldParams . torqueAfter .~ 0.3
& itUse . heldParams . bulGunSound ?~ (bangEchoS,0)
-- & itUse . heldParams . bulGunSound ?~ (bangEchoS,0)
& itUse . heldDelay . rateMax .~ 12
& itType .~ HELD BANGROD
& itUse . heldAim . aimWeight .~ 8
& itUse . heldAim . aimRange .~ 1
& itUse . heldAim . aimStance .~ OneHand
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
-- & itUse . heldAim . aimHandlePos .~ 5
& itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 30 0
@@ -37,7 +36,6 @@ elephantGun :: Item
elephantGun =
bangRod
& itType .~ HELD ELEPHANTGUN
& itUse . heldAim . aimStance .~ TwoHandUnder
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0.05
-- & itUse . heldParams . recoil .~ 50
+3 -5
View File
@@ -7,7 +7,7 @@ module Dodge.Item.Held.SprayGuns (
flameWall,
) where
import Dodge.SoundLogic.ExternallyGeneratedSounds
--import Dodge.SoundLogic.ExternallyGeneratedSounds
import Dodge.Data.Item
import Dodge.Default.Item
--import Dodge.Reloading.Action
@@ -24,13 +24,12 @@ poisonSprayer =
& itUse . heldParams . torqueAfter .~ 0
& itUse . heldParams . randomOffset .~ 0
& itUse . heldParams . sidePush .~ 0
& itUse . heldParams . bulGunSound ?~ (foamSprayLoopS,5)
-- & itUse . heldParams . bulGunSound ?~ (foamSprayLoopS,5)
flameSpitter :: Item
flameSpitter =
flameThrower
& itType .~ HELD FLAMESPITTER
& itUse . heldAim . aimStance .~ OneHand
& itUse . heldDelay .~ FixedRate{_rateMax = 3, _rateTimeLastUsed = 0}
& itUse . heldParams . weaponInvLock .~ 10
& itUse . heldParams . weaponRepeat .~ [1..9]
@@ -76,7 +75,6 @@ flameThrower =
& itUse . heldDelay .~ NoDelay
& itUse . heldAim . aimWeight .~ 5
& itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 5, _izMin = 1.5}
& itUse . heldAim . aimStance .~ TwoHandUnder
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 18 0) 0 0 0 NoFlare
MuzzleNozzle
{ _nzPressure = ConstFloat 4
@@ -95,7 +93,7 @@ flameThrower =
, _torqueAfter = 0
, _randomOffset = 0
, _sidePush = 25
, _bulGunSound = Nothing
-- , _bulGunSound = Nothing
, _weaponInvLock = 0
, _weaponRepeat = mempty
}
+1 -2
View File
@@ -59,7 +59,7 @@ autoPistol :: Item
autoPistol =
pistol
& itUse . heldTriggerType .~ AutoTrigger
& itUse . heldParams . bulGunSound ?~ (tap1S, 0)
-- & itUse . heldParams . bulGunSound ?~ (tap1S, 0)
& itType .~ HELD AUTOPISTOL
machinePistol :: Item
@@ -73,7 +73,6 @@ smg :: Item
smg =
autoPistol -- & some parameter affecting stability
& itType .~ HELD SMG
& itUse . heldAim . aimStance .~ TwoHandUnder
& itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 20 0
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldParams . torqueAfter .~ 0.05
-2
View File
@@ -23,8 +23,6 @@ flatShield =
& itEffect . ieInv .~ EffectRootNotroot CreateShieldWall RemoveShieldWall
& itUse . heldAim . aimWeight .~ 5
& itUse . heldAim . aimTurnSpeed .~ 0.5
& itUse . heldAim . aimStance .~ TwoHandFlat
-- & itUse . heldAim . aimHandlePos .~ 0
& itType .~ HELD FLATSHIELD
keyCard :: Int -> Item
-1
View File
@@ -14,4 +14,3 @@ shatterGun =
& itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 30 0
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldAim . aimMuzzles . ix 0 . mzEffect .~ MuzzleShatter
& itUse . heldAim . aimStance .~ TwoHandFlat
+12 -11
View File
@@ -6,6 +6,7 @@ module Dodge.Item.HeldOffset (
heldItemOrient2D,
) where
import Dodge.Item.AimStance
import qualified Quaternion as Q
import Data.Maybe
import Dodge.Data.Creature
@@ -52,11 +53,12 @@ heldItemRelativeOrient itm cr (p,q)
handPos = case cr ^? crStance . carriage of
Just (Walking x LeftForward) -> f x * 50 -2
_ -> 0 - 2
isOneHand =
itm ^? itUseAimStance == Just OneHand
|| isNothing (itm ^? itUseAimStance)
isTwoHandFlat = itm ^? itUseAimStance == Just TwoHandFlat
itUseAimStance = itUse . heldAim . aimStance
isOneHand = aStance itm == OneHand
-- itm ^? itUseAimStance == Just OneHand
-- || isNothing (itm ^? itUseAimStance)
isTwoHandFlat = aStance itm == TwoHandFlat
--itm ^? itUseAimStance == Just TwoHandFlat
--itUseAimStance = itUse . heldAim . aimStance
f i = 0.1 * fromIntegral (sLen - i) / fromIntegral sLen
sLen = _strideLength $ _crStance cr
@@ -67,12 +69,11 @@ aimingWeaponZeroPos cr it =
-- the position of a weapon handle
aimingWeaponHandlePos :: Creature -> Item -> Point2
aimingWeaponHandlePos _ it = case it ^? itUse . heldAim . aimStance of
Just TwoHandUnder -> V2 (-2) 0
Just TwoHandOver -> V2 (-7) 0
Just OneHand -> V2 10 (-2)
Just TwoHandFlat -> V2 10 0
Nothing -> 0
aimingWeaponHandlePos _ it = case aStance it of
TwoHandUnder -> V2 (-2) 0
TwoHandOver -> V2 (-7) 0
OneHand -> V2 10 (-2)
TwoHandFlat -> V2 10 0
heldItemOffset :: Item -> Creature -> Point3 -> Point3
heldItemOffset itm cr p = fst (heldItemRelativeOrient itm cr (p,Q.qID))
+31 -27
View File
@@ -1,14 +1,17 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.Item.Info
( itemInfo
) where
import Dodge.Item.InvSize
module Dodge.Item.Info (
itemInfo,
) where
import Data.Char
--import qualified Data.Map.Strict as M
import Dodge.Data.Item
import Dodge.Item.AimStance
import Dodge.Item.InvSize
--import Dodge.Module.Info
import LensHelp
--import StringHelp
itemInfo :: Item -> String
@@ -29,14 +32,14 @@ itmBaseInfo itm = case itm ^. itType of
DETECTOR d -> "A device that detects " ++ detectorInfo d ++ " in an expanding radius."
ATTACH t -> attachInfo t
AMMOMAG t -> ammoMagInfo t
-- TARGETING {_ibtTargeting :: TargetingType}
-- BULLETMOD {_ibtBulletMod :: BulletMod}
-- STICKYMOD
-- ITEMSCAN
-- MAPPER
-- INTROSCAN {_ibtIntroScanType :: IntroScanType}
-- DETECTOR {_ibtDetector :: Detector}
-- ARHUD
-- TARGETING {_ibtTargeting :: TargetingType}
-- BULLETMOD {_ibtBulletMod :: BulletMod}
-- STICKYMOD
-- ITEMSCAN
-- MAPPER
-- INTROSCAN {_ibtIntroScanType :: IntroScanType}
-- DETECTOR {_ibtDetector :: Detector}
-- ARHUD
_ -> "THIS SHOULD NOT BE DISPLAYED"
ammoMagInfo :: AmmoMagType -> String
@@ -56,12 +59,12 @@ attachInfo = \case
JOYSTICK -> "A control device. Can be used to control certain projectiles. "
GIMBAL -> "A device that can stabilize moving objects. "
GYROSCOPE -> "A device that can sustain angular velocity. "
-- UNDERBARRELSLOT
-- REMOTEDETONATOR
-- SMOKEREDUCER
-- HOMINGMODULE
-- AUGMENTEDHUD
-- SHELLPAYLOAD {}
-- UNDERBARRELSLOT
-- REMOTEDETONATOR
-- SMOKEREDUCER
-- HOMINGMODULE
-- AUGMENTEDHUD
-- SHELLPAYLOAD {}
_ -> "INCOMPLETE, TODO FINISH"
showInt :: Int -> String
@@ -98,7 +101,7 @@ heldInfo hit = case hit of
MINIGUNX i -> over _head toUpper (showInt i) ++ " gun barrels that revolve rapidly around a central stick. Requires considerable time to warm up, but has an extremely rapid rate of fire. It is also extremely difficult to stabilise."
VOLLEYGUN i -> over _head toUpper (showInt i) ++ " gun barrels lined up to be roughly parallel. Each barrel requires a separate magazine. All barrels must be loaded to fire."
RIFLE -> "A firearm with a mid length barrel that requires reloading after each shot."
-- REPEATER -> "A firearm fed by a magazine. The entire magazine must be replaced when reloading the weapon."
-- REPEATER -> "A firearm fed by a magazine. The entire magazine must be replaced when reloading the weapon."
AUTORIFLE -> "A firearm automatically fed by a magazine. The entire magazine must be replaced when reloading the weapon."
ALTERIFLE -> "A firearm with a mid length barrel that requires reloading after each shot. Alternates between two magazines."
BURSTRIFLE -> "A firearm that rapidly fires three projectiles from its magazine. The entire magazine must be replaced when reloading the weapon."
@@ -107,7 +110,7 @@ heldInfo hit = case hit of
AMR -> "An antimateriel rifle, designed to disable military equipment. Its long barrel is fed by a magazine that must be replaced when reloading the weapon."
AUTOAMR -> "An automatic antimateriel rifle, designed to disable military equipment. Its long barrel is fed by a magazine that must be replaced when reloading the weapon."
SNIPERRIFLE -> "A firearm designed with long range capability in mind. Its long barrel requires reloading after each shot."
-- MACHINEGUN -> "A heavy firearm whose rate of fire increases during a barrage."
-- MACHINEGUN -> "A heavy firearm whose rate of fire increases during a barrage."
FLAMESPITTER -> "A weapon that globs out burning fuel."
FLAMETHROWER -> "A weapon that squirts out burning fuel."
FLAMETORRENT -> "A weapon that streams out burning fuel in a torrent."
@@ -120,10 +123,10 @@ heldInfo hit = case hit of
GLAUNCHER -> "A large tube that can launch projectiles."
RLAUNCHER -> "A large tube that can launch self propelled projectiles. Moving the tube after launch will cause the projectile to spin."
RLAUNCHERX i -> over _head toUpper (showInt i) ++ " tubes that can launch self propelled projectiles. Tubes that do not face forward launch their projecitles at an angle."
-- REMOTELAUNCHER -> "A large tube that can launch self propelled projectiles. Contains a transmitter allowing for remote control of launched projectiles."
-- REMOTELAUNCHER -> "A large tube that can launch self propelled projectiles. Contains a transmitter allowing for remote control of launched projectiles."
POISONSPRAYER -> "A weapon that releases noxious gases."
SHATTERGUN -> "A seismic device that shatters hard items in its line of fire."
-- FORCEFIELDGUN -> "A device that produces a durable forcefield."
-- FORCEFIELDGUN -> "A device that produces a durable forcefield."
TORCH -> "A stick with a light on the end."
FLATSHIELD -> "A panel of metal that blocks unwanted objects from the front of the user."
KEYCARD i -> "A keycard. It is labelled " ++ show i ++ "."
@@ -197,9 +200,10 @@ craftInfo fit = case fit of
MICROPHONE -> "A device that measures air vibration."
CREATURESENSOR -> "A device for detecting living beings."
WIRE -> "A small thin object that conducts electricity."
-- BATTERY -> "A store of electical potential energy."
-- BATTERY -> "A store of electical potential energy."
FUELCELL -> "A devices that converts chemical energy into electricity."
PORTABLEFUSION -> "A miniature nuclear reactor."
-- GASINJECTOR -> "A device that can inject small quantities of gas into objects."
-- ENERGYBALLCRAFT ebt -> "A device that can create " ++ addIndefiniteArticle (displayEnergyBallType ebt) ++ " effect."
-- FRAGMODULE -> "A device that converts projectiles into fragmentation projectiles."
@@ -222,15 +226,15 @@ detectorInfo d = case d of
itmUsageInfo :: Item -> String
itmUsageInfo itm = case itm ^. itType of
HELD _ -> heldPositionInfo itm
-- LEFT _ ->
-- "This item can be equipped" ++ itmEquipSiteInfo itm
-- ++ ". When equipped, it can be activated."
-- LEFT _ ->
-- "This item can be equipped" ++ itmEquipSiteInfo itm
-- ++ ". When equipped, it can be activated."
EQUIP _ -> "This item can be equipped " ++ itmEquipSiteInfo itm ++ "."
CRAFT _ -> ""
_ -> "THIS SHOULD NOT BE DISPLAYED"
heldPositionInfo :: Item -> String
heldPositionInfo = maybe undefined aimStanceInfo . (^? itUse . heldAim . aimStance)
heldPositionInfo = aimStanceInfo . aStance
aimStanceInfo :: AimStance -> String
aimStanceInfo as = case as of
+150 -150
View File
@@ -46,9 +46,10 @@ Add src/Dodge/Inventory/Add.hs 1;" m
AddGoal src/Dodge/Data/ActionPlan.hs 45;" C
AesonHelp src/AesonHelp.hs 1;" m
AimAt src/Dodge/Data/ActionPlan.hs 84;" C
AimParams src/Dodge/Data/Item/Use.hs 118;" t
AimParams src/Dodge/Data/Item/Use.hs 114;" t
AimParams src/Dodge/Default/Item/Use/AimParams.hs 1;" m
AimStance src/Dodge/Data/Item/Use.hs 187;" t
AimStance src/Dodge/Data/Item/Use.hs 183;" t
AimStance src/Dodge/Item/AimStance.hs 2;" m
Aiming src/Dodge/Data/Creature/Stance.hs 39;" C
AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C
Airlock src/Dodge/Room/Airlock.hs 4;" m
@@ -65,10 +66,10 @@ AmmoMagSF src/Dodge/Data/ComposedItem.hs 51;" C
AmmoMagType src/Dodge/Data/Item/Combine.hs 104;" t
AmmoModLink src/Dodge/Data/ComposedItem.hs 19;" C
AmmoModifierSF src/Dodge/Data/ComposedItem.hs 57;" C
AmmoParams src/Dodge/Data/Item/Use.hs 111;" t
AmmoParams src/Dodge/Data/Item/Use.hs 107;" t
AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 21;" C
AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 59;" C
AmmoPerShot src/Dodge/Data/Item/Use.hs 161;" t
AmmoPerShot src/Dodge/Data/Item/Use.hs 157;" t
AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 20;" C
AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 58;" C
AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" t
@@ -147,7 +148,7 @@ Base src/Picture/Base.hs 4;" m
BasicBeamDraw src/Dodge/Data/Beam.hs 34;" C
BasicBulletTrajectory src/Dodge/Data/Bullet.hs 50;" C
BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 57;" C
BasicFlare src/Dodge/Data/Item/Use.hs 131;" C
BasicFlare src/Dodge/Data/Item/Use.hs 127;" C
BatteryGuns src/Dodge/Item/Held/BatteryGuns.hs 1;" m
BatteryGuns src/Dodge/Item/Weapon/BatteryGuns.hs 1;" m
Beam src/Dodge/Data/Beam.hs 18;" t
@@ -157,7 +158,7 @@ BeamCombine src/Dodge/Data/Beam.hs 47;" C
BeamCombineType src/Dodge/Data/Beam.hs 38;" t
BeamDraw src/Dodge/Data/Beam.hs 33;" t
BeamDrawColor src/Dodge/Data/Beam.hs 35;" C
BeamShooterParams src/Dodge/Data/Item/Use.hs 95;" C
BeamShooterParams src/Dodge/Data/Item/Use.hs 91;" C
BeamSimple src/Dodge/Data/Beam.hs 50;" C
BeamType src/Dodge/Data/Beam.hs 46;" t
BecomePowerful src/Dodge/Data/Scenario.hs 9;" C
@@ -229,9 +230,9 @@ BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t
BulletMod src/Dodge/Data/Item/BulletMod.hs 3;" m
BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C
BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C
BulletParams src/Dodge/Data/Item/Use.hs 112;" C
BulletParams src/Dodge/Data/Item/Use.hs 108;" C
BulletPayload src/Dodge/Data/Bullet.hs 41;" t
BulletShooterParams src/Dodge/Data/Item/Use.hs 96;" C
BulletShooterParams src/Dodge/Data/Item/Use.hs 92;" C
BulletTrajectory src/Dodge/Data/Bullet.hs 49;" t
BulletTrajectoryType src/Dodge/Data/Bullet.hs 56;" t
Button src/Dodge/Data/Button.hs 48;" t
@@ -285,7 +286,7 @@ CardinalPoint src/Dodge/Base/CardinalPoint.hs 1;" m
CardinalPoint src/Dodge/Data/CardinalPoint.hs 1;" m
Carriage src/Dodge/Data/Creature/Stance.hs 20;" t
Carte src/Dodge/Render/HUD/Carte.hs 1;" m
ChainEffect src/Dodge/HeldUse.hs 72;" t
ChainEffect src/Dodge/HeldUse.hs 73;" t
ChainEffect src/Dodge/Item/Weapon/TriggerType.hs 43;" t
ChainUpdates src/Dodge/Creature/ChainUpdates.hs 1;" m
ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C
@@ -686,7 +687,7 @@ FlameBeamCombine src/Dodge/Data/Beam.hs 39;" C
FlameSound src/Dodge/Data/SoundOrigin.hs 27;" C
Flamer src/Dodge/Data/SoundOrigin.hs 25;" C
Flank src/Dodge/Data/ActionPlan.hs 177;" C
FlareType src/Dodge/Data/Item/Use.hs 129;" t
FlareType src/Dodge/Data/Item/Use.hs 125;" t
FlashBall src/Dodge/Data/Bullet.hs 32;" C
FlatFaces src/Shape/Data.hs 17;" C
FlatShieldParams src/Dodge/Data/Item/Params.hs 15;" C
@@ -756,7 +757,7 @@ GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C
GasCloud src/Dodge/Data/Cloud.hs 31;" C
GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" t
GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" t
GasParams src/Dodge/Data/Item/Use.hs 114;" C
GasParams src/Dodge/Data/Item/Use.hs 110;" C
GasSprayParams src/Dodge/Data/Item/Use.hs 83;" C
GenCr src/Dodge/Data/Creature/State.hs 31;" C
GenFloat src/Dodge/Data/GenFloat.hs 11;" t
@@ -825,7 +826,7 @@ HammerUp src/Dodge/Data/Hammer.hs 20;" C
HandPos src/Dodge/Creature/HandPos.hs 1;" m
HardQuit src/Dodge/Data/Universe.hs 70;" C
HasHammer src/Dodge/Data/Hammer.hs 14;" C
HeavySmokeFlare src/Dodge/Data/Item/Use.hs 134;" C
HeavySmokeFlare src/Dodge/Data/Item/Use.hs 130;" C
Held src/Dodge/Item/Held.hs 1;" m
HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m
HeldItemType src/Dodge/Data/Item/Combine.hs 137;" t
@@ -945,7 +946,7 @@ ItEffect src/Dodge/ItEffect.hs 3;" m
ItID src/Dodge/Data/Item.hs 29;" t
ItInvEffect src/Dodge/Data/Item/Effect.hs 23;" t
ItTargeting src/Dodge/Data/Item.hs 61;" C
ItZoom src/Dodge/Data/Item/Use.hs 194;" t
ItZoom src/Dodge/Data/Item/Use.hs 190;" t
Item src/Dodge/Data/Item.hs 41;" t
Item src/Dodge/Data/Item.hs 4;" m
Item src/Dodge/Default/Item.hs 1;" m
@@ -1015,7 +1016,7 @@ Lampoid src/Dodge/Data/Creature/Misc.hs 83;" C
Lampoid src/Dodge/Lampoid.hs 1;" m
Large src/Shape/Data.hs 29;" C
LasBeamCombine src/Dodge/Data/Beam.hs 40;" C
LasGunFlare src/Dodge/Data/Item/Use.hs 135;" C
LasGunFlare src/Dodge/Data/Item/Use.hs 131;" C
LasSound src/Dodge/Data/SoundOrigin.hs 28;" C
LasTurret src/Dodge/Room/LasTurret.hs 1;" m
Laser src/Dodge/Data/Laser.hs 21;" t
@@ -1186,7 +1187,7 @@ Metapysics src/Dodge/Data/Scenario.hs 17;" t
Military src/Dodge/Data/Scenario.hs 45;" C
Mine src/Dodge/Data/Scenario.hs 64;" C
MiniGunAI src/Dodge/Data/Creature/Misc.hs 58;" C
MiniGunFlare src/Dodge/Data/Item/Use.hs 133;" C
MiniGunFlare src/Dodge/Data/Item/Use.hs 129;" C
Misc src/Dodge/Data/Creature/Misc.hs 6;" m
Misc src/Dodge/Data/Equipment/Misc.hs 6;" m
Misc src/Dodge/Data/Item/Misc.hs 6;" m
@@ -1220,23 +1221,23 @@ Multiset src/Multiset.hs 4;" m
Music src/Music.hs 1;" m
MusicData src/Music.hs 7;" t
Mute src/Dodge/Data/Creature/Misc.hs 28;" C
Muzzle src/Dodge/Data/Item/Use.hs 166;" t
MuzzleBlink src/Dodge/Data/Item/Use.hs 154;" C
MuzzleDetector src/Dodge/Data/Item/Use.hs 153;" C
MuzzleEffect src/Dodge/Data/Item/Use.hs 139;" t
Muzzle src/Dodge/Data/Item/Use.hs 162;" t
MuzzleBlink src/Dodge/Data/Item/Use.hs 150;" C
MuzzleDetector src/Dodge/Data/Item/Use.hs 149;" C
MuzzleEffect src/Dodge/Data/Item/Use.hs 135;" t
MuzzleEffect src/Dodge/Data/MuzzleEffect.hs 5;" m
MuzzleGLauncher src/Dodge/Data/Item/Use.hs 145;" C
MuzzleLaser src/Dodge/Data/Item/Use.hs 141;" C
MuzzleNozzle src/Dodge/Data/Item/Use.hs 146;" C
MuzzleRLauncher src/Dodge/Data/Item/Use.hs 144;" C
MuzzleRewind src/Dodge/Data/Item/Use.hs 156;" C
MuzzleScroller src/Dodge/Data/Item/Use.hs 158;" C
MuzzleShatter src/Dodge/Data/Item/Use.hs 152;" C
MuzzleShootBullet src/Dodge/Data/Item/Use.hs 140;" C
MuzzleStopper src/Dodge/Data/Item/Use.hs 157;" C
MuzzleTesla src/Dodge/Data/Item/Use.hs 142;" C
MuzzleTractor src/Dodge/Data/Item/Use.hs 143;" C
MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 155;" C
MuzzleGLauncher src/Dodge/Data/Item/Use.hs 141;" C
MuzzleLaser src/Dodge/Data/Item/Use.hs 137;" C
MuzzleNozzle src/Dodge/Data/Item/Use.hs 142;" C
MuzzleRLauncher src/Dodge/Data/Item/Use.hs 140;" C
MuzzleRewind src/Dodge/Data/Item/Use.hs 152;" C
MuzzleScroller src/Dodge/Data/Item/Use.hs 154;" C
MuzzleShatter src/Dodge/Data/Item/Use.hs 148;" C
MuzzleShootBullet src/Dodge/Data/Item/Use.hs 136;" C
MuzzleStopper src/Dodge/Data/Item/Use.hs 153;" C
MuzzleTesla src/Dodge/Data/Item/Use.hs 138;" C
MuzzleTractor src/Dodge/Data/Item/Use.hs 139;" C
MuzzleUnsafeBlink src/Dodge/Data/Item/Use.hs 151;" C
MvForward src/Dodge/Data/ActionPlan.hs 35;" C
MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C
MvWalking src/Dodge/Data/Creature/Misc.hs 39;" C
@@ -1259,7 +1260,7 @@ NewIntMap src/NewInt.hs 18;" t
NewSideEffect src/Dodge/Data/Universe.hs 65;" C
Ngon src/Dodge/Room/Ngon.hs 1;" m
NoAction src/Dodge/Data/ActionPlan.hs 152;" C
NoAmmoParams src/Dodge/Data/Item/Use.hs 115;" C
NoAmmoParams src/Dodge/Data/Item/Use.hs 111;" C
NoArguments src/Dodge/Data/Terminal.hs 91;" C
NoBeamCombine src/Dodge/Data/Beam.hs 43;" C
NoConcurrentEffect src/Loop/Data.hs 7;" C
@@ -1274,7 +1275,7 @@ NoDropEffect src/Dodge/Data/Item/Effect.hs 37;" C
NoEquipParams src/Dodge/Data/Item/Use/Equipment.hs 36;" C
NoEscapeMenuOption src/Dodge/Data/Universe.hs 79;" C
NoFaction src/Dodge/Data/Creature/State.hs 40;" C
NoFlare src/Dodge/Data/Item/Use.hs 130;" C
NoFlare src/Dodge/Data/Item/Use.hs 126;" C
NoHammer src/Dodge/Data/Hammer.hs 13;" C
NoHeldUseEffect src/Dodge/Data/Item/Use.hs 57;" C
NoHoming src/Dodge/Data/Projectile.hs 48;" C
@@ -1282,7 +1283,7 @@ NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C
NoInvEffect src/Dodge/Data/Item/Effect.hs 24;" C
NoItTargeting src/Dodge/Data/Item.hs 60;" C
NoItemScroll src/Dodge/Data/Item.hs 56;" C
NoLightFlare src/Dodge/Data/Item/Use.hs 132;" C
NoLightFlare src/Dodge/Data/Item/Use.hs 128;" C
NoLighting src/Dodge/Data/Config.hs 104;" C
NoMouseContext src/Dodge/Data/Input.hs 22;" C
NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C
@@ -1362,7 +1363,7 @@ OnSpecial src/Dodge/Data/Equipment/Misc.hs 28;" C
OnTurret src/Dodge/Data/Item/Location.hs 37;" C
OnceSound src/Dodge/Data/SoundOrigin.hs 16;" C
OneArgument src/Dodge/Data/Terminal.hs 92;" C
OneHand src/Dodge/Data/Item/Use.hs 191;" C
OneHand src/Dodge/Data/Item/Use.hs 187;" C
OnwardCluster src/Dodge/Data/RoomCluster.hs 14;" C
OnwardList src/Dodge/Annotation/Data.hs 16;" C
Opacity src/Dodge/Data/Wall.hs 40;" t
@@ -1499,7 +1500,7 @@ Procedural src/Dodge/Room/Procedural.hs 2;" m
Projectile src/Dodge/Data/Projectile.hs 17;" t
Projectile src/Dodge/Data/Projectile.hs 6;" m
Projectile src/Dodge/Projectile.hs 1;" m
ProjectileParams src/Dodge/Data/Item/Use.hs 113;" C
ProjectileParams src/Dodge/Data/Item/Use.hs 109;" C
ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 32;" C
ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 63;" C
ProjectileType src/Dodge/Data/Projectile.hs 36;" t
@@ -1957,7 +1958,7 @@ TeslaArc src/Dodge/Data/TeslaArc.hs 17;" t
TeslaArc src/Dodge/Data/TeslaArc.hs 6;" m
TeslaBall src/Dodge/Data/Bullet.hs 31;" C
TeslaBeamCombine src/Dodge/Data/Beam.hs 41;" C
TeslaGunFlare src/Dodge/Data/Item/Use.hs 136;" C
TeslaGunFlare src/Dodge/Data/Item/Use.hs 132;" C
Test src/Dodge/Creature/Test.hs 8;" m
Test src/Dodge/Event/Test.hs 1;" m
Test src/Picture/Test.hs 1;" m
@@ -2030,9 +2031,9 @@ Turret src/Dodge/Data/Machine.hs 57;" t
Turret src/Dodge/Placement/Instance/Turret.hs 1;" m
TurretInt src/Dodge/Data/Item/Location.hs 21;" t
TwistGoal src/Dodge/Data/Scenario.hs 15;" C
TwoHandFlat src/Dodge/Data/Item/Use.hs 190;" C
TwoHandOver src/Dodge/Data/Item/Use.hs 189;" C
TwoHandUnder src/Dodge/Data/Item/Use.hs 188;" C
TwoHandFlat src/Dodge/Data/Item/Use.hs 186;" C
TwoHandOver src/Dodge/Data/Item/Use.hs 185;" C
TwoHandUnder src/Dodge/Data/Item/Use.hs 184;" C
Type src/Dodge/Data/Damage/Type.hs 6;" m
Type src/Dodge/Terminal/Type.hs 1;" m
Typical src/Shape/Data.hs 36;" C
@@ -2074,7 +2075,7 @@ UseBulletMod src/Dodge/Data/Item/Use.hs 48;" C
UseCondition src/Dodge/Data/Item/Use.hs 67;" t
UseDelay src/Dodge/Data/Item/HeldDelay.hs 13;" t
UseEquip src/Dodge/Data/Item/Use.hs 42;" C
UseExactly src/Dodge/Data/Item/Use.hs 162;" C
UseExactly src/Dodge/Data/Item/Use.hs 158;" C
UseFocus src/Dodge/Data/Item/Use.hs 62;" t
UseFromLocation src/Dodge/Data/Item/Use.hs 64;" C
UseFromRoot src/Dodge/Data/Item/Use.hs 63;" C
@@ -2091,7 +2092,7 @@ UseScope src/Dodge/Data/Item/Use.hs 47;" C
UseSelf src/Dodge/Data/ActionPlan.hs 157;" C
UseTarget src/Dodge/Data/ActionPlan.hs 154;" C
UseToggle src/Dodge/Data/Item/Use.hs 49;" C
UseUpTo src/Dodge/Data/Item/Use.hs 163;" C
UseUpTo src/Dodge/Data/Item/Use.hs 159;" C
UseValue src/Dodge/Data/Item/Use.hs 46;" C
UseableAnytime src/Dodge/Data/Item/Use.hs 69;" C
UseableWhenAimed src/Dodge/Data/Item/Use.hs 68;" C
@@ -2216,13 +2217,12 @@ Zoning src/Dodge/Zoning.hs 1;" m
__Just' src/MaybeHelp.hs 13;" f
_actAction src/Dodge/Data/ActionPlan.hs 81;" f
_actLabel src/Dodge/Data/ActionPlan.hs 80;" f
_aimHandlePos src/Dodge/Data/Item/Use.hs 124;" f
_aimMuzzles src/Dodge/Data/Item/Use.hs 125;" f
_aimRange src/Dodge/Data/Item/Use.hs 121;" f
_aimStance src/Dodge/Data/Item/Use.hs 123;" f
_aimTurnSpeed src/Dodge/Data/Item/Use.hs 120;" f
_aimWeight src/Dodge/Data/Item/Use.hs 119;" f
_aimZoom src/Dodge/Data/Item/Use.hs 122;" f
_aimHandlePos src/Dodge/Data/Item/Use.hs 120;" f
_aimMuzzles src/Dodge/Data/Item/Use.hs 121;" f
_aimRange src/Dodge/Data/Item/Use.hs 117;" f
_aimTurnSpeed src/Dodge/Data/Item/Use.hs 116;" f
_aimWeight src/Dodge/Data/Item/Use.hs 115;" f
_aimZoom src/Dodge/Data/Item/Use.hs 118;" f
_allocNewPos src/Dodge/Data/RightButtonOptions.hs 21;" f
_allocNewPos src/Dodge/Data/RightButtonOptions.hs 24;" f
_allocNewPos src/Dodge/Data/RightButtonOptions.hs 28;" f
@@ -2234,9 +2234,9 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 34;" f
_allocSwapID src/Dodge/Data/RightButtonOptions.hs 30;" f
_alphaDivideShader src/Data/Preload/Render.hs 18;" f
_ambushTarget src/Dodge/Data/ActionPlan.hs 178;" f
_ampBullet src/Dodge/Data/Item/Use.hs 112;" f
_ampCreateGas src/Dodge/Data/Item/Use.hs 114;" f
_ampPayload src/Dodge/Data/Item/Use.hs 113;" f
_ampBullet src/Dodge/Data/Item/Use.hs 108;" f
_ampCreateGas src/Dodge/Data/Item/Use.hs 110;" f
_ampPayload src/Dodge/Data/Item/Use.hs 109;" f
_apAction src/Dodge/Data/ActionPlan.hs 20;" f
_apGoal src/Dodge/Data/ActionPlan.hs 22;" f
_apImpulse src/Dodge/Data/ActionPlan.hs 19;" f
@@ -2314,8 +2314,6 @@ _buPayload src/Dodge/Data/Bullet.hs 19;" f
_buPos src/Dodge/Data/Bullet.hs 23;" f
_buVel src/Dodge/Data/Bullet.hs 21;" f
_buWidth src/Dodge/Data/Bullet.hs 25;" f
_bulGunSound src/Dodge/Data/Item/Use.hs 89;" f
_bulGunSound src/Dodge/Data/Item/Use.hs 103;" f
_bullets src/Dodge/Data/LWorld.hs 107;" f
_buttons src/Dodge/Data/LWorld.hs 137;" f
_cClock src/Dodge/Data/CWorld.hs 26;" f
@@ -2684,9 +2682,9 @@ _itemLocations src/Dodge/Data/LWorld.hs 101;" f
_itsInt src/Dodge/Data/Item.hs 57;" f
_itsMax src/Dodge/Data/Item.hs 58;" f
_itsRangeInt src/Dodge/Data/Item.hs 58;" f
_izFac src/Dodge/Data/Item/Use.hs 197;" f
_izMax src/Dodge/Data/Item/Use.hs 195;" f
_izMin src/Dodge/Data/Item/Use.hs 196;" f
_izFac src/Dodge/Data/Item/Use.hs 193;" f
_izMax src/Dodge/Data/Item/Use.hs 191;" f
_izMin src/Dodge/Data/Item/Use.hs 192;" f
_killTarget src/Dodge/Data/ActionPlan.hs 198;" f
_lAimPos src/Dodge/Data/LWorld.hs 150;" f
_lClock src/Dodge/Data/LWorld.hs 145;" f
@@ -2810,20 +2808,20 @@ _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f
_mtTree src/Dodge/Data/MetaTree.hs 10;" f
_mtTree src/Dodge/Tree/Compose/Data.hs 8;" f
_musicData src/Data/Preload.hs 13;" f
_muzVel src/Dodge/Data/Item/Use.hs 97;" f
_muzVel src/Dodge/Data/Item/Use.hs 93;" f
_mvAimSpeed src/Dodge/Data/Creature/Misc.hs 44;" f
_mvSpeed src/Dodge/Data/Creature/Misc.hs 39;" f
_mvToPoint src/Dodge/Data/Creature.hs 78;" f
_mvTurnJit src/Dodge/Data/Creature/Misc.hs 43;" f
_mvTurnRad src/Dodge/Data/Creature/Misc.hs 42;" f
_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 173;" f
_mzAmmoSlot src/Dodge/Data/Item/Use.hs 170;" f
_mzEffect src/Dodge/Data/Item/Use.hs 172;" f
_mzFlareType src/Dodge/Data/Item/Use.hs 171;" f
_mzFrame src/Dodge/Data/Item/Use.hs 174;" f
_mzInaccuracy src/Dodge/Data/Item/Use.hs 169;" f
_mzPos src/Dodge/Data/Item/Use.hs 167;" f
_mzRot src/Dodge/Data/Item/Use.hs 168;" f
_mzAmmoPerShot src/Dodge/Data/Item/Use.hs 169;" f
_mzAmmoSlot src/Dodge/Data/Item/Use.hs 166;" f
_mzEffect src/Dodge/Data/Item/Use.hs 168;" f
_mzFlareType src/Dodge/Data/Item/Use.hs 167;" f
_mzFrame src/Dodge/Data/Item/Use.hs 170;" f
_mzInaccuracy src/Dodge/Data/Item/Use.hs 165;" f
_mzPos src/Dodge/Data/Item/Use.hs 163;" f
_mzRot src/Dodge/Data/Item/Use.hs 164;" f
_nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f
_nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f
_nodeTree src/Dodge/Data/MetaTree.hs 13;" f
@@ -2832,10 +2830,10 @@ _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f
_numLinkEW src/Dodge/Data/Room.hs 33;" f
_numLinkNS src/Dodge/Data/Room.hs 34;" f
_numberFloorVerxs src/Dodge/Data/CWorld.hs 29;" f
_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 149;" f
_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 148;" f
_nzPressure src/Dodge/Data/Item/Use.hs 147;" f
_nzWalkSpeed src/Dodge/Data/Item/Use.hs 150;" f
_nzCurrentWalkAngle src/Dodge/Data/Item/Use.hs 145;" f
_nzMaxWalkAngle src/Dodge/Data/Item/Use.hs 144;" f
_nzPressure src/Dodge/Data/Item/Use.hs 143;" f
_nzWalkSpeed src/Dodge/Data/Item/Use.hs 146;" f
_offPathFromEdges src/Dodge/Data/Room.hs 74;" f
_oldMagnets src/Dodge/Data/LWorld.hs 127;" f
_onPathFromEdges src/Dodge/Data/Room.hs 73;" f
@@ -2961,8 +2959,8 @@ _pyFaces src/Polyhedra/Data.hs 14;" f
_radarBlips src/Dodge/Data/LWorld.hs 113;" f
_radarSweeps src/Dodge/Data/LWorld.hs 108;" f
_randGen src/Dodge/Data/World.hs 39;" f
_randomOffset src/Dodge/Data/Item/Use.hs 87;" f
_randomOffset src/Dodge/Data/Item/Use.hs 101;" f
_randomOffset src/Dodge/Data/Item/Use.hs 86;" f
_randomOffset src/Dodge/Data/Item/Use.hs 97;" f
_rateMax src/Dodge/Data/Item/HeldDelay.hs 16;" f
_rateTimeLastUsed src/Dodge/Data/Item/HeldDelay.hs 17;" f
_rbColor src/Dodge/Data/RadarBlip.hs 15;" f
@@ -2972,13 +2970,11 @@ _rbPos src/Dodge/Data/RadarBlip.hs 19;" f
_rbRad src/Dodge/Data/RadarBlip.hs 18;" f
_rbTime src/Dodge/Data/RadarBlip.hs 16;" f
_rboBaseBloom src/Data/Preload/Render.hs 38;" f
_recoil src/Dodge/Data/Item/Use.hs 85;" f
_recoil src/Dodge/Data/Item/Use.hs 99;" f
_renderData src/Data/Preload.hs 11;" f
_reverseAmount src/Dodge/Data/World.hs 63;" f
_reverseAmount src/Dodge/Data/World.hs 69;" f
_reverseAmount src/Dodge/Data/World.hs 73;" f
_rifling src/Dodge/Data/Item/Use.hs 98;" f
_rifling src/Dodge/Data/Item/Use.hs 94;" f
_rkHoming src/Dodge/Data/Projectile.hs 41;" f
_rkSmoke src/Dodge/Data/Projectile.hs 42;" f
_rlDir src/Dodge/Data/Room.hs 26;" f
@@ -3088,8 +3084,8 @@ _siWidth src/Dodge/Data/SelectionList.hs 47;" f
_siWidth src/Dodge/Data/SelectionList.hs 56;" f
_sideEffect src/Loop/Data.hs 13;" f
_sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f
_sidePush src/Dodge/Data/Item/Use.hs 88;" f
_sidePush src/Dodge/Data/Item/Use.hs 102;" f
_sidePush src/Dodge/Data/Item/Use.hs 87;" f
_sidePush src/Dodge/Data/Item/Use.hs 98;" f
_silhouetteEBO src/Data/Preload/Render.hs 27;" f
_skColor src/Dodge/Data/Spark.hs 17;" f
_skDamageType src/Dodge/Data/Spark.hs 21;" f
@@ -3203,8 +3199,8 @@ _toPlaySoundVolume src/Sound/Data.hs 39;" f
_toPlaySoundVolumeFraction src/Sound/Data.hs 40;" f
_toPlaySounds src/Dodge/Data/World.hs 40;" f
_topBoxSize src/Shape/Data.hs 17;" f
_torqueAfter src/Dodge/Data/Item/Use.hs 86;" f
_torqueAfter src/Dodge/Data/Item/Use.hs 100;" f
_torqueAfter src/Dodge/Data/Item/Use.hs 85;" f
_torqueAfter src/Dodge/Data/Item/Use.hs 96;" f
_tractorBeams src/Dodge/Data/LWorld.hs 121;" f
_trieChildren src/SimpleTrie.hs 11;" f
_trieMVal src/SimpleTrie.hs 10;" f
@@ -3238,14 +3234,14 @@ _unTO src/Shader/Data.hs 59;" f
_unpauseClock src/Dodge/Data/World.hs 54;" f
_unputTerminal src/Dodge/Data/GenWorld.hs 36;" f
_useAheadPos src/Dodge/Data/ActionPlan.hs 161;" f
_useExactly src/Dodge/Data/Item/Use.hs 162;" f
_useExactly src/Dodge/Data/Item/Use.hs 158;" f
_useMapperLines src/Dodge/Data/Item/Use.hs 51;" f
_useMapperPoints src/Dodge/Data/Item/Use.hs 52;" f
_useMvTargetPos src/Dodge/Data/ActionPlan.hs 164;" f
_useSelf src/Dodge/Data/ActionPlan.hs 158;" f
_useTarget src/Dodge/Data/ActionPlan.hs 155;" f
_useToggle src/Dodge/Data/Item/Use.hs 49;" f
_useUpTo src/Dodge/Data/Item/Use.hs 163;" f
_useUpTo src/Dodge/Data/Item/Use.hs 159;" f
_uvCanContinue src/Dodge/Data/Universe.hs 39;" f
_uvConfig src/Dodge/Data/Universe.hs 37;" f
_uvDebug src/Dodge/Data/Universe.hs 44;" f
@@ -3300,10 +3296,10 @@ _wanPos src/Dodge/Data/LWorld.hs 162;" f
_warmMax src/Dodge/Data/Item/HeldDelay.hs 27;" f
_warmSound src/Dodge/Data/Item/HeldDelay.hs 28;" f
_warmTime src/Dodge/Data/Item/HeldDelay.hs 26;" f
_weaponInvLock src/Dodge/Data/Item/Use.hs 92;" f
_weaponInvLock src/Dodge/Data/Item/Use.hs 106;" f
_weaponRepeat src/Dodge/Data/Item/Use.hs 93;" f
_weaponRepeat src/Dodge/Data/Item/Use.hs 107;" f
_weaponInvLock src/Dodge/Data/Item/Use.hs 88;" f
_weaponInvLock src/Dodge/Data/Item/Use.hs 102;" f
_weaponRepeat src/Dodge/Data/Item/Use.hs 89;" f
_weaponRepeat src/Dodge/Data/Item/Use.hs 103;" f
_windowPosX src/Dodge/Data/Config.hs 53;" f
_windowPosY src/Dodge/Data/Config.hs 54;" f
_windowShader src/Data/Preload/Render.hs 19;" f
@@ -3345,6 +3341,7 @@ aGib src/Dodge/Prop/Gib.hs 17;" f
aRadarPulse src/Dodge/RadarSweep.hs 19;" f
aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f
aSound src/Dodge/SoundLogic.hs 74;" f
aStance src/Dodge/Item/AimStance.hs 11;" f
aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f
aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f
accessTerminal src/Dodge/WorldEffect.hs 52;" f
@@ -3406,7 +3403,7 @@ airlockZ src/Dodge/Room/Airlock.hs 91;" f
allInvLocs src/Dodge/Item/Grammar.hs 308;" f
allVisibleWalls src/Dodge/Base/Collide.hs 131;" f
alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 65;" f
alteRifle src/Dodge/Item/Held/Cane.hs 64;" f
ammoMagInfo src/Dodge/Item/Info.hs 42;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 124;" f
amr src/Dodge/Item/Held/Rod.hs 44;" f
@@ -3419,24 +3416,24 @@ angleVV3 src/Geometry/Vector3D.hs 122;" f
annoToRoomTree src/Dodge/Annotation.hs 17;" f
anyUnusedSpot src/Dodge/PlacementSpot.hs 66;" f
anythingHitCirc src/Dodge/Base/Collide.hs 246;" f
applyCME src/Dodge/HeldUse.hs 163;" f
applyCME src/Dodge/HeldUse.hs 164;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
applyEventIO src/Loop.hs 89;" f
applyGravityPU src/Dodge/Projectile/Update.hs 56;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f
applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f
applyInvLock src/Dodge/HeldUse.hs 178;" f
applyInvLock src/Dodge/HeldUse.hs 179;" f
applyMagnetsToBul src/Dodge/Bullet.hs 28;" f
applyNoDamage src/Dodge/Creature/Damage.hs 11;" f
applyPastDamages src/Dodge/Creature/State.hs 142;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f
applyPosition src/Sound.hs 111;" f
applyRecoil src/Dodge/HeldUse.hs 198;" f
applyRecoil src/Dodge/HeldUse.hs 199;" f
applyResFactor src/Dodge/Data/Config.hs 110;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 81;" f
applySidePush src/Dodge/HeldUse.hs 204;" f
applySoundCME src/Dodge/HeldUse.hs 188;" f
applySidePush src/Dodge/HeldUse.hs 298;" f
applySoundCME src/Dodge/HeldUse.hs 189;" f
applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f
applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 42;" f
applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f
@@ -3444,7 +3441,7 @@ applyToNode src/TreeHelp.hs 64;" f
applyToRandomNode src/TreeHelp.hs 150;" f
applyToSubforest src/TreeHelp.hs 77;" f
applyToSubtree src/TreeHelp.hs 70;" f
applyTorqueCME src/Dodge/HeldUse.hs 215;" f
applyTorqueCME src/Dodge/HeldUse.hs 309;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f
arHUD src/Dodge/Item/Scope.hs 135;" f
@@ -3486,7 +3483,7 @@ autoDetector src/Dodge/Item/Weapon/Radar.hs 11;" f
autoEffect src/Dodge/Item/Weapon/ExtraEffect.hs 18;" f
autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f
autoPistol src/Dodge/Item/Held/Stick.hs 58;" f
autoRifle src/Dodge/Item/Held/Cane.hs 77;" f
autoRifle src/Dodge/Item/Held/Cane.hs 76;" f
awakeLevelPerception src/Dodge/Creature/Perception.hs 162;" f
axisInt src/Geometry/Intersect.hs 227;" f
azure src/Color.hs 22;" f
@@ -3495,7 +3492,7 @@ bQuadToLine src/Geometry/Bezier.hs 30;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 26;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 173;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
bangCone src/Dodge/Item/Held/Cone.hs 11;" f
bangCone src/Dodge/Item/Held/Cone.hs 13;" f
bangConeShape src/Dodge/Item/Draw/SPic.hs 286;" f
bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f
bangRod src/Dodge/Item/Held/Rod.hs 18;" f
@@ -3525,7 +3522,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 21;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMachineUpdate src/Dodge/Machine.hs 13;" f
basicMuzFlare src/Dodge/HeldUse.hs 315;" f
basicMuzFlare src/Dodge/HeldUse.hs 409;" f
basicTerminal src/Dodge/Terminal.hs 35;" f
battery src/Dodge/Item/Ammo.hs 87;" f
batteryPack src/Dodge/Item/Equipment.hs 55;" f
@@ -3534,6 +3531,7 @@ beltMag src/Dodge/Item/Ammo.hs 47;" f
bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 216;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 112;" f
bgunSound src/Dodge/HeldUse.hs 252;" f
bindFBO src/Render.hs 244;" f
bingate src/Dodge/Item/Scope.hs 110;" f
black src/Color.hs 27;" f
@@ -3561,7 +3559,7 @@ blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 366;" f
blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f
blowTorch src/Dodge/Item/Held/SprayGuns.hs 51;" f
blue src/Color.hs 16;" f
blunderbuss src/Dodge/Item/Held/Cone.hs 27;" f
blunderbuss src/Dodge/Item/Held/Cone.hs 28;" f
boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f
@@ -3590,7 +3588,7 @@ bulletModule src/Dodge/Item/Scope.hs 118;" f
bulletPayloadModule src/Dodge/Item/Scope.hs 132;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 117;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f
burstRifle src/Dodge/Item/Held/Cane.hs 83;" f
burstRifle src/Dodge/Item/Held/Cane.hs 82;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
@@ -3795,14 +3793,14 @@ createItemYou src/Dodge/Inventory/Add.hs 95;" f
createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 90;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 738;" f
createProjectileR src/Dodge/HeldUse.hs 703;" f
createProjectile src/Dodge/HeldUse.hs 826;" f
createProjectileR src/Dodge/HeldUse.hs 791;" f
createShell src/Dodge/Projectile/Create.hs 22;" f
createShieldWall src/Dodge/Euse.hs 107;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 10;" f
creatureShootLaser src/Dodge/HeldUse.hs 432;" f
creatureShootLaser src/Dodge/HeldUse.hs 526;" f
creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 52;" f
creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 73;" f
creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 62;" f
@@ -3995,7 +3993,7 @@ detector src/Dodge/Item/Held/Utility.hs 41;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 445;" f
detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f
detectorInfo src/Dodge/Item/Info.hs 216;" f
determineProjectileTracking src/Dodge/HeldUse.hs 686;" f
determineProjectileTracking src/Dodge/HeldUse.hs 774;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 54;" f
diffAngles src/Geometry.hs 204;" f
@@ -4060,9 +4058,9 @@ doDrag src/Dodge/Update/Input/InGame.hs 107;" f
doDrawing src/Dodge/Render.hs 35;" f
doDrawing' src/Dodge/Render.hs 46;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 625;" f
doGenFloat src/Dodge/HeldUse.hs 713;" f
doGravityPU src/Dodge/Projectile/Update.hs 50;" f
doHeldUseEffect src/Dodge/HeldUse.hs 128;" f
doHeldUseEffect src/Dodge/HeldUse.hs 129;" f
doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 28;" f
@@ -4113,7 +4111,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f
doWdCrCr src/Dodge/CreatureEffect.hs 12;" f
doWdP2f src/Dodge/WdP2f.hs 12;" f
doWdWd src/Dodge/WorldEffect.hs 28;" f
doWeaponRepetitions src/Dodge/HeldUse.hs 152;" f
doWeaponRepetitions src/Dodge/HeldUse.hs 153;" f
doWorldEvents src/Dodge/Update.hs 425;" f
doWorldPos src/Dodge/WorldPos.hs 7;" f
door src/Dodge/Room/Door.hs 13;" f
@@ -4256,7 +4254,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f
droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f
dropByState src/Dodge/Creature/State.hs 130;" f
dropExcept src/Dodge/Creature/Action.hs 167;" f
dropInventoryPath src/Dodge/HeldUse.hs 816;" f
dropInventoryPath src/Dodge/HeldUse.hs 904;" f
dropItem src/Dodge/Creature/Action.hs 173;" f
dropper src/Dodge/Item/Scope.hs 76;" f
drumMag src/Dodge/Item/Ammo.hs 42;" f
@@ -4360,7 +4358,7 @@ flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 379;" f
flareCircleAt src/Dodge/HeldUse.hs 296;" f
flareCircleAt src/Dodge/HeldUse.hs 390;" f
flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f
flatLookupItems src/Dodge/Combine.hs 38;" f
flatShield src/Dodge/Item/Held/Utility.hs 20;" f
@@ -4420,16 +4418,16 @@ fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f
fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f
fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f
g src/ShortShow.hs 33;" f
gLauncher src/Dodge/Item/Held/Launcher.hs 30;" f
gLauncher src/Dodge/Item/Held/Launcher.hs 33;" f
gRandify src/Dodge/Randify.hs 11;" f
gadgetEffect src/Dodge/HeldUse.hs 40;" f
gadgetEffect src/Dodge/HeldUse.hs 41;" f
gameOverMenu src/Dodge/Menu.hs 187;" f
gameRoomFromRoom src/Dodge/Layout.hs 161;" f
gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 158;" f
gameplayMenu src/Dodge/Menu.hs 134;" f
gameplayMenuOptions src/Dodge/Menu.hs 137;" f
gasCreate src/Dodge/HeldUse.hs 622;" f
gasCreate src/Dodge/HeldUse.hs 710;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -4443,10 +4441,10 @@ geqConstr src/SameConstr.hs 21;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 132;" f
getArguments src/Dodge/Update/Scroll.hs 176;" f
getArguments' src/Dodge/Update/Scroll.hs 164;" f
getAttachedSFLink src/Dodge/HeldUse.hs 366;" f
getAttachedSFLink src/Dodge/HeldUse.hs 460;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 112;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulletType src/Dodge/HeldUse.hs 501;" f
getBulletType src/Dodge/HeldUse.hs 595;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 515;" f
getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f
@@ -4456,17 +4454,17 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 14;" f
getDamageCoding src/Dodge/Terminal.hs 177;" f
getDistortions src/Dodge/Render.hs 383;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 45;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 731;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 819;" f
getInventoryPath src/Dodge/Inventory/Path.hs 8;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 141;" f
getLaserColor src/Dodge/HeldUse.hs 312;" f
getLaserDamage src/Dodge/HeldUse.hs 309;" f
getLaserPhaseV src/Dodge/HeldUse.hs 306;" f
getLaserColor src/Dodge/HeldUse.hs 406;" f
getLaserDamage src/Dodge/HeldUse.hs 403;" f
getLaserPhaseV src/Dodge/HeldUse.hs 400;" f
getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f
getMenuMouseContext src/Dodge/Update.hs 385;" f
getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 723;" f
getPJStabiliser src/Dodge/HeldUse.hs 811;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 8;" f
getRootItemBounds src/Dodge/Render/HUD.hs 94;" f
@@ -4500,7 +4498,7 @@ goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f
goToTarget src/Dodge/Creature/ReaderUpdate.hs 136;" f
grahamEliminate src/Geometry/Polygon.hs 125;" f
grahamScan src/Geometry/Polygon.hs 116;" f
grapeCannon src/Dodge/Item/Held/Cone.hs 36;" f
grapeCannon src/Dodge/Item/Held/Cone.hs 37;" f
graphToEdges src/Dodge/Graph.hs 35;" f
graphToIncidence src/Dodge/Graph.hs 40;" f
graphicsMenu src/Dodge/Menu.hs 165;" f
@@ -4525,7 +4523,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f
halfHeight src/Dodge/Base/Window.hs 48;" f
halfWidth src/Dodge/Base/Window.hs 48;" f
haltSound src/Dodge/SoundLogic.hs 38;" f
hammerCheck src/Dodge/HeldUse.hs 79;" f
hammerCheck src/Dodge/HeldUse.hs 80;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 39;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -4552,9 +4550,10 @@ healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 378;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 74;" f
healthTest src/Dodge/Room/LasTurret.hs 95;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldEffect src/Dodge/HeldUse.hs 60;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 118;" f
heldEffectNoHammerCheck src/Dodge/HeldUse.hs 68;" f
heldAimStance src/Dodge/Item/AimStance.hs 16;" f
heldEffect src/Dodge/HeldUse.hs 61;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 119;" f
heldEffectNoHammerCheck src/Dodge/HeldUse.hs 69;" f
heldInfo src/Dodge/Item/Info.hs 84;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 77;" f
heldItemOrient2D src/Dodge/Item/HeldOffset.hs 26;" f
@@ -4676,7 +4675,7 @@ invertIntMap src/Multiset.hs 67;" f
invertInventoryToMap src/Dodge/Combine.hs 56;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 23;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 322;" f
isAmmoIntLink src/Dodge/HeldUse.hs 416;" f
isAnimate src/Dodge/Creature/Test.hs 138;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isConnected src/Dodge/Inventory/Swap.hs 74;" f
@@ -4709,7 +4708,7 @@ itemBaseName src/Dodge/Item/Display.hs 57;" f
itemBlips src/Dodge/RadarSweep.hs 93;" f
itemCombinations src/Dodge/Combine/Combinations.hs 55;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f
itemDetectorEffect src/Dodge/HeldUse.hs 372;" f
itemDetectorEffect src/Dodge/HeldUse.hs 466;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 47;" f
itemEquipPict src/Dodge/Item/Draw.hs 16;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 82;" f
@@ -4814,7 +4813,7 @@ linksAndPath src/Dodge/Room/Path.hs 39;" f
linksAndPath' src/Dodge/Room/Path.hs 44;" f
linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f
listConfig src/Dodge/Menu.hs 216;" f
listControls src/Dodge/Menu.hs 229;" f
listControls src/Dodge/Menu.hs 228;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f
listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f
listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" f
@@ -4827,7 +4826,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 393;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 27;" f
loadMuzzle src/Dodge/HeldUse.hs 232;" f
loadMuzzle src/Dodge/HeldUse.hs 326;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4882,8 +4881,8 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 69;" f
makeBlockDebris src/Dodge/Block/Debris.hs 28;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 573;" f
makeBullet' src/Dodge/HeldUse.hs 559;" f
makeBullet src/Dodge/HeldUse.hs 661;" f
makeBullet' src/Dodge/HeldUse.hs 647;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f
@@ -4909,7 +4908,7 @@ makeFragBullets src/Dodge/Bullet.hs 122;" f
makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f
makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 34;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 254;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 348;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4965,11 +4964,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 124;" f
mcSPic src/Dodge/Render/ShapePicture.hs 120;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 87;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 119;" f
mcShootAuto src/Dodge/HeldUse.hs 657;" f
mcShootLaser src/Dodge/HeldUse.hs 649;" f
mcShootAuto src/Dodge/HeldUse.hs 745;" f
mcShootLaser src/Dodge/HeldUse.hs 737;" f
mcTriggerVal src/Dodge/Machine/Update.hs 93;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f
mcUseHeld src/Dodge/HeldUse.hs 592;" f
mcUseHeld src/Dodge/HeldUse.hs 680;" f
mcUseItem src/Dodge/Machine/Update.hs 79;" f
medkit src/Dodge/Item/Consumable.hs 8;" f
megaBattery src/Dodge/Item/Ammo.hs 76;" f
@@ -5010,7 +5009,7 @@ minCrIXOn src/Dodge/Zoning/Creature.hs 46;" f
minOn src/FoldableHelp.hs 35;" f
mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 346;" f
miniGunCrit src/Dodge/Creature.hs 62;" f
miniGunX src/Dodge/Item/Held/Cane.hs 96;" f
miniGunX src/Dodge/Item/Held/Cane.hs 95;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 357;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 352;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 548;" f
@@ -5062,7 +5061,7 @@ multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 34;" f
multiLookupTrieI src/SimpleTrie.hs 43;" f
muout src/Dodge/RoomLink.hs 129;" f
muzFlareAt src/Dodge/HeldUse.hs 282;" f
muzFlareAt src/Dodge/HeldUse.hs 376;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f
@@ -5407,8 +5406,8 @@ qToV3 src/Quaternion.hs 48;" f
quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f
quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f
quitCommand src/Dodge/Terminal.hs 57;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 12;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 35;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 39;" f
rToOnward src/Dodge/Cleat.hs 21;" f
radBounds src/Dodge/Room/Foreground.hs 154;" f
radToDeg src/Geometry/Vector.hs 122;" f
@@ -5451,6 +5450,7 @@ randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f
ratIntersectLineLine src/Geometry/Intersect.hs 195;" f
readSaveSlot src/Dodge/Save.hs 45;" f
recoilAmount src/Dodge/HeldUse.hs 204;" f
rectNSWE src/Geometry/Polygon.hs 13;" f
rectVV src/Geometry/Polygon.hs 38;" f
rectWH src/Geometry/Polygon.hs 17;" f
@@ -5477,7 +5477,7 @@ rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteDetonator src/Dodge/Item/Scope.hs 145;" f
remoteScreen src/Dodge/Item/Scope.hs 140;" f
removeAimPosture src/Dodge/Creature/YourControl.hs 141;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 488;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 582;" f
removeDot src/ShortShow.hs 29;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeShieldWall src/Dodge/Euse.hs 125;" f
@@ -5519,7 +5519,7 @@ rezInvBox src/Dodge/Room/RezBox.hs 134;" f
rezText src/Dodge/Story.hs 4;" f
rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f
rifle src/Dodge/Item/Held/Cane.hs 55;" f
rifle src/Dodge/Item/Held/Cane.hs 54;" f
right src/DoubleStack.hs 16;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 238;" f
rightPad src/Padding.hs 19;" f
@@ -5756,14 +5756,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 308;" f
shineTorch src/Dodge/Creature/State.hs 350;" f
shootBullet src/Dodge/HeldUse.hs 548;" f
shootBullet src/Dodge/HeldUse.hs 637;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 457;" f
shootLaser src/Dodge/HeldUse.hs 551;" f
shootOutPassage src/Dodge/Room/RezBox.hs 74;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 674;" f
shootTeslaArc src/Dodge/HeldUse.hs 762;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 409;" f
shootTractorBeam src/Dodge/HeldUse.hs 503;" f
shootersRoom src/Dodge/Room/Room.hs 315;" f
shootersRoom' src/Dodge/Room/Room.hs 280;" f
shootersRoom1 src/Dodge/Room/Room.hs 305;" f
@@ -6063,7 +6063,7 @@ torqueCr src/Dodge/WorldEffect.hs 67;" f
torso src/Dodge/Creature/Picture.hs 105;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 421;" f
tractorBeamAt src/Dodge/HeldUse.hs 515;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 68;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 429;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -6304,26 +6304,26 @@ useBulletPayload src/Dodge/Bullet.hs 111;" f
useC src/Dodge/Cuse.hs 8;" f
useC' src/Dodge/Cuse.hs 13;" f
useE src/Dodge/Euse.hs 34;" f
useGasParams src/Dodge/HeldUse.hs 597;" f
useGasParams src/Dodge/HeldUse.hs 685;" f
useHotkey src/Dodge/Creature/YourControl.hs 64;" f
useInventoryPath src/Dodge/HeldUse.hs 841;" f
useInventoryPath src/Dodge/HeldUse.hs 929;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 326;" f
useLoadedAmmo src/Dodge/HeldUse.hs 420;" f
useLocation src/Dodge/Creature/Impulse/UseItem.hs 66;" f
useMagShield src/Dodge/Euse.hs 46;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 807;" f
useRewindGun src/Dodge/HeldUse.hs 895;" f
useRewindGun src/Dodge/Luse.hs 40;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useStopWatch src/Dodge/HeldUse.hs 788;" f
useStopWatch src/Dodge/HeldUse.hs 876;" f
useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/HeldUse.hs 94;" f
useTimeCheck src/Dodge/HeldUse.hs 95;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 796;" f
useTimeScrollGun src/Dodge/HeldUse.hs 884;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f
@@ -6358,7 +6358,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f
volleyGun src/Dodge/Item/Held/Cane.hs 31;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 340;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 387;" f
walkNozzle src/Dodge/HeldUse.hs 481;" f
walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 98;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 51;" f