diff --git a/src/Dodge/Data/Creature.hs b/src/Dodge/Data/Creature.hs index 5812889e8..5bdee9e04 100644 --- a/src/Dodge/Data/Creature.hs +++ b/src/Dodge/Data/Creature.hs @@ -65,7 +65,7 @@ data CrHP | CrIsCorpse SPic | CrDestroyed CrDestructionType -data CrDestructionType = Gibbed | Pitted +data CrDestructionType = Gibbed | Pitted | Swallowed data DeathType = CookDeath | PoisonDeath | PlainDeath | GibsDeath diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 18ee49e66..c618329ea 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -58,8 +58,11 @@ tutAnoTree = do [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor --, tToBTree "" . return . cleatOnward <$> (xChasm 200 200 - , tToBTree "" . return . cleatOnward <$> (roomRectAutoLights 300 300 - <&> rmPmnts .:~ (sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 100 100)) + , tToBTree "" . return . cleatOnward <$> ((putSingleLight =<< roomRectAutoLights 300 300) + <&> rmPmnts <>~ [sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 150 100 + , sps0 (PutCrit chaseCrit) & plSpot . psPos .~ V2 250 100 + ] + ) -- , tToBTree "" . return . cleatOnward <$> (cChasm -- <&> rmPmnts .:~ (sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 100 20)) -- , corDoor diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 13664b4df..c24ff1bcb 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -1004,6 +1004,10 @@ crCrSpring c1 c2 , SlimeCrit{} <- c2 ^. crType , id2 > id1 , distance xy1 xy2 < abs (r1 - r2) + 1 = fuseSlimes c1 c2 + | SlimeCrit{} <- c1 ^. crType + , slimeFood c2 + , distance xy1 xy2 < r1 - (r2 + 5) + = feedSlime c1 c2 | Just t <- c1 ^? crType . slimeSplitTimer , t <= 0 = cWorld . lWorld . creatures %~ (rolap . rolap') @@ -1037,13 +1041,32 @@ crCrSpring c1 c2 m1 = crMass $ c1 ^. crType m2 = crMass $ c2 ^. crType +slimeFood :: Creature -> Bool +slimeFood cr = case cr ^. crType of + Avatar{} -> True + ChaseCrit{} -> True + _ -> False + +feedSlime :: Creature -> Creature -> World -> World +feedSlime s c w = w + & cWorld . lWorld . creatures . ix (c ^. crID) . crHP .~ CrDestroyed Swallowed + & cWorld . lWorld . creatures . ix (s ^. crID) %~ f + & slimeEatSound (s ^. crID) (s ^. crPos . _xy) + where + f cr = cr & crType . slimeRad .~ r + & crType . slimeRadWobble +~ r - r1 + & crType . slimeCompression %~ ((r/r1) *^) + r1 = s ^?! crType . slimeRad + r2 = 2 * c ^. crType . to crRad + r = sqrt (r1*r1 + r2*r2) + fuseSlimes :: Creature -> Creature -> World -> World fuseSlimes c1 c2 = (cWorld . lWorld . creatures . ix mini .~ c) . (cWorld . lWorld . creatures . at maxi .~ Nothing) - . dosound + . slimeEatSound i1 (c ^. crPos . _xy) where c' | c1 ^?! crType . slimeRad > c2 ^?! crType . slimeRad = c1 - | otherwise = c2 + | otherwise = c2 mini = min i1 i2 maxi = max i1 i2 i1 = c1 ^. crID @@ -1055,7 +1078,9 @@ fuseSlimes c1 c2 = (cWorld . lWorld . creatures . ix mini .~ c) r1 = c1 ^?! crType . slimeRad r2 = c2 ^?! crType . slimeRad r = sqrt (r1*r1 + r2*r2) - dosound w = w & soundStart (CrSound i1) (c ^. crPos . _xy) s Nothing + +slimeEatSound :: Int -> Point2 -> World -> World +slimeEatSound i p w = w & soundStart (CrSound i) p s Nothing & randGen .~ g where (s,g) = runState (takeOne [slurp1S,slurp2S,slurp3S,slurp4S,slurp5S]) (w ^. randGen) diff --git a/tags b/tags index 6f8812aba..83ec65e97 100644 --- a/tags +++ b/tags @@ -1281,6 +1281,7 @@ Superfluous src/Shape/Data.hs 34;" C Surface src/Shape/Data.hs 38;" t Survive src/Dodge/Data/Scenario.hs 5;" C Suspicious src/Dodge/Data/Creature/Perception.hs 64;" C +Swallowed src/Dodge/Data/Creature.hs 68;" C SwapEquipment src/Dodge/Data/RightButtonOptions.hs 24;" C Swarm src/Dodge/Data/Creature/State.hs 25;" C SwarmCrit src/Dodge/Data/Creature/Misc.hs 80;" C @@ -2688,9 +2689,9 @@ attachTree src/Dodge/Tree/Compose.hs 39;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 77;" f attribSize src/Shader/Compile.hs 139;" f autoAmr src/Dodge/Item/Held/Rod.hs 39;" f -autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 755;" f +autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 791;" f autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f -autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 563;" f +autoGunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 591;" f autoPistol src/Dodge/Item/Held/Stick.hs 21;" f autoRifle src/Dodge/Item/Held/Cane.hs 27;" f awakeLevelPerception src/Dodge/Creature/Perception.hs 171;" f @@ -2699,15 +2700,15 @@ azure src/Color.hs 49;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backPQ src/Dodge/Creature/HandPos.hs 183;" f -backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 745;" f +backgroundSpaceS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 781;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackShape src/Dodge/Item/Draw/SPic.hs 189;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 305;" f -bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 659;" f +bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f -bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" f +bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 885;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f @@ -2733,7 +2734,7 @@ basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMuzFlare src/Dodge/HeldUse.hs 731;" f battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f -beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 673;" f +beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 707;" f beltMag src/Dodge/Item/Ammo.hs 38;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 327;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 131;" f @@ -2754,22 +2755,22 @@ blockPillar src/Dodge/Room/Pillar.hs 23;" f blockedCorridor src/Dodge/Room/RoadBlock.hs 71;" f blockedCorridorCloseBlocks src/Dodge/Room/RoadBlock.hs 78;" f blockingLoad src/Dodge/Concurrent.hs 35;" f -blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f -blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 827;" f -blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 655;" f -blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 855;" f -blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 571;" f -blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 787;" f -blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 575;" f -blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 561;" f -bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f -bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f -bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 853;" f -bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 859;" f -bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 683;" f -bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 769;" f -bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 607;" f -bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 551;" f +blood1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 765;" f +blood2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 865;" f +blood3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f +blood4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 895;" f +blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f +blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 825;" f +blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f +blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 589;" f +bloodShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 633;" f +bloodShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 831;" f +bloodShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 893;" f +bloodShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 899;" f +bloodShort5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 717;" f +bloodShort6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 807;" f +bloodShort7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 637;" f +bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 575;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f blue src/Color.hs 43;" f blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f @@ -2807,10 +2808,10 @@ bulletSynthesizer src/Dodge/Item/Ammo.hs 89;" f 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 -buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 847;" f -buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 605;" f +buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 887;" f +buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 635;" f byNthLink src/Dodge/Room/Warning.hs 44;" f -cChasm src/Dodge/Room/Tutorial.hs 168;" f +cChasm src/Dodge/Room/Tutorial.hs 171;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2849,14 +2850,14 @@ chaseCritInternal src/Dodge/Humanoid.hs 12;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f chaseUpperBody src/Dodge/Creature/Picture.hs 153;" f chasmRotate src/Dodge/Creature/State/WalkCycle.hs 124;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 405;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 338;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 408;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 341;" f chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 106;" f chasmWallToSurface src/Dodge/Base/Collide.hs 132;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f -checkDeath src/Dodge/Creature/Update.hs 207;" f -checkDeath' src/Dodge/Creature/Update.hs 210;" f +checkDeath src/Dodge/Creature/Update.hs 220;" f +checkDeath' src/Dodge/Creature/Update.hs 223;" f checkEndGame src/Dodge/Update.hs 875;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -2890,16 +2891,16 @@ clAlt src/Dodge/Cloud.hs 5;" f clColor src/Shader/Poke/Cloud.hs 39;" f clZoneSize src/Dodge/Zoning/Cloud.hs 24;" f clampPath src/Dodge/Room/Procedural.hs 148;" f -clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 835;" f -clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 749;" f -clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 589;" f +clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 875;" f +clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f +clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 619;" f cleanUpPreload src/Preload.hs 10;" f cleanUpSoundPreload src/Preload.hs 15;" f cleanupHalted src/Sound.hs 119;" f cleatLabel src/Dodge/Cleat.hs 30;" f cleatOnward src/Dodge/Cleat.hs 24;" f cleatSide src/Dodge/Cleat.hs 27;" f -click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 801;" f +click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 839;" f clicker src/Dodge/Item/Scope.hs 88;" f clipV src/Geometry/Vector.hs 48;" f clipZoom src/Dodge/Update/Camera.hs 234;" f @@ -2946,7 +2947,7 @@ combineInventoryExtra src/Dodge/Render/HUD.hs 340;" f combineItemListYouX src/Dodge/Combine.hs 36;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 134;" f -combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 759;" f +combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 797;" f combineTree src/Dodge/Tree/Compose.hs 68;" f commandColor src/Dodge/Terminal.hs 127;" f commonPrefix src/Dodge/Debug/Terminal.hs 149;" f @@ -2961,10 +2962,10 @@ compileAndCheckShader src/Shader/Compile.hs 108;" f composeNode src/Dodge/Tree/Compose.hs 77;" f composeTree src/Dodge/Tree/Compose.hs 48;" f compressor src/Dodge/Item/Ammo.hs 74;" f -computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f +computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 713;" f conEffects src/Dodge/Concurrent.hs 12;" f concurrentIS src/Dodge/Inventory.hs 197;" f -connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 761;" f +connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 799;" f constructEdges src/Polyhedra.hs 31;" f constructEdgesList src/Polyhedra.hs 40;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f @@ -2980,7 +2981,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 136;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 411;" f cornerList src/Preload/Render.hs 236;" f -corpseOrGib src/Dodge/Creature/Update.hs 256;" f +corpseOrGib src/Dodge/Creature/Update.hs 269;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -3029,7 +3030,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 984;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f -crUpdate src/Dodge/Creature/Update.hs 200;" f +crUpdate src/Dodge/Creature/Update.hs 213;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 65;" f @@ -3044,11 +3045,11 @@ crabCorpse src/Dodge/Creature/Picture.hs 294;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 40;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f crabFeet src/Dodge/Creature/Picture.hs 205;" f -crabRoom src/Dodge/Room/Tutorial.hs 459;" f +crabRoom src/Dodge/Room/Tutorial.hs 462;" f crabUpperBody src/Dodge/Creature/Picture.hs 129;" f craftInfo src/Dodge/Item/Info.hs 168;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 41;" f -crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f +crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 639;" f createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 64;" f @@ -3149,7 +3150,7 @@ deadFeet src/Dodge/Creature/Picture.hs 322;" f deadRot src/Dodge/Creature/Picture.hs 340;" f deadScalp src/Dodge/Creature/Picture.hs 335;" f deadUpperBody src/Dodge/Creature/Picture.hs 361;" f -debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f +debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 775;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSize src/Dodge/Block/Debris.hs 131;" f debugEvent src/Dodge/Debug.hs 43;" f @@ -3174,10 +3175,10 @@ decoratedBlock src/Dodge/Placement/Instance/Block.hs 14;" f decorationToShape src/Dodge/Placement/TopDecoration.hs 16;" f decreaseAwareness src/Dodge/Creature/Perception.hs 128;" f decrementTimer src/Sound.hs 104;" f -dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 569;" f -dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 691;" f -dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f -dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 807;" f +dedaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 597;" f +dededaS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f +dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 815;" f +dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 845;" f defCraftItem src/Dodge/Default/Item.hs 25;" f defDamageMaterial src/Dodge/Material/Damage.hs 34;" f defEquipment src/Dodge/Default.hs 24;" f @@ -3258,7 +3259,7 @@ digitalLine src/Geometry.hs 285;" f digitalRect src/Geometry.hs 302;" f dim src/Color.hs 139;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f -disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 805;" f +disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 843;" f displayConfig src/Dodge/Menu.hs 223;" f displayControls src/Dodge/Menu.hs 239;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f @@ -3332,7 +3333,7 @@ doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 117;" f -doSlimeRadChange src/Dodge/Creature/Update.hs 123;" f +doSlimeRadChange src/Dodge/Creature/Update.hs 126;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 272;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f @@ -3494,7 +3495,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f -dropAll src/Dodge/Creature/Update.hs 294;" f +dropAll src/Dodge/Creature/Update.hs 307;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropItem src/Dodge/Creature/Action.hs 169;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -3526,8 +3527,8 @@ edgeToPic src/Dodge/Debug/Picture.hs 426;" f effectOnEquip src/Dodge/Euse.hs 84;" f effectOnRemove src/Dodge/Euse.hs 74;" f eitType src/Dodge/Data/EquipType.hs 15;" f -ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 857;" f -elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 839;" f +ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 897;" f +elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 879;" f elephantGun src/Dodge/Item/Held/Rod.hs 27;" f emptyCorridor src/Dodge/Room/BlinkAcross.hs 23;" f emptyTrie src/SimpleTrie.hs 17;" f @@ -3538,7 +3539,7 @@ encircleP src/Dodge/Creature/Boid.hs 30;" f endArcPos src/Dodge/Tesla.hs 86;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 310;" f endRegex src/Dodge/Update/Input/InGame.hs 304;" f -energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 705;" f +energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 739;" f enterCombineInv src/Dodge/DisplayInventory.hs 321;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f epText src/Dodge/Inventory/SelectionList.hs 74;" f @@ -3572,7 +3573,7 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 189;" f explodeShell src/Dodge/Projectile/Update.hs 274;" f -explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 709;" f +explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 743;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 79;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f @@ -3584,6 +3585,7 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f fdiv src/ShortShow.hs 41;" f +feedSlime src/Dodge/Update.hs 1049;" f feet src/Dodge/Creature/Picture.hs 191;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f @@ -3597,9 +3599,9 @@ findReverseEdgeList src/Polyhedra.hs 54;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 27;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWithIx src/ListHelp.hs 124;" f -fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 871;" f -fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 675;" f -fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f +fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 911;" f +fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 709;" f +fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 759;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstTrie src/SimpleTrie.hs 51;" f firstWorldLoad appDodge/Main.hs 68;" f @@ -3630,17 +3632,17 @@ floorItemPickupInfo src/Dodge/Render/HUD.hs 233;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 143;" f floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f -foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 795;" f -foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 841;" f -foldMTRS src/Dodge/Room/Tutorial.hs 101;" f +foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 833;" f +foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 881;" f +foldMTRS src/Dodge/Room/Tutorial.hs 104;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f -foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f -foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 721;" f -foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 851;" f -footPin1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 703;" f -footPin2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 765;" f +foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 877;" f +foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 755;" f +foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 891;" f +footPin1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 737;" f +footPin2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 803;" f forbidFlee src/Dodge/Creature/Boid.hs 45;" f forceElements src/StrictHelp.hs 10;" f forceField src/Dodge/Wall/ForceField.hs 6;" f @@ -3650,7 +3652,7 @@ fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 37;" f fpsText src/Dodge/Render/Picture.hs 57;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 148;" f frag src/Shader/Data.hs 110;" f -fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f +fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 583;" f fromJust' src/MaybeHelp.hs 22;" f fromListL src/DoubleStack.hs 7;" f fromTopLeft src/Dodge/ScreenPos.hs 9;" f @@ -3660,7 +3662,7 @@ fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f functionalUpdate src/Dodge/Update.hs 278;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f -fuseSlimes src/Dodge/Update.hs 1040;" f +fuseSlimes src/Dodge/Update.hs 1062;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 48;" f @@ -3697,8 +3699,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 543;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 55;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 616;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 603;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 619;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 606;" f getDebugMouseOver src/Dodge/Update.hs 472;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f @@ -3715,7 +3717,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 599;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 602;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3735,10 +3737,10 @@ girderZ src/Dodge/Room/Foreground.hs 108;" f glCreate src/GLHelp.hs 11;" f glassLesson src/Dodge/Room/GlassLesson.hs 23;" f glassLessonRunPast src/Dodge/Room/GlassLesson.hs 68;" f -glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 713;" f -glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 723;" f -glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 727;" f -glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f +glassShat1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f +glassShat2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f +glassShat3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 761;" f +glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 735;" f glassSwitchBack src/Dodge/Room/Room.hs 86;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 120;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 405;" f @@ -3759,13 +3761,13 @@ gridPointsOff src/Grid.hs 32;" f gridRoomPos src/Dodge/Room/Procedural.hs 91;" f groundCliffPush src/Dodge/Creature/State/WalkCycle.hs 72;" f groupSplitItemAmounts src/Dodge/Combine.hs 52;" f -gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f -gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 869;" f -gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f -gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 697;" f -gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 711;" f -gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 687;" f -gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 737;" f +gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 557;" f +gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 909;" f +gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f +gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 731;" f +gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 745;" f +gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 721;" f +gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 771;" f gyroscope src/Dodge/Item/Scope.hs 170;" f hackBoldText src/Picture/Base.hs 193;" f hackDropShadow src/Picture/Base.hs 196;" f @@ -3801,7 +3803,7 @@ headLamp src/Dodge/Item/Equipment.hs 68;" f headLampShape src/Dodge/Item/Draw/SPic.hs 426;" f headMap src/Dodge/DoubleTree.hs 118;" f headPQ src/Dodge/Creature/HandPos.hs 174;" f -healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 639;" f +healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 671;" 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 @@ -3827,9 +3829,9 @@ 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 highMesh src/Dodge/Room/Foreground.hs 25;" f -hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f +hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f hitEffFromBul src/Dodge/Bullet.hs 156;" f -hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 771;" f +hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 809;" f holdForm src/Dodge/Creature/Boid.hs 139;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 50;" f @@ -3838,7 +3840,7 @@ hotkeyToChar src/Dodge/Inventory/SelectionList.hs 201;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 198;" f hoverCrit src/Dodge/Creature/ChaseCrit.hs 77;" f -hoverCritHoverSound src/Dodge/Creature/Update.hs 177;" f +hoverCritHoverSound src/Dodge/Creature/Update.hs 190;" f hoverCritInternal src/Dodge/Humanoid.hs 46;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 58;" f @@ -3868,9 +3870,9 @@ insertAt src/Padding.hs 63;" f insertIMInZone src/Dodge/Base.hs 54;" f insertInTrie src/SimpleTrie.hs 24;" f insertNewKey src/IntMapHelp.hs 65;" f -insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 829;" f +insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 867;" f insertOver src/ListHelp.hs 47;" f -insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f +insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 763;" f insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 41;" f insertWall src/Dodge/Placement/PlaceSpot/Block.hs 134;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f @@ -4034,8 +4036,8 @@ keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 94;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f keyPic src/Dodge/Item/Draw/SPic.hs 442;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f -knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f -lChasm src/Dodge/Room/Tutorial.hs 180;" f +knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 795;" f +lChasm src/Dodge/Room/Tutorial.hs 183;" f lConnect src/Dodge/Render/Connectors.hs 43;" f lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f @@ -4048,7 +4050,7 @@ 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 417;" f -lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f +lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" 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 @@ -4103,7 +4105,7 @@ listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 415;" f -loadAmmoTut src/Dodge/Room/Tutorial.hs 463;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 466;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4140,7 +4142,7 @@ loopPairs src/ListHelp.hs 30;" f lootRoom src/Dodge/Room/Treasure.hs 59;" f lorem src/Lorem.hs 3;" f lowBlock src/Dodge/Placement/Instance/Block.hs 28;" f -lowWhirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 553;" f +lowWhirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 577;" f lsColPos src/Dodge/LightSource.hs 24;" f lsColPosID src/Dodge/LightSource.hs 21;" f lsColPosRad src/Dodge/LightSource.hs 30;" f @@ -4214,10 +4216,10 @@ makeTileFromPoly src/Tile.hs 34;" f makeTypeCraft src/Dodge/Item/Craftable.hs 15;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f mapper src/Dodge/Item/Scope.hs 76;" f -marimbaB6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f -marimbaC5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 597;" f -marimbaE5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 635;" f -marimbaG5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 623;" f +marimbaB6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 659;" f +marimbaC5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f +marimbaE5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f +marimbaG5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 655;" f materialColor src/Dodge/Material/Color.hs 8;" f materialGib src/Dodge/Prop/Gib.hs 95;" f materialPenetrable src/Dodge/Bullet.hs 212;" f @@ -4270,21 +4272,21 @@ merge src/ListHelp.hs 84;" f mergeBy src/ListHelp.hs 87;" f mergeOn src/ListHelp.hs 94;" f mergeSound src/Sound.hs 60;" f -metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 861;" f -metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 751;" f -metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 585;" f -metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 535;" f -metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f -metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 797;" f -metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 699;" f +metal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 901;" f +metal2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 787;" f +metal3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 615;" f +metal4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 559;" f +metal5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f +metal6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 835;" f +metal7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f metalPlate src/Dodge/Item/Craftable.hs 32;" f mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 23;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 209;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 231;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 299;" f +midChasm src/Dodge/Room/Tutorial.hs 212;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 234;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 302;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4292,18 +4294,18 @@ midWall src/Dodge/Placement/Instance/Wall.hs 38;" f minAndMax src/FoldableHelp.hs 109;" f minCrIXOn src/Dodge/Zoning/Creature.hs 49;" f minOn src/FoldableHelp.hs 35;" f -mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 595;" f +mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f miniGunCrit src/Dodge/Creature.hs 56;" f miniGunX src/Dodge/Item/Held/Cane.hs 33;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 376;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 368;" f -miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 665;" f +miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 699;" f miniTree2 src/Dodge/Room/Room.hs 127;" f minimumOn src/FoldlHelp.hs 14;" f mirrorXAxis src/Geometry/Polygon.hs 76;" f mirrorxz src/Picture/Base.hs 330;" f mirroryz src/Picture/Base.hs 335;" f -missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 631;" f +missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f mixColors src/Color.hs 113;" f mixColorsFrac src/Color.hs 109;" f mixColorsLinear src/Color.hs 122;" f @@ -4387,7 +4389,7 @@ noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f -nonConvexChasm src/Dodge/Room/Tutorial.hs 296;" f +nonConvexChasm src/Dodge/Room/Tutorial.hs 299;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 148;" f normalTo8 src/Shader/Poke.hs 475;" f @@ -4410,7 +4412,7 @@ numSubElements src/Shader/Parameters.hs 39;" f numTraversable src/TreeHelp.hs 186;" f obstacleColor src/Dodge/Debug/Picture.hs 264;" f obstructPathsCrossing src/Dodge/Path.hs 153;" f -oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 647;" f +oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 681;" f onEquipWristShield src/Dodge/Euse.hs 89;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f oneH src/Dodge/Creature/Test.hs 95;" f @@ -4464,7 +4466,7 @@ pairsToSCC src/Dodge/Graph.hs 32;" f paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f -passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 681;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 684;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4488,7 +4490,7 @@ performTurnToA src/Dodge/Creature/Action.hs 142;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pickUpItem src/Dodge/Inventory/Add.hs 70;" f pickUpItemAt src/Dodge/Inventory/Add.hs 75;" f -pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 789;" f +pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 827;" f pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP'' src/Dodge/Creature/Boid.hs 106;" f @@ -4535,7 +4537,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 290;" f +poisonSPic src/Dodge/Creature/Update.hs 303;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 518;" f pokeArrayOff src/Shader/Poke.hs 530;" f @@ -4570,8 +4572,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 383;" f -polyChasmC src/Dodge/Room/Tutorial.hs 395;" f +polyChasm src/Dodge/Room/Tutorial.hs 386;" f +polyChasmC src/Dodge/Room/Tutorial.hs 398;" f polyCirc src/Shape.hs 48;" f polyCircx src/Shape.hs 53;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4590,6 +4592,9 @@ polygon src/Picture/Base.hs 64;" f polygonCol src/Picture/Base.hs 70;" f polygonWire src/Picture/Base.hs 59;" f polysToPic src/Polyhedra.hs 122;" f +pop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f +pop2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 869;" f +popS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 587;" f popScreen src/Dodge/Menu/PushPop.hs 6;" f posRms src/Dodge/Tree/Shift.hs 46;" f posSelSecYint src/Dodge/SelectionSections.hs 161;" f @@ -4610,7 +4615,7 @@ premapMaybe src/FoldlHelp.hs 26;" f prependTwo src/Geometry.hs 177;" f prettyDT src/Dodge/DoubleTree.hs 127;" f prettyShort src/AesonHelp.hs 11;" f -primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f +primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 691;" f printColumnTitles src/Dodge/Tree/Shift.hs 155;" f printColumns src/Dodge/Tree/Shift.hs 145;" f printInfo src/Dodge/Tree/Shift.hs 158;" f @@ -4663,7 +4668,7 @@ putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 100;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 58;" f putShape src/Dodge/Room/Foreground.hs 134;" f -putSingleLight src/Dodge/Room/Tutorial.hs 497;" f +putSingleLight src/Dodge/Room/Tutorial.hs 500;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 84;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f @@ -4754,10 +4759,10 @@ refract src/Dodge/Item/Weapon/LaserPath.hs 39;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f regexCombs src/Dodge/DisplayInventory.hs 71;" f regexList src/Dodge/DisplayInventory.hs 312;" f -reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 717;" f -reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 817;" f +reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 751;" f +reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 855;" f reloadLevelStart src/Dodge/Save.hs 71;" f -reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f +reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 567;" f rememberSounds src/Dodge/Creature/Perception.hs 186;" f remoteDetonator src/Dodge/Item/Scope.hs 152;" f remoteScreen src/Dodge/Item/Scope.hs 146;" f @@ -4794,7 +4799,7 @@ restrictRMInLinksPD src/Dodge/Room/Link.hs 26;" f resumeSound src/Dodge/SoundLogic.hs 48;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 9;" f revCard src/Dodge/Data/CardinalPoint.hs 13;" f -reverseCymbal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 825;" f +reverseCymbal1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 863;" f reversePair src/Dodge/LevelGen.hs 87;" f rewinder src/Dodge/Item/Held/Utility.hs 36;" f rezBox src/Dodge/Room/RezBox.hs 31;" f @@ -4894,7 +4899,7 @@ saveQuit src/Dodge/Menu.hs 77;" f saveQuitConc src/Dodge/Menu.hs 80;" f saveSlotPath src/Dodge/Save.hs 63;" f saveWorldInSlot src/Dodge/Save.hs 68;" f -sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 809;" f +sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 847;" f scToTS src/Dodge/Event/Input.hs 34;" f scale src/Picture/Base.hs 141;" f scale3 src/Picture/Base.hs 137;" f @@ -4905,7 +4910,7 @@ scaleSH src/Shape.hs 271;" f scalp src/Dodge/Creature/Picture.hs 349;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 287;" f +scorchSPic src/Dodge/Creature/Update.hs 300;" f screenBox src/Dodge/Base/Window.hs 54;" f screenPolygon src/Dodge/Base/Window.hs 18;" f screenPolygonBord src/Dodge/Base/Window.hs 28;" f @@ -4917,15 +4922,15 @@ scrollRBOption src/Dodge/Update/Scroll.hs 139;" f scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f scrollTimeBack src/Dodge/Update.hs 245;" f scrollTimeForward src/Dodge/Update.hs 262;" f -seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 591;" f -seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 545;" f -seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 611;" f -seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 849;" f -seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 643;" f -seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 685;" f -seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 695;" f -seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 767;" f -seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 633;" f +seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 621;" f +seagullBarkTransformedS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 569;" f +seagullChatter1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" f +seagullChatterS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 889;" f +seagullCry1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f +seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 719;" f +seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 729;" f +seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 805;" f +seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 665;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 314;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f @@ -4933,7 +4938,7 @@ sectionsSizes src/Dodge/DisplayInventory.hs 205;" f seedStartMenu src/Dodge/Menu.hs 85;" f seedStartOptions src/Dodge/Menu.hs 88;" f segOnCirc src/Geometry.hs 113;" f -segmentArea src/Dodge/Creature/Update.hs 158;" f +segmentArea src/Dodge/Creature/Update.hs 171;" f selNumPos src/Dodge/Render/HUD.hs 475;" f selNumPosCardinal src/Dodge/Render/HUD.hs 492;" f selSecDrawCursor src/Dodge/Render/List.hs 101;" f @@ -4942,7 +4947,7 @@ selSecSelSize src/Dodge/SelectionSections.hs 157;" f selSecYint src/Dodge/SelectionSections.hs 166;" f selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f selectionSet src/Dodge/Update/Input/InGame.hs 171;" f -semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 803;" f +semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 841;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f senseDamage src/Dodge/Machine/Update.hs 262;" f @@ -4951,7 +4956,7 @@ 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 89;" f -sensorTut src/Dodge/Room/Tutorial.hs 625;" f +sensorTut src/Dodge/Room/Tutorial.hs 628;" f sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f setChannelPos src/Sound.hs 152;" f @@ -4979,11 +4984,11 @@ setSelWhileDragging src/Dodge/Update/Input/InGame.hs 360;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f -setSlimeDir src/Dodge/Creature/Update.hs 104;" f +setSlimeDir src/Dodge/Creature/Update.hs 105;" f setSoundVolume src/Sound.hs 159;" f setTile src/Dodge/Layout.hs 78;" f setTiles src/Dodge/Layout.hs 68;" f -setTreeInts src/Dodge/Room/Tutorial.hs 108;" f +setTreeInts src/Dodge/Room/Tutorial.hs 111;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 71;" f setViewport src/Dodge/Render.hs 448;" f @@ -5054,17 +5059,17 @@ shootersRoom1 src/Dodge/Room/Room.hs 335;" f shootingRange src/Dodge/Room/Room.hs 362;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f shortShow src/ShortShow.hs 7;" f -shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 539;" f +shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 563;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 77;" f showAttachItem src/Dodge/Item/Display.hs 93;" f showEquipItem src/Dodge/Item/Display.hs 109;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 87;" f -showManObj src/Dodge/TestString.hs 110;" f +showManObj src/Dodge/TestString.hs 109;" f showMuzzlePositions src/Dodge/Debug.hs 292;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 127;" f +showTimeFlow src/Dodge/TestString.hs 126;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5075,47 +5080,54 @@ shuffleTail src/RandomHelp.hs 78;" f sigmoid src/Dodge/Base.hs 151;" f simpleCrSprings src/Dodge/Update.hs 978;" f simpleTermMessage src/Dodge/Terminal.hs 275;" f -sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 775;" f -sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 811;" f +sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 813;" f +sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 849;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 63;" f singleDT src/Dodge/DoubleTree.hs 8;" f singleton src/DoubleStack.hs 11;" f singletonTrie src/SimpleTrie.hs 20;" f sizeFBOs src/Framebuffer/Update.hs 19;" f skColor src/Dodge/Spark/Draw.hs 14;" f -skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 815;" f -slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 831;" f -slap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 791;" f -slap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 715;" f -slap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 813;" f -slap5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 821;" f -slap6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 583;" f -slap7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f -slapClean2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 637;" f -slapClean3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 719;" f -slapClean4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 567;" f -slapClean5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 863;" f -slapClean6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f -slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 763;" f -slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 681;" f -slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" f +skwareFadeTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 853;" f +slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 871;" f +slap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 829;" f +slap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 749;" f +slap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 851;" f +slap5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 859;" f +slap6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 613;" f +slap7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 611;" f +slapClean2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 669;" f +slapClean3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 753;" f +slapClean4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 595;" f +slapClean5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 903;" f +slapClean6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 623;" f +slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 801;" f +slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 715;" f +slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 673;" f slideWindow src/ListHelp.hs 81;" f slimeCrit src/Dodge/Creature/ChaseCrit.hs 65;" f slimeCritUpdate src/Dodge/Creature/Update.hs 71;" f +slimeEatSound src/Dodge/Update.hs 1081;" f +slimeFood src/Dodge/Update.hs 1044;" f slinkCrit src/Dodge/Creature/ChaseCrit.hs 54;" f -slinkCritUpdate src/Dodge/Creature/Update.hs 161;" f +slinkCritUpdate src/Dodge/Creature/Update.hs 174;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f slowCrushRoom src/Dodge/Room/LongDoor.hs 148;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 309;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 326;" f +slurp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 779;" f +slurp2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 607;" f +slurp3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f +slurp4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 675;" f +slurp5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 653;" f smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 20;" f smallDrawTree src/Dodge/LevelGen.hs 93;" f -smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 843;" f -smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 547;" f -smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 823;" f -smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 619;" f +smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 883;" f +smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 571;" f +smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 861;" f +smallGlass4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 649;" f smallPillar src/Dodge/Room/Pillar.hs 38;" f smallRoom src/Dodge/Room/RunPast.hs 31;" f smallSnailInt2 src/Dodge/Path.hs 106;" f @@ -5135,10 +5147,10 @@ soundMenuOptions src/Dodge/Menu.hs 161;" f soundMultiFrom src/Dodge/SoundLogic.hs 187;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f -soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 354;" f +soundPathList src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f soundPic src/Dodge/Debug/Picture.hs 373;" f soundStart src/Dodge/SoundLogic.hs 118;" f -soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 179;" f +soundToOnomato src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 187;" f soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f @@ -5165,7 +5177,8 @@ splashScreen src/Dodge/Initialisation.hs 10;" f splitBezierquad src/Geometry/Bezier.hs 15;" f splitExtra src/Justify.hs 21;" f splitLookupTrie src/SimpleTrie.hs 39;" f -splitSlimeCrit src/Dodge/Creature/Update.hs 130;" f +splitSlimeCrit src/Dodge/Creature/Update.hs 143;" f +splitSlimeCrit' src/Dodge/Creature/Update.hs 133;" f splitTrunk src/TreeHelp.hs 181;" f splitTrunkAt src/TreeHelp.hs 169;" f spreadAroundCenter src/Dodge/Base.hs 173;" f @@ -5175,8 +5188,8 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f -sqPlatformChasm src/Dodge/Room/Tutorial.hs 260;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 275;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 263;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 278;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 129;" f @@ -5203,7 +5216,7 @@ stackText src/Picture/Base.hs 180;" f stackedInventory src/Dodge/Creature.hs 321;" f startCr src/Dodge/Creature.hs 85;" f startCrafts src/Dodge/Room/Start.hs 94;" f -startDeathTimer src/Dodge/Creature/Update.hs 241;" f +startDeathTimer src/Dodge/Creature/Update.hs 254;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f startInvList src/Dodge/Creature.hs 100;" f startInventory src/Dodge/Creature.hs 103;" f @@ -5215,11 +5228,11 @@ startSeedGameConc src/Dodge/StartNewGame.hs 46;" f statsModifier src/Dodge/Creature/Info.hs 16;" f stickHitSound src/Dodge/Projectile/Update.hs 77;" f stickyMod src/Dodge/Item/Scope.hs 56;" f -stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 601;" f -stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f -stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 549;" f -stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 555;" f -stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 669;" f +stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 631;" f +stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 823;" f +stone3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 573;" f +stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f +stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 703;" f stopAllSounds src/Sound.hs 127;" f stopBulletAt src/Dodge/Bullet.hs 201;" f stopPushing src/Dodge/Wall/Damage.hs 172;" f @@ -5266,11 +5279,11 @@ tankShape src/Dodge/Placement/Instance/Tank.hs 23;" f tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f tanksPipesRoom src/Dodge/Room/Tanks.hs 69;" f tanksRoom src/Dodge/Room/Tanks.hs 77;" f -tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 799;" f -tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 529;" f -tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 743;" f -tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 833;" f -tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 649;" f +tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f +tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 553;" f +tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f +tap4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 873;" f +tapQuietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 683;" f targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f @@ -5279,7 +5292,7 @@ targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 303;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f tbComplete src/Dodge/Terminal.hs 217;" f -teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 587;" f +teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 617;" f termScreenColor src/Dodge/Terminal/Color.hs 8;" f termSoundLine src/Dodge/Terminal.hs 49;" f termTextColor src/Dodge/Terminal.hs 52;" f @@ -5326,8 +5339,8 @@ thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 173;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 56;" f thingsHitZ' src/Dodge/WorldEvent/ThingsHit.hs 64;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f -throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 819;" f -throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 779;" f +throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 857;" f +throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 817;" f throwItem src/Dodge/Creature/Action.hs 205;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 221;" f @@ -5336,13 +5349,13 @@ timeFlowUpdate src/Dodge/Update.hs 205;" f timeScroller src/Dodge/Item/Held/Utility.hs 42;" f timeStopper src/Dodge/Item/Held/Utility.hs 39;" f tinMag src/Dodge/Item/Ammo.hs 24;" f -ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 621;" f -ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f -ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f -ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 615;" f -ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f -tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 753;" f -tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 867;" f +ting1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 651;" f +ting2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 723;" f +ting3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 767;" f +ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 645;" f +ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 821;" f +tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 789;" f +tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 907;" f titleOptionsMenu src/Dodge/Menu.hs 104;" f titleOptionsNoWrite src/Dodge/Menu.hs 107;" f tlDoEffect src/Dodge/Terminal.hs 115;" f @@ -5355,7 +5368,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 154;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 158;" f -toDeathCarriage src/Dodge/Creature/Update.hs 249;" f +toDeathCarriage src/Dodge/Creature/Update.hs 262;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5371,15 +5384,15 @@ toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 68;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 106;" f toggleJust src/MaybeHelp.hs 39;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 111;" f -tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 707;" f -tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 645;" f -tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 613;" f -tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 671;" f -tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 677;" f +tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f +tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f +tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 643;" f +tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 705;" f +tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 711;" f topInvW src/Dodge/ListDisplayParams.hs 56;" f topPrismEdgeIndices src/Shader/Poke.hs 344;" f topPrismIndices src/Shader/Poke.hs 419;" f -topTestPart src/Dodge/TestString.hs 105;" f +topTestPart src/Dodge/TestString.hs 104;" f torchShape src/Dodge/Item/Draw/SPic.hs 278;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f @@ -5452,12 +5465,12 @@ tryUseParent src/Dodge/Creature/State.hs 150;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tutAnoTree src/Dodge/Room/Tutorial.hs 55;" f -tutDrop src/Dodge/Room/Tutorial.hs 113;" f -tutHub src/Dodge/Room/Tutorial.hs 523;" f -tutLight src/Dodge/Room/Tutorial.hs 427;" f -tutRezBox src/Dodge/Room/Tutorial.hs 636;" f +tutDrop src/Dodge/Room/Tutorial.hs 116;" f +tutHub src/Dodge/Room/Tutorial.hs 526;" f +tutLight src/Dodge/Room/Tutorial.hs 430;" f +tutRezBox src/Dodge/Room/Tutorial.hs 639;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 661;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 664;" f tweenAngles src/Geometry/Vector.hs 198;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f @@ -5467,9 +5480,9 @@ twoFlatHRot src/Dodge/Item/HeldOffset.hs 89;" f twoHandOffY src/Dodge/Creature/HandPos.hs 130;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 137;" f twoRoomPoss src/Dodge/PlacementSpot.hs 148;" f -twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f -twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f -twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 661;" f +twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 555;" f +twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 609;" f +twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 695;" f ubyteSize src/Shader/Parameters.hs 13;" f ugateCalc src/Dodge/Inventory/SelectionList.hs 125;" f uncurryV src/Geometry/Data.hs 66;" f @@ -5516,7 +5529,7 @@ updateCreatureStrides src/Dodge/Update.hs 373;" f updateDebris src/Dodge/Update.hs 676;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1059;" f +updateDelayedEvents src/Dodge/Update.hs 1088;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 655;" f @@ -5574,7 +5587,7 @@ updatePlasmaBall src/Dodge/Update.hs 527;" f updatePlasmaBalls src/Dodge/Update.hs 669;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f -updatePulse src/Dodge/Creature/Update.hs 302;" f +updatePulse src/Dodge/Creature/Update.hs 315;" f updatePulseBall src/Dodge/Update.hs 547;" f updatePulseLaser src/Dodge/Update.hs 716;" f updatePulseLasers src/Dodge/Update.hs 522;" f @@ -5696,7 +5709,7 @@ wallsFromRooms src/Dodge/Layout.hs 158;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1396;" f warningRooms src/Dodge/Room/Warning.hs 34;" f -warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 865;" f +warp1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 905;" f wasdAim src/Dodge/Creature/YourControl.hs 116;" f wasdDir src/Dodge/WASD.hs 17;" f wasdM src/Dodge/WASD.hs 9;" f @@ -5712,22 +5725,22 @@ weaponRoom src/Dodge/Room/Room.hs 281;" f weaponUnderCrits src/Dodge/Room/Room.hs 179;" f wedgeGeom src/Dodge/Base.hs 42;" f wedgeOfThickness src/Dodge/Picture.hs 9;" f -whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 651;" f -whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 781;" f -whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f -whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f -whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 577;" f -whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 735;" f -whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 573;" f -whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 559;" f -whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 739;" f -whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 773;" f -whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 541;" f -whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f -whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 653;" f +whirS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 685;" f +whirTapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 819;" f +whirdown1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 697;" f +whirdown2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 661;" f +whirdown3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 605;" f +whirdownS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 769;" f +whirdownShort1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 601;" f +whirdownShort2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 585;" f +whirdownShort3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 773;" f +whirdownShort4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 811;" f +whirdownSmall1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 565;" f +whirdownSmall2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 727;" f +whirupS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 687;" f white src/Color.hs 53;" f -whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 617;" f -whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 565;" f +whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 647;" f +whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f winConfig appDodge/Main.hs 47;" f windowLine src/Dodge/Placement/Instance/Wall.hs 51;" f @@ -5761,12 +5774,12 @@ worldPosToScreen src/Dodge/Base/Coordinate.hs 24;" f worldSPic src/Dodge/Render/ShapePicture.hs 22;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f -wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 537;" f +wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 561;" f wristArmour src/Dodge/Item/Equipment.hs 35;" f wristInvisibility src/Dodge/Item/Equipment.hs 80;" f writeConfig src/Dodge/Menu.hs 180;" f writeSaveSlot src/Dodge/Save.hs 36;" f -xChasm src/Dodge/Room/Tutorial.hs 147;" f +xChasm src/Dodge/Room/Tutorial.hs 150;" f xCylinder src/Shape.hs 129;" f xCylinderST src/Shape.hs 126;" f xIntercepts src/Dodge/Zoning/Base.hs 66;" f @@ -5788,7 +5801,7 @@ yourRootItem src/Dodge/Base/You.hs 26;" f yourRootItemDT src/Dodge/Base/You.hs 32;" f yourSelectedItem src/Dodge/Base/You.hs 20;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 193;" f +zChasm src/Dodge/Room/Tutorial.hs 196;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f