ELEC2645 (2018/19) / Mbed 2 deprecated el17ttds

Dependencies:   mbed N5110_tf

Map/Map.cpp

Committer:
el17ttds
Date:
2019-05-12
Revision:
9:3a0194c87afe
Parent:
6:e8c03f264ffc

File content as of revision 9:3a0194c87afe:

#include "Map.h"

Map::Map() {

}

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;
}

void Map::write(int x1, int y1) {  // uses top left corner as origin to create the map
    _x1 = x1 - 5;
    _x2 = _x1 + _width + (_swidth / 2);
    _y1 = y1 - 5;
    _y2 = _y1 + _height + (_sheight / 2);
    map_parameters();
}

void Map::map_parameters() {
  horizontal();
  veritical();
}

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 - 5;
  }
}

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 - 5;
  }
}

void Map::draw(N5110 &lcd) {

    lcd.drawRect(_x1_pos,0,_w,_sheight,FILL_BLACK);
    lcd.drawRect(0,_y1_pos,_swidth,_h,FILL_BLACK);
    lcd.drawRect(0,_y2 + 11,_swidth,(_sheight / 2),FILL_BLACK);
    lcd.drawRect(_x2 + 11,0,(_swidth / 2),_sheight,FILL_BLACK);
}