packages feed

dow 0.2.1 → 0.2.2

raw patch · 3 files changed

+9/−15 lines, 3 filesdep −mtl

Dependencies removed: mtl

Files

dow.cabal view
@@ -1,5 +1,5 @@ Name:                dow-Version:             0.2.1+Version:             0.2.2 Cabal-Version:       >= 1.2 Synopsis:            Dungeons of Wor Category:            game, reactivity, FRP@@ -41,8 +41,7 @@   data/sprites.txt  Executable dow-  Executable:        dow   HS-Source-Dirs:    src   Main-IS:           Main.hs-  Build-Depends:     base >= 4 && < 5, elerea >= 2.0.0, OpenGL >= 2.4, GLFW >= 0.4, array, mtl, directory+  Build-Depends:     base >= 4 && < 5, elerea >= 2.0.0, OpenGL >= 2.4, GLFW >= 0.4, array, directory   GHC-Options:       -O2 -fno-warn-deprecated-flags
src/Level.hs view
@@ -1,6 +1,6 @@ module Level where -import Control.Monad.Error+import Control.Monad import Data.Array import Data.List @@ -53,7 +53,7 @@ isVertical South = True isVertical _     = False -parseLevel :: [String] -> Either String (Level,[String])+parseLevel :: [String] -> Maybe (Level,[String]) parseLevel lines = do   let lines' = dropWhile null lines       nameLine = head lines'@@ -81,8 +81,9 @@          (d,f) <- [(North,head),(South,last),(West,map head),(East,map last)],          i <- findIndices (`elem` chars) (f lines)] -  when (null lines' || length mazeLines < 3) $ fail "Nothing to parse"-  when (head nameLine /= '"') $ fail "Missing level name"+  guard $ not (null lines')+  guard $ length mazeLines > 2+  guard $ head nameLine == '"'    return (Level { levelName = takeWhile (/= '"') (tail nameLine)                 , levelSize = (width,height)
src/Main.hs view
@@ -4,6 +4,7 @@ import Control.Monad import Control.Monad.Fix import Data.IORef+import Data.List import FRP.Elerea.Simple import Graphics.UI.GLFW import Graphics.Rendering.OpenGL@@ -65,14 +66,7 @@    closeWindow -loadLevels file = do-  dat <- lines <$> readFile file-  let levels = parseLevels dat-      parseLevels dat = case parseLevel dat of-        Left _ -> []-        Right (l,dat') -> l : parseLevels dat'--  return levels+loadLevels file = unfoldr parseLevel . lines <$> readFile file  loadSprites file = do   dat <- lines <$> readFile file