// // Created by koncord on 04.01.16. // #ifndef OPENMW_NETWORKING_HPP #define OPENMW_NETWORKING_HPP #include #include #include #include "WorldEvent.hpp" #include #include #include #include namespace mwmp { class LocalPlayer; class Networking { public: Networking(); ~Networking(); void connect(const std::string& ip, unsigned short port, std::vector &content, Files::Collections &collections); void update(); 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 *resetWorldEvent(); private: bool connected; RakNet::RakPeerInterface *peer; RakNet::SystemAddress serverAddr; RakNet::BitStream bsOut; PlayerPacketController playerController; WorldPacketController worldController; WorldEvent worldEvent; void processPlayerPacket(RakNet::Packet *packet); void processWorldPacket(RakNet::Packet *packet); void receiveMessage(RakNet::Packet *packet); LocalPlayer *getLocalPlayer(); void preInit(std::vector &content, Files::Collections &collections); }; } #endif //OPENMW_NETWORKING_HPP