1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00
vcmi/CCastleHandler.h

51 lines
1.7 KiB
C
Raw Normal View History

#ifndef CCASTLEHANDLER_H
#define CCASTLEHANDLER_H
#include "CBuildingHandler.h"
#include "CHeroHandler.h"
#include "CObjectHandler.h"
2007-06-16 17:08:01 +03:00
#include "CCreatureHandler.h"
2007-06-16 17:08:01 +03:00
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
2007-06-16 17:08:01 +03:00
};
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;
2007-06-16 17:08:01 +03:00
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; //what the hell is that??
};
#endif //CCASTLEHANDLER_H