packages feed

fearOfView-0.1.1.0: Geometry.hs

module Geometry where

import qualified Data.Map.Strict as M

import           Window

import qualified Board           as B
import qualified Inventory       as I

-- Terminal size
scrW,scrH :: Int
scrW = 60
scrH = 20

data WinDim = WinDim
    { windimx :: Int
    , windimy :: Int
    , windimw :: Int
    , windimh :: Int
    }

geometry :: M.Map Window WinDim
geometry = M.fromList
    [ (StatusWin, WinDim 0 0 scrW 2)
    , (BoardWin, WinDim 1 3 (bdcW+1) bdcH)
    , (InvWin, WinDim (1+bdcW+3) 3 20 (3 + length I.slots))
    , (EquipWin, WinDim (1+bdcW+3+20) 3 15 (3 + length I.slots))
    , (LevelInfoWin, WinDim 1 (1 + afterBoard) scrW 3)
    , (MessageWin, WinDim 0 (1 + 3 + 1 + afterBoard) scrW 1)
    , (MainWin, WinDim 0 0 scrW scrH)
    , (TutorialWin, WinDim 50 0 3 3) -- Only used by CursesUI, which moves it around
    ]
    where
    -- |Can draw on board at CPos x y for x < bdcW and y < bdcH
    bdcW,bdcH :: Int
    bdcW = B.w * 3 + 1
    bdcH = B.h * 2 + 1
    afterBoard = 3 + max bdcH (3 + length I.slots)