#ifndef CTOWNHANDLER_H #define CTOWNHANDLER_H #include "../global.h" #include class CBuilding; class CSpell; class CHero; class CGTownInstance; class DLL_EXPORT CTown { public: std::string name; //name of type std::vector names; //names of the town instances std::vector basicCreatures; //level (from 0) -> ID std::vector upgradedCreatures; //level (from 0) -> ID std::map hordeLvl; //[0] - first horde building creature level; [1] - second horde building (-1 if not present) int bonus; //pic number int typeID; }; struct DLL_EXPORT Structure { int ID; int3 pos; std::string defName, borderName, areaName, name; int townID, group; bool operator<(const Structure & p2) const { if(pos.z != p2.pos.z) return (pos.z) < (p2.pos.z); else return (ID) < (p2.ID); } }; class DLL_EXPORT CTownHandler { public: std::vector towns; std::vector tcommands, hcommands; std::map > structures; // > std::map > > requirements; //requirements[town_id][structure_id] -> set of required buildings CTownHandler(); ~CTownHandler(); void loadNames(); }; #endif //CTOWNHANDLER_H