| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef CCASTLEHANDLER_H
- #define CCASTLEHANDLER_H
- #include "CBuildingHandler.h"
- #include "CHeroHandler.h"
- #include "CObjectHandler.h"
- #include "CCreatureHandler.h"
- class CCastleEvent
- {
- public:
- std::string name, message;
- int wood, mercury, ore, sulfur, crystal, gems, gold; //gain / loss of resources
- unsigned char players; //players for whom this event can be applied
- bool forHuman, forComputer;
- int firstShow; //postpone of first encounter time in days
- int forEvery; //every n days this event will occure
- unsigned char bytes[6]; //build specific buildings (raw format, similar to town's)
- int gen[7]; //additional creatures in i-th level dwelling
- };
- class CCastleObjInfo : public CSpecObjInfo //castle class
- {
- public:
- int x, y, z; //posiotion
- std::vector<CBuilding> buildings; //buildings we can build in this castle
- std::vector<bool> isBuild; //isBuild[i] is true, when building buildings[i] has been built
- std::vector<bool> isLocked; //isLocked[i] is true, when building buildings[i] canot be built
- bool unusualBuildins; //if true, intrepret bytes below
- unsigned char buildingSettings[12]; //raw format for two vectors above (greatly depends on town type)
- bool hasFort; //used only if unusualBuildings is false
- CHero * visitingHero;
- CHero * garnisonHero;
- unsigned char bytes[4]; //identifying bytes
- unsigned char player; //255 - nobody, players 0 - 7
- std::string name; //town name
- CCreatureSet garrison;
- std::vector<CSpell *> possibleSpells;
- std::vector<CSpell *> obligatorySpells;
- std::vector<CSpell *> availableSpells;
- std::vector<CCastleEvent> events;
- unsigned char alignment; //255 - same as owner/random, 0 - same as red, 1 - same as blue, etc
- };
- #endif //CCASTLEHANDLER_H
|