diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-11 12:39:39 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-11 12:39:39 (GMT) |
| commit | 3205df3a2188e6e314d7393381403dd04cd85623 (patch) | |
| tree | 5f3ec4728b3d4edd7eead8a581abead144eb2b07 /src/game/GameModel.cpp | |
| parent | 5eb9370fc185103f3f8700f7da31525d5e862f81 (diff) | |
| download | powder-3205df3a2188e6e314d7393381403dd04cd85623.zip powder-3205df3a2188e6e314d7393381403dd04cd85623.tar.gz | |
Saving and loading other flags from GameSave, remove old saveloader
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 99a2cc5..2ae0713 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -2,6 +2,7 @@ #include "GameModel.h" #include "GameView.h" #include "simulation/Simulation.h" +#include "simulation/Air.h" #include "Renderer.h" #include "interface/Point.h" #include "Brush.h" @@ -283,13 +284,26 @@ void GameModel::SetSave(SaveInfo * newSave) if(currentSave) delete currentSave; currentSave = newSave; - if(currentSave) - { + if(currentSave && currentSave->GetGameSave()) + { + GameSave * saveData = currentSave->GetGameSave(); + SetPaused(saveData->paused); + sim->gravityMode = saveData->gravityMode; + sim->air->airMode = saveData->airMode; + sim->legacy_enable = saveData->legacyEnable; + sim->water_equal_test = saveData->waterEEnabled; + if(saveData->gravityEnable && !sim->grav->ngrav_enable) + { + sim->grav->start_grav_async(); + } + else if(!saveData->gravityEnable && sim->grav->ngrav_enable) + { + sim->grav->stop_grav_async(); + } sim->clear_sim(); - sim->Load(currentSave->GetGameSave()); + sim->Load(saveData); } notifySaveChanged(); - notifyPausedChanged(); } Simulation * GameModel::GetSimulation() |
