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

LevelCollection.cpp

Committer:
RichardE
Date:
2013-06-04
Revision:
0:5fa232ee5fdf
Child:
10:bfa1c307c99d

File content as of revision 0:5fa232ee5fdf:

/*
 * 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;
  }
}