66#include " GameView.h"
77#include " Renderer.h"
88
9- GameController::GameController (GameBoard& model, GameView& view) : model(model), view(view) {
9+ GameController::GameController (GameBoard& model, GameView& view) : model(model), view(view), placingRoads(false ), placingCities(false ) ,lastCoordClick(-100 , -100 ) {
10+ view.addElement (makeViewButtonColor ([&](ScreenCoordinate coord) {
11+ placingRoads = true ;
12+ placingCities = false ;
13+ std::cout << __PRETTY_FUNCTION__ << std::endl;
14+ return true ;
15+ }, {{0 , 0 }, {0.1 , 0.1 }}, std::make_tuple (1 .f , 0 .f , 0 .f )));
16+ view.addElement (makeViewButtonColor ([&](ScreenCoordinate coord) {
17+ placingRoads = false ;
18+ placingCities = true ;
19+ std::cout << __PRETTY_FUNCTION__ << std::endl;
20+ return true ;
21+ }, {{0 , 0.1 }, {0.1 , 0.2 }}, std::make_tuple (0 .f , 1 .0f , 0 .f )));
1022 view.addElement (makeViewButton ([this ](ScreenCoordinate coord) { this ->handleEvent (ClickCoordinateEvent (screenToCoord (coord))); return true ; }, {{0 , 0 }, {1 , 1 }}));
1123}
1224
@@ -16,6 +28,7 @@ GameController::~GameController() {
1628
1729void GameController::handleEvent (const ClickCoordinateEvent& event) {
1830 // std::cout << "user clicked at " << event.getCoordinate().first << ", " << event.getCoordinate().second << std::endl;
31+ /*
1932 if(model.getRoads(event.getCoordinate()).size() > 0) {
2033 model.PlaceSettlement(event.getCoordinate(), *model.getPlayers()[0]);
2134 } else {
@@ -27,6 +40,17 @@ void GameController::handleEvent(const ClickCoordinateEvent& event) {
2740 break;
2841 }
2942 }
43+ }*/
44+ std::cout << placingRoads << " " << placingCities << std::endl;
45+ if (placingRoads) {
46+ if (lastCoordClick.first == -100 && lastCoordClick.second == -100 ) {
47+ lastCoordClick = event.getCoordinate ();
48+ } else {
49+ model.PlaceRoad (lastCoordClick, event.getCoordinate (), *model.getPlayers ()[0 ]);
50+ lastCoordClick = {-100 , -100 };
51+ }
52+ } else if (placingCities) {
53+ model.PlaceSettlement (event.getCoordinate (), *model.getPlayers ()[0 ]);
3054 }
3155}
3256
0 commit comments