* Some cleaning after r1062 code review. - Remove code that was never reached. - Remove a useless function. - Make GuiPlay treat cards that are both spells and creatures as creatures and not spells.
90 lines
2.0 KiB
C++
90 lines
2.0 KiB
C++
#ifndef _GUIPLAY_H_
|
|
#define _GUIPLAY_H_
|
|
|
|
#include "GuiLayers.h"
|
|
#include "CardGui.h"
|
|
|
|
class GuiPlay : public GuiLayer
|
|
{
|
|
public:
|
|
static const float HORZWIDTH;
|
|
static const float VERTHEIGHT;
|
|
typedef vector<CardView*>::iterator iterator;
|
|
|
|
protected:
|
|
class CardStack {
|
|
protected:
|
|
unsigned total;
|
|
float baseX, baseY;
|
|
float x, y;
|
|
|
|
public:
|
|
void reset(unsigned total, float x, float y);
|
|
void Enstack(CardView*);
|
|
void RenderSpell(MTGCardInstance*, iterator begin, iterator end, float x, float y);
|
|
};
|
|
|
|
class HorzStack : public CardStack {
|
|
public:
|
|
HorzStack();
|
|
void Render(CardView*, iterator begin, iterator end);
|
|
void Enstack(CardView*);
|
|
};
|
|
class VertStack : public CardStack {
|
|
protected:
|
|
unsigned count;
|
|
public:
|
|
VertStack();
|
|
void reset(unsigned total, float x, float y);
|
|
void Render(CardView*, iterator begin, iterator end);
|
|
void Enstack(CardView*);
|
|
inline float nextX();
|
|
};
|
|
class BattleField : public HorzStack {
|
|
static const float HEIGHT;
|
|
unsigned attackers;
|
|
unsigned blockers;
|
|
unsigned currentAttacker;
|
|
float height;
|
|
|
|
public:
|
|
int red;
|
|
int colorFlow;
|
|
|
|
void addAttacker(MTGCardInstance*);
|
|
void removeAttacker(MTGCardInstance*);
|
|
void reset(float x, float y);
|
|
BattleField();
|
|
void EnstackAttacker(CardView*);
|
|
void EnstackBlocker(CardView*);
|
|
void Update(float dt);
|
|
void Render();
|
|
};
|
|
|
|
class Lands : public HorzStack {};
|
|
class Creatures : public HorzStack {};
|
|
class Spells : public VertStack {};
|
|
|
|
protected:
|
|
GameObserver* game;
|
|
Creatures selfCreatures, opponentCreatures;
|
|
BattleField battleField;
|
|
Lands selfLands, opponentLands;
|
|
Spells selfSpells, opponentSpells;
|
|
CardSelector* cs;
|
|
iterator end_spells;
|
|
|
|
vector<CardView*> cards;
|
|
|
|
public:
|
|
GuiPlay(GameObserver*, CardSelector*);
|
|
~GuiPlay();
|
|
virtual void Render();
|
|
void Replace();
|
|
void Update(float dt);
|
|
virtual int receiveEventPlus(WEvent * e);
|
|
virtual int receiveEventMinus(WEvent * e);
|
|
};
|
|
|
|
#endif // _GUIPLAY_H_
|