multiplayer pong game for LPC 1768

Dependencies:   mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt

Revision:
27:fcc5fee18a24
Parent:
25:4a965eccb922
Child:
28:a26a43cdaea8
diff -r ebadab157abe -r fcc5fee18a24 gamestate.cpp
--- a/gamestate.cpp	Mon Nov 16 04:27:47 2020 +0000
+++ b/gamestate.cpp	Mon Nov 23 01:19:17 2020 +0000
@@ -10,7 +10,9 @@
     this->p2_loc = playerTwoLocation; 
     this->ball_loc = ballLocation; 
     this->has_started = 0; 
-    this->is_done = false; 
+    this->is_done = 0; 
+    this->score[0] = 0; 
+    this->score[1] = 0; 
 }
 
 Coord GameState::getPlayerOneLocation() {
@@ -25,7 +27,7 @@
     return this->ball_loc; 
 }
 
-void GameState::update(MbedJSONValue *serverResponse, Graphics *gfx) {
+void GameState::updateAndRender(MbedJSONValue *serverResponse, Graphics *gfx) {
     string typeResponse = (*serverResponse)["type"].get<std::string>(); 
     if (typeResponse == "connected") {
         if (serverResponse->hasMember("player")) {
@@ -54,15 +56,20 @@
             this->ball_loc.y = updated_ball_y;
         }
         if (serverGameState.hasMember("isOver")) {
+            int is_done_value = (serverGameState)["isOver"].get<int>(); 
+            printf("isDone value %i\n", is_done_value); 
             this->is_done = (char)(serverGameState)["isOver"].get<int>();    
-            this->is_done = (char)(serverGameState)["isOver"].get<int>();
+            printf("game is done? %c\n\r", this->is_done);  
         }
-    
+        if (serverGameState.hasMember("score")) {
+            this->score[0] = (serverGameState)["score"][0].get<int>(); 
+            this->score[1] = (serverGameState)["score"][1].get<int>();
+        }
         // TODO: check if hash has already been set
         if (serverGameState.hasMember("hash")) {
             strcpy(this->lobbyHash, 
                 (serverGameState)["hash"].get<std::string>().c_str());
-            this->lobbyHash[21] = 0; 
+            this->lobbyHash[20] = 0; 
         }
         gfx->renderGameState(this); 
     }
@@ -83,6 +90,14 @@
     return this->localPlayerNum; 
 } 
 
-bool GameState::done() {
+int GameState::getPlayerOneScore() {
+    return this->score[0];
+}
+
+int GameState::getPlayerTwoScore() {
+    return this->score[1];
+}
+
+char GameState::done() {
     return this->is_done; 
 }