terom@5: #ifndef NETWORKSERVER_HH terom@5: #define NETWORKSERVER_HH terom@5: terom@6: #include "Network.hh" terom@6: #include "GameState.hh" terom@6: terom@5: #include terom@6: #include terom@6: #include terom@5: terom@6: // forward-declare terom@22: class NetworkServerPlayer; terom@6: terom@21: class NetworkServer : public NetworkCore { terom@24: friend class NetworkServerPlayer; terom@22: terom@24: private: terom@24: uint16_t pid_pool; terom@24: terom@24: public: terom@24: std::map players; terom@5: terom@24: public: terom@24: NetworkServer (GameState &state, const std::string &listen_port); terom@22: terom@24: private: terom@24: void on_connect (CL_NetComputer &computer); terom@24: void on_disconnect (CL_NetComputer &computer); terom@24: terom@24: terom@5: }; terom@5: terom@22: class NetworkServerPlayer : public RemotePlayer { terom@24: private: terom@24: NetworkServer &server; terom@24: CL_NetComputer &computer; terom@24: CL_NetObject_Server obj; terom@22: terom@24: CL_SlotContainer slots; terom@22: terom@24: uint16_t pid; terom@24: terom@24: public: terom@24: NetworkServerPlayer (NetworkServer &server, CL_NetComputer &computer, uint16_t pid); terom@22: terom@24: void disconnected (void); terom@22: terom@24: private: terom@24: void on_move (CL_NetComputer &from, CL_NetPacket &pkt); terom@24: terom@24: void send_position_update (void); terom@5: }; terom@5: terom@5: #endif