From 26864aaf41dc4465595eed597db9f5588a30a268 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Thu, 14 Mar 2013 23:26:47 -0400 Subject: Make Component::family() support > 64 components. --- entityx/Entity.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/entityx/Entity.h b/entityx/Entity.h index 6e82a5a..3f96628 100644 --- a/entityx/Entity.h +++ b/entityx/Entity.h @@ -158,12 +158,7 @@ template struct Component : public BaseComponent { public: /// Used internally for registration. - static Family family() { - static Family family = family_counter_++; - // The 64-bit bitmask supports a maximum of 64 components. - assert(family < 64); - return family; - } + static Family family(); }; @@ -526,6 +521,13 @@ class EntityManager : boost::noncopyable { std::list free_list_; }; +template +static BaseComponent::Family Component::family() { + static Family family = family_counter_++; + assert(family < EntityManager::MAX_COMPONENTS); + return family; +} + template boost::shared_ptr Entity::assign(boost::shared_ptr component) { return manager_->assign(id_, component); -- cgit v1.2.3