mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2025-01-10 19:09:45 +01:00
Add editor saving/loading error messages
Previously, the editor would always say it saved or loaded a level, even if it was not successful. For example, because a file to load does not exist, a file to save has illegal characters in its name or the name is too long to be stored. Now failure is reported. Also, when quitting the editor and saving before quitting is unsuccessful, the editor will abort quitting.
This commit is contained in:
parent
2ef6a056aa
commit
ae45391ec0
2 changed files with 27 additions and 11 deletions
|
@ -1644,7 +1644,7 @@ int editorclass::findwarptoken(int t)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void editorclass::load(std::string& _path)
|
bool editorclass::load(std::string& _path)
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
|
|
||||||
|
@ -1694,7 +1694,7 @@ void editorclass::load(std::string& _path)
|
||||||
if (!FILESYSTEM_loadTiXmlDocument(_path.c_str(), &doc))
|
if (!FILESYSTEM_loadTiXmlDocument(_path.c_str(), &doc))
|
||||||
{
|
{
|
||||||
printf("No level %s to load :(\n", _path.c_str());
|
printf("No level %s to load :(\n", _path.c_str());
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1905,9 +1905,11 @@ void editorclass::load(std::string& _path)
|
||||||
|
|
||||||
gethooks();
|
gethooks();
|
||||||
version=2;
|
version=2;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void editorclass::save(std::string& _path)
|
bool editorclass::save(std::string& _path)
|
||||||
{
|
{
|
||||||
TiXmlDocument doc;
|
TiXmlDocument doc;
|
||||||
TiXmlElement* msg;
|
TiXmlElement* msg;
|
||||||
|
@ -2058,7 +2060,7 @@ void editorclass::save(std::string& _path)
|
||||||
msg->LinkEndChild( new TiXmlText( scriptString.c_str() ));
|
msg->LinkEndChild( new TiXmlText( scriptString.c_str() ));
|
||||||
data->LinkEndChild( msg );
|
data->LinkEndChild( msg );
|
||||||
|
|
||||||
FILESYSTEM_saveTiXmlDocument(("levels/" + _path).c_str(), &doc);
|
return FILESYSTEM_saveTiXmlDocument(("levels/" + _path).c_str(), &doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4048,15 +4050,22 @@ void editorinput()
|
||||||
else if(ed.savemod)
|
else if(ed.savemod)
|
||||||
{
|
{
|
||||||
std::string savestring=ed.filename+".vvvvvv";
|
std::string savestring=ed.filename+".vvvvvv";
|
||||||
ed.save(savestring);
|
bool success = ed.save(savestring);
|
||||||
ed.note="[ Saved map: " + ed.filename+ ".vvvvvv]";
|
if (success)
|
||||||
|
{
|
||||||
|
ed.note="[ Saved map: " + ed.filename+ ".vvvvvv]";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ed.note="[ ERROR: Could not save level! ]";
|
||||||
|
}
|
||||||
ed.notedelay=45;
|
ed.notedelay=45;
|
||||||
ed.savemod=false;
|
ed.savemod=false;
|
||||||
|
|
||||||
ed.shiftmenu=false;
|
ed.shiftmenu=false;
|
||||||
ed.shiftkey=false;
|
ed.shiftkey=false;
|
||||||
|
|
||||||
if(ed.saveandquit)
|
if(ed.saveandquit && success)
|
||||||
{
|
{
|
||||||
//quit editor
|
//quit editor
|
||||||
graphics.fademode = 2;
|
graphics.fademode = 2;
|
||||||
|
@ -4065,8 +4074,15 @@ void editorinput()
|
||||||
else if(ed.loadmod)
|
else if(ed.loadmod)
|
||||||
{
|
{
|
||||||
std::string loadstring=ed.filename+".vvvvvv";
|
std::string loadstring=ed.filename+".vvvvvv";
|
||||||
ed.load(loadstring);
|
bool success = ed.load(loadstring);
|
||||||
ed.note="[ Loaded map: " + ed.filename+ ".vvvvvv]";
|
if (success)
|
||||||
|
{
|
||||||
|
ed.note="[ Loaded map: " + ed.filename+ ".vvvvvv]";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ed.note="[ ERROR: Could not load level ]";
|
||||||
|
}
|
||||||
ed.notedelay=45;
|
ed.notedelay=45;
|
||||||
ed.loadmod=false;
|
ed.loadmod=false;
|
||||||
|
|
||||||
|
|
|
@ -123,8 +123,8 @@ class editorclass{
|
||||||
|
|
||||||
int backmatch(int x, int y);
|
int backmatch(int x, int y);
|
||||||
|
|
||||||
void load(std::string& _path);
|
bool load(std::string& _path);
|
||||||
void save(std::string& _path);
|
bool save(std::string& _path);
|
||||||
void generatecustomminimap();
|
void generatecustomminimap();
|
||||||
int edgetile(int x, int y);
|
int edgetile(int x, int y);
|
||||||
int warpzoneedgetile(int x, int y);
|
int warpzoneedgetile(int x, int y);
|
||||||
|
|
Loading…
Reference in a new issue