1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-12 02:28:11 +02:00

Compile fix for MSVC.

Fixed crash when no maps are present.
Fixed crash on opening the loading screen.
Fixed crash on starting the turn when Games/ subfolder is not present.
This commit is contained in:
Michał W. Urbańczyk 2012-12-19 18:19:09 +00:00
parent b5ebf443fc
commit 27f8408c52
3 changed files with 10 additions and 5 deletions

View File

@ -1579,10 +1579,14 @@ int CPlayerInterface::getLastIndex( std::string namePrefix)
using namespace boost::filesystem;
using namespace boost::algorithm;
path gamesDir = GVCMIDirs.UserPath + "/Games";
std::map<std::time_t, int> dates; //save number => datestamp
directory_iterator enddir;
for (directory_iterator dir(GVCMIDirs.UserPath + "/Games"); dir!=enddir; dir++)
if(!exists(gamesDir))
create_directory(gamesDir);
for (directory_iterator dir(gamesDir); dir!=enddir; dir++)
{
if(is_regular(dir->status()))
{

View File

@ -801,13 +801,14 @@ void CSelectionScreen::changeSelection(const CMapInfo * to)
if(screenType == CMenuScreen::newGame)
{
sInfo.createRandomMap = to->isRandomMap;
if(to->isRandomMap)
if(to && to->isRandomMap)
{
sInfo.createRandomMap = true;
sInfo.mapGenOptions = std::shared_ptr<CMapGenOptions>(new CMapGenOptions(randMapTab->getMapGenOptions()));
}
else
{
sInfo.createRandomMap = false;
sInfo.mapGenOptions.reset();
}
}
@ -4025,7 +4026,7 @@ void CCampaignScreen::showAll(SDL_Surface *to)
void CGPreGame::showLoadingScreen(boost::function<void()> loader)
{
if (GH.listInt.front() == CGP) //pregame active
if (GH.listInt.size() && GH.listInt.front() == CGP) //pregame active
CGP->removeFromGui();
GH.pushInt(new CLoadingScreen(loader));
}

View File

@ -2,7 +2,7 @@
#include "CIntObject.h"
#include "CGuiHandler.h"
#include "SDL_Extensions.h"
#include "CMessage.h"
#include "../CMessage.h"
CIntObject::CIntObject(int used_, Point pos_):
parent_m(nullptr),