Reimplement continuous sounds (package dependencies should be reworked)
This commit is contained in:
+17
-4
@@ -1,16 +1,28 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Sound.Preload
|
||||
where
|
||||
import qualified SDL.Mixer as Mix
|
||||
|
||||
import qualified Data.IntMap as IM
|
||||
import qualified Data.Map as M
|
||||
|
||||
type SoundData = IM.IntMap Mix.Chunk
|
||||
import Control.Lens
|
||||
|
||||
cleanUpSoundPreload :: SoundData -> IO ()
|
||||
import Dodge.Data
|
||||
|
||||
data SoundData a = SoundData
|
||||
{_loadedChunks :: IM.IntMap Mix.Chunk
|
||||
,_playingSounds :: M.Map a Sound
|
||||
}
|
||||
|
||||
makeLenses ''SoundData
|
||||
|
||||
|
||||
cleanUpSoundPreload :: SoundData a -> IO ()
|
||||
cleanUpSoundPreload sd = Mix.closeAudio
|
||||
|
||||
|
||||
preloadSound :: IO SoundData
|
||||
preloadSound :: IO (SoundData a)
|
||||
preloadSound = do
|
||||
Mix.openAudio Mix.defaultAudio 256
|
||||
-- pFireSound <- Mix.loadWAV "./data/sound/tap3.wav"
|
||||
@@ -56,7 +68,7 @@ preloadSound = do
|
||||
glass3' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A3.wav"
|
||||
glass4' <- Mix.load "./data/sound/Small-Piece-Of-Glass-Shattering-A4.wav"
|
||||
foamSpray' <- Mix.load "./data/sound/foamSprayLoop.wav"
|
||||
return $ IM.fromList $ zip [0..]
|
||||
let loadedS = IM.fromList $ zip [0..]
|
||||
$ [ pFireSound
|
||||
, click
|
||||
, reloadSound'
|
||||
@@ -100,3 +112,4 @@ preloadSound = do
|
||||
, glass4' --40
|
||||
, foamSpray'
|
||||
]
|
||||
return $ SoundData {_loadedChunks = loadedS, _playingSounds = M.empty}
|
||||
|
||||
Reference in New Issue
Block a user