A complex 2D-dungeon game on LPC1768 in SWJTU-Leeds Joint School XJEL2645 project. Referenced from the framework contributed by https://os.mbed.com/users/Siriagus/code/SimplePlatformGame/

Dependencies:   mbed N5110 ShiftReg PinDetect

Committer:
Siriagus
Date:
Mon May 11 04:40:23 2015 +0000
Revision:
18:709ea375b0df
Parent:
17:d6a3b29cab31
Child:
19:89c3eeb3761b
Fixed some formatting errors in documentation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Siriagus 5:100d960fc6d5 1 #ifndef MAIN_MENU_H
Siriagus 5:100d960fc6d5 2 #define MAIN_MENU_H
Siriagus 5:100d960fc6d5 3
Siriagus 12:8178fad5e660 4 /** @file MainMenu.h
Siriagus 12:8178fad5e660 5 * @author Andreas Garmannslund
Siriagus 12:8178fad5e660 6 * @date April 2015
Siriagus 12:8178fad5e660 7 */
Siriagus 12:8178fad5e660 8
Siriagus 5:100d960fc6d5 9 #include "State.h"
Siriagus 17:d6a3b29cab31 10 #include "Global.h"
Siriagus 17:d6a3b29cab31 11 #include <string>
Siriagus 17:d6a3b29cab31 12 #include <sstream>
Siriagus 5:100d960fc6d5 13
Siriagus 10:f2488a0ecab7 14 /// State: Main Menu
Siriagus 5:100d960fc6d5 15 class MainMenu : public State
Siriagus 5:100d960fc6d5 16 {
Siriagus 5:100d960fc6d5 17 public:
Siriagus 10:f2488a0ecab7 18 /// Creates a new MainMenu object
Siriagus 17:d6a3b29cab31 19 MainMenu(StateManager* fsm, N5110 *lcd, InputManager* input, Sound *sound)
Siriagus 17:d6a3b29cab31 20 : State(fsm, lcd, input, sound) {init();}
Siriagus 5:100d960fc6d5 21
Siriagus 18:709ea375b0df 22 /// Update logic
Siriagus 18:709ea375b0df 23 virtual void update(float dt);
Siriagus 18:709ea375b0df 24
Siriagus 18:709ea375b0df 25 /// Draw MainMenu to screen
Siriagus 18:709ea375b0df 26 virtual void render();
Siriagus 5:100d960fc6d5 27
Siriagus 5:100d960fc6d5 28 private:
Siriagus 5:100d960fc6d5 29 void init();
Siriagus 18:709ea375b0df 30 static void btnAPress(); // Interrupt callback function when button A is pressed
Siriagus 18:709ea375b0df 31 static void btnBPress(); // Interrupt callback function when button B is pressed
Siriagus 18:709ea375b0df 32 static void btnCPress(); // Interrupt callback function when button C is pressed
Siriagus 6:edb48de563a9 33
Siriagus 6:edb48de563a9 34 // Variables
Siriagus 6:edb48de563a9 35 private:
Siriagus 10:f2488a0ecab7 36 /// States for the main menu's internal finite state machine
Siriagus 10:f2488a0ecab7 37 enum MenuState {SELECT_PLAY, SELECT_HIGHSCORES, SELECT_CONTROLS, LOAD_GAME, HIGHSCORES, CONTROLS};
Siriagus 18:709ea375b0df 38
Siriagus 18:709ea375b0df 39 /// Current state of the internal finite state machine
Siriagus 18:709ea375b0df 40 static int currentState;
Siriagus 10:f2488a0ecab7 41
Siriagus 10:f2488a0ecab7 42 /** Transition table for internal fsm
Siriagus 10:f2488a0ecab7 43 * Each row corresponds to a state
Siriagus 10:f2488a0ecab7 44 * Each column corresponds to the button pressed
Siriagus 10:f2488a0ecab7 45 */
Siriagus 10:f2488a0ecab7 46 static const int MENU_FSM[6][3];
Siriagus 5:100d960fc6d5 47 };
Siriagus 5:100d960fc6d5 48
Siriagus 5:100d960fc6d5 49 #endif