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:
Mon Jun 17 15:10:43 2013 +0000
Revision:
18:70190f956a24
Parent:
17:194789db2215
Improved response to button 1 when entering high scores (HighScoreEntry.cpp).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RichardE 0:5fa232ee5fdf 1 /*
RichardE 0:5fa232ee5fdf 2 * SOURCE FILE : HighScoreEntry.h
RichardE 0:5fa232ee5fdf 3 *
RichardE 0:5fa232ee5fdf 4 * Definition of class HighScoreEntry.
RichardE 0:5fa232ee5fdf 5 * Routine to allow player to enter their name using joysticks.
RichardE 0:5fa232ee5fdf 6 *
RichardE 0:5fa232ee5fdf 7 */
RichardE 0:5fa232ee5fdf 8
RichardE 0:5fa232ee5fdf 9 #ifndef HighScoreEntryDefined
RichardE 0:5fa232ee5fdf 10
RichardE 0:5fa232ee5fdf 11 #define HighScoreEntryDefined
RichardE 0:5fa232ee5fdf 12
RichardE 0:5fa232ee5fdf 13 #include "Types.h"
RichardE 4:673eb9735d44 14 #include "PanelControls.h" // for reading panel controls.
RichardE 0:5fa232ee5fdf 15 #include "PlayerName.h"
RichardE 4:673eb9735d44 16 #include "Gameduino.h"
RichardE 15:d8ea0c7b7e64 17 #include "FieldGrid.h" // grid around which cursor moves
RichardE 0:5fa232ee5fdf 18
RichardE 0:5fa232ee5fdf 19 class HighScoreEntry {
RichardE 0:5fa232ee5fdf 20
RichardE 0:5fa232ee5fdf 21 public :
RichardE 0:5fa232ee5fdf 22
RichardE 0:5fa232ee5fdf 23 /***************/
RichardE 0:5fa232ee5fdf 24 /* CONSTRUCTOR */
RichardE 0:5fa232ee5fdf 25 /***************/
RichardE 0:5fa232ee5fdf 26 HighScoreEntry();
RichardE 0:5fa232ee5fdf 27
RichardE 0:5fa232ee5fdf 28 /**************/
RichardE 0:5fa232ee5fdf 29 /* DESTRUCTOR */
RichardE 0:5fa232ee5fdf 30 /**************/
RichardE 0:5fa232ee5fdf 31 virtual ~HighScoreEntry();
RichardE 0:5fa232ee5fdf 32
RichardE 0:5fa232ee5fdf 33 /*********************/
RichardE 0:5fa232ee5fdf 34 /* GET A PLAYER NAME */
RichardE 0:5fa232ee5fdf 35 /*********************/
RichardE 0:5fa232ee5fdf 36 // Pass pointer to place to store name in name.
RichardE 0:5fa232ee5fdf 37 // Pass pointer to controls to read in controls.
RichardE 4:673eb9735d44 38 // Pass pointer to Gameduino to display on in gd.
RichardE 4:673eb9735d44 39 void GetName( PlayerName *name, PanelControls *controls, Gameduino *gd );
RichardE 0:5fa232ee5fdf 40
RichardE 0:5fa232ee5fdf 41 private :
RichardE 0:5fa232ee5fdf 42
RichardE 16:d0b142ba4362 43 // Index of character being modified in the name.
RichardE 16:d0b142ba4362 44 UInt8 charIndex;
RichardE 16:d0b142ba4362 45
RichardE 16:d0b142ba4362 46 // Grid row and column number for cursor.
RichardE 16:d0b142ba4362 47 UInt8 cursorRow, cursorColumn;
RichardE 16:d0b142ba4362 48
RichardE 15:d8ea0c7b7e64 49 // Grid around which cursor moves.
RichardE 15:d8ea0c7b7e64 50 FieldGrid grid;
RichardE 17:194789db2215 51
RichardE 17:194789db2215 52 // Some text.
RichardE 17:194789db2215 53 static const char textDelete[];
RichardE 17:194789db2215 54 static const char textEnter[];
RichardE 17:194789db2215 55
RichardE 15:d8ea0c7b7e64 56 /*******************/
RichardE 15:d8ea0c7b7e64 57 /* INITIALISE GRID */
RichardE 15:d8ea0c7b7e64 58 /*******************/
RichardE 15:d8ea0c7b7e64 59 void InitialiseGrid( void );
RichardE 15:d8ea0c7b7e64 60
RichardE 17:194789db2215 61 /***************************************/
RichardE 17:194789db2215 62 /* ADD A CELL CONTAINING TEXT TO A ROW */
RichardE 17:194789db2215 63 /***************************************/
RichardE 17:194789db2215 64 // Pass character coordinates in x and y. These will be updated.
RichardE 17:194789db2215 65 // Pass row to which cells should be added in row.
RichardE 17:194789db2215 66 // Pass text which is to be contained in cell in text.
RichardE 17:194789db2215 67 void AddTextCell( UInt8 &x, UInt8 &y, FieldRow *row, const char *text );
RichardE 17:194789db2215 68
RichardE 17:194789db2215 69 /************************************************************************/
RichardE 17:194789db2215 70 /* PERFORM A SPECIAL FUNCTION TRIGGERED FROM A CELL ON LAST ROW OF GRID */
RichardE 17:194789db2215 71 /************************************************************************/
RichardE 17:194789db2215 72 // Pass pointer to Gameduino to draw on in gd.
RichardE 17:194789db2215 73 // Pass function number in funcNum (this is the cursor column number).
RichardE 17:194789db2215 74 // Pass player name in name.
RichardE 17:194789db2215 75 // Pass reference to done flag in done.
RichardE 17:194789db2215 76 void SpecialFunction( Gameduino *gd, UInt8 funcNum, PlayerName *name, bool &done );
RichardE 17:194789db2215 77
RichardE 0:5fa232ee5fdf 78 /*********************/
RichardE 0:5fa232ee5fdf 79 /* WAIT FOR CONTROLS */
RichardE 0:5fa232ee5fdf 80 /*********************/
RichardE 4:673eb9735d44 81 // Pass pointer to Gameduino to display on in gd.
RichardE 0:5fa232ee5fdf 82 // Pass pointer to controls to read in controls.
RichardE 0:5fa232ee5fdf 83 // Pass true in waitActivate to wait for a control to be used.
RichardE 0:5fa232ee5fdf 84 // Pass false to wait for release.
RichardE 4:673eb9735d44 85 void WaitControls( Gameduino *gd, PanelControls *controls, bool waitActivate );
RichardE 0:5fa232ee5fdf 86
RichardE 0:5fa232ee5fdf 87 /*******************/
RichardE 0:5fa232ee5fdf 88 /* DRAW THE SCREEN */
RichardE 0:5fa232ee5fdf 89 /*******************/
RichardE 4:673eb9735d44 90 // Pass pointer to Gameduino to display on in gd.
RichardE 16:d0b142ba4362 91 // Pass player name in name.
RichardE 16:d0b142ba4362 92 void DrawScreen( Gameduino *gd, PlayerName *name );
RichardE 0:5fa232ee5fdf 93
RichardE 14:46a353b2a8e8 94 /***************************/
RichardE 14:46a353b2a8e8 95 /* DRAW THE CHARACTER GRID */
RichardE 14:46a353b2a8e8 96 /***************************/
RichardE 14:46a353b2a8e8 97 // Pass pointer to Gameduino to draw on in gd.
RichardE 14:46a353b2a8e8 98 void DrawGrid( Gameduino *gd );
RichardE 14:46a353b2a8e8 99
RichardE 0:5fa232ee5fdf 100 /********************************/
RichardE 0:5fa232ee5fdf 101 /* DRAW THE NAME AND THE CURSOR */
RichardE 0:5fa232ee5fdf 102 /********************************/
RichardE 4:673eb9735d44 103 // Pass pointer to Gameduino to display on in gd.
RichardE 0:5fa232ee5fdf 104 // Pass player name in name.
RichardE 4:673eb9735d44 105 void DrawName( Gameduino *gd, PlayerName *name );
RichardE 0:5fa232ee5fdf 106
RichardE 0:5fa232ee5fdf 107 /********************/
RichardE 0:5fa232ee5fdf 108 /* UPDATE ANIMATION */
RichardE 0:5fa232ee5fdf 109 /********************/
RichardE 4:673eb9735d44 110 // Pass pointer to Gameduino to display on in gd.
RichardE 4:673eb9735d44 111 void Animate( Gameduino *gd );
RichardE 0:5fa232ee5fdf 112
RichardE 16:d0b142ba4362 113 /*******************/
RichardE 16:d0b142ba4362 114 /* WIPE THE CURSOR */
RichardE 16:d0b142ba4362 115 /*******************/
RichardE 16:d0b142ba4362 116 // Pass pointer to Gameduino to display on in gd.
RichardE 16:d0b142ba4362 117 // Pass cell to draw in cell.
RichardE 16:d0b142ba4362 118 void WipeCursor( Gameduino *gd, FieldCell *cell );
RichardE 16:d0b142ba4362 119
RichardE 16:d0b142ba4362 120 /*******************/
RichardE 16:d0b142ba4362 121 /* DRAW THE CURSOR */
RichardE 16:d0b142ba4362 122 /*******************/
RichardE 16:d0b142ba4362 123 // Pass pointer to Gameduino to display on in gd.
RichardE 16:d0b142ba4362 124 // Pass cell to draw in cell.
RichardE 16:d0b142ba4362 125 void DrawCursor( Gameduino *gd, FieldCell *cell );
RichardE 16:d0b142ba4362 126
RichardE 16:d0b142ba4362 127 /**************************/
RichardE 16:d0b142ba4362 128 /* VALIDATE CURSOR COLUMN */
RichardE 16:d0b142ba4362 129 /**************************/
RichardE 16:d0b142ba4362 130 // If cursor column is beyond end of row then forces it back.
RichardE 16:d0b142ba4362 131 void ValidateCursorColumn( void );
RichardE 16:d0b142ba4362 132
RichardE 0:5fa232ee5fdf 133 };
RichardE 0:5fa232ee5fdf 134
RichardE 0:5fa232ee5fdf 135 #endif
RichardE 0:5fa232ee5fdf 136
RichardE 0:5fa232ee5fdf 137 /* END of HighScoreEntry.h */
RichardE 0:5fa232ee5fdf 138