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

List:       kde-commits
Subject:    KDE/kdegames/ksirk/ksirk
From:       Gaƫl de Chalendar <kleag () free ! fr>
Date:       2009-09-30 22:10:44
Message-ID: 1254348644.663733.28883.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1029854 by kleag:

TCP game setup debuging

 M  +7 -5      Dialogs/kplayersetupwidget.cpp  
 M  +5 -4      Dialogs/newGameSummaryWidget.cpp  
 M  +14 -7     GameLogic/gameautomaton.cpp  
 M  +1 -4      GameLogic/gameautomaton.h  
 M  +1 -1      decoratedgameframe.cpp  
 M  +3 -31     kgamewin.cpp  
 M  +1 -5      kgamewin.h  
 M  +0 -2      kgamewinslots.cpp  
 M  +77 -0     newgamesetup.cpp  
 M  +5 -3      newgamesetup.h  


--- trunk/KDE/kdegames/ksirk/ksirk/Dialogs/kplayersetupwidget.cpp #1029853:1029854
@@ -95,7 +95,7 @@
   m_newGameSetup = newGameSetup;
 
   kDebug() << "connecting to playerJoinedGame";
-  connect(automaton,SIGNAL(signalPlayerJoinedGame(KPlayer*)), \
this,SLOT(slotPlayerJoinedGame(KPlayer*))); +  \
connect(automaton,SIGNAL(signalPlayerJoinedGame(KPlayer*)), this, \
SLOT(slotPlayerJoinedGame(KPlayer*)));  init();
   kDebug() << "constructor done";
 }
@@ -103,7 +103,7 @@
 
 void KPlayerSetupWidget::slotNext()
 {
-  kDebug();
+  kDebug() << m_newGameSetup->players().size() << m_newGameSetup->nbPlayers();
 
   m_name = nameLineEdit-> text().trimmed();
 //     kDebug() << "Got name " << name;
@@ -193,8 +193,8 @@
 
 void KPlayerSetupWidget::slotPlayerJoinedGame(KPlayer* player)
 {
-//   kDebug() << "KPlayerSetupDialog::slotPlayerJoinedGame: " << player->name() 
-//       << " from " << ((GameLogic::Player*)player)->getNation()->name();
+  kDebug() << "KPlayerSetupWidget::slotPlayerJoinedGame: " << player->name()
+      << " from " << ((GameLogic::Player*)player)->getNation()->name();
   for (int i = 0 ; i < nationCombo->count(); i++)
   {
     if (nationCombo->itemText(i) == \
m_nationsNames[((GameLogic::Player*)player)->getNation()->name()]) @@ -203,14 +203,16 \
@@  break;
     }
   }
+  slotNameEdited(nameLineEdit->text());
 }
 
 void KPlayerSetupWidget::slotNationChanged()
 {
-//   kDebug() << "KPlayerSetupDialog::slotNationChanged " << \
nationCombo->currentText(); +  kDebug() << "KPlayerSetupWidget::slotNationChanged " \
<< nationCombo->currentText();  GameLogic::Nationality* nation = \
m_onu->nationNamed(m_nationsNames[nationCombo->currentText()]);  //   kDebug() << \
"nation = " << nation;  nameLineEdit-> setText(nation->leaderName());
+  slotNameEdited(nameLineEdit->text());
 }
 
 bool KPlayerSetupWidget::isAvailable(QString nationName)
--- trunk/KDE/kdegames/ksirk/ksirk/Dialogs/newGameSummaryWidget.cpp #1029853:1029854
@@ -74,10 +74,11 @@
     playersTable->setItem(row, 3, netItem);
     row++;
   }
-//   if (game->newGameSetup()->nbLocalPlayers() < game->newGameSetup()->nbPlayers())
-//   {
-//     finishButton->setEnabled(false);
-//   }
+  if (game->automaton()->networkGameType() != GameLogic::GameAutomaton::None)
+  {
+    finishButton->setEnabled(false);
+    previousButton->setEnabled(false);
+  }
 }
 
 }
