Harry Rance 200925395 Embedded Systems Project

Dependencies:   mbed

Revision:
4:107bdbbf78bf
Parent:
3:43970d8d642e
Child:
6:dca8b5e2ebe5
diff -r 43970d8d642e -r 107bdbbf78bf Menu.cpp
--- a/Menu.cpp	Sun Apr 30 15:23:56 2017 +0000
+++ b/Menu.cpp	Sun Apr 30 15:30:30 2017 +0000
@@ -23,17 +23,17 @@
 {
   draw_initial_screen(lcd);
   draw_shop(lcd);
-  draw_options(lcd);
   draw_selection_square(lcd);
 }
 
-void Menu::update(Gamepad &pad)
+void Menu::update(Gamepad &pad, N5110 &lcd)
 {
   move_selection_square_y(_d);
   move_selection_square_x(_d);
   initial_screen_selection(pad);
   page_selection(pad);
   step_back(pad);
+  exit_game(lcd, pad);
 }
 
 void Menu::read_input(Gamepad &pad)
@@ -47,7 +47,7 @@
   lcd.printString("BOSS FIGHT",13,1);
   lcd.printString("Start Game", 5, 3);
   lcd.printString("Shop", 5, 4);
-  lcd.printString("Options", 5, 5);
+  lcd.printString("Exit", 5, 5);
 }
 
 void Menu::draw_selection_square(N5110 &lcd)
@@ -84,7 +84,7 @@
   if (d == CENTRE) {
     _square_active = 1;
   }
-  if (_page_index == 0 || _page_index == 2 || _page_index == 3){
+  if (_page_index == 0 || _page_index == 2){
     _square_pos_x = 70;
     if (d == S && _square_active){
       _square_pos_y += 8;
@@ -104,6 +104,14 @@
   }
 }
 
+void Menu::exit_game(N5110 &lcd, Gamepad &pad)
+{
+  if (_square_pos_y == 41 && (pad.check_event(Gamepad::A_PRESSED)) && _page_index == 0){
+    lcd.turnOff();
+    lcd.setBrightness(0.0);
+  }
+}
+
 void Menu::page_selection(Gamepad &pad)
 {
   if (_square_pos_y == 33 && (pad.check_event(Gamepad::A_PRESSED)) && _page_index == 0){
@@ -111,11 +119,6 @@
     _square_pos_x = 7;
     _square_pos_y = 41;
   }
-  if (_square_pos_y == 41 && (pad.check_event(Gamepad::A_PRESSED)) && _page_index == 0){
-    _page_index = 2;
-    _square_pos_x = 70;
-    _square_pos_y = 25;
-  }
 }
 
 void Menu::step_back(Gamepad &pad)
@@ -156,17 +159,6 @@
   }
 }
 
-void Menu::draw_options(N5110 &lcd)
-{
-  if(_page_index == 2){
-    lcd.clear();
-    lcd.printString("OPTIONS",20,0);
-    lcd.printString("Video",5,3);
-    lcd.printString("Audio",5,4);
-    lcd.printString("Controls",5,5);
-  }
-}
-
 void Menu::draw_shop_ship_1(N5110 &lcd)
 {
   lcd.drawRect(5, 38, 2, 2, 1);