/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license: http://github.com/azerothcore/azerothcore-wotlk/LICENSE-GPL2 * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ #ifndef _GROUPMGR_H #define _GROUPMGR_H #include "Group.h" class GroupMgr { friend class ACE_Singleton; private: GroupMgr(); ~GroupMgr(); public: 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 ACE_Singleton::instance() #endif