Add source files, commit before reverting pictures to lists
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
module Dodge.SoundLogic where
|
||||
-- imports {{{
|
||||
import Dodge.Data
|
||||
|
||||
import Control.Lens
|
||||
import qualified Data.Map as M
|
||||
-- }}}
|
||||
--
|
||||
-- PLACEHOLDERS:
|
||||
|
||||
haltSound :: World -> World
|
||||
haltSound w = w
|
||||
|
||||
pauseSound :: World -> World
|
||||
pauseSound w = w
|
||||
|
||||
resumeSound :: World -> World
|
||||
resumeSound w = w
|
||||
|
||||
soundOnce :: Int -> World -> World
|
||||
soundOnce i = over soundQueue ((:) i)
|
||||
|
||||
continueSoundFrom :: SoundOrigin -> Int -> Int -> Int -> World -> World
|
||||
continueSoundFrom so sType time fadeTime w
|
||||
= over sounds (M.insertWith f so sound) w
|
||||
where sound = Sound { _soundType = sType
|
||||
, _soundTime = time
|
||||
, _soundFadeTime = fadeTime
|
||||
, _soundChannel = Nothing
|
||||
, _soundPos = Nothing
|
||||
}
|
||||
f _ s = s {_soundTime = time, _soundFadeTime = fadeTime}
|
||||
|
||||
soundFrom :: SoundOrigin -> Int -> Int -> Int -> World -> World
|
||||
soundFrom so sType time fadeTime w
|
||||
= over sounds (M.insertWith f so sound) w
|
||||
where sound = Sound { _soundType = sType
|
||||
, _soundTime = time
|
||||
, _soundFadeTime = fadeTime
|
||||
, _soundChannel = Nothing
|
||||
, _soundPos = Nothing
|
||||
}
|
||||
f _ s = s {_soundTime = time, _soundFadeTime = fadeTime}
|
||||
|
||||
soundMultiFrom :: [SoundOrigin] -> Int -> Int -> Int -> World -> World
|
||||
soundMultiFrom [] _ _ _ w = w
|
||||
soundMultiFrom (so:sos) sType time fadeTime w
|
||||
| so `M.member` _sounds w = soundMultiFrom sos sType time fadeTime w
|
||||
| otherwise = over sounds (M.insert so sound) w
|
||||
where sound = Sound { _soundType = sType
|
||||
, _soundTime = time
|
||||
, _soundFadeTime = fadeTime
|
||||
, _soundChannel = Nothing
|
||||
, _soundPos = Nothing
|
||||
}
|
||||
|
||||
stopSoundFrom :: SoundOrigin -> World -> World
|
||||
stopSoundFrom so = over (sounds . ix so . soundTime) (min 0)
|
||||
|
||||
|
||||
-- idea: pass the id of the sound to the world and send it to some queue for
|
||||
-- playback
|
||||
|
||||
reloadSound,putDownSound,pickUpSound,fireSound,grenadeBang,healSound,teleSound,twoStepSlowSound :: Int
|
||||
clickSound = 1
|
||||
reloadSound = 2
|
||||
pickUpSound = 4
|
||||
putDownSound = 5
|
||||
fireSound = 6
|
||||
grenadeBang = 7
|
||||
tapQuiet = 8
|
||||
twoStepSound = 9
|
||||
healSound = 10
|
||||
doorSound = 11
|
||||
twoStepSlowSound = 12
|
||||
knifeSound = 13
|
||||
buzzSound = 14
|
||||
hitSound = 15
|
||||
autoGunSound = 16
|
||||
shotgunSound = 17
|
||||
teleSound = 18
|
||||
longGunSound = 19
|
||||
launcherSound = 20
|
||||
smokeTrailSound = 21
|
||||
foot1Sound = 22
|
||||
foot2Sound = 23
|
||||
Reference in New Issue
Block a user