Change crab footstep sound

This commit is contained in:
2026-04-10 12:40:36 +01:00
parent f19e165571
commit 95a6c90d01
6 changed files with 257 additions and 250 deletions
Binary file not shown.
Binary file not shown.
+2 -5
View File
@@ -39,16 +39,13 @@ drawDamSensor ::
M.Map SensorType (PaletteColor, DecorationShape) ->
DamageSensor ->
SPic
drawDamSensor gp sens = fold $ do
let st = sens ^. sensType
x <- gp ^? ix st
return $ sensorSPic x
drawDamSensor gp sens = foldMap sensorSPic $ gp ^? ix (sens ^. sensType)
terminalSPic :: LWorld -> Machine -> SPic
terminalSPic lw = noPic . terminalShape lw
terminalShape :: LWorld -> Machine -> Shape
terminalShape lw mc = fromMaybe mempty $ do
terminalShape lw mc = fold $ do
tid <- mc ^? mcMounts . ix OTTerminal
term <- lw ^? terminals . ix tid
return $
+250 -240
View File
@@ -1,4 +1,4 @@
-- generated at 2026-04-03 15:24:55.064035871 UTC
-- generated at 2026-04-10 11:38:00.904778995 UTC
module Dodge.SoundLogic.ExternallyGeneratedSounds where
import Sound.Data
soundToVol :: SoundID -> Float
@@ -90,89 +90,91 @@ soundToVol v = case _getSoundID v of
84 -> 200
85 -> 1000
86 -> 1000
87 -> 250
88 -> 300
89 -> 2000
90 -> 200
91 -> 1000
92 -> 100
93 -> 300
94 -> 100
95 -> 40
96 -> 1000
97 -> 100
98 -> 1000
99 -> 500
100 -> 100
101 -> 200
102 -> 250
103 -> 200
87 -> 50
88 -> 250
89 -> 300
90 -> 2000
91 -> 200
92 -> 1000
93 -> 100
94 -> 300
95 -> 100
96 -> 40
97 -> 1000
98 -> 100
99 -> 1000
100 -> 500
101 -> 100
102 -> 200
103 -> 250
104 -> 200
105 -> 50
106 -> 1000
107 -> 50
108 -> 500
105 -> 200
106 -> 50
107 -> 1000
108 -> 50
109 -> 500
110 -> 1000
111 -> 200
112 -> 2000
113 -> 20
114 -> 500
115 -> 200
116 -> 100
117 -> 2000
118 -> 100
119 -> 100
120 -> 200
121 -> 300
122 -> 500
123 -> 100
124 -> 300
125 -> 200
126 -> 1000
127 -> 100
128 -> 50
110 -> 500
111 -> 1000
112 -> 200
113 -> 2000
114 -> 20
115 -> 500
116 -> 200
117 -> 100
118 -> 50
119 -> 2000
120 -> 100
121 -> 100
122 -> 200
123 -> 300
124 -> 500
125 -> 100
126 -> 300
127 -> 200
128 -> 1000
129 -> 100
130 -> 100
131 -> 50
132 -> 1000
133 -> 500
134 -> 40
135 -> 100
136 -> 200
137 -> 500
138 -> 1000
139 -> 300
140 -> 100
130 -> 50
131 -> 100
132 -> 100
133 -> 50
134 -> 1000
135 -> 500
136 -> 40
137 -> 100
138 -> 200
139 -> 500
140 -> 1000
141 -> 300
142 -> 300
143 -> 100
144 -> 100
145 -> 500
142 -> 100
143 -> 300
144 -> 300
145 -> 100
146 -> 100
147 -> 100
148 -> 500
147 -> 500
148 -> 100
149 -> 100
150 -> 100
151 -> 500
152 -> 40
153 -> 200
154 -> 50
155 -> 500
156 -> 2000
157 -> 200
150 -> 500
151 -> 100
152 -> 100
153 -> 500
154 -> 40
155 -> 200
156 -> 50
157 -> 500
158 -> 2000
159 -> 40
160 -> 100
161 -> 100
162 -> 500
159 -> 200
160 -> 2000
161 -> 40
162 -> 100
163 -> 100
164 -> 1000
164 -> 500
165 -> 100
166 -> 500
167 -> 8000
168 -> 200
169 -> 300
166 -> 1000
167 -> 100
168 -> 500
169 -> 8000
170 -> 200
171 -> 300
_ -> 50
soundToOnomato :: SoundID -> String
soundToOnomato v = case _getSoundID v of
@@ -263,89 +265,91 @@ soundToOnomato v = case _getSoundID v of
84 -> "SQWCH"
85 -> "TRWNG"
86 -> "CRSK"
87 -> "DMP"
88 -> "BEP"
89 -> "BOOM"
90 -> "SKREL"
91 -> "CRSNK"
92 -> "SLP"
93 -> "CHPCHPCHP"
94 -> "SLP"
95 -> "TAP"
96 -> "CRNKL"
97 -> "WRR"
98 -> "CRNK"
99 -> "CUHRUP"
100 -> "SPLRT"
101 -> "TING"
102 -> "WHRHH"
103 -> "CRSKRL"
104 -> "WH"
105 -> "FHFH"
106 -> "BRAP"
107 -> "WHHH"
108 -> "PLH"
109 -> "CLANG"
110 -> "CRUNK"
111 -> "TING"
112 -> "TATATA"
113 -> "SWSH"
114 -> "DNDNDNDN"
115 -> "THCK"
116 -> "SLP"
117 -> "PEW"
118 -> "SKLE"
119 -> "THUD"
120 -> "WH"
121 -> "BWAH"
122 -> "DEDEDUM"
123 -> "WHUMWHUM"
124 -> "WHRP"
125 -> "TING"
126 -> "CRMPL"
127 -> "SKLE"
128 -> "SHUHP"
129 -> "SLP"
130 -> "SPRT"
131 -> "HSS"
132 -> "TRNKL"
133 -> "TAK"
134 -> "CLICK"
135 -> "DUHDEH"
136 -> "SHTCK"
137 -> "DEDUM"
138 -> "BWMP"
139 -> "BWAAH"
140 -> "SLP"
141 -> "DWAAH"
142 -> "TNKTONK"
143 -> "VFVFVF"
144 -> "SLP"
145 -> "CRTINK"
146 -> "VHHP"
147 -> "SPRT"
148 -> "PRUM"
149 -> "SLPP"
150 -> "FWUMP"
151 -> "CLANG"
152 -> "TIP"
153 -> "CRAKLE"
154 -> "HSSS"
155 -> "TRINKL"
156 -> "BANG"
157 -> "ZMM"
158 -> "CHUGUGUG"
159 -> "TAPP"
160 -> "KKSQWL"
161 -> "SKWLL"
162 -> "DUDURAH"
87 -> "CLK"
88 -> "DMP"
89 -> "BEP"
90 -> "BOOM"
91 -> "SKREL"
92 -> "CRSNK"
93 -> "SLP"
94 -> "CHPCHPCHP"
95 -> "SLP"
96 -> "TAP"
97 -> "CRNKL"
98 -> "WRR"
99 -> "CRNK"
100 -> "CUHRUP"
101 -> "SPLRT"
102 -> "TING"
103 -> "WHRHH"
104 -> "CRSKRL"
105 -> "WH"
106 -> "FHFH"
107 -> "BRAP"
108 -> "WHHH"
109 -> "PLH"
110 -> "CLANG"
111 -> "CRUNK"
112 -> "TING"
113 -> "TATATA"
114 -> "SWSH"
115 -> "DNDNDNDN"
116 -> "THCK"
117 -> "SLP"
118 -> "CLK"
119 -> "PEW"
120 -> "SKLE"
121 -> "THUD"
122 -> "WH"
123 -> "BWAH"
124 -> "DEDEDUM"
125 -> "WHUMWHUM"
126 -> "WHRP"
127 -> "TING"
128 -> "CRMPL"
129 -> "SKLE"
130 -> "SHUHP"
131 -> "SLP"
132 -> "SPRT"
133 -> "HSS"
134 -> "TRNKL"
135 -> "TAK"
136 -> "CLICK"
137 -> "DUHDEH"
138 -> "SHTCK"
139 -> "DEDUM"
140 -> "BWMP"
141 -> "BWAAH"
142 -> "SLP"
143 -> "DWAAH"
144 -> "TNKTONK"
145 -> "VFVFVF"
146 -> "SLP"
147 -> "CRTINK"
148 -> "VHHP"
149 -> "SPRT"
150 -> "PRUM"
151 -> "SLPP"
152 -> "FWUMP"
153 -> "CLANG"
154 -> "TIP"
155 -> "CRAKLE"
156 -> "HSSS"
157 -> "TRINKL"
158 -> "BANG"
159 -> "ZMM"
160 -> "CHUGUGUG"
161 -> "TAPP"
162 -> "KKSQWL"
163 -> "SKWLL"
164 -> "TRNKL"
165 -> "SLP"
166 -> "WHUAWUH"
167 -> "RINGGG"
168 -> "QWLPH"
169 -> "WRRR"
164 -> "DUDURAH"
165 -> "SKWLL"
166 -> "TRNKL"
167 -> "SLP"
168 -> "WHUAWUH"
169 -> "RINGGG"
170 -> "QWLPH"
171 -> "WRRR"
_ -> error "unitialised sound"
soundPathList :: [String]
soundPathList =
@@ -436,6 +440,7 @@ soundPathList =
, "gut3.SQWCH.200.wav"
, "metal7.TRWNG.1000.wav"
, "glassShat4.CRSK.1000.wav"
, "footPin1.CLK.50.wav"
, "energyRelease.DMP.250.wav"
, "tone440.BEP.300.wav"
, "explosion.BOOM.2000.wav"
@@ -466,6 +471,7 @@ soundPathList =
, "combine.DNDNDNDN.500.wav"
, "connectItem.THCK.200.wav"
, "slapClean7.SLP.100.wav"
, "footPin2.CLK.50.wav"
, "seagullWhistle1.PEW.2000.wav"
, "bloodShort6.SKLE.100.wav"
, "hit.THUD.100.wav"
@@ -694,169 +700,173 @@ metal7S :: SoundID
metal7S = SoundID 85
glassShat4S :: SoundID
glassShat4S = SoundID 86
footPin1S :: SoundID
footPin1S = SoundID 87
energyReleaseS :: SoundID
energyReleaseS = SoundID 87
energyReleaseS = SoundID 88
tone440S :: SoundID
tone440S = SoundID 88
tone440S = SoundID 89
explosionS :: SoundID
explosionS = SoundID 89
explosionS = SoundID 90
gut4S :: SoundID
gut4S = SoundID 90
gut4S = SoundID 91
glassShat1S :: SoundID
glassShat1S = SoundID 91
glassShat1S = SoundID 92
slap3S :: SoundID
slap3S = SoundID 92
slap3S = SoundID 93
reload1S :: SoundID
reload1S = SoundID 93
reload1S = SoundID 94
slapClean3S :: SoundID
slapClean3S = SoundID 94
slapClean3S = SoundID 95
foot2S :: SoundID
foot2S = SoundID 95
foot2S = SoundID 96
glassShat2S :: SoundID
glassShat2S = SoundID 96
glassShat2S = SoundID 97
fireS :: SoundID
fireS = SoundID 97
fireS = SoundID 98
glassShat3S :: SoundID
glassShat3S = SoundID 98
glassShat3S = SoundID 99
insertS :: SoundID
insertS = SoundID 99
insertS = SoundID 100
blood1S :: SoundID
blood1S = SoundID 100
blood1S = SoundID 101
ting3S :: SoundID
ting3S = SoundID 101
ting3S = SoundID 102
whirdownS :: SoundID
whirdownS = SoundID 102
whirdownS = SoundID 103
gut6S :: SoundID
gut6S = SoundID 103
gut6S = SoundID 104
whirdownShort3S :: SoundID
whirdownShort3S = SoundID 104
whirdownShort3S = SoundID 105
debrisS :: SoundID
debrisS = SoundID 105
debrisS = SoundID 106
tap3S :: SoundID
tap3S = SoundID 106
tap3S = SoundID 107
backgroundSpaceS :: SoundID
backgroundSpaceS = SoundID 107
backgroundSpaceS = SoundID 108
lasPulseS :: SoundID
lasPulseS = SoundID 108
lasPulseS = SoundID 109
clang2S :: SoundID
clang2S = SoundID 109
clang2S = SoundID 110
metal2S :: SoundID
metal2S = SoundID 110
metal2S = SoundID 111
tingS :: SoundID
tingS = SoundID 111
tingS = SoundID 112
autoBS :: SoundID
autoBS = SoundID 112
autoBS = SoundID 113
knifeS :: SoundID
knifeS = SoundID 113
knifeS = SoundID 114
combineS :: SoundID
combineS = SoundID 114
combineS = SoundID 115
connectItemS :: SoundID
connectItemS = SoundID 115
connectItemS = SoundID 116
slapClean7S :: SoundID
slapClean7S = SoundID 116
slapClean7S = SoundID 117
footPin2S :: SoundID
footPin2S = SoundID 118
seagullWhistle1S :: SoundID
seagullWhistle1S = SoundID 117
seagullWhistle1S = SoundID 119
bloodShort6S :: SoundID
bloodShort6S = SoundID 118
bloodShort6S = SoundID 120
hitS :: SoundID
hitS = SoundID 119
hitS = SoundID 121
whirdownShort4S :: SoundID
whirdownShort4S = SoundID 120
whirdownShort4S = SoundID 122
sineRaisePitchOneSecS :: SoundID
sineRaisePitchOneSecS = SoundID 121
sineRaisePitchOneSecS = SoundID 123
dededumS :: SoundID
dededumS = SoundID 122
dededumS = SoundID 124
throbC4S :: SoundID
throbC4S = SoundID 123
throbC4S = SoundID 125
whirTapS :: SoundID
whirTapS = SoundID 124
whirTapS = SoundID 126
ting5S :: SoundID
ting5S = SoundID 125
ting5S = SoundID 127
stone2S :: SoundID
stone2S = SoundID 126
stone2S = SoundID 128
blood6S :: SoundID
blood6S = SoundID 127
blood6S = SoundID 129
pickUpS :: SoundID
pickUpS = SoundID 128
pickUpS = SoundID 130
slap2S :: SoundID
slap2S = SoundID 129
slap2S = SoundID 131
bloodShort2S :: SoundID
bloodShort2S = SoundID 130
bloodShort2S = SoundID 132
foamSprayFadeOutS :: SoundID
foamSprayFadeOutS = SoundID 131
foamSprayFadeOutS = SoundID 133
metal6S :: SoundID
metal6S = SoundID 132
metal6S = SoundID 134
tap1S :: SoundID
tap1S = SoundID 133
tap1S = SoundID 135
click1S :: SoundID
click1S = SoundID 134
click1S = SoundID 136
semitoneLoop1S :: SoundID
semitoneLoop1S = SoundID 135
semitoneLoop1S = SoundID 137
disconnectItemS :: SoundID
disconnectItemS = SoundID 136
disconnectItemS = SoundID 138
dedumS :: SoundID
dedumS = SoundID 137
dedumS = SoundID 139
sawtoothFailS :: SoundID
sawtoothFailS = SoundID 138
sawtoothFailS = SoundID 140
sineRaisePitchTwoSecS :: SoundID
sineRaisePitchTwoSecS = SoundID 139
sineRaisePitchTwoSecS = SoundID 141
slap4S :: SoundID
slap4S = SoundID 140
slap4S = SoundID 142
skwareFadeTwoSecS :: SoundID
skwareFadeTwoSecS = SoundID 141
skwareFadeTwoSecS = SoundID 143
reloadFailS :: SoundID
reloadFailS = SoundID 142
reloadFailS = SoundID 144
throb1S :: SoundID
throb1S = SoundID 143
throb1S = SoundID 145
slap5S :: SoundID
slap5S = SoundID 144
slap5S = SoundID 146
smallGlass3S :: SoundID
smallGlass3S = SoundID 145
smallGlass3S = SoundID 147
reverseCymbal1S :: SoundID
reverseCymbal1S = SoundID 146
reverseCymbal1S = SoundID 148
blood2S :: SoundID
blood2S = SoundID 147
blood2S = SoundID 149
insertOneS :: SoundID
insertOneS = SoundID 148
insertOneS = SoundID 150
slap1S :: SoundID
slap1S = SoundID 149
slap1S = SoundID 151
tap4S :: SoundID
tap4S = SoundID 150
tap4S = SoundID 152
clang1S :: SoundID
clang1S = SoundID 151
clang1S = SoundID 153
foot1S :: SoundID
foot1S = SoundID 152
foot1S = SoundID 154
elecCrackleS :: SoundID
elecCrackleS = SoundID 153
elecCrackleS = SoundID 155
foamSprayLoopS :: SoundID
foamSprayLoopS = SoundID 154
foamSprayLoopS = SoundID 156
smallGlass1S :: SoundID
smallGlass1S = SoundID 155
smallGlass1S = SoundID 157
bangS :: SoundID
bangS = SoundID 156
bangS = SoundID 158
buzz1S :: SoundID
buzz1S = SoundID 157
buzz1S = SoundID 159
seagullChatterS :: SoundID
seagullChatterS = SoundID 158
seagullChatterS = SoundID 160
foot3S :: SoundID
foot3S = SoundID 159
foot3S = SoundID 161
bloodShort3S :: SoundID
bloodShort3S = SoundID 160
bloodShort3S = SoundID 162
blood4S :: SoundID
blood4S = SoundID 161
blood4S = SoundID 163
ejectS :: SoundID
ejectS = SoundID 162
ejectS = SoundID 164
bloodShort4S :: SoundID
bloodShort4S = SoundID 163
bloodShort4S = SoundID 165
metal1S :: SoundID
metal1S = SoundID 164
metal1S = SoundID 166
slapClean5S :: SoundID
slapClean5S = SoundID 165
slapClean5S = SoundID 167
warp1S :: SoundID
warp1S = SoundID 166
warp1S = SoundID 168
tinitusS :: SoundID
tinitusS = SoundID 167
tinitusS = SoundID 169
gut1S :: SoundID
gut1S = SoundID 168
gut1S = SoundID 170
fireFadeS :: SoundID
fireFadeS = SoundID 169
fireFadeS = SoundID 171
+5 -5
View File
@@ -377,17 +377,17 @@ updateCreatureStride :: World -> Creature -> World
updateCreatureStride w cr
| Walking <- cr ^. crStance . carriage
, CrabCrit {} <- cr ^. crType
= w & f (g 10) (cr ^?! crType . lFootPos) lFootPos
& f (g (-10)) (cr ^?! crType . rFootPos) rFootPos
| Walking <- cr ^. crStance . carriage
= w & f footPin1S (g 10) (cr ^?! crType . lFootPos) lFootPos
& f footPin2S (g (-10)) (cr ^?! crType . rFootPos) rFootPos
| Walking <- cr ^. crStance . carriage
, isJust $ cr ^? crType . strideAmount = w & tocr . crType . strideAmount +~ d
| otherwise = w
where
tocr = cWorld . lWorld . creatures . ix cid
cid = cr ^. crID
f p q fp
f sn p q fp
| distance p q > 10 = (tocr . crType . fp .~ (p - 9 *^ signorm (q - p)))
. soundStart (CrFootSound cid 0) (p - 9 *^ signorm (q - p)) foot1S Nothing
. soundStart (CrFootSound cid 0) (p - 9 *^ signorm (q - p)) sn Nothing
| otherwise = id
g x = cr ^. crPos . _xy + x *^ vNormal (unitVectorAtAngle (cr ^. crDir))
s = 2 * fromMaybe 1 (crMvType cr ^? mvSpeed)