Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Committer:
evanso
Date:
Mon May 25 18:39:51 2020 +0000
Revision:
82:3211b31e9421
Parent:
79:66bcf8fa2d2d
Child:
85:87bc28b151d8
Made commenting and formatting of code more consistent.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
evanso 49:ed569eceeaa4 1 #ifndef SAVEDGAMES_H
evanso 49:ed569eceeaa4 2 #define SAVEDGAMES_H
evanso 49:ed569eceeaa4 3
evanso 82:3211b31e9421 4 // Included Headers ------------------------------------------------------------
evanso 49:ed569eceeaa4 5 #include "mbed.h"
evanso 49:ed569eceeaa4 6 #include "N5110.h"
evanso 49:ed569eceeaa4 7 #include "Gamepad.h"
evanso 50:13c8710985f4 8 #include "SDFileSystem.h"
evanso 68:bb1650c657ef 9 #include "Sprites.h"
evanso 78:6a6c93c19ed1 10 #include "SDErrors.h"
evanso 51:35cb8e604b72 11
evanso 51:35cb8e604b72 12 struct SavedGamesData{
evanso 52:feb8cf28bcff 13 int score; /**< Score variable */
evanso 82:3211b31e9421 14 int lives; /**< Lives left variable */
evanso 82:3211b31e9421 15 int smart_bombs; /**< Smart_bombs left variable */
evanso 82:3211b31e9421 16 int alien_number; /**< Number of alien on screen variable*/
evanso 51:35cb8e604b72 17 };
evanso 49:ed569eceeaa4 18
evanso 49:ed569eceeaa4 19 /** SavedGames class
evanso 49:ed569eceeaa4 20 * @brief Stores saved games on sd card, stores score, lives, smart bombs and
evanso 49:ed569eceeaa4 21 * number of current alliens
evanso 49:ed569eceeaa4 22 * @author Benjamin Evans, University of Leeds
evanso 49:ed569eceeaa4 23 * @date May 2020
evanso 49:ed569eceeaa4 24 */
evanso 78:6a6c93c19ed1 25 class SavedGames: public SDErrors{
evanso 49:ed569eceeaa4 26 public:
evanso 49:ed569eceeaa4 27 /** Constructor */
evanso 49:ed569eceeaa4 28 SavedGames();
evanso 49:ed569eceeaa4 29
evanso 49:ed569eceeaa4 30 /** Destructor */
evanso 49:ed569eceeaa4 31 ~SavedGames();
evanso 49:ed569eceeaa4 32
evanso 51:35cb8e604b72 33 /** Initalises SavedGames
evanso 51:35cb8e604b72 34 */
evanso 67:a2984682d641 35 void init();
evanso 49:ed569eceeaa4 36
evanso 51:35cb8e604b72 37 /** Adds saved data to sd card
evanso 51:35cb8e604b72 38 * @param sd @details sd card object
evanso 53:01be7898c23f 39 * @param data @details SavedGamesData struct
evanso 54:d46459104dea 40 * @param lcd @details N5110 object
evanso 51:35cb8e604b72 41 */
evanso 59:0b2e43312d6b 42 void add_saved_data(SDFileSystem &sd,SavedGamesData data, N5110 &lcd);
evanso 53:01be7898c23f 43
evanso 61:7c4ec680a428 44 /** Reads saved data from sd cardand return it as a struct
evanso 53:01be7898c23f 45 * @param sd @details sd card object
evanso 54:d46459104dea 46 * @param lcd @details N5110 object
evanso 61:7c4ec680a428 47 * @return data @details SavedGamesData struct
evanso 53:01be7898c23f 48 */
evanso 61:7c4ec680a428 49 SavedGamesData read_saved_data(SDFileSystem &sd, N5110 &lcd);
evanso 54:d46459104dea 50
evanso 54:d46459104dea 51 /** Scrolls through the diffent saved games parts
evanso 54:d46459104dea 52 * @param d_ @details Direction of joystick
evanso 54:d46459104dea 53 */
evanso 59:0b2e43312d6b 54 void saved_games_scroll(Direction d_);
evanso 54:d46459104dea 55
evanso 54:d46459104dea 56 /** Draws the saved game screen
evanso 54:d46459104dea 57 * @param lcd @details N5110 object
evanso 54:d46459104dea 58 */
evanso 54:d46459104dea 59 void display_saved_games(N5110 &lcd);
evanso 59:0b2e43312d6b 60
evanso 61:7c4ec680a428 61 /** Draws the select save game select screen
evanso 60:55fdc6bb29b9 62 * @param lcd @details N5110 object
evanso 60:55fdc6bb29b9 63 */
evanso 60:55fdc6bb29b9 64 void save_game_screen(N5110 &lcd);
evanso 60:55fdc6bb29b9 65
evanso 67:a2984682d641 66 /** Runs the save test unit test
evanso 67:a2984682d641 67 * @param lcd @details N5110 object
evanso 67:a2984682d641 68 * @param sd @details sd card object
evanso 67:a2984682d641 69 */
evanso 67:a2984682d641 70 void run_save_test(SDFileSystem &sd, N5110 &lcd);
evanso 67:a2984682d641 71
evanso 49:ed569eceeaa4 72 // Accessors and mutators --------------------------------------------------
evanso 49:ed569eceeaa4 73
evanso 59:0b2e43312d6b 74 /** Gets the displayed saved game number
evanso 59:0b2e43312d6b 75 * @return display_data_number_;
evanso 59:0b2e43312d6b 76 */
evanso 59:0b2e43312d6b 77 int get_display_data_number();
evanso 59:0b2e43312d6b 78
evanso 49:ed569eceeaa4 79 private:
evanso 64:e9dfc35a1738 80 // Function prototypes -----------------------------------------------------
evanso 64:e9dfc35a1738 81
evanso 64:e9dfc35a1738 82 /** Check if sd card is inserted and print message if not
evanso 64:e9dfc35a1738 83 * @param lcd @details N5110 object
evanso 64:e9dfc35a1738 84 * @param sd @details sd card object
evanso 64:e9dfc35a1738 85 * @note Dont think sd.card_present()function acutally works
evanso 64:e9dfc35a1738 86 */
evanso 64:e9dfc35a1738 87 void check_sd_present(SDFileSystem &sd,N5110 &lcd);
evanso 64:e9dfc35a1738 88
evanso 82:3211b31e9421 89 /** Shows error if saved data files opens incorrectly
evanso 64:e9dfc35a1738 90 * @param lcd @details N5110 object
evanso 64:e9dfc35a1738 91 */
evanso 64:e9dfc35a1738 92 void error_open_file(N5110 &lcd);
evanso 64:e9dfc35a1738 93
evanso 64:e9dfc35a1738 94 /** Draws no saved files screen
evanso 64:e9dfc35a1738 95 * @param lcd @details N5110 object
evanso 64:e9dfc35a1738 96 */
evanso 64:e9dfc35a1738 97 void no_saved_files(N5110 &lcd);
evanso 79:66bcf8fa2d2d 98
evanso 79:66bcf8fa2d2d 99 /** Save test unit test, checks the saving and reading functions work
evanso 79:66bcf8fa2d2d 100 * @param lcd @details N5110 object
evanso 79:66bcf8fa2d2d 101 * @param sd @details sd card object
evanso 79:66bcf8fa2d2d 102 * @param d_ @details Direction of joystick
evanso 79:66bcf8fa2d2d 103 */
evanso 79:66bcf8fa2d2d 104 bool save_test(Direction d_,SDFileSystem &sd, N5110 &lcd);
evanso 67:a2984682d641 105
evanso 49:ed569eceeaa4 106 // Varibles ----------------------------------------------------------------
evanso 49:ed569eceeaa4 107
evanso 54:d46459104dea 108 /** Variable for which vector data to select */
evanso 54:d46459104dea 109 int display_data_number_;
evanso 61:7c4ec680a428 110
evanso 61:7c4ec680a428 111
evanso 49:ed569eceeaa4 112 };
evanso 49:ed569eceeaa4 113 #endif