added building influence to pathfinder
This commit is contained in:
@@ -45,12 +45,12 @@ namespace OpenRa.Game
|
|||||||
foreach( TreeReference treeReference in map.Trees )
|
foreach( TreeReference treeReference in map.Trees )
|
||||||
world.Add( new Actor( treeReference, treeCache, map.Offset ) );
|
world.Add( new Actor( treeReference, treeCache, map.Offset ) );
|
||||||
|
|
||||||
pathFinder = new PathFinder(map, terrain.tileSet);
|
LocalPlayerBuildings = new BuildingInfluenceMap(world, LocalPlayer);
|
||||||
|
|
||||||
|
pathFinder = new PathFinder(map, terrain.tileSet, LocalPlayerBuildings);
|
||||||
|
|
||||||
network = new Network();
|
network = new Network();
|
||||||
|
|
||||||
LocalPlayerBuildings = new BuildingInfluenceMap(world, LocalPlayer);
|
|
||||||
|
|
||||||
controller = new Controller(this); // CAREFUL THERES AN UGLY HIDDEN DEPENDENCY HERE STILL
|
controller = new Controller(this); // CAREFUL THERES AN UGLY HIDDEN DEPENDENCY HERE STILL
|
||||||
worldRenderer = new WorldRenderer(renderer, this);
|
worldRenderer = new WorldRenderer(renderer, this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,12 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
double[ , ] passableCost = new double[ 128, 128 ];
|
double[ , ] passableCost = new double[ 128, 128 ];
|
||||||
Map map;
|
Map map;
|
||||||
|
BuildingInfluenceMap bim;
|
||||||
|
|
||||||
public PathFinder(Map map, TileSet tileSet)
|
public PathFinder(Map map, TileSet tileSet, BuildingInfluenceMap bim)
|
||||||
{
|
{
|
||||||
this.map = map;
|
this.map = map;
|
||||||
|
this.bim = bim;
|
||||||
|
|
||||||
for( int x = 0 ; x < 128 ; x++ )
|
for( int x = 0 ; x < 128 ; x++ )
|
||||||
for( int y = 0 ; y < 128 ; y++ )
|
for( int y = 0 ; y < 128 ; y++ )
|
||||||
@@ -59,6 +61,8 @@ namespace OpenRa.Game
|
|||||||
continue;
|
continue;
|
||||||
if( passableCost[ newHere.X, newHere.Y ] == double.PositiveInfinity )
|
if( passableCost[ newHere.X, newHere.Y ] == double.PositiveInfinity )
|
||||||
continue;
|
continue;
|
||||||
|
if (bim[newHere - offset] != null)
|
||||||
|
continue;
|
||||||
|
|
||||||
double cellCost = ( ( d.X * d.Y != 0 ) ? 1.414213563 : 1.0 ) * passableCost[ newHere.X, newHere.Y ];
|
double cellCost = ( ( d.X * d.Y != 0 ) ? 1.414213563 : 1.0 ) * passableCost[ newHere.X, newHere.Y ];
|
||||||
double newCost = cellInfo[ here.X, here.Y ].MinCost + cellCost;
|
double newCost = cellInfo[ here.X, here.Y ].MinCost + cellCost;
|
||||||
|
|||||||
Reference in New Issue
Block a user