Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Revision:
31:bf765e3961f1
Parent:
29:b2f63d8c1268
Child:
34:911d7d05a8d2
--- a/main.cpp	Thu Apr 25 08:08:30 2019 +0000
+++ b/main.cpp	Fri Apr 26 09:12:03 2019 +0000
@@ -15,29 +15,31 @@
 volatile int timer_flag = 0;
 
 void timer_isr();
+void init();
 void main_menu(N5110 &lcd, Gamepad &pad);
 void print_main_menu(N5110 &lcd);
 int user_input(Gamepad &pad);
-void select_menu_item(N5110 &lcd, Gamepad &pad, int input);
+void select_main_menu_item(N5110 &lcd, Gamepad &pad, int input);
+
 void menu_playgame(N5110 &lcd, Gamepad &pad);
 void menu_setcontrast(N5110 &lcd, Gamepad &pad);
 
+void select_continue_menu_item(N5110 &lcd, Gamepad &pad, int input);
+void print_continue_menu(N5110 &lcd);
+void menu_continue(N5110 &lcd, Gamepad &pad);
+
+
 int main()
 {
 
     int fps = 6; //6
-
-    pad.init();
-    lcd.init();
+    init();
+    ticker.attach(&timer_isr,1.0f/fps);
+    
     lcd.setContrast(0.55);
 
-    ticker.attach(&timer_isr,1.0f/fps);
-
-    //int gameover = 0;
-
     main_menu(lcd, pad);
 
-
 }
 
 void timer_isr()
@@ -46,11 +48,19 @@
     timer_flag = 1;   // set flag in ISR
 }
 
+void init()
+{
+     pad.init();
+     lcd.init(); 
+}
+
 void main_menu(N5110 &lcd, Gamepad &pad)
 {
+    blockhead.init();    
+    
     print_main_menu(lcd);
     int input = user_input(pad);
-    select_menu_item(lcd, pad, input);
+    select_main_menu_item(lcd, pad, input);
 }
 
 void print_main_menu(N5110 &lcd)
@@ -80,7 +90,7 @@
     return input;
 }
 
-void select_menu_item(N5110 &lcd, Gamepad &pad, int input)
+void select_main_menu_item(N5110 &lcd, Gamepad &pad, int input)
 {
     switch (input) {
         case 1:
@@ -98,8 +108,8 @@
 void menu_playgame(N5110 &lcd, Gamepad &pad)
 {
     int gameover = 0;
-    
-    blockhead.init();
+
+    // blockhead.init();
 
     do {
 
@@ -120,8 +130,7 @@
         }
     } while (gameover == 0);
 
-    main_menu(lcd, pad);
-
+    menu_continue(lcd, pad);
 
 }
 
@@ -129,7 +138,7 @@
 {
 
     int goback = 0;
-
+    
     do {
 
         if (timer_flag == true) {
@@ -157,6 +166,41 @@
 }
 
 
+void select_continue_menu_item(N5110 &lcd, Gamepad &pad, int input)
+{
+    switch (input) {
+        case 1:
+            menu_playgame(lcd, pad);
+            break;
+        case 2:
+            main_menu(lcd, pad);
+            break;
+        default:
+            exit(1);
+            break;
+    }
+}
+
+void print_menu_continue(N5110 &lcd)
+{
+    lcd.clear();
+
+    lcd.printString("Continue??",0,0);
+    lcd.printString("A for hell yeh",0,1);
+    lcd.printString("B for back",0,2);
+    lcd.refresh();
+
+}
+
+void menu_continue(N5110 &lcd, Gamepad &pad)
+{
+    blockhead.continueInit();
+    
+    print_menu_continue(lcd);
+    int input = user_input(pad);
+    select_continue_menu_item(lcd, pad, input);
+}
+
 
 //rtos
 /**