finish constructing maps
This commit is contained in:
parent
4eb31b1bf5
commit
ada9c1368f
38
src/Map.hs
38
src/Map.hs
|
@ -1,12 +1,16 @@
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
module Map where
|
module Map where
|
||||||
|
|
||||||
|
import qualified Graphics.Rendering.OpenGL as GL
|
||||||
|
|
||||||
import Linear
|
import Linear
|
||||||
|
|
||||||
import Codec.Picture
|
import Codec.Picture
|
||||||
|
|
||||||
import qualified Data.Vector as V
|
import qualified Data.Vector as V
|
||||||
|
|
||||||
|
import Control.Monad (foldM)
|
||||||
|
|
||||||
-- internal imports
|
-- internal imports
|
||||||
|
|
||||||
import Types
|
import Types
|
||||||
|
@ -20,22 +24,24 @@ testLevelDesc = LevelDescriptor
|
||||||
"res/tiles/00_test/00_test.png"
|
"res/tiles/00_test/00_test.png"
|
||||||
(3, 3)
|
(3, 3)
|
||||||
|
|
||||||
-- constructMap :: LevelDescriptor -> IO LevelMap
|
constructMap :: LevelDescriptor -> GL.GLuint -> IO LevelMap
|
||||||
-- constructMap desc = do
|
constructMap desc tilemapSlot = do
|
||||||
-- (layers, dimensions) <- foldM
|
(layers, dimensions) <- foldM
|
||||||
-- (\(layers, dims) descTup -> do
|
(\(layers, dims) descTup -> do
|
||||||
-- (nlayer, ndims) <- readLayer descTup
|
(nlayer, ndims) <- readLayer descTup
|
||||||
-- if not (null layers) && ndims /= dims
|
if not (null layers) && ndims /= dims
|
||||||
-- then error ("Map Layer dimensions mismatch in: " <> snd descTup)
|
then error ("Map Layer dimensions mismatch in: " <> snd descTup)
|
||||||
-- else return (dims ++ [nlayer], ndims)
|
else return (layers ++ [nlayer], ndims)
|
||||||
-- )
|
)
|
||||||
-- ([], (0, 0))
|
([], V2 0 0)
|
||||||
-- (maplayers desc)
|
(V.fromList $ levelLayerPath desc)
|
||||||
-- LevelMap
|
tilemap <- uncurry TileMap <$> newTexture (levelTileMap desc) tilemapSlot
|
||||||
-- <$> pure layers
|
LevelMap
|
||||||
-- <*> pure (levelWalkLayer desc)
|
<$> pure (V.fromList layers)
|
||||||
-- <*> pure dimensions
|
<*> pure (levelWalkLayer desc)
|
||||||
-- <*> -- TODO: TileMap
|
<*> pure (fmap fromIntegral dimensions)
|
||||||
|
<*> pure tilemap
|
||||||
|
<*> pure (V2 (fst $ levelStartPos desc) (snd $ levelStartPos desc))
|
||||||
|
|
||||||
readLayer
|
readLayer
|
||||||
:: (Word, FilePath) -- | index and path of the layer descriptor image
|
:: (Word, FilePath) -- | index and path of the layer descriptor image
|
||||||
|
|
Loading…
Reference in a new issue