//#################### CONSTRUCTORS #################### ObjectManager::ObjectManager(const BoundsManager_CPtr& boundsManager, const ComponentPropertyTypeMap& componentPropertyTypes, const std::map<std::string,ObjectSpecification>& archetypes, const ASXEngine_Ptr& aiEngine, const ModelManager_Ptr& modelManager, const SpriteManager_Ptr& spriteManager) : m_boundsManager(boundsManager), m_componentPropertyTypes(componentPropertyTypes), m_archetypes(archetypes), m_aiEngine(aiEngine), m_modelManager(modelManager), m_physicsSystem(new PhysicsSystem), m_spriteManager(spriteManager) { // Set up the physics system. m_physicsSystem->set_contact_resolver(PM_BULLET, PM_CHARACTER, ContactResolver_CPtr(new ProjectileDamageContactResolver(this, PM_BULLET))); m_physicsSystem->set_contact_resolver(PM_BULLET, PM_WORLD, ContactResolver_CPtr(new AbsorbProjectileContactResolver(this, PM_BULLET))); m_physicsSystem->set_contact_resolver(PM_CHARACTER, PM_CHARACTER, ContactResolver_CPtr(new BounceContactResolver(0.1))); m_physicsSystem->set_contact_resolver(PM_CHARACTER, PM_WORLD, ContactResolver_CPtr(new BounceContactResolver(0.0))); m_physicsSystem->set_contact_resolver(PM_ITEM, PM_WORLD, ContactResolver_CPtr(new BounceContactResolver(0.0))); // Register object groupings. register_group("Activatables", is_activatable); register_group("Animatables", is_animatable); register_group("Moveables", is_moveable); register_group("Renderables", is_renderable); register_group("Yokeables", is_yokeable); }
group* duel::new_group(card* pcard) { group* pgroup = new group(this, pcard); return register_group(pgroup); }
group* duel::new_group(const card_set& cset) { group* pgroup = new group(this, cset); return register_group(pgroup); }
group* duel::new_group() { group* pgroup = new group(this); return register_group(pgroup); }