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

List:       atlantik-devel
Subject:    [atlantik-cvs] CVS: kdegames/atlantik/libatlantikclient
From:       kde () office ! kde ! org
Date:       2003-11-17 2:50:44
[Download RAW message or body]

Update of /home/kde/kdegames/atlantik/libatlantikclient
In directory office:/tmp/cvs-serv10286/libatlantikclient

Modified Files:
      Tag: atlantik_3_3_branch
	atlantik_network.cpp 
Log Message:
more gameupdate changes, game master is now a server-wide property

Index: atlantik_network.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/libatlantikclient/atlantik_network.cpp,v
retrieving revision 1.95.2.3
retrieving revision 1.95.2.4
diff -u -d -r1.95.2.3 -r1.95.2.4
--- atlantik_network.cpp	15 Nov 2003 22:09:07 -0000	1.95.2.3
+++ atlantik_network.cpp	17 Nov 2003 02:50:42 -0000	1.95.2.4
@@ -331,13 +331,17 @@
 				{
 					gameId = a.value().toInt();
 
-					kdDebug() << "gameupdate for " << QString::number(gameId) << " with playerSelf \
in game " << QString::number(m_atlanticCore->playerSelf() ? \
m_atlanticCore->playerSelf()->gameId() : -2) << endl; +					if ( \
m_atlanticCore->playerSelf() && m_atlanticCore->playerSelf()->game() ) \
+						kdDebug() << "gameupdate for " << QString::number(gameId) << " with playerSelf \
in game " << QString::number(m_atlanticCore->playerSelf()->game()->id()) << endl; \
+					else +						kdDebug() << "gameupdate for " << QString::number(gameId) << endl;
+
 
 					Game *game = 0;
 					if (gameId == -1)
 					{
 						a = e.attributeNode(QString("gametype"));
-						if (!a.isNull())
+						if ( !a.isNull() && !(game = m_atlanticCore->findGame(a.value())) )
 							game = m_atlanticCore->newGame(gameId, a.value());
 					}
 					else if (!(game = m_atlanticCore->findGame(gameId)))
@@ -360,6 +364,11 @@
 					if (game && !a.isNull())
 						game->setPlayers(a.value().toInt());
 
+					// FIXME: create player if non-existant
+					a = e.attributeNode(QString("master"));
+					if (game && !a.isNull())
+						game->setMaster(m_atlanticCore->findPlayer(a.value().toInt()));
+
 					QString status = e.attributeNode(QString("status")).value();
 					if (status == "config")
 						emit gameConfig();
@@ -407,7 +416,19 @@
 					// Update player game
 					a = e.attributeNode(QString("game"));
 					if (player && !a.isNull())
-						player->setGame(a.value().toInt());
+					{
+						int gameId = a.value().toInt();
+						if (gameId == -1)
+							player->setGame( 0 );
+						else
+						{
+							// Ensure setGame succeeds by creating game if necessary
+							Game *game = m_atlanticCore->findGame(a.value().toInt());
+							if (!game)
+								game = m_atlanticCore->newGame(a.value().toInt()); // 
+							player->setGame( game );
+						}
+					}
 
 					// Update player host
 					a = e.attributeNode(QString("host"));
@@ -423,10 +444,6 @@
 					a = e.attributeNode(QString("money"));
 					if (player && !a.isNull())
 						player->setMoney(a.value().toInt());
-
-					a = e.attributeNode(QString("master"));
-					if (player && !a.isNull())
-						player->setMaster(a.value().toInt());
 
 					a = e.attributeNode(QString("bankrupt"));
 					if (player && !a.isNull())

_______________________________________________
atlantik-cvs mailing list
atlantik-cvs@kde.org
https://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