diff --git a/data/sound/tone440_30s.AAA.500.wav b/data/sound/tone440_30s.AAA.500.wav new file mode 100644 index 000000000..a9edd81c9 Binary files /dev/null and b/data/sound/tone440_30s.AAA.500.wav differ diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 1179a768d..fc0a12014 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -74,7 +74,7 @@ invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of ATTACH CAPACITOR -> tryDrawToCapacitor loc w EQUIP WRIST_ECG | haspulse -> tryUseParent loc w COPIER _ -> copierItemUpdate itm cr w - HELD FLATSHIELD -> rootNotrootEff createShieldWall removeShieldWall itm cr w + HELD FLATSHIELD -> rootAndAttNotEff createShieldWall removeShieldWall itm cr w HELD MINIGUNX{} -> coolMinigun itm w HELD MACHINEPISTOL{} -> coolMachinePistol cr itm w LASER | loc ^. locDT . dtValue . _2 == WeaponTargetingSF diff --git a/src/Dodge/Data/Item/Location.hs b/src/Dodge/Data/Item/Location.hs index 38e0b1a0e..dffd0ebbc 100644 --- a/src/Dodge/Data/Item/Location.hs +++ b/src/Dodge/Data/Item/Location.hs @@ -31,7 +31,7 @@ data ItemLocation , _ilInvID :: NewInt InvInt , _ilIsRoot :: Bool -- of any item , _ilIsSelected :: Bool - , _ilIsAttached :: Bool -- to selected item + , _ilIsAttached :: Bool -- to selected item. question: downwards and upwards? , _ilEquipSite :: Maybe EquipSite } | OnTurret {_ilTuID :: Int} diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 675c2aa9e..e7611ddca 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -303,6 +303,7 @@ heldItemMuzzles itm = \case dbwMuzzles & ix 0 . mzEffect .~ MuzzleScroller & ix 0 . mzAmmoSlot . aps .~ UseExactly 100000 + FLATSHIELD -> mempty _ -> [ Muzzle { _mzPos = V2 20 0 diff --git a/src/Dodge/Item/BackgroundEffect.hs b/src/Dodge/Item/BackgroundEffect.hs index abb69a5eb..9cf257219 100644 --- a/src/Dodge/Item/BackgroundEffect.hs +++ b/src/Dodge/Item/BackgroundEffect.hs @@ -2,6 +2,7 @@ module Dodge.Item.BackgroundEffect ( itEffectOnPickup, itEffectOnDrop, rootNotrootEff, + rootAndAttNotEff, createShieldWall, removeShieldWall, ) where @@ -36,6 +37,19 @@ rootNotrootEff f g it | it ^? itLocation . ilIsRoot == Just True = f it | otherwise = g it +rootAndAttNotEff :: + (Item -> Creature -> World -> World) -> + (Item -> Creature -> World -> World) -> + Item -> + Creature -> + World -> + World +rootAndAttNotEff f g it + | it ^? itLocation . ilIsRoot == Just True + && it ^? itLocation . ilIsAttached == Just True + = f it + | otherwise = g it + createShieldWall :: Item -> Creature -> World -> World createShieldWall it cr w = case it ^? itParams . flatShieldWlMIX . _Just of Nothing -> diff --git a/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs b/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs index e763b6bbf..701c97f39 100644 --- a/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs +++ b/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs @@ -1,4 +1,4 @@ --- generated at 2025-12-31 13:24:22.332967514 UTC +-- generated at 2026-01-02 12:33:10.260560049 UTC module Dodge.SoundLogic.ExternallyGeneratedSounds where import Sound.Data soundToVol :: SoundID -> Float @@ -61,115 +61,116 @@ soundToVol v = case _getSoundID v of 55 -> 50 56 -> 100 57 -> 2000 - 58 -> 1000 - 59 -> 40 - 60 -> 300 - 61 -> 250 - 62 -> 100 - 63 -> 500 - 64 -> 2000 - 65 -> 40 - 66 -> 200 - 67 -> 2000 - 68 -> 1000 + 58 -> 500 + 59 -> 1000 + 60 -> 40 + 61 -> 300 + 62 -> 250 + 63 -> 100 + 64 -> 500 + 65 -> 2000 + 66 -> 40 + 67 -> 200 + 68 -> 2000 69 -> 1000 - 70 -> 2000 - 71 -> 500 + 70 -> 1000 + 71 -> 2000 72 -> 500 73 -> 500 - 74 -> 100 + 74 -> 500 75 -> 100 - 76 -> 2000 - 77 -> 200 + 76 -> 100 + 77 -> 2000 78 -> 200 - 79 -> 500 - 80 -> 200 - 81 -> 2000 - 82 -> 200 - 83 -> 1000 + 79 -> 200 + 80 -> 500 + 81 -> 200 + 82 -> 2000 + 83 -> 200 84 -> 1000 - 85 -> 250 - 86 -> 300 - 87 -> 2000 - 88 -> 200 - 89 -> 1000 - 90 -> 100 - 91 -> 300 - 92 -> 100 - 93 -> 40 - 94 -> 1000 - 95 -> 100 - 96 -> 1000 - 97 -> 500 - 98 -> 100 - 99 -> 200 - 100 -> 250 - 101 -> 200 + 85 -> 1000 + 86 -> 250 + 87 -> 300 + 88 -> 2000 + 89 -> 200 + 90 -> 1000 + 91 -> 100 + 92 -> 300 + 93 -> 100 + 94 -> 40 + 95 -> 1000 + 96 -> 100 + 97 -> 1000 + 98 -> 500 + 99 -> 100 + 100 -> 200 + 101 -> 250 102 -> 200 - 103 -> 50 - 104 -> 1000 - 105 -> 50 - 106 -> 500 + 103 -> 200 + 104 -> 50 + 105 -> 1000 + 106 -> 50 107 -> 500 - 108 -> 1000 - 109 -> 200 - 110 -> 2000 - 111 -> 20 - 112 -> 500 - 113 -> 200 - 114 -> 100 - 115 -> 2000 - 116 -> 100 + 108 -> 500 + 109 -> 1000 + 110 -> 200 + 111 -> 2000 + 112 -> 20 + 113 -> 500 + 114 -> 200 + 115 -> 100 + 116 -> 2000 117 -> 100 - 118 -> 200 - 119 -> 300 - 120 -> 500 - 121 -> 100 - 122 -> 300 - 123 -> 200 - 124 -> 1000 - 125 -> 100 - 126 -> 50 - 127 -> 100 + 118 -> 100 + 119 -> 200 + 120 -> 300 + 121 -> 500 + 122 -> 100 + 123 -> 300 + 124 -> 200 + 125 -> 1000 + 126 -> 100 + 127 -> 50 128 -> 100 - 129 -> 50 - 130 -> 1000 - 131 -> 500 - 132 -> 40 - 133 -> 100 - 134 -> 200 - 135 -> 500 - 136 -> 1000 - 137 -> 300 - 138 -> 100 - 139 -> 300 + 129 -> 100 + 130 -> 50 + 131 -> 1000 + 132 -> 500 + 133 -> 40 + 134 -> 100 + 135 -> 200 + 136 -> 500 + 137 -> 1000 + 138 -> 300 + 139 -> 100 140 -> 300 - 141 -> 100 + 141 -> 300 142 -> 100 - 143 -> 500 - 144 -> 100 + 143 -> 100 + 144 -> 500 145 -> 100 - 146 -> 500 - 147 -> 100 + 146 -> 100 + 147 -> 500 148 -> 100 - 149 -> 500 - 150 -> 40 - 151 -> 200 - 152 -> 50 - 153 -> 500 - 154 -> 2000 + 149 -> 100 + 150 -> 500 + 151 -> 40 + 152 -> 200 + 153 -> 50 + 154 -> 500 155 -> 2000 - 156 -> 40 - 157 -> 100 + 156 -> 2000 + 157 -> 40 158 -> 100 - 159 -> 500 - 160 -> 100 - 161 -> 1000 - 162 -> 100 - 163 -> 500 - 164 -> 8000 - 165 -> 200 - 166 -> 300 + 159 -> 100 + 160 -> 500 + 161 -> 100 + 162 -> 1000 + 163 -> 100 + 164 -> 500 + 165 -> 8000 + 166 -> 200 + 167 -> 300 _ -> 50 soundToOnomato :: SoundID -> String soundToOnomato v = case _getSoundID v of @@ -231,115 +232,116 @@ soundToOnomato v = case _getSoundID v of 55 -> "BLIH" 56 -> "DRR" 57 -> "CRH" - 58 -> "BLPCHCH" - 59 -> "CLNK" - 60 -> "WHRR" - 61 -> "WHR" - 62 -> "KKSQWL" - 63 -> "CLKCLK" - 64 -> "BANGG" - 65 -> "TIPTOP" - 66 -> "WHH" - 67 -> "BRPBRPBRP" - 68 -> "TTRKL" - 69 -> "CRUMBL" - 70 -> "SCREE" - 71 -> "WRRR" - 72 -> "SCREE" - 73 -> "BIPBIPBIP" - 74 -> "SLP" - 75 -> "CLCLH" - 76 -> "CREUH" - 77 -> "SQWLTCH" - 78 -> "TING" - 79 -> "DEDEDA" - 80 -> "WHR" - 81 -> "CRUH" - 82 -> "SQWCH" - 83 -> "TRWNG" - 84 -> "CRSK" - 85 -> "DMP" - 86 -> "BEP" - 87 -> "BOOM" - 88 -> "SKREL" - 89 -> "CRSNK" - 90 -> "SLP" - 91 -> "CHPCHPCHP" - 92 -> "SLP" - 93 -> "TAP" - 94 -> "CRNKL" - 95 -> "WRR" - 96 -> "CRNK" - 97 -> "CUHRUP" - 98 -> "SPLRT" - 99 -> "TING" - 100 -> "WHRHH" - 101 -> "CRSKRL" - 102 -> "WH" - 103 -> "FHFH" - 104 -> "BRAP" - 105 -> "WHHH" - 106 -> "PLH" - 107 -> "CLANG" - 108 -> "CRUNK" - 109 -> "TING" - 110 -> "TATATA" - 111 -> "SWSH" - 112 -> "DNDNDNDN" - 113 -> "THCK" - 114 -> "SLP" - 115 -> "PEW" - 116 -> "SKLE" - 117 -> "THUD" - 118 -> "WH" - 119 -> "BWAH" - 120 -> "DEDEDUM" - 121 -> "WHUMWHUM" - 122 -> "WHRP" - 123 -> "TING" - 124 -> "CRMPL" - 125 -> "SKLE" - 126 -> "SHUHP" - 127 -> "SLP" - 128 -> "SPRT" - 129 -> "HSS" - 130 -> "TRNKL" - 131 -> "TAK" - 132 -> "CLICK" - 133 -> "DUHDEH" - 134 -> "SHTCK" - 135 -> "DEDUM" - 136 -> "BWMP" - 137 -> "BWAAH" - 138 -> "SLP" - 139 -> "DWAAH" - 140 -> "TNKTONK" - 141 -> "VFVFVF" - 142 -> "SLP" - 143 -> "CRTINK" - 144 -> "VHHP" - 145 -> "SPRT" - 146 -> "PRUM" - 147 -> "SLPP" - 148 -> "FWUMP" - 149 -> "CLANG" - 150 -> "TIP" - 151 -> "CRAKLE" - 152 -> "HSSS" - 153 -> "TRINKL" - 154 -> "BANG" - 155 -> "CHUGUGUG" - 156 -> "TAPP" - 157 -> "KKSQWL" - 158 -> "SKWLL" - 159 -> "DUDURAH" - 160 -> "SKWLL" - 161 -> "TRNKL" - 162 -> "SLP" - 163 -> "WHUAWUH" - 164 -> "RINGGG" - 165 -> "QWLPH" - 166 -> "WRRR" + 58 -> "AAA" + 59 -> "BLPCHCH" + 60 -> "CLNK" + 61 -> "WHRR" + 62 -> "WHR" + 63 -> "KKSQWL" + 64 -> "CLKCLK" + 65 -> "BANGG" + 66 -> "TIPTOP" + 67 -> "WHH" + 68 -> "BRPBRPBRP" + 69 -> "TTRKL" + 70 -> "CRUMBL" + 71 -> "SCREE" + 72 -> "WRRR" + 73 -> "SCREE" + 74 -> "BIPBIPBIP" + 75 -> "SLP" + 76 -> "CLCLH" + 77 -> "CREUH" + 78 -> "SQWLTCH" + 79 -> "TING" + 80 -> "DEDEDA" + 81 -> "WHR" + 82 -> "CRUH" + 83 -> "SQWCH" + 84 -> "TRWNG" + 85 -> "CRSK" + 86 -> "DMP" + 87 -> "BEP" + 88 -> "BOOM" + 89 -> "SKREL" + 90 -> "CRSNK" + 91 -> "SLP" + 92 -> "CHPCHPCHP" + 93 -> "SLP" + 94 -> "TAP" + 95 -> "CRNKL" + 96 -> "WRR" + 97 -> "CRNK" + 98 -> "CUHRUP" + 99 -> "SPLRT" + 100 -> "TING" + 101 -> "WHRHH" + 102 -> "CRSKRL" + 103 -> "WH" + 104 -> "FHFH" + 105 -> "BRAP" + 106 -> "WHHH" + 107 -> "PLH" + 108 -> "CLANG" + 109 -> "CRUNK" + 110 -> "TING" + 111 -> "TATATA" + 112 -> "SWSH" + 113 -> "DNDNDNDN" + 114 -> "THCK" + 115 -> "SLP" + 116 -> "PEW" + 117 -> "SKLE" + 118 -> "THUD" + 119 -> "WH" + 120 -> "BWAH" + 121 -> "DEDEDUM" + 122 -> "WHUMWHUM" + 123 -> "WHRP" + 124 -> "TING" + 125 -> "CRMPL" + 126 -> "SKLE" + 127 -> "SHUHP" + 128 -> "SLP" + 129 -> "SPRT" + 130 -> "HSS" + 131 -> "TRNKL" + 132 -> "TAK" + 133 -> "CLICK" + 134 -> "DUHDEH" + 135 -> "SHTCK" + 136 -> "DEDUM" + 137 -> "BWMP" + 138 -> "BWAAH" + 139 -> "SLP" + 140 -> "DWAAH" + 141 -> "TNKTONK" + 142 -> "VFVFVF" + 143 -> "SLP" + 144 -> "CRTINK" + 145 -> "VHHP" + 146 -> "SPRT" + 147 -> "PRUM" + 148 -> "SLPP" + 149 -> "FWUMP" + 150 -> "CLANG" + 151 -> "TIP" + 152 -> "CRAKLE" + 153 -> "HSSS" + 154 -> "TRINKL" + 155 -> "BANG" + 156 -> "CHUGUGUG" + 157 -> "TAPP" + 158 -> "KKSQWL" + 159 -> "SKWLL" + 160 -> "DUDURAH" + 161 -> "SKWLL" + 162 -> "TRNKL" + 163 -> "SLP" + 164 -> "WHUAWUH" + 165 -> "RINGGG" + 166 -> "QWLPH" + 167 -> "WRRR" _ -> error "unitialised sound" soundPathList :: [String] soundPathList = @@ -401,6 +403,7 @@ soundPathList = , "heal.BLIH.50.wav" , "slideDoor.DRR.100.wav" , "seagullCry1.CRH.2000.wav" + , "tone440_30s.AAA.500.wav" , "oldMachineBoot.BLPCHCH.1000.wav" , "tapQuiet.CLNK.40.wav" , "whir.WHRR.300.wav" @@ -627,221 +630,223 @@ slideDoorS :: SoundID slideDoorS = SoundID 56 seagullCry1S :: SoundID seagullCry1S = SoundID 57 +tone440_30sS :: SoundID +tone440_30sS = SoundID 58 oldMachineBootS :: SoundID -oldMachineBootS = SoundID 58 +oldMachineBootS = SoundID 59 tapQuietS :: SoundID -tapQuietS = SoundID 59 +tapQuietS = SoundID 60 whirS :: SoundID -whirS = SoundID 60 +whirS = SoundID 61 whirupS :: SoundID -whirupS = SoundID 61 +whirupS = SoundID 62 blood3S :: SoundID -blood3S = SoundID 62 +blood3S = SoundID 63 primeS :: SoundID -primeS = SoundID 63 +primeS = SoundID 64 bangEchoS :: SoundID -bangEchoS = SoundID 64 +bangEchoS = SoundID 65 twoStepSlowS :: SoundID -twoStepSlowS = SoundID 65 +twoStepSlowS = SoundID 66 whirdown1S :: SoundID -whirdown1S = SoundID 66 +whirdown1S = SoundID 67 miniS :: SoundID -miniS = SoundID 67 +miniS = SoundID 68 metal5S :: SoundID -metal5S = SoundID 68 +metal5S = SoundID 69 stone5S :: SoundID -stone5S = SoundID 69 +stone5S = SoundID 70 tone440sawtoothS :: SoundID -tone440sawtoothS = SoundID 70 +tone440sawtoothS = SoundID 71 fireLoudS :: SoundID -fireLoudS = SoundID 71 +fireLoudS = SoundID 72 tone440sawtoothquietS :: SoundID -tone440sawtoothquietS = SoundID 72 +tone440sawtoothquietS = SoundID 73 computerBeepingS :: SoundID -computerBeepingS = SoundID 73 +computerBeepingS = SoundID 74 slapS :: SoundID -slapS = SoundID 74 +slapS = SoundID 75 bloodShort5S :: SoundID -bloodShort5S = SoundID 75 +bloodShort5S = SoundID 76 seagullCry2S :: SoundID -seagullCry2S = SoundID 76 +seagullCry2S = SoundID 77 gut5S :: SoundID -gut5S = SoundID 77 +gut5S = SoundID 78 ting2S :: SoundID -ting2S = SoundID 78 +ting2S = SoundID 79 dededaS :: SoundID -dededaS = SoundID 79 +dededaS = SoundID 80 whirdownSmall2S :: SoundID -whirdownSmall2S = SoundID 80 +whirdownSmall2S = SoundID 81 seagullCryS :: SoundID -seagullCryS = SoundID 81 +seagullCryS = SoundID 82 gut3S :: SoundID -gut3S = SoundID 82 +gut3S = SoundID 83 metal7S :: SoundID -metal7S = SoundID 83 +metal7S = SoundID 84 glassShat4S :: SoundID -glassShat4S = SoundID 84 +glassShat4S = SoundID 85 energyReleaseS :: SoundID -energyReleaseS = SoundID 85 +energyReleaseS = SoundID 86 tone440S :: SoundID -tone440S = SoundID 86 +tone440S = SoundID 87 explosionS :: SoundID -explosionS = SoundID 87 +explosionS = SoundID 88 gut4S :: SoundID -gut4S = SoundID 88 +gut4S = SoundID 89 glassShat1S :: SoundID -glassShat1S = SoundID 89 +glassShat1S = SoundID 90 slap3S :: SoundID -slap3S = SoundID 90 +slap3S = SoundID 91 reload1S :: SoundID -reload1S = SoundID 91 +reload1S = SoundID 92 slapClean3S :: SoundID -slapClean3S = SoundID 92 +slapClean3S = SoundID 93 foot2S :: SoundID -foot2S = SoundID 93 +foot2S = SoundID 94 glassShat2S :: SoundID -glassShat2S = SoundID 94 +glassShat2S = SoundID 95 fireS :: SoundID -fireS = SoundID 95 +fireS = SoundID 96 glassShat3S :: SoundID -glassShat3S = SoundID 96 +glassShat3S = SoundID 97 insertS :: SoundID -insertS = SoundID 97 +insertS = SoundID 98 blood1S :: SoundID -blood1S = SoundID 98 +blood1S = SoundID 99 ting3S :: SoundID -ting3S = SoundID 99 +ting3S = SoundID 100 whirdownS :: SoundID -whirdownS = SoundID 100 +whirdownS = SoundID 101 gut6S :: SoundID -gut6S = SoundID 101 +gut6S = SoundID 102 whirdownShort3S :: SoundID -whirdownShort3S = SoundID 102 +whirdownShort3S = SoundID 103 debrisS :: SoundID -debrisS = SoundID 103 +debrisS = SoundID 104 tap3S :: SoundID -tap3S = SoundID 104 +tap3S = SoundID 105 backgroundSpaceS :: SoundID -backgroundSpaceS = SoundID 105 +backgroundSpaceS = SoundID 106 lasPulseS :: SoundID -lasPulseS = SoundID 106 +lasPulseS = SoundID 107 clang2S :: SoundID -clang2S = SoundID 107 +clang2S = SoundID 108 metal2S :: SoundID -metal2S = SoundID 108 +metal2S = SoundID 109 tingS :: SoundID -tingS = SoundID 109 +tingS = SoundID 110 autoBS :: SoundID -autoBS = SoundID 110 +autoBS = SoundID 111 knifeS :: SoundID -knifeS = SoundID 111 +knifeS = SoundID 112 combineS :: SoundID -combineS = SoundID 112 +combineS = SoundID 113 connectItemS :: SoundID -connectItemS = SoundID 113 +connectItemS = SoundID 114 slapClean7S :: SoundID -slapClean7S = SoundID 114 +slapClean7S = SoundID 115 seagullWhistle1S :: SoundID -seagullWhistle1S = SoundID 115 +seagullWhistle1S = SoundID 116 bloodShort6S :: SoundID -bloodShort6S = SoundID 116 +bloodShort6S = SoundID 117 hitS :: SoundID -hitS = SoundID 117 +hitS = SoundID 118 whirdownShort4S :: SoundID -whirdownShort4S = SoundID 118 +whirdownShort4S = SoundID 119 sineRaisePitchOneSecS :: SoundID -sineRaisePitchOneSecS = SoundID 119 +sineRaisePitchOneSecS = SoundID 120 dededumS :: SoundID -dededumS = SoundID 120 +dededumS = SoundID 121 throbC4S :: SoundID -throbC4S = SoundID 121 +throbC4S = SoundID 122 whirTapS :: SoundID -whirTapS = SoundID 122 +whirTapS = SoundID 123 ting5S :: SoundID -ting5S = SoundID 123 +ting5S = SoundID 124 stone2S :: SoundID -stone2S = SoundID 124 +stone2S = SoundID 125 blood6S :: SoundID -blood6S = SoundID 125 +blood6S = SoundID 126 pickUpS :: SoundID -pickUpS = SoundID 126 +pickUpS = SoundID 127 slap2S :: SoundID -slap2S = SoundID 127 +slap2S = SoundID 128 bloodShort2S :: SoundID -bloodShort2S = SoundID 128 +bloodShort2S = SoundID 129 foamSprayFadeOutS :: SoundID -foamSprayFadeOutS = SoundID 129 +foamSprayFadeOutS = SoundID 130 metal6S :: SoundID -metal6S = SoundID 130 +metal6S = SoundID 131 tap1S :: SoundID -tap1S = SoundID 131 +tap1S = SoundID 132 click1S :: SoundID -click1S = SoundID 132 +click1S = SoundID 133 semitoneLoop1S :: SoundID -semitoneLoop1S = SoundID 133 +semitoneLoop1S = SoundID 134 disconnectItemS :: SoundID -disconnectItemS = SoundID 134 +disconnectItemS = SoundID 135 dedumS :: SoundID -dedumS = SoundID 135 +dedumS = SoundID 136 sawtoothFailS :: SoundID -sawtoothFailS = SoundID 136 +sawtoothFailS = SoundID 137 sineRaisePitchTwoSecS :: SoundID -sineRaisePitchTwoSecS = SoundID 137 +sineRaisePitchTwoSecS = SoundID 138 slap4S :: SoundID -slap4S = SoundID 138 +slap4S = SoundID 139 skwareFadeTwoSecS :: SoundID -skwareFadeTwoSecS = SoundID 139 +skwareFadeTwoSecS = SoundID 140 reloadFailS :: SoundID -reloadFailS = SoundID 140 +reloadFailS = SoundID 141 throb1S :: SoundID -throb1S = SoundID 141 +throb1S = SoundID 142 slap5S :: SoundID -slap5S = SoundID 142 +slap5S = SoundID 143 smallGlass3S :: SoundID -smallGlass3S = SoundID 143 +smallGlass3S = SoundID 144 reverseCymbal1S :: SoundID -reverseCymbal1S = SoundID 144 +reverseCymbal1S = SoundID 145 blood2S :: SoundID -blood2S = SoundID 145 +blood2S = SoundID 146 insertOneS :: SoundID -insertOneS = SoundID 146 +insertOneS = SoundID 147 slap1S :: SoundID -slap1S = SoundID 147 +slap1S = SoundID 148 tap4S :: SoundID -tap4S = SoundID 148 +tap4S = SoundID 149 clang1S :: SoundID -clang1S = SoundID 149 +clang1S = SoundID 150 foot1S :: SoundID -foot1S = SoundID 150 +foot1S = SoundID 151 elecCrackleS :: SoundID -elecCrackleS = SoundID 151 +elecCrackleS = SoundID 152 foamSprayLoopS :: SoundID -foamSprayLoopS = SoundID 152 +foamSprayLoopS = SoundID 153 smallGlass1S :: SoundID -smallGlass1S = SoundID 153 +smallGlass1S = SoundID 154 bangS :: SoundID -bangS = SoundID 154 +bangS = SoundID 155 seagullChatterS :: SoundID -seagullChatterS = SoundID 155 +seagullChatterS = SoundID 156 foot3S :: SoundID -foot3S = SoundID 156 +foot3S = SoundID 157 bloodShort3S :: SoundID -bloodShort3S = SoundID 157 +bloodShort3S = SoundID 158 blood4S :: SoundID -blood4S = SoundID 158 +blood4S = SoundID 159 ejectS :: SoundID -ejectS = SoundID 159 +ejectS = SoundID 160 bloodShort4S :: SoundID -bloodShort4S = SoundID 160 +bloodShort4S = SoundID 161 metal1S :: SoundID -metal1S = SoundID 161 +metal1S = SoundID 162 slapClean5S :: SoundID -slapClean5S = SoundID 162 +slapClean5S = SoundID 163 warp1S :: SoundID -warp1S = SoundID 163 +warp1S = SoundID 164 tinitusS :: SoundID -tinitusS = SoundID 164 +tinitusS = SoundID 165 gut1S :: SoundID -gut1S = SoundID 165 +gut1S = SoundID 166 fireFadeS :: SoundID -fireFadeS = SoundID 166 +fireFadeS = SoundID 167 diff --git a/tags b/tags index 882769eb6..81ce33d58 100644 --- a/tags +++ b/tags @@ -60,7 +60,7 @@ AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t ArbitraryAction src/Dodge/Data/ActionPlan.hs 119;" C ArcNodeType src/Dodge/Data/LWorld.hs 156;" t -ArcShad src/Picture/Data.hs 34;" C +ArcShad src/Picture/Data.hs 33;" C ArcStep src/Dodge/Data/ArcStep.hs 12;" t Arcing src/Dodge/Data/Item/Params.hs 15;" C ArmourySS src/Dodge/Data/Scenario.hs 112;" C @@ -221,10 +221,7 @@ Color8 src/Color/Data.hs 32;" t ColorFaction src/Dodge/Data/Creature/State.hs 19;" C Comatose src/Dodge/Data/Creature/Perception.hs 51;" C CombAmount src/Dodge/Data/CombAmount.hs 10;" t -CombClust src/Dodge/Combine/Graph.hs 17;" t -CombEdge src/Dodge/Combine/Graph.hs 30;" t CombItem src/Dodge/Data/Combine.hs 8;" t -CombNode src/Dodge/Combine/Graph.hs 23;" t CombineInventory src/Dodge/Data/HUD.hs 22;" C CombineInventoryChange src/Dodge/Data/World.hs 32;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C @@ -272,7 +269,6 @@ CrWeaponSound src/Dodge/Data/SoundOrigin.hs 18;" C CrWlID src/Dodge/Data/CrWlID.hs 10;" t Cr_awareness src/Dodge/Data/Config.hs 85;" C Cr_status src/Dodge/Data/Config.hs 84;" C -CraftClust src/Dodge/Combine/Graph.hs 18;" C CraftType src/Dodge/Data/Item/Combine.hs 49;" t CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C @@ -373,7 +369,7 @@ Electrical src/Dodge/Data/Damage.hs 24;" C ElectricalAmmo src/Dodge/Data/AmmoType.hs 12;" C ElectricalBall src/Dodge/Data/EnergyBall/Type.hs 13;" C Electronics src/Dodge/Data/Material.hs 18;" C -EllShad src/Picture/Data.hs 35;" C +EllShad src/Picture/Data.hs 34;" C EncircleFlock src/Dodge/Data/Creature/State.hs 15;" C EnergyBall src/Dodge/Data/EnergyBall.hs 15;" t EnergyBallType src/Dodge/Data/EnergyBall/Type.hs 10;" t @@ -416,7 +412,7 @@ FetchItem src/Dodge/Data/Scenario.hs 11;" C FilterBySoundOrigin src/Dodge/Data/WorldEffect.hs 22;" C FireSpark src/Dodge/Data/Spark.hs 19;" C Fixated src/Dodge/Data/Creature/Perception.hs 60;" C -FixedCoordLayer src/Picture/Data.hs 24;" C +FixedCoordLayer src/Picture/Data.hs 23;" C FixedSelectionWidth src/Dodge/Data/SelectionList.hs 42;" C FlIt src/Dodge/Data/FloorItem.hs 11;" C Flame src/Dodge/Data/Flame.hs 11;" t @@ -598,7 +594,6 @@ ItCrWdItemHeldEffectNoHammer src/Dodge/Data/WorldEffect.hs 18;" C ItCrWdWd src/Dodge/Data/WorldEffect.hs 17;" t ItTargeting src/Dodge/Data/Item.hs 45;" C Item src/Dodge/Data/Item.hs 26;" t -ItemClust src/Dodge/Combine/Graph.hs 19;" C ItemDimension src/Dodge/Data/Item/Misc.hs 11;" t ItemLocation src/Dodge/Data/Item/Location.hs 28;" t ItemParamID src/Dodge/Data/Item/Params.hs 24;" C @@ -615,7 +610,6 @@ ItemUse src/Dodge/Data/Item/Use.hs 28;" t ItmInt src/Dodge/Data/Item/Location.hs 25;" t JOYSTICK src/Dodge/Data/Item/Combine.hs 94;" C JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C -JoinClust src/Dodge/Combine/Graph.hs 20;" C JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C @@ -991,7 +985,7 @@ PenetrateBullet src/Dodge/Data/Bullet.hs 29;" C Perception src/Dodge/Data/Creature/Perception.hs 30;" t PhysicalDamage src/Dodge/Data/Damage/Type.hs 4;" C PhysicalSensor src/Dodge/Data/Machine/Sensor.hs 16;" C -Picture src/Picture/Data.hs 42;" t +Picture src/Picture/Data.hs 41;" t Piercing src/Dodge/Data/Damage.hs 16;" C PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C Placement src/Dodge/Data/GenWorld.hs 104;" t @@ -1011,7 +1005,7 @@ Poison src/Dodge/Data/Damage.hs 26;" C PoisonDamage src/Dodge/Data/Damage/Type.hs 6;" C PoisonGas src/Dodge/Data/Cloud.hs 42;" C PolyEdge src/Dodge/Data/Room.hs 47;" C -PolyShad src/Picture/Data.hs 32;" C +PolyShad src/Picture/Data.hs 31;" C Polyhedra src/Polyhedra/Data.hs 13;" t Polyhedron src/Polyhedra/Data.hs 13;" C PosInf src/Dodge/Data/CardinalPoint.hs 44;" C @@ -1180,7 +1174,7 @@ SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C SentinelAt src/Dodge/Data/ActionPlan.hs 152;" C SetLSCol src/Dodge/Data/WorldEffect.hs 29;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C -ShadNum src/Picture/Data.hs 31;" t +ShadNum src/Picture/Data.hs 30;" t Shader src/Shader/Data.hs 51;" t ShaderTexture src/Shader/Data.hs 102;" t ShadowFidelity src/Shape/Data.hs 19;" t @@ -1335,7 +1329,7 @@ TerrestrialBiome src/Dodge/Data/Scenario.hs 76;" t TeslaArc src/Dodge/Data/TeslaArc.hs 15;" t TeslaBeamCombine src/Dodge/Data/Beam.hs 39;" C TeslaGunFlare src/Dodge/Data/Muzzle.hs 35;" C -TextShad src/Picture/Data.hs 33;" C +TextShad src/Picture/Data.hs 32;" C ThermalSensor src/Dodge/Data/Machine/Sensor.hs 15;" C Tile src/Data/Tile.hs 16;" t Tiled src/Data/Tile.hs 14;" C @@ -2413,8 +2407,6 @@ _uaParams src/Dodge/Data/Item/Use.hs 30;" f _ubMod src/Dodge/Data/Item/Use.hs 35;" f _uiboName src/Shader/Data.hs 92;" f _uiboPtr src/Shader/Data.hs 93;" f -_unCombEdge src/Dodge/Combine/Graph.hs 30;" f -_unCombNode src/Dodge/Combine/Graph.hs 23;" f _unFBO src/Shader/Data.hs 57;" f _unNInt src/NewInt.hs 16;" f _unNIntMap src/NewInt.hs 22;" f @@ -2617,8 +2609,8 @@ applyWorldConfig src/Dodge/Config.hs 55;" f aquamarine src/Color.hs 50;" f arHUD src/Dodge/Item/Scope.hs 134;" f arc src/Picture/Base.hs 282;" f -arcFull src/Picture/Arc.hs 11;" f -arcPart src/Picture/Arc.hs 24;" f +arcFull src/Picture/Arc.hs 9;" f +arcPart src/Picture/Arc.hs 22;" f arcSolid src/Picture/Base.hs 271;" f arcStepwise src/Geometry.hs 326;" f arcStepwisePositive src/Geometry.hs 340;" f @@ -2694,12 +2686,10 @@ basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMuzFlare src/Dodge/HeldUse.hs 712;" f battery src/Dodge/Item/Ammo.hs 63;" f batteryPack src/Dodge/Item/Equipment.hs 46;" f -belowNumX src/Dodge/Combine/Graph.hs 84;" f beltMag src/Dodge/Item/Ammo.hs 39;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 121;" f bgunSound src/Dodge/HeldUse.hs 516;" f -bindFBO src/Render.hs 236;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 54;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f @@ -2756,7 +2746,7 @@ brightX src/Color.hs 143;" f btSPic src/Dodge/Render/ShapePicture.hs 159;" f btText src/Dodge/Inventory/SelectionList.hs 242;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 433;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 431;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2869,8 +2859,6 @@ clsNearCirc src/Dodge/Zoning/Cloud.hs 21;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f clsNearSeg src/Dodge/Zoning/Cloud.hs 15;" f -clusterFormatting src/Dodge/Combine/Graph.hs 122;" f -clusterFunc src/Dodge/Combine/Graph.hs 116;" f cogRaised src/Dodge/Creature/Perception.hs 101;" f colCrWall src/Dodge/WallCreatureCollisions.hs 29;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f @@ -2891,8 +2879,6 @@ collidePointWallsFilter src/Dodge/Base/Collide.hs 202;" f color src/Picture/Base.hs 100;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f colorSH src/Shape.hs 233;" f -combinationsDotGraph src/Dodge/Combine/Graph.hs 93;" f -combinationsGraph src/Dodge/Combine/Graph.hs 72;" f combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 44;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f @@ -2990,7 +2976,7 @@ createForceField src/Dodge/ForceField.hs 7;" f createGas src/Dodge/Gas.hs 10;" f createHeadLamp src/Dodge/Euse.hs 58;" f createItemYou src/Dodge/Inventory/Add.hs 62;" f -createLightMap src/Render.hs 28;" f +createLightMap src/Render.hs 26;" f createProjectile src/Dodge/HeldUse.hs 1270;" f createProjectileR src/Dodge/HeldUse.hs 1219;" f createShell src/Dodge/Projectile/Create.hs 21;" f @@ -3082,8 +3068,8 @@ debugEvent src/Dodge/Debug.hs 44;" f debugEvents src/Dodge/Debug.hs 29;" f debugGet src/Dodge/Debug.hs 82;" f debugItem src/Dodge/Debug.hs 47;" f -debugMenu src/Dodge/Menu.hs 124;" f -debugMenuOptions src/Dodge/Menu.hs 130;" f +debugMenu src/Dodge/Menu.hs 122;" f +debugMenuOptions src/Dodge/Menu.hs 128;" f debugMouseClickPos src/Dodge/Debug.hs 153;" f debugOn src/Dodge/Data/Config.hs 176;" f debugPutDraw src/Dodge/Debug.hs 103;" f @@ -3182,8 +3168,8 @@ 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 782;" f -displayConfig src/Dodge/Menu.hs 225;" f -displayControls src/Dodge/Menu.hs 241;" f +displayConfig src/Dodge/Menu.hs 223;" f +displayControls src/Dodge/Menu.hs 239;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f displayIndents src/Dodge/DisplayInventory.hs 110;" f @@ -3299,7 +3285,7 @@ drawCombFilter src/Dodge/Render/Picture.hs 267;" f drawCombineInventory src/Dodge/Render/HUD.hs 186;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f drawCoord src/Dodge/Debug/Picture.hs 387;" f -drawCountMod src/Shader.hs 24;" f +drawCountMod src/Render.hs 231;" f drawCrInfo src/Dodge/Debug.hs 177;" f drawCrInfo' src/Dodge/Debug.hs 172;" f drawCreature src/Dodge/Render/ShapePicture.hs 101;" f @@ -3375,7 +3361,7 @@ drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 37;" f drawSelect src/Dodge/Render/Picture.hs 255;" f drawSelectionList src/Dodge/Render/List.hs 35;" f drawSelectionSections src/Dodge/SelectionSections/Draw.hs 17;" f -drawShaderLay src/Shader.hs 10;" f +drawShaderLay src/Render.hs 218;" f drawShadowsByImportance src/Dodge/Shadows.hs 8;" f drawShell src/Dodge/Projectile/Draw.hs 22;" f drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f @@ -3434,7 +3420,6 @@ ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f ebFlicker src/Dodge/EnergyBall.hs 70;" f ebtToDamage src/Dodge/EnergyBall.hs 93;" f -edgeFormatting src/Dodge/Combine/Graph.hs 128;" f edgeToPic src/Dodge/Debug/Picture.hs 417;" f effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnRemove src/Dodge/Equipment.hs 19;" f @@ -3578,17 +3563,17 @@ g src/ShortShow.hs 48;" f gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f gRandify src/Dodge/Randify.hs 11;" f gadgetEffect src/Dodge/HeldUse.hs 49;" f -gameOverMenu src/Dodge/Menu.hs 202;" f +gameOverMenu src/Dodge/Menu.hs 200;" f gameRoomFromRoom src/Dodge/Layout.hs 152;" f gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 149;" f -gameplayMenu src/Dodge/Menu.hs 154;" f -gameplayMenuOptions src/Dodge/Menu.hs 157;" f +gameplayMenu src/Dodge/Menu.hs 152;" f +gameplayMenuOptions src/Dodge/Menu.hs 155;" f gasEffect src/Dodge/Update.hs 831;" f gasType src/Dodge/HeldUse.hs 1109;" f gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f -generateGraphs src/Dodge/Menu.hs 149;" f +generateGraphs src/Dodge/Menu.hs 147;" f generateLayout src/Dodge/Layout/Generate.hs 10;" f generateLevelFromRoomList src/Dodge/Layout.hs 35;" f generateWorldFromSeed src/Dodge/LevelGen.hs 17;" f @@ -3611,7 +3596,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 351;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 338;" f getDebugMouseOver src/Dodge/Update.hs 423;" f -getDistortions src/Dodge/Render.hs 445;" f +getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1258;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3661,8 +3646,8 @@ grahamScan src/Geometry/Polygon.hs 154;" f grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f graphToEdges src/Dodge/Graph.hs 35;" f graphToIncidence src/Dodge/Graph.hs 40;" f -graphicsMenu src/Dodge/Menu.hs 185;" f -graphicsMenuOptions src/Dodge/Menu.hs 188;" f +graphicsMenu src/Dodge/Menu.hs 183;" f +graphicsMenuOptions src/Dodge/Menu.hs 186;" f green src/Color.hs 42;" f greyN src/Color.hs 151;" f gridInPolygon src/Grid.hs 10;" f @@ -3883,7 +3868,6 @@ itemBelowAttachables src/Dodge/Item/Grammar.hs 50;" f itemBlips src/Dodge/RadarSweep.hs 94;" f itemBulkiness src/Dodge/Creature/YourControl.hs 188;" f itemCombinations src/Dodge/Combine/Combinations.hs 56;" f -itemCombinationsEdges src/Dodge/Combine/Graph.hs 59;" f itemDetectorEffect src/Dodge/HeldUse.hs 791;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 53;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f @@ -4004,8 +3988,8 @@ lineSplit src/Justify.hs 26;" f lineUp src/Dodge/Creature/Boid.hs 150;" f linksDAGToPath src/Dodge/Room/Path.hs 13;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f -listConfig src/Dodge/Menu.hs 234;" f -listControls src/Dodge/Menu.hs 246;" f +listConfig src/Dodge/Menu.hs 232;" f +listControls src/Dodge/Menu.hs 244;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 120;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 196;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f @@ -4041,8 +4025,8 @@ lockInv src/Dodge/Inventory/Lock.hs 9;" f lockRoomKeyItems src/Dodge/LockAndKey.hs 25;" f lockRoomMultiItems src/Dodge/LockAndKey.hs 15;" f lockedStart src/Dodge/Room/RunPast.hs 34;" f -logMenu src/Dodge/Menu.hs 127;" f -logOptions src/Dodge/Menu.hs 142;" f +logMenu src/Dodge/Menu.hs 125;" f +logOptions src/Dodge/Menu.hs 140;" f logistic src/Dodge/Base.hs 98;" f longBlockedCorridor src/Dodge/Room/RoadBlock.hs 58;" f longCrit src/Dodge/Creature.hs 68;" f @@ -4130,7 +4114,6 @@ materialPenetrable src/Dodge/Bullet.hs 211;" f maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f maxDamageType src/Dodge/Damage.hs 58;" f maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f -maxShowX src/Dodge/Combine/Graph.hs 48;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f @@ -4264,7 +4247,6 @@ mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f mvProp src/Dodge/Placement/PlaceSpot.hs 172;" f myIntersectLineLine src/Geometry/Intersect.hs 198;" f myIntersectSegSeg src/Geometry/Intersect.hs 176;" f -myParams src/Dodge/Combine/Graph.hs 100;" f nRays src/Geometry.hs 182;" f nRaysRad src/Geometry.hs 186;" f nearCollinear src/Dodge/LevelGen/StaticWalls/Deprecated.hs 19;" f @@ -4285,7 +4267,6 @@ nextLayoutInt src/Dodge/Data/MetaTree.hs 43;" f noPic src/ShapePicture.hs 25;" f noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 23;" f -nodeFormatting src/Dodge/Combine/Graph.hs 144;" f nodesNear src/Dodge/Path.hs 75;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 30;" f normalTo8 src/Shader/Poke.hs 466;" f @@ -4298,12 +4279,12 @@ notLink src/Dodge/Data/Room.hs 72;" f nulgate src/Dodge/Item/Scope.hs 95;" f numDrawableVertices src/Shader/Parameters.hs 34;" f numGLuint src/Shader/Parameters.hs 29;" f -numLayers src/Picture/Data.hs 27;" f +numLayers src/Picture/Data.hs 26;" f numMetaTree src/Dodge/Tree/Compose.hs 119;" f numMetaTree' src/Dodge/Tree/Compose.hs 122;" f numSelfTree src/Dodge/Tree/Compose.hs 107;" f numSelfTree' src/Dodge/Tree/Compose.hs 110;" f -numShads src/Picture/Data.hs 38;" f +numShads src/Picture/Data.hs 37;" f numSubElements src/Shader/Parameters.hs 39;" f numTraversable src/TreeHelp.hs 184;" f obstacleColor src/Dodge/Debug/Picture.hs 264;" f @@ -4314,11 +4295,11 @@ onRemoveWristShield src/Dodge/Equipment.hs 24;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 96;" f openConsole src/Dodge/Update.hs 139;" f -optionMenu src/Dodge/Menu.hs 112;" f +optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 53;" f optionValueOffset src/Dodge/Menu/Option.hs 86;" f -optionsOptions src/Dodge/Menu.hs 115;" f +optionsOptions src/Dodge/Menu.hs 113;" f optionsToSelections src/Dodge/Menu/Option.hs 47;" f orRegex src/Dodge/DisplayInventory.hs 81;" f orange src/Color.hs 52;" f @@ -4365,8 +4346,8 @@ pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 66;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseGame src/Dodge/Update/Input/InGame.hs 531;" f -pauseMenu src/Dodge/Menu.hs 59;" f -pauseMenuOptions src/Dodge/Menu.hs 66;" f +pauseMenu src/Dodge/Menu.hs 57;" f +pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 196;" f pbFlicker src/Dodge/Update.hs 503;" f @@ -4389,7 +4370,6 @@ pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP'' src/Dodge/Creature/Boid.hs 106;" f pincerP''' src/Dodge/Creature/Boid.hs 77;" f -pingPongBetween src/Render.hs 210;" f pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f pistolerRoom src/Dodge/Room/Room.hs 338;" f @@ -4615,7 +4595,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 216;" f -rdToVec2s src/Dodge/Render.hs 428;" f +rdToVec2s src/Dodge/Render.hs 426;" f readSaveSlot src/Dodge/Save.hs 45;" f recComFindMax src/Dodge/Terminal.hs 174;" f recComFindMin src/Dodge/Terminal.hs 168;" f @@ -4660,13 +4640,13 @@ removeLights src/Dodge/Room/Tutorial.hs 249;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f -renderFlatLighting src/Render.hs 104;" f +renderFlatLighting src/Render.hs 102;" f renderInfoListAt src/Dodge/Render/InfoBox.hs 18;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 45;" f -renderLayer src/Render.hs 224;" f -renderLightingNoShadows src/Render.hs 51;" f +renderLayer src/Render.hs 206;" f +renderLightingNoShadows src/Render.hs 49;" f renderListAt src/Dodge/Render/List.hs 177;" f -renderShadows src/Render.hs 119;" f +renderShadows src/Render.hs 116;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f @@ -4782,8 +4762,8 @@ safeSwapKeys src/IntMapHelp.hs 78;" f safeUncons src/ListHelp.hs 73;" f safeUpdateSingleNode src/TreeHelp.hs 116;" f saveConfig src/Dodge/Config.hs 23;" f -saveQuit src/Dodge/Menu.hs 79;" f -saveQuitConc src/Dodge/Menu.hs 82;" f +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 786;" f @@ -4821,8 +4801,8 @@ searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 213;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 41;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f sectionsSizes src/Dodge/DisplayInventory.hs 205;" f -seedStartMenu src/Dodge/Menu.hs 87;" f -seedStartOptions src/Dodge/Menu.hs 90;" f +seedStartMenu src/Dodge/Menu.hs 85;" f +seedStartOptions src/Dodge/Menu.hs 88;" f segOnCirc src/Geometry.hs 113;" f selNumPos src/Dodge/Render/HUD.hs 464;" f selNumPosCardinal src/Dodge/Render/HUD.hs 481;" f @@ -4848,7 +4828,6 @@ setAimPosture src/Dodge/Creature/YourControl.hs 145;" f setChannelPos src/Sound.hs 151;" f setClickWorldPos src/Dodge/Update.hs 109;" f setClip src/Dodge/Debug.hs 201;" f -setClusterID src/Dodge/Combine/Graph.hs 113;" f setDepth src/Picture/Base.hs 120;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f setFallback src/Dodge/PlacementSpot.hs 125;" f @@ -4878,7 +4857,7 @@ setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 91;" f setViewDistance src/Dodge/Update/Camera.hs 243;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 450;" f +setViewport src/Dodge/Render.hs 448;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f @@ -5014,8 +4993,8 @@ soundAngle src/Dodge/SoundLogic.hs 163;" f soundContinue src/Dodge/SoundLogic.hs 131;" f soundContinueVol src/Dodge/SoundLogic.hs 145;" f soundIsClose src/Dodge/Creature/Perception.hs 182;" f -soundMenu src/Dodge/Menu.hs 160;" f -soundMenuOptions src/Dodge/Menu.hs 163;" f +soundMenu src/Dodge/Menu.hs 158;" f +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 @@ -5041,8 +5020,8 @@ spawnAt src/Dodge/SpawnAt.hs 14;" f spawnerCrit src/Dodge/Creature.hs 54;" f spawnerRoom src/Dodge/Room/Room.hs 377;" f speedLegs src/Dodge/Item/Equipment.hs 90;" f -splashMenu src/Dodge/Menu.hs 33;" f -splashMenuOptions src/Dodge/Menu.hs 38;" f +splashMenu src/Dodge/Menu.hs 31;" f +splashMenuOptions src/Dodge/Menu.hs 36;" f splashScreen src/Dodge/Initialisation.hs 10;" f splitBezierquad src/Geometry/Bezier.hs 15;" f splitExtra src/Justify.hs 21;" f @@ -5167,8 +5146,8 @@ teslaGunPic src/Dodge/Item/Draw/SPic.hs 410;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f testEvent src/Dodge/Event/Test.hs 11;" f testInventory src/Dodge/Creature.hs 290;" f -testPic src/Dodge/Render/ShapePicture.hs 56;" f -testSPic src/Dodge/Render/ShapePicture.hs 53;" f +testPic src/Dodge/Render/ShapePicture.hs 55;" f +testSPic src/Dodge/Render/ShapePicture.hs 52;" f testStringInit src/Dodge/TestString.hs 34;" f text src/Picture/Base.hs 185;" f textGrad src/Picture/Text.hs 5;" f @@ -5180,9 +5159,9 @@ textJustifyRight src/Picture/Base.hs 202;" f textRight src/Picture/Base.hs 207;" f textTerminal src/Dodge/Terminal.hs 40;" f textVMirror src/Picture/Base.hs 220;" f -tflat2 src/Picture/Data.hs 56;" f -tflat3 src/Picture/Data.hs 60;" f -tflat4 src/Picture/Data.hs 64;" f +tflat2 src/Picture/Data.hs 55;" f +tflat3 src/Picture/Data.hs 59;" f +tflat4 src/Picture/Data.hs 63;" f theCleanup appDodge/Main.hs 65;" f theColumns src/Dodge/Tree/Shift.hs 146;" f theUpdateStep appDodge/Main.hs 101;" f @@ -5214,8 +5193,8 @@ ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 760;" f tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 732;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 842;" f -titleOptionsMenu src/Dodge/Menu.hs 106;" f -titleOptionsNoWrite src/Dodge/Menu.hs 109;" f +titleOptionsMenu src/Dodge/Menu.hs 104;" f +titleOptionsNoWrite src/Dodge/Menu.hs 107;" f tlDoEffect src/Dodge/Terminal.hs 115;" f tlSetStatus src/Dodge/Terminal.hs 112;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 120;" f @@ -5311,7 +5290,7 @@ tryPickupSelected src/Dodge/Update/Input/InGame.hs 146;" f tryPlay src/Sound.hs 84;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 54;" f -trySeedFromClipboard src/Dodge/Menu.hs 96;" f +trySeedFromClipboard src/Dodge/Menu.hs 94;" f trySpin src/Dodge/Projectile/Update.hs 120;" f trySynthBullet src/Dodge/Creature/State.hs 167;" f tryThrust src/Dodge/Projectile/Update.hs 126;" f @@ -5344,7 +5323,7 @@ unfoldrMID src/MonadHelp.hs 33;" f unigate src/Dodge/Item/Scope.hs 102;" f unitVectorAtAngle src/Geometry/Vector.hs 101;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f -unpause src/Dodge/Menu.hs 207;" f +unpause src/Dodge/Menu.hs 205;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 58;" f unsafeBlinker src/Dodge/Item/Held/Utility.hs 33;" f unsafeSwapKeys src/IntMapHelp.hs 75;" f @@ -5620,7 +5599,7 @@ wpAdd src/Dodge/Room/RezBox.hs 148;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f -writeConfig src/Dodge/Menu.hs 182;" f +writeConfig src/Dodge/Menu.hs 180;" f writeSaveSlot src/Dodge/Save.hs 36;" f xCylinder src/Shape.hs 133;" f xCylinderST src/Shape.hs 130;" f