summaryrefslogtreecommitdiff
path: root/src/game/GameController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/GameController.cpp')
-rw-r--r--src/game/GameController.cpp41
1 files changed, 29 insertions, 12 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index e0e8673..7c70797 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -107,6 +107,7 @@ public:
if(cc->localBrowser->GetSave())
{
cc->gameModel->SetStamp(cc->localBrowser->GetSave()->GetGameSave());
+ cc->LoadStamp();
}
else
cc->gameModel->SetStamp(NULL);
@@ -168,20 +169,11 @@ GameView * GameController::GetView()
return gameView;
}
-void GameController::PlaceStamp(ui::Point position)
+void GameController::PlaceSave(ui::Point position)
{
- if(gameModel->GetStamp())
+ if(gameModel->GetPlaceSave())
{
- gameModel->GetSimulation()->Load(position.X, position.Y, gameModel->GetStamp());
- gameModel->SetPaused(gameModel->GetPaused());
- }
-}
-
-void GameController::PlaceClipboard(ui::Point position)
-{
- if(gameModel->GetClipboard())
- {
- gameModel->GetSimulation()->Load(position.X, position.Y, gameModel->GetClipboard());
+ gameModel->GetSimulation()->Load(position.X, position.Y, gameModel->GetPlaceSave());
gameModel->SetPaused(gameModel->GetPaused());
}
}
@@ -309,6 +301,31 @@ void GameController::DrawPoints(int toolSelection, queue<ui::Point*> & pointQueu
}
}
+void GameController::LoadClipboard()
+{
+ gameModel->SetPlaceSave(gameModel->GetClipboard());
+}
+
+void GameController::LoadStamp()
+{
+ gameModel->SetPlaceSave(gameModel->GetStamp());
+}
+
+void GameController::TranslateSave(ui::Point point)
+{
+ matrix2d transform = m2d_identity;
+ vector2d translate = v2d_new(point.X, point.Y);
+ gameModel->GetPlaceSave()->Transform(transform, translate);
+ gameModel->SetPlaceSave(gameModel->GetPlaceSave());
+}
+
+void GameController::TransformSave(matrix2d transform)
+{
+ vector2d translate = v2d_zero;
+ gameModel->GetPlaceSave()->Transform(transform, translate);
+ gameModel->SetPlaceSave(gameModel->GetPlaceSave());
+}
+
void GameController::ToolClick(int toolSelection, ui::Point point)
{
Simulation * sim = gameModel->GetSimulation();