packages feed

tcod-haskell-0.1.0.0: app/sample01/Main.hs

module Main where

import Game.TCOD

main :: IO ()
main = withSystem $ do
  consoleInitRoot 80 50 "libtcod Haskell example" False RendererSDL
  unlessM consoleIsWindowClosed $ do
    _ <- systemCheckForEvent [EventKeyPress]
    consoleClear rootConsole
    consolePutChar rootConsole 40 25 '@' BackgroundDefault
    consoleFlush

-- | Do action until given condition predicate doesn't return 'False'
unlessM :: Monad m => m Bool -> m () -> m ()
unlessM mcond ma = do
  cond <- mcond
  if not cond then do
    ma
    unlessM mcond ma
  else pure ()