summaryrefslogtreecommitdiff
path: root/noncore/games/solitaire/cardgamelayout.cpp
Side-by-side diff
Diffstat (limited to 'noncore/games/solitaire/cardgamelayout.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/solitaire/cardgamelayout.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/noncore/games/solitaire/cardgamelayout.cpp b/noncore/games/solitaire/cardgamelayout.cpp
new file mode 100644
index 0000000..1ceee8d
--- a/dev/null
+++ b/noncore/games/solitaire/cardgamelayout.cpp
@@ -0,0 +1,61 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+#include "cardgamelayout.h"
+
+
+CardGameLayout::~CardGameLayout()
+{
+ // Should I just do setAutoDelete( TRUE ); ?
+ for (CardPile *p = first(); p != NULL; p = next())
+ delete p;
+}
+
+
+CardPile *CardGameLayout::closestPile(int x, int y, int maxDistance)
+{
+ int closestDistance = maxDistance * maxDistance;
+ CardPile *closestPile = NULL;
+
+ for (CardPile *p = first(); p != NULL; p = next()) {
+ int d = p->distanceFromNextPos(x, y);
+ if (d < closestDistance) {
+ closestDistance = d;
+ closestPile = p;
+ }
+ }
+
+ return closestPile;
+}
+
+
+void CardGameLayout::beginDealing()
+{
+ for (CardPile *p = first(); p != NULL; p = next())
+ p->beginDealing();
+}
+
+
+void CardGameLayout::endDealing()
+{
+ for (CardPile *p = first(); p != NULL; p = next())
+ p->endDealing();
+}
+
+