Fix units in formation blocking construction and not moving out of the way (see #779).

Make non-movement-blocking buildings (e.g. farms) not require units to
move out of the way.

This was SVN commit r9510.
This commit is contained in:
Ykkrosh
2011-05-13 20:32:41 +00:00
parent c41b7904d2
commit edd8ef2bf2
5 changed files with 32 additions and 1 deletions
@@ -289,6 +289,11 @@ public:
}
}
virtual bool GetBlockMovementFlag()
{
return (m_TemplateFlags & ICmpObstructionManager::FLAG_BLOCK_MOVEMENT) != 0;
}
virtual ICmpObstructionManager::tag_t GetObstruction()
{
return m_Tag;
@@ -27,5 +27,6 @@ DEFINE_INTERFACE_METHOD_0("CheckFoundationCollisions", bool, ICmpObstruction, Ch
DEFINE_INTERFACE_METHOD_0("GetConstructionCollisions", std::vector<entity_id_t>, ICmpObstruction, GetConstructionCollisions)
DEFINE_INTERFACE_METHOD_1("SetActive", void, ICmpObstruction, SetActive, bool)
DEFINE_INTERFACE_METHOD_1("SetDisableBlockMovementPathfinding", void, ICmpObstruction, SetDisableBlockMovementPathfinding, bool)
DEFINE_INTERFACE_METHOD_0("GetBlockMovementFlag", bool, ICmpObstruction, GetBlockMovementFlag)
DEFINE_INTERFACE_METHOD_1("SetControlGroup", void, ICmpObstruction, SetControlGroup, entity_id_t)
END_INTERFACE_WRAPPER(Obstruction)
@@ -56,6 +56,8 @@ public:
virtual void SetDisableBlockMovementPathfinding(bool disabled) = 0;
virtual bool GetBlockMovementFlag() = 0;
/**
* Change the control group that the entity belongs to.
* Control groups are used to let units ignore collisions with other units from