--- trunk/KDE/kdegames/ksirk/ksirk/GameLogic/gameautomaton.cpp #1029853:1029854
@@ -145,6 +145,7 @@
 "AttackAuto", // 313
 "DisplayRecycleDetails", // 314
 "CurrentPlayerPlayed", // 315
+"NewGameSetupMsg", // 316
 };
 
 #define KSIRK_DEFAULT_PORT 20000
@@ -164,8 +165,7 @@
     m_defenseAuto(false),
     m_port(KSIRK_DEFAULT_PORT),
     m_startingGame(false),
-    m_pixmapCache("GameAutomaton"),
-    m_newGameSetup(0)
+    m_pixmapCache("GameAutomaton")
 {
   m_skin = "skins/default";
   //   kDebug() << endl;
@@ -1522,7 +1522,7 @@
 
 void GameAutomaton::changePlayerName(Player* player)
 {
-//   kDebug() << endl;
+//   kDebug();
   
   QMap< QString, QString > nations = m_game->nationsList();
   PlayersArray::iterator it = playerList()->begin();
@@ -1554,8 +1554,6 @@
       mes = i18n("Player number %1, what's your name?", 1);
       bool network = false;
       QString password;
-//       KPlayerSetupDialog(this, m_game->theWorld(), 1, nomEntre, network, \
                password, computer, nations, nationName, m_game).exec();
-      //     kDebug() << "After KPlayerSetupDialog. name: " << nomEntre << endl;
       if (nomEntre.isEmpty())
       {
         mes = i18n("Error - Player %1, you have to choose a name.", 1);
@@ -1615,7 +1613,6 @@
   KMessageBox::information(m_game, i18n("Please choose another nation"), i18n("KsirK \
- Nation already used!"));  bool network = false;
   QString password = false;
-//   KPlayerSetupDialog(this, m_game->theWorld(), 1, nomEntre, network, password, \
computer, nations, nationName, m_game).exec();  QByteArray buffer;
   QDataStream stream(&buffer, QIODevice::WriteOnly);
   stream << player->name() << nationName;
@@ -1665,7 +1662,7 @@
 
 void GameAutomaton::slotClientJoinedGame(quint32 clientid, KGame* /*me*/)
 {
-  kDebug() << clientid << endl;
+  kDebug() << clientid;
   if (isAdmin() && clientid!=gameId())
   {
     QByteArray buffernbp;
@@ -1673,6 +1670,11 @@
     streamnbp << m_nbPlayers;
     sendMessage(buffernbp,NbPlayers,clientid);
     
+    QByteArray bufferngs;
+    QDataStream streamngs(&bufferngs, QIODevice::WriteOnly);
+    streamngs << *m_game->newGameSetup();
+    sendMessage(bufferngs,NewGameSetupMsg,clientid);
+    
     QByteArray buffer;
     QDataStream stream(&buffer, QIODevice::WriteOnly);
     if (m_game->waitedPlayers().empty())
@@ -2048,6 +2050,7 @@
   quint32 availArmies;
   quint32 elemType;
   quint32 nb;
+  quint32 newGameSetupNbPlayers;
   
   if (currentPlayer() != 0 && currentPlayer()->getFlag() != 0)
   {
@@ -2590,6 +2593,10 @@
   case ResetPlayersDistributionData:
     resetPlayersDistributionData();
     break;
+  case NewGameSetupMsg:
+    kDebug() << "Got message NewGameSetupMsg";
+    stream >> *m_game->newGameSetup();
+    break;
   default: ;
   }
 }
--- trunk/KDE/kdegames/ksirk/ksirk/GameLogic/gameautomaton.h #1029853:1029854
@@ -38,8 +38,6 @@
 
 #include <iostream>
 
-class NewGameSetup;
-
 namespace Ksirk {
 class KGameWindow;
 namespace GameLogic {
@@ -111,6 +109,7 @@
     AttackAuto, // 313
     DisplayRecycleDetails, // 314
     CurrentPlayerPlayed, // 315
+    NewGameSetupMsg, // 316
     UnusedLastMessageId
 };
 
@@ -593,8 +592,6 @@
   QMap<QString, KGameSvgDocument> m_svgDoms;
 
   NetworkGameType m_netGameType;
-
-  NewGameSetup* m_newGameSetup;
 };
 
 QDataStream& operator>>(QDataStream& s, GameAutomaton::GameState& state);
--- trunk/KDE/kdegames/ksirk/ksirk/decoratedgameframe.cpp #1029853:1029854
@@ -62,7 +62,7 @@
   initMoveMenu();
 
   // redirect the mouse move event to the main windows
-  connect(this, SIGNAL(mouseMoveEventReceived(QMouseEvent *)), parent, \
SLOT(mouseMoveEvent(QMouseEvent *))); +  connect(this, \
SIGNAL(mouseMoveEventReceived(QMouseEvent *)), automaton->game(), \
SLOT(mouseMoveEvent(QMouseEvent *)));  }
 
 DecoratedGameFrame::~DecoratedGameFrame()
--- trunk/KDE/kdegames/ksirk/ksirk/kgamewin.cpp #1029853:1029854
@@ -1353,16 +1353,6 @@
   m_frame->setFocus();
 }
 
