10 |
10 |
11 // forward-declare |
11 // forward-declare |
12 class NetworkServerPlayer; |
12 class NetworkServerPlayer; |
13 |
13 |
14 class NetworkServer : public NetworkCore { |
14 class NetworkServer : public NetworkCore { |
15 friend class NetworkServerPlayer; |
15 friend class NetworkServerPlayer; |
16 |
16 |
17 private: |
17 private: |
18 uint16_t pid_pool; |
18 uint16_t pid_pool; |
19 |
19 |
20 public: |
20 public: |
21 std::map<CL_NetComputer, NetworkServerPlayer*> players; |
21 std::map<CL_NetComputer, NetworkServerPlayer*> players; |
22 |
22 |
23 public: |
23 public: |
24 NetworkServer (GameState &state, const std::string &listen_port); |
24 NetworkServer (GameState &state, const std::string &listen_port); |
25 |
25 |
26 private: |
26 private: |
27 void on_connect (CL_NetComputer &computer); |
27 void on_connect (CL_NetComputer &computer); |
28 void on_disconnect (CL_NetComputer &computer); |
28 void on_disconnect (CL_NetComputer &computer); |
29 |
29 |
30 |
30 |
31 }; |
31 }; |
32 |
32 |
33 class NetworkServerPlayer : public RemotePlayer { |
33 class NetworkServerPlayer : public RemotePlayer { |
34 private: |
34 private: |
35 NetworkServer &server; |
35 NetworkServer &server; |
36 CL_NetComputer &computer; |
36 CL_NetComputer &computer; |
37 CL_NetObject_Server obj; |
37 CL_NetObject_Server obj; |
38 |
38 |
39 CL_SlotContainer slots; |
39 CL_SlotContainer slots; |
40 |
40 |
41 uint16_t pid; |
41 uint16_t pid; |
42 |
42 |
43 public: |
43 public: |
44 NetworkServerPlayer (NetworkServer &server, CL_NetComputer &computer, uint16_t pid); |
44 NetworkServerPlayer (NetworkServer &server, CL_NetComputer &computer, uint16_t pid); |
45 |
45 |
46 void disconnected (void); |
46 void disconnected (void); |
47 |
47 |
48 private: |
48 private: |
49 void on_move (CL_NetComputer &from, CL_NetPacket &pkt); |
49 void on_move (CL_NetComputer &from, CL_NetPacket &pkt); |
50 |
50 |
51 void send_position_update (void); |
51 void send_position_update (void); |
52 }; |
52 }; |
53 |
53 |
54 #endif |
54 #endif |