diff -r 7493dde4ef51 -r 505307b9735d QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Wed Apr 10 22:59:40 2013 +0400 +++ b/QTfrontend/hwform.cpp Wed Apr 10 22:52:38 2013 +0200 @@ -286,6 +286,7 @@ connect(ui.pageInfo->BtnSnapshots, SIGNAL(clicked()), this, SLOT(OpenSnapshotFolder())); connect(ui.pageGameStats, SIGNAL(saveDemoRequested()), this, SLOT(saveDemoWithCustomName())); + connect(ui.pageGameStats, SIGNAL(restartGameRequested()), this, SLOT(restartGame())); connect(ui.pageSinglePlayer->BtnSimpleGamePage, SIGNAL(clicked()), this, SLOT(SimpleGame())); connect(ui.pageSinglePlayer->BtnTrainPage, SIGNAL(clicked()), pageSwitchMapper, SLOT(map())); @@ -674,6 +675,21 @@ } } + if (id == ID_PAGE_GAMESTATS) + { + switch(lastGameType) { + case gtLocal: + case gtQLocal: + case gtTraining: + case gtCampaign: + ui.pageGameStats->restartBtnVisible(true); + break; + default: + ui.pageGameStats->restartBtnVisible(false); + break; + } + } + if (id == ID_PAGE_MAIN) { ui.pageOptions->setTeamOptionsEnabled(true); @@ -2014,6 +2030,31 @@ } } +void HWForm::restartGame() +{ + // get rid off old game stats page + if(ui.Pages->currentIndex() == ID_PAGE_GAMESTATS) + GoBack(); + + CreateGame(lastGameCfg, lastGameTeamSel, lastGameAmmo); + + switch(lastGameType) { + case gtTraining: + game->StartTraining(lastGameStartArgs.at(0).toString()); + break; + case gtQLocal: + game->StartQuick(); + break; + case gtCampaign: + game->StartCampaign(lastGameStartArgs.at(0).toString(), lastGameStartArgs.at(1).toString(), lastGameStartArgs.at(2).toString()); + break; + case gtLocal: + game->StartLocal(); + break; + default: + break; + } +} void HWForm::ShowErrorMessage(const QString & msg) {