| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #ifndef CGAMEINTERFACE_H
- #define CGAMEINTERFACE_H
- #include "SDL.h"
- #include "CDefHandler.h"
- #include "SDL_Extensions.h"
- #include <boost/logic/tribool.hpp>
- BOOST_TRIBOOL_THIRD_STATE(outOfRange)
- using namespace boost::logic;
- class CAdvMapInt;
- class CIntObject //interface object
- {
- public:
- SDL_Rect pos;
- int ID;
- };
- class CButtonBase : public virtual CIntObject
- {
- public:
- int type; //advmapbutton=2
- bool abs;
- bool active;
- CIntObject * ourObj;
- int state;
- std::vector<SDL_Surface*> imgs;
- virtual void show() ;
- virtual void activate()=0;
- virtual void deactivate()=0;
- CButtonBase();
- };
- class ClickableL : public virtual CIntObject //for left-clicks
- {
- public:
- bool pressedL;
- virtual void clickLeft (tribool down)=0;
- virtual void activate()=0;
- virtual void deactivate()=0;
- };
- class ClickableR : public virtual CIntObject //for right-clicks
- {
- public:
- bool pressedR;
- virtual void clickRight (tribool down)=0;
- virtual void activate()=0;
- virtual void deactivate()=0;
- };
- class Hoverable : public virtual CIntObject
- {
- public:
- bool hovered;
- virtual void hover (bool on)=0;
- virtual void activate()=0;
- virtual void deactivate()=0;
- };
- class KeyInterested : public virtual CIntObject
- {
- public:
- virtual void keyPressed (SDL_KeyboardEvent & key)=0;
- virtual void activate()=0;
- virtual void deactivate()=0;
- };
- class CGameInterface
- {
- public:
- bool human;
- int playerID, serialID;
- virtual void yourTurn()=0{};
- };
- class CGlobalAI : public CGameInterface // callback for AI
- {
- public:
- virtual void yourTurn(){};
- };
- class CPlayerInterface : public CGameInterface
- {
- public:
- CAdvMapInt * adventureInt;
- //TODO: town interace, battle interface, other interfaces
- std::vector<ClickableL*> lclickable;
- std::vector<ClickableR*> rclickable;
- std::vector<Hoverable*> hoverable;
- std::vector<KeyInterested*> keyinterested;
- void yourTurn();
- void handleEvent(SDL_Event * sEvent);
- void init();
- CPlayerInterface(int Player, int serial);
- };
- #endif //CGAMEINTERFACE_H
|