I get this code all the time and i think it may be causing some of my problems like random Dcing. What could be wrong?
Code:
public int getNextWalkingDirection() {
if(wQueueReadPtr == wQueueWritePtr)
return -1;
int dir;
do {
dir = Misc.direction(currentX, currentY, walkingQueueX[wQueueReadPtr], walkingQueueY[wQueueReadPtr]);
if(dir == -1) {
wQueueReadPtr = (wQueueReadPtr+1) % walkingQueueSize;
} else if((dir&1) != 0) {
println_debug("Invalid waypoint in walking queue!");
resetWalkingQueue();
return -1;
}
} while((dir == -1) && (wQueueReadPtr != wQueueWritePtr));
if(dir == -1) return -1;
dir >>= 1;
currentX += Misc.directionDeltaX[dir];
currentY += Misc.directionDeltaY[dir];
absX += Misc.directionDeltaX[dir];
absY += Misc.directionDeltaY[dir];
return dir;
}