diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-06 00:46:13 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-06 00:46:13 (GMT) |
| commit | 8fae7dbade0a83c86f92723149fb484acd99b951 (patch) | |
| tree | b3a88ecf031114194228aaed9a39ac2b4b046c84 /src/game | |
| parent | 7063587706f1f2d440c501ed67323cf6bfb5c3a3 (diff) | |
| download | powder-8fae7dbade0a83c86f92723149fb484acd99b951.zip powder-8fae7dbade0a83c86f92723149fb484acd99b951.tar.gz | |
Saving and loading at position, yuse exceptions for parsing saves
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/GameController.cpp | 2 | ||||
| -rw-r--r-- | src/game/GameModel.cpp | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index 9580d2c..dff6c18 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -320,6 +320,8 @@ void GameController::StampRegion(ui::Point point1, ui::Point point2) newSave = gameModel->GetSimulation()->Save(point1.X, point1.Y, point2.X, point2.Y); if(newSave) gameModel->AddStamp(newSave); + else + new ErrorMessage("Could not create stamp", "Error generating save file"); } void GameController::CopyRegion(ui::Point point1, ui::Point point2) diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 08bd0ec..966eca7 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -434,7 +434,11 @@ void GameModel::SetStamp(Save * save) { if(stamp) delete stamp; - stamp = new GameSave((char*)save->GetData(), save->GetDataLength()); + try { + stamp = new GameSave((char*)save->GetData(), save->GetDataLength()); + } catch (ParseException& e) { + stamp = NULL; + } notifyStampChanged(); } |
