// // Created by koncord on 04.01.16. // #ifndef OPENMW_NETWORKING_HPP #define OPENMW_NETWORKING_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace mwmp { class LocalPlayer; class Networking { public: Networking(); ~Networking(); void Connect(const std::string& ip, unsigned short port); void Update(); void SendData(RakNet::BitStream *bitStream); PlayerPacket *GetPlayerPacket(RakNet::MessageID id); WorldPacket *GetWorldPacket(RakNet::MessageID id); bool isDedicatedPlayer(const MWWorld::Ptr &ptr); bool Attack(const MWWorld::Ptr &ptr); RakNet::SystemAddress serverAddress() { return serverAddr; } bool isConnected(); WorldEvent *createWorldEvent(); private: bool connected; RakNet::RakPeerInterface *peer; RakNet::SystemAddress serverAddr; RakNet::BitStream bsOut; PlayerPacketController playerController; WorldPacketController worldController; void ProcessPlayerPacket(RakNet::Packet *packet); void ProcessWorldPacket(RakNet::Packet *packet); void ReceiveMessage(RakNet::Packet *packet); LocalPlayer *getLocalPlayer(); }; } #endif //OPENMW_NETWORKING_HPP