Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Revision:
53:01be7898c23f
Parent:
52:feb8cf28bcff
Child:
54:d46459104dea
diff -r feb8cf28bcff -r 01be7898c23f SavedGames/SavedGames.cpp
--- a/SavedGames/SavedGames.cpp	Tue May 19 17:08:06 2020 +0000
+++ b/SavedGames/SavedGames.cpp	Tue May 19 17:59:07 2020 +0000
@@ -10,8 +10,7 @@
 
 void SavedGames::init(SDFileSystem &sd,N5110 &lcd){
     error_ = false;
-    check_sd_present(sd,lcd);
-    check_open_file(sd,lcd);    
+    check_sd_present(sd,lcd); 
 }
 
 void SavedGames::check_sd_present(SDFileSystem &sd,N5110 &lcd){
@@ -27,43 +26,83 @@
     }
 }
 
-void SavedGames::check_open_file(SDFileSystem &sd,N5110 &lcd){
-    //opens file  
-    FILE *fp;  
-    fp = fopen("/sd/SavedGames.text", "a");
-    
-    //checks if file is opened corectly
-    if (fp == NULL) { 
-        error_ = true;
+void SavedGames::error_open_file(N5110 &lcd){
+    error_ = true;
         
-        //print error screen
-        lcd.clear();
-        lcd.printString(" Unable to  ",9,3);
-        lcd.printString(" open file  ",9,4);
-        lcd.refresh();
-        wait(3);
-    }    
+    //print error screen
+    lcd.clear();
+    lcd.printString(" Unable to  ",9,3);
+    lcd.printString(" open file  ",9,4);
+    lcd.refresh();
+    wait(3); 
 }
 
-void SavedGames::add_saved_data(SDFileSystem &sd,  SavedGamesData data,
+void SavedGames::add_saved_data(SDFileSystem &sd, SavedGamesData data,
 N5110 &lcd){
-    check_open_file(sd,lcd);
-    
     //opens file  
-    FILE *fp;  
-    fp = fopen("/sd/SavedGames.text", "a");
+    FILE *fp = fopen("/sd/SavedGames.txt", "a");
     
-    //Adda data to file if no error
-    if(!error_){
+    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); 
         fclose(fp);
-    }
+    }  
+}
+
+void SavedGames::read_saved_data(SDFileSystem &sd, N5110 &lcd){
+    //opens file  
+    FILE *fp = fopen("/sd/SavedGames.txt", "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++;  
+        }
+        
+        // puts array data into structs and sotres structs in vector
+        for(int i = 0; i <= line_number; i+=4){
+            //creats objects
+            SavedGamesData data;
+            
+            //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);                    
+        }
+        
+        fclose(fp); 
+    } 
 }
 
+
 bool SavedGames::get_error(){
     return error_;   
 }