2007-08-01 14:06:04 +00:00
|
|
|
#ifndef CGAMEINTERFACE_H
|
|
|
|
#define CGAMEINTERFACE_H
|
2007-11-18 22:58:28 +00:00
|
|
|
#include "global.h"
|
|
|
|
#include "CCallback.h"
|
2007-08-03 21:47:34 +00:00
|
|
|
BOOST_TRIBOOL_THIRD_STATE(outOfRange)
|
2007-09-18 13:30:26 +00:00
|
|
|
|
2007-08-03 21:47:34 +00:00
|
|
|
using namespace boost::logic;
|
2007-09-14 13:11:10 +00:00
|
|
|
class CCallback;
|
2007-11-18 22:58:28 +00:00
|
|
|
class CGlobalAI;
|
2007-10-27 19:38:48 +00:00
|
|
|
class CGHeroInstance;
|
2007-12-27 00:11:46 +00:00
|
|
|
class CSelectableComponent;
|
2007-08-03 21:47:34 +00:00
|
|
|
class CGameInterface
|
|
|
|
{
|
2007-08-04 19:01:22 +00:00
|
|
|
public:
|
|
|
|
bool human;
|
2007-08-06 04:03:34 +00:00
|
|
|
int playerID, serialID;
|
2007-08-04 19:01:22 +00:00
|
|
|
|
2007-12-06 18:32:06 +00:00
|
|
|
virtual void init(ICallback * CB)=0{};
|
2007-08-04 19:01:22 +00:00
|
|
|
virtual void yourTurn()=0{};
|
2007-10-27 19:38:48 +00:00
|
|
|
virtual void heroKilled(const CGHeroInstance*)=0{};
|
|
|
|
virtual void heroCreated(const CGHeroInstance*)=0{};
|
2007-11-18 22:58:28 +00:00
|
|
|
virtual void heroPrimarySkillChanged(const CGHeroInstance * hero, int which, int val)=0{};
|
2007-11-29 18:45:47 +00:00
|
|
|
virtual void heroMoved(const HeroMoveDetails & details)=0{};
|
2008-01-28 14:01:09 +00:00
|
|
|
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){};
|
2007-12-27 00:11:46 +00:00
|
|
|
virtual void showSelDialog(std::string text, std::vector<CSelectableComponent*> & components, int askID)=0{};
|
2008-01-28 14:01:09 +00:00
|
|
|
virtual void garrisonChanged(const CGObjectInstance * obj){};
|
2007-08-03 21:47:34 +00:00
|
|
|
};
|
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)
|
2007-08-03 21:47:34 +00:00
|
|
|
{
|
2007-08-04 19:01:22 +00:00
|
|
|
public:
|
2007-10-21 16:45:13 +00:00
|
|
|
//CGlobalAI();
|
2007-08-04 19:01:22 +00:00
|
|
|
virtual void yourTurn(){};
|
2007-10-27 19:38:48 +00:00
|
|
|
virtual void heroKilled(const CGHeroInstance*){};
|
|
|
|
virtual void heroCreated(const CGHeroInstance*){};
|
2007-07-28 09:44:10 +00:00
|
|
|
};
|
2007-08-01 14:06:04 +00:00
|
|
|
#endif //CGAMEINTERFACE_H
|