// // Created by koncord on 18.04.17. // #ifndef OPENMW_ACTORPROCESSOR_HPP #define OPENMW_ACTORPROCESSOR_HPP #include #include #include #include #include #include #include "WorldEvent.hpp" #include "LocalPlayer.hpp" #include "DedicatedPlayer.hpp" #include "ActorList.hpp" namespace mwmp { class ActorProcessor : public BasePacketProcessor { public: virtual void Do(ActorPacket &packet, ActorList &actorList) = 0; static bool Process(RakNet::Packet &packet, ActorList &actorList); static void AddProcessor(ActorProcessor *processor); static void SetServerAddr(RakNet::SystemAddress addr) { serverAddr = addr; } typedef boost::unordered_map > processors_t; protected: inline bool isRequest() { return request; } LocalPlayer *getLocalPlayer(); protected: static RakNet::RakNetGUID guid; static RakNet::SystemAddress serverAddr; private: static processors_t processors; static bool request; }; } #endif //OPENMW_ACTORPROCESSOR_HPP