Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Committer:
evanso
Date:
Thu May 21 22:46:23 2020 +0000
Revision:
68:bb1650c657ef
Parent:
67:a2984682d641
Child:
75:643a509cf9ed
Added sprites file to store letter for the title screen and arrows for menus. Also added a time to stop double-button presses.

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