#ifndef _GUIHAND_H_ #define _GUIHAND_H_ #include "GuiLayers.h" #include "WEvent.h" #include "MTGGameZones.h" #include "CardGui.h" #include "GuiHand.h" #include "CardSelector.h" class GuiHand; struct HandLimitor : public Limitor { GuiHand* hand; virtual bool select(Target*); virtual bool greyout(Target*); HandLimitor(GuiHand* hand); }; class GuiHand : public GuiLayer { public: static const float ClosedRowX; static const float LeftRowX; static const float RightRowX; static const float OpenX; static const float ClosedX; static const float OpenY; static const float ClosedY; protected: const MTGHand* hand; JQuad *back; vector cards; CardSelector* cs; public: GuiHand(CardSelector* cs, MTGHand* hand); ~GuiHand(); void Update(float dt); bool isInHand(CardView*); friend struct HandLimitor; }; class GuiHandOpponent : public GuiHand { public: GuiHandOpponent(CardSelector* cs, MTGHand* hand); virtual void Render(); virtual int receiveEventPlus(WEvent* e); virtual int receiveEventMinus(WEvent* e); }; class GuiHandSelf : public GuiHand { protected: enum { Open, Closed } state; Pos backpos; public: GuiHandSelf(CardSelector* cs, MTGHand* hand); ~GuiHandSelf(); virtual int receiveEventPlus(WEvent* e); virtual int receiveEventMinus(WEvent* e); void Repos(); bool CheckUserInput(u32 key); virtual void Render(); void Update(float dt); float LeftBoundary(); HandLimitor* limitor; }; #endif // _GUIHAND_H_