Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

SavedGames/SavedGames.h

Committer:
evanso
Date:
2020-05-21
Revision:
68:bb1650c657ef
Parent:
67:a2984682d641
Child:
75:643a509cf9ed

File content as of revision 68:bb1650c657ef:

#ifndef SAVEDGAMES_H
#define SAVEDGAMES_H

// Included libraries ----------------------------------------------------------
#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "SDFileSystem.h"
#include "Sprites.h"

struct SavedGamesData{
    int score; /**< Score variable */
    int lives; /**< lives left variable */
    int smart_bombs; /**< smart_bombs left variable */
    int alien_number; /**< number of alien on screen variable*/
};

/** SavedGames class
 * @brief Stores saved games on sd card, stores score, lives, smart bombs and 
 * number of current alliens 
 * @author Benjamin Evans, University of Leeds
 * @date May 2020
 */      
class  SavedGames{
    public:
        /** Constructor */
         SavedGames();
        
        /** Destructor */
        ~SavedGames();
        
        /** Initalises SavedGames
         * @param lcd @details N5110 object
         * @param sd @details sd card object
         */
        void init();
        
        /** Adds saved data to sd card 
         * @param sd @details sd card object
         * @param data @details SavedGamesData struct
         * @param lcd @details N5110 object
         */
        void add_saved_data(SDFileSystem &sd,SavedGamesData data, N5110 &lcd); 
        
        /** Reads saved data from sd cardand return it as a struct
         * @param sd @details sd card object
         * @param lcd @details N5110 object
         * @return data @details SavedGamesData struct
         */
        SavedGamesData read_saved_data(SDFileSystem &sd, N5110 &lcd);
        
        /** Scrolls through the diffent saved games parts
         * @param d_ @details Direction of joystick
         */
        void saved_games_scroll(Direction d_);
        
        /** Draws the saved game screen
         * @param lcd @details N5110 object
         */
        void display_saved_games(N5110 &lcd);
        
         /** Draws the select save game select screen
         * @param lcd @details N5110 object
         */
        void save_game_screen(N5110 &lcd);
        
        /** Runs the save test unit test
         * @param lcd @details N5110 object
         * @param sd @details sd card object
         */
        void run_save_test(SDFileSystem &sd, N5110 &lcd);
        
        /** Save test unit test, checks the saving and reading functions work
         * @param lcd @details N5110 object
         * @param sd @details sd card object
         * @param d_ @details Direction of joystick
         */
        bool save_test(Direction d_,SDFileSystem &sd, N5110 &lcd);
        
    // Accessors and mutators --------------------------------------------------
        
        /** Gets error flag
         * @return error_;
         */
        bool get_error();
        
         /** set error
         * @param error;
         */
        void set_error(bool error);
        
        /** Gets the displayed saved game number
         * @return display_data_number_;
         */
        int get_display_data_number();
        
    private:   
    // Function prototypes -----------------------------------------------------
    
        /** Check if sd card is inserted and print message if not
         * @param lcd @details N5110 object
         * @param sd @details sd card object
         * @note Dont think sd.card_present()function acutally works 
         */
        void check_sd_present(SDFileSystem &sd,N5110 &lcd); 
        
        /** shows error if saved data files opens incorrectly
         * @param lcd @details N5110 object
         */
        void error_open_file(N5110 &lcd);
        
        /** Draws no saved files screen
         * @param lcd @details N5110 object
         */
        void no_saved_files(N5110 &lcd);
 
    // Varibles ---------------------------------------------------------------- 
        
        /** Flag for error, true = error */
        bool error_;
        
        /** Variable for which vector data to select */
        int display_data_number_;
        
        
};
#endif