mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-15 00:05:02 +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:
@ -1579,10 +1579,14 @@ int CPlayerInterface::getLastIndex( std::string namePrefix)
|
|||||||
using namespace boost::filesystem;
|
using namespace boost::filesystem;
|
||||||
using namespace boost::algorithm;
|
using namespace boost::algorithm;
|
||||||
|
|
||||||
|
path gamesDir = GVCMIDirs.UserPath + "/Games";
|
||||||
std::map<std::time_t, int> dates; //save number => datestamp
|
std::map<std::time_t, int> dates; //save number => datestamp
|
||||||
|
|
||||||
directory_iterator enddir;
|
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()))
|
if(is_regular(dir->status()))
|
||||||
{
|
{
|
||||||
|
@ -801,13 +801,14 @@ void CSelectionScreen::changeSelection(const CMapInfo * to)
|
|||||||
|
|
||||||
if(screenType == CMenuScreen::newGame)
|
if(screenType == CMenuScreen::newGame)
|
||||||
{
|
{
|
||||||
sInfo.createRandomMap = to->isRandomMap;
|
if(to && to->isRandomMap)
|
||||||
if(to->isRandomMap)
|
|
||||||
{
|
{
|
||||||
|
sInfo.createRandomMap = true;
|
||||||
sInfo.mapGenOptions = std::shared_ptr<CMapGenOptions>(new CMapGenOptions(randMapTab->getMapGenOptions()));
|
sInfo.mapGenOptions = std::shared_ptr<CMapGenOptions>(new CMapGenOptions(randMapTab->getMapGenOptions()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
sInfo.createRandomMap = false;
|
||||||
sInfo.mapGenOptions.reset();
|
sInfo.mapGenOptions.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4025,7 +4026,7 @@ void CCampaignScreen::showAll(SDL_Surface *to)
|
|||||||
|
|
||||||
void CGPreGame::showLoadingScreen(boost::function<void()> loader)
|
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();
|
CGP->removeFromGui();
|
||||||
GH.pushInt(new CLoadingScreen(loader));
|
GH.pushInt(new CLoadingScreen(loader));
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "CIntObject.h"
|
#include "CIntObject.h"
|
||||||
#include "CGuiHandler.h"
|
#include "CGuiHandler.h"
|
||||||
#include "SDL_Extensions.h"
|
#include "SDL_Extensions.h"
|
||||||
#include "CMessage.h"
|
#include "../CMessage.h"
|
||||||
|
|
||||||
CIntObject::CIntObject(int used_, Point pos_):
|
CIntObject::CIntObject(int used_, Point pos_):
|
||||||
parent_m(nullptr),
|
parent_m(nullptr),
|
||||||
|
Reference in New Issue
Block a user