Code:
public static final boolean I(int height, int currentX, int currentY, int futureX, int futureY, int j1)
{
if(currentY == futureX && currentY == futureY)
return true;
Z z = new Z(futureX, futureY, height, 0);
Z z1 = new Z(futureX, futureY, height, 1);
int k1 = contains(futureX, futureY);
int l1 = equals(currentX, currentY, futureX, futureY);
C c1 = null;
C c2 = null;
if(k1 > 14000)
{
System.out.println((new StringBuilder()).append("error in WorldMap X: ").append(currentY).append(" Y: ").append(currentY).toString());
return false;
}
if(VirtualWorld.I[k1] == null)
return true;
if(VirtualWorld.I[k1].containsKey(z))
c1 = (C)VirtualWorld.I[k1].get(z);
else
if(VirtualWorld.I[k1].containsKey(z1))
c2 = (C)VirtualWorld.I[k1].get(z1);
if(c1 == null && c2 == null)
return true;
ArrayList arraylist = null;
if(c1 != null)
arraylist = c1.I;
else
if(c2 != null)
arraylist = c2.I;
for(Iterator iterator = arraylist.iterator(); iterator.hasNext();)
{
int i2 = ((Integer)iterator.next()).intValue();
if(l1 == B.j[25])
return I(height, currentX, currentY, futureX - 1, futureY, j1) && I(height, currentX, currentY, futureX, futureY - 1, j1);
if(l1 == B.j[26])
return I(height, currentX, currentY, futureX + 1, futureY, j1) && I(height, currentX, currentY, futureX, futureY - 1, j1);
if(l1 == B.j[27])
return I(height, currentX, currentY, futureX + 1, futureY, j1) && I(height, currentX, currentY, futureX, futureY + 1, j1);
if(l1 == B.j[28])
return I(height, currentX, currentY, futureX - 1, futureY, j1) && I(height, currentX, currentY, futureX, futureY + 1, j1);
if(i2 != -1)
{
if(j1 == 1 && VirtualWorld.I[k1].containsKey(z1))
return true;
if(j1 == 0 && VirtualWorld.I[k1].containsKey(z1) && i2 == l1)
return false;
if(VirtualWorld.I[k1].containsKey(z) && i2 == l1)
return false;
} else
{
if(j1 == 1 && VirtualWorld.I[k1].containsKey(z1))
return true;
if(j1 == 0 && VirtualWorld.I[k1].containsKey(z1))
return false;
if(VirtualWorld.I[k1].containsKey(z))
return false;
}
}
return true;
}
In a file called I.java