diff -r 190d6bb075c5 -r ed9676dc8cb4 QTfrontend/game.cpp --- 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 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 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); } }