public int[][] getPath(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { Object localObject = null; ((int[][])null); Vector localVector = new Vector(); this.destinationRow = getRowPosition(paramInt4); this.destinationCol = getColPosition(paramInt3); MGE_Node localMGE_Node1 = new MGE_Node(); localMGE_Node1.row = getRowPosition(paramInt2); localMGE_Node1.col = getColPosition(paramInt1); localMGE_Node1.g = 0; localMGE_Node1.h = getH(localMGE_Node1.row, localMGE_Node1.col); localMGE_Node1.f = (localMGE_Node1.g + localMGE_Node1.h); this.openNode.add(localMGE_Node1); while (true) { MGE_Node localMGE_Node2 = getBesetNode(); if (localMGE_Node2 == null) label127: return localObject; if ((localMGE_Node2.row == getRowPosition(paramInt4)) && (localMGE_Node2.col == getColPosition(paramInt3))) { MGE_Node localMGE_Node3 = localMGE_Node2; int[][] arrayOfInt1; if (localMGE_Node3.parent == null) { int i = 1 + localVector.size(); int[] arrayOfInt = new int[2]; arrayOfInt[0] = i; arrayOfInt[1] = 2; arrayOfInt1 = (int[][])Array.newInstance(Integer.TYPE, arrayOfInt); arrayOfInt1[localVector.size()][0] = paramInt2; arrayOfInt1[localVector.size()][1] = paramInt1; } for (int j = 0; ; ++j) { if (j >= localVector.size()) { localObject = arrayOfInt1; break label127: localVector.add(localMGE_Node3); localMGE_Node3 = localMGE_Node3.parent; } arrayOfInt1[j][0] = ((MGE_Node)localVector.elementAt(j)).row; arrayOfInt1[j][1] = ((MGE_Node)localVector.elementAt(j)).col; } } seachSeccessionNode(localMGE_Node2); } }
private void creatSeccessionNode(MGE_Node paramMGE_Node, int paramInt1, int paramInt2) { int i = 1 + paramMGE_Node.g; if (!isInClose(paramInt1, paramInt2)) { MGE_Node localMGE_Node1 = checkOpen(paramInt1, paramInt2); if (localMGE_Node1 == null) break label67; if (localMGE_Node1.g < i) { localMGE_Node1.parent = paramMGE_Node; localMGE_Node1.g = i; localMGE_Node1.f = (i + localMGE_Node1.h); } } while (true) { return; label67: MGE_Node localMGE_Node2 = new MGE_Node(); localMGE_Node2.parent = paramMGE_Node; localMGE_Node2.g = i; localMGE_Node2.h = getH(paramInt1, paramInt2); localMGE_Node2.f = (localMGE_Node2.g + localMGE_Node2.h); localMGE_Node2.row = paramInt1; localMGE_Node2.col = paramInt2; this.openNode.addElement(localMGE_Node2); } }