ELEC2645 (2018/19) / Mbed 2 deprecated el17ttds

Dependencies:   mbed N5110_tf

Revision:
4:3446009e2f38
Parent:
3:3d35ab70b565
Child:
6:e8c03f264ffc
--- a/Map/Map.cpp	Mon May 06 19:50:27 2019 +0000
+++ b/Map/Map.cpp	Tue May 07 19:25:20 2019 +0000
@@ -7,47 +7,56 @@
 void Map::init(int width, int height, int swidth, int sheight) {  // initialises map dimensions
     _swidth = swidth;
     _sheight = sheight;
+    _width = width;
+    _height = height;
     _w = 0;
     _h = 0;
-    _x1 = -(_swidth / 2) - (width - 84) / 2;
-    _x2 = _swidth + (width - 84) / 2; //84 + (_w - 84) / 2;
-    _y1 = -(_sheight) - (height - _sheight) / 2; //-24 - (_h - 48) / 2;
-    _y2 = _sheight + (height - _sheight) / 2; //48 + (_h - 48) / 2;
+}
+
+void Map::write(int x1, int y1) {  // uses origin of top left corner to create the map
+
+    _x1 = x1;
+    _x2 = _x1 + _width + (_swidth / 2);
+    _y1 = y1;
+    _y2 = _y1 + _height + (_sheight / 2);
+    map_parameters();
+}
+
+void Map::map_parameters() {
+  horizontal();
+  veritical();
 }
 
-void Map::write(int pix_x, int pix_y) {  // Builds new parameters of map
-
-    _x1 += pix_x;
-    _x2 += pix_x;
-    _y1 += pix_y;
-    _y2 += pix_y;
+void Map::horizontal() {
+  if (_x1 < -(_swidth / 2)) {
+      _x1_pos = -1;
+  } else if (_x1 < 0) {
+      _x1_pos = 0;
+      _w = (_swidth / 2) + _x1;
+  } else {
+      _x1_pos = 0;
+      _w = _swidth / 2;
+  }
+  if (_x2 < (_swidth / 2)) {
+    _x2 = (_swidth / 2);
+    // _x1 = -100; do this in Engine
+  }
+}
 
-    if (_x1 < -(_swidth / 2)) {
-        _x1_pos = -1;
-    } else if (_x1 < 0) {
-        _x1_pos = 0;
-        _w = (_swidth / 2) + _x1;
-    } else {
-        _x1 = 0;
-        _x1_pos = 0;
-        _w = _swidth / 2;
-    }
-    if (_y1 < -(_sheight / 2)) {
-        _y1_pos = -1;
-    } else if (_y1 < 0) {
-        _y1_pos = 0;
-        _h = (_sheight / 2) + _y1;
-    } else {
-        _y1 = 0;
-        _y1_pos = 0;
-        _h = _sheight / 2;
-    }
-    if (_y2 < (_sheight / 2)) {
-      _y2 = (_sheight / 2);
-    }
-    if (_x2 < (_swidth / 2)) {
-      _x2 = (_swidth / 2);
-    }
+void Map::veritical() {
+  if (_y1 < -(_sheight / 2)) {
+      _y1_pos = -1;
+  } else if (_y1 < 0) {
+      _y1_pos = 0;
+      _h = (_sheight / 2) + _y1;
+  } else {
+      _y1_pos = 0;
+      _h = _sheight / 2;
+  }
+  if (_y2 < (_sheight / 2)) {
+    _y2 = (_sheight / 2);
+    // _y1 = -100; do this in Engine
+  }
 }
 
 void Map::draw(N5110 &lcd) {
@@ -56,4 +65,4 @@
     lcd.drawRect(0,_y1_pos,_swidth,_h,FILL_BLACK);
     lcd.drawRect(0,_y2,_swidth,_sheight / 2,FILL_BLACK);
     lcd.drawRect(_x2,0,_swidth / 2,_sheight,FILL_BLACK);
-}
\ No newline at end of file
+}