1
0
forked from 0ad/0ad

Allow setting rally points for foundations. Patch by Josh. Fixes #902.

This was SVN commit r13390.
This commit is contained in:
leper 2013-05-02 20:29:22 +00:00
parent bf959e1c46
commit 0d09f290d9
2 changed files with 18 additions and 0 deletions

View File

@ -279,6 +279,22 @@ Foundation.prototype.Build = function(builderEnt, work)
cmpBuildingPosition.SetXZRotation(rot.x, rot.z);
// TODO: should add a ICmpPosition::CopyFrom() instead of all this
var cmpRallyPoint = Engine.QueryInterface(this.entity, IID_RallyPoint);
var cmpBuildingRallyPoint = Engine.QueryInterface(building, IID_RallyPoint);
if(cmpRallyPoint && cmpBuildingRallyPoint)
{
var rallyCoords = cmpRallyPoint.GetPositions();
var rallyData = cmpRallyPoint.GetData();
var cmpBuildingRallyPointRenderer = Engine.QueryInterface(building, IID_RallyPointRenderer);
for (var i = 0; i < rallyCoords.length; ++i)
{
cmpBuildingRallyPoint.AddPosition(rallyCoords[i].x, rallyCoords[i].z);
cmpBuildingRallyPoint.AddData(rallyData[i]);
if (cmpBuildingRallyPointRenderer)
cmpBuildingRallyPointRenderer.AddPosition({'x': rallyCoords[i].x, 'y': rallyCoords[i].z});
}
}
// ----------------------------------------------------------------------
var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);

View File

@ -566,6 +566,8 @@ void CCmpTemplateManager::CopyFoundationSubset(CParamNode& out, const CParamNode
permittedComponentTypes.insert("Sound");
permittedComponentTypes.insert("Vision");
permittedComponentTypes.insert("AIProxy");
permittedComponentTypes.insert("RallyPoint");
permittedComponentTypes.insert("RallyPointRenderer");
CParamNode::LoadXMLString(out, "<Entity/>");
out.CopyFilteredChildrenOfChild(in, "Entity", permittedComponentTypes);