Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Revision:
37:23b6312c8315
Parent:
36:6f452777b9ce
Child:
38:51ed5820ffe5
--- a/main.cpp	Sun May 05 14:58:20 2019 +0000
+++ b/main.cpp	Sun May 05 17:34:55 2019 +0000
@@ -18,6 +18,7 @@
 void timer_isr();
 void init();
 
+void intro(N5110 &lcd, Gamepad &pad);
 void main_menu(N5110 &lcd, Gamepad &pad);
 int select_menu_item(Gamepad &pad, N5110 &lcd);
 void go_to_main_menu_item(N5110 &lcd, Gamepad &pad, int input);
@@ -41,10 +42,13 @@
 
     lcd.setContrast(0.55);
 
+    intro(lcd, pad);
+
     main_menu(lcd, pad);
 
 }
 
+
 void timer_isr()
 {
 
@@ -54,14 +58,38 @@
 void init()
 {
     pad.init();                                     //intialise Gamepad class variables
-    lcd.init();   
+    lcd.init();
     menu.init();                                    //intialise N5110 class variables
 }
 
+void intro(N5110 &lcd, Gamepad &pad)
+{
+    menu.title_intro(lcd, pad);
+    int start = 0;
+
+    do {
+        if (timer_flag == true) {                       //only run when timer flag is true (6fps)
+
+            timer_flag = 0;
+
+            start = menu.press_start(lcd, pad);
+
+        } else {
+
+            sleep();                                    //sleep when timer_flag not true in order to conserve energy
+
+        }
+
+
+    } while (start == 0);
+
+    menu.init();
+}
+
 void main_menu(N5110 &lcd, Gamepad &pad)
 {
+
     blockhead.init();                               //intialise blockhead engine variables for new game
-                                                    //intialse menu variables 
     int input = select_menu_item(pad, lcd);         //reads input and prints the main menu
     go_to_main_menu_item(lcd, pad, input);          //peforms what ever input is chosen
 }
@@ -71,9 +99,20 @@
 
 int select_menu_item(Gamepad &pad, N5110 &lcd)
 {
-    int input = 0;                                    
-    do {                                            //ADD TRICKR AND ANIMATION
-        input = menu.select_input(pad, lcd);        //prints menu and toggles cursor depending on input,
+    int input = 0;
+    do {
+        
+        if (timer_flag == true) {                       //only run when timer flag is true (6fps)
+
+            timer_flag = 0; 
+                                                        //ADD TRICKR AND ANIMATION
+        input = menu.select_input(pad, lcd); 
+        
+        } else {
+            
+        sleep();
+        
+        }       //prints menu and toggles cursor depending on input,
     } while (input == 0);                           //repeats untill an input is chosen
 
     return input;
@@ -153,7 +192,7 @@
 
         }
     } while (goback == 0);
-    
+
     main_menu(lcd, pad);
 }
 
@@ -191,7 +230,7 @@
 {
     lcd.turnOff();
     sleep();
-   
+
 }
 
 
@@ -226,20 +265,20 @@
     blockhead.continueInit();
 
     print_menu_continue(lcd);
-    
+
     int input = 0;
-    do{
-        
+    do {
+
         if (pad.check_event(Gamepad::A_PRESSED)) {
-                input = 1;
-            }
-        
+            input = 1;
+        }
+
         if (pad.check_event(Gamepad::B_PRESSED)) {
-                input = 2;
-            }
-        
-        } while (input ==0);
-     select_continue_menu_item(lcd, pad, input);
+            input = 2;
+        }
+
+    } while (input ==0);
+    select_continue_menu_item(lcd, pad, input);
 }