Add more wall reflection/randomisation

This commit is contained in:
2024-12-22 10:42:10 +00:00
parent 84821a1531
commit acba8de359
4 changed files with 122 additions and 79 deletions
+21 -8
View File
@@ -31,29 +31,42 @@ updateTeslaArc ::
TeslaArc ->
(World, Maybe TeslaArc)
updateTeslaArc w pt
| _taTimer pt == 2 = (makesparks $ foldl' (flip damthings) w thearc, Just $ pt & taTimer -~ 1)
| _taTimer pt == 2 = (makesparks $ foldl' (flip damthings) w thearc
, Just $ pt & taTimer -~ 1)
| _taTimer pt < 1 = (w, Nothing)
| otherwise = (w, Just $ pt & taTimer -~ 1)
where
thearc = _taArcSteps pt
rcol = brightX 100 1.5 <$> takeOne [white, azure, blue, cyan]
rdir = state (randomR (-0.7, 0.7)) <&> (+ ld)
-- rdir = state (randomR (-0.7, 0.7)) <&> (+ ld)
rspeed = state (randomR (3, 6))
makeaspark = randSpark ELECTRICAL rspeed rcol rdir lp
makesparks = makeaspark . makeaspark . makeaspark
(lp, ld) = case last thearc of
ArcStep lp' ld' NothingID -> (lp', ld')
rp x = randPeakedParam 2 (x - 0.7) x (x +0.7)
(lp, rdir) = case last thearc of
ArcStep lp' ld' NothingID -> (lp', rp ld')
ArcStep lp' ld' (CrID crid) -> case w ^? cWorld . lWorld . creatures . ix crid of
Nothing -> (lp', ld')
Just cr -> (lp' -.- (_crRad cr + 1) *.* unitVectorAtAngle ld', ld' + pi)
Nothing -> (lp', rp ld')
Just cr -> (lp' -.- (_crRad cr + 1) *.* unitVectorAtAngle ld', rp $ ld' + pi)
ArcStep lp' ld' (WlID wlid) -> case w ^? cWorld . lWorld . walls . ix wlid of
Nothing -> (lp', ld')
Just _ -> (lp' -.- 2 *.* unitVectorAtAngle ld', ld' + pi)
Nothing -> (lp', rp ld')
--Just _ -> (lp' -.- 2 *.* unitVectorAtAngle ld', ld' + pi)
Just wl -> (lp' -.- 2 *.* unitVectorAtAngle ld'
-- , uncurry (reflectAngle ld') (_wlLine wl))
, randWallReflect ld' wl)
damthings (ArcStep p dir crwl) = damageCrWlID (thedamage p dir) crwl
thedamage p dir = Damage ELECTRICAL 50 (p -.- q) p (p +.+ q) NoDamageEffect
where
q = 5 *.* unitVectorAtAngle dir
randWallReflect :: RandomGen g => Float -> Wall -> State g Float
randWallReflect a wl = do
let (x,y) = _wlLine wl
outa = reflectAngle a x y
a1 = nearestAngleRep outa $ argV (x-y)
a2 = if a1 < outa then a1 + pi else a1 - pi
randPeaked a1 outa a2
makeTeslaArc :: ItemParams -> Point2 -> Float -> World -> (World, ItemParams)
makeTeslaArc ip pos dir w =
( w & randGen .~ g
+14
View File
@@ -139,6 +139,20 @@ difference x y
reflectIn :: Point2 -> Point2 -> Point2
reflectIn line vec = rotateV (2 * angleBetween line vec) vec
-- takes an angle of entry (measured from x axis) and two wall points and gives a
-- reflected angle (from x axis)
reflectAngle :: Float -> Point2 -> Point2 -> Float
reflectAngle a x y = 2 * argV (x - y) - a
{- | Find the representation (by applying +-pi) of an angle
- that is nearest to another given angle -}
nearestAngleRep :: Float -> Float -> Float
nearestAngleRep a b
| b >= a && b - a <= pi = b
| b >= a = nearestAngleRep a (b - 2*pi)
| a - b <= pi = b
| otherwise = nearestAngleRep a (b + 2*pi)
{- | Find angle between two points.
Not normalised, ranges from -2*pi to 2*pi.
-}
+11
View File
@@ -121,3 +121,14 @@ randsSpread (a, b) i
randsOnCirc :: RandomGen g => Int -> State g [Float]
randsOnCirc = randsSpread (0, 2 * pi)
randPeakedParam :: RandomGen g => Int -> Float -> Float -> Float -> State g Float
randPeakedParam i a b c = do
x <- state $ randomR (-1, 1)
let y = x ^ i
return $ if y < 0
then a + y * (a-b)
else b + y * (c-b)
randPeaked :: RandomGen g => Float -> Float -> Float -> State g Float
randPeaked = randPeakedParam 3
+76 -71
View File
@@ -3326,29 +3326,29 @@ 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
andOrRegex src/Dodge/DisplayInventory.hs 81;" f
angleBetween src/Geometry.hs 145;" f
angleBetween src/Geometry.hs 159;" f
angleVV src/Geometry/Vector.hs 57;" f
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 115;" f
applyCME src/Dodge/HeldUse.hs 117;" 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 130;" f
applyInvLock src/Dodge/HeldUse.hs 132;" f
applyMagnetsToBul src/Dodge/Bullet.hs 36;" f
applyNoDamage src/Dodge/Creature/Damage.hs 11;" f
applyPastDamages src/Dodge/Creature/State.hs 135;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f
applyPosition src/Sound.hs 110;" f
applyRecoil src/Dodge/HeldUse.hs 149;" f
applyRecoil src/Dodge/HeldUse.hs 151;" f
applyResFactor src/Dodge/Data/Config.hs 108;" f
applySetTerminalString src/Dodge/Debug/Terminal.hs 79;" f
applySidePush src/Dodge/HeldUse.hs 156;" f
applySoundCME src/Dodge/HeldUse.hs 140;" f
applySidePush src/Dodge/HeldUse.hs 158;" f
applySoundCME src/Dodge/HeldUse.hs 142;" 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
@@ -3356,15 +3356,15 @@ 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 167;" f
applyTorqueCME src/Dodge/HeldUse.hs 169;" f
applyWorldConfig src/Dodge/Config/Update.hs 38;" f
aquamarine src/Color.hs 23;" f
arc src/Picture/Base.hs 287;" f
arcFull src/Picture/Arc.hs 11;" f
arcPart src/Picture/Arc.hs 24;" f
arcSolid src/Picture/Base.hs 276;" f
arcStepwise src/Geometry.hs 329;" f
arcStepwisePositive src/Geometry.hs 343;" f
arcStepwise src/Geometry.hs 343;" f
arcStepwisePositive src/Geometry.hs 357;" f
arcTest src/Picture/Test.hs 9;" f
arcTest' src/Picture/Test.hs 21;" f
argV src/Geometry/Vector.hs 80;" f
@@ -3438,7 +3438,7 @@ basicDrawBeam src/Dodge/Beam/Draw.hs 11;" f
basicItemDisplay src/Dodge/Item/Display.hs 34;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMachineUpdate src/Dodge/Machine.hs 13;" f
basicMuzFlare src/Dodge/HeldUse.hs 267;" f
basicMuzFlare src/Dodge/HeldUse.hs 269;" f
basicTerminal src/Dodge/Terminal.hs 35;" f
battery src/Dodge/Item/Ammo.hs 91;" f
batteryPack src/Dodge/Item/Equipment.hs 55;" f
@@ -3524,7 +3524,7 @@ centroid src/Geometry/Polygon.hs 130;" f
centroidNum src/Geometry/Polygon.hs 133;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainLinkOrientation src/Dodge/Creature/State.hs 266;" f
chainPairs src/Geometry.hs 363;" f
chainPairs src/Geometry.hs 377;" f
changeSwapOther src/Dodge/Inventory.hs 149;" f
changeSwapSel src/Dodge/Inventory.hs 141;" f
changeSwapWith src/Dodge/Inventory.hs 184;" f
@@ -3693,7 +3693,7 @@ crZoneSize src/Dodge/Zoning/Creature.hs 39;" f
craftInfo src/Dodge/Item/Info.hs 123;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 44;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 434;" f
createArc src/Dodge/Tesla/Arc.hs 67;" f
createArc src/Dodge/Tesla/Arc.hs 78;" f
createBarrelSpark src/Dodge/Spark.hs 44;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f
createForceField src/Dodge/ForceField.hs 7;" f
@@ -3701,9 +3701,9 @@ createGas src/Dodge/Gas.hs 8;" f
createHeadLamp src/Dodge/Euse.hs 135;" f
createItemYou src/Dodge/Inventory/Add.hs 95;" f
createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 76;" f
createNewArc src/Dodge/Tesla/Arc.hs 87;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 573;" f
createProjectile src/Dodge/HeldUse.hs 575;" f
createShell src/Dodge/Projectile/Create.hs 19;" f
createShieldWall src/Dodge/Euse.hs 110;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
@@ -3903,13 +3903,13 @@ detector src/Dodge/Item/Held/Utility.hs 41;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 429;" f
detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f
detectorInfo src/Dodge/Item/Info.hs 178;" f
determineProjectileTracking src/Dodge/HeldUse.hs 562;" f
determineProjectileTracking src/Dodge/HeldUse.hs 564;" f
diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f
did src/Dodge/Item/InvSize.hs 53;" f
diffAngles src/Geometry.hs 196;" f
diffAngles src/Geometry.hs 210;" f
difference src/Geometry.hs 130;" f
digitalLine src/Geometry.hs 288;" f
digitalRect src/Geometry.hs 305;" f
digitalLine src/Geometry.hs 302;" f
digitalRect src/Geometry.hs 319;" f
dim src/Color.hs 112;" f
dirtColor src/Dodge/Block/Debris.hs 160;" f
dirtDebris src/Dodge/Block/Debris.hs 154;" f
@@ -3928,11 +3928,11 @@ displayTerminalLineString src/Dodge/Update.hs 443;" f
dist src/Geometry/Vector.hs 179;" f
dist3 src/Geometry/Vector3D.hs 101;" f
divTo src/Geometry/Zone.hs 6;" f
divideCircle src/Geometry.hs 324;" f
divideCircle src/Geometry.hs 338;" f
divideDoorPane src/Dodge/Placement/Instance/Door.hs 59;" f
divideLine src/Geometry.hs 251;" f
divideLineExact src/Geometry.hs 279;" f
divideLineOddNumPoints src/Geometry.hs 264;" f
divideLine src/Geometry.hs 265;" f
divideLineExact src/Geometry.hs 293;" f
divideLineOddNumPoints src/Geometry.hs 278;" f
doAfterPlacement src/Dodge/Layout.hs 86;" f
doAfterPlacements src/Dodge/Layout.hs 83;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 180;" f
@@ -3959,7 +3959,7 @@ 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 517;" f
doGenFloat src/Dodge/HeldUse.hs 519;" f
doHeldUseEffect src/Dodge/HeldUse.hs 94;" f
doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f
@@ -4010,7 +4010,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 104;" f
doWeaponRepetitions src/Dodge/HeldUse.hs 106;" f
doWorldEvents src/Dodge/Update.hs 425;" f
doWorldPos src/Dodge/WorldPos.hs 7;" f
door src/Dodge/Room/Door.hs 13;" f
@@ -4021,10 +4021,10 @@ dotV src/Geometry/Vector.hs 75;" f
dotV3 src/Geometry/Vector3D.hs 119;" f
doubleCorridorBarrels src/Dodge/Room/Room.hs 265;" f
doubleLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 28;" f
doublePair src/Geometry.hs 149;" f
doublePairSet src/Geometry.hs 153;" f
doublePair src/Geometry.hs 163;" f
doublePairSet src/Geometry.hs 167;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 72;" f
doubleV2 src/Geometry.hs 156;" f
doubleV2 src/Geometry.hs 170;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f
drawAugmentedHUD src/Dodge/Creature/State.hs 293;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 57;" f
@@ -4247,7 +4247,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 366;" f
flareCircleAt src/Dodge/HeldUse.hs 248;" f
flareCircleAt src/Dodge/HeldUse.hs 250;" 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
@@ -4314,7 +4314,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 514;" f
gasCreate src/Dodge/HeldUse.hs 516;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 22;" f
generateGraphs src/Dodge/LevelGen.hs 39;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
@@ -4329,8 +4329,8 @@ getAmmoLinks src/Dodge/Item/Grammar.hs 81;" f
getArguments src/Dodge/Update/Scroll.hs 152;" f
getArguments' src/Dodge/Update/Scroll.hs 140;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulletTrajectory src/Dodge/HeldUse.hs 425;" f
getBulletType src/Dodge/HeldUse.hs 399;" f
getBulletTrajectory src/Dodge/HeldUse.hs 427;" f
getBulletType src/Dodge/HeldUse.hs 401;" f
getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f
getCrDexterity src/Dodge/Creature/Statistics.hs 11;" f
@@ -4339,9 +4339,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 264;" f
getLaserDamage src/Dodge/HeldUse.hs 261;" f
getLaserPhaseV src/Dodge/HeldUse.hs 258;" f
getLaserColor src/Dodge/HeldUse.hs 266;" f
getLaserDamage src/Dodge/HeldUse.hs 263;" f
getLaserPhaseV src/Dodge/HeldUse.hs 260;" f
getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f
getMenuMouseContext src/Dodge/Update.hs 372;" f
@@ -4441,7 +4441,7 @@ heldItemSPic src/Dodge/Item/Draw/SPic.hs 208;" f
heldPositionInfo src/Dodge/Item/Info.hs 194;" f
helpCommand src/Dodge/Terminal.hs 66;" f
helpPoly3D src/Polyhedra.hs 125;" f
heron src/Geometry.hs 221;" f
heron src/Geometry.hs 235;" f
hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f
highBar src/Dodge/Room/Foreground.hs 89;" f
highDiagonalMesh src/Dodge/Room/Foreground.hs 35;" f
@@ -4521,7 +4521,7 @@ intersectSegSegFullTest src/Geometry/Intersect.hs 103;" f
intersectSegSegPreTest src/Geometry/Intersect.hs 136;" f
intersectSegSegTest src/Geometry/Intersect.hs 122;" f
intersectSegsSeg src/Geometry/Intersect.hs 232;" f
intervalList src/Geometry.hs 315;" f
intervalList src/Geometry.hs 329;" f
interweave src/Justify.hs 17;" f
intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f
invAdj src/Dodge/Item/Grammar.hs 206;" f
@@ -4549,7 +4549,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 275;" f
isAmmoIntLink src/Dodge/HeldUse.hs 277;" 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
@@ -4559,10 +4559,10 @@ isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 169;" f
isInLnk src/Dodge/PlacementSpot.hs 160;" f
isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 8;" f
isLeftOf src/Geometry.hs 189;" f
isLeftOfA src/Geometry.hs 181;" f
isLeftOf src/Geometry.hs 203;" f
isLeftOfA src/Geometry.hs 195;" f
isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f
isOnSeg src/Geometry.hs 254;" f
isOutLnk src/Dodge/PlacementSpot.hs 164;" f
isOverTerminalScreen src/Dodge/Update.hs 393;" f
isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f
@@ -4582,7 +4582,7 @@ itemBaseName src/Dodge/Item/Display.hs 45;" 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 305;" f
itemDetectorEffect src/Dodge/HeldUse.hs 307;" f
itemDisplay src/Dodge/Item/Display.hs 16;" f
itemDisplayPad src/Dodge/Item/Display.hs 29;" f
itemEquipPict src/Dodge/Item/Draw.hs 16;" f
@@ -4637,7 +4637,7 @@ lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 111;" f
lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 389;" f
lasRayAt src/Dodge/HeldUse.hs 376;" f
lasRayAt src/Dodge/HeldUse.hs 378;" 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
@@ -4699,7 +4699,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 184;" f
loadMuzzle src/Dodge/HeldUse.hs 186;" f
loadSaveSlot src/Dodge/Save.hs 74;" f
loadSeed src/Dodge/LoadSeed.hs 7;" f
loadSound src/Dodge/SoundLogic/LoadSound.hs 11;" f
@@ -4754,7 +4754,7 @@ 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 458;" f
makeBullet src/Dodge/HeldUse.hs 460;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 18;" f
@@ -4780,7 +4780,7 @@ makeFragBullets src/Dodge/Bullet.hs 107;" 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 206;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 208;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
@@ -4801,7 +4801,7 @@ makeSwitch src/Dodge/LevelGen/Switch.hs 52;" f
makeSwitchSPic src/Dodge/LevelGen/Switch.hs 40;" f
makeTermLine src/Dodge/Terminal.hs 120;" f
makeTermPara src/Dodge/Terminal.hs 123;" f
makeTeslaArc src/Dodge/Tesla/Arc.hs 57;" f
makeTeslaArc src/Dodge/Tesla/Arc.hs 68;" f
makeTeslaBallAt src/Dodge/Tesla/Ball.hs 6;" f
makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f
makeThickSmokeAt src/Dodge/WorldEvent/Cloud.hs 54;" f
@@ -4835,10 +4835,10 @@ 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 541;" f
mcShootLaser src/Dodge/HeldUse.hs 543;" f
mcTriggerVal src/Dodge/Machine/Update.hs 93;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 27;" f
mcUseHeld src/Dodge/HeldUse.hs 484;" f
mcUseHeld src/Dodge/HeldUse.hs 486;" 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
@@ -4889,7 +4889,7 @@ mirrorXAxis src/Geometry/Polygon.hs 49;" f
mirrorxz src/Picture/Base.hs 335;" f
mirroryz src/Picture/Base.hs 340;" f
missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
mixAngles src/Geometry.hs 205;" f
mixAngles src/Geometry.hs 219;" f
mixColors src/Color.hs 86;" f
mixColorsFrac src/Color.hs 82;" f
mixColorsLinear src/Color.hs 95;" f
@@ -4932,7 +4932,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 234;" f
muzFlareAt src/Dodge/HeldUse.hs 236;" 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
@@ -4949,13 +4949,14 @@ mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 177;" f
myIntersectSegSeg src/Geometry/Intersect.hs 155;" f
myParams src/Dodge/Combine/Graph.hs 102;" f
nRays src/Geometry.hs 170;" f
nRaysRad src/Geometry.hs 174;" f
nRays src/Geometry.hs 184;" f
nRaysRad src/Geometry.hs 188;" f
nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f
nearParallel src/Dodge/LevelGen/StaticWalls/Deprecated.hs 14;" f
nearPoint src/Dodge/Zoning/Common.hs 8;" f
nearRect src/Dodge/Zoning/Common.hs 16;" f
nearSeg src/Dodge/Zoning/Common.hs 12;" f
nearestAngleRep src/Geometry.hs 149;" f
newExtraAwareness src/Dodge/Creature/Perception.hs 137;" f
newHotkey src/Dodge/Hotkey.hs 17;" f
newKey src/IntMapHelp.hs 60;" f
@@ -5124,11 +5125,11 @@ pnsNearPoint src/Dodge/Zoning/Pathing.hs 12;" f
pnsNearRect src/Dodge/Zoning/Pathing.hs 18;" f
pnsNearSeg src/Dodge/Zoning/Pathing.hs 15;" f
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
pointInCircle src/Geometry.hs 212;" f
pointInCircle src/Geometry.hs 226;" f
pointInOrOnPolygon src/Geometry/Polygon.hs 59;" f
pointInPolyPoints src/Geometry/ConvexPoly.hs 70;" f
pointInPolygon src/Geometry/Polygon.hs 66;" f
pointIsInCone src/Geometry.hs 378;" f
pointIsInCone src/Geometry.hs 392;" f
pointIsOnScreen src/Dodge/Base/Window.hs 59;" f
pointTowardsImpulse src/Dodge/Path.hs 63;" f
pointerToItem src/Dodge/Item/Location.hs 36;" f
@@ -5178,7 +5179,7 @@ polyToEdges src/Polyhedra.hs 133;" f
polyToGeoRender src/Polyhedra.hs 142;" f
polyToPics src/Polyhedra.hs 122;" f
polyToTris src/Geometry/Triangulate.hs 7;" f
polyToTris' src/Geometry.hs 160;" f
polyToTris' src/Geometry.hs 174;" f
polyToTris'' src/Geometry/Triangulate.hs 15;" f
polygon src/Picture/Base.hs 72;" f
polygonCol src/Picture/Base.hs 78;" f
@@ -5205,7 +5206,7 @@ ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f
preloadRender src/Preload/Render.hs 30;" f
premapMaybe src/FoldlHelp.hs 24;" f
prependTwo src/Geometry.hs 165;" f
prependTwo src/Geometry.hs 179;" f
pressedMBEffectsTopInventory src/Dodge/Creature/YourControl.hs 174;" f
prettyDT src/Dodge/DoubleTree.hs 179;" f
prettyLDT src/Dodge/DoubleTree.hs 183;" f
@@ -5293,8 +5294,11 @@ randInHemisphere src/RandomHelp.hs 99;" f
randInRect src/RandomHelp.hs 105;" f
randOnHemisphere src/RandomHelp.hs 92;" f
randOnUnitSphere src/RandomHelp.hs 85;" f
randPeaked src/RandomHelp.hs 133;" f
randPeakedParam src/RandomHelp.hs 125;" f
randProb src/RandomHelp.hs 68;" f
randSpark src/Dodge/Spark.hs 74;" f
randWallReflect src/Dodge/Tesla/Arc.hs 60;" f
randomChallenges src/Dodge/Room/Start.hs 62;" f
randomCompass src/Dodge/Layout.hs 59;" f
randomFourCornerRoom src/Dodge/Room/Procedural.hs 266;" f
@@ -5323,8 +5327,9 @@ reduceSpinBy src/Dodge/Projectile/Update.hs 139;" f
reflDirWall src/Dodge/Base/Wall.hs 16;" f
reflVelWall src/Dodge/Base/Wall.hs 24;" f
reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
reflectAngle src/Geometry.hs 144;" f
reflectIn src/Geometry.hs 139;" f
reflectInParam src/Geometry.hs 233;" f
reflectInParam src/Geometry.hs 247;" f
reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 13;" f
refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f
refreshOptionsSelectionList src/Dodge/Menu/Option.hs 39;" f
@@ -5336,7 +5341,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 386;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 388;" f
removeDot src/ShortShow.hs 30;" f
removeHotkey src/Dodge/Hotkey.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
@@ -5614,14 +5619,14 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 70;" f
shiftedGrid src/Grid.hs 25;" f
shineTargetLaser src/Dodge/Creature/State.hs 298;" f
shineTorch src/Dodge/Creature/State.hs 340;" f
shootBullet src/Dodge/HeldUse.hs 445;" f
shootBullet src/Dodge/HeldUse.hs 447;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootLaser src/Dodge/HeldUse.hs 356;" f
shootLaser src/Dodge/HeldUse.hs 358;" f
shootOutPassage src/Dodge/Room/RezBox.hs 74;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 11;" f
shootTeslaArc src/Dodge/HeldUse.hs 550;" f
shootTeslaArc src/Dodge/HeldUse.hs 552;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootTractorBeam src/Dodge/HeldUse.hs 335;" f
shootTractorBeam src/Dodge/HeldUse.hs 337;" 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
@@ -5905,7 +5910,7 @@ 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 345;" f
tractorBeamAt src/Dodge/HeldUse.hs 347;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 413;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
@@ -6008,7 +6013,7 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 191;" f
upHammer src/Dodge/Default.hs 76;" f
upProjectile src/Dodge/Projectile/Update.hs 26;" f
updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla/Arc.hs 86;" f
updateArc src/Dodge/Tesla/Arc.hs 97;" f
updateAttachedItems src/Dodge/Creature/State.hs 256;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 455;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f
@@ -6144,23 +6149,23 @@ useBulletPayload src/Dodge/Bullet.hs 96;" 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 489;" f
useGasParams src/Dodge/HeldUse.hs 491;" f
useHotkey src/Dodge/Creature/YourControl.hs 54;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
useLoadedAmmo src/Dodge/HeldUse.hs 279;" f
useLoadedAmmo src/Dodge/HeldUse.hs 281;" 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 634;" f
useRewindGun src/Dodge/HeldUse.hs 636;" 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 615;" f
useStopWatch src/Dodge/HeldUse.hs 617;" f
useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/HeldUse.hs 58;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 623;" f
useTimeScrollGun src/Dodge/HeldUse.hs 625;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 423;" f
@@ -6196,7 +6201,7 @@ vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f
volleyGun src/Dodge/Item/Held/Cane.hs 30;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 327;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 313;" f
walkNozzle src/Dodge/HeldUse.hs 315;" f
walkableNodeNear src/Dodge/Path.hs 48;" f
wallBlips src/Dodge/RadarSweep.hs 80;" f
wallBuffer src/Dodge/WallCreatureCollisions.hs 50;" f
@@ -6284,7 +6289,7 @@ zConnect src/Dodge/Render/Connectors.hs 17;" f
zConnectCol src/Dodge/Render/Connectors.hs 28;" f
zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f
zeroZ src/Geometry/Vector.hs 8;" f
zipArcs src/Dodge/Tesla/Arc.hs 96;" f
zipArcs src/Dodge/Tesla/Arc.hs 107;" f
zipCount src/Dodge/Tree/Shift.hs 129;" f
zipCountDown src/Dodge/Room/Procedural.hs 118;" f
zipWithDefaults src/Dodge/Item/Display.hs 22;" f