1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-09 13:14:02 +02:00
vcmi/CGameInterface.h

44 lines
1.4 KiB
C
Raw Normal View History

#ifndef CGAMEINTERFACE_H
#define CGAMEINTERFACE_H
#include "global.h"
#include "CCallback.h"
BOOST_TRIBOOL_THIRD_STATE(outOfRange)
using namespace boost::logic;
class CCallback;
class CGlobalAI;
class CGHeroInstance;
class CSelectableComponent;
class CGameInterface
{
public:
bool human;
int playerID, serialID;
virtual void init(ICallback * CB)=0{};
virtual void yourTurn()=0{};
virtual void heroKilled(const CGHeroInstance*)=0{};
virtual void heroCreated(const CGHeroInstance*)=0{};
virtual void heroPrimarySkillChanged(const CGHeroInstance * hero, int which, int val)=0{};
virtual void heroMoved(const HeroMoveDetails & details)=0{};
virtual void heroVisitsTown(const CGHeroInstance* hero, const CGTownInstance * town){};
virtual void tileRevealed(int3 pos){};
virtual void tileHidden(int3 pos){};
2007-11-25 13:16:45 +00:00
virtual void receivedResource(int type, int val){};
virtual void showSelDialog(std::string text, std::vector<CSelectableComponent*> & components, int askID)=0{};
virtual void garrisonChanged(const CGObjectInstance * obj){};
};
2007-10-21 16:45:13 +00:00
class CAIHandler
{
public:
static CGlobalAI * getNewAI(CCallback * cb, std::string dllname);
};
2007-08-25 04:56:25 +00:00
class CGlobalAI : public CGameInterface // AI class (to derivate)
{
public:
2007-10-21 16:45:13 +00:00
//CGlobalAI();
virtual void yourTurn(){};
virtual void heroKilled(const CGHeroInstance*){};
virtual void heroCreated(const CGHeroInstance*){};
};
#endif //CGAMEINTERFACE_H