diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-01-05 20:22:34 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-01-05 20:22:34 +0100 |
commit | 401502ea3c5ceca0c6253910035b2949e13746cc (patch) | |
tree | 08171ad987c9afe14719f5cb4c384546389878f8 /src/server/game/Grids/GridRefManager.h | |
parent | 04433910424540e42a2270156e7c9a8722c09913 (diff) |
Core/Grids: Modernize TypeContainer with variadic template
Diffstat (limited to 'src/server/game/Grids/GridRefManager.h')
-rw-r--r-- | src/server/game/Grids/GridRefManager.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/server/game/Grids/GridRefManager.h b/src/server/game/Grids/GridRefManager.h index 44945e6c335..54f1e7c6b35 100644 --- a/src/server/game/Grids/GridRefManager.h +++ b/src/server/game/Grids/GridRefManager.h @@ -27,4 +27,30 @@ template<class OBJECT> class GridRefManager : public RefManager<GridReference<OBJECT>> { }; + +template <typename ObjectType> +struct GridRefManagerContainer +{ + using Container = GridRefManager<ObjectType>; + using ValueType = ObjectType*; + + static bool Insert(Container& container, ValueType object) + { + object->AddToGrid(container); + return true; + } + + static bool Remove(Container& /*container*/, ValueType object) + { + object->RemoveFromGrid(); + return true; + } + + static std::size_t Size(Container const& container) + { + return container.getSize(); + } +}; + + #endif |