#ifndef OPENMW_NETWORKING_HPP #define OPENMW_NETWORKING_HPP #include #include #include #include #include #include #include #include #include #include "ActorList.hpp" #include "ObjectList.hpp" #include "Worldstate.hpp" 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); ActorPacket *getActorPacket(RakNet::MessageID id); ObjectPacket *getObjectPacket(RakNet::MessageID id); WorldstatePacket *getWorldstatePacket(RakNet::MessageID id); RakNet::SystemAddress serverAddress() { return serverAddr; } bool isConnected(); LocalPlayer *getLocalPlayer(); ActorList *getActorList(); ObjectList *getObjectList(); Worldstate *getWorldstate(); private: bool connected; RakNet::RakPeerInterface *peer; RakNet::SystemAddress serverAddr; RakNet::BitStream bsOut; PlayerPacketController playerPacketController; ActorPacketController actorPacketController; ObjectPacketController objectPacketController; WorldstatePacketController worldstatePacketController; ActorList actorList; ObjectList objectList; Worldstate worldstate; void receiveMessage(RakNet::Packet *packet); void preInit(std::vector &content, Files::Collections &collections); }; } #endif //OPENMW_NETWORKING_HPP