Files
checkers/inc/pawn.hh
2016-05-25 12:02:14 +02:00

73 lines
1.4 KiB
C++

#ifndef PAWN_HH
#define PAWN_HH
/* Plik implementuje klasę pionka(kamienia) jako pochodną klasy Object */
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include "def.hh"
#include "object.hh"
// Typ wyliczeniowy definiujący możliwe kolory
enum Color
{
CL_WHITE,
CL_BLACK
};
// Zwróć kolor przeciwny do argumentu
inline Color getOpposedColor(Color color)
{
if(color == CL_WHITE) return CL_BLACK;
else return CL_WHITE;
}
// Klasa reprezentująca pionek
class Pawn : public Object
{
private:
// Kolor pionka
Color color;
// Czy pionek jest zaznaczony
bool selected;
// Czy pionek jest królową
bool queen;
public:
// Konstruktor tworzący pionek na zadanej pozycji startowej i o określonym kolorze
Pawn(Vector _position, Color _color) : Object(_position), color(_color), selected(false), queen(false) {}
// Pobierz kolor
Color getColor() const { return color; }
// Rysuj pionek na obiekcie window
void draw(sf::RenderWindow& window);
// Czy jest zaznaczony
bool isSelected() const { return selected; }
// Czy jest królową
bool isQueen() const { return queen; }
// Zaznacz pionek
void select() { selected = true; }
// Odznacz pionek
void deselect() { selected = false; }
// Zamień na królową
void upgrade() { queen = true; }
// Zamień spowrotem w zwykłego pionka
void downgrade() { queen = false; }
// Destruktor
~Pawn() {}
};
#endif