--- a/src/proto2/NetworkClient.hh Sat Nov 08 18:02:58 2008 +0000
+++ b/src/proto2/NetworkClient.hh Sat Nov 08 20:34:14 2008 +0000
@@ -4,12 +4,59 @@
#include "Network.hh"
#include "GameState.hh"
+// forward-declare
+class NetworkClientRemotePlayer;
+
class NetworkClient : public NetworkCore {
private:
CL_NetComputer server;
+
+ public:
+ NetworkClient (GameState &state, const CL_IPAddress &connect_to);
+
+ private:
+ void on_create_object (CL_NetObject_Client &obj, int msg_type, CL_NetPacket &pkt);
+
+ void on_server_hello (CL_NetObject_Client &obj, CL_NetPacket &pkt);
+ void on_player_info (CL_NetObject_Client &obj, CL_NetPacket &pkt);
+ void on_player_join (CL_NetObject_Client &obj, CL_NetPacket &pkt);
+
+ public:
+ void player_quit (NetworkClientRemotePlayer *player);
+};
+
+class NetworkClientLocalPlayer : public LocalPlayer {
+ private:
+ NetworkClient &client;
+
+ CL_SlotContainer slots;
+
+ CL_NetObject_Client &obj;
public:
- NetworkClient (GameState &state, const CL_IPAddress &connect_to);
+ NetworkClientLocalPlayer (NetworkClient &client, CL_NetObject_Client &obj, Coordinate initial_position);
+
+ virtual void move (PositionDelta d);
+
+ private:
+ void on_position (CL_NetPacket &pkt);
+};
+
+class NetworkClientRemotePlayer : public RemotePlayer {
+ private:
+ NetworkClient &client;
+
+ CL_SlotContainer slots;
+
+ CL_NetObject_Client &obj;
+
+ public:
+ NetworkClientRemotePlayer (NetworkClient &client, CL_NetObject_Client &obj, Coordinate initial_position);
+
+ private:
+ void on_position (CL_NetPacket &pkt);
+
+ void on_quit (CL_NetPacket &pkt);
};
#endif