summaryrefslogtreecommitdiffstats
path: root/kpat/dealer.h
diff options
context:
space:
mode:
Diffstat (limited to 'kpat/dealer.h')
-rw-r--r--kpat/dealer.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/kpat/dealer.h b/kpat/dealer.h
index 7dfc5825..0704433b 100644
--- a/kpat/dealer.h
+++ b/kpat/dealer.h
@@ -3,6 +3,7 @@
#include "pile.h"
#include "hint.h"
+#include <tqdom.h>
#include <krandomsequence.h>
class TQDomDocument;
@@ -38,7 +39,41 @@ public:
virtual Dealer *createGame(TDEMainWindow *parent) = 0;
};
-class CardState;
+class CardState {
+public:
+ Card *it;
+ Pile *source;
+ double x;
+ double y;
+ double z;
+ bool faceup;
+ bool tookdown;
+ int source_index;
+ CardState() {}
+public:
+ // as every card is only once we can sort after the card.
+ // < is the same as <= in that context. == is different
+ bool operator<(const CardState &rhs) const { return it < rhs.it; }
+ bool operator<=(const CardState &rhs) const { return it <= rhs.it; }
+ bool operator>(const CardState &rhs) const { return it > rhs.it; }
+ bool operator>=(const CardState &rhs) const { return it > rhs.it; }
+ bool operator==(const CardState &rhs) const {
+ return (it == rhs.it && source == rhs.source && x == rhs.x &&
+ y == rhs.y && z == rhs.z && faceup == rhs.faceup
+ && source_index == rhs.source_index && tookdown == rhs.tookdown);
+ }
+ void fillNode(TQDomElement &e) const {
+ e.setAttribute("value", it->rank());
+ e.setAttribute("suit", it->suit());
+ e.setAttribute("source", source->index());
+ e.setAttribute("x", x);
+ e.setAttribute("y", y);
+ e.setAttribute("z", z);
+ e.setAttribute("faceup", faceup);
+ e.setAttribute("tookdown", tookdown);
+ e.setAttribute("source_index", source_index);
+ }
+};
typedef TQValueList<CardState> CardStateList;