Thomas Gill / Mbed 2 deprecated LabyrinthOfTheMinotaur

Dependencies:   N5110 PowerControl mbed

Revision:
14:55802ce40285
Parent:
13:2195ec8bc9ff
Child:
15:05a227f970c2
--- a/main.cpp	Fri May 01 11:46:28 2015 +0000
+++ b/main.cpp	Sat May 02 14:28:12 2015 +0000
@@ -77,7 +77,9 @@
 
 ENEMIES  EnemyList[] = {
     {"Huge Rat", 5, 3, 0, 25, 70 },  //0- Huge Rat
-    {"Skeleton", 10, 5, 3, 10, 50}, //1- Skeleton
+    {"Goblin", 7, 3, 2, 25, 60}, //1- Goblin
+    {"Skeleton", 10, 5, 3, 10, 50}, //2- Skeleton
+    {"Giant Spider", 6, 5, 0, 40, 60}, //3- Giant Spider 
 };
 
 //Variables
@@ -570,6 +572,8 @@
         FlashPlayerLocation();
     }
     StartFlag = 0;
+    ActFlag = 0;
+    DirFlag = 0;
 }
 
 
@@ -588,40 +592,102 @@
     write = sprintf(buffer2,"+%d Damage", ItemList[pw].ItemValue); // print formatted data to buffer
     lcd.printString(buffer2, 0, 5);
     lcd.refresh();
-    Sleep();
+
+    while(1) {
+        Sleep();
+
+        if(ActFlag) {
+            ActFlag = 0;
+        }
+        if(DirFlag) {
+            DirFlag = 0;
+            break;
+        }
+        if(StartFlag) {
+            StartFlag = 0;
+            break;
+        }
+    }
+}
+
+void MapLegend()
+{
+    lcd.clear();
+    lcd.printString("@ Player", 0 ,0);
+    lcd.printString("# Wall", 0, 1);
+    lcd.printString(". Floor", 0, 2);
+    lcd.printString("= Chest", 0, 3);
+    lcd.printString("/ Open Chest", 0, 4);
+    
+
+    while(1) {
+        Sleep();
+
+        if(ActFlag) {
+            ActFlag = 0;
+        }
+        if(DirFlag) {
+            DirFlag = 0;
+            break;
+        }
+        if(StartFlag) {
+            StartFlag = 0;
+            break;
+        }
+    }
 }
 
 void StartMenu()
 {
     int menu = 0;
 
+    char buffer[14];
+    int write = sprintf(buffer,"Health  %d/15",ph); // print formatted data to buffer
+
+
     while(1) {
         if(menu == 0) {
             lcd.clear();
-            lcd.printString("Map <", 6, 0);
-            lcd.printString("Inventory", 6, 2);
-            lcd.printString("Exit", 6, 4);
+            lcd.printString(buffer, 0, 0);
+            lcd.printString("Map <", 0, 2);
+            lcd.printString("Map Legend", 0, 3);
+            lcd.printString("Inventory", 0, 4);
+            lcd.printString("Continue", 0, 5);
             lcd.refresh();
             Sleep();
         } else if (menu == 1) {
             lcd.clear();
-            lcd.printString("Map", 6, 0);
-            lcd.printString("Inventory <", 6, 2);
-            lcd.printString("Exit", 6, 4);
+            lcd.printString(buffer, 0, 0);
+            lcd.printString("Map", 0, 2);
+            lcd.printString("Map Legend <", 0, 3);
+            lcd.printString("Inventory", 0, 4);
+            lcd.printString("Continue", 0, 5);
             lcd.refresh();
             Sleep();
         } else if (menu == 2) {
             lcd.clear();
-            lcd.printString("Map", 6, 0);
-            lcd.printString("Inventory", 6, 2);
-            lcd.printString("Exit <", 6, 4);
+            lcd.printString(buffer, 0, 0);
+            lcd.printString("Map", 0, 2);
+            lcd.printString("Map Legend", 0, 3);
+            lcd.printString("Inventory <", 0, 4);
+            lcd.printString("Continue", 0, 5);
+            lcd.refresh();
+            Sleep();
+        }
+        else if (menu == 3) {
+            lcd.clear();
+            lcd.printString(buffer, 0, 0);
+            lcd.printString("Map", 0, 2);
+            lcd.printString("Map Legend", 0, 3);
+            lcd.printString("Inventory", 0, 4);
+            lcd.printString("Continue <", 0, 5);
             lcd.refresh();
             Sleep();
         }
 
         if(DirFlag) {
             DirFlag = 0;
-            if((Down || Right) && menu < 2) {
+            if((Down || Right) && menu < 3) {
                 menu++;
             } else if((Up ||Left) && menu > 0)
                 menu--;
@@ -631,6 +697,8 @@
             if(menu == 0) {
                 Map();
             } else if(menu == 1) {
+                MapLegend();
+            } else if(menu == 2) {
                 Inventory();
             } else {
                 break;
@@ -707,6 +775,7 @@
             break;
         }
         if(StartFlag) {
+
             StartFlag = 0;
 
             lcd.clear();