public override void UpdateRecursiveG(Path path, PathNode pathNode, PathHandler handler)
{
handler.heap.Add(pathNode);
base.UpdateG(path, pathNode);
LayerGridGraph gridGraph = LevelGridNode.GetGridGraph(base.GraphIndex);
int[] neighbourOffsets = gridGraph.neighbourOffsets;
LevelGridNode[] nodes = gridGraph.nodes;
int nodeInGridIndex = base.NodeInGridIndex;
for (int i = 0; i < 4; i++)
{
int connectionValue = this.GetConnectionValue(i);
if (connectionValue != 255)
{
LevelGridNode levelGridNode = nodes[nodeInGridIndex + neighbourOffsets[i] + gridGraph.lastScannedWidth * gridGraph.lastScannedDepth * connectionValue];
PathNode pathNode2 = handler.GetPathNode(levelGridNode);
if (pathNode2 != null && pathNode2.parent == pathNode && pathNode2.pathID == handler.PathID)
{
levelGridNode.UpdateRecursiveG(path, pathNode2, handler);
}
}
}
base.UpdateRecursiveG(path, pathNode, handler);
}