[prev in list] [next in list] [prev in thread] [next in thread] 

List:       atlantik-devel
Subject:    [atlantik-cvs] CVS: kdegames/atlantik/libatlantikui board.cpp,1.103,1.104 board.h,1.62,1.63
From:       kde () office ! kde ! org
Date:       2003-01-31 5:44:20
[Download RAW message or body]

Update of /home/kde/kdegames/atlantik/libatlantikui
In directory office:/tmp/cvs-serv27333/libatlantikui

Modified Files:
	board.cpp board.h 
Log Message:
small token fixes that benefit designer

Index: board.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/board.cpp,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- board.cpp	23 Dec 2002 04:03:55 -0000	1.103
+++ board.cpp	31 Jan 2003 05:44:17 -0000	1.104
@@ -72,9 +72,16 @@
 //	m_gridLayout->addWidget(spacer, sideLen, sideLen); // SE
 
 	m_displayQueue.setAutoDelete(true);
+	m_estateViews.setAutoDelete(true);
+	m_tokens.setAutoDelete(true);
+
 	displayDefault();
 }
 
+AtlantikBoard::~AtlantikBoard()
+{
+}
+
 void AtlantikBoard::setViewProperties(bool indicateUnowned, bool highliteUnowned, \
bool darkenMortgaged, bool quartzEffects, bool animateTokens)  {
 	if (m_animateTokens != animateTokens)
@@ -165,16 +172,26 @@
 	connect(auction, SIGNAL(completed()), this, SLOT(displayDefault()));
 }
 
+Token *AtlantikBoard::findToken(Player *player)
+{
+	Token *token = 0;
+	for (QPtrListIterator<Token> it(m_tokens); (token = *it) ; ++it)
+		if (token->player() == player)
+			return token;
+	return 0;
+}
+
 void AtlantikBoard::addToken(Player *player)
 {
+	kdDebug() << "addToken" << endl;
 	if (!player->location())
 	{
-		kdDebug() << "addToken - estateView null\n";
+		kdDebug() << "addToken - estateView null" << endl;
 		return;
 	}
 
 	Token *token = new Token(player, this, "token");
-	tokenMap[player] = token;
+	m_tokens.append(token);
 	connect(player, SIGNAL(changed(Player *)), token, SLOT(playerChanged()));
 	
 	jumpToken(token);
@@ -186,7 +203,7 @@
 void AtlantikBoard::playerChanged(Player *player)
 {
 	// Update token
-	Token *token = tokenMap[player];
+	Token *token = findToken(player);
 	if (token)
 	{
 		if (player->hasTurn())
@@ -231,10 +248,15 @@
 
 void AtlantikBoard::jumpToken(Token *token)
 {
+	if (!token || !token->location())
+		return;
+
 	kdDebug() << "jumpToken to " << token->location()->name() << endl;
 
 	QPoint tGeom = calculateTokenDestination(token);
 	token->setGeometry(tGeom.x(), tGeom.y(), token->width(), token->height());
+	if (token->isHidden())
+		token->show();
 
 	if (token == m_movingToken)
 	{
@@ -259,7 +281,10 @@
 {
 		if (!eDest)
 			eDest = token->player()->location();
+
 		EstateView *evDest = findEstateView(eDest);
+		if (!evDest)
+			return QPoint(0, 0);
 
 		int x = 0, y = 0;
 		if (token->player()->inJail())
@@ -383,7 +408,7 @@
 	// adjusted estate geometries.
 
 	Token *token = 0;
-	for (QMap<Player *, Token *>::Iterator it=tokenMap.begin() ; it != tokenMap.end() \
&& (token = *it) ; ++it) +	for (QPtrListIterator<Token> it(m_tokens); (token = *it) ; \
++it)  jumpToken(token);
 
 	// Restart the timer that was stopped in resizeEvent

Index: board.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikui/board.h,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- board.h	23 Dec 2002 04:03:55 -0000	1.62
+++ board.h	31 Jan 2003 05:44:17 -0000	1.63
@@ -40,11 +40,15 @@
 	enum DisplayMode { Play, Edit };
 
 	AtlantikBoard(AtlanticCore *atlanticCore, int maxEstates, DisplayMode mode, QWidget \
*parent, const char *name=0); +	~AtlantikBoard();
+
 	void setViewProperties(bool indicateUnowned, bool highliteUnowned, bool \
darkenMortgaged, bool quartzEffects, bool animateTokens);  int heightForWidth(int);
 	void addEstateView(Estate *estate, bool indicateUnowned = false, bool \
highliteUnowned = false, bool darkenMortgaged = false, bool quartzEffects = false);  \
void addAuctionWidget(Auction *auction); +
 	void addToken(Player *player);
+
 	void indicateUnownedChanged();
 	EstateView *findEstateView(Estate *estate);
 	QWidget *centerWidget();
@@ -69,6 +73,7 @@
 	void resizeEvent(QResizeEvent *);
 
 private:
+	Token *findToken(Player *player);
 	void jumpToken(Token *token);
 	void moveToken(Token *token);
 	QPoint calculateTokenDestination(Token *token, Estate *estate = 0);
@@ -88,7 +93,7 @@
 	int m_maxEstates;
 
 	QPtrList<EstateView> m_estateViews;
-	QMap<Player *, Token *> tokenMap;
+	QPtrList<Token> m_tokens;
 	QPtrList<QWidget> m_displayQueue;
 };
 

_______________________________________________
atlantik-cvs mailing list
atlantik-cvs@mail.kde.org
http://mail.kde.org/mailman/listinfo/atlantik-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic