multiplayer pong game for LPC 1768

Dependencies:   mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt

Files at this revision

API Documentation at this revision

Comitter:
vsoltan
Date:
Mon Nov 16 03:44:23 2020 +0000
Parent:
24:05eb0b0ab554
Child:
26:ebadab157abe
Commit message:
resolved issue where player number and game started were not being initialized correctly

Changed in this revision

gamestate.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/gamestate.cpp	Mon Nov 16 03:34:34 2020 +0000
+++ b/gamestate.cpp	Mon Nov 16 03:44:23 2020 +0000
@@ -9,6 +9,7 @@
     this->p1_loc = playerOneLocation;
     this->p2_loc = playerTwoLocation; 
     this->ball_loc = ballLocation; 
+    this->has_started = 0; 
     this->is_done = false; 
 }
 
@@ -27,10 +28,14 @@
 void GameState::update(MbedJSONValue *serverResponse, Graphics *gfx) {
     string typeResponse = (*serverResponse)["type"].get<std::string>(); 
     if (typeResponse == "connected") {
+        if (serverResponse->hasMember("player")) {
+          this->localPlayerNum = (char)(*serverResponse)["player"].get<int>();    
+        }
         gfx->renderWaitingRoom(); 
     } else if (typeResponse == "gameState") {
         if (!has_started) {
             has_started = 1; 
+            printf("reseting display\n\r");
             gfx->reset(); 
         }
         gfx->eraseGameState(this); 
@@ -52,11 +57,7 @@
             this->is_done = (char)(serverGameState)["isOver"].get<int>();    
             this->is_done = (char)(serverGameState)["isOver"].get<int>();
         }
-        
-        if (serverGameState.hasMember("player")) {
-          this->localPlayerNum = (char)(serverGameState)["player"].get<int>();    
-        }
-        
+    
         // TODO: check if hash has already been set
         if (serverGameState.hasMember("hash")) {
             strcpy(this->lobbyHash,