-bool KGameWindow::setupPlayers(GameAutomaton::NetworkGameType socket)
-{
-  kDebug();
-  
-  // Number of players
-  m_newPlayersNumber = 0;
-  m_automaton->setupPlayersNumberAndSkin(socket);
-  return false;
-}
-
 bool KGameWindow::finishSetupPlayers()
 {
   kDebug();
@@ -1389,22 +1379,6 @@
   m_centralWidget->setCurrentIndex(NEWPLAYER_INDEX);
   // Players names
   QString mes = "";
-//   for (unsigned int i = 0; 
-//   i < m_newPlayersNumber - m_automaton->networkPlayersNumber();
-//        i++)
-//   {
-//     bool computer;
-//     bool network = false;
-//   
-//     // After closing KPlayerSetupDialog, it is guaranteed, that nomEntre is a 
-//     // valid username (not empty, unique)
-//     KPlayerSetupDialog(m_automaton, m_theWorld, i+1, nomEntre, network,
-//                         password, computer, nations, nationName, this).exec();
-//     kDebug() << "Creating player " << nomEntre << "(computer: "
-//              << computer << "): " << nationName;
-//     addPlayer(nomEntre, nbAvailArmies, 0, nationName, computer);
-//     nations.remove(nationName);
-//   }
   if (m_newGameSetup->networkGameType() != GameAutomaton::None)
   {
     m_frame->setArenaOptionEnabled(false);
@@ -2722,11 +2696,9 @@
         (KMessageBox::warningContinueCancel(this,i18n("Do you really want to end \
your current game and start a new one?"),i18n("New game \
confirmation"),KStandardGuiItem::yes()) == KMessageBox::Continue ) )  
   {
-/*    m_automaton->setGameStatus(KGame::End);
-    m_automaton->state(GameLogic::GameAutomaton::INIT);
-    m_automaton->savedState(GameLogic::GameAutomaton::INVALID);*/
-    setupPlayers(socket);
-//     return (setupPlayers());
+    m_newGameSetup->clear();
+    m_newPlayersNumber = 0;
+    m_automaton->setupPlayersNumberAndSkin(socket);
   }
   return false;
 }
--- trunk/KDE/kdegames/ksirk/ksirk/kgamewin.h #1029853:1029854
@@ -57,6 +57,7 @@
 
 class KsirkJabberGameWidget;
 class mainMenu;
+class NewGameSetup;
 
 class QAction;
 class KGameChat;
@@ -243,11 +244,6 @@
 
 /************** END OF METHODS DEFINED IN gestionSprites.cpp *****************/
 
-  /**
-    * Prepares the players for the game with human interaction. Return true
-    * if successful or false if failure or cancel
-    */
-  bool setupPlayers(GameLogic::GameAutomaton::NetworkGameType socket);
   bool setupOnePlayer();
   bool setupOneWaitedPlayer();
   bool createWaitedPlayer(quint32 waitedPlayerId);
