summaryrefslogtreecommitdiff
path: root/Gameplay.cpp
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2017-03-07 20:57:09 +0100
committerXaviDCR92 <xavi.dcr@gmail.com>2017-03-07 20:57:09 +0100
commit8ec41b4410aba535008daf991ea59a8740951d44 (patch)
tree01ee0846f579d9d139ee46a6a43f67ba522c7196 /Gameplay.cpp
downloadpocketempires-8ec41b4410aba535008daf991ea59a8740951d44.tar.gz
+ Initial commit. Added source, sprites and final executable.
Diffstat (limited to 'Gameplay.cpp')
-rw-r--r--Gameplay.cpp147
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();
+ }
+}