module Title where
import Monad
import qualified Graphics.UI.SDL as SDL
import Resource
-- タイトル画面
data Title = Title MenuIndex
initTitle = Title 0
type MenuIndex = Int
nextMenu index = mod (index + 1) 3
prevMenu index = mod (index - 1) 3
cursorRect :: MenuIndex -> SDL.Rect
cursorRect i = SDL.Rect (300+50*i) (400+50*i) 50 50
titlePaint = (("./resource/image/title.bmp", Nothing), Nothing)
titleStartPaint = (("./resource/image/title_start.bmp", Nothing), Just (SDL.Rect 350 400 200 50))
titleScorePaint = (("./resource/image/title_score.bmp", Nothing), Just (SDL.Rect 400 450 200 50))
titleQuitPaint = (("./resource/image/title_quit.bmp", Nothing), Just (SDL.Rect 450 500 200 50))
cursorTip = ("./resource/image/cursor.bmp", Nothing)
cursorStart = Just (SDL.Rect 300 400 50 50)
cursorEnd= Just (SDL.Rect 350 450 50 50)
titlePaints = [titlePaint, titleStartPaint, titleScorePaint, titleQuitPaint]
titleTips = [cursorTip]
titleImgFiles = (map fst titleTips) ++ (map (fst.fst) titlePaints)
-- 描画
renderTitle :: Title -> SDL.Surface -> Resource -> IO ()
renderTitle (Title i) surf res = do
haltSound
mapM_ (renderPaint res surf) titlePaints
renderPaint res surf (cursorTip, Just $ cursorRect i)
return ()
-- リソースの更新
addTitleResource :: Resource -> IO Resource
addTitleResource res = foldM addImageResource res titleImgFiles