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@0:5fa232ee5fdf, 2013-06-04 (annotated)
- 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?
User | Revision | Line number | New 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 |