QTfrontend/game.cpp
changeset 5906 ed9676dc8cb4
parent 5865 35387d27f73a
child 6015 daffc14a518a
--- a/QTfrontend/game.cpp	Wed Sep 14 22:27:22 2011 +0200
+++ b/QTfrontend/game.cpp	Wed Sep 14 22:39:39 2011 +0200
@@ -53,7 +53,14 @@
 void HWGame::onClientDisconnect()
 {
     switch (gameType) {
-        case gtDemo: break;
+        case gtSave:
+            if (gameState == gsInterrupted || gameState == gsHalted)
+                emit HaveRecord(false, demo);
+            else if (gameState == gsFinished)
+                 emit HaveRecord(true, demo);
+            break;
+        case gtDemo:
+            break;
         case gtNet:
             emit HaveRecord(true, demo);
             break;
@@ -84,8 +91,7 @@
 
     if (m_pTeamSelWidget)
     {
-        QListIterator<HWTeam> it(m_pTeamSelWidget->getPlayingTeams());
-        while(it.hasNext())
+        foreach(HWTeam team, m_pTeamSelWidget->getPlayingTeams())
         {
             HWProto::addStringToBuffer(buf, QString("eammloadt %1").arg(ammostr.mid(0, cAmmoNumber)));
             HWProto::addStringToBuffer(buf, QString("eammprob %1").arg(ammostr.mid(cAmmoNumber, cAmmoNumber)));
@@ -93,7 +99,7 @@
             HWProto::addStringToBuffer(buf, QString("eammreinf %1").arg(ammostr.mid(3 * cAmmoNumber, cAmmoNumber)));
             if(!gamecfg->schemeData(21).toBool()) HWProto::addStringToBuffer(buf, QString("eammstore"));
             HWProto::addStringListToBuffer(buf,
-                it.next().TeamGameConfig(gamecfg->getInitHealth()));
+                team.TeamGameConfig(gamecfg->getInitHealth()));
             ;
         }
     }
@@ -187,6 +193,7 @@
                     SendQuickConfig();
                     break;
                 }
+                case gtSave:
                 case gtDemo: break;
                 case gtNet: {
                     SendNetConfig();
@@ -320,9 +327,9 @@
     TeamCount++;
 }
 
-void HWGame::PlayDemo(const QString & demofilename)
+void HWGame::PlayDemo(const QString & demofilename, bool isSave)
 {
-    gameType = gtDemo;
+    gameType = isSave ? gtSave : gtDemo;
     QFile demofile(demofilename);
     if (!demofile.open(QIODevice::ReadOnly))
     {
@@ -392,9 +399,8 @@
     if (m_pTeamSelWidget)
     {
         QByteArray buf;
-        QListIterator<HWTeam> it(m_pTeamSelWidget->getPlayingTeams());
-        while(it.hasNext())
-            HWProto::addStringToBuffer(buf, QString("eteamgone %1").arg(it.next().TeamName));
+        foreach(HWTeam team, m_pTeamSelWidget->getPlayingTeams())
+            HWProto::addStringToBuffer(buf, QString("eteamgone %1").arg(team.TeamName));
         RawSendIPC(buf);
     }
 }