Remove external corpses, handle them as creatures

This commit is contained in:
2025-09-25 09:31:58 +01:00
parent fcb02850d0
commit 23f61081cf
33 changed files with 184 additions and 159 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
Seed: 1077410572580550018
Seed: 5056493674985567966
Room layout (compact):
0,1,2,3
|
+2 -2
View File
@@ -1,4 +1,4 @@
Generating level with seed 1077410572580550018
Generating level with seed 5056493674985567966
After 1 attempt(s), Successful generation of level with seed 1077410572580550018
After 1 attempt(s), Successful generation of level with seed 5056493674985567966
22 rooms in total
+1 -1
View File
@@ -1,4 +1,4 @@
Seed: 1077410572580550018
Seed: 5056493674985567966
0:TutStartRez
|
1:corDoor
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
1077410572580550018
5056493674985567966
+12 -10
View File
@@ -18,19 +18,20 @@ updateBarreloid = \case
PlainBarrel -> updateBarrel
updateExpBarrel :: [Point2] -> Creature -> World -> World
updateExpBarrel ps cr w
| cr ^. crHP > 0 =
updateExpBarrel ps cr w = case cr ^. crHP of
HP x | x > 0 ->
w
& hiss
& cWorld . lWorld . creatures . ix (_crID cr) %~ damsToExpBarrel damages
& cWorld . lWorld . creatures . ix (_crID cr) . crHP
& cWorld . lWorld . creatures . ix (_crID cr) . crHP . _HP
-~ length (_piercedPoints . _barrelType $ _crType cr)
& cWorld . lWorld . creatures . ix (_crID cr) . crDamage .~ mempty
& flip (foldl' f) ps
| otherwise =
HP _ ->
w
& makeExplosionAt ((cr ^. crPos) `v2z` 20) 0
& cWorld . lWorld . creatures . at (_crID cr) .~ Nothing
& cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ CrIsGibs
_ -> w
where
f w' p = makeSpark NormalSpark (p + normalizeV p + cr ^. crPos) (argV p) w'
damages = cr ^. crDamage
@@ -39,9 +40,10 @@ updateExpBarrel ps cr w
| otherwise = soundContinue (BarrelHiss (_crID cr)) (_crPos cr) foamSprayLoopS (Just 1)
updateBarrel :: Creature -> World -> World
updateBarrel cr
| _crHP cr > 0 = doDamage (cr ^. crID)
| otherwise = cWorld . lWorld . creatures . at (_crID cr) .~ Nothing
updateBarrel cr = case cr ^. crHP of
HP x | x > 0 -> doDamage (cr ^. crID)
HP _ -> cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ CrIsGibs
_ -> id
damsToExpBarrel :: [Damage] -> Creature -> Creature
damsToExpBarrel = flip $ foldl' damToExpBarrel
@@ -49,8 +51,8 @@ damsToExpBarrel = flip $ foldl' damToExpBarrel
damToExpBarrel :: Creature -> Damage -> Creature
damToExpBarrel cr dm = case dm of
Piercing x p _ ->
cr & crHP -~ div x 200
cr & crHP . _HP -~ div x 200
& crType . barrelType . piercedPoints .:~ (p - _crPos cr)
Poison{} -> cr
Sparking{} -> cr
_ -> cr & crHP -~ fromMaybe 0 (dm ^? dmAmount)
_ -> cr & crHP . _HP -~ fromMaybe 0 (dm ^? dmAmount)
+2 -2
View File
@@ -3,5 +3,5 @@ import Dodge.Data.Corpse
import ShapePicture
-- not currently used, too simple
drawCorpse :: Corpse -> SPic
drawCorpse = _cpSPic
--drawCorpse :: Corpse -> SPic
--drawCorpse = _cpSPic
+18 -16
View File
@@ -4,19 +4,21 @@ import Dodge.Creature.Radius
import Dodge.Creature.Shape
import Control.Lens
import Dodge.Creature.Picture
import Dodge.Data.Corpse
--import Dodge.Data.Corpse
import Dodge.Data.Creature
import Geometry
import Shape
import ShapePicture
makeCorpse :: Creature -> Corpse
--makeCorpse :: Creature -> Corpse
makeCorpse :: Creature -> SPic
makeCorpse cr =
defaultCorpse
& cpPos .~ _crPos cr
& cpDir .~ _crDir cr
& cpSPic
.~ noPic
-- defaultCorpse
-- & cpPos .~ _crPos cr
-- & cpDir .~ _crDir cr
-- & cpSPic
-- .~
noPic
( scaleSH (V3 crsize crsize crsize) $
mconcat
[ colorSH (_skinHead cskin) $ deadScalp cr
@@ -29,12 +31,12 @@ makeCorpse cr =
crsize = 0.1 * crRad (cr ^. crType)
rotmdir = rotateSH (_crMvDir cr - _crDir cr)
defaultCorpse :: Corpse
defaultCorpse =
Corpse
{ _cpID = 0
, _cpPos = 0
, _cpDir = 0
, _cpSPic = mempty
, _cpRes = NoResurrection
}
--defaultCorpse :: Corpse
--defaultCorpse =
-- Corpse
-- { _cpID = 0
-- , _cpPos = 0
-- , _cpDir = 0
-- , _cpSPic = mempty
-- , _cpRes = NoResurrection
-- }
+2 -2
View File
@@ -56,7 +56,7 @@ import Picture
spawnerCrit :: Creature
spawnerCrit =
defaultCreature
& crHP .~ 300
& crHP .~ HP 300
-- & crInv .~ IM.empty
-- & crType . skinUpper .~ lightx4 blue
@@ -97,7 +97,7 @@ startCr =
& crDir .~ pi / 2
& crMvDir .~ pi / 2
& crID .~ 0
& crHP .~ 10000
& crHP .~ HP 10000
& crInv .~ mempty
& crFaction .~ PlayerFaction
-- & crMvType .~ MvWalking yourDefaultSpeed
+1 -1
View File
@@ -15,7 +15,7 @@ flockArmourChaseCrit :: Creature
flockArmourChaseCrit =
defaultCreature
{ _crName = "armourChaseCrit"
, _crHP = 300
, _crHP = HP 300
, _crInv = mempty
-- IM.fromList
-- [ --(0, frontArmour)
+1 -1
View File
@@ -13,7 +13,7 @@ autoCrit :: Creature
autoCrit =
defaultCreature
{ --_crInv = IM.fromList [(0, autoRifle)]
_crHP = 300
_crHP = HP 300
-- , _crMvType = defaultAimMvType
}
-- & crType . skinUpper .~ lightx4 red
+2 -2
View File
@@ -14,7 +14,7 @@ import Picture
smallChaseCrit :: Creature
smallChaseCrit =
chaseCrit
{ _crHP = 1
{ _crHP = HP 1
, _crInv = mempty
}
@@ -28,7 +28,7 @@ chaseCrit :: Creature
chaseCrit =
defaultCreature
{ _crName = "chaseCrit"
, _crHP = 150
, _crHP = HP 150
, _crInv = mempty
, _crFaction = ColorFaction green
, _crVocalization = chaseCritVocalization
+1 -1
View File
@@ -33,5 +33,5 @@ applyPiercingDamage cr dm w
damageHP :: Creature -> Int -> World -> World
damageHP cr x =
(cWorld . lWorld . creatures . ix (_crID cr) . crHP -~ x)
(cWorld . lWorld . creatures . ix (_crID cr) . crHP . _HP -~ x)
. (cWorld . lWorld . creatures . ix (_crID cr) . crPain +~ x)
+2 -2
View File
@@ -17,7 +17,7 @@ import Dodge.Default
barrel :: Creature
barrel =
defaultInanimate
{ _crHP = 500
{ _crHP = HP 500
, _crType = BarrelCrit PlainBarrel
-- , _crInv = IM.empty -- IM.fromList [(0,frontArmour)]
}
@@ -25,7 +25,7 @@ barrel =
explosiveBarrel :: Creature
explosiveBarrel =
defaultInanimate
{ _crHP = 400
{ _crHP = HP 400
, _crType = BarrelCrit (ExplosiveBarrel [])
-- , _crInv = IM.empty -- IM.fromList [(0,frontArmour)]
}
+1 -1
View File
@@ -13,7 +13,7 @@ colorLamp ::
Creature
colorLamp col h =
defaultInanimate
{ _crHP = 100
{ _crHP = HP 100
, _crType = LampCrit h col Nothing
-- , _crRad = 3
}
+1 -1
View File
@@ -13,7 +13,7 @@ launcherCrit :: Creature
launcherCrit =
defaultCreature
{ -- _crInv = IM.fromList [(0, rLauncher)]
_crHP = 300
_crHP = HP 300
}
-- & crType . skinUpper .~ lightx4 red
-- & crType . humanoidAI .~ LauncherAI
+1 -1
View File
@@ -13,7 +13,7 @@ ltAutoCrit :: Creature
ltAutoCrit =
defaultCreature
{ --_crInv = IM.fromList [(0, autoPistol)]
_crHP = 500
_crHP = HP 500
}
-- & crType .~ LtAutoCrit
-- & crType . humanoidAI .~ LtAutoAI
+1 -1
View File
@@ -12,7 +12,7 @@ spreadGunCrit :: Creature
spreadGunCrit =
defaultCreature
{ --_crInv = IM.fromList [(0, bangStick 6)]
_crHP = 500
_crHP = HP 500
}
-- & crType . humanoidAI .~ SpreadGunAI
-- & crType . skinUpper .~ lightx4 red
+1 -1
View File
@@ -10,7 +10,7 @@ import Picture
swarmCrit :: Creature
swarmCrit =
defaultCreature
{ _crHP = 1
{ _crHP = HP 1
-- , _crRad = 2
, _crFaction = ColorFaction yellow
}
+39 -26
View File
@@ -5,7 +5,7 @@ import Color
import qualified Data.IntMap.Strict as IM
import qualified Data.List as List
import Dodge.Barreloid
import Dodge.Base.NewID
--import Dodge.Base.NewID
import Dodge.Corpse.Make
import Dodge.Creature.Action
import Dodge.Creature.Radius
@@ -30,7 +30,8 @@ import ShapePicture.Data
-- allow for knockbacks etc to be determined as well as intended movements
updateCreature :: Creature -> World -> World
updateCreature cr
| _crZ cr < negate 100 = (tocr . crHP .~ negate 1) . destroyAllInvItems cr
| null (cr ^? crHP . _HP) = id
| _crZ cr < negate 100 = (tocr . crHP .~ CrIsPitted) . destroyAllInvItems cr
| _crZ cr < 0 = (tocr . crZVel -~ 0.5) . (tocr . crZ +~ _crZVel cr)
| otherwise = updateCreature' cr
where
@@ -69,44 +70,56 @@ checkDeath :: Int -> World -> World
checkDeath cid w = maybe id checkDeath' (w ^? cWorld . lWorld . creatures . ix cid) w
checkDeath' :: Creature -> World -> World
checkDeath' cr w
| _crHP cr > 0 = w & tocr . crDamage .~ []
| _crHP cr <= -200 = w
& dropAll cr -- the order of
& destroyCreature cr -- these is important
& stopSoundFrom (CrWeaponSound (_crID cr) 0)
& addCrGibs cr
| _crHP cr > -200 && _crDeathTimer cr < 5 = w
checkDeath' cr w = case cr ^. crHP of
HP x | x > 0 -> w & tocr . crDamage .~ []
HP x | x > -200 && _crDeathTimer cr < 5 -> w
& tocr . crDamage .~ []
& tocr . crDeathTimer +~ 1
| otherwise = w
HP x | x > -200 -> w
& dropAll cr -- the order of
& removecr -- these is important
-- & removecr -- these is important
& stopSoundFrom (CrWeaponSound (_crID cr) 0)
& corpseOrGib cr
HP _ -> w
& dropAll cr -- the order of
& tocr . crHP .~ CrIsGibs
-- & destroyCreature cr -- these is important
& stopSoundFrom (CrWeaponSound (_crID cr) 0)
& addCrGibs cr
_ -> w
-- | otherwise = w
-- & dropAll cr -- the order of
-- & removecr -- these is important
-- & stopSoundFrom (CrWeaponSound (_crID cr) 0)
-- & corpseOrGib cr
where
tocr = cWorld . lWorld . creatures . ix (_crID cr)
removecr
| _crID cr == 0 = id
-- hack to get around player creature being killed but left with more than 0 hp
| otherwise = cWorld . lWorld . creatures . at (_crID cr) .~ Nothing
-- removecr
-- | _crID cr == 0 = id
-- -- hack to get around player creature being killed but left with more than 0 hp
-- | otherwise = cWorld . lWorld . creatures . at (_crID cr) .~ Nothing
destroyCreature :: Creature -> World -> World
destroyCreature cr
| _crID cr == 0 = id
-- cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ 0
-- hack to get around player creature being killed but left with more than 0 hp
| otherwise = cWorld . lWorld . creatures . at (_crID cr) .~ Nothing
--destroyCreature :: Creature -> World -> World
--destroyCreature cr
-- | _crID cr == 0 = id
-- -- cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ 0
-- -- hack to get around player creature being killed but left with more than 0 hp
-- | otherwise = cWorld . lWorld . creatures . at (_crID cr) .~ Nothing
-- could look at the amount of damage here (given by maxDamage) too
corpseOrGib :: Creature -> World -> World
corpseOrGib cr w = w & case cr ^? crDamage . to maxDamageType . _Just . _1 of
Just CookingDamage -> addcorpse (thecorpse & cpSPic %~ scorchSPic)
Just PoisonDamage -> addcorpse (thecorpse & cpSPic %~ poisonSPic)
Just CookingDamage -> -- addcorpse (thecorpse & cpSPic %~ scorchSPic)
sethp (CrIsCorpse $ scorchSPic thecorpse)
Just PoisonDamage -> --addcorpse (thecorpse & cpSPic %~ poisonSPic)
sethp (CrIsCorpse $ poisonSPic thecorpse)
Just PhysicalDamage | _crPain cr > 200 -> addCrGibs cr
_ -> addcorpse thecorpse
. sethp CrIsGibs
_ -> -- addcorpse thecorpse
sethp (CrIsCorpse thecorpse)
where
addcorpse ctype = plNew (cWorld . lWorld . corpses) cpID ctype
sethp x = cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ x
-- addcorpse ctype = plNew (cWorld . lWorld . corpses) cpID ctype
thecorpse = makeCorpse cr
scorchSPic :: SPic -> SPic
+14 -14
View File
@@ -11,18 +11,18 @@ import Data.Aeson.TH
import Geometry.Data
import ShapePicture.Data
data CorpseResurrection = NoResurrection
deriving (Eq, Ord, Show, Read) --Generic, Flat)
--data CorpseResurrection = NoResurrection
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
--
--data Corpse = Corpse
-- { _cpID :: Int
-- , _cpPos :: Point2
-- , _cpDir :: Float
-- , _cpSPic :: SPic
-- , _cpRes :: CorpseResurrection
-- }
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Corpse = Corpse
{ _cpID :: Int
, _cpPos :: Point2
, _cpDir :: Float
, _cpSPic :: SPic
, _cpRes :: CorpseResurrection
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Corpse
deriveJSON defaultOptions ''CorpseResurrection
deriveJSON defaultOptions ''Corpse
--makeLenses ''Corpse
--deriveJSON defaultOptions ''CorpseResurrection
--deriveJSON defaultOptions ''Corpse
+4 -2
View File
@@ -17,6 +17,7 @@ module Dodge.Data.Creature (
module Dodge.Data.Item.Use.Consumption.LoadAction,
) where
import ShapePicture.Data
import NewInt
import Dodge.Data.Item.Use.Consumption.LoadAction
import Dodge.Data.Equipment.Misc
@@ -45,7 +46,7 @@ data Creature = Creature
, _crMvAim :: Float
, _crType :: CreatureType
, _crID :: Int
, _crHP :: Int
, _crHP :: CrHP
, _crInv :: NewIntMap InvInt Int
, _crManipulation :: Manipulation
, _crEquipment :: M.Map EquipSite (NewInt ItmInt)
@@ -68,8 +69,9 @@ data Creature = Creature
data CrHP
= HP Int
| CrIsCorpse
| CrIsCorpse SPic
| CrIsGibs
| CrIsPitted
data Intention = Intention
{ _targetCr :: Maybe Creature
+1 -1
View File
@@ -137,7 +137,7 @@ data LWorld = LWorld
, _pressPlates :: IM.IntMap PressPlate
, _buttons :: IM.IntMap Button
, _foregroundShapes :: IM.IntMap ForegroundShape
, _corpses :: IM.IntMap Corpse
-- , _corpses :: IM.IntMap Corpse
, _lightSources :: IM.IntMap LightSource
, _lights :: [LSParam]
, _seenLocations :: IM.IntMap (WdP2, String)
+1 -1
View File
@@ -417,7 +417,7 @@ drawCrInfo cfig w =
( _crPos cr
, catMaybes
-- [fmap show $ ap ^? crGoal
[ fpreShow "crHP" $ cr ^? crHP
[ fpreShow "crHP" $ cr ^? crHP . _HP
, fpreShow "crStrategy" $ ap ^? apStrategy
, fmap (("crPos....." ++) . shortShow) $ cr ^? crPos
, fpreShow "cpVigilance" $ cr ^? crPerception . cpVigilance
+2 -1
View File
@@ -84,7 +84,8 @@ applySetTerminalString :: String -> Universe -> Universe
applySetTerminalString [] = id
applySetTerminalString var = case key' of
"" -> showTerminalError ("set " ++ var)
"hp" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crHP .~ round (fromJust val')
"hp" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crHP . _HP
.~ round (fromJust val')
-- "invcap" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ round (fromJust val')
-- "mass" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMass .~ fromJust val'
-- "mvspeed" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMvType . mvSpeed .~ fromJust val'
+1 -1
View File
@@ -23,7 +23,7 @@ defaultCreature =
, _crID = 1
, _crType = ChaseCrit {_meleeCooldown = 0}
-- , _crRad = 10
, _crHP = 100
, _crHP = HP 100
-- , _crMaxHP = 150
, _crInv = mempty
, _crManipulation = Manipulator SelNothing
+1 -1
View File
@@ -135,7 +135,7 @@ defaultLWorld =
, _delayedEvents = []
, _pressPlates = IM.empty
, _buttons = IM.empty
, _corpses = IM.empty
-- , _corpses = IM.empty
, _lightSources = IM.empty
, _lights = mempty
, _seenLocations =
+1 -1
View File
@@ -79,7 +79,7 @@ epText Nothing = " @NOT.EQP"
introScanValue :: Creature -> IntroScanType -> Either Int String
introScanValue cr = \case
HEALTH -> Left $ cr ^. crHP
HEALTH -> Left $ fromMaybe 0 $ cr ^? crHP . _HP
MAXHEALTH -> Left $ crMaxHP $ cr ^. crType
itemExternalValue :: Item -> World -> Creature -> Maybe (Either Int String)
+1 -1
View File
@@ -16,7 +16,7 @@ updateLampoid cr w = case cr ^?! crType . lampLSID of
in w & cWorld . lWorld . lightSources %~ IM.insert i (lsColPosID lcol (addZ h cpos) i)
& cWorld . lWorld . creatures . ix (_crID cr) . crType . lampLSID ?~ i
Just i
| _crHP cr < 0 ->
| cr ^?! crHP . _HP < 0 ->
w
-- & cWorld . lWorld . tempLightSources .:~ tlsTimeRadFunPos 20 150 (TLSFade 1 10) (addZ 20 cpos)
& cWorld . lWorld . worldEvents .:~ MakeTempLight
+2 -2
View File
@@ -201,12 +201,12 @@ sensorReqToString = \case
mcProxTest :: World -> ProximityRequirement -> Bool
mcProxTest w = \case
RequireHealth x -> _crHP cr >= x
RequireHealth x -> fromMaybe 0 (cr ^? crHP . _HP) >= x
RequireEquipment ct ->
any
(\itm -> _itType itm == ct)
((\k -> w ^?! cWorld . lWorld . items . ix k) <$> _crInv cr)
RequireDeadCreatures is -> all (\x -> _crHP x < 0)
RequireDeadCreatures is -> all (\x -> null (x ^? crHP . _HP))
(IM.restrictKeys (w ^. cWorld . lWorld . creatures) (IS.fromList is))
where
cr = you w
+8 -6
View File
@@ -28,7 +28,7 @@ worldSPic cfig u =
<> foldup drawPulseBall (filtOn _pbPos _pulseBalls)
<> foldup (shiftDraw _blPos _blDir (drawBlock . _blDraw)) (filtOn _blPos _blocks)
<> foldup (shiftDraw _fsPos _fsDir (const _fsSPic)) (filtOn _fsPos _foregroundShapes)
<> foldup (shiftDraw' _cpPos _cpDir _cpSPic) (filtOn _cpPos _corpses)
-- <> foldup (shiftDraw' _cpPos _cpDir _cpSPic) (filtOn _cpPos _corpses)
<> foldup (drawCreature (u ^. uvWorld . cWorld . lWorld . items))
(filtOn _crPos _creatures)
<> foldup (Prelude.uncurry floorItemSPic) (IM.intersectionWith (,) (u^.uvWorld.cWorld.lWorld.items) (filtOn _flItPos _floorItems))
@@ -62,6 +62,8 @@ drawPulseBall pb =
drawCreature :: IM.IntMap Item -> Creature -> SPic
drawCreature m cr = translateSPz (_crZ cr) . uncurryV translateSPxy (_crPos cr) . rotateSP (_crDir cr) $
case cr ^. crType of
_ | CrIsCorpse sp <- cr ^. crHP -> sp
_ | null (cr ^? crHP . _HP) -> mempty
BarrelCrit{} -> barrelShape
LampCrit{_lampHeight = h} -> lampCrSPic h
_ -> basicCrPict m cr
@@ -82,11 +84,11 @@ shiftDraw fpos fdir fdraw x =
. rotateSP (fdir x)
$ fdraw x x
shiftDraw' :: (a -> Point2) -> (a -> Float) -> (a -> SPic) -> a -> SPic
shiftDraw' fpos fdir fdraw x =
uncurryV translateSPxy (fpos x)
. rotateSP (fdir x)
$ fdraw x
--shiftDraw' :: (a -> Point2) -> (a -> Float) -> (a -> SPic) -> a -> SPic
--shiftDraw' fpos fdir fdraw x =
-- uncurryV translateSPxy (fpos x)
-- . rotateSP (fdir x)
-- $ fdraw x
cullPoint :: Config -> World -> Point2 -> Bool
cullPoint cfig w p
+1 -1
View File
@@ -759,7 +759,7 @@ checkEndGame uv = case w ^? timeFlow . respawnDelay of
& uvWorld . timeFlow .~ NormalTimeFlow
& uvWorld %~ respawn
Just _ -> uv & uvWorld . timeFlow . respawnDelay -~ 1
_ | _crHP (you w) < 1 -> uv & uvWorld . timeFlow .~ RespawnDelay 50
_ | null (you w ^? crHP . _HP) -> uv & uvWorld . timeFlow .~ RespawnDelay 50
_ -> uv
where
w = _uvWorld uv
+56 -53
View File
@@ -15,7 +15,7 @@
<$> src/Dodge/Data/ActionPlan.hs 203;" o
<$> src/Dodge/Data/CWorld.hs 47;" o
<$> src/Dodge/Data/Camera.hs 39;" o
<$> src/Dodge/Data/Creature.hs 81;" o
<$> src/Dodge/Data/Creature.hs 89;" o
<$> src/Dodge/Data/LWorld.hs 183;" o
<$> src/Dodge/Data/Terminal.hs 70;" o
ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C
@@ -264,12 +264,16 @@ CrGroup src/Dodge/Data/Creature/State.hs 25;" t
CrGroupID src/Dodge/Data/Creature/State.hs 31;" C
CrGroupParams src/Dodge/Data/CrGroupParams.hs 14;" t
CrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" t
CrHP src/Dodge/Data/Creature.hs 70;" t
CrHitSound src/Dodge/Data/SoundOrigin.hs 32;" C
CrID src/Dodge/Data/CrWlID.hs 12;" C
CrImp src/Dodge/Data/CreatureEffect.hs 23;" t
CrInt src/Dodge/Data/Item/Location.hs 21;" t
CrIsAiming src/Dodge/Data/CreatureEffect.hs 41;" C
CrIsAnimate src/Dodge/Data/CreatureEffect.hs 42;" C
CrIsCorpse src/Dodge/Data/Creature.hs 72;" C
CrIsGibs src/Dodge/Data/Creature.hs 73;" C
CrIsPitted src/Dodge/Data/Creature.hs 74;" C
CrMouth src/Dodge/Data/SoundOrigin.hs 18;" C
CrMvType src/Dodge/Data/Creature/Misc.hs 28;" t
CrMvType src/Dodge/Data/Creature/Misc.hs 31;" C
@@ -289,7 +293,7 @@ CraftClust src/Dodge/Combine/Graph.hs 20;" C
CraftType src/Dodge/Data/Item/Combine.hs 50;" t
CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C
Creature src/Dodge/Data/Creature.hs 38;" t
Creature src/Dodge/Data/Creature.hs 39;" t
CreaturePart src/Dodge/Data/Wall/Structure.hs 17;" C
CreatureShape src/Dodge/Data/Creature/Misc.hs 76;" t
CreatureType src/Dodge/Data/Creature/Misc.hs 60;" t
@@ -533,6 +537,7 @@ HEATSENSOR src/Dodge/Data/Item/Combine.hs 83;" C
HELD src/Dodge/Data/Item/Combine.hs 17;" C
HOMINGMODULE src/Dodge/Data/Item/Combine.hs 102;" C
HOSE src/Dodge/Data/Item/Combine.hs 55;" C
HP src/Dodge/Data/Creature.hs 71;" C
HUD src/Dodge/Data/HUD.hs 31;" t
HalfRes src/Dodge/Data/Config.hs 97;" C
HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C
@@ -599,7 +604,7 @@ Institution src/Dodge/Data/Scenario.hs 42;" t
Int2 src/Geometry/Data.hs 21;" t
IntID src/Dodge/Data/Universe.hs 110;" t
IntImp src/Dodge/Data/CreatureEffect.hs 20;" t
Intention src/Dodge/Data/Creature.hs 69;" t
Intention src/Dodge/Data/Creature.hs 76;" t
IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
IntroScanSF src/Dodge/Data/ComposedItem.hs 21;" C
IntroScanType src/Dodge/Data/Item/Combine.hs 45;" t
@@ -1697,36 +1702,36 @@ _cpRes src/Dodge/Data/Corpse.hs 22;" f
_cpSPic src/Dodge/Data/Corpse.hs 21;" f
_cpVigilance src/Dodge/Data/Creature/Perception.hs 33;" f
_cpVision src/Dodge/Data/Creature/Perception.hs 36;" f
_crActionPlan src/Dodge/Data/Creature.hs 55;" f
_crDamage src/Dodge/Data/Creature.hs 52;" f
_crDeathTimer src/Dodge/Data/Creature.hs 64;" f
_crDir src/Dodge/Data/Creature.hs 43;" f
_crEquipment src/Dodge/Data/Creature.hs 51;" f
_crFaction src/Dodge/Data/Creature.hs 59;" f
_crGroup src/Dodge/Data/Creature.hs 60;" f
_crActionPlan src/Dodge/Data/Creature.hs 56;" f
_crDamage src/Dodge/Data/Creature.hs 53;" f
_crDeathTimer src/Dodge/Data/Creature.hs 65;" f
_crDir src/Dodge/Data/Creature.hs 44;" f
_crEquipment src/Dodge/Data/Creature.hs 52;" f
_crFaction src/Dodge/Data/Creature.hs 60;" f
_crGroup src/Dodge/Data/Creature.hs 61;" f
_crGroupCenter src/Dodge/Data/CrGroupParams.hs 17;" f
_crGroupID src/Dodge/Data/Creature/State.hs 29;" f
_crGroupIDs src/Dodge/Data/CrGroupParams.hs 16;" f
_crGroupParamID src/Dodge/Data/CrGroupParams.hs 15;" f
_crGroupUpdate src/Dodge/Data/CrGroupParams.hs 18;" f
_crHP src/Dodge/Data/Creature.hs 48;" f
_crID src/Dodge/Data/Creature.hs 47;" f
_crIntention src/Dodge/Data/Creature.hs 61;" f
_crInv src/Dodge/Data/Creature.hs 49;" f
_crManipulation src/Dodge/Data/Creature.hs 50;" f
_crMemory src/Dodge/Data/Creature.hs 57;" f
_crMvAim src/Dodge/Data/Creature.hs 45;" f
_crMvDir src/Dodge/Data/Creature.hs 44;" f
_crName src/Dodge/Data/Creature.hs 63;" f
_crOldPos src/Dodge/Data/Creature.hs 40;" f
_crPain src/Dodge/Data/Creature.hs 53;" f
_crPerception src/Dodge/Data/Creature.hs 56;" f
_crPos src/Dodge/Data/Creature.hs 39;" f
_crStance src/Dodge/Data/Creature.hs 54;" f
_crType src/Dodge/Data/Creature.hs 46;" f
_crVocalization src/Dodge/Data/Creature.hs 58;" f
_crZ src/Dodge/Data/Creature.hs 41;" f
_crZVel src/Dodge/Data/Creature.hs 42;" f
_crHP src/Dodge/Data/Creature.hs 49;" f
_crID src/Dodge/Data/Creature.hs 48;" f
_crIntention src/Dodge/Data/Creature.hs 62;" f
_crInv src/Dodge/Data/Creature.hs 50;" f
_crManipulation src/Dodge/Data/Creature.hs 51;" f
_crMemory src/Dodge/Data/Creature.hs 58;" f
_crMvAim src/Dodge/Data/Creature.hs 46;" f
_crMvDir src/Dodge/Data/Creature.hs 45;" f
_crName src/Dodge/Data/Creature.hs 64;" f
_crOldPos src/Dodge/Data/Creature.hs 41;" f
_crPain src/Dodge/Data/Creature.hs 54;" f
_crPerception src/Dodge/Data/Creature.hs 57;" f
_crPos src/Dodge/Data/Creature.hs 40;" f
_crStance src/Dodge/Data/Creature.hs 55;" f
_crType src/Dodge/Data/Creature.hs 47;" f
_crVocalization src/Dodge/Data/Creature.hs 59;" f
_crZ src/Dodge/Data/Creature.hs 42;" f
_crZVel src/Dodge/Data/Creature.hs 43;" f
_crZoning src/Dodge/Data/World.hs 48;" f
_creatureGroups src/Dodge/Data/LWorld.hs 101;" f
_creatures src/Dodge/Data/LWorld.hs 100;" f
@@ -2070,7 +2075,7 @@ _mtTree src/Dodge/Data/MetaTree.hs 12;" f
_musicData src/Data/Preload.hs 13;" f
_mvAimSpeed src/Dodge/Data/Creature/Misc.hs 35;" f
_mvSpeed src/Dodge/Data/Creature/Misc.hs 30;" f
_mvToPoint src/Dodge/Data/Creature.hs 71;" f
_mvToPoint src/Dodge/Data/Creature.hs 78;" f
_mvTurnJit src/Dodge/Data/Creature/Misc.hs 34;" f
_mvTurnRad src/Dodge/Data/Creature/Misc.hs 33;" f
_mzAmmoSlot src/Dodge/Data/Muzzle.hs 13;" f
@@ -2377,7 +2382,7 @@ _swarm src/Dodge/Data/Creature/State.hs 28;" f
_taArcSteps src/Dodge/Data/TeslaArc.hs 19;" f
_taColor src/Dodge/Data/TeslaArc.hs 20;" f
_taTimer src/Dodge/Data/TeslaArc.hs 18;" f
_targetCr src/Dodge/Data/Creature.hs 70;" f
_targetCr src/Dodge/Data/Creature.hs 77;" f
_targetID src/Dodge/Data/ActionPlan.hs 85;" f
_targetSeenAt src/Dodge/Data/ActionPlan.hs 86;" f
_tbPos src/Dodge/Data/TractorBeam.hs 14;" f
@@ -2491,7 +2496,7 @@ _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 23;" f
_vertices src/Polyhedra/Data.hs 22;" f
_viDist src/Dodge/Data/Creature/Perception.hs 43;" f
_viFOV src/Dodge/Data/Creature/Perception.hs 42;" f
_viewPoint src/Dodge/Data/Creature.hs 72;" f
_viewPoint src/Dodge/Data/Creature.hs 79;" f
_volleyNumBarrels src/Dodge/Data/TriggerType.hs 13;" f
_volleyRate src/Dodge/Data/TriggerType.hs 13;" f
_volume_master src/Dodge/Data/Config.hs 39;" f
@@ -2834,12 +2839,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 122;" f
chasmTest src/Dodge/Creature/Update.hs 135;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 65;" f
checkDeath src/Dodge/Creature/Update.hs 68;" f
checkDeath' src/Dodge/Creature/Update.hs 71;" f
checkDeath src/Dodge/Creature/Update.hs 69;" f
checkDeath' src/Dodge/Creature/Update.hs 72;" f
checkEndGame src/Dodge/Update.hs 754;" f
checkErrorGL src/Shader/Compile.hs 255;" f
checkFBO src/Framebuffer/Check.hs 6;" f
@@ -2941,7 +2946,7 @@ combineRooms src/Dodge/Room/Procedural.hs 151;" f
combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f
combineTree src/Dodge/Tree/Compose.hs 67;" f
commandColor src/Dodge/Terminal.hs 114;" f
commonPrefix src/Dodge/Debug/Terminal.hs 148;" f
commonPrefix src/Dodge/Debug/Terminal.hs 149;" f
comp src/Quaternion.hs 65;" f
compactDraw src/Dodge/LevelGen.hs 95;" f
compactDraw' src/Dodge/LevelGen.hs 106;" f
@@ -2969,7 +2974,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 130;" f
copyItemToFloor src/Dodge/FloorItem.hs 14;" f
corDoor src/Dodge/Room/Room.hs 375;" f
cornerList src/Preload/Render.hs 198;" f
corpseOrGib src/Dodge/Creature/Update.hs 102;" f
corpseOrGib src/Dodge/Creature/Update.hs 110;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f
@@ -3010,7 +3015,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 852;" f
crStratConMatches src/Dodge/Creature/Test.hs 77;" f
crStrength src/Dodge/Creature/Statistics.hs 29;" f
crUpdate' src/Dodge/Creature/Update.hs 57;" f
crUpdate' src/Dodge/Creature/Update.hs 58;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f
crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
@@ -3077,7 +3082,7 @@ cylinderRoundIndices src/Shader/Poke.hs 389;" f
dShadCol src/Dodge/Render/List.hs 214;" f
damMatSideEffect src/Dodge/Material/Damage.hs 13;" f
damThingHitWith src/Dodge/Damage.hs 72;" f
damToExpBarrel src/Dodge/Barreloid.hs 49;" f
damToExpBarrel src/Dodge/Barreloid.hs 51;" f
damageCodeCommand src/Dodge/Terminal.hs 59;" f
damageCrWl src/Dodge/Damage.hs 29;" f
damageCrWlID src/Dodge/Damage.hs 23;" f
@@ -3092,7 +3097,7 @@ damageStone src/Dodge/Material/Damage.hs 25;" f
damageThingHit src/Dodge/Bullet.hs 177;" f
damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 35;" f
damageWall src/Dodge/Wall/Damage.hs 15;" f
damsToExpBarrel src/Dodge/Barreloid.hs 46;" f
damsToExpBarrel src/Dodge/Barreloid.hs 48;" f
dark src/Color.hs 108;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 32;" f
dbArg src/Dodge/Base.hs 165;" f
@@ -3146,7 +3151,6 @@ defaultCWorld src/Dodge/Default/World.hs 82;" f
defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f
defaultClusterStatus src/Dodge/Default/Room.hs 37;" f
defaultConfig src/Dodge/Data/Config.hs 127;" f
defaultCorpse src/Dodge/Corpse/Make.hs 32;" f
defaultCraftItem src/Dodge/Default/Item.hs 25;" f
defaultCreature src/Dodge/Default/Creature.hs 12;" f
defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f
@@ -3190,7 +3194,6 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f
denormalEdges src/Polyhedra.hs 136;" f
destroyAllInvItems src/Dodge/Inventory.hs 52;" f
destroyBlock src/Dodge/Block.hs 52;" f
destroyCreature src/Dodge/Creature/Update.hs 94;" f
destroyDoor src/Dodge/Block.hs 80;" f
destroyInvItem src/Dodge/Inventory.hs 39;" f
destroyItem src/Dodge/Inventory.hs 61;" f
@@ -3456,7 +3459,7 @@ drawWlIDs src/Dodge/Debug/Picture.hs 383;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 291;" f
drawZoneCol src/Dodge/Debug/Picture.hs 148;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 284;" f
dropAll src/Dodge/Creature/Update.hs 119;" f
dropAll src/Dodge/Creature/Update.hs 132;" f
dropExcept src/Dodge/Creature/Action.hs 167;" f
dropInventoryPath src/Dodge/HeldUse.hs 1396;" f
dropItem src/Dodge/Creature/Action.hs 174;" f
@@ -3688,7 +3691,7 @@ getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
getSplitString src/Dodge/Debug/Terminal.hs 128;" f
getSplitString src/Dodge/Debug/Terminal.hs 129;" f
getTiles src/Dodge/Layout.hs 193;" f
getViewpoints src/Dodge/Viewpoints.hs 29;" f
getVolleyBurst src/Dodge/HeldUse.hs 125;" f
@@ -3914,7 +3917,7 @@ isRHS src/Geometry/LHS.hs 24;" f
isUnusedLnk src/Dodge/PlacementSpot.hs 62;" f
isUnusedLnkType src/Dodge/PlacementSpot.hs 195;" f
isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 181;" f
isValidCommand src/Dodge/Debug/Terminal.hs 133;" f
isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
isVowel src/StringHelp.hs 8;" f
isWalkable src/Dodge/Base/Collide.hs 317;" f
isoMatrix src/MatrixHelper.hs 30;" f
@@ -4065,7 +4068,7 @@ loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
loadSounds src/Dodge/SoundLogic/LoadSound.hs 18;" f
loadingScreen src/Dodge/Concurrent.hs 56;" f
loadme src/Dodge/Debug/Terminal.hs 141;" f
loadme src/Dodge/Debug/Terminal.hs 142;" f
locDTGoHelp src/Dodge/DoubleTree.hs 348;" f
locDTGoLeft src/Dodge/DoubleTree.hs 329;" f
locDTGoRight src/Dodge/DoubleTree.hs 334;" f
@@ -4091,7 +4094,7 @@ longBlockedCorridor src/Dodge/Room/RoadBlock.hs 58;" f
longCrit src/Dodge/Creature.hs 70;" f
longRoom src/Dodge/Room/LongRoom.hs 22;" f
longRoomRunPast src/Dodge/Room/LongRoom.hs 48;" f
longestCommonPrefix src/Dodge/Debug/Terminal.hs 144;" f
longestCommonPrefix src/Dodge/Debug/Terminal.hs 145;" f
lookupTrie src/SimpleTrie.hs 30;" f
loopPairs src/ListHelp.hs 30;" f
lootRoom src/Dodge/Room/Treasure.hs 58;" f
@@ -4130,7 +4133,7 @@ makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
makeColorTermLine src/Dodge/Terminal.hs 111;" f
makeColorTermPara src/Dodge/Terminal.hs 108;" f
makeCorpse src/Dodge/Corpse/Make.hs 13;" f
makeCorpse src/Dodge/Corpse/Make.hs 14;" f
makeDebris src/Dodge/Block/Debris.hs 45;" f
makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f
makeDoorDebris src/Dodge/Block/Debris.hs 24;" f
@@ -4499,7 +4502,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f
pointerYourRootItem src/Dodge/Item/Location.hs 33;" f
pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f
pointsToPoly src/Geometry/ConvexPoly.hs 37;" f
poisonSPic src/Dodge/Creature/Update.hs 115;" f
poisonSPic src/Dodge/Creature/Update.hs 128;" f
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
poke34 src/Shader/Poke.hs 506;" f
pokeArrayOff src/Shader/Poke.hs 517;" f
@@ -4866,7 +4869,7 @@ scaleSH src/Shape.hs 269;" f
scalp src/Dodge/Creature/Picture.hs 93;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 101;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/Update.hs 112;" f
scorchSPic src/Dodge/Creature/Update.hs 125;" 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
@@ -5423,7 +5426,7 @@ updateAimPos src/Dodge/Update.hs 302;" f
updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla.hs 44;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f
updateBarrel src/Dodge/Barreloid.hs 41;" f
updateBarrel src/Dodge/Barreloid.hs 42;" f
updateBarreloid src/Dodge/Barreloid.hs 15;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f
updateBounds src/Dodge/Update/Camera.hs 258;" f
@@ -5437,7 +5440,7 @@ updateClouds src/Dodge/Update.hs 652;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f
updateCombineSections src/Dodge/DisplayInventory.hs 47;" f
updateCreature src/Dodge/Creature/Update.hs 31;" f
updateCreature' src/Dodge/Creature/Update.hs 39;" f
updateCreature' src/Dodge/Creature/Update.hs 40;" f
updateCreatureGroups src/Dodge/Update.hs 521;" f
updateCreatureSoundPositions src/Dodge/Update.hs 501;" f
updateDebris src/Dodge/Update.hs 556;" f
@@ -5495,7 +5498,7 @@ updatePastWorlds src/Dodge/Update.hs 408;" f
updatePreload src/Preload/Update.hs 20;" f
updateProjectile src/Dodge/Projectile/Update.hs 27;" f
updateProp src/Dodge/Prop/Update.hs 11;" f
updatePulse src/Dodge/Creature/Update.hs 136;" f
updatePulse src/Dodge/Creature/Update.hs 149;" f
updatePulseBall src/Dodge/Update.hs 433;" f
updatePulseLaser src/Dodge/Update.hs 596;" f
updatePulseLasers src/Dodge/Update.hs 428;" f
@@ -5581,7 +5584,7 @@ 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 46;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 136;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
vasTightStride src/Shader/Compile.hs 297;" f
vecBetweenSpeed src/Dodge/Base.hs 146;" f
vecTurnTo src/Dodge/Movement/Turn.hs 19;" f