summaryrefslogtreecommitdiffstats
path: root/klickety/board.h
diff options
context:
space:
mode:
Diffstat (limited to 'klickety/board.h')
-rw-r--r--klickety/board.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/klickety/board.h b/klickety/board.h
new file mode 100644
index 00000000..d239f83d
--- /dev/null
+++ b/klickety/board.h
@@ -0,0 +1,38 @@
+#ifndef KL_BOARD_H
+#define KL_BOARD_H
+
+#include "base/board.h"
+#include "base/piece.h"
+
+class KLBoard : public BaseBoard
+{
+ Q_OBJECT
+ public:
+ KLBoard(QWidget *parent);
+
+ void start(const GTInitData &data);
+
+ signals:
+ void firstBlockClicked();
+
+ private:
+ KGrid2D::Square<int> field;
+ bool sliding;
+ QMemArray<bool> empty;
+ uint addRemoved;
+ bool blocked;
+
+ KGrid2D::Coord findSprite(QCanvasSprite *) const;
+ AfterRemoveResult afterRemove(bool doAll, bool first);
+ bool afterAfterRemove();
+ bool toBeRemoved(const KGrid2D::Coord &) const;
+ void remove();
+ bool toFall(const KGrid2D::Coord &) const;
+ bool toSlide(const KGrid2D::Coord &) const;
+ bool doSlide(bool doAll, bool first, bool lineByLine);
+ void computeInfos();
+
+ void contentsMouseReleaseEvent(QMouseEvent *);
+};
+
+#endif