Procházet zdrojové kódy

Optimization for terrain path.

DjWarmonger před 14 roky
rodič
revize
b97988477e
1 změnil soubory, kde provedl 12 přidání a 12 odebrání
  1. 12 12
      client/CAdvmapInterface.cpp

+ 12 - 12
client/CAdvmapInterface.cpp

@@ -522,6 +522,18 @@ void CTerrainRect::hover(bool on)
 }
 void CTerrainRect::showPath(const SDL_Rect * extRect, SDL_Surface * to)
 {
+	const static int pns[9][9] = {
+				{16, 17, 18,  7, -1, 19,  6,  5, -1},
+				{ 8,  9, 18,  7, -1, 19,  6, -1, 20},
+				{ 8,  1, 10,  7, -1, 19, -1, 21, 20},
+				{24, 17, 18, 15, -1, -1,  6,  5,  4},
+				{-1, -1, -1, -1, -1, -1, -1, -1, -1},
+				{ 8,  1,  2, -1, -1, 11, 22, 21, 20},
+				{24, 17, -1, 23, -1,  3, 14,  5,  4},
+				{24, -1,  2, 23, -1,  3, 22, 13,  4},
+				{-1,  1,  2, 23, -1,  3, 22, 21, 12}
+			}; //table of magic values TODO meaning, change variable name
+
 	for (size_t i=0; i < currentPath->nodes.size()-1; ++i)
 	{
 		int pn=-1;//number of picture
@@ -551,20 +563,8 @@ void CTerrainRect::showPath(const SDL_Rect * extRect, SDL_Surface * to)
 			int id1=(cv[i].coord.x-cv[i+1].coord.x+1)+3*(cv[i].coord.y-cv[i+1].coord.y+1);   //Direction of entering vector
 			int id2=(cv[i-1].coord.x-cv[i].coord.x+1)+3*(cv[i-1].coord.y-cv[i].coord.y+1); //Direction of exiting vector
 
-			const static int pns[9][9] = {
-				{16, 17, 18,  7, -1, 19,  6,  5, -1},
-				{ 8,  9, 18,  7, -1, 19,  6, -1, 20},
-				{ 8,  1, 10,  7, -1, 19, -1, 21, 20},
-				{24, 17, 18, 15, -1, -1,  6,  5,  4},
-				{-1, -1, -1, -1, -1, -1, -1, -1, -1},
-				{ 8,  1,  2, -1, -1, 11, 22, 21, 20},
-				{24, 17, -1, 23, -1,  3, 14,  5,  4},
-				{24, -1,  2, 23, -1,  3, 22, 13,  4},
-				{-1,  1,  2, 23, -1,  3, 22, 21, 12}
-			}; //table of magic values TODO meaning, change variable name
 			pn=pns[id1][id2];
 
-
 		}
 		if (currentPath->nodes[i].turns)
 			pn+=25;