Esempio n. 1
0
//#################### 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);
}
Esempio n. 2
0
group* duel::new_group(card* pcard) {
	group* pgroup = new group(this, pcard);
	return register_group(pgroup);
}
Esempio n. 3
0
group* duel::new_group(const card_set& cset) {
	group* pgroup = new group(this, cset);
	return register_group(pgroup);
}
Esempio n. 4
0
group* duel::new_group() {
	group* pgroup = new group(this);
	return register_group(pgroup);
}