diff --git a/src/org/andengine/util/algorithm/path/astar/AStarPathFinder.java b/src/org/andengine/util/algorithm/path/astar/AStarPathFinder.java index c7f11a1f7..ff0e1ffb1 100644 --- a/src/org/andengine/util/algorithm/path/astar/AStarPathFinder.java +++ b/src/org/andengine/util/algorithm/path/astar/AStarPathFinder.java @@ -1,5 +1,8 @@ package org.andengine.util.algorithm.path.astar; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + import org.andengine.util.adt.list.ShiftList; import org.andengine.util.adt.map.LongSparseArray; import org.andengine.util.adt.queue.IQueue; @@ -185,7 +188,7 @@ public Path findPath(final IPathFinderMap pPathFinderMap, final int pXMin, fi // Inner and Anonymous Classes // =========================================================== - private static final class Node implements Comparable { + public static final class Node implements Comparable { // =========================================================== // Constants // =========================================================== @@ -264,7 +267,9 @@ public String toString() { // =========================================================== public static long calculateID(final int pX, final int pY) { - return (((long)pX) << 32) | pY; + final ByteBuffer byteBuffer = ByteBuffer.allocateDirect(16); + byteBuffer.order(ByteOrder.BIG_ENDIAN); + return byteBuffer.putInt(pX).putInt(pY).getLong(0); } public boolean equals(final Node pNode) { @@ -275,4 +280,4 @@ public boolean equals(final Node pNode) { // Inner and Anonymous Classes // =========================================================== } -} \ No newline at end of file +}