finish constructing maps

This commit is contained in:
nek0 2020-10-17 01:51:19 +02:00
parent 4eb31b1bf5
commit ada9c1368f

View file

@ -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