Andreas Garmannslund / Mbed 2 deprecated SimplePlatformGame

Dependencies:   N5110 PinDetect PowerControl mbed

Revision:
13:7ab71c7c311b
Parent:
12:8178fad5e660
Child:
17:d6a3b29cab31
--- a/MainMenu.cpp	Fri May 08 23:51:26 2015 +0000
+++ b/MainMenu.cpp	Sat May 09 13:56:14 2015 +0000
@@ -43,53 +43,68 @@
 void MainMenu::update(float dt) {} // Does not do anything as program flow is controlled by interrupts, but needs to be defined as it is a virtual function.
 
 void MainMenu::render()
-{
-    drawImage(Border::DotsColumn, 0, 0);
+{   
+    for (int i = 0; i < HEIGHT/3; ++i)
+    {
+        drawImage(Image::Cross3, 0, 3*i);           // left border
+        drawImage(Image::Cross3, (WIDTH-3), 3*i);   // right border
+    }
     
+    for (int j = 0; j < WIDTH/3; ++j)
+    {
+        drawImage(Image::Cross3, 3 * j, (HEIGHT-3));    // bottom border
+        
+        if (currentState != HIGHSCORES && currentState != CONTROLS)
+            drawImage(Image::Cross3, 3 * j, 0);             // top border
+    }
+    
+    // Check sate
+    int xMargin = 8;
     switch (currentState)
     {        
         case SELECT_PLAY:
-            lcd->printString(">Play", 10, 1);
-            lcd->printString("High Scores", 10, 2);
-            lcd->printString("Controls", 10, 3);
+            lcd->printString(">Play", xMargin, 1);
+            lcd->printString("High Scores", xMargin, 2);
+            lcd->printString("Controls", xMargin, 3);
         break;
         
         case SELECT_HIGHSCORES:
-            lcd->printString("Play", 10, 1);
-            lcd->printString(">High Scores", 10, 2);
-            lcd->printString("Controls", 10, 3);
+            lcd->printString("Play", xMargin, 1);
+            lcd->printString(">High Scores", xMargin, 2);
+            lcd->printString("Controls", xMargin, 3);
         break;
         
         case SELECT_CONTROLS:
-            lcd->printString("Play", 10, 1);
-            lcd->printString("High Scores", 10, 2);
-            lcd->printString(">Controls", 10, 3);
+            lcd->printString("Play", xMargin, 1);
+            lcd->printString("High Scores", xMargin, 2);
+            lcd->printString(">Controls", xMargin, 3);
         break;
         
         case HIGHSCORES:
         // Placeholder TODO: Actually high scores
-            lcd->printString("High Scores", 10, 0);
-            lcd->printString("AND 1000000", 10, 1);
-            lcd->printString("AND  500000", 10, 2);
-            lcd->printString("AND     100", 10, 3);
-            lcd->printString(">Back", 10, 4);
+            lcd->printString("High Scores", xMargin, 0);
+            lcd->printString("AND 1000000", xMargin, 1);
+            lcd->printString("AND  500000", xMargin, 2);
+            lcd->printString("AND     100", xMargin, 3);
+            lcd->printString(">Back", xMargin, 4);
         break;
         
         case CONTROLS:
-            lcd->printString("Controls", 10, 0);
-            lcd->printString("A: Jump", 10, 1);
-            lcd->printString("B: Shoot", 10, 2);
-            lcd->printString("C: Pause", 10, 3);
-            lcd->printString(">Back", 10, 4);
+            lcd->printString("Controls", xMargin, 0);
+            lcd->printString("A: Jump", xMargin, 1);
+            lcd->printString("B: Shoot", xMargin, 2);
+            lcd->printString("C: Pause", xMargin, 3);
+            lcd->printString(">Back", xMargin, 4);
         break;
         
         case LOAD_GAME:
-            lcd->printString("Loading...", 10, 2);
+            lcd->printString("Loading...", xMargin, 2);
             requestStateChange(GAME);
         break;
         
         default:
-            error("MainMenu: Invalid internal state");
+        ;
+            //error("MainMenu: Invalid internal state");
             
     }
 }
\ No newline at end of file