1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-29 00:41:38 +02:00

Implemented #714 — restart functionality, including quick restart tweak (bound to CTRL+R).

This commit is contained in:
Michał W. Urbańczyk
2012-04-08 03:06:27 +00:00
parent d6223dd137
commit d9064f4f7d
5 changed files with 34 additions and 5 deletions

View File

@ -709,8 +709,7 @@ static void listenForEvents()
}
case RETURN_TO_MAIN_MENU:
client->endGame();
delete client;
client = NULL;
vstd::clear_pointer(client);
delete CGI->dobjinfo.get();
const_cast<CGameInfo*>(CGI)->dobjinfo = new CDefObjInfoHandler;
@ -723,6 +722,19 @@ static void listenForEvents()
case STOP_CLIENT:
client->endGame(false);
break;
case RESTART_GAME:
{
StartInfo si = *client->getStartInfo();
client->endGame();
vstd::clear_pointer(client);
delete CGI->dobjinfo.get();
const_cast<CGameInfo*>(CGI)->dobjinfo = new CDefObjInfoHandler;
const_cast<CGameInfo*>(CGI)->dobjinfo->load();
startGame(&si);
}
break;
default:
tlog1 << "Error: unknown user event. Code " << ev->user.code << std::endl;
assert(0);