Ticket #1756: FixGoalDetection.patch

File FixGoalDetection.patch, 1.6 KB (added by kanetaka, 10 years ago)
  • source/simulation2/components/CCmpPathfinder_JPS.cpp

     
    2727
    2828#define PATHFIND_STATS 0
    2929
    30 #define USE_JUMPPOINT_CACHE 1
     30#define USE_JUMPPOINT_CACHE 0
    3131
    3232#define ACCEPT_DIAGONAL_GAPS 0
    3333
    (this hunk was shorter than expected)  
    645645        if (!PASSABLE(ni, j))
    646646            break;
    647647
    648         if ((ni == state.iGoal && j == state.jGoal) || // XXX
     648        if (state.goal.NavcellContainsGoal(ni, j) ||
    649649#if ACCEPT_DIAGONAL_GAPS
    650650            (!PASSABLE(ni, j-1) && PASSABLE(ni+di, j-1)) ||
    651651            (!PASSABLE(ni, j+1) && PASSABLE(ni+di, j+1)))
    (this hunk was shorter than expected)  
    671672        if (!PASSABLE(ni, j))
    672673            return false;
    673674
    674         if ((ni == state.iGoal && j == state.jGoal) || // XXX
     675        if (state.goal.NavcellContainsGoal(ni, j) ||
    675676#if ACCEPT_DIAGONAL_GAPS
    676677            (!PASSABLE(ni, j-1) && PASSABLE(ni+di, j-1)) ||
    677678            (!PASSABLE(ni, j+1) && PASSABLE(ni+di, j+1)))
    (this hunk was shorter than expected)  
    696698        if (!PASSABLE(i, nj))
    697699            break;
    698700
    699         if ((i == state.iGoal && nj == state.jGoal) ||
     701        if (state.goal.NavcellContainsGoal(i, nj) ||
    700702#if ACCEPT_DIAGONAL_GAPS
    701703            (!PASSABLE(i-1, nj) && PASSABLE(i-1, nj+dj)) ||
    702704            (!PASSABLE(i+1, nj) && PASSABLE(i+1, nj+dj)))
     
    722725        if (!PASSABLE(i, nj))
    723726            return false;
    724727
    725         if ((i == state.iGoal && nj == state.jGoal) ||
     728        if (state.goal.NavcellContainsGoal(i, nj) ||
    726729#if ACCEPT_DIAGONAL_GAPS
    727730            (!PASSABLE(i-1, nj) && PASSABLE(i-1, nj+dj)) ||
    728731            (!PASSABLE(i+1, nj) && PASSABLE(i+1, nj+dj)))