Cleaned up some networking code. Total sets are now calculated by the client.
This commit is contained in:
@@ -187,7 +187,7 @@ Server Notification: Player's Action Done
|
|||||||
0 1 2 3
|
0 1 2 3
|
||||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
| Message Type = 9 | Message Length = 28 |
|
| Message Type = 9 | Message Length = 20 |
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
| Game State | Player Id |
|
| Game State | Player Id |
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
@@ -197,8 +197,6 @@ Server Notification: Player's Action Done
|
|||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
| Player Money |
|
| Player Money |
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
| Current Hand Bets |
|
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
||||||
|
|
||||||
Additional Game States:
|
Additional Game States:
|
||||||
0xF0 - Preflop Small Blind (no action requested)
|
0xF0 - Preflop Small Blind (no action requested)
|
||||||
|
|||||||
@@ -48,6 +48,9 @@ ClientBoard::setHand(HandInterface* br)
|
|||||||
void
|
void
|
||||||
ClientBoard::collectSets()
|
ClientBoard::collectSets()
|
||||||
{
|
{
|
||||||
|
sets = 0;
|
||||||
|
int i;
|
||||||
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) sets += playerArray[i]->getMySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -624,7 +624,7 @@ ClientStateRunHand::InternalProcess(ClientThread &client, boost::shared_ptr<NetP
|
|||||||
tmpPlayer->setMyAction(actionDoneData.playerAction);
|
tmpPlayer->setMyAction(actionDoneData.playerAction);
|
||||||
tmpPlayer->setMySetAbsolute(actionDoneData.totalPlayerBet);
|
tmpPlayer->setMySetAbsolute(actionDoneData.totalPlayerBet);
|
||||||
tmpPlayer->setMyCash(actionDoneData.playerMoney);
|
tmpPlayer->setMyCash(actionDoneData.playerMoney);
|
||||||
curGame->getCurrentHand()->getBoard()->setSets(actionDoneData.curHandBets);
|
curGame->getCurrentHand()->getBoard()->collectSets();
|
||||||
|
|
||||||
// Update highest set
|
// Update highest set
|
||||||
if (tmpPlayer->getMySet() > GetHighestSet(*curGame))
|
if (tmpPlayer->getMySet() > GetHighestSet(*curGame))
|
||||||
|
|||||||
@@ -163,7 +163,6 @@ struct GCC_PACKED NetPacketPlayersActionDoneData
|
|||||||
u_int16_t reserved;
|
u_int16_t reserved;
|
||||||
u_int32_t totalPlayerBet;
|
u_int32_t totalPlayerBet;
|
||||||
u_int32_t playerMoney;
|
u_int32_t playerMoney;
|
||||||
u_int32_t curHandBets;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GCC_PACKED NetPacketPlayersActionRejectedData
|
struct GCC_PACKED NetPacketPlayersActionRejectedData
|
||||||
@@ -1238,7 +1237,6 @@ NetPacketPlayersActionDone::SetData(const NetPacketPlayersActionDone::Data &inDa
|
|||||||
tmpData->playerAction = htons(inData.playerAction);
|
tmpData->playerAction = htons(inData.playerAction);
|
||||||
tmpData->totalPlayerBet = htonl(inData.totalPlayerBet);
|
tmpData->totalPlayerBet = htonl(inData.totalPlayerBet);
|
||||||
tmpData->playerMoney = htonl(inData.playerMoney);
|
tmpData->playerMoney = htonl(inData.playerMoney);
|
||||||
tmpData->curHandBets = htonl(inData.curHandBets);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1252,7 +1250,6 @@ NetPacketPlayersActionDone::GetData(NetPacketPlayersActionDone::Data &outData) c
|
|||||||
outData.playerAction = static_cast<PlayerAction>(ntohs(tmpData->playerAction));
|
outData.playerAction = static_cast<PlayerAction>(ntohs(tmpData->playerAction));
|
||||||
outData.totalPlayerBet = ntohl(tmpData->totalPlayerBet);
|
outData.totalPlayerBet = ntohl(tmpData->totalPlayerBet);
|
||||||
outData.playerMoney = ntohl(tmpData->playerMoney);
|
outData.playerMoney = ntohl(tmpData->playerMoney);
|
||||||
outData.curHandBets = ntohl(tmpData->curHandBets);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const NetPacketPlayersActionDone *
|
const NetPacketPlayersActionDone *
|
||||||
|
|||||||
@@ -180,6 +180,23 @@ ServerRecvStateReceiving::Process(ServerRecvThread &server)
|
|||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ServerRecvStateTimer::ServerRecvStateTimer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ServerRecvStateTimer::~ServerRecvStateTimer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ServerRecvStateTimer::Init()
|
||||||
|
{
|
||||||
|
m_timer.reset();
|
||||||
|
m_timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
ServerRecvStateInit &
|
ServerRecvStateInit &
|
||||||
ServerRecvStateInit::Instance()
|
ServerRecvStateInit::Instance()
|
||||||
{
|
{
|
||||||
@@ -436,7 +453,6 @@ ServerRecvStateStartHand::Process(ServerRecvThread &server)
|
|||||||
actionDoneData.playerAction = (PlayerAction)playerArray[i]->getMyAction();
|
actionDoneData.playerAction = (PlayerAction)playerArray[i]->getMyAction();
|
||||||
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
||||||
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
||||||
actionDoneData.curHandBets = playerArray[i]->getMySet(); // first bet only
|
|
||||||
static_cast<NetPacketPlayersActionDone *>(notifySmallBlind.get())->SetData(actionDoneData);
|
static_cast<NetPacketPlayersActionDone *>(notifySmallBlind.get())->SetData(actionDoneData);
|
||||||
server.SendToAllPlayers(notifySmallBlind);
|
server.SendToAllPlayers(notifySmallBlind);
|
||||||
break;
|
break;
|
||||||
@@ -453,7 +469,6 @@ ServerRecvStateStartHand::Process(ServerRecvThread &server)
|
|||||||
actionDoneData.playerAction = (PlayerAction)playerArray[i]->getMyAction();
|
actionDoneData.playerAction = (PlayerAction)playerArray[i]->getMyAction();
|
||||||
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
||||||
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
||||||
actionDoneData.curHandBets = curGame.getCurrentHand()->getBoard()->getSets();
|
|
||||||
static_cast<NetPacketPlayersActionDone *>(notifyBigBlind.get())->SetData(actionDoneData);
|
static_cast<NetPacketPlayersActionDone *>(notifyBigBlind.get())->SetData(actionDoneData);
|
||||||
server.SendToAllPlayers(notifyBigBlind);
|
server.SendToAllPlayers(notifyBigBlind);
|
||||||
break;
|
break;
|
||||||
@@ -530,9 +545,6 @@ ServerRecvStateStartRound::Process(ServerRecvThread &server)
|
|||||||
server.SendToAllPlayers(allIn);
|
server.SendToAllPlayers(allIn);
|
||||||
curGame.getCurrentHand()->setCardsShown(true);
|
curGame.getCurrentHand()->setCardsShown(true);
|
||||||
|
|
||||||
boost::microsec_timer delayTimer;
|
|
||||||
delayTimer.start();
|
|
||||||
ServerRecvStateShowCardsDelay::Instance().SetTimer(delayTimer);
|
|
||||||
server.SetState(ServerRecvStateShowCardsDelay::Instance());
|
server.SetState(ServerRecvStateShowCardsDelay::Instance());
|
||||||
retVal = MSG_NET_GAME_SERVER_CARDS_DELAY;
|
retVal = MSG_NET_GAME_SERVER_CARDS_DELAY;
|
||||||
}
|
}
|
||||||
@@ -540,9 +552,6 @@ ServerRecvStateStartRound::Process(ServerRecvThread &server)
|
|||||||
{
|
{
|
||||||
SendNewRoundCards(server, curGame, newRound);
|
SendNewRoundCards(server, curGame, newRound);
|
||||||
|
|
||||||
boost::microsec_timer delayTimer;
|
|
||||||
delayTimer.start();
|
|
||||||
ServerRecvStateDealCardsDelay::Instance().SetTimer(delayTimer);
|
|
||||||
server.SetState(ServerRecvStateDealCardsDelay::Instance());
|
server.SetState(ServerRecvStateDealCardsDelay::Instance());
|
||||||
retVal = MSG_NET_GAME_SERVER_CARDS_DELAY;
|
retVal = MSG_NET_GAME_SERVER_CARDS_DELAY;
|
||||||
}
|
}
|
||||||
@@ -636,9 +645,6 @@ ServerRecvStateStartRound::Process(ServerRecvThread &server)
|
|||||||
server.SetState(ServerRecvStateFinal::Instance()); // TODO
|
server.SetState(ServerRecvStateFinal::Instance()); // TODO
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
boost::microsec_timer delayTimer;
|
|
||||||
delayTimer.start();
|
|
||||||
ServerRecvStateNextHand::Instance().SetTimer(delayTimer);
|
|
||||||
server.SetState(ServerRecvStateNextHand::Instance());
|
server.SetState(ServerRecvStateNextHand::Instance());
|
||||||
retVal = MSG_NET_GAME_SERVER_HAND_END;
|
retVal = MSG_NET_GAME_SERVER_HAND_END;
|
||||||
}
|
}
|
||||||
@@ -777,7 +783,6 @@ ServerRecvStateWaitPlayerAction::PerformPlayerAction(ServerRecvThread &server, P
|
|||||||
actionDoneData.playerAction = static_cast<PlayerAction>(player->getMyAction());
|
actionDoneData.playerAction = static_cast<PlayerAction>(player->getMyAction());
|
||||||
actionDoneData.totalPlayerBet = player->getMySet();
|
actionDoneData.totalPlayerBet = player->getMySet();
|
||||||
actionDoneData.playerMoney = player->getMyCash();
|
actionDoneData.playerMoney = player->getMyCash();
|
||||||
actionDoneData.curHandBets = curGame.getCurrentHand()->getBoard()->getSets();
|
|
||||||
static_cast<NetPacketPlayersActionDone *>(notifyActionDone.get())->SetData(actionDoneData);
|
static_cast<NetPacketPlayersActionDone *>(notifyActionDone.get())->SetData(actionDoneData);
|
||||||
server.SendToAllPlayers(notifyActionDone);
|
server.SendToAllPlayers(notifyActionDone);
|
||||||
}
|
}
|
||||||
@@ -849,12 +854,6 @@ ServerRecvStateDealCardsDelay::~ServerRecvStateDealCardsDelay()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ServerRecvStateDealCardsDelay::SetTimer(const boost::microsec_timer &timer)
|
|
||||||
{
|
|
||||||
m_delayTimer = timer;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ServerRecvStateDealCardsDelay::Process(ServerRecvThread &server)
|
ServerRecvStateDealCardsDelay::Process(ServerRecvThread &server)
|
||||||
{
|
{
|
||||||
@@ -863,24 +862,23 @@ ServerRecvStateDealCardsDelay::Process(ServerRecvThread &server)
|
|||||||
Game &curGame = server.GetGame();
|
Game &curGame = server.GetGame();
|
||||||
|
|
||||||
int allInDelay = curGame.getCurrentHand()->getAllInCondition() ? SERVER_DEAL_ADD_ALL_IN_DELAY_SEC : 0;
|
int allInDelay = curGame.getCurrentHand()->getAllInCondition() ? SERVER_DEAL_ADD_ALL_IN_DELAY_SEC : 0;
|
||||||
|
int delay = 0;
|
||||||
|
|
||||||
switch(curGame.getCurrentHand()->getActualRound())
|
switch(curGame.getCurrentHand()->getActualRound())
|
||||||
{
|
{
|
||||||
case GAME_STATE_FLOP:
|
case GAME_STATE_FLOP:
|
||||||
if (m_delayTimer.elapsed().seconds() >= SERVER_DEAL_FLOP_CARDS_DELAY_SEC + allInDelay)
|
delay = SERVER_DEAL_FLOP_CARDS_DELAY_SEC + allInDelay;
|
||||||
server.SetState(ServerRecvStateStartRound::Instance());
|
|
||||||
break;
|
break;
|
||||||
case GAME_STATE_TURN:
|
case GAME_STATE_TURN:
|
||||||
if (m_delayTimer.elapsed().seconds() >= SERVER_DEAL_TURN_CARD_DELAY_SEC)
|
delay = SERVER_DEAL_TURN_CARD_DELAY_SEC;
|
||||||
server.SetState(ServerRecvStateStartRound::Instance());
|
|
||||||
break;
|
break;
|
||||||
case GAME_STATE_RIVER:
|
case GAME_STATE_RIVER:
|
||||||
if (m_delayTimer.elapsed().seconds() >= SERVER_DEAL_RIVER_CARD_DELAY_SEC)
|
delay = SERVER_DEAL_RIVER_CARD_DELAY_SEC;
|
||||||
server.SetState(ServerRecvStateStartRound::Instance());
|
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
server.SetState(ServerRecvStateStartRound::Instance());
|
|
||||||
}
|
}
|
||||||
|
if (!delay || GetTimer().elapsed().seconds() >= delay)
|
||||||
|
server.SetState(ServerRecvStateStartRound::Instance());
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -907,12 +905,6 @@ ServerRecvStateShowCardsDelay::~ServerRecvStateShowCardsDelay()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ServerRecvStateShowCardsDelay::SetTimer(const boost::microsec_timer &timer)
|
|
||||||
{
|
|
||||||
m_delayTimer = timer;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ServerRecvStateShowCardsDelay::Process(ServerRecvThread &server)
|
ServerRecvStateShowCardsDelay::Process(ServerRecvThread &server)
|
||||||
{
|
{
|
||||||
@@ -920,13 +912,10 @@ ServerRecvStateShowCardsDelay::Process(ServerRecvThread &server)
|
|||||||
|
|
||||||
Game &curGame = server.GetGame();
|
Game &curGame = server.GetGame();
|
||||||
|
|
||||||
if (m_delayTimer.elapsed().seconds() >= SERVER_SHOW_CARDS_DELAY_SEC)
|
if (GetTimer().elapsed().seconds() >= SERVER_SHOW_CARDS_DELAY_SEC)
|
||||||
{
|
{
|
||||||
SendNewRoundCards(server, curGame, curGame.getCurrentHand()->getActualRound());
|
SendNewRoundCards(server, curGame, curGame.getCurrentHand()->getActualRound());
|
||||||
|
|
||||||
boost::microsec_timer delayTimer;
|
|
||||||
delayTimer.start();
|
|
||||||
ServerRecvStateDealCardsDelay::Instance().SetTimer(delayTimer);
|
|
||||||
server.SetState(ServerRecvStateDealCardsDelay::Instance());
|
server.SetState(ServerRecvStateDealCardsDelay::Instance());
|
||||||
retVal = MSG_NET_GAME_SERVER_CARDS_DELAY;
|
retVal = MSG_NET_GAME_SERVER_CARDS_DELAY;
|
||||||
}
|
}
|
||||||
@@ -957,18 +946,12 @@ ServerRecvStateNextHand::~ServerRecvStateNextHand()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ServerRecvStateNextHand::SetTimer(const boost::microsec_timer &timer)
|
|
||||||
{
|
|
||||||
m_delayTimer = timer;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ServerRecvStateNextHand::Process(ServerRecvThread &server)
|
ServerRecvStateNextHand::Process(ServerRecvThread &server)
|
||||||
{
|
{
|
||||||
int retVal = ServerRecvStateReceiving::Process(server);
|
int retVal = ServerRecvStateReceiving::Process(server);
|
||||||
|
|
||||||
if (m_delayTimer.elapsed().seconds() >= SERVER_DELAY_NEXT_HAND_SEC)
|
if (GetTimer().elapsed().seconds() >= SERVER_DELAY_NEXT_HAND_SEC)
|
||||||
server.SetState(ServerRecvStateStartHand::Instance());
|
server.SetState(ServerRecvStateStartHand::Instance());
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
|
|||||||
@@ -601,6 +601,7 @@ ServerRecvThread::GetState()
|
|||||||
void
|
void
|
||||||
ServerRecvThread::SetState(ServerRecvState &newState)
|
ServerRecvThread::SetState(ServerRecvState &newState)
|
||||||
{
|
{
|
||||||
|
newState.Init();
|
||||||
m_curState = &newState;
|
m_curState = &newState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -316,7 +316,6 @@ public:
|
|||||||
PlayerAction playerAction;
|
PlayerAction playerAction;
|
||||||
u_int32_t totalPlayerBet;
|
u_int32_t totalPlayerBet;
|
||||||
u_int32_t playerMoney;
|
u_int32_t playerMoney;
|
||||||
u_int32_t curHandBets;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
NetPacketPlayersActionDone();
|
NetPacketPlayersActionDone();
|
||||||
|
|||||||
+47
-35
@@ -41,6 +41,9 @@ class ServerRecvState
|
|||||||
public:
|
public:
|
||||||
virtual ~ServerRecvState();
|
virtual ~ServerRecvState();
|
||||||
|
|
||||||
|
// Initialize after switching to this state.
|
||||||
|
virtual void Init() = 0;
|
||||||
|
|
||||||
// Handling of a new TCP connection.
|
// Handling of a new TCP connection.
|
||||||
virtual void HandleNewConnection(ServerRecvThread &server, boost::shared_ptr<ConnectData> connData) = 0;
|
virtual void HandleNewConnection(ServerRecvThread &server, boost::shared_ptr<ConnectData> connData) = 0;
|
||||||
|
|
||||||
@@ -65,28 +68,22 @@ protected:
|
|||||||
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet) = 0;
|
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// State: Initialization.
|
// Abstract State: Timer.
|
||||||
class ServerRecvStateInit : public ServerRecvStateReceiving
|
class ServerRecvStateTimer : virtual public ServerRecvState
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Access the state singleton.
|
virtual ~ServerRecvStateTimer();
|
||||||
static ServerRecvStateInit &Instance();
|
|
||||||
|
|
||||||
virtual ~ServerRecvStateInit();
|
virtual void Init();
|
||||||
|
|
||||||
//
|
const boost::microsec_timer &GetTimer() const {return m_timer;}
|
||||||
virtual void HandleNewConnection(ServerRecvThread &server, boost::shared_ptr<ConnectData> data);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Protected constructor - this is a singleton.
|
ServerRecvStateTimer();
|
||||||
ServerRecvStateInit();
|
|
||||||
|
|
||||||
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
boost::microsec_timer m_timer;
|
||||||
u_int16_t m_curUniquePlayerId;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Abstract State: Game is running.
|
// Abstract State: Game is running.
|
||||||
@@ -103,6 +100,31 @@ protected:
|
|||||||
ServerRecvStateRunning();
|
ServerRecvStateRunning();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// State: Initialization.
|
||||||
|
class ServerRecvStateInit : public ServerRecvStateReceiving
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Access the state singleton.
|
||||||
|
static ServerRecvStateInit &Instance();
|
||||||
|
|
||||||
|
virtual ~ServerRecvStateInit();
|
||||||
|
|
||||||
|
virtual void Init() {}
|
||||||
|
//
|
||||||
|
virtual void HandleNewConnection(ServerRecvThread &server, boost::shared_ptr<ConnectData> data);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// Protected constructor - this is a singleton.
|
||||||
|
ServerRecvStateInit();
|
||||||
|
|
||||||
|
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
u_int16_t m_curUniquePlayerId;
|
||||||
|
};
|
||||||
|
|
||||||
// State: Start server game.
|
// State: Start server game.
|
||||||
class ServerRecvStateStartGame : public ServerRecvStateRunning
|
class ServerRecvStateStartGame : public ServerRecvStateRunning
|
||||||
{
|
{
|
||||||
@@ -112,6 +134,8 @@ public:
|
|||||||
|
|
||||||
virtual ~ServerRecvStateStartGame();
|
virtual ~ServerRecvStateStartGame();
|
||||||
|
|
||||||
|
virtual void Init() {}
|
||||||
|
|
||||||
//
|
//
|
||||||
virtual int Process(ServerRecvThread &server);
|
virtual int Process(ServerRecvThread &server);
|
||||||
|
|
||||||
@@ -130,6 +154,8 @@ public:
|
|||||||
|
|
||||||
virtual ~ServerRecvStateStartHand();
|
virtual ~ServerRecvStateStartHand();
|
||||||
|
|
||||||
|
virtual void Init() {}
|
||||||
|
|
||||||
//
|
//
|
||||||
virtual int Process(ServerRecvThread &server);
|
virtual int Process(ServerRecvThread &server);
|
||||||
|
|
||||||
@@ -148,6 +174,8 @@ public:
|
|||||||
|
|
||||||
virtual ~ServerRecvStateStartRound();
|
virtual ~ServerRecvStateStartRound();
|
||||||
|
|
||||||
|
virtual void Init() {}
|
||||||
|
|
||||||
//
|
//
|
||||||
virtual int Process(ServerRecvThread &server);
|
virtual int Process(ServerRecvThread &server);
|
||||||
|
|
||||||
@@ -161,7 +189,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// State: Wait for a player action.
|
// State: Wait for a player action.
|
||||||
class ServerRecvStateWaitPlayerAction : public ServerRecvStateReceiving, public ServerRecvStateRunning
|
class ServerRecvStateWaitPlayerAction : public ServerRecvStateReceiving, public ServerRecvStateRunning, public ServerRecvStateTimer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Access the state singleton.
|
// Access the state singleton.
|
||||||
@@ -185,7 +213,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// State: Delay after dealing cards
|
// State: Delay after dealing cards
|
||||||
class ServerRecvStateDealCardsDelay : public ServerRecvStateReceiving, public ServerRecvStateRunning
|
class ServerRecvStateDealCardsDelay : public ServerRecvStateReceiving, public ServerRecvStateRunning, public ServerRecvStateTimer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Access the state singleton.
|
// Access the state singleton.
|
||||||
@@ -196,22 +224,16 @@ public:
|
|||||||
// Overwrite default processing
|
// Overwrite default processing
|
||||||
virtual int Process(ServerRecvThread &server);
|
virtual int Process(ServerRecvThread &server);
|
||||||
|
|
||||||
void SetTimer(const boost::microsec_timer &timer);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Protected constructor - this is a singleton.
|
// Protected constructor - this is a singleton.
|
||||||
ServerRecvStateDealCardsDelay();
|
ServerRecvStateDealCardsDelay();
|
||||||
|
|
||||||
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
boost::microsec_timer m_delayTimer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// State: Delay after showing cards (all in)
|
// State: Delay after showing cards (all in)
|
||||||
class ServerRecvStateShowCardsDelay : public ServerRecvStateReceiving, public ServerRecvStateRunning
|
class ServerRecvStateShowCardsDelay : public ServerRecvStateReceiving, public ServerRecvStateRunning, public ServerRecvStateTimer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Access the state singleton.
|
// Access the state singleton.
|
||||||
@@ -222,22 +244,16 @@ public:
|
|||||||
// Overwrite default processing
|
// Overwrite default processing
|
||||||
virtual int Process(ServerRecvThread &server);
|
virtual int Process(ServerRecvThread &server);
|
||||||
|
|
||||||
void SetTimer(const boost::microsec_timer &timer);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Protected constructor - this is a singleton.
|
// Protected constructor - this is a singleton.
|
||||||
ServerRecvStateShowCardsDelay();
|
ServerRecvStateShowCardsDelay();
|
||||||
|
|
||||||
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
boost::microsec_timer m_delayTimer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// State: Delay before next hand.
|
// State: Delay before next hand.
|
||||||
class ServerRecvStateNextHand : public ServerRecvStateReceiving, public ServerRecvStateRunning
|
class ServerRecvStateNextHand : public ServerRecvStateReceiving, public ServerRecvStateRunning, public ServerRecvStateTimer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Access the state singleton.
|
// Access the state singleton.
|
||||||
@@ -248,18 +264,12 @@ public:
|
|||||||
// Overwrite default processing
|
// Overwrite default processing
|
||||||
virtual int Process(ServerRecvThread &server);
|
virtual int Process(ServerRecvThread &server);
|
||||||
|
|
||||||
void SetTimer(const boost::microsec_timer &timer);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Protected constructor - this is a singleton.
|
// Protected constructor - this is a singleton.
|
||||||
ServerRecvStateNextHand();
|
ServerRecvStateNextHand();
|
||||||
|
|
||||||
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
virtual int InternalProcess(ServerRecvThread &server, SessionWrapper session, boost::shared_ptr<NetPacket> packet);
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
boost::microsec_timer m_delayTimer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -272,6 +282,8 @@ public:
|
|||||||
|
|
||||||
virtual ~ServerRecvStateFinal();
|
virtual ~ServerRecvStateFinal();
|
||||||
|
|
||||||
|
virtual void Init() {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Protected constructor - this is a singleton.
|
// Protected constructor - this is a singleton.
|
||||||
|
|||||||
Reference in New Issue
Block a user