/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2 * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ #ifndef _GROUPMGR_H #define _GROUPMGR_H #include "Group.h" class GroupMgr { private: GroupMgr(); ~GroupMgr(); public: static GroupMgr* instance(); typedef std::map GroupContainer; Group* GetGroupByGUID(uint32 guid) const; void InitGroupIds(); void RegisterGroupId(uint32 groupId); uint32 GenerateGroupId(); void LoadGroups(); void AddGroup(Group* group); void RemoveGroup(Group* group); protected: typedef std::vector GroupIds; GroupIds _groupIds; uint32 _nextGroupId; GroupContainer GroupStore; }; #define sGroupMgr GroupMgr::instance() #endif