/* ************************************** * Includes * * **************************************/ #include "Gameplay.h" #include "MouseSpr.c" #include "Pad.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 TYPE_SPRITE MouseSpr; 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(); } MouseSpr.Data = MouseSprData; MouseSpr.color = GFX_INVERT; MouseSpr.rotation = NOROT; MouseSpr.flip = NOFLIP; MouseSpr.x = (X_SCREEN_RESOLUTION >> 1) - 4; MouseSpr.y = (Y_SCREEN_RESOLUTION >> 1) - 4; 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(); } GfxDrawSprite(&MouseSpr); } void GameLoop(void) { while (1) { if (GamePause() == true) { return; } GameCalculations(); while (GfxRefreshNeeded() == false); GameGraphics(); SystemIncreaseGlobalTimer(); } }