diff --git a/src/engine/local_engine/localhand.cpp b/src/engine/local_engine/localhand.cpp index 79e4b8d3..77e1be46 100755 --- a/src/engine/local_engine/localhand.cpp +++ b/src/engine/local_engine/localhand.cpp @@ -41,9 +41,7 @@ LocalHand::LocalHand(boost::shared_ptr f, GuiInterface *g, BoardI for(i=0; igetMyActiveStatus() != 0) { - playerArray[i]->setHand(this); - } + playerArray[i]->setHand(this); // myFlipCards auf 0 setzen playerArray[i]->setMyCardsFlip(0, 0); } diff --git a/src/engine/local_engine/localplayer.h b/src/engine/local_engine/localplayer.h index a469ae94..b4d16f3d 100755 --- a/src/engine/local_engine/localplayer.h +++ b/src/engine/local_engine/localplayer.h @@ -103,16 +103,16 @@ public: void setMyCardsValueInt(int theValue) { myCardsValueInt = theValue;} int getMyCardsValueInt() const { return myCardsValueInt; } - void setMyBestHandPosition(int* theValue) - { - for (int i = 0; i < 5; i++) - myBestHandPosition[i] = theValue[i]; - } - void getMyBestHandPosition(int* theValue) const - { - for (int i = 0; i < 5; i++) - theValue[i] = myBestHandPosition[i]; - } + void setMyBestHandPosition(int* theValue) + { + for (int i = 0; i < 5; i++) + myBestHandPosition[i] = theValue[i]; + } + void getMyBestHandPosition(int* theValue) const + { + for (int i = 0; i < 5; i++) + theValue[i] = myBestHandPosition[i]; + } void setMyRoundStartCash(int theValue) { myRoundStartCash = theValue;} int getMyRoundStartCash() const { return myRoundStartCash; } diff --git a/src/engine/network_engine/clienthand.cpp b/src/engine/network_engine/clienthand.cpp index 421842fc..32eccc6f 100644 --- a/src/engine/network_engine/clienthand.cpp +++ b/src/engine/network_engine/clienthand.cpp @@ -34,9 +34,7 @@ ClientHand::ClientHand(boost::shared_ptr f, GuiInterface *g, Boar for(i=0; igetMyActiveStatus() != 0) { - playerArray[i]->setHand(this); - } + playerArray[i]->setHand(this); // myFlipCards auf 0 setzen playerArray[i]->setMyCardsFlip(0, 0); } diff --git a/src/net/common/clientstate.cpp b/src/net/common/clientstate.cpp index 0b9e55aa..1fb2ec8f 100644 --- a/src/net/common/clientstate.cpp +++ b/src/net/common/clientstate.cpp @@ -310,7 +310,7 @@ ClientStateConnecting::Process(ClientThread &client) } else if (selectResult == 0) // timeout { - if (m_connectTimer.elapsed().seconds() >= CLIENT_CONNECT_TIMEOUT_SEC) + if (m_connectTimer.elapsed().total_seconds() >= CLIENT_CONNECT_TIMEOUT_SEC) throw ClientException(ERR_SOCK_CONNECT_TIMEOUT, 0); else retVal = MSG_SOCK_INTERNAL_PENDING; diff --git a/src/net/common/serverrecvstate.cpp b/src/net/common/serverrecvstate.cpp index 0a1b3168..3ae3a8a0 100644 --- a/src/net/common/serverrecvstate.cpp +++ b/src/net/common/serverrecvstate.cpp @@ -147,7 +147,6 @@ ServerRecvStateReceiving::Process(ServerRecvThread &server) { if (session.sessionData.get()) { - // TODO: Deactivate player. server.CloseSessionDelayed(session); return retVal; } @@ -737,7 +736,7 @@ ServerRecvStateWaitPlayerAction::Process(ServerRecvThread &server) server.SetState(ServerRecvStateStartRound::Instance()); retVal = MSG_NET_GAME_SERVER_ACTION; } - else if (GetTimer().elapsed().seconds() >= server.GetGameData().playerActionTimeoutSec + SERVER_PLAYER_TIMEOUT_ADD_DELAY_SEC) + 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()) @@ -896,7 +895,7 @@ ServerRecvStateDealCardsDelay::Process(ServerRecvThread &server) delay = SERVER_DEAL_RIVER_CARD_DELAY_SEC; break; } - if (!delay || GetTimer().elapsed().seconds() >= delay) + if (!delay || GetTimer().elapsed().total_seconds() >= delay) server.SetState(ServerRecvStateStartRound::Instance()); return retVal; @@ -930,7 +929,7 @@ ServerRecvStateShowCardsDelay::Process(ServerRecvThread &server) { int retVal = ServerRecvStateReceiving::Process(server); - if (GetTimer().elapsed().seconds() >= SERVER_SHOW_CARDS_DELAY_SEC) + if (GetTimer().elapsed().total_seconds() >= SERVER_SHOW_CARDS_DELAY_SEC) { Game &curGame = server.GetGame(); SendNewRoundCards(server, curGame, curGame.getCurrentHand()->getActualRound()); @@ -970,7 +969,7 @@ ServerRecvStateNextHandDelay::Process(ServerRecvThread &server) { int retVal = ServerRecvStateReceiving::Process(server); - if (GetTimer().elapsed().seconds() >= SERVER_DELAY_NEXT_HAND_SEC) + if (GetTimer().elapsed().total_seconds() >= SERVER_DELAY_NEXT_HAND_SEC) server.SetState(ServerRecvStateStartHand::Instance()); return retVal; @@ -1004,7 +1003,7 @@ ServerRecvStateNextGameDelay::Process(ServerRecvThread &server) { int retVal = ServerRecvStateReceiving::Process(server); - if (GetTimer().elapsed().seconds() >= SERVER_DELAY_NEXT_GAME_SEC) + if (GetTimer().elapsed().total_seconds() >= SERVER_DELAY_NEXT_GAME_SEC) { Game &curGame = server.GetGame(); // The game has ended. Notify all clients. diff --git a/src/net/common/serverrecvthread.cpp b/src/net/common/serverrecvthread.cpp index 826dbc84..1eeca157 100644 --- a/src/net/common/serverrecvthread.cpp +++ b/src/net/common/serverrecvthread.cpp @@ -162,7 +162,7 @@ ServerRecvThread::CloseSessionLoop() { CloseSessionList::iterator cur = i++; - if (cur->first.elapsed().seconds() >= SERVER_CLOSE_SESSION_DELAY_SEC) + if (cur->first.elapsed().total_seconds() >= SERVER_CLOSE_SESSION_DELAY_SEC) m_closeSessionList.erase(cur); } } @@ -396,9 +396,14 @@ ServerRecvThread::CloseSessionDelayed(SessionWrapper session) PlayerInterface *player = GetGame().getPlayerByUniqueId(tmpPlayerData->GetUniqueId()); if (player) { - player->setMyAction(PLAYER_ACTION_FOLD); - player->setMyCash(0); - player->setMyActiveStatus(false); + // Deactivate player (if active). + if (player->getMyActiveStatus()) + { + if (player->getMyAction() != PLAYER_ACTION_FOLD) + player->setMyAction(PLAYER_ACTION_FOLD); + player->setMyCash(0); + player->setMyActiveStatus(false); + } } }