1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

New/load game last selection storing. Fixes #716

This commit is contained in:
dydzio 2016-11-02 19:59:50 +01:00
parent f538aae95e
commit 9de5b9f02b

View File

@ -1088,8 +1088,8 @@ void SelectionTab::filter( int size, bool selectFirst )
{
slider->moveTo(0);
onSelect(curItems[0]);
selectAbs(0);
}
selectAbs(0);
}
else
{
@ -1304,16 +1304,24 @@ SelectionTab::SelectionTab(CMenuScreen::EState Type, const std::function<void(CM
switch(tabType)
{
case CMenuScreen::newGame:
selectFName("Maps/Arrogance");
logGlobal->error(settings["session"]["lastMap"].String());
if(settings["session"]["lastMap"].isNull())
selectFName("Maps/Arrogance");
else
selectFName(settings["session"]["lastMap"].String());
break;
case CMenuScreen::loadGame:
case CMenuScreen::campaignList:
select(0);
break;
case CMenuScreen::loadGame:
case CMenuScreen::saveGame:;
if(saveGameName.empty())
{
txt->setText("NEWGAME");
if(tabType == CMenuScreen::saveGame)
txt->setText("NEWGAME");
else
select(0);
}
else
{
@ -1371,6 +1379,12 @@ void SelectionTab::select( int position )
else if(position >= positions)
slider->moveBy(position - positions + 1);
if(tabType == CMenuScreen::newGame)
{
Settings lastMap = settings.write["session"]["lastMap"];
lastMap->String() = getSelectedMapInfo()->fileURI;
}
if(txt)
{
auto filename = *CResourceHandler::get("local")->getResourceName(
@ -1418,7 +1432,7 @@ void SelectionTab::printMaps(SDL_Surface *to)
{
CMapInfo *currentItem = curItems[elemIdx];
if (elemIdx == selectionPos)
if(elemIdx == selectionPos)
itemColor=Colors::YELLOW;
else
itemColor=Colors::WHITE;