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

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;
+  }
+}
+
+