diff options
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(); } |
