Remove loop dependency on loading dodge sounds
This commit is contained in:
+11
-6
@@ -1,9 +1,7 @@
|
|||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
import Loop
|
import Loop
|
||||||
import Shader
|
import Shader
|
||||||
import LoadConfig
|
import LoadConfig
|
||||||
|
|
||||||
import Dodge.Default
|
import Dodge.Default
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.Initialisation
|
import Dodge.Initialisation
|
||||||
@@ -16,14 +14,13 @@ import Dodge.Rendering
|
|||||||
import Dodge.Menu
|
import Dodge.Menu
|
||||||
import Dodge.Floor
|
import Dodge.Floor
|
||||||
import Dodge.LoadConfig
|
import Dodge.LoadConfig
|
||||||
|
import Dodge.LoadSound
|
||||||
import Picture
|
import Picture
|
||||||
import Picture.Render
|
import Picture.Render
|
||||||
import Picture.Preload
|
import Picture.Preload
|
||||||
|
|
||||||
import Sound
|
import Sound
|
||||||
|
|
||||||
import Preload
|
import Preload
|
||||||
|
import Sound.Preload
|
||||||
|
|
||||||
import Control.Concurrent
|
import Control.Concurrent
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
@@ -32,17 +29,25 @@ import Control.Monad (when)
|
|||||||
|
|
||||||
import System.Random
|
import System.Random
|
||||||
|
|
||||||
|
import qualified Data.Map as M
|
||||||
import qualified SDL
|
import qualified SDL
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
import Graphics.Rendering.OpenGL hiding (color,scale,translate,rotate)
|
import Graphics.Rendering.OpenGL hiding (color,scale,translate,rotate)
|
||||||
|
|
||||||
|
doPreload' :: IO (PreloadData a)
|
||||||
|
doPreload' = do
|
||||||
|
lChunks <- loadSounds
|
||||||
|
let sData = SoundData {_loadedChunks = lChunks, _playingSounds = M.empty}
|
||||||
|
rData <- preloadRender
|
||||||
|
return $ PreloadData rData sData 0
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
(sizex,sizey) <- loadConfig
|
(sizex,sizey) <- loadConfig
|
||||||
keyConfig <- loadKeyConfig
|
keyConfig <- loadKeyConfig
|
||||||
setupLoop
|
setupLoop
|
||||||
(sizex,sizey)
|
(sizex,sizey)
|
||||||
(SDL.cursorVisible $= False >> doPreload >>= resizeSpareFBO sizex sizey)
|
(SDL.cursorVisible $= False >> doPreload' >>= resizeSpareFBO sizex sizey)
|
||||||
(\x -> (SDL.cursorVisible $= True) >> cleanUpPreload x)
|
(\x -> (SDL.cursorVisible $= True) >> cleanUpPreload x)
|
||||||
(fmap (setWindowSize sizex sizey keyConfig) firstWorld)
|
(fmap (setWindowSize sizex sizey keyConfig) firstWorld)
|
||||||
( \preData w -> do
|
( \preData w -> do
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import Dodge.Default
|
|||||||
import Dodge.CreatureState
|
import Dodge.CreatureState
|
||||||
import Dodge.LightSources
|
import Dodge.LightSources
|
||||||
|
|
||||||
|
import Dodge.WorldEvent.Sound
|
||||||
|
|
||||||
import Dodge.Creature.Update hiding (CRUpdate)
|
import Dodge.Creature.Update hiding (CRUpdate)
|
||||||
|
|
||||||
import Picture
|
import Picture
|
||||||
@@ -30,7 +32,7 @@ updateLamp :: Int -> CRUpdate
|
|||||||
updateLamp i = unrandUpdate handleLS internalUpdate
|
updateLamp i = unrandUpdate handleLS internalUpdate
|
||||||
where
|
where
|
||||||
handleLS cr w
|
handleLS cr w
|
||||||
| _crHP cr < 0 = w & lightSources %~ IM.delete i
|
| _crHP cr < 0 = mkSoundBreakGlass w & lightSources %~ IM.delete i
|
||||||
| otherwise = w & lightSources . ix i . lsPos .~ _crPos cr
|
| otherwise = w & lightSources . ix i . lsPos .~ _crPos cr
|
||||||
internalUpdate cr
|
internalUpdate cr
|
||||||
| _crHP cr < 0 = Nothing
|
| _crHP cr < 0 = Nothing
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ module Dodge.Item.Weapon
|
|||||||
( module Dodge.Item.Weapon
|
( module Dodge.Item.Weapon
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
-- imports {{{
|
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.Base
|
import Dodge.Base
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
@@ -50,7 +49,6 @@ pistol,lasGun,tractorGun,launcher,autoGun
|
|||||||
,multGun
|
,multGun
|
||||||
-- ,shatterGun
|
-- ,shatterGun
|
||||||
,longGun,flamer,blinkGun,forceFieldGun :: Item
|
,longGun,flamer,blinkGun,forceFieldGun :: Item
|
||||||
|
|
||||||
pistol = Weapon
|
pistol = Weapon
|
||||||
{ _itName = "PISTOL"
|
{ _itName = "PISTOL"
|
||||||
, _itIdentity = Pistol
|
, _itIdentity = Pistol
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import Dodge.Data
|
|||||||
import Dodge.Base
|
import Dodge.Base
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
|
|
||||||
|
import Dodge.WorldEvent.Sound
|
||||||
|
|
||||||
import Dodge.LevelGen.Pathing
|
import Dodge.LevelGen.Pathing
|
||||||
|
|
||||||
import Geometry
|
import Geometry
|
||||||
@@ -40,9 +42,11 @@ killBlock bl w = f bl .
|
|||||||
where
|
where
|
||||||
f bl@(Block {_blDegrades = (x:xs)}) = degradeBlock bl . hitSound bl
|
f bl@(Block {_blDegrades = (x:xs)}) = degradeBlock bl . hitSound bl
|
||||||
f bl = hitSound' bl
|
f bl = hitSound' bl
|
||||||
hitSound bl | _wlIsSeeThrough bl = soundMultiFrom sos (soundid+8) 25 0
|
hitSound bl | _wlIsSeeThrough bl = mkSoundBreakGlass
|
||||||
|
-- hitSound bl | _wlIsSeeThrough bl = soundMultiFrom sos (soundid+8) 25 0
|
||||||
| otherwise = soundMultiFrom sos soundid 25 0
|
| otherwise = soundMultiFrom sos soundid 25 0
|
||||||
hitSound' bl | _wlIsSeeThrough bl = soundMultiFrom sos (soundid+4) 25 0
|
hitSound' bl | _wlIsSeeThrough bl = mkSoundSplinterGlass
|
||||||
|
-- hitSound' bl | _wlIsSeeThrough bl = soundMultiFrom sos (soundid+4) 25 0
|
||||||
| otherwise = soundMultiFrom sos soundid 25 0
|
| otherwise = soundMultiFrom sos soundid 25 0
|
||||||
sos = [BlockDegradeSound 0,BlockDegradeSound 1]
|
sos = [BlockDegradeSound 0,BlockDegradeSound 1]
|
||||||
(soundid,_) = randomR (29,32) $ _randGen w
|
(soundid,_) = randomR (29,32) $ _randGen w
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ import qualified SDL.Mixer as Mix
|
|||||||
-- }}}
|
-- }}}
|
||||||
loadSounds :: IO (IM.IntMap Mix.Chunk)
|
loadSounds :: IO (IM.IntMap Mix.Chunk)
|
||||||
loadSounds = do
|
loadSounds = do
|
||||||
-- pFireSound <- Mix.load "./data/sound/tap3.wav"
|
Mix.openAudio Mix.defaultAudio 256
|
||||||
pFireSound <- Mix.load "./data/sound/tap3.wav"
|
pFireSound <- Mix.load "./data/sound/tap3.wav"
|
||||||
click <- Mix.load "./data/sound/click1.wav"
|
click <- Mix.load "./data/sound/click1.wav"
|
||||||
reloadSound' <- Mix.load "./data/sound/reload1.wav"
|
reloadSound' <- Mix.load "./data/sound/reload1.wav"
|
||||||
tone440 <- Mix.load "./data/sound/tone440.wav"
|
tone440 <- Mix.load "./data/sound/tone440.wav"
|
||||||
pickupSound' <- Mix.load "./data/sound/pickUp.wav"
|
pickupSound' <- Mix.load "./data/sound/pickUp.wav"
|
||||||
putdownSound' <- Mix.load "./data/sound/whiteNoiseFadeOut.wav"
|
putdownSound' <- Mix.load "./data/sound/whiteNoiseFadeOut.wav"
|
||||||
fireSound' <- Mix.load "./data/sound/fire1.wav"
|
fireSound' <- Mix.load "./data/sound/fire1.wav"
|
||||||
grenadeBang' <- Mix.load "./data/sound/grenade.wav"
|
grenadeBang' <- Mix.load "./data/sound/grenade.wav"
|
||||||
|
|||||||
+20
-24
@@ -1,12 +1,7 @@
|
|||||||
module Dodge.SoundLogic where
|
module Dodge.SoundLogic where
|
||||||
-- imports {{{
|
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
-- }}}
|
|
||||||
--
|
|
||||||
-- PLACEHOLDERS:
|
|
||||||
|
|
||||||
haltSound :: World -> World
|
haltSound :: World -> World
|
||||||
haltSound w = w
|
haltSound w = w
|
||||||
@@ -21,26 +16,28 @@ soundOnce :: Int -> World -> World
|
|||||||
soundOnce i = over soundQueue ((:) i)
|
soundOnce i = over soundQueue ((:) i)
|
||||||
|
|
||||||
continueSoundFrom :: SoundOrigin -> Int -> Int -> Int -> World -> World
|
continueSoundFrom :: SoundOrigin -> Int -> Int -> Int -> World -> World
|
||||||
continueSoundFrom so sType time fadeTime w
|
continueSoundFrom so sType time fadeTime w = over sounds (M.insertWith f so sound) w
|
||||||
= over sounds (M.insertWith f so sound) w
|
where
|
||||||
where sound = Sound { _soundType = sType
|
sound = Sound
|
||||||
, _soundTime = time
|
{ _soundType = sType
|
||||||
, _soundFadeTime = fadeTime
|
, _soundTime = time
|
||||||
, _soundChannel = Nothing
|
, _soundFadeTime = fadeTime
|
||||||
, _soundPos = Nothing
|
, _soundChannel = Nothing
|
||||||
}
|
, _soundPos = Nothing
|
||||||
f _ s = s {_soundTime = time, _soundFadeTime = fadeTime}
|
}
|
||||||
|
f _ s = s {_soundTime = time, _soundFadeTime = fadeTime}
|
||||||
|
|
||||||
soundFrom :: SoundOrigin -> Int -> Int -> Int -> World -> World
|
soundFrom :: SoundOrigin -> Int -> Int -> Int -> World -> World
|
||||||
soundFrom so sType time fadeTime w
|
soundFrom so sType time fadeTime w = over sounds (M.insertWith f so sound) w
|
||||||
= over sounds (M.insertWith f so sound) w
|
where
|
||||||
where sound = Sound { _soundType = sType
|
sound = Sound
|
||||||
, _soundTime = time
|
{ _soundType = sType
|
||||||
, _soundFadeTime = fadeTime
|
, _soundTime = time
|
||||||
, _soundChannel = Nothing
|
, _soundFadeTime = fadeTime
|
||||||
, _soundPos = Nothing
|
, _soundChannel = Nothing
|
||||||
}
|
, _soundPos = Nothing
|
||||||
f _ s = s {_soundTime = time, _soundFadeTime = fadeTime}
|
}
|
||||||
|
f _ s = s {_soundTime = time, _soundFadeTime = fadeTime}
|
||||||
|
|
||||||
soundMultiFrom :: [SoundOrigin] -> Int -> Int -> Int -> World -> World
|
soundMultiFrom :: [SoundOrigin] -> Int -> Int -> Int -> World -> World
|
||||||
soundMultiFrom [] _ _ _ w = w
|
soundMultiFrom [] _ _ _ w = w
|
||||||
@@ -57,7 +54,6 @@ soundMultiFrom (so:sos) sType time fadeTime w
|
|||||||
stopSoundFrom :: SoundOrigin -> World -> World
|
stopSoundFrom :: SoundOrigin -> World -> World
|
||||||
stopSoundFrom so = over (sounds . ix so . soundTime) (min 0)
|
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
|
-- idea: pass the id of the sound to the world and send it to some queue for
|
||||||
-- playback
|
-- playback
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
module Dodge.WorldEvent.Sound
|
||||||
|
where
|
||||||
|
import Dodge.Data
|
||||||
|
|
||||||
|
import Dodge.SoundLogic
|
||||||
|
import System.Random
|
||||||
|
|
||||||
|
import Control.Lens
|
||||||
|
|
||||||
|
mkSoundBreakGlass :: World -> World
|
||||||
|
mkSoundBreakGlass w = soundOnce soundid $ set randGen g w
|
||||||
|
where
|
||||||
|
(soundid,g) = _randGen w & randomR (37,40)
|
||||||
|
|
||||||
|
mkSoundSplinterGlass :: World -> World
|
||||||
|
mkSoundSplinterGlass w = soundOnce soundid $ set randGen g w
|
||||||
|
where
|
||||||
|
(soundid,g) = _randGen w & randomR (33,36)
|
||||||
+5
-5
@@ -13,11 +13,11 @@ import Control.Lens
|
|||||||
|
|
||||||
import GHC.Word (Word32)
|
import GHC.Word (Word32)
|
||||||
|
|
||||||
doPreload :: IO (PreloadData a)
|
--doPreload :: IO (PreloadData a)
|
||||||
doPreload = do
|
--doPreload = do
|
||||||
sData <- preloadSound
|
-- sData <- preloadSound
|
||||||
rData <- preloadRender
|
-- rData <- preloadRender
|
||||||
return $ PreloadData rData sData 0
|
-- return $ PreloadData rData sData 0
|
||||||
|
|
||||||
cleanUpPreload :: PreloadData a -> IO ()
|
cleanUpPreload :: PreloadData a -> IO ()
|
||||||
cleanUpPreload pd = do
|
cleanUpPreload pd = do
|
||||||
|
|||||||
+4
-5
@@ -13,8 +13,7 @@ import qualified Data.Map as M
|
|||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
playSoundQueue :: SoundData a -> [Int] -> IO ()
|
playSoundQueue :: SoundData a -> [Int] -> IO ()
|
||||||
playSoundQueue sd ns =
|
playSoundQueue sd ns = forM_ ns $ \n -> playIfFree (_loadedChunks sd IM.! n) Mix.Once
|
||||||
forM_ ns $ \n -> playIfFree (_loadedChunks sd IM.! n) Mix.Once
|
|
||||||
|
|
||||||
playIfFree :: Mix.Chunk -> Mix.Times -> IO (Maybe Mix.Channel)
|
playIfFree :: Mix.Chunk -> Mix.Times -> IO (Maybe Mix.Channel)
|
||||||
playIfFree c times = do
|
playIfFree c times = do
|
||||||
@@ -43,8 +42,8 @@ playSounds sd = do
|
|||||||
|
|
||||||
updatePlaying :: Ord a => M.Map a Sound -> M.Map a Sound -> M.Map a Sound
|
updatePlaying :: Ord a => M.Map a Sound -> M.Map a Sound -> M.Map a Sound
|
||||||
updatePlaying new old = M.unionWith f new old
|
updatePlaying new old = M.unionWith f new old
|
||||||
where f newSound oldSound = newSound {_soundChannel = _soundChannel oldSound}
|
where
|
||||||
|
f newSound oldSound = newSound {_soundChannel = _soundChannel oldSound}
|
||||||
|
|
||||||
playAndUpdate :: Ord a => M.Map a Sound -> SoundData a -> IO (SoundData a)
|
playAndUpdate :: Ord a => M.Map a Sound -> SoundData a -> IO (SoundData a)
|
||||||
playAndUpdate new sd = do
|
playAndUpdate new sd = playSounds $ over playingSounds (updatePlaying new) sd
|
||||||
playSounds $ over playingSounds (updatePlaying new) sd
|
|
||||||
|
|||||||
+98
-102
@@ -15,112 +15,108 @@ data SoundData a = SoundData
|
|||||||
{_loadedChunks :: IM.IntMap Mix.Chunk
|
{_loadedChunks :: IM.IntMap Mix.Chunk
|
||||||
,_playingSounds :: M.Map a Sound
|
,_playingSounds :: M.Map a Sound
|
||||||
}
|
}
|
||||||
data Sound = Sound { _soundTime :: Int
|
data Sound = Sound
|
||||||
, _soundFadeTime :: Int
|
{ _soundTime :: Int
|
||||||
--, _soundChannel :: Maybe Int
|
, _soundFadeTime :: Int
|
||||||
, _soundChannel :: Maybe Mix.Channel
|
, _soundChannel :: Maybe Mix.Channel
|
||||||
, _soundPos :: Maybe Point2
|
, _soundPos :: Maybe Point2
|
||||||
, _soundType :: Int
|
, _soundType :: Int
|
||||||
}
|
}
|
||||||
deriving (Eq,Ord,Show)
|
deriving (Eq,Ord,Show)
|
||||||
|
|
||||||
|
|
||||||
makeLenses ''SoundData
|
makeLenses ''SoundData
|
||||||
makeLenses ''Sound
|
makeLenses ''Sound
|
||||||
|
|
||||||
|
|
||||||
cleanUpSoundPreload :: SoundData a -> IO ()
|
cleanUpSoundPreload :: SoundData a -> IO ()
|
||||||
cleanUpSoundPreload sd = Mix.closeAudio
|
cleanUpSoundPreload sd = Mix.closeAudio
|
||||||
|
|
||||||
|
--preloadSound :: IO (SoundData a)
|
||||||
preloadSound :: IO (SoundData a)
|
--preloadSound = do
|
||||||
preloadSound = do
|
-- Mix.openAudio Mix.defaultAudio 256
|
||||||
Mix.openAudio Mix.defaultAudio 256
|
-- pFireSound <- Mix.load "./data/sound/tap3.wav"
|
||||||
-- pFireSound <- Mix.loadWAV "./data/sound/tap3.wav"
|
-- click <- Mix.load "./data/sound/click1.wav"
|
||||||
pFireSound <- Mix.load "./data/sound/tap3.wav"
|
-- reloadSound' <- Mix.load "./data/sound/reload1.wav"
|
||||||
click <- Mix.load "./data/sound/click1.wav"
|
-- tone440 <- Mix.load "./data/sound/tone440.wav"
|
||||||
reloadSound' <- Mix.load "./data/sound/reload1.wav"
|
-- pickupSound' <- Mix.load "./data/sound/pickUp.wav"
|
||||||
tone440 <- Mix.load "./data/sound/tone440.wav"
|
-- putdownSound' <- Mix.load "./data/sound/whiteNoiseFadeOut.wav"
|
||||||
pickupSound' <- Mix.load "./data/sound/pickUp.wav"
|
-- fireSound' <- Mix.load "./data/sound/fire1.wav"
|
||||||
putdownSound' <- Mix.load "./data/sound/whiteNoiseFadeOut.wav"
|
-- grenadeBang' <- Mix.load "./data/sound/grenade.wav"
|
||||||
fireSound' <- Mix.load "./data/sound/fire1.wav"
|
-- tapQuiet' <- Mix.load "./data/sound/tapQuiet.wav"
|
||||||
grenadeBang' <- Mix.load "./data/sound/grenade.wav"
|
-- twoStep' <- Mix.load "./data/sound/twoStep.wav"
|
||||||
tapQuiet' <- Mix.load "./data/sound/tapQuiet.wav"
|
-- healSound' <- Mix.load "./data/sound/heal.wav"
|
||||||
twoStep' <- Mix.load "./data/sound/twoStep.wav"
|
-- doorSound' <- Mix.load "./data/sound/slideDoor.wav"
|
||||||
healSound' <- Mix.load "./data/sound/heal.wav"
|
-- twoStepSlow' <- Mix.load "./data/sound/twoStepSlow.wav"
|
||||||
doorSound' <- Mix.load "./data/sound/slideDoor.wav"
|
-- knifeSound' <- Mix.load "./data/sound/knife.wav"
|
||||||
twoStepSlow' <- Mix.load "./data/sound/twoStepSlow.wav"
|
-- buzzSound' <- Mix.load "./data/sound/buzz.wav"
|
||||||
knifeSound' <- Mix.load "./data/sound/knife.wav"
|
-- hitSound' <- Mix.load "./data/sound/hit1.wav"
|
||||||
buzzSound' <- Mix.load "./data/sound/buzz.wav"
|
-- autoGunSound' <- Mix.load "./data/sound/autoGun.wav"
|
||||||
hitSound' <- Mix.load "./data/sound/hit1.wav"
|
-- shotgunSound' <- Mix.load "./data/sound/shotgun.wav"
|
||||||
autoGunSound' <- Mix.load "./data/sound/autoGun.wav"
|
-- teleSound' <- Mix.load "./data/sound/tele.wav"
|
||||||
shotgunSound' <- Mix.load "./data/sound/shotgun.wav"
|
-- longGunSound' <- Mix.load "./data/sound/longTap.wav"
|
||||||
teleSound' <- Mix.load "./data/sound/tele.wav"
|
-- launcherSound' <- Mix.load "./data/sound/tap4.wav"
|
||||||
longGunSound' <- Mix.load "./data/sound/longTap.wav"
|
-- smokeTrailSound' <- Mix.load "./data/sound/missileLaunch.wav"
|
||||||
launcherSound' <- Mix.load "./data/sound/tap4.wav"
|
-- foot1Sound' <- Mix.load "./data/sound/foot1.wav"
|
||||||
smokeTrailSound' <- Mix.load "./data/sound/missileLaunch.wav"
|
-- foot2Sound' <- Mix.load "./data/sound/foot2.wav"
|
||||||
foot1Sound' <- Mix.load "./data/sound/foot1.wav"
|
-- lasSound' <- Mix.load "./data/sound/tone440sawtooth.wav"
|
||||||
foot2Sound' <- Mix.load "./data/sound/foot2.wav"
|
-- teslaSound' <- Mix.load "./data/sound/Electrical-Welding.wav"
|
||||||
lasSound' <- Mix.load "./data/sound/tone440sawtooth.wav"
|
-- crankSlow' <- Mix.load "./data/sound/crankSlow.wav"
|
||||||
teslaSound' <- Mix.load "./data/sound/Electrical-Welding.wav"
|
-- autoB' <- Mix.load "./data/sound/autoB.wav"
|
||||||
crankSlow' <- Mix.load "./data/sound/crankSlow.wav"
|
-- mini' <- Mix.load "./data/sound/mini1.wav"
|
||||||
autoB' <- Mix.load "./data/sound/autoB.wav"
|
-- impactA' <- Mix.load "./data/sound/Impact-A.wav"
|
||||||
mini' <- Mix.load "./data/sound/mini1.wav"
|
-- impactB' <- Mix.load "./data/sound/Impact-B.wav"
|
||||||
impactA' <- Mix.load "./data/sound/Impact-A.wav"
|
-- impactC' <- Mix.load "./data/sound/Impact-C.wav"
|
||||||
impactB' <- Mix.load "./data/sound/Impact-B.wav"
|
-- impactD' <- Mix.load "./data/sound/Impact-D.wav"
|
||||||
impactC' <- Mix.load "./data/sound/Impact-C.wav"
|
-- glassShat1' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A1.wav"
|
||||||
impactD' <- Mix.load "./data/sound/Impact-D.wav"
|
-- glassShat2' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A2.wav"
|
||||||
glassShat1' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A1.wav"
|
-- glassShat3' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A3.wav"
|
||||||
glassShat2' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A2.wav"
|
-- glassShat4' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A4.wav"
|
||||||
glassShat3' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A3.wav"
|
-- glass1' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A1.wav"
|
||||||
glassShat4' <- Mix.load "./data/sound/Glass-Bottle-Shattering-A4.wav"
|
-- glass2' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A2.wav"
|
||||||
glass1' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A1.wav"
|
-- glass3' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A3.wav"
|
||||||
glass2' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A2.wav"
|
-- glass4' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A4.wav"
|
||||||
glass3' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A3.wav"
|
-- foamSpray' <- Mix.load "./data/sound/foamSprayLoop.wav"
|
||||||
glass4' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A4.wav"
|
-- let loadedS = IM.fromList $ zip [0..] $
|
||||||
foamSpray' <- Mix.load "./data/sound/foamSprayLoop.wav"
|
-- [ pFireSound
|
||||||
let loadedS = IM.fromList $ zip [0..]
|
-- , click
|
||||||
$ [ pFireSound
|
-- , reloadSound'
|
||||||
, click
|
-- , tone440
|
||||||
, reloadSound'
|
-- , pickupSound'
|
||||||
, tone440
|
-- , putdownSound'
|
||||||
, pickupSound'
|
-- , fireSound'
|
||||||
, putdownSound'
|
-- , grenadeBang'
|
||||||
, fireSound'
|
-- , tapQuiet'
|
||||||
, grenadeBang'
|
-- , twoStep'
|
||||||
, tapQuiet'
|
-- , healSound'
|
||||||
, twoStep'
|
-- , doorSound'
|
||||||
, healSound'
|
-- , twoStepSlow'
|
||||||
, doorSound'
|
-- , knifeSound'
|
||||||
, twoStepSlow'
|
-- , buzzSound'
|
||||||
, knifeSound'
|
-- , hitSound' --15
|
||||||
, buzzSound'
|
-- , autoGunSound'
|
||||||
, hitSound' --15
|
-- , shotgunSound'
|
||||||
, autoGunSound'
|
-- , teleSound'
|
||||||
, shotgunSound'
|
-- , longGunSound'
|
||||||
, teleSound'
|
-- , launcherSound'
|
||||||
, longGunSound'
|
-- , smokeTrailSound'
|
||||||
, launcherSound'
|
-- , foot1Sound'
|
||||||
, smokeTrailSound'
|
-- , foot2Sound'
|
||||||
, foot1Sound'
|
-- , lasSound'
|
||||||
, foot2Sound'
|
-- , teslaSound' --25
|
||||||
, lasSound'
|
-- , crankSlow'
|
||||||
, teslaSound' --25
|
-- , autoB'
|
||||||
, crankSlow'
|
-- , mini'
|
||||||
, autoB'
|
-- , impactA'
|
||||||
, mini'
|
-- , impactB' --30
|
||||||
, impactA'
|
-- , impactC'
|
||||||
, impactB' --30
|
-- , impactD'
|
||||||
, impactC'
|
-- , glassShat1' --33
|
||||||
, impactD'
|
-- , glassShat2'
|
||||||
, glassShat1' --33
|
-- , glassShat3'
|
||||||
, glassShat2'
|
-- , glassShat4'
|
||||||
, glassShat3'
|
-- , glass1' --37
|
||||||
, glassShat4'
|
-- , glass2'
|
||||||
, glass1' --37
|
-- , glass3'
|
||||||
, glass2'
|
-- , glass4' --40
|
||||||
, glass3'
|
-- , foamSpray'
|
||||||
, glass4' --40
|
-- ]
|
||||||
, foamSpray'
|
-- return $ SoundData {_loadedChunks = loadedS, _playingSounds = M.empty}
|
||||||
]
|
|
||||||
return $ SoundData {_loadedChunks = loadedS, _playingSounds = M.empty}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user