src/proto2/NetworkClient.hh
changeset 22 b70d30e1b0fe
parent 21 32c6cc55256a
child 23 8d802b573cf0
--- 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