Allow turrets to fire bullets, only good for testing for now

This commit is contained in:
2024-12-24 12:24:27 +00:00
parent fb1553bf3c
commit d739a95197
6 changed files with 130 additions and 96 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -39,7 +39,7 @@ applyMagnetsToBul bu =
doMagnetBuBu :: Magnet -> Bullet -> Bullet
doMagnetBuBu mg bu = case _mgField mg of
MagnetAlign | isclose -> bu
MagnetDeflect | isclose -> bu & buVel %~ vecTurnTo (50 * pi / d) bpos mgdeflectpos
MagnetDeflect | isclose -> bu & buVel %~ vecTurnTo (4 * pi / (d+16)) bpos mgdeflectpos
_ -> bu
where
bvel = bu ^. buVel
+33 -18
View File
@@ -7,6 +7,7 @@ module Dodge.HeldUse (
mcUseHeld,
) where
import Dodge.Item.Weapon.Bullet
import Color
import Control.Monad
import Data.Maybe
@@ -458,36 +459,39 @@ shootBullet ::
World
shootBullet itmtree cr (mz, x, magtree) w = fromMaybe w $ do
thebullet <- getBulletType itmtree magtree mz cr w
return $ foldl' (&) w (replicate x (makeBullet thebullet (itmtree ^. ldtValue) cr mz))
return $ foldl' (&) w (replicate x (makeBullet' thebullet (itmtree ^. ldtValue) cr mz))
makeBullet' :: Bullet -> Item -> Creature -> Muzzle -> World -> World
makeBullet' bu itm cr mz w = makeBullet bu itm bulpos dir . (randGen .~ g) $ w
where
bulpos = _crPos cr + rotateV (_crDir cr) moff
(moff, mrot) = heldItemOrient2D itm cr (_mzPos mz + V2 0 offset) (_mzRot mz)
(a, g) = randomR (- inacc, inacc) $ _randGen w
dir = _crDir cr + mrot + a
inacc = _mzInaccuracy mz
offset = case itm ^? itUse . heldParams . randomOffset of
Just x | x /= 0 -> fst . randomR (- x, x) $ _randGen w
_ -> 0
-- & makeMuzzleSmoke mz itm cr
-- the random generator is not updated here, not sure if that is a problem
makeBullet :: Bullet -> Item -> Creature -> Muzzle -> World -> World
makeBullet thebullet itm cr mz w =
w & randGen .~ g
makeBullet :: Bullet -> Item -> Point2 -> Float -> World -> World
makeBullet thebullet itm bulpos dir w =
w & randGen .~ g''
& cWorld . lWorld . instantBullets
.:~ ( thebullet
& buPos .~ bulpos
-- & buTrajectory .~ BasicBulletTrajectory
& buVel %~ (rotateV dir . (muzvel *.*))
& buDrag *~ drag
)
where
(moff, mrot) = heldItemOrient2D itm cr (_mzPos mz + V2 0 offset) (_mzRot mz)
bulpos = _crPos cr + rotateV (_crDir cr) moff
(a, g'') = randomR (- inacc, inacc) $ _randGen w
inacc = _mzInaccuracy mz
g = _randGen w
(drag, g') = case _rifling (_heldParams $ _itUse itm) of
ConstFloat x -> (x, g'')
UniRandFloat x y -> randomR (x, y) g''
(muzvel, g) = case _muzVel $ _heldParams $ _itUse itm of
ConstFloat x -> (x, g)
UniRandFloat x y -> randomR (x, y) g
(muzvel, g'') = case _muzVel $ _heldParams $ _itUse itm of
ConstFloat x -> (x, g')
UniRandFloat x y -> randomR (x, y) g'
dir = _crDir cr + mrot + a
offset = case itm ^? itUse . heldParams . randomOffset of
Just x | x /= 0 -> fst . randomR (- x, x) $ _randGen w
_ -> 0
mcUseHeld :: HeldItemType -> Item -> Machine -> World -> World
mcUseHeld hit = case hit of
@@ -555,7 +559,18 @@ mcShootLaser _ mc = cWorld . lWorld . lasers .:~ lasRayAt yellow dam phasev pos
dam = 11
mcShootAuto :: Item -> Machine -> World -> World
mcShootAuto _ _ = id
mcShootAuto itm mc w
| Just (FixedRate x 0) <- mc ^? mcType . mctTurret . tuWeapon . itUse . heldDelay
= w & cWorld . lWorld . machines . ix (_mcID mc) . mcType . mctTurret . tuWeapon
. itUse . heldDelay . rateTime .~ x
& makeBullet defaultBullet itm pos dir
| otherwise
= w & cWorld . lWorld . machines . ix (_mcID mc) . mcType . mctTurret . tuWeapon
. itUse . heldDelay . rateTime -~ 1
where
pos = _mcPos mc +.+ 20 *.* unitVectorAtAngle dir
dir = mc ^?! mcType . _McTurret . tuDir
-- | assumes that the item is held
shootTeslaArc :: Item -> Creature -> Muzzle -> World -> World
+12
View File
@@ -8,6 +8,18 @@ import Dodge.LevelGen.PlacementHelper
import Geometry
import LensHelp
putTurret :: Item -> Float -> Placement
putTurret itm rotSpeed =
sps0 $
PutMachine
(reverse $ square 10)
( defaultMachine
& mcColor .~ blue
& mcType .~ (turret itm & _McTurret . tuTurnSpeed .~ rotSpeed)
& mcHP .~ 50000
)
defaultMachineWall
putLasTurret :: Float -> Placement
putLasTurret rotSpeed =
sps0 $
+3 -1
View File
@@ -1,5 +1,6 @@
module Dodge.Room.LasTurret where
import Dodge.Item.Held.Cane
import qualified Data.Set as S
import Dodge.Cleat
import Dodge.Data.GenWorld
@@ -23,7 +24,8 @@ import RandomHelp
cenLasTur :: Room
cenLasTur =
roomNgon 8 200 & rmPmnts
.~ [ putLasTurret 0.02
-- .~ [ putLasTurret 0.02
.~ [ putTurret autoRifle 0.02
, heightWallPS (resetPLUse $ rprBoolShift (const . isInLnk) (shiftInBy 100)) 30 covershape
, mntLightLnkCond $ rprBool $ const . isInLnk
]
+80 -75
View File
@@ -282,7 +282,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 43;" t
ChainEffect src/Dodge/HeldUse.hs 44;" 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
@@ -2712,6 +2712,7 @@ _mcoMenuClick src/Dodge/Data/Input.hs 23;" f
_mcoSecSelStart src/Dodge/Data/Input.hs 30;" f
_mcoSelEnd src/Dodge/Data/Input.hs 30;" f
_mcoTermID src/Dodge/Data/Input.hs 37;" f
_mctTurret src/Dodge/Data/Machine.hs 53;" f
_mdBool src/Dodge/Data/Modification.hs 21;" f
_mdExternalID src/Dodge/Data/Modification.hs 17;" f
_mdExternalID1 src/Dodge/Data/Modification.hs 25;" f
@@ -3330,7 +3331,7 @@ alteRifle src/Dodge/Item/Held/Cane.hs 65;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 112;" f
amr src/Dodge/Item/Held/Rod.hs 44;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 74;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 75;" f
andOrRegex src/Dodge/DisplayInventory.hs 81;" f
angleBetween src/Geometry.hs 159;" f
angleVV src/Geometry/Vector.hs 57;" f
@@ -3338,23 +3339,23 @@ 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 243;" f
applyCME src/Dodge/HeldUse.hs 124;" f
applyCME src/Dodge/HeldUse.hs 125;" f
applyCreatureDamage src/Dodge/Creature/Damage.hs 14;" f
applyDamageEffect src/Dodge/Creature/Damage.hs 31;" f
applyEventIO src/Loop.hs 89;" f
applyIndividualDamage src/Dodge/Creature/Damage.hs 49;" f
applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f
applyInvLock src/Dodge/HeldUse.hs 139;" f
applyInvLock src/Dodge/HeldUse.hs 140;" f
applyMagnetsToBul src/Dodge/Bullet.hs 35;" f
applyNoDamage src/Dodge/Creature/Damage.hs 11;" f
applyPastDamages src/Dodge/Creature/State.hs 145;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f
applyPosition src/Sound.hs 110;" f
applyRecoil src/Dodge/HeldUse.hs 158;" f
applyRecoil src/Dodge/HeldUse.hs 159;" f
applyResFactor src/Dodge/Data/Config.hs 108;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 79;" f
applySidePush src/Dodge/HeldUse.hs 165;" f
applySoundCME src/Dodge/HeldUse.hs 149;" f
applySidePush src/Dodge/HeldUse.hs 166;" f
applySoundCME src/Dodge/HeldUse.hs 150;" f
applyTerminalCommand src/Dodge/Debug/Terminal.hs 28;" f
applyTerminalCommandArguments src/Dodge/Debug/Terminal.hs 40;" f
applyTerminalString src/Dodge/Debug/Terminal.hs 22;" f
@@ -3362,7 +3363,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 176;" f
applyTorqueCME src/Dodge/HeldUse.hs 177;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f
arc src/Picture/Base.hs 287;" f
@@ -3444,7 +3445,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 39;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMachineUpdate src/Dodge/Machine.hs 13;" f
basicMuzFlare src/Dodge/HeldUse.hs 276;" f
basicMuzFlare src/Dodge/HeldUse.hs 277;" f
basicTerminal src/Dodge/Terminal.hs 35;" f
battery src/Dodge/Item/Ammo.hs 91;" f
batteryPack src/Dodge/Item/Equipment.hs 55;" f
@@ -3483,7 +3484,7 @@ boosterGun src/Dodge/Item/Equipment/Booster.hs 9;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f
bounceBall src/Dodge/Base/Collide.hs 77;" f
bounceDir src/Dodge/Bullet.hs 104;" f
bounceDir src/Dodge/Bullet.hs 105;" f
bouncePoint src/Dodge/Base/Collide.hs 87;" f
boundPoints src/Bound.hs 10;" f
boundedGrid src/Grid.hs 19;" f
@@ -3710,7 +3711,7 @@ createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla.hs 81;" f
createNewArc src/Dodge/Tesla/Arc.hs 90;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 581;" f
createProjectile src/Dodge/HeldUse.hs 599;" f
createShell src/Dodge/Projectile/Create.hs 19;" f
createShieldWall src/Dodge/Euse.hs 106;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
@@ -3774,7 +3775,7 @@ damageHP src/Dodge/Creature/Damage.hs 65;" f
damageMaterial src/Dodge/Material/Damage.hs 7;" f
damageSensor src/Dodge/Placement/Instance/Sensor.hs 15;" f
damageStone src/Dodge/Material/Damage.hs 20;" f
damageThingHit src/Dodge/Bullet.hs 179;" f
damageThingHit src/Dodge/Bullet.hs 180;" f
damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 45;" f
damageWall src/Dodge/Wall/Damage.hs 15;" f
damageWallEffect src/Dodge/Wall/DamageEffect.hs 11;" f
@@ -3895,7 +3896,7 @@ deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f
deleteWallID src/Dodge/Wall/Delete.hs 13;" f
deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f
denormalEdges src/Polyhedra.hs 136;" f
destroyAt src/Dodge/Bullet.hs 203;" f
destroyAt src/Dodge/Bullet.hs 204;" f
destroyBlock src/Dodge/Block.hs 56;" f
destroyDoor src/Dodge/Block.hs 85;" f
destroyInvItem src/Dodge/Inventory.hs 42;" f
@@ -3912,7 +3913,7 @@ detector src/Dodge/Item/Held/Utility.hs 41;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 430;" f
detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f
detectorInfo src/Dodge/Item/Info.hs 179;" f
determineProjectileTracking src/Dodge/HeldUse.hs 570;" f
determineProjectileTracking src/Dodge/HeldUse.hs 588;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 53;" f
diffAngles src/Geometry.hs 210;" f
@@ -3970,8 +3971,8 @@ doDrag src/Dodge/Update/Input/InGame.hs 98;" 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 525;" f
doHeldUseEffect src/Dodge/HeldUse.hs 97;" f
doGenFloat src/Dodge/HeldUse.hs 529;" f
doHeldUseEffect src/Dodge/HeldUse.hs 98;" f
doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 26;" f
@@ -4022,7 +4023,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 25;" f
doWeaponRepetitions src/Dodge/HeldUse.hs 113;" f
doWeaponRepetitions src/Dodge/HeldUse.hs 114;" f
doWorldEvents src/Dodge/Update.hs 429;" f
doWorldPos src/Dodge/WorldPos.hs 7;" f
door src/Dodge/Room/Door.hs 13;" f
@@ -4214,7 +4215,7 @@ expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f
expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 186;" f
expireAndDamage src/Dodge/Bullet.hs 187;" f
expireAndDamageFL src/Dodge/Flame.hs 47;" f
explodeShell src/Dodge/Projectile/Update.hs 154;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f
@@ -4260,7 +4261,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 367;" f
flareCircleAt src/Dodge/HeldUse.hs 257;" f
flareCircleAt src/Dodge/HeldUse.hs 258;" 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
@@ -4327,7 +4328,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 158;" f
gameplayMenu src/Dodge/Menu.hs 131;" f
gameplayMenuOptions src/Dodge/Menu.hs 134;" f
gasCreate src/Dodge/HeldUse.hs 522;" f
gasCreate src/Dodge/HeldUse.hs 526;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -4343,8 +4344,8 @@ getArguments src/Dodge/Update/Scroll.hs 215;" f
getArguments' src/Dodge/Update/Scroll.hs 203;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 82;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulletTrajectory src/Dodge/HeldUse.hs 433;" f
getBulletType src/Dodge/HeldUse.hs 407;" f
getBulletTrajectory src/Dodge/HeldUse.hs 434;" f
getBulletType src/Dodge/HeldUse.hs 408;" f
getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f
getCrDexterity src/Dodge/Creature/Statistics.hs 11;" f
@@ -4353,9 +4354,9 @@ 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
getLaserColor src/Dodge/HeldUse.hs 273;" f
getLaserDamage src/Dodge/HeldUse.hs 270;" f
getLaserPhaseV src/Dodge/HeldUse.hs 267;" f
getLaserColor src/Dodge/HeldUse.hs 274;" f
getLaserDamage src/Dodge/HeldUse.hs 271;" f
getLaserPhaseV src/Dodge/HeldUse.hs 268;" f
getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f
getMenuMouseContext src/Dodge/Update.hs 376;" f
@@ -4417,7 +4418,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 37;" f
hammerCheck src/Dodge/HeldUse.hs 50;" f
hammerCheck src/Dodge/HeldUse.hs 51;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 44;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -4441,12 +4442,12 @@ headMap src/Dodge/DoubleTree.hs 170;" f
heal src/Dodge/Item/Consumable.hs 17;" f
heal25 src/Dodge/Item/Consumable.hs 14;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 366;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 71;" f
healthTest src/Dodge/Room/LasTurret.hs 92;" f
healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 72;" f
healthTest src/Dodge/Room/LasTurret.hs 93;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
heldEffect src/Dodge/HeldUse.hs 36;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 86;" f
heldEffectNoHammerCheck src/Dodge/HeldUse.hs 39;" f
heldEffect src/Dodge/HeldUse.hs 37;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 87;" f
heldEffectNoHammerCheck src/Dodge/HeldUse.hs 40;" f
heldInfo src/Dodge/Item/Info.hs 47;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 78;" f
heldItemOrient2D src/Dodge/Item/HeldOffset.hs 26;" f
@@ -4461,7 +4462,7 @@ highBar src/Dodge/Room/Foreground.hs 89;" f
highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f
highMesh src/Dodge/Room/Foreground.hs 25;" f
hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f
hitEffFromBul src/Dodge/Bullet.hs 149;" f
hitEffFromBul src/Dodge/Bullet.hs 150;" f
hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f
holdForm src/Dodge/Creature/Boid.hs 136;" f
holsterWeapon src/Dodge/Creature/Volition.hs 14;" f
@@ -4563,7 +4564,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 283;" f
isAmmoIntLink src/Dodge/HeldUse.hs 284;" f
isAnimate src/Dodge/Creature/Test.hs 136;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f
isConnected src/Dodge/Inventory/Swap.hs 95;" f
@@ -4596,7 +4597,7 @@ itemBaseName src/Dodge/Item/Display.hs 50;" f
itemBlips src/Dodge/RadarSweep.hs 75;" f
itemCombinations src/Dodge/Combine/Combinations.hs 55;" f
itemCombinationsEdges src/Dodge/Combine/Graph.hs 60;" f
itemDetectorEffect src/Dodge/HeldUse.hs 313;" f
itemDetectorEffect src/Dodge/HeldUse.hs 314;" f
itemDisplay src/Dodge/Item/Display.hs 16;" f
itemDisplayPad src/Dodge/Item/Display.hs 34;" f
itemEquipPict src/Dodge/Item/Draw.hs 16;" f
@@ -4636,8 +4637,8 @@ jumpLegs src/Dodge/Item/Equipment.hs 155;" f
justify src/Justify.hs 9;" f
k src/ShortShow.hs 34;" f
keyCard src/Dodge/Item/Held/Utility.hs 30;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 68;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 56;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 69;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 57;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 436;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
@@ -4649,14 +4650,14 @@ lamp src/Dodge/Creature/Lamp.hs 22;" f
lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 111;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 112;" f
lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 390;" f
lasRayAt src/Dodge/HeldUse.hs 384;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 104;" f
lasTunnel src/Dodge/Room/LasTurret.hs 123;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 164;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
lasRayAt src/Dodge/HeldUse.hs 385;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 105;" f
lasTunnel src/Dodge/Room/LasTurret.hs 124;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f
laser src/Dodge/Item/Held/BatteryGuns.hs 48;" f
laserLinkTest src/Dodge/Item/Grammar.hs 126;" f
lastMap src/Dodge/DoubleTree.hs 174;" f
@@ -4682,8 +4683,8 @@ leftRightCombine src/Dodge/Item/Grammar.hs 179;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 454;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 43;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 33;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 44;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 34;" f
lightSensor src/Dodge/Placement/Instance/Sensor.hs 52;" f
lightsToRender src/Dodge/Render/Lights.hs 14;" f
lightx4 src/Color.hs 145;" f
@@ -4714,7 +4715,7 @@ lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 380;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f
loadMuzzle src/Dodge/HeldUse.hs 193;" f
loadMuzzle src/Dodge/HeldUse.hs 194;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4769,7 +4770,8 @@ makeAttach src/Dodge/Item/Attach.hs 10;" f
makeBlip src/Dodge/RadarSweep.hs 51;" f
makeBlockDebris src/Dodge/Block/Debris.hs 28;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 466;" f
makeBullet src/Dodge/HeldUse.hs 478;" f
makeBullet' src/Dodge/HeldUse.hs 464;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f
@@ -4784,18 +4786,18 @@ makeDefaultCorpse src/Dodge/Corpse/Make.hs 14;" f
makeDoorDebris src/Dodge/Block/Debris.hs 18;" f
makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f
makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 73;" f
makeFlak src/Dodge/Bullet.hs 135;" f
makeFlak src/Dodge/Bullet.hs 136;" f
makeFlame src/Dodge/Flame.hs 131;" f
makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 56;" f
makeFlamelet src/Dodge/EnergyBall.hs 15;" f
makeFlamerSmokeAt src/Dodge/WorldEvent/Cloud.hs 68;" f
makeFlashBall src/Dodge/EnergyBall.hs 73;" f
makeFootstepSound src/Dodge/Creature/State/WalkCycle.hs 32;" f
makeFragBullets src/Dodge/Bullet.hs 120;" f
makeFragBullets src/Dodge/Bullet.hs 121;" f
makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 80;" f
makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 33;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 215;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 216;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4851,10 +4853,11 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 124;" f
mcSPic src/Dodge/Render/ShapePicture.hs 132;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 87;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 119;" f
mcShootLaser src/Dodge/HeldUse.hs 549;" f
mcShootAuto src/Dodge/HeldUse.hs 561;" f
mcShootLaser src/Dodge/HeldUse.hs 553;" f
mcTriggerVal src/Dodge/Machine/Update.hs 93;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f
mcUseHeld src/Dodge/HeldUse.hs 492;" f
mcUseHeld src/Dodge/HeldUse.hs 496;" f
mcUseItem src/Dodge/Machine/Update.hs 79;" f
medkit src/Dodge/Item/Consumable.hs 8;" f
megaBattery src/Dodge/Item/Ammo.hs 79;" f
@@ -4924,13 +4927,13 @@ mouseActionsCr src/Dodge/Creature/YourControl.hs 164;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 58;" f
mouseCursorType src/Dodge/Render/Picture.hs 80;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f
moveBullet src/Dodge/Bullet.hs 195;" f
moveBullet src/Dodge/Bullet.hs 196;" f
moveCombineSel src/Dodge/Update/Scroll.hs 121;" f
moveHammerUp src/Dodge/Hammer.hs 5;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 53;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
moveOldHotkey src/Dodge/Hotkey.hs 31;" f
movePenBullet src/Dodge/Bullet.hs 213;" f
movePenBullet src/Dodge/Bullet.hs 214;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 17;" f
moveToSideFirstOutLink src/Dodge/Room/Warning.hs 56;" f
@@ -4948,7 +4951,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 243;" f
muzFlareAt src/Dodge/HeldUse.hs 244;" 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
@@ -5068,7 +5071,7 @@ pauseSound src/Dodge/SoundLogic.hs 41;" f
pauseTime src/Dodge/Update.hs 189;" f
peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f
pedestalRoom src/Dodge/Room/Containing.hs 50;" f
penThing src/Dodge/Bullet.hs 225;" f
penThing src/Dodge/Bullet.hs 226;" f
perMat src/MatrixHelper.hs 49;" f
perceptionUpdate src/Dodge/Creature/Perception.hs 22;" f
performAction src/Dodge/Creature/Action.hs 96;" f
@@ -5276,7 +5279,7 @@ putColorLamp src/Dodge/Placement/Instance/LightSource.hs 203;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 206;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f
putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f
putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 106;" f
@@ -5284,6 +5287,7 @@ putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 43;" f
putShape src/Dodge/Room/Foreground.hs 134;" f
putStrLnAppend src/Dodge/LevelGen.hs 79;" f
putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f
putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putWireEnd src/Dodge/Wire.hs 31;" f
putWireStart src/Dodge/Wire.hs 34;" f
qID src/Quaternion.hs 54;" f
@@ -5358,7 +5362,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 440;" f
rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteScreen src/Dodge/Item/Scope.hs 50;" f
remoteShellShape src/Dodge/Projectile/Draw.hs 42;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 394;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 395;" f
removeDot src/ShortShow.hs 30;" f
removeHotkey src/Dodge/Hotkey.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
@@ -5552,7 +5556,7 @@ setClusterID src/Dodge/Combine/Graph.hs 115;" f
setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 49;" f
setFallback src/Dodge/PlacementSpot.hs 127;" f
setFromToDams src/Dodge/Bullet.hs 174;" f
setFromToDams src/Dodge/Bullet.hs 175;" f
setHotkey src/Dodge/Hotkey.hs 37;" f
setInLinks src/Dodge/RoomLink.hs 51;" f
setInLinksByType src/Dodge/RoomLink.hs 54;" f
@@ -5637,14 +5641,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 453;" f
shootBullet src/Dodge/HeldUse.hs 454;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 364;" f
shootLaser src/Dodge/HeldUse.hs 365;" f
shootOutPassage src/Dodge/Room/RezBox.hs 74;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 558;" f
shootTeslaArc src/Dodge/HeldUse.hs 576;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 343;" f
shootTractorBeam src/Dodge/HeldUse.hs 344;" 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
@@ -5659,9 +5663,9 @@ showAttachItem src/Dodge/Item/Display.hs 64;" f
showEquipItem src/Dodge/Item/Display.hs 77;" f
showInt src/Dodge/Item/Info.hs 30;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f
showManObj src/Dodge/TestString.hs 73;" f
showManObj src/Dodge/TestString.hs 75;" f
showTerminalError src/Dodge/Debug/Terminal.hs 76;" f
showTimeFlow src/Dodge/TestString.hs 122;" f
showTimeFlow src/Dodge/TestString.hs 124;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 136;" f
shrinkVert src/Geometry/Polygon.hs 140;" f
shuffle src/RandomHelp.hs 49;" f
@@ -5923,14 +5927,14 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 69;" f
topTestPart src/Dodge/TestString.hs 71;" f
torch src/Dodge/Item/Held/Utility.hs 33;" f
torchShape src/Dodge/Item/Draw/SPic.hs 252;" f
torqueCr src/Dodge/WorldEffect.hs 63;" 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 353;" f
tractorBeamAt src/Dodge/HeldUse.hs 354;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 70;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 414;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -6002,6 +6006,7 @@ trySynthBullet src/Dodge/Creature/State.hs 204;" f
tryUseParent src/Dodge/Creature/State.hs 197;" f
turnTo src/Dodge/Movement/Turn.hs 4;" f
turnToAmount src/Dodge/Movement/Turn.hs 15;" f
turret src/Dodge/Placement/Instance/Turret.hs 35;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 16;" f
tweenAngles src/Geometry/Vector.hs 184;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f
@@ -6040,7 +6045,7 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 455;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f
updateBounds src/Dodge/Update/Camera.hs 206;" f
updateBulVel src/Dodge/Bullet.hs 53;" f
updateBulVel src/Dodge/Bullet.hs 54;" f
updateBullet src/Dodge/Bullet.hs 22;" f
updateBullets src/Dodge/Update.hs 545;" f
updateCamera src/Dodge/Update/Camera.hs 31;" f
@@ -6167,27 +6172,27 @@ upperPrismPolyTS src/Shape.hs 119;" f
upperRounded src/Shape.hs 184;" f
useBreakL src/Dodge/Item/Grammar.hs 27;" f
useBreakListsLinkTest src/Dodge/Item/Grammar.hs 35;" f
useBulletPayload src/Dodge/Bullet.hs 109;" f
useBulletPayload src/Dodge/Bullet.hs 110;" 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 497;" f
useGasParams src/Dodge/HeldUse.hs 501;" f
useHotkey src/Dodge/Creature/YourControl.hs 54;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 287;" f
useLoadedAmmo src/Dodge/HeldUse.hs 288;" f
useMagShield src/Dodge/Euse.hs 45;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 7;" f
useRewindGun src/Dodge/HeldUse.hs 642;" f
useRewindGun src/Dodge/HeldUse.hs 660;" f
useRewindGun src/Dodge/Luse.hs 40;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f
useStopWatch src/Dodge/HeldUse.hs 623;" f
useStopWatch src/Dodge/HeldUse.hs 641;" f
useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/HeldUse.hs 61;" f
useTimeCheck src/Dodge/HeldUse.hs 62;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 631;" f
useTimeScrollGun src/Dodge/HeldUse.hs 649;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 433;" f
@@ -6223,7 +6228,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 328;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 321;" f
walkNozzle src/Dodge/HeldUse.hs 322;" f
walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 80;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 50;" f