diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2017-03-07 20:57:09 +0100 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2017-03-07 20:57:09 +0100 |
| commit | 8ec41b4410aba535008daf991ea59a8740951d44 (patch) | |
| tree | 01ee0846f579d9d139ee46a6a43f67ba522c7196 /Gameplay.cpp | |
| download | pocketempires-8ec41b4410aba535008daf991ea59a8740951d44.tar.gz | |
+ Initial commit. Added source, sprites and final executable.
Diffstat (limited to 'Gameplay.cpp')
| -rw-r--r-- | Gameplay.cpp | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/Gameplay.cpp b/Gameplay.cpp new file mode 100644 index 0000000..2ae632e --- /dev/null +++ b/Gameplay.cpp @@ -0,0 +1,147 @@ +/* ************************************** + * Includes * + * **************************************/ + +#include "Gameplay.h" + +/* ************************************** + * Defines * + * **************************************/ + +/* ************************************** + * Global variables * + * **************************************/ + +Player GamePlayers[GAME_MAX_PLAYERS]; + +/* ************************************** + * Local variables * + * **************************************/ + +static const char PauseMenuOption_0[] PROGMEM = "Resume"; +static const char PauseMenuOption_1[] PROGMEM = "Quit"; + +static const char * const PauseMenuOptions[] PROGMEM = {PauseMenuOption_0, + PauseMenuOption_1 }; + +/* ************************************** + * Local prototypes * + * **************************************/ + +static void GameCalculations(void); +static void GameGraphics(void); +static bool GamePause(void); +static void GameLoop(void); + +/* + +const byte TowerSpr[] PROGMEM = {16,32, +0xF,0xF0, +0x8,0x10, +0x8,0x10, +0xF,0xF0, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x1B,0xD8, +0x2A,0x54, +0x4A,0x52, +0xFB,0xDF, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x9,0x90, +0x9,0x90, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x9,0x90, +0x9,0x90, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0x8,0x10, +0xB,0xD0, +0xA,0x50, +0xA,0x50, +0xF,0xF0, +};*/ + +void GameInit(void) +{ + uint8_t i; + + for(i = 0; i < GAME_MAX_PLAYERS; i++) + { + GamePlayers[i].Init(); + } + + GfxInit(); + + GameLoop(); +} + +bool GamePause(void) +{ + if(PadButtonReleased(PAD_C) == true) + { + //int8_t menu(const char* const* items, uint8_t length); + uint8_t choice = gb.menu(PauseMenuOptions, 2); + + if(choice != 0) + { + return true; + } + } + + return false; +} + +void GameCalculations(void) +{ + uint8_t i; + + for(i = 0; i < GAME_MAX_PLAYERS; i++) + { + GamePlayers[i].Handler(); + } + + if(PadAnyKeyPressed() == true) + { + SystemSetRandSeed(); + } +} + +void GameGraphics(void) +{ + uint8_t i; + + //GfxClearScreen(); + + for(i = 0; i < GAME_MAX_PLAYERS; i++) + { + GamePlayers[i].DrawHandler(); + } +} + +void GameLoop(void) +{ + while(1) + { + if(GamePause() == true) + { + return; + } + + GameCalculations(); + + while(GfxRefreshNeeded() == false); + + GameGraphics(); + + SystemIncreaseGlobalTimer(); + } +} |
