give an error when a local save isn't saved properly, instead of exiting and pretending it worked
This commit is contained in:
parent
c2a9b5c6f6
commit
f4432b4759
@ -515,8 +515,9 @@ int Client::MakeDirectory(const char * dirName)
|
||||
#endif
|
||||
}
|
||||
|
||||
void Client::WriteFile(std::vector<unsigned char> fileData, std::string filename)
|
||||
bool Client::WriteFile(std::vector<unsigned char> fileData, std::string filename)
|
||||
{
|
||||
bool saveError = false;
|
||||
try
|
||||
{
|
||||
std::ofstream fileStream;
|
||||
@ -526,12 +527,15 @@ void Client::WriteFile(std::vector<unsigned char> fileData, std::string filename
|
||||
fileStream.write((char*)&fileData[0], fileData.size());
|
||||
fileStream.close();
|
||||
}
|
||||
else
|
||||
saveError = true;
|
||||
}
|
||||
catch (std::exception & e)
|
||||
{
|
||||
std::cerr << "WriteFile:" << e.what() << std::endl;
|
||||
throw;
|
||||
saveError = true;
|
||||
}
|
||||
return saveError;
|
||||
}
|
||||
|
||||
bool Client::FileExists(std::string filename)
|
||||
@ -554,8 +558,9 @@ bool Client::FileExists(std::string filename)
|
||||
return exists;
|
||||
}
|
||||
|
||||
void Client::WriteFile(std::vector<char> fileData, std::string filename)
|
||||
bool Client::WriteFile(std::vector<char> fileData, std::string filename)
|
||||
{
|
||||
bool saveError = false;
|
||||
try
|
||||
{
|
||||
std::ofstream fileStream;
|
||||
@ -565,12 +570,15 @@ void Client::WriteFile(std::vector<char> fileData, std::string filename)
|
||||
fileStream.write(&fileData[0], fileData.size());
|
||||
fileStream.close();
|
||||
}
|
||||
else
|
||||
saveError = true;
|
||||
}
|
||||
catch (std::exception & e)
|
||||
{
|
||||
std::cerr << "WriteFile:" << e.what() << std::endl;
|
||||
throw;
|
||||
saveError = true;
|
||||
}
|
||||
return saveError;
|
||||
}
|
||||
|
||||
std::vector<unsigned char> Client::ReadFile(std::string filename)
|
||||
|
@ -111,8 +111,8 @@ public:
|
||||
void SetProxy(std::string proxy);
|
||||
|
||||
int MakeDirectory(const char * dirname);
|
||||
void WriteFile(std::vector<unsigned char> fileData, std::string filename);
|
||||
void WriteFile(std::vector<char> fileData, std::string filename);
|
||||
bool WriteFile(std::vector<unsigned char> fileData, std::string filename);
|
||||
bool WriteFile(std::vector<char> fileData, std::string filename);
|
||||
bool FileExists(std::string filename);
|
||||
|
||||
void AddListener(ClientListener * listener);
|
||||
|
@ -1059,7 +1059,8 @@ void GameController::OpenLocalSaveWindow(bool asCurrent)
|
||||
else if (gameModel->GetSaveFile())
|
||||
{
|
||||
Client::Ref().MakeDirectory(LOCAL_SAVE_DIR);
|
||||
Client::Ref().WriteFile(gameSave->Serialise(), gameModel->GetSaveFile()->GetName());
|
||||
if (Client::Ref().WriteFile(gameSave->Serialise(), gameModel->GetSaveFile()->GetName()))
|
||||
new ErrorMessage("Error", "Unable to write save file.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,6 @@ void LocalSaveActivity::Save()
|
||||
if (result == ConfirmPrompt::ResultOkay)
|
||||
{
|
||||
a->saveWrite(filename);
|
||||
a->Exit();
|
||||
}
|
||||
}
|
||||
virtual ~FileOverwriteConfirmation() { }
|
||||
@ -99,7 +98,6 @@ void LocalSaveActivity::Save()
|
||||
else
|
||||
{
|
||||
saveWrite(finalFilename);
|
||||
Exit();
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -111,8 +109,13 @@ void LocalSaveActivity::Save()
|
||||
void LocalSaveActivity::saveWrite(std::string finalFilename)
|
||||
{
|
||||
Client::Ref().MakeDirectory(LOCAL_SAVE_DIR);
|
||||
Client::Ref().WriteFile(save.GetGameSave()->Serialise(), finalFilename);
|
||||
if (Client::Ref().WriteFile(save.GetGameSave()->Serialise(), finalFilename))
|
||||
new ErrorMessage("Error", "Unable to write save file.");
|
||||
else
|
||||
{
|
||||
callback->FileSaved(&save);
|
||||
Exit();
|
||||
}
|
||||
}
|
||||
|
||||
void LocalSaveActivity::OnDraw()
|
||||
|
Loading…
Reference in New Issue
Block a user