ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Revision:
19:6d9721ffc078
Parent:
18:6be4c3c94a3d
Child:
22:17ea297c19b5
--- a/GraphicEngine/GraphicEngine.cpp	Thu May 14 03:53:16 2020 +0000
+++ b/GraphicEngine/GraphicEngine.cpp	Thu May 14 05:52:50 2020 +0000
@@ -37,6 +37,31 @@
     lcd.drawRect(chick->x, chick->y, chick->width, chick->width, FILL_BLACK);
 }
 
+void GraphicEngine::createSafetyLanes(const std::vector<Safety>& safety_lane)
+{
+    Safety temp;
+    for(unsigned int i = 0; i < safety_lane.size(); i++){
+        temp.x = safety_lane[i].x;
+        temp.row = safety_lane[i].row;
+        temp.c = safety_lane[i].c;
+        
+        drawIndividualSafety(temp);     
+    }
+}
+
+void GraphicEngine::drawIndividualSafety(&Safety lane_obj)
+{
+    switch(lane_obj.c)
+    {
+        case 'K':
+            lcd.drawSprite(lane_obj.x, 48 - 4*lane_obj.row, 4, 4, (int *)safety_lanes_one);   
+            break;
+        case 'K':   
+            lcd.drawSprite(lane_obj.x, 48 - 4*lane_obj.row, 4, 4, (int *)safety_lanes_two);   
+            break;  
+    }      
+}
+
 void GraphicEngine::drawFirstSafetyBackground(int x, int row)
 {
     lcd.drawSprite(x, 48 - 4*row, 4, 4, (int *)safety_lanes_one);   
@@ -106,22 +131,33 @@
     }   
 }
 
-// x is the offset in the for loop, y is the row number
-void GraphicEngine::displayFirstWater(Water &waterobj)
+void GraphicEngine::drawWater(std::vector<Water> &water_lane)
 {
-    lcd.drawSprite(waterobj.x,48 - 4*waterobj.y, 4, 4, (int *)first_water);   
+    Water temp;
+    for(unsigned int i = 0; i < water_lane.size(); i++)
+    {
+        temp.x = water_lane[i].x;
+        temp.row = water_lane[i].row;
+        temp.char = water_lane[i].c;
+        
+        drawIndividualWater(&temp);
+    }  
 }
 
-// x is the offset in the for loop, y is the row number
-void GraphicEngine::displaySecondWater(Water &waterobj)
+void GraphicEngine::showIndividualWater(Water &temp)
 {
-    lcd.drawSprite(waterobj.x,48 - 4*waterobj.y, 4, 4, (int *)second_water);   
-}
-
-// x is the offset in the for loop, y is the row number
-void GraphicEngine::displayThirdWater(Water &waterobj)
-{
-    lcd.drawSprite(waterobj.x,48 - 4*waterobj.y, 4, 4, (int *)third_water);   
+    switch(temp.c)
+    {
+        case 'F':
+            lcd.drawSprite(temp.x,48 - 4*temp.y, 4, 4, (int *)first_water);   
+            break;
+        case 'S':
+            lcd.drawSprite(temp.x,48 - 4*temp.y, 4, 4, (int *)second_water);   
+            break;
+        case 'T':
+            lcd.drawSprite(temp.x, 48 - 4*temp.y, 4, 4, (int *)third_water);   
+            break;
+    }
 }
 
 void GraphicEngine::drawVehicleSprites(char obj, int x, int y, int rows, int cols)