szdytom 45b67a2274
format code from lcw
Signed-off-by: szdytom <szdytom@qq.com>
2024-02-07 22:11:07 +08:00

46 lines
969 B
C++

#ifndef OGLG_TERRAIN_H_
#define OGLG_TERRAIN_H_
#include "logic/GameBoard.h"
#include "pc/Point.h"
#include "pc/commcode.h"
#include "pc/pctypes.h"
#include <exception>
#include <vector>
class BadImportTerrainConfig : std::exception {
public:
BadImportTerrainConfig(size_t);
virtual ~BadImportTerrainConfig() = default;
virtual const char* what() const noexcept override;
private:
size_t pt;
};
class BadCapitalAssign : std::exception {
public:
virtual ~BadCapitalAssign() = default;
virtual const char* what() const noexcept override;
};
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<std::vector<TerrainTile>> tiles;
std::vector<std::vector<std::vector<Point>>> capitals;
};
ImportedTerrain importTerrain(const ImportTerrainConfig& in);
#endif