diff options
| author | Bryan Hoyle <starfoxprime@gmail.com> | 2012-11-16 21:51:55 (GMT) |
|---|---|---|
| committer | Bryan Hoyle <starfoxprime@gmail.com> | 2012-11-16 21:51:55 (GMT) |
| commit | 874cd400093c38e67fde4a1861603bce83135539 (patch) | |
| tree | e9c8b31b7cc752133dd0e110c652ed9775e859d5 /src/game | |
| parent | e0aa92b017a8d5602ce8b43f6e240ab42a25fac4 (diff) | |
| parent | d8be547c734cfaa3d121412b11381b4787380762 (diff) | |
| download | powder-874cd400093c38e67fde4a1861603bce83135539.zip powder-874cd400093c38e67fde4a1861603bce83135539.tar.gz | |
Merge branch 'master' of github.com:FacialTurd/PowderToypp
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/Brush.cpp | 11 | ||||
| -rw-r--r-- | src/game/GameController.cpp | 8 | ||||
| -rw-r--r-- | src/game/GameModel.cpp | 6 |
3 files changed, 17 insertions, 8 deletions
diff --git a/src/game/Brush.cpp b/src/game/Brush.cpp index 5341f60..38dd809 100644 --- a/src/game/Brush.cpp +++ b/src/game/Brush.cpp @@ -18,9 +18,14 @@ void Brush::RenderRect(Renderer * ren, ui::Point position1, ui::Point position2) } ren->xor_line(position1.X, position1.Y, position1.X+width, position1.Y); - ren->xor_line(position1.X, position1.Y+height, position1.X+width, position1.Y+height); - ren->xor_line(position1.X+width, position1.Y+1, position1.X+width, position1.Y+height-1); - ren->xor_line(position1.X, position1.Y+1, position1.X, position1.Y+height-1); + if(height>0){ + ren->xor_line(position1.X, position1.Y+height, position1.X+width, position1.Y+height); + if(height>1){ + ren->xor_line(position1.X+width, position1.Y+1, position1.X+width, position1.Y+height-1); + if(width>0) + ren->xor_line(position1.X, position1.Y+1, position1.X, position1.Y+height-1); + } + } } void Brush::RenderLine(Renderer * ren, ui::Point position1, ui::Point position2) diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp index 0f3d92e..0cff7d2 100644 --- a/src/game/GameController.cpp +++ b/src/game/GameController.cpp @@ -240,7 +240,7 @@ void GameController::PlaceSave(ui::Point position) if(gameModel->GetPlaceSave()) { gameModel->GetSimulation()->Load(position.X, position.Y, gameModel->GetPlaceSave()); - gameModel->SetPaused(gameModel->GetPaused()); + gameModel->SetPaused(gameModel->GetPlaceSave()->paused | gameModel->GetPaused()); } } @@ -489,7 +489,10 @@ void GameController::StampRegion(ui::Point point1, ui::Point point2) GameSave * newSave; newSave = gameModel->GetSimulation()->Save(point1.X, point1.Y, point2.X, point2.Y); if(newSave) + { + newSave->paused = gameModel->GetPaused(); gameModel->AddStamp(newSave); + } else new ErrorMessage("Could not create stamp", "Error generating save file"); } @@ -499,7 +502,10 @@ void GameController::CopyRegion(ui::Point point1, ui::Point point2) GameSave * newSave; newSave = gameModel->GetSimulation()->Save(point1.X, point1.Y, point2.X, point2.Y); if(newSave) + { + newSave->paused = gameModel->GetPaused(); gameModel->SetClipboard(newSave); + } } void GameController::CutRegion(ui::Point point1, ui::Point point2) diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 4a11d55..5c4ee97 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -587,7 +587,7 @@ void GameModel::SetSaveFile(SaveFile * newSave) if(newSave && newSave->GetGameSave()) { GameSave * saveData = newSave->GetGameSave(); - SetPaused(saveData->paused & GetPaused()); + SetPaused(saveData->paused | GetPaused()); sim->gravityMode = saveData->gravityMode; sim->air->airMode = saveData->airMode; sim->legacy_enable = saveData->legacyEnable; @@ -823,17 +823,15 @@ void GameModel::FrameStep(int frames) void GameModel::ClearSimulation() { - sim->clear_sim(); - ren->ClearAccumulation(); //Load defaults - SetPaused(false); sim->gravityMode = 0; sim->air->airMode = 0; sim->legacy_enable = false; sim->water_equal_test = false; sim->grav->stop_grav_async(); sim->SetEdgeMode(edgeMode); + sim->clear_sim(); ren->ClearAccumulation(); |
