// // Created by koncord on 04.01.16. // #ifndef OPENMW_NETWORKING_HPP #define OPENMW_NETWORKING_HPP #include #include #include #include "WorldEvent.hpp" #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