diff options
author | Shauren <shauren.trinity@gmail.com> | 2015-02-25 00:13:14 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2015-04-28 21:19:46 +0200 |
commit | ca83e14f8b141fab0a13e08f48fca6c1ace0c4c7 (patch) | |
tree | 68487de0cd291b6aba9131a4eade228433f05d99 /src/server/shared/Containers.h | |
parent | 455ef1a64af14ee249e270b451f67f552ba3605a (diff) |
Core/Entities: Reworked guid scopes
* Added ObjectGuid traits to easily access whether guid type can be generated globally (ObjectMgr) or not
* This adds separate (per map) guid sequences depending on object type
* Ported map object container from cmangos/mangos-wotlk@a2d396eb0bb195efc460944dd4e0fab2a858b300
* Added type container visitor for TypeUnorderedMapContainer
* Implemented helper function to erase unique pairs from multimap containers
* Moved object storage of all objects except players and transports to map level
* Added containers linking database spawn id with creature/gameobject in world
* Renamed DBTableGuid to spawnId
* Added a separate spawn id sequence generator for creatures and gameobjects - this will be used in db tables
* Moved building SMSG_UPDATE_OBJECT - updatefields changes broadcast to map update
Diffstat (limited to 'src/server/shared/Containers.h')
-rw-r--r-- | src/server/shared/Containers.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/shared/Containers.h b/src/server/shared/Containers.h index 5dee18cb752..685acea05e3 100644 --- a/src/server/shared/Containers.h +++ b/src/server/shared/Containers.h @@ -92,6 +92,19 @@ namespace Trinity return false; } + + template<class K, class V, template<class, class, class...> class M, class... Rest> + void MultimapErasePair(M<K, V, Rest...>& multimap, K const& key, V const& value) + { + auto range = multimap.equal_range(key); + for (auto itr = range.first; itr != range.second;) + { + if (itr->second == value) + itr = multimap.erase(itr); + else + ++itr; + } + } } //! namespace Containers } |