Ticket #902: v1_rally_construct.diff

File v1_rally_construct.diff, 2.0 KB (added by Josh, 11 years ago)

Patch to allow setting rally points for buildings in construction.

  • 0ad/binaries/data/mods/public/simulation/components/Foundation.js

     
    277277        var rot = cmpPosition.GetRotation();
    278278        cmpBuildingPosition.SetYRotation(rot.y);
    279279        cmpBuildingPosition.SetXZRotation(rot.x, rot.z);
     280        var cmpRallyPoint = Engine.QueryInterface(this.entity, IID_RallyPoint);
     281        var cmpBuildingRallyPoint = Engine.QueryInterface(building, IID_RallyPoint);
     282        if(cmpRallyPoint!=null)
     283        {
     284            var rallyCoords = cmpRallyPoint.GetPositions()[0];
     285            var rallyData = cmpRallyPoint.GetData();
     286            if(rallyData)
     287                cmpBuildingRallyPoint.AddData(rallyData);
     288            if(rallyCoords)
     289            {
     290                cmpBuildingRallyPoint.AddPosition(rallyCoords["x"], rallyCoords["z"]);
     291                var cmpBuildingRallyPointRenderer = Engine.QueryInterface(building, IID_RallyPointRenderer);
     292                cmpBuildingRallyPointRenderer.SetPosition({'x': rallyCoords["x"], 'y': rallyCoords["z"]});
     293                cmpBuildingRallyPointRenderer.SetDisplayed(true);
     294            }
     295        }
    280296        // TODO: should add a ICmpPosition::CopyFrom() instead of all this
    281297
    282298        // ----------------------------------------------------------------------
  • 0ad/source/simulation2/components/CCmpTemplateManager.cpp

     
    566566    permittedComponentTypes.insert("Sound");
    567567    permittedComponentTypes.insert("Vision");
    568568    permittedComponentTypes.insert("AIProxy");
     569    permittedComponentTypes.insert("RallyPoint");
     570    permittedComponentTypes.insert("RallyPointRenderer");
    569571
    570572    CParamNode::LoadXMLString(out, "<Entity/>");
    571573    out.CopyFilteredChildrenOfChild(in, "Entity", permittedComponentTypes);