From 829f094ce86e605bb1822e32c0838c15571f93bd Mon Sep 17 00:00:00 2001 From: lotodore Date: Tue, 7 Aug 2007 21:17:11 +0000 Subject: [PATCH] Fixed networking (LocalHand::getPreflop etc. now return the correct objects). Removed even more code which is no longer needed. --- src/engine/local_engine/localhand.h | 8 +-- src/net/common/serverrecvstate.cpp | 76 ++--------------------------- src/net/serverrecvstate.h | 2 - 3 files changed, 8 insertions(+), 78 deletions(-) diff --git a/src/engine/local_engine/localhand.h b/src/engine/local_engine/localhand.h index ffb11a17..04a491a2 100755 --- a/src/engine/local_engine/localhand.h +++ b/src/engine/local_engine/localhand.h @@ -41,10 +41,10 @@ public: PlayerInterface** getPlayerArray() const { return playerArray; } BoardInterface* getBoard() const { return myBoard; } - boost::shared_ptr getPreflop() const { return myBeRo[actualRound]; } - boost::shared_ptr getFlop() const { return myBeRo[actualRound]; } - boost::shared_ptr getTurn() const { return myBeRo[actualRound]; } - boost::shared_ptr getRiver() const { return myBeRo[actualRound]; } + boost::shared_ptr getPreflop() const { return myBeRo[GAME_STATE_PREFLOP]; } + boost::shared_ptr getFlop() const { return myBeRo[GAME_STATE_FLOP]; } + boost::shared_ptr getTurn() const { return myBeRo[GAME_STATE_TURN]; } + boost::shared_ptr getRiver() const { return myBeRo[GAME_STATE_RIVER]; } GuiInterface* getGuiInterface() const { return myGui; } boost::shared_ptr getCurrentBeRo() const { return myBeRo[actualRound]; } diff --git a/src/net/common/serverrecvstate.cpp b/src/net/common/serverrecvstate.cpp index 7d061e29..c4643341 100644 --- a/src/net/common/serverrecvstate.cpp +++ b/src/net/common/serverrecvstate.cpp @@ -47,25 +47,7 @@ using namespace std; static PlayerInterface *GetCurrentPlayer(Game &curGame) { - int curPlayerNum = 0; - // TODO: no switch needed here if game states are polymorphic - switch(curGame.getCurrentHand()->getActualRound()) { - case GAME_STATE_PREFLOP: { - curPlayerNum = curGame.getCurrentHand()->getPreflop()->getPlayersTurn(); - } break; - case GAME_STATE_FLOP: { - curPlayerNum = curGame.getCurrentHand()->getFlop()->getPlayersTurn(); - } break; - case GAME_STATE_TURN: { - curPlayerNum = curGame.getCurrentHand()->getTurn()->getPlayersTurn(); - } break; - case GAME_STATE_RIVER: { - curPlayerNum = curGame.getCurrentHand()->getRiver()->getPlayersTurn(); - } break; - default: { - // - } - } + int curPlayerNum = curGame.getCurrentHand()->getCurrentBeRo()->getPlayersTurn(); assert(curPlayerNum < curGame.getStartQuantityPlayers()); // TODO: throw exception return curGame.getPlayerArray()[curPlayerNum]; } @@ -771,7 +753,7 @@ ServerRecvStateWaitPlayerAction::Process(ServerRecvThread &server) else if (GetTimer().elapsed().total_seconds() >= server.GetGameData().playerActionTimeoutSec + SERVER_PLAYER_TIMEOUT_ADD_DELAY_SEC) { // Player did not act fast enough. Act for him. - if (GetHighestSet(server.GetGame()) == tmpPlayer->getMySet()) + if (server.GetGame().getCurrentHand()->getCurrentBeRo()->getHighestSet() == tmpPlayer->getMySet()) PerformPlayerAction(server, tmpPlayer, PLAYER_ACTION_CHECK, 0); else PerformPlayerAction(server, tmpPlayer, PLAYER_ACTION_FOLD, 0); @@ -821,8 +803,8 @@ ServerRecvStateWaitPlayerAction::PerformPlayerAction(ServerRecvThread &server, P { player->setMySet(bet); - if (player->getMySet() > GetHighestSet(curGame)) - SetHighestSet(curGame, player->getMySet()); + if (player->getMySet() > curGame.getCurrentHand()->getCurrentBeRo()->getHighestSet()) + curGame.getCurrentHand()->getCurrentBeRo()->setHighestSet(player->getMySet()); // Update total sets. curGame.getCurrentHand()->getBoard()->collectSets(); } @@ -847,56 +829,6 @@ ServerRecvStateWaitPlayerAction::SendPlayerAction(ServerRecvThread &server, Play server.SendToAllPlayers(notifyActionDone); } -int -ServerRecvStateWaitPlayerAction::GetHighestSet(Game &curGame) -{ - int highestSet = 0; - // TODO: no switch needed here if game states are polymorphic - switch(curGame.getCurrentHand()->getActualRound()) - { - case GAME_STATE_PREFLOP: { - highestSet = curGame.getCurrentHand()->getPreflop()->getHighestSet(); - } break; - case GAME_STATE_FLOP: { - highestSet = curGame.getCurrentHand()->getFlop()->getHighestSet(); - } break; - case GAME_STATE_TURN: { - highestSet = curGame.getCurrentHand()->getTurn()->getHighestSet(); - } break; - case GAME_STATE_RIVER: { - highestSet = curGame.getCurrentHand()->getRiver()->getHighestSet(); - } break; - default: { - // - } - } - return highestSet; -} - -void -ServerRecvStateWaitPlayerAction::SetHighestSet(Game &curGame, int highestSet) -{ - // TODO: no switch needed here if game states are polymorphic - switch(curGame.getCurrentHand()->getActualRound()) - { - case GAME_STATE_PREFLOP: { - curGame.getCurrentHand()->getPreflop()->setHighestSet(highestSet); - } break; - case GAME_STATE_FLOP: { - curGame.getCurrentHand()->getFlop()->setHighestSet(highestSet); - } break; - case GAME_STATE_TURN: { - curGame.getCurrentHand()->getTurn()->setHighestSet(highestSet); - } break; - case GAME_STATE_RIVER: { - curGame.getCurrentHand()->getRiver()->setHighestSet(highestSet); - } break; - default: { - // - } - } -} - //----------------------------------------------------------------------------- ServerRecvStateDealCardsDelay & diff --git a/src/net/serverrecvstate.h b/src/net/serverrecvstate.h index d4391923..32c1993e 100644 --- a/src/net/serverrecvstate.h +++ b/src/net/serverrecvstate.h @@ -208,8 +208,6 @@ protected: static void PerformPlayerAction(ServerRecvThread &server, PlayerInterface *player, PlayerAction action, int bet); static void SendPlayerAction(ServerRecvThread &server, PlayerInterface *player); - static int GetHighestSet(Game &curGame); - static void SetHighestSet(Game &curGame, int highestSet); }; // State: Delay after dealing cards