From a bug report, walk_path() was
favoring orthogonal steps at beginning of the path and diagonal ones at
end, when intermixing diagonal and orthoganal produced a more accurate
representation of the real path. Only mattered for long distance jumps
3x2 or 3x1 steps away; hurtling always moves in a straight line and short
(2x1 knight) jumps aren't affected by the patch supplied with the report.
wielded/worn figurine which auto-transformed had same stale pointer bug
format names of not yet id'd artifacts such that obj type shows for non-weapons
make quest leader and nemesis be unlikely to be affected by traps
+use a more precise jumping path for far, non-straight line destinations
Platform- and/or Interface-Specific Fixes
prev_x = x;
prev_y = y;
y += y_change;
- err += dx;
- if (err >= dy) {
+ err += dx << 1;
+ if (err > dy) {
x += x_change;
- err -= dy;
+ err -= dy << 1;
}
/* check for early exit condition */
if (!(keep_going = (*check_proc)(arg, x, y)))
prev_x = x;
prev_y = y;
x += x_change;
- err += dy;
- if (err >= dx) {
+ err += dy << 1;
+ if (err > dx) {
y += y_change;
- err -= dx;
+ err -= dx << 1;
}
/* check for early exit condition */
if (!(keep_going = (*check_proc)(arg, x, y)))