Version of Robotron arcade game using LPC1768, a Gameduino shield, a serial EEPROM (for high scores), two microswitch joysticks and two buttons plus a box to put it in. 20 levels of mayhem.

Dependencies:   25LCxxx_SPI CommonTypes Gameduino mbed

Committer:
RichardE
Date:
Tue Jun 04 20:16:33 2013 +0000
Revision:
0:5fa232ee5fdf
Child:
10:bfa1c307c99d
Started conversion from Maple version of game. So far Gameduino seems to have been initialised OK and just displays a sign on message. Lots of commented out code.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RichardE 0:5fa232ee5fdf 1 /*
RichardE 0:5fa232ee5fdf 2 * SOURCE FILE : LevelCollection.cpp
RichardE 0:5fa232ee5fdf 3 *
RichardE 0:5fa232ee5fdf 4 * Definition of class LevelCollection.
RichardE 0:5fa232ee5fdf 5 *
RichardE 0:5fa232ee5fdf 6 */
RichardE 0:5fa232ee5fdf 7
RichardE 0:5fa232ee5fdf 8 #include <stdio.h>
RichardE 0:5fa232ee5fdf 9 #include "LevelCollection.h"
RichardE 0:5fa232ee5fdf 10 #include "Level0.h"
RichardE 0:5fa232ee5fdf 11 #include "Level1.h"
RichardE 0:5fa232ee5fdf 12 #include "Level2.h"
RichardE 0:5fa232ee5fdf 13 #if 0
RichardE 0:5fa232ee5fdf 14 #include "Level3.h"
RichardE 0:5fa232ee5fdf 15 #include "Level4.h"
RichardE 0:5fa232ee5fdf 16 #include "Level5.h"
RichardE 0:5fa232ee5fdf 17 #include "Level6.h"
RichardE 0:5fa232ee5fdf 18 #include "Level7.h"
RichardE 0:5fa232ee5fdf 19 #include "Level8.h"
RichardE 0:5fa232ee5fdf 20 #include "Level9.h"
RichardE 0:5fa232ee5fdf 21 #include "Level10.h"
RichardE 0:5fa232ee5fdf 22 #include "Level10.h"
RichardE 0:5fa232ee5fdf 23 #include "Level11.h"
RichardE 0:5fa232ee5fdf 24 #include "Level12.h"
RichardE 0:5fa232ee5fdf 25 #include "Level13.h"
RichardE 0:5fa232ee5fdf 26 #include "Level14.h"
RichardE 0:5fa232ee5fdf 27 #include "Level15.h"
RichardE 0:5fa232ee5fdf 28 #include "Level16.h"
RichardE 0:5fa232ee5fdf 29 #include "Level17.h"
RichardE 0:5fa232ee5fdf 30 #include "Level18.h"
RichardE 0:5fa232ee5fdf 31 #include "Level19.h"
RichardE 0:5fa232ee5fdf 32 #include "Level20.h"
RichardE 0:5fa232ee5fdf 33 #endif
RichardE 0:5fa232ee5fdf 34
RichardE 0:5fa232ee5fdf 35 /***************/
RichardE 0:5fa232ee5fdf 36 /* CONSTRUCTOR */
RichardE 0:5fa232ee5fdf 37 /***************/
RichardE 0:5fa232ee5fdf 38 LevelCollection::LevelCollection() {
RichardE 0:5fa232ee5fdf 39 }
RichardE 0:5fa232ee5fdf 40
RichardE 0:5fa232ee5fdf 41 /**************/
RichardE 0:5fa232ee5fdf 42 /* DESTRUCTOR */
RichardE 0:5fa232ee5fdf 43 /**************/
RichardE 0:5fa232ee5fdf 44 LevelCollection::~LevelCollection() {
RichardE 0:5fa232ee5fdf 45 }
RichardE 0:5fa232ee5fdf 46
RichardE 0:5fa232ee5fdf 47 #define LEVELCOUNT 3
RichardE 0:5fa232ee5fdf 48
RichardE 0:5fa232ee5fdf 49 /************************/
RichardE 0:5fa232ee5fdf 50 /* GET NUMBER OF LEVELS */
RichardE 0:5fa232ee5fdf 51 /************************/
RichardE 0:5fa232ee5fdf 52 UInt8 LevelCollection::GetLevelCount( void ) const {
RichardE 0:5fa232ee5fdf 53 return LEVELCOUNT;
RichardE 0:5fa232ee5fdf 54 }
RichardE 0:5fa232ee5fdf 55
RichardE 0:5fa232ee5fdf 56 // Individual levels.
RichardE 0:5fa232ee5fdf 57 static Level0 level0; // Not a real level. This is attract mode.
RichardE 0:5fa232ee5fdf 58 static Level1 level1;
RichardE 0:5fa232ee5fdf 59 static Level2 level2;
RichardE 0:5fa232ee5fdf 60 #if 0
RichardE 0:5fa232ee5fdf 61 static Level3 level3;
RichardE 0:5fa232ee5fdf 62 static Level4 level4;
RichardE 0:5fa232ee5fdf 63 static Level5 level5;
RichardE 0:5fa232ee5fdf 64 static Level6 level6;
RichardE 0:5fa232ee5fdf 65 static Level7 level7;
RichardE 0:5fa232ee5fdf 66 static Level8 level8;
RichardE 0:5fa232ee5fdf 67 static Level9 level9;
RichardE 0:5fa232ee5fdf 68 static Level10 level10;
RichardE 0:5fa232ee5fdf 69 static Level11 level11;
RichardE 0:5fa232ee5fdf 70 static Level12 level12;
RichardE 0:5fa232ee5fdf 71 static Level13 level13;
RichardE 0:5fa232ee5fdf 72 static Level14 level14;
RichardE 0:5fa232ee5fdf 73 static Level15 level15;
RichardE 0:5fa232ee5fdf 74 static Level16 level16;
RichardE 0:5fa232ee5fdf 75 static Level17 level17;
RichardE 0:5fa232ee5fdf 76 static Level18 level18;
RichardE 0:5fa232ee5fdf 77 static Level19 level19;
RichardE 0:5fa232ee5fdf 78 static Level20 level20;
RichardE 0:5fa232ee5fdf 79 #endif
RichardE 0:5fa232ee5fdf 80
RichardE 0:5fa232ee5fdf 81 // Pointers to all the levels.
RichardE 0:5fa232ee5fdf 82 // If I have got this right then each pointer in the array points to a
RichardE 0:5fa232ee5fdf 83 // Level that is NOT const, but the array itself is const and cannot be modified.
RichardE 0:5fa232ee5fdf 84 static Level* const levels[ LEVELCOUNT ] = {
RichardE 0:5fa232ee5fdf 85 &level0,
RichardE 0:5fa232ee5fdf 86 &level1,
RichardE 0:5fa232ee5fdf 87 &level2,
RichardE 0:5fa232ee5fdf 88 #if 0
RichardE 0:5fa232ee5fdf 89 &level3,
RichardE 0:5fa232ee5fdf 90 &level4,
RichardE 0:5fa232ee5fdf 91 &level5,
RichardE 0:5fa232ee5fdf 92 &level6,
RichardE 0:5fa232ee5fdf 93 &level7,
RichardE 0:5fa232ee5fdf 94 &level8,
RichardE 0:5fa232ee5fdf 95 &level9,
RichardE 0:5fa232ee5fdf 96 &level10,
RichardE 0:5fa232ee5fdf 97 &level11,
RichardE 0:5fa232ee5fdf 98 &level12,
RichardE 0:5fa232ee5fdf 99 &level13,
RichardE 0:5fa232ee5fdf 100 &level14,
RichardE 0:5fa232ee5fdf 101 &level15,
RichardE 0:5fa232ee5fdf 102 &level16,
RichardE 0:5fa232ee5fdf 103 &level17,
RichardE 0:5fa232ee5fdf 104 &level18,
RichardE 0:5fa232ee5fdf 105 &level19,
RichardE 0:5fa232ee5fdf 106 &level20,
RichardE 0:5fa232ee5fdf 107 #endif
RichardE 0:5fa232ee5fdf 108 };
RichardE 0:5fa232ee5fdf 109
RichardE 0:5fa232ee5fdf 110 /***************/
RichardE 0:5fa232ee5fdf 111 /* GET A LEVEL */
RichardE 0:5fa232ee5fdf 112 /***************/
RichardE 0:5fa232ee5fdf 113 // Pass level number in levelNumber.
RichardE 0:5fa232ee5fdf 114 // Returns pointer to level or NULL if no such level.
RichardE 0:5fa232ee5fdf 115 Level *LevelCollection::GetLevel( UInt8 levelNumber ) {
RichardE 0:5fa232ee5fdf 116 if( levelNumber >= LEVELCOUNT ) {
RichardE 0:5fa232ee5fdf 117 return (Level*)NULL;
RichardE 0:5fa232ee5fdf 118 }
RichardE 0:5fa232ee5fdf 119 else {
RichardE 0:5fa232ee5fdf 120 // Fetch pointer to level from array and tag it with the
RichardE 0:5fa232ee5fdf 121 // correct level number before returning it.
RichardE 0:5fa232ee5fdf 122 Level *level = levels[ levelNumber ];
RichardE 0:5fa232ee5fdf 123 level->LevelNumber = levelNumber;
RichardE 0:5fa232ee5fdf 124 return level;
RichardE 0:5fa232ee5fdf 125 }
RichardE 0:5fa232ee5fdf 126 }
RichardE 0:5fa232ee5fdf 127
RichardE 0:5fa232ee5fdf 128