--- trunk/KDE/kdegames/ksirk/ksirk/kgamewinslots.cpp #1029853:1029854
@@ -648,8 +648,6 @@
   
   m_newPlayersNumber = m_newGameSetup->players().size();
   m_automaton->connectToServ();
-//   delete m_newGameSetup;
-//   m_newGameSetup = new NewGameSetup(m_automaton);
 }
 
 void KGameWindow::slotShowGoal()
--- trunk/KDE/kdegames/ksirk/ksirk/newgamesetup.cpp #1029853:1029854
@@ -50,3 +50,80 @@
   }
   return !found;
 }
+
+void NewGameSetup::clear()
+{
+  kDebug();
+  m_players.clear();
+}
+
+QDataStream& operator<<(QDataStream& stream, const NewGameSetup& ngs)
+{
+  kDebug();
+  stream << ngs.skin();
+
+  stream << (quint32)ngs.players().size();
+  foreach (Ksirk::NewPlayerData* newPlayer, ngs.players())
+  {
+    stream << newPlayer->name();
+    stream << newPlayer->nation();
+    stream << newPlayer->password();
+    stream << (quint32)newPlayer->computer();
+    stream << (quint32)newPlayer->network();
+    
+  }
+  stream << (quint32)ngs.nbPlayers();
+  stream << (quint32)ngs.nbNetworkPlayers();
+  stream << (quint32)ngs.useGoals();
+  stream << (quint32)ngs.networkGameType();
+  stream << (quint32)ngs.tcpPort();
+  stream << ngs.host();
+  
+  return stream;
+}
+
+QDataStream& operator>>(QDataStream& stream, NewGameSetup& ngs)
+{
+  kDebug();
+  QString skin;
+  stream >> skin;
+  ngs.setSkin(skin);
+  quint32 players;
+  stream >> players;
+  kDebug() << "nb players" << players;
+  for (int i = 0; i < players; i++)
+  {
+    QString name;
+    stream >> name;
+    QString nation;
+    stream >> nation;
+    QString password;
+    stream >> password;
+    quint32 computer;
+    stream >> computer;
+    quint32 network;
+    stream >> network;
+    kDebug() << "player" << name << nation << password << computer << network;
+    Ksirk::NewPlayerData* newPlayer = new \
NewPlayerData(name,nation,password,computer,network); +    \
ngs.players().push_back(newPlayer); +  }
+  quint32 nbPlayers;
+  stream >> nbPlayers;
+  ngs.setNbPlayers(nbPlayers);
+  quint32 nbNetworkPlayers;
+  stream >> nbNetworkPlayers;
+  ngs.setNbNetworkPlayers(nbNetworkPlayers);
+  quint32 useGoals;
+  stream >> useGoals;
+  ngs.setUseGoals(useGoals);
+  quint32 networkGameType;
+  stream >> networkGameType;
+  ngs.setNetworkGameType((GameLogic::GameAutomaton::NetworkGameType)networkGameType);
 +  quint32 tcpPort;
+  stream >> tcpPort;
+  ngs.setTcpPort(tcpPort);
+  QString host;
+  stream >> host;
+  ngs.setHost(host);
+  return stream;
+}
--- trunk/KDE/kdegames/ksirk/ksirk/newgamesetup.h #1029853:1029854
@@ -43,9 +43,6 @@
 
   virtual ~NewGameSetup() {}
   
-//   void init(const QString& skin,
-//             bool networkGame);
-
   inline Ksirk::GameLogic::GameAutomaton* automaton() {return m_automaton;}
   inline const QString& skin() const {return m_skin;}
   inline void setSkin(const QString& skin) {m_skin= skin;}
@@ -82,6 +79,8 @@
 
   bool addPlayer(Ksirk::NewPlayerData* player);
 
+  void clear();
+  
 private:
   Ksirk::GameLogic::GameAutomaton* m_automaton;
   QString m_skin;
@@ -96,4 +95,7 @@
   QString m_host;
 };
 
+QDataStream& operator<<(QDataStream& stream, const NewGameSetup& ngs);
+QDataStream& operator>>(QDataStream& stream, NewGameSetup& ngs);
+
 #endif // NEWGAMESETUP_H


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

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