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
Diff: LevelCollection.cpp
- Revision:
- 0:5fa232ee5fdf
- Child:
- 10:bfa1c307c99d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LevelCollection.cpp Tue Jun 04 20:16:33 2013 +0000 @@ -0,0 +1,128 @@ +/* + * SOURCE FILE : LevelCollection.cpp + * + * Definition of class LevelCollection. + * + */ + +#include <stdio.h> +#include "LevelCollection.h" +#include "Level0.h" +#include "Level1.h" +#include "Level2.h" +#if 0 + #include "Level3.h" + #include "Level4.h" + #include "Level5.h" + #include "Level6.h" + #include "Level7.h" + #include "Level8.h" + #include "Level9.h" + #include "Level10.h" + #include "Level10.h" + #include "Level11.h" + #include "Level12.h" + #include "Level13.h" + #include "Level14.h" + #include "Level15.h" + #include "Level16.h" + #include "Level17.h" + #include "Level18.h" + #include "Level19.h" + #include "Level20.h" +#endif + +/***************/ +/* CONSTRUCTOR */ +/***************/ +LevelCollection::LevelCollection() { +} + +/**************/ +/* DESTRUCTOR */ +/**************/ +LevelCollection::~LevelCollection() { +} + +#define LEVELCOUNT 3 + +/************************/ +/* GET NUMBER OF LEVELS */ +/************************/ +UInt8 LevelCollection::GetLevelCount( void ) const { + return LEVELCOUNT; +} + +// Individual levels. +static Level0 level0; // Not a real level. This is attract mode. +static Level1 level1; +static Level2 level2; +#if 0 +static Level3 level3; +static Level4 level4; +static Level5 level5; +static Level6 level6; +static Level7 level7; +static Level8 level8; +static Level9 level9; +static Level10 level10; +static Level11 level11; +static Level12 level12; +static Level13 level13; +static Level14 level14; +static Level15 level15; +static Level16 level16; +static Level17 level17; +static Level18 level18; +static Level19 level19; +static Level20 level20; +#endif + +// Pointers to all the levels. +// If I have got this right then each pointer in the array points to a +// Level that is NOT const, but the array itself is const and cannot be modified. +static Level* const levels[ LEVELCOUNT ] = { + &level0, + &level1, + &level2, +#if 0 + &level3, + &level4, + &level5, + &level6, + &level7, + &level8, + &level9, + &level10, + &level11, + &level12, + &level13, + &level14, + &level15, + &level16, + &level17, + &level18, + &level19, + &level20, +#endif +}; + +/***************/ +/* GET A LEVEL */ +/***************/ +// Pass level number in levelNumber. +// Returns pointer to level or NULL if no such level. +Level *LevelCollection::GetLevel( UInt8 levelNumber ) { + if( levelNumber >= LEVELCOUNT ) { + return (Level*)NULL; + } + else { + // Fetch pointer to level from array and tag it with the + // correct level number before returning it. + Level *level = levels[ levelNumber ]; + level->LevelNumber = levelNumber; + return level; + } +} + +