Nemesis game, engine

Committer:
musallambseiso
Date:
Thu May 04 11:29:47 2017 +0000
Revision:
14:94011e4a0624
Parent:
13:f3560c403397
Final version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
musallambseiso 4:e84724dcad49 1 #ifndef ENGINE_H
musallambseiso 4:e84724dcad49 2 #define ENGINE_H
musallambseiso 4:e84724dcad49 3
musallambseiso 4:e84724dcad49 4 #include "mbed.h"
musallambseiso 4:e84724dcad49 5 #include "N5110.h"
musallambseiso 4:e84724dcad49 6 #include "Gamepad.h"
musallambseiso 12:d68c757d829a 7 #include "Enemy1.h"
musallambseiso 12:d68c757d829a 8 #include "Enemy2.h"
musallambseiso 12:d68c757d829a 9 #include "Enemy3.h"
musallambseiso 12:d68c757d829a 10 #include "Enemy4.h"
musallambseiso 12:d68c757d829a 11 #include "Enemy5.h"
musallambseiso 12:d68c757d829a 12 #include "Enemy6.h"
musallambseiso 4:e84724dcad49 13 #include "Friendly.h"
musallambseiso 12:d68c757d829a 14 #include "Rocket.h"
musallambseiso 7:4c19433600c8 15 #include "Stats.h"
musallambseiso 4:e84724dcad49 16
musallambseiso 13:f3560c403397 17 /** Engine Class
musallambseiso 13:f3560c403397 18 @brief Engine for interfacing with the Nemesis game. Includes drawing, checking, game state-changing methods,
musallambseiso 13:f3560c403397 19 @brief for Friendly and Enemy ships, Weapons, and Stats bar.
musallambseiso 13:f3560c403397 20 @brief Incorporates N5110.h and Gamepad.h files by Craig A. Evans.
musallambseiso 13:f3560c403397 21
musallambseiso 13:f3560c403397 22 @brief Revision 1.0
musallambseiso 13:f3560c403397 23
musallambseiso 13:f3560c403397 24 @author Musallam M. M. Bseiso
musallambseiso 13:f3560c403397 25 @date 3rd May 2017
musallambseiso 13:f3560c403397 26 */
musallambseiso 13:f3560c403397 27
musallambseiso 4:e84724dcad49 28 class Engine
musallambseiso 4:e84724dcad49 29 {
musallambseiso 4:e84724dcad49 30
musallambseiso 4:e84724dcad49 31 public:
musallambseiso 12:d68c757d829a 32
musallambseiso 12:d68c757d829a 33 /// Constructor and destructor:
musallambseiso 4:e84724dcad49 34 Engine();
musallambseiso 4:e84724dcad49 35 ~Engine();
musallambseiso 7:4c19433600c8 36
musallambseiso 12:d68c757d829a 37
musallambseiso 12:d68c757d829a 38 ////////////////////////////////
musallambseiso 12:d68c757d829a 39 //////// PUBLIC VARIABLES
musallambseiso 12:d68c757d829a 40 ////////////////////////////////
musallambseiso 12:d68c757d829a 41
musallambseiso 12:d68c757d829a 42
musallambseiso 12:d68c757d829a 43 /// Integer variable that stores the collisions the friendly ship has with the enemy ships:
musallambseiso 8:1c0bc1a08153 44 int collisions;
musallambseiso 12:d68c757d829a 45
musallambseiso 12:d68c757d829a 46 /// Integer variable that stores the number of the wave the player is currently in (or the number of waves survived):
musallambseiso 9:0efc8d7cdcf7 47 int wave_counter;
musallambseiso 12:d68c757d829a 48
musallambseiso 12:d68c757d829a 49 /// Boolean variable that stores if the player has a star available or not:
musallambseiso 12:d68c757d829a 50 bool star;
musallambseiso 12:d68c757d829a 51
musallambseiso 12:d68c757d829a 52 /// Integer variable that stores the number of rockets the player has available:
musallambseiso 11:10c01766f774 53 int ammo;
musallambseiso 12:d68c757d829a 54
musallambseiso 12:d68c757d829a 55 /// Integer variable that stores the number of pauses the player has available:
musallambseiso 12:d68c757d829a 56 int pauses;
musallambseiso 12:d68c757d829a 57
musallambseiso 12:d68c757d829a 58 /// Boolean variable that stores if a rocket has been shot or not:
musallambseiso 12:d68c757d829a 59 bool rocket_shot_trigger;
musallambseiso 12:d68c757d829a 60
musallambseiso 13:f3560c403397 61 /// Boolean variable that stores if health has been regenerated or not:
musallambseiso 13:f3560c403397 62 bool health_regen_trigger;
musallambseiso 13:f3560c403397 63
musallambseiso 12:d68c757d829a 64 /// Boolean variable that stores if a rocket has been regenerated or not:
musallambseiso 12:d68c757d829a 65 bool rocket_regen_trigger;
musallambseiso 12:d68c757d829a 66
musallambseiso 12:d68c757d829a 67 /// Boolean variable that stores if a star has been regenerated or not:
musallambseiso 12:d68c757d829a 68 bool star_regen_trigger;
musallambseiso 12:d68c757d829a 69
musallambseiso 12:d68c757d829a 70
musallambseiso 12:d68c757d829a 71 ////////////////////////////////
musallambseiso 12:d68c757d829a 72 //////// PUBLIC METHODS
musallambseiso 12:d68c757d829a 73 ////////////////////////////////
musallambseiso 12:d68c757d829a 74
musallambseiso 12:d68c757d829a 75
musallambseiso 12:d68c757d829a 76 /** Initialize Ships
musallambseiso 12:d68c757d829a 77 *
musallambseiso 12:d68c757d829a 78 * Initializes friendly and enemy ships' velocity (enemies) and x & y positions (both).
musallambseiso 12:d68c757d829a 79 * @param speed - velocity of ship
musallambseiso 13:f3560c403397 80 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 81 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 82 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 83 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 84 */
musallambseiso 13:f3560c403397 85 void init(int speed, N5110 &lcd, Gamepad &pad, int _collisions, int _wave_counter, int _ammo, bool _star, int _pauses);
musallambseiso 12:d68c757d829a 86
musallambseiso 12:d68c757d829a 87
musallambseiso 12:d68c757d829a 88 /** Read Input
musallambseiso 12:d68c757d829a 89 *
musallambseiso 12:d68c757d829a 90 * Reads direction (_d) and magnitude (_mag) from gamepad analog stick.
musallambseiso 13:f3560c403397 91 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 92 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 93 */
musallambseiso 4:e84724dcad49 94 void read_input(Gamepad &pad);
musallambseiso 12:d68c757d829a 95
musallambseiso 12:d68c757d829a 96
musallambseiso 12:d68c757d829a 97 /** Draw Elements
musallambseiso 12:d68c757d829a 98 *
musallambseiso 12:d68c757d829a 99 * Draws grid, health, weapons, wave counter, and friendly and enemy ships onto the LCD
musallambseiso 13:f3560c403397 100 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 101 * @param lcd - pointer to nokia LCD library
musallambseiso 12:d68c757d829a 102 */
musallambseiso 12:d68c757d829a 103 void draw_all(N5110 &lcd);
musallambseiso 12:d68c757d829a 104
musallambseiso 12:d68c757d829a 105
musallambseiso 12:d68c757d829a 106 /** Check All
musallambseiso 12:d68c757d829a 107 *
musallambseiso 12:d68c757d829a 108 * Method that includes all other checking methods
musallambseiso 13:f3560c403397 109 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 110 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 111 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 112 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 113 */
musallambseiso 12:d68c757d829a 114 void check_all(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 115
musallambseiso 12:d68c757d829a 116
musallambseiso 12:d68c757d829a 117 /** Update All
musallambseiso 12:d68c757d829a 118 *
musallambseiso 12:d68c757d829a 119 * Updates friendly and enemy ship parameters (position), as well as making sure the friendly ship doesn't go off screen
musallambseiso 12:d68c757d829a 120 * by limiting its x and y positions.
musallambseiso 13:f3560c403397 121 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 122 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 123 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 124 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 125 */
musallambseiso 12:d68c757d829a 126 void update_all(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 127
musallambseiso 12:d68c757d829a 128
musallambseiso 12:d68c757d829a 129 /** Shoot Rocket
musallambseiso 12:d68c757d829a 130 *
musallambseiso 12:d68c757d829a 131 * Triggers a rocket to be shot from the friendly ship, destroying enemy ship opposite, at the press of a button (B).
musallambseiso 12:d68c757d829a 132 * Checks if rockets ("ammo" variable) available, draws rocket onto screen, triggers "check_enemy_death" method, subtracts 1 from
musallambseiso 12:d68c757d829a 133 * "ammo", and outputs a sound. First of two weapon types.
musallambseiso 13:f3560c403397 134 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 135 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 136 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 137 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 138 */
musallambseiso 12:d68c757d829a 139 void shoot_rocket(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 140
musallambseiso 12:d68c757d829a 141
musallambseiso 12:d68c757d829a 142 /** Shoot Star
musallambseiso 12:d68c757d829a 143 *
musallambseiso 12:d68c757d829a 144 * Triggers a star to be shot from the friendly ship, destroying all enemy ships, at the press of a button (A).
musallambseiso 12:d68c757d829a 145 * Checks if star ("star" variable) available, sets "star" to false, and outputs a sound. Second of two weapon types.
musallambseiso 13:f3560c403397 146 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 147 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 148 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 149 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 150 */
musallambseiso 12:d68c757d829a 151 void shoot_star(N5110 &lcd, Gamepad &pad);
musallambseiso 4:e84724dcad49 152
musallambseiso 4:e84724dcad49 153 private:
musallambseiso 9:0efc8d7cdcf7 154
musallambseiso 12:d68c757d829a 155
musallambseiso 12:d68c757d829a 156 ////////////////////////////////
musallambseiso 12:d68c757d829a 157 //////// PRIVATE VARIABLES
musallambseiso 12:d68c757d829a 158 ////////////////////////////////
musallambseiso 12:d68c757d829a 159
musallambseiso 12:d68c757d829a 160
musallambseiso 12:d68c757d829a 161 /// Integer variable that stores the speed of the enemy ships:
musallambseiso 12:d68c757d829a 162 int _speed;
musallambseiso 12:d68c757d829a 163
musallambseiso 12:d68c757d829a 164 /// Variable that stores the direction of the analog stick:
musallambseiso 12:d68c757d829a 165 Direction _d;
musallambseiso 12:d68c757d829a 166
musallambseiso 12:d68c757d829a 167 /// Floating point variable that stores the magnitude of the analog stick movement:
musallambseiso 12:d68c757d829a 168 float _mag;
musallambseiso 12:d68c757d829a 169
musallambseiso 12:d68c757d829a 170 /// Objects created:
musallambseiso 12:d68c757d829a 171 Friendly _friendly;
musallambseiso 12:d68c757d829a 172 Enemy1 _enemy1;
musallambseiso 12:d68c757d829a 173 Enemy2 _enemy2;
musallambseiso 12:d68c757d829a 174 Enemy3 _enemy3;
musallambseiso 12:d68c757d829a 175 Enemy4 _enemy4;
musallambseiso 12:d68c757d829a 176 Enemy5 _enemy5;
musallambseiso 12:d68c757d829a 177 Enemy6 _enemy6;
musallambseiso 12:d68c757d829a 178 Rocket _rocket;
musallambseiso 12:d68c757d829a 179 Stats _stats;
musallambseiso 12:d68c757d829a 180
musallambseiso 12:d68c757d829a 181 ////////////////////////////////
musallambseiso 12:d68c757d829a 182 //////// PRIVATE METHODS
musallambseiso 12:d68c757d829a 183 ////////////////////////////////
musallambseiso 12:d68c757d829a 184
musallambseiso 12:d68c757d829a 185
musallambseiso 13:f3560c403397 186 /** Check Enemy Pass (high)
musallambseiso 12:d68c757d829a 187 *
musallambseiso 13:f3560c403397 188 * Reinitializes enemy ships that have passed off-screen (x < 0) to their starting position. As Enemy1 passes,
musallambseiso 13:f3560c403397 189 * increments wave counter (adds 1 to the "wave_counter" variable), then resets rocket and star regeneration
musallambseiso 13:f3560c403397 190 * trigger to false (sets "rocket_regen_trigger" and "star_regen_trigger" to false) to allow further regeneration
musallambseiso 13:f3560c403397 191 * at next wave. This method only deals with reinitializing the upper 3 enemies (Enemy1, Enemy2, and Enemy3).
musallambseiso 13:f3560c403397 192 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 193 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 194 */
musallambseiso 13:f3560c403397 195 void check_enemy_pass_high(Gamepad &pad);
musallambseiso 12:d68c757d829a 196
musallambseiso 12:d68c757d829a 197
musallambseiso 13:f3560c403397 198 /** Check Enemy Pass (low)
musallambseiso 13:f3560c403397 199 *
musallambseiso 13:f3560c403397 200 * Reinitializes enemy ships that have passed off-screen (x < 0) to their starting position. This method only deals
musallambseiso 13:f3560c403397 201 * with reinitializing the lower 3 enemies (Enemy4, Enemy5, and Enemy6).
musallambseiso 13:f3560c403397 202 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 203 * @param pad - pointer to gamepad library
musallambseiso 13:f3560c403397 204 */
musallambseiso 13:f3560c403397 205 void check_enemy_pass_low(Gamepad &pad);
musallambseiso 13:f3560c403397 206
musallambseiso 13:f3560c403397 207
musallambseiso 13:f3560c403397 208 /** Check Enemy Death (high)
musallambseiso 12:d68c757d829a 209 *
musallambseiso 13:f3560c403397 210 * Reinitializes enemy ships that have been shot by a rocket to their starting position. This method only deals with
musallambseiso 13:f3560c403397 211 * reinitializing the upper 3 enemies (Enemy1, Enemy2, and Enemy3).
musallambseiso 13:f3560c403397 212 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 213 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 214 */
musallambseiso 13:f3560c403397 215 void check_enemy_death_high(Gamepad &pad);
musallambseiso 13:f3560c403397 216
musallambseiso 13:f3560c403397 217
musallambseiso 13:f3560c403397 218 /** Check Enemy Death (low)
musallambseiso 13:f3560c403397 219 *
musallambseiso 13:f3560c403397 220 * Reinitializes enemy ships that have been shot by a rocket to their starting position. This method only deals with
musallambseiso 13:f3560c403397 221 * reinitializing the lower 3 enemies (Enemy4, Enemy5, and Enemy6).
musallambseiso 13:f3560c403397 222 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 223 * @param pad - pointer to gamepad library
musallambseiso 13:f3560c403397 224 */
musallambseiso 13:f3560c403397 225 void check_enemy_death_low(Gamepad &pad);
musallambseiso 12:d68c757d829a 226
musallambseiso 12:d68c757d829a 227
musallambseiso 12:d68c757d829a 228 /** Check Friendly Death
musallambseiso 12:d68c757d829a 229 *
musallambseiso 12:d68c757d829a 230 * Registers friendly collisions with an enemy ship (adds 1 to "collisions" variable).
musallambseiso 12:d68c757d829a 231 */
musallambseiso 12:d68c757d829a 232 void check_friendly_death(Gamepad &pad, Vector2D ship_pos);
musallambseiso 12:d68c757d829a 233
musallambseiso 12:d68c757d829a 234
musallambseiso 13:f3560c403397 235 /** Check Friendly Death All
musallambseiso 12:d68c757d829a 236 *
musallambseiso 12:d68c757d829a 237 * Method that includes "check_friendly_death" method for all 6 enemy ships.
musallambseiso 13:f3560c403397 238 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 239 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 240 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 241 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 242 */
musallambseiso 13:f3560c403397 243 void check_friendly_death_all(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 244
musallambseiso 4:e84724dcad49 245
musallambseiso 13:f3560c403397 246 /** Check Health Replenish
musallambseiso 13:f3560c403397 247 *
musallambseiso 13:f3560c403397 248 * Regenerates health (subtracts 1 to "collisions" variable) at certain waves, if "health_regen_trigger" is false, and
musallambseiso 13:f3560c403397 249 * the player has less than full health already (only executes if "collisions" is non-zero).
musallambseiso 13:f3560c403397 250 * Then sets "health_regen_trigger" to true to prevent excessive health regeneration.
musallambseiso 13:f3560c403397 251 */
musallambseiso 13:f3560c403397 252 void check_health_replenish();
musallambseiso 13:f3560c403397 253
musallambseiso 13:f3560c403397 254
musallambseiso 13:f3560c403397 255 /** Check Rocket Replenish
musallambseiso 12:d68c757d829a 256 *
musallambseiso 12:d68c757d829a 257 * Regenerates rockets (adds 1 to "ammo" variable) at certain waves, if "rocket_regen_trigger" is false, and
musallambseiso 12:d68c757d829a 258 * the player has less than 3 rockets already, as the maximum is 3 (only executes if "ammo" is less than 3).
musallambseiso 12:d68c757d829a 259 * Then sets "rocket_regen_trigger" to true to prevent excessive rocket regeneration.
musallambseiso 12:d68c757d829a 260 */
musallambseiso 13:f3560c403397 261 void check_rocket_replenish();
musallambseiso 12:d68c757d829a 262
musallambseiso 11:10c01766f774 263
musallambseiso 13:f3560c403397 264 /** Check Star Replenish
musallambseiso 12:d68c757d829a 265 *
musallambseiso 12:d68c757d829a 266 * Regenerates star (sets "star" variable to true) at certain waves, if "star_regen_trigger" is false, and
musallambseiso 12:d68c757d829a 267 * the player does not already have a star, as the maximum is 1 (only executes if "star" is false). Then sets
musallambseiso 12:d68c757d829a 268 * "star_regen_trigger" to true to prevent excessive star regeneration.
musallambseiso 12:d68c757d829a 269 */
musallambseiso 13:f3560c403397 270 void check_star_replenish();
musallambseiso 12:d68c757d829a 271
musallambseiso 12:d68c757d829a 272
musallambseiso 12:d68c757d829a 273 /** Check Level 2
musallambseiso 12:d68c757d829a 274 *
musallambseiso 12:d68c757d829a 275 * Moves on to level 2 if wave 5 has been reached. A dialog box is drawn onto the LCD, and the player can move on
musallambseiso 12:d68c757d829a 276 * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the
musallambseiso 12:d68c757d829a 277 * enemy ships at their starting positions at an elevated speed (at LEVEL_TWO, which is defined as 3).
musallambseiso 12:d68c757d829a 278 * Sets the wave to 6 (sets "wave_counter" variable to 6).
musallambseiso 13:f3560c403397 279 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 280 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 281 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 282 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 283 */
musallambseiso 12:d68c757d829a 284 void check_level_two(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 285
musallambseiso 12:d68c757d829a 286
musallambseiso 12:d68c757d829a 287 /** Check Level 3
musallambseiso 12:d68c757d829a 288 *
musallambseiso 12:d68c757d829a 289 * Moves on to level 3 if wave 25 has been reached. A dialog box is drawn onto the LCD, and the player can move on
musallambseiso 12:d68c757d829a 290 * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the
musallambseiso 12:d68c757d829a 291 * enemy ships at their starting positions at an elevated speed (at LEVEL_THREE, which is defined as 4).
musallambseiso 12:d68c757d829a 292 * Sets the wave to 26 (sets "wave_counter" variable to 26).
musallambseiso 13:f3560c403397 293 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 294 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 295 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 296 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 297 */
musallambseiso 12:d68c757d829a 298 void check_level_three(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 299
musallambseiso 12:d68c757d829a 300
musallambseiso 12:d68c757d829a 301 /** Check Level 4
musallambseiso 12:d68c757d829a 302 *
musallambseiso 12:d68c757d829a 303 * Moves on to level 4 if wave 50 has been reached. A dialog box is drawn onto the LCD, and the player can move on
musallambseiso 12:d68c757d829a 304 * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the
musallambseiso 12:d68c757d829a 305 * enemy ships at their starting positions at an elevated speed (at LEVEL_FOUR, which is defined as 5).
musallambseiso 12:d68c757d829a 306 * Sets the wave to 51 (sets "wave_counter" variable to 51).
musallambseiso 13:f3560c403397 307 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 308 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 309 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 310 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 311 */
musallambseiso 12:d68c757d829a 312 void check_level_four(N5110 &lcd, Gamepad &pad);
musallambseiso 8:1c0bc1a08153 313
musallambseiso 12:d68c757d829a 314
musallambseiso 12:d68c757d829a 315 /** Check Level 5
musallambseiso 12:d68c757d829a 316 *
musallambseiso 12:d68c757d829a 317 * Moves on to level 5 if wave 100 has been reached. A dialog box is drawn onto the LCD, and the player can move on
musallambseiso 12:d68c757d829a 318 * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the
musallambseiso 12:d68c757d829a 319 * enemy ships at their starting positions at an elevated speed (at LEVEL_FIVE, which is defined as 6).
musallambseiso 12:d68c757d829a 320 * Sets the wave to 101 (sets "wave_counter" variable to 101).
musallambseiso 13:f3560c403397 321 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 322 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 323 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 324 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 325 */
musallambseiso 12:d68c757d829a 326 void check_level_five(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 327
musallambseiso 12:d68c757d829a 328
musallambseiso 12:d68c757d829a 329 /** Check Pause
musallambseiso 12:d68c757d829a 330 *
musallambseiso 12:d68c757d829a 331 * Pauses the game if a button (START) is pressed, and the player has remaining pauses to use ("pause" variable is > 0).
musallambseiso 12:d68c757d829a 332 * Flashes the pad's LEDs and switches the LCD's mode between normal and inverse until a button (START) is pressed again.
musallambseiso 12:d68c757d829a 333 * Once unpaused, removes one pause from the player (subtracts 1 from the "pauses" variable).
musallambseiso 13:f3560c403397 334 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 335 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 336 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 337 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 338 */
musallambseiso 12:d68c757d829a 339 void check_pause(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 340
musallambseiso 12:d68c757d829a 341
musallambseiso 12:d68c757d829a 342 /** Check LCD Mode
musallambseiso 12:d68c757d829a 343 *
musallambseiso 12:d68c757d829a 344 * Toggles 'night' mode (LCD's inverse mode) if a button (LEFT) is pressed. Sets the mode back to normal (LCD's normal mode)
musallambseiso 12:d68c757d829a 345 * if a button (RIGHT) is pressed.
musallambseiso 13:f3560c403397 346 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 347 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 348 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 349 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 350 */
musallambseiso 12:d68c757d829a 351 void check_mode_toggle(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 352
musallambseiso 12:d68c757d829a 353
musallambseiso 12:d68c757d829a 354 /** Check for Gameover Sequence
musallambseiso 12:d68c757d829a 355 *
musallambseiso 12:d68c757d829a 356 * Ends the game if the player has no lives remaining ("collisions" variable is above 5). A dialog box is printed onto the LCD,
musallambseiso 12:d68c757d829a 357 * showing the player's score (waves survived). Once a button is pressed (BACK), the friendly ship is reinitialized at its
musallambseiso 12:d68c757d829a 358 * starting position, and the enemy ships at their starting positions at the initial speed (at LEVEL_ONE, which is defined as 2).
musallambseiso 13:f3560c403397 359 * @param N5110 - nokia LCD library
musallambseiso 13:f3560c403397 360 * @param lcd - pointer to nokia LCD library
musallambseiso 13:f3560c403397 361 * @param Gamepad - gamepad library
musallambseiso 13:f3560c403397 362 * @param pad - pointer to gamepad library
musallambseiso 12:d68c757d829a 363 */
musallambseiso 12:d68c757d829a 364 void check_gameover(N5110 &lcd, Gamepad &pad);
musallambseiso 12:d68c757d829a 365
musallambseiso 4:e84724dcad49 366 };
musallambseiso 4:e84724dcad49 367
musallambseiso 4:e84724dcad49 368 #endif