#ifndef GOMOVE_H #define GOMOVE_H #include "Define.h" #include "ObjectGuid.h" #include #include #include class Player; class GameObject; class GameObjectStore { public: typedef std::mutex LockType; typedef std::lock_guard WriteGuard; void SpawnQueAdd(ObjectGuid const& guid, uint32 entry); void SpawnQueRem(ObjectGuid const& guid); uint32 SpawnQueGet(ObjectGuid const& guid); private: LockType _objectsToSpawnLock; std::unordered_map objectsToSpawn; }; class GOMove { public: static GameObjectStore Store; static void SendAdd(Player* player, GameObject* go); static void SendRemove(Player* player, ObjectGuid::LowType lowguid); static void SendAddonMessage(Player* player, const char* msg); static void DeleteGameObject(GameObject* object); static GameObject* GetGameObject(Player* player, ObjectGuid::LowType lowguid); static GameObject* SpawnGameObject(Player* player, float x, float y, float z, float o, uint32 p, uint32 entry); static GameObject* MoveGameObject(Player* player, float x, float y, float z, float o, uint32 p, ObjectGuid::LowType lowguid); static std::list GetNearbyGameObjects(Player* player, float range); }; #endif