The console server can now be fully used for a single game. The first player to join the game is admin, he can start the game and kick players.

However, if the admin player leaves, a new game can only be started if all players have left before (this is a bug, admin status should be passed to another player).
This commit is contained in:
lotodore
2007-08-02 20:52:13 +00:00
parent f11998c28c
commit 0da29b3874
25 changed files with 481 additions and 262 deletions
+43
View File
@@ -44,6 +44,8 @@ class NetPacketJoinGame;
class NetPacketJoinGameAck;
class NetPacketPlayerJoined;
class NetPacketPlayerLeft;
class NetPacketKickPlayer;
class NetPacketStartEvent;
class NetPacketGameStart;
class NetPacketHandStart;
class NetPacketPlayersTurn;
@@ -82,6 +84,8 @@ public:
virtual const NetPacketJoinGameAck *ToNetPacketJoinGameAck() const;
virtual const NetPacketPlayerJoined *ToNetPacketPlayerJoined() const;
virtual const NetPacketPlayerLeft *ToNetPacketPlayerLeft() const;
virtual const NetPacketKickPlayer *ToNetPacketKickPlayer() const;
virtual const NetPacketStartEvent *ToNetPacketStartEvent() const;
virtual const NetPacketGameStart *ToNetPacketGameStart() const;
virtual const NetPacketHandStart *ToNetPacketHandStart() const;
virtual const NetPacketPlayersTurn *ToNetPacketPlayersTurn() const;
@@ -215,6 +219,45 @@ protected:
virtual void InternalCheck(const NetPacketHeader* data) const;
};
class NetPacketKickPlayer : public NetPacket
{
public:
struct Data
{
u_int16_t playerId;
};
NetPacketKickPlayer();
virtual ~NetPacketKickPlayer();
virtual boost::shared_ptr<NetPacket> Clone() const;
void SetData(const Data &inData);
void GetData(Data &outData) const;
virtual const NetPacketKickPlayer *ToNetPacketKickPlayer() const;
protected:
virtual void InternalCheck(const NetPacketHeader* data) const;
};
class NetPacketStartEvent : public NetPacket
{
public:
NetPacketStartEvent();
virtual ~NetPacketStartEvent();
virtual boost::shared_ptr<NetPacket> Clone() const;
virtual const NetPacketStartEvent *ToNetPacketStartEvent() const;
protected:
virtual void InternalCheck(const NetPacketHeader* data) const;
};
class NetPacketGameStart : public NetPacket
{
public: