Make machines have footprint like doors

This commit is contained in:
2026-03-31 20:29:30 +01:00
parent dea4c0dffe
commit 5701261ace
12 changed files with 137 additions and 138 deletions
+1 -2
View File
@@ -32,8 +32,7 @@ data GenWorld = GenWorld
data PSType
= PutCrit {_unPutCrit :: Creature}
| PutMachine
{ _putMachinePoly :: [Point2]
, _putMachineMachine :: Machine
{ _putMachineMachine :: Machine
, _putMachineMaybeItem :: Maybe Item
}
| PutLS {_putLS :: LightSource}
+1 -2
View File
@@ -17,7 +17,6 @@ import Dodge.Data.AmmoType
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import qualified Data.IntSet as IS
import qualified Data.Map.Strict as M
import Dodge.Data.Damage
import Dodge.Data.GenParams
@@ -30,7 +29,7 @@ import qualified Data.IntMap.Strict as IM
data Machine = Machine
{ _mcID :: Int
, _mcWallIDs :: IS.IntSet
-- , _mcWallIDs :: IS.IntSet
, _mcMaterial :: Material
, _mcSkin :: Material
, _mcFootPrint :: IM.IntMap (Point2,Point2)
-1
View File
@@ -31,7 +31,6 @@ defaultMachine :: Machine
defaultMachine =
Machine
{ _mcID = 0
, _mcWallIDs = mempty
, _mcPos = V2 0 0
, _mcDir = 0
, _mcHP = 1000
+3 -2
View File
@@ -13,7 +13,7 @@ import LensHelp
destroyMachine :: Machine -> World -> World
destroyMachine mc =
(cWorld . lWorld . machines %~ IM.delete (_mcID mc))
. deleteWallIDs (_mcWallIDs mc)
. deleteWallIDs (IM.keysSet $ _mcFootPrint mc)
. makeMachineDebris mc
. makeSmallExplosionAt (_mcPos mc `v2z` 20) 0
. mcKillTerm mc
@@ -24,7 +24,8 @@ destroyMachine mc =
--explodeMachine mc = \case
makeMachineDebris :: Machine -> World -> World
makeMachineDebris mc = id -- foldl' (flip $ makeDebris mt) w ps
makeMachineDebris _ = id -- foldl' (flip $ makeDebris mt) w ps
--makeMachineDebris mc = id -- foldl' (flip $ makeDebris mt) w ps
-- where
-- dsize = debrisSize mt
-- ps = gridInPolygon dsize $ shrinkPolyOnEdges dsize $ reverse (_mcFootprint bl)
+2 -1
View File
@@ -9,14 +9,15 @@ import Dodge.Default
import Dodge.LevelGen.PlacementHelper
import Dodge.LightSource
import Geometry
import qualified Data.IntMap.Strict as IM
damageSensor :: SensorType -> Float -> Maybe Int -> PlacementSpot -> Placement
damageSensor dt wdth mtrid ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1) $
\lsid ->
psPtJpl ps $
PutMachine
(reverse $ square wdth)
( defaultMachine
& mcFootPrint .~ IM.fromDistinctAscList (zip [0..] . loopPairs . reverse $ square wdth)
& mcSkin .~ mattype
& mcMounts . at OTTrigger .~ mtrid
& mcMounts . at OTLightSource ?~ lsid
+2 -1
View File
@@ -4,6 +4,7 @@ module Dodge.Placement.Instance.Terminal (
putTerminal,
) where
import qualified Data.IntMap.Strict as IM
import Data.Maybe
import Dodge.Data.GenWorld
import Dodge.Default
@@ -29,9 +30,9 @@ putTerminalFull f mc tm =
\btpl -> Just $
pt0
( PutMachine
(reverse $ square 10)
( mc & mcMounts . at OTButton ?~ fromJust (_plMID btpl)
& mcMounts . at OTTerminal .~ _plMID tmpl
& mcFootPrint .~ IM.fromDistinctAscList (zip [0..] . loopPairs . reverse $ square 10)
)
Nothing
)
+3 -3
View File
@@ -1,5 +1,4 @@
module Dodge.Placement.Instance.Turret
(putLasTurret) where
module Dodge.Placement.Instance.Turret (putLasTurret) where
import Dodge.Item.Held.BatteryGuns
import Dodge.Data.GenWorld
@@ -7,6 +6,7 @@ import Dodge.Default
import Dodge.LevelGen.PlacementHelper
import Geometry
import LensHelp
import qualified Data.IntMap.Strict as IM
--putTurret :: Item -> Float -> Placement
--putTurret itm rotSpeed =
@@ -24,8 +24,8 @@ putLasTurret :: Float -> Placement
putLasTurret rotSpeed =
sps0 $
PutMachine
(reverse $ square 10)
( defaultMachine
& mcFootPrint .~ IM.fromDistinctAscList (zip [0..] . loopPairs . reverse $ square 10)
-- & mcColor .~ blue
& mcType .~ (lasTurret & mctTurret . tuTurnSpeed .~ rotSpeed)
& mcHP .~ 1500
+24 -25
View File
@@ -10,7 +10,6 @@ module Dodge.Placement.PlaceSpot (placeSpot) where
import Control.Monad.Trans.State.Lazy
import Data.Bifunctor
import Data.Foldable
import qualified Data.IntSet as IS
import Data.Maybe
import qualified Data.Set as S
import Dodge.Base.NewID
@@ -127,7 +126,7 @@ placeSpotID rid ps pt w = case pt of
PutCrit cr -> plNewUpID (gwWorld . cWorld . lWorld . creatures) crID (mvCr p rot cr) w
PutForeground fs ->
(0, w & gwWorld . cWorld . lWorld . foreShapes .:~ mvFS p rot fs)
PutMachine pps mc mitm -> plMachine (map doShift pps) mc mitm p rot w
PutMachine mc mitm -> plMachine mc mitm p rot w
PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p rot ls) w
RandPS _ -> error "RandPS should not be reachable here" -- evaluateRandPS rid rgn ps w
PutDoor dr wl -> plDoor (dr & drZeroPos %~ pashift & drOnePos %~ pashift) wl w
@@ -189,31 +188,42 @@ mvFS :: Point2 -> Float -> ForegroundShape -> ForegroundShape
mvFS p a = (fsDir +~ a) . (fsPos %~ ((p +) . rotateV a))
plMachine ::
[Point2] ->
-- [Point2] ->
Machine ->
Maybe Item ->
Point2 ->
Float ->
GenWorld ->
(Int, GenWorld)
plMachine wallpoly mc mitm p rot gw =
plMachine mc mitm p rot gw =
( mcid
, gw
& tolw
. machines
. at mcid
?~ themc
& gwWorld
%~ placeMachineWalls (_mcSkin mc) wallpoly mcid wlid
& tolw
%~ maybe id placeturretitm mitm
& tolw . machines . at mcid ?~ themc
& tolw %~ maybe id placeturretitm mitm
& gwWorld %~ addwalls
-- & gwWorld %~ placeMachineWalls (_mcSkin mc) wallpoly mcid wlid
)
where
addwalls =
insertStructureWalls
MachinePart
wl
(map fst pps & each %~ shiftPointBy (p,rot))
mcid
wlid
pps = IM.elems $ mc ^. mcFootPrint
wl =
defaultMachineWall
& wlStructure . wsMachine .~ mcid
& wlMaterial .~ (mc ^. mcSkin)
tolw = gwWorld . cWorld . lWorld
mcid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . machines
wlid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . walls
wlids = IS.fromList $ take (length wallpoly) [wlid ..]
themc = mc{_mcPos = p, _mcDir = rot, _mcID = mcid, _mcWallIDs = wlids}
themc = mc
& mcPos .~ p
& mcDir .~ rot
& mcID .~ mcid
& mcFootPrint .~ IM.fromDistinctAscList (zip [wlid..] pps)
placeturretitm itm =
(items . at itid ?~ itm')
. (machines . ix mcid . mcType . mctTurret . tuWeapon .~ itid)
@@ -221,16 +231,5 @@ plMachine wallpoly mc mitm p rot gw =
itid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . items
itm' = itm & itID .~ NInt itid & itLocation .~ OnTurret mcid
placeMachineWalls :: Material -> [Point2] -> Int -> Int -> World -> World
placeMachineWalls mat poly mcid = insertStructureWalls MachinePart baseWall poly mcid
where
baseWall =
defaultMachineWall
& wlStructure
. wsMachine
.~ mcid
& wlMaterial
.~ mat
mvLS :: Point2 -> Float -> LightSource -> LightSource
mvLS x rot = lsParam . lsPos . _xy %~ ((+ x) . rotateV rot)
+1 -5
View File
@@ -9,11 +9,7 @@ import Dodge.ShiftPoint
import qualified IntMapHelp as IM
import LensHelp
plDoor ::
Door ->
Wall ->
GenWorld ->
(Int, GenWorld)
plDoor :: Door -> Wall -> GenWorld -> (Int, GenWorld)
plDoor dr wl gw =
( drid
, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors . at drid ?~ newdr
+4 -1
View File
@@ -15,6 +15,7 @@ module Dodge.Room.Room (
critDeadEnd,
) where
import qualified Data.IntMap.Strict as IM
import Data.Maybe
import Linear
import Color
@@ -435,11 +436,13 @@ distributerRoom atype aamount = do
let mcstore = defaultMachine
& mcMaterial .~ Metal
& mcType .~ McStorage atype aamount
& mcFootPrint .~ IM.fromDistinctAscList (zip [0..] . loopPairs . reverse $ polyCirc 4 20)
mcdist mj = defaultMachine
& mcMaterial .~ Metal
& mcType .~ McDistributer mj
store = sps (unusedOffPathAwayFromLink 50)
(PutMachine (reverse $ polyCirc 4 20) mcstore Nothing) & plExternalID ?~ i
--(PutMachine (reverse $ polyCirc 4 20) mcstore Nothing) & plExternalID ?~ i
(PutMachine mcstore Nothing) & plExternalID ?~ i
dst gw = let mj = gw ^? genPmnt . ix i . plMID . _Just
in putTerminal (mcdist mj) (defaultTerminal & tmBootLines .~ tmDistributeLines
& tmRebootOnAccess .~ True
+2 -2
View File
@@ -25,7 +25,7 @@ import Dodge.Zoning.Pathing
import Geometry.Data
import LensHelp
import Linear
import qualified Data.IntSet as IS
--import qualified Data.IntSet as IS
import Dodge.Machine.Destroy
damageWall :: Int -> Damage -> World -> (S.Set Int2, World)
@@ -112,7 +112,7 @@ sensorTypeDamages = \case
destroyMachine' :: Machine -> World -> (S.Set Int2, World)
destroyMachine' mc w = (js, destroyMachine mc w)
where
wlids = IS.toList $ mc ^. mcWallIDs
wlids = IM.keys $ mc ^. mcFootPrint
f wlid = w ^?! cWorld . lWorld . walls . ix wlid . wlLine
js = foldMap (S.fromList . uncurry (zoneOfSeg peZoneSize) . f) wlids
+94 -93
View File
@@ -704,12 +704,12 @@ MOTOR src/Dodge/Data/Item/Combine.hs 63;" C
MPO src/Dodge/Base/Collide.hs 97;" t
MTRS src/Dodge/Data/MTRS.hs 6;" t
MTree src/Dodge/Data/MetaTree.hs 12;" C
Machine src/Dodge/Data/Machine.hs 30;" t
Machine src/Dodge/Data/Machine.hs 31;" t
MachineAltSound src/Dodge/Data/SoundOrigin.hs 23;" C
MachineBackgroundSound src/Dodge/Data/SoundOrigin.hs 22;" C
MachinePart src/Dodge/Data/Wall/Structure.hs 14;" C
MachinePrimarySound src/Dodge/Data/SoundOrigin.hs 21;" C
MachineType src/Dodge/Data/Machine.hs 42;" t
MachineType src/Dodge/Data/Machine.hs 45;" t
MagBelow src/Dodge/Data/Muzzle.hs 22;" C
Magnet src/Dodge/Data/Magnet.hs 21;" t
MagnetAlign src/Dodge/Data/Magnet.hs 15;" C
@@ -734,14 +734,13 @@ MapperSF src/Dodge/Data/ComposedItem.hs 39;" C
Material src/Dodge/Data/Material.hs 10;" t
MaterialSound src/Dodge/Data/SoundOrigin.hs 35;" C
Maybe' src/MaybeHelp.hs 11;" t
McDamSensor src/Dodge/Data/Machine.hs 45;" C
McDistributer src/Dodge/Data/Machine.hs 49;" C
McProxSensor src/Dodge/Data/Machine.hs 46;" C
McStatic src/Dodge/Data/Machine.hs 43;" C
McStorage src/Dodge/Data/Machine.hs 48;" C
McTerminal src/Dodge/Data/Machine.hs 44;" C
McTrigger src/Dodge/Data/Machine.hs 50;" C
McTurret src/Dodge/Data/Machine.hs 47;" C
McDamSensor src/Dodge/Data/Machine.hs 47;" C
McDistributer src/Dodge/Data/Machine.hs 51;" C
McProxSensor src/Dodge/Data/Machine.hs 48;" C
McStorage src/Dodge/Data/Machine.hs 50;" C
McTerminal src/Dodge/Data/Machine.hs 46;" C
McTrigger src/Dodge/Data/Machine.hs 52;" C
McTurret src/Dodge/Data/Machine.hs 49;" C
MdFlickerUpdate src/Dodge/Data/WorldEffect.hs 53;" C
MdSetLSCol src/Dodge/Data/WorldEffect.hs 52;" C
MdTrigIf src/Dodge/Data/WorldEffect.hs 51;" C
@@ -1387,7 +1386,7 @@ TurnTo src/Dodge/Data/ActionPlan.hs 35;" C
TurnToPoint src/Dodge/Data/ActionPlan.hs 71;" C
TurnToward src/Dodge/Data/ActionPlan.hs 32;" C
TurnTowardCr src/Dodge/Data/CreatureEffect.hs 9;" C
Turret src/Dodge/Data/Machine.hs 64;" t
Turret src/Dodge/Data/Machine.hs 65;" t
TurretInt src/Dodge/Data/Item/Location.hs 19;" t
TwistGoal src/Dodge/Data/Scenario.hs 15;" C
TwoHandFlat src/Dodge/Data/AimStance.hs 13;" C
@@ -1994,17 +1993,18 @@ _mapInvZoom src/Dodge/Data/HUD.hs 19;" f
_matUBO src/Data/Preload/Render.hs 42;" f
_mbAttach src/Dodge/Data/MetaTree.hs 19;" f
_mbTree src/Dodge/Data/MetaTree.hs 19;" f
_mcDamage src/Dodge/Data/Machine.hs 37;" f
_mcDir src/Dodge/Data/Machine.hs 35;" f
_mcHP src/Dodge/Data/Machine.hs 36;" f
_mcID src/Dodge/Data/Machine.hs 31;" f
_mcMaterial src/Dodge/Data/Machine.hs 33;" f
_mcMounts src/Dodge/Data/Machine.hs 39;" f
_mcPos src/Dodge/Data/Machine.hs 34;" f
_mcTriggerID src/Dodge/Data/Machine.hs 50;" f
_mcType src/Dodge/Data/Machine.hs 38;" f
_mcWallIDs src/Dodge/Data/Machine.hs 32;" f
_mcdStorageMachine src/Dodge/Data/Machine.hs 49;" f
_mcDamage src/Dodge/Data/Machine.hs 40;" f
_mcDir src/Dodge/Data/Machine.hs 38;" f
_mcFootPrint src/Dodge/Data/Machine.hs 36;" f
_mcHP src/Dodge/Data/Machine.hs 39;" f
_mcID src/Dodge/Data/Machine.hs 32;" f
_mcMaterial src/Dodge/Data/Machine.hs 34;" f
_mcMounts src/Dodge/Data/Machine.hs 42;" f
_mcPos src/Dodge/Data/Machine.hs 37;" f
_mcSkin src/Dodge/Data/Machine.hs 35;" f
_mcTriggerID src/Dodge/Data/Machine.hs 52;" f
_mcType src/Dodge/Data/Machine.hs 41;" f
_mcdStorageMachine src/Dodge/Data/Machine.hs 51;" f
_mcoCombCombine src/Dodge/Data/Input.hs 24;" f
_mcoCombSelect src/Dodge/Data/Input.hs 23;" f
_mcoDBBool src/Dodge/Data/Input.hs 30;" f
@@ -2019,10 +2019,10 @@ _mcoSecSelStart src/Dodge/Data/Input.hs 20;" f
_mcoSelEnd src/Dodge/Data/Input.hs 20;" f
_mcoTermID src/Dodge/Data/Input.hs 27;" f
_mcoTermStatus src/Dodge/Data/Input.hs 27;" f
_mcsAmount src/Dodge/Data/Machine.hs 48;" f
_mcsType src/Dodge/Data/Machine.hs 48;" f
_mctTurret src/Dodge/Data/Machine.hs 47;" f
_mctTurretStun src/Dodge/Data/Machine.hs 47;" f
_mcsAmount src/Dodge/Data/Machine.hs 50;" f
_mcsType src/Dodge/Data/Machine.hs 50;" f
_mctTurret src/Dodge/Data/Machine.hs 49;" f
_mctTurretStun src/Dodge/Data/Machine.hs 49;" f
_mdBool src/Dodge/Data/Modification.hs 19;" f
_mdExternalID src/Dodge/Data/Modification.hs 15;" f
_mdExternalID1 src/Dodge/Data/Modification.hs 23;" f
@@ -2413,10 +2413,10 @@ _trieMVal src/SimpleTrie.hs 11;" f
_triggers src/Dodge/Data/LWorld.hs 130;" f
_ttDeathEffect src/Dodge/Data/Terminal.hs 44;" f
_ttTriggerID src/Dodge/Data/Terminal.hs 43;" f
_tuDir src/Dodge/Data/Machine.hs 68;" f
_tuFireTime src/Dodge/Data/Machine.hs 67;" f
_tuTurnSpeed src/Dodge/Data/Machine.hs 66;" f
_tuWeapon src/Dodge/Data/Machine.hs 65;" f
_tuDir src/Dodge/Data/Machine.hs 69;" f
_tuFireTime src/Dodge/Data/Machine.hs 68;" f
_tuTurnSpeed src/Dodge/Data/Machine.hs 67;" f
_tuWeapon src/Dodge/Data/Machine.hs 66;" f
_turnToPoint src/Dodge/Data/ActionPlan.hs 71;" f
_uInt src/Dodge/Data/Item/Use.hs 31;" f
_uScope src/Dodge/Data/Item/Use.hs 34;" f
@@ -2540,10 +2540,10 @@ addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
addButtonSlowDoor src/Dodge/Room/LongDoor.hs 101;" f
addCrGibs src/Dodge/Prop/Gib.hs 17;" f
addDepth src/Picture/Base.hs 125;" f
addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 58;" f
addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 77;" f
addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 47;" f
addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 66;" f
addDoorToggleTerminal src/Dodge/Room/Warning.hs 41;" f
addDoorToggleTerminal' src/Dodge/Room/Warning.hs 98;" f
addDoorToggleTerminal' src/Dodge/Room/Warning.hs 87;" f
addGib4 src/Dodge/Prop/Gib.hs 52;" f
addGibAt src/Dodge/Prop/Gib.hs 63;" f
addGibAtDir src/Dodge/Prop/Gib.hs 69;" f
@@ -2562,7 +2562,6 @@ addLightsNGon src/Dodge/Room/Modify.hs 41;" f
addNodesCrossing src/Dodge/Room/Path.hs 28;" f
addNodesCrossingCirc src/Dodge/Room/Path.hs 41;" f
addPane src/Dodge/Placement/PlaceSpot.hs 174;" f
addPlAtNthLinkToggleLight src/Dodge/Room/Warning.hs 44;" f
addPointPolygon src/Geometry/Polygon.hs 142;" f
addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f
addPolyWalls src/Dodge/LevelGen/StaticWalls.hs 129;" f
@@ -2572,7 +2571,7 @@ addSideEffect src/Dodge/Concurrent.hs 29;" f
addSouthPillars src/Dodge/Room/LongDoor.hs 92;" f
addTermSignal src/Dodge/Event/Input.hs 31;" f
addToTrunk src/TreeHelp.hs 157;" f
addWarningTerminal src/Dodge/Room/Warning.hs 109;" f
addWarningTerminal src/Dodge/Room/Warning.hs 98;" f
addZ src/Geometry/Vector3D.hs 89;" f
adjustIMZone src/Dodge/Base.hs 81;" f
advanceScrollAmount src/Dodge/Update.hs 479;" f
@@ -2596,8 +2595,8 @@ ammoMagSPic src/Dodge/Item/Draw/SPic.hs 129;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f
anRoom src/Dodge/Floor.hs 116;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 128;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 111;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 126;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 112;" f
andOrRegex src/Dodge/DisplayInventory.hs 78;" f
angleBetween src/Geometry.hs 158;" f
angleVV src/Geometry/Vector.hs 58;" f
@@ -2781,7 +2780,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 18;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f
byNthLink src/Dodge/Room/Warning.hs 55;" f
byNthLink src/Dodge/Room/Warning.hs 44;" f
cChasm src/Dodge/Room/Tutorial.hs 135;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
@@ -2800,7 +2799,7 @@ cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 35;" f
cardinalVectors src/Dodge/FloorItem.hs 24;" f
cdtPropagateFold src/Dodge/DoubleTree.hs 189;" f
ceilingTo src/Geometry/Zone.hs 15;" f
cenLasTur src/Dodge/Room/LasTurret.hs 51;" f
cenLasTur src/Dodge/Room/LasTurret.hs 52;" f
centerText src/Picture/Base.hs 176;" f
centerVaultExplosiveExit src/Dodge/Room/NoNeedWeapon.hs 20;" f
centerVaultRoom src/Dodge/Room/Procedural.hs 270;" f
@@ -3087,7 +3086,7 @@ damagePyroelectric src/Dodge/Material/Damage.hs 78;" f
damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f
damageStone src/Dodge/Material/Damage.hs 41;" f
damageThingHit src/Dodge/Bullet.hs 180;" f
damageTypeThreshold src/Dodge/Machine/Update.hs 129;" f
damageTypeThreshold src/Dodge/Machine/Update.hs 128;" f
damageTypeThreshold' src/Dodge/Wall/Damage.hs 85;" f
damageWall src/Dodge/Wall/Damage.hs 31;" f
damsToExpBarrel src/Dodge/Barreloid.hs 50;" f
@@ -3145,7 +3144,7 @@ defaultAutoWall src/Dodge/Default/Wall.hs 32;" f
defaultBlock src/Dodge/Default/Block.hs 5;" f
defaultBounds src/Dodge/Data/Bounds.hs 18;" f
defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f
defaultButton src/Dodge/Default.hs 44;" f
defaultButton src/Dodge/Default.hs 45;" f
defaultCWCam src/Dodge/Default/World.hs 73;" f
defaultCWGen src/Dodge/Default/World.hs 63;" f
defaultCWorld src/Dodge/Default/World.hs 88;" f
@@ -3173,7 +3172,7 @@ defaultLWorld src/Dodge/Default/World.hs 106;" f
defaultMachine src/Dodge/Default.hs 30;" f
defaultMachineWall src/Dodge/Default/Wall.hs 38;" f
defaultPerceptionState src/Dodge/Default/Creature.hs 77;" f
defaultProximitySensor src/Dodge/Default.hs 52;" f
defaultProximitySensor src/Dodge/Default.hs 53;" f
defaultRoom src/Dodge/Default/Room.hs 9;" f
defaultTerminal src/Dodge/Default/Terminal.hs 8;" f
defaultVision src/Dodge/Default/Creature.hs 87;" f
@@ -3195,7 +3194,7 @@ destroyLSFlashAt src/Dodge/LightSource.hs 44;" f
destroyMachine src/Dodge/Machine/Destroy.hs 13;" f
destroyMachine' src/Dodge/Wall/Damage.hs 112;" f
destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMcType src/Dodge/Machine/Destroy.hs 37;" f
destroyMount src/Dodge/Wall/Damage.hs 167;" f
destroyMounts src/Dodge/Wall/Damage.hs 164;" f
destroyProjectile src/Dodge/Projectile/Update.hs 112;" f
@@ -3318,7 +3317,7 @@ drawAimSweep src/Dodge/Render/Picture.hs 292;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawAnySelectionBox src/Dodge/Render/Picture.hs 130;" f
drawArrowDown src/Dodge/Render/Picture.hs 219;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 75;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 74;" f
drawBlip src/Dodge/RadarBlip.hs 16;" f
drawBlock src/Dodge/Render/ShapePicture.hs 81;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 368;" f
@@ -3342,7 +3341,7 @@ drawCrossCol src/Dodge/Render/Label.hs 21;" f
drawCursorAt src/Dodge/Render/List.hs 73;" f
drawCursorByTerminalStatus src/Dodge/Render/Picture.hs 137;" f
drawDDATest src/Dodge/Debug/Picture.hs 304;" f
drawDamSensor src/Dodge/Machine/Draw.hs 38;" f
drawDamSensor src/Dodge/Machine/Draw.hs 37;" f
drawDebug src/Dodge/Debug.hs 253;" f
drawDrag src/Dodge/Render/Picture.hs 198;" f
drawDragDrop src/Dodge/Render/Picture.hs 227;" f
@@ -3428,7 +3427,7 @@ drawText src/Picture/Base.hs 224;" f
drawTitle src/Dodge/Render/MenuScreen.hs 49;" f
drawTitleBackground src/Dodge/Render/List.hs 60;" f
drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f
drawTurret src/Dodge/Machine/Draw.hs 94;" f
drawTurret src/Dodge/Machine/Draw.hs 92;" f
drawVerticalDoubleArrow src/Dodge/Render/Picture.hs 210;" f
drawWall src/Dodge/Wall/Draw.hs 11;" f
drawWallFace src/Dodge/Debug/Picture.hs 73;" f
@@ -3748,8 +3747,8 @@ headLampShape src/Dodge/Item/Draw/SPic.hs 423;" f
headMap src/Dodge/DoubleTree.hs 118;" f
headPQ src/Dodge/Creature/HandPos.hs 159;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 108;" f
healthTest src/Dodge/Room/LasTurret.hs 131;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 109;" f
healthTest src/Dodge/Room/LasTurret.hs 129;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f
heldAimStance src/Dodge/Item/AimStance.hs 27;" f
heldAimZoom src/Dodge/Update/Camera.hs 158;" f
@@ -3970,8 +3969,8 @@ justify src/Justify.hs 9;" f
k src/ShortShow.hs 48;" f
k' src/ShortShow.hs 48;" f
keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 105;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 93;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 106;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 94;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f
keyPic src/Dodge/Item/Draw/SPic.hs 439;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f
@@ -3983,19 +3982,19 @@ lConnectMulti src/Dodge/Render/Connectors.hs 51;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 61;" f
lamp src/Dodge/Creature/Lamp.hs 18;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 125;" f
lasCenRunClose' src/Dodge/Room/LasTurret.hs 310;" f
lasCenRunClose1 src/Dodge/Room/LasTurret.hs 399;" f
lasCenRunClose2 src/Dodge/Room/LasTurret.hs 472;" f
lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 364;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 166;" f
lasCenRunClose' src/Dodge/Room/LasTurret.hs 308;" f
lasCenRunClose1 src/Dodge/Room/LasTurret.hs 397;" f
lasCenRunClose2 src/Dodge/Room/LasTurret.hs 470;" f
lasCenRunCloseLongCor src/Dodge/Room/LasTurret.hs 362;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 164;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 414;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f
lasRunRand src/Dodge/Room/LasTurret.hs 469;" f
lasRunYinYang src/Dodge/Room/LasTurret.hs 187;" f
lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 250;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 143;" f
lasTunnel src/Dodge/Room/LasTurret.hs 510;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 551;" f
lasRunRand src/Dodge/Room/LasTurret.hs 467;" f
lasRunYinYang src/Dodge/Room/LasTurret.hs 185;" f
lasRunYinYangCenter src/Dodge/Room/LasTurret.hs 248;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 141;" f
lasTunnel src/Dodge/Room/LasTurret.hs 508;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 549;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 35;" f
laser src/Dodge/Item/Held/BatteryGuns.hs 27;" f
laserSpark src/Dodge/Material/Damage.hs 37;" f
@@ -4020,8 +4019,8 @@ legsSPic src/Dodge/Item/Draw/SPic.hs 448;" f
lerpP2A src/Dodge/ShiftPoint.hs 14;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 86;" f
light src/Color.hs 131;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 77;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 64;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 78;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 65;" f
lightSensor src/Dodge/Placement/Instance/Sensor.hs 33;" f
lightsToRender src/Dodge/Render/Lights.hs 12;" f
lightx4 src/Color.hs 155;" f
@@ -4031,7 +4030,7 @@ lineCol src/Picture/Base.hs 234;" f
lineGeom src/Dodge/Base.hs 32;" f
lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f
lineOrth src/Dodge/Creature/Boid.hs 128;" f
lineOutputTerminal src/Dodge/Room/Warning.hs 114;" f
lineOutputTerminal src/Dodge/Room/Warning.hs 103;" f
lineSplit src/Justify.hs 26;" f
lineUp src/Dodge/Creature/Boid.hs 150;" f
linksDAGToPath src/Dodge/Room/Path.hs 19;" f
@@ -4117,26 +4116,28 @@ makeDebrisDirected src/Dodge/Block/Debris.hs 51;" f
makeDoorDebris src/Dodge/Block/Debris.hs 26;" f
makeDumbSwitch src/Dodge/Room/LongDoor.hs 145;" f
makeDustAt src/Dodge/WorldEvent/Cloud.hs 17;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 68;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 69;" f
makeFlak src/Dodge/Bullet.hs 146;" f
makeFlame src/Dodge/Flame.hs 46;" f
makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 55;" f
makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 56;" f
makeFlamelet src/Dodge/EnergyBall.hs 21;" f
makeFragBullets src/Dodge/Bullet.hs 132;" f
makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f
makeIntInterval src/Dodge/Zoning/Base.hs 37;" f
makeMachineDebris src/Dodge/Machine/Destroy.hs 26;" f
makeMovingEB src/Dodge/EnergyBall.hs 60;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 680;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 63;" f
makePathBetweenPs src/Dodge/Path.hs 87;" f
makePathUsing src/Dodge/Path.hs 51;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 24;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeSelectionListPictures src/Dodge/Render/List.hs 67;" f
makeShaderProgram src/Shader/Compile.hs 74;" f
makeShaderVBO src/Shader/Compile.hs 24;" f
makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 11;" f
makeShrapnelAt src/Dodge/Payload.hs 24;" f
makeSmallExplosionAt src/Dodge/WorldEvent/Explosion.hs 85;" f
makeSourcedShader src/Shader/Compile.hs 54;" f
makeSpark src/Dodge/Spark.hs 46;" f
makeSubmenuOption src/Dodge/Menu/OptionType.hs 23;" f
@@ -4144,7 +4145,7 @@ makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f
makeTermLine src/Dodge/Terminal.hs 109;" f
makeTermPara src/Dodge/Terminal.hs 118;" f
makeTeslaArc src/Dodge/Tesla.hs 28;" f
makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 39;" f
makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f
makeTileFromPoly src/Tile.hs 34;" f
makeTypeCraft src/Dodge/Item/Craftable.hs 15;" f
makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f
@@ -4168,25 +4169,25 @@ maybeOpenConsole src/Dodge/Update.hs 133;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 135;" f
maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f
mcBackgroundSound src/Dodge/Machine/Update.hs 153;" f
mcColor src/Dodge/Machine/Draw.hs 83;" f
mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 117;" f
mcDamSensorUpdate src/Dodge/Machine/Update.hs 164;" f
mcBackgroundSound src/Dodge/Machine/Update.hs 152;" f
mcColor src/Dodge/Machine/Draw.hs 82;" f
mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 116;" f
mcDamSensorUpdate src/Dodge/Machine/Update.hs 162;" f
mcDamSensorUpdate' src/Dodge/Wall/Damage.hs 58;" f
mcKillBut src/Dodge/Machine/Destroy.hs 38;" f
mcKillTerm src/Dodge/Machine/Destroy.hs 30;" f
mcNoItemsTest src/Dodge/Machine/Update.hs 172;" f
mcPlaySound src/Dodge/Machine/Update.hs 137;" f
mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 123;" f
mcProxSensorUpdate src/Dodge/Machine/Update.hs 167;" f
mcProxTest src/Dodge/Machine/Update.hs 248;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 209;" f
mcKillBut src/Dodge/Machine/Destroy.hs 53;" f
mcKillTerm src/Dodge/Machine/Destroy.hs 45;" f
mcNoItemsTest src/Dodge/Machine/Update.hs 170;" f
mcPlaySound src/Dodge/Machine/Update.hs 136;" f
mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 122;" f
mcProxSensorUpdate src/Dodge/Machine/Update.hs 165;" f
mcProxTest src/Dodge/Machine/Update.hs 246;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 207;" f
mcSPic src/Dodge/Render/ShapePicture.hs 172;" f
mcShootAuto src/Dodge/HeldUse.hs 1189;" f
mcShootLaser src/Dodge/HeldUse.hs 1181;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 32;" f
mcUseHeld src/Dodge/HeldUse.hs 1106;" f
mcUseItem src/Dodge/Machine/Update.hs 108;" f
mcUseItem src/Dodge/Machine/Update.hs 107;" f
megaBattery src/Dodge/Item/Ammo.hs 54;" f
megaShellMag src/Dodge/Item/Ammo.hs 44;" f
megaTinMag src/Dodge/Item/Ammo.hs 21;" f
@@ -4266,7 +4267,7 @@ moveProjectile src/Dodge/Projectile/Update.hs 249;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 228;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 117;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 106;" f
moveWall src/Dodge/Wall/Move.hs 23;" f
moveWallID src/Dodge/Wall/Move.hs 18;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f
@@ -4290,7 +4291,7 @@ mvButton src/Dodge/Placement/PlaceSpot.hs 182;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 185;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 188;" f
mvGust src/Dodge/Update.hs 872;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 235;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 243;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f
mvPointToward src/Dodge/Base.hs 136;" f
@@ -4438,7 +4439,7 @@ plNewUsing src/Dodge/Base/NewID.hs 27;" f
plPriority src/Dodge/Layout.hs 112;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
placeChasm src/Dodge/Placement/PlaceSpot.hs 158;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 224;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 232;" f
placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 41;" f
placeSpot src/Dodge/Placement/PlaceSpot.hs 33;" f
placeSpotID src/Dodge/Placement/PlaceSpot.hs 100;" f
@@ -4868,14 +4869,14 @@ selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f
semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f
senseDamage src/Dodge/Machine/Update.hs 264;" f
senseDamage src/Dodge/Machine/Update.hs 262;" f
senseDamage' src/Dodge/Wall/Damage.hs 61;" f
sensorReqToString src/Dodge/Machine/Update.hs 242;" f
sensorReqToString src/Dodge/Machine/Update.hs 240;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f
sensorSPic src/Dodge/Machine/Draw.hs 99;" f
sensorSPic src/Dodge/Machine/Draw.hs 97;" f
sensorTut src/Dodge/Room/Tutorial.hs 573;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 288;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f
sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f
@@ -5143,7 +5144,7 @@ stopAllSounds src/Sound.hs 127;" f
stopBulletAt src/Dodge/Bullet.hs 200;" f
stopPushing src/Dodge/Wall/Damage.hs 172;" f
stopSoundFrom src/Dodge/SoundLogic.hs 220;" f
storageShape src/Dodge/Machine/Draw.hs 31;" f
storageShape src/Dodge/Machine/Draw.hs 30;" f
storeRoomID src/Dodge/Room/Modify.hs 23;" f
strFromEquipment src/Dodge/Creature/Statistics.hs 50;" f
strFromHeldItem src/Dodge/Creature/Statistics.hs 64;" f
@@ -5203,9 +5204,9 @@ termTextColor src/Dodge/Terminal.hs 52;" f
terminalLDP src/Dodge/ListDisplayParams.hs 48;" f
terminalReturnEffect src/Dodge/Terminal.hs 279;" f
terminalReturnLocal src/Dodge/Terminal.hs 283;" f
terminalSPic src/Dodge/Machine/Draw.hs 47;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 43;" f
terminalShape src/Dodge/Machine/Draw.hs 50;" f
terminalSPic src/Dodge/Machine/Draw.hs 46;" f
terminalScreenGlow src/Dodge/Machine/Update.hs 42;" f
terminalShape src/Dodge/Machine/Draw.hs 49;" f
terminalWheelEvent src/Dodge/Update/Scroll.hs 129;" f
teslaCoil src/Dodge/Item/Held/BatteryGuns.hs 12;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 411;" f
@@ -5512,7 +5513,7 @@ updateTeslaArc src/Dodge/Update.hs 667;" f
updateTeslaArcs src/Dodge/Update.hs 664;" f
updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f
updateTractorBeams src/Dodge/Update.hs 736;" f
updateTurret src/Dodge/Machine/Update.hs 56;" f
updateTurret src/Dodge/Machine/Update.hs 55;" f
updateUniverse src/Dodge/Update.hs 81;" f
updateUniverseFirst src/Dodge/Update.hs 92;" f
updateUniverseLast src/Dodge/Update.hs 143;" f