瀏覽代碼

CGPathNode: move resetting code into separate function

ArseniyShestakov 10 年之前
父節點
當前提交
bd8eec7fb8
共有 2 個文件被更改,包括 7 次插入6 次删除
  1. 6 6
      lib/CPathfinder.cpp
  2. 1 0
      lib/CPathfinder.h

+ 6 - 6
lib/CPathfinder.cpp

@@ -393,14 +393,9 @@ void CPathfinder::initializeGraph()
 	auto updateNode = [&](int3 pos, EPathfindingLayer layer, const TerrainTile *tinfo)
 	{
 		auto node = out.getNode(pos, layer);
-		node->locked = false;
+		node->reset();
 		node->accessible = evaluateAccessibility(pos, tinfo);
-		node->turns = 0xff;
-		node->moveRemains = 0;
-		node->coord = pos;
 		node->land = tinfo->terType != ETerrainType::WATER;
-		node->theNodeBefore = nullptr;
-		node->layer = layer;
 	};
 
 	int3 pos;
@@ -520,6 +515,11 @@ bool CPathfinder::canVisitObject() const
 
 CGPathNode::CGPathNode(int3 Coord, EPathfindingLayer Layer)
 	: coord(Coord), layer(Layer)
+{
+	reset();
+}
+
+void CGPathNode::reset()
 {
 	locked = false;
 	accessible = NOT_SET;

+ 1 - 0
lib/CPathfinder.h

@@ -42,6 +42,7 @@ struct DLL_LINKAGE CGPathNode
 	EPathfindingLayer layer;
 
 	CGPathNode(int3 Coord, EPathfindingLayer Layer);
+	void reset();
 	bool reachable() const;
 };