#ifndef OGLG_TERRAIN_H_ #define OGLG_TERRAIN_H_ #include "pc/Point.h" #include "pc/pctypes.h" #include "pc/commcode.h" #include "logic/GameBoard.h" #include #include class BadImportTerrainConfig:std::exception{ public: BadImportTerrainConfig(size_t); ~BadImportTerrainConfig()=default; const char* what() const noexcept; private: size_t pt; }; class BadCapitalAssign:std::exception{ public: ~BadCapitalAssign()=default; const char* what() const noexcept; }; class ImportedTerrain{ public: friend ImportedTerrain importTerrain(const ImportTerrainConfig &in); GameBoard makeGameBoard(const InitInfo &init_info); private: struct TerrainTile{ TileType type; std::int32_t unit; }; pos_t w,h; std::vector> tiles; std::vector>> capitals; }; ImportedTerrain importTerrain(const ImportTerrainConfig &in); #endif