# HG changeset patch # User unc0rr # Date 1168727528 0 # Node ID f4c109c82a0c9a1604f6dc0504cb1f1967809155 # Parent ea947f2c3d2fe83f20493712c61314181ba130a8 Don't show game stats in case of interrupted by command '/quit' game diff -r ea947f2c3d2f -r f4c109c82a0c QTfrontend/game.cpp --- a/QTfrontend/game.cpp Sat Jan 13 22:12:30 2007 +0000 +++ b/QTfrontend/game.cpp Sat Jan 13 22:32:08 2007 +0000 @@ -44,7 +44,7 @@ void HWGame::onClientDisconnect() { SaveDemo(cfgdir->absolutePath() + "/Demos/LastRound.hwd_" + cProtoVer); - emit GameStateChanged(gsFinished); + emit GameStateChanged(gsStopped); } void HWGame::SendTeamConfig(int index) @@ -157,6 +157,14 @@ emit GameStats(msg.at(2), QString::fromUtf8(msg.mid(3))); break; } + case 'Q': { + emit GameStateChanged(gsInterrupted); + break; + } + case 'q': { + emit GameStateChanged(gsFinished); + break; + } default: { if (gameType == gtNet) { diff -r ea947f2c3d2f -r f4c109c82a0c QTfrontend/game.h --- a/QTfrontend/game.h Sat Jan 13 22:12:30 2007 +0000 +++ b/QTfrontend/game.h Sat Jan 13 22:32:08 2007 +0000 @@ -34,7 +34,9 @@ enum GameState { gsNotStarted = 0, gsStarted = 1, - gsFinished = 2 + gsInterrupted = 2, + gsFinished = 3, + gsStopped = 4 }; diff -r ea947f2c3d2f -r f4c109c82a0c QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Sat Jan 13 22:12:30 2007 +0000 +++ b/QTfrontend/hwform.cpp Sat Jan 13 22:32:08 2007 +0000 @@ -159,7 +159,7 @@ if (id == ID_PAGE_MULTIPLAYER || id == ID_PAGE_NETCFG) { QStringList tmNames=config->GetTeamsList(); TeamSelWidget* curTeamSelWidget; - id == ID_PAGE_MULTIPLAYER ? curTeamSelWidget=ui.pageMultiplayer->teamsSelect : + id == ID_PAGE_MULTIPLAYER ? curTeamSelWidget=ui.pageMultiplayer->teamsSelect : curTeamSelWidget=ui.pageNetGame->pNetTeamsWidget; QList teamsList; for(QStringList::iterator it=tmNames.begin(); it!=tmNames.end(); it++) { @@ -337,11 +337,18 @@ void HWForm::GameStateChanged(GameState gameState) { - if (gameState == gsStarted) - { - GoToPage(ID_PAGE_GAMESTATS); - ui.pageGameStats->labelGameStats->setText(""); + switch(gameState) { + case gsStarted: { + ui.pageGameStats->labelGameStats->setText(""); + break; + } + case gsFinished: { + GoToPage(ID_PAGE_GAMESTATS); + break; + } + default: ; } + } void HWForm::AddStatText(const QString & msg) diff -r ea947f2c3d2f -r f4c109c82a0c hedgewars/CCHandlers.inc --- a/hedgewars/CCHandlers.inc Sat Jan 13 22:12:30 2007 +0000 +++ b/hedgewars/CCHandlers.inc Sat Jan 13 22:32:08 2007 +0000 @@ -18,7 +18,7 @@ function CheckNoTeamOrHH: boolean; begin -Result:= (CurrentTeam=nil) or (CurrentTeam.Hedgehogs[CurrentTeam.CurrHedgehog].Gear = nil); +Result:= (CurrentTeam = nil) or (CurrentTeam.Hedgehogs[CurrentTeam.CurrHedgehog].Gear = nil); {$IFDEF DEBUGFILE} if Result then if CurrentTeam = nil then AddFileLog('CONSOLE: CurTeam = nil') @@ -28,6 +28,7 @@ //////////////////////////////////////////////////////////////////////////////// procedure chQuit(var s: shortstring); begin +SendIPC('Q'); GameState:= gsExit end; diff -r ea947f2c3d2f -r f4c109c82a0c hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sat Jan 13 22:12:30 2007 +0000 +++ b/hedgewars/GSHandlers.inc Sat Jan 13 22:32:08 2007 +0000 @@ -344,6 +344,7 @@ if Gear.Timer = 0 then begin SendIPC('N'); + SendIPC('q'); GameState:= gsExit end end;