-- grid is a game written in Haskell
-- Copyright (C) 2018 karamellpelle@hotmail.com
-- 
-- This file is part of grid.
-- 
-- grid is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
-- 
-- grid is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
-- 
-- You should have received a copy of the GNU General Public License
-- along with grid.  If not, see <http://www.gnu.org/licenses/>.
--
module Game.Run.Scene.Plain.SoundScene
  (
    soundSceneNoise,

  ) where

import MyPrelude
import Game
import Game.Run.RunData
import Game.Grid.GridWorld.Node

import OpenAL
import OpenAL.Helpers


soundSceneNoise :: SoundScene -> UInt -> Float -> Node -> IO ()
soundSceneNoise sound ix pitch node = do

    alSourceStop (soundSceneNoiseSrc sound)
    alSourcei (soundSceneNoiseSrc sound) al_BUFFER 
        $ fI $ noisearrayAt (soundSceneNoiseBufs sound) ix

    alSourcef (soundSceneNoiseSrc sound) al_PITCH $ rTF pitch

    case node of 
        Node x y z -> alSource3f (soundSceneNoiseSrc sound) al_POSITION 
                                 (fI x) (fI y) (fI z)

    alSourcePlay $ soundSceneNoiseSrc sound
