Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Revision:
59:0b2e43312d6b
Parent:
55:c04568b25617
Child:
60:55fdc6bb29b9
--- a/SavedGames/SavedGames.cpp	Tue May 19 20:21:41 2020 +0000
+++ b/SavedGames/SavedGames.cpp	Wed May 20 17:47:18 2020 +0000
@@ -21,10 +21,11 @@
 }
 
 void SavedGames::init(SDFileSystem &sd,N5110 &lcd){
+    SavedGamesData data;
     error_ = false;
     check_sd_present(sd,lcd);
-    read_saved_data(sd,lcd); 
     display_data_number_ = 0;
+    add_saved_data(sd, data, lcd);
 }
 
 void SavedGames::check_sd_present(SDFileSystem &sd,N5110 &lcd){
@@ -51,90 +52,90 @@
     wait(3); 
 }
 
-void SavedGames::add_saved_data(SDFileSystem &sd, SavedGamesData data,
-N5110 &lcd){
+void SavedGames::add_saved_data(SDFileSystem &sd,SavedGamesData data,
+ N5110 &lcd){
     //opens file  
-    FILE *fp = fopen("/sd/SavedGames.txt", "a");
+    FILE *fp = fopen("/sd/SavedGames.csv", "w");
     
     if (fp == NULL) {
         error_open_file(lcd);
         return;
     }else{
          //Adda data to file if no error
-        fprintf(fp, "%d\n", data.score); 
-        fprintf(fp, "%d\n", data.lives); 
-        fprintf(fp, "%d\n", data.smart_bombs); 
-        fprintf(fp, "%d\n", data.alien_number); 
+        fprintf(fp, "%d,%d,%d,%d\n", data.score, data.lives, data.smart_bombs,
+        data.alien_number); 
         fclose(fp);
     }  
 }
 
 void SavedGames::read_saved_data(SDFileSystem &sd, N5110 &lcd){
     //opens file  
-    FILE *fp = fopen("/sd/SavedGames.txt", "r");
+    FILE *fp = fopen("/sd/SavedGames.csv", "r");
     
     if (fp == NULL) {
         error_open_file(lcd);
         return;
-        
+   
     //Reads saved data into vector 
     }else{
-        int line_number = 0;  
-        int *data_array; 
-        
-        //count number of lines in files
-        while (fscanf(fp, "%*d") != EOF) {
-            line_number++;  
-        }
-    
-        //creats data arrays
-        data_array = (int *)calloc(line_number, sizeof (int));
-        
-        //Reads into arrays
-        int i = 0;
-        rewind(fp); 
-        while (fscanf(fp, "%d",&data_array[i]) != EOF) {
-            i++;  
-        }
+        int lives;
+        int score;
+        int alien_number;
+        int smart_bombs;
         
-        // puts array data into structs and sotres structs in vector
-        for(int i = 0; i <= line_number; i+=4){
-            //creats objects
+        while (fscanf(fp, "%d,%d,%d,%d",&score, &lives,&smart_bombs,
+        &alien_number) != EOF) {
+            //creats object
             SavedGamesData data;
+          
+            //sets data to object
+            data.score = score;
+            printf ("data.score = %d \n", data.score);
+            data.lives = lives;
+            printf ("data.lives = %d \n", data.lives);
+            data.smart_bombs = smart_bombs;
+            printf ("data.smart_bombs = %d \n", data.smart_bombs);
+            data.alien_number = alien_number;
+            printf ("data.alien_number = %d \n", data.lives);
             
-            //sets data
-            data.score = data_array[i];
-            data.lives = data_array[i+1];
-            data.smart_bombs = data_array[i+2];
-            data.alien_number = data_array[i+3];
             
-            //store object in vector
-            saved_data_vector.push_back(data);                    
+            //Add object to vector
+            saved_data_vector.push_back(data);       
         }
-        
+         //printf ("saved_data_vector_ 1%d \n", saved_data_vector.size());
         fclose(fp); 
-    } 
+                
+    }
+       
+     
 }
 
 void SavedGames::display_saved_games(N5110 &lcd){
     lcd.clear();
     //prints saved game screen
-    lcd.printString("Saved Games",9,1);
-    lcd.drawSprite(39, 16, 3, 5, (int *)arrow_up);
-    lcd.drawSprite(39, 32, 3, 5, (int *)arrow_down);
+    lcd.printString("Saved Games",9,0);
+    lcd.drawSprite(39, 18, 3, 5, (int *)arrow_up);
+    lcd.drawSprite(39, 34, 3, 5, (int *)arrow_down);
     
     //prints saved game that is displayed
     char buffer[9]; 
-    sprintf(buffer,"Save = %2d",display_data_number_);
-    lcd.printString(buffer,15,3);
+    sprintf(buffer,"Save %2d",display_data_number_);
+    lcd.printString(buffer,21,3);
+    lcd.printString("B To Go Back",6,5);
     
     lcd.refresh();
 }
+
 bool SavedGames::get_error(){
     return error_;   
 }
 
-void SavedGames::saved_games_scroll(Gamepad &pad, Direction d_) {
+int SavedGames::get_display_data_number(){
+    return display_data_number_;
+}
+
+void SavedGames::saved_games_scroll(Direction d_) {
+    
     // Changes displayed manu part depending on joystick input
     if (d_ == N || d_ == NE || d_ == NW ) {   
         display_data_number_++;
@@ -146,7 +147,7 @@
     } else if (d_ == S || d_ == SW || d_ == SE) {
         display_data_number_--;
          if(display_data_number_ < 0 ){
-          display_data_number_ = saved_data_vector.size() - 1; 
+          display_data_number_ = saved_data_vector.size() ; 
         }
     }
     wait(0.15);