From 296f3272e2bf8c51715bec9a161b037b09804148 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 17 Jan 2014 18:49:48 +0100 Subject: [PATCH] path: New DIR_BACK() Actually pathfind.c's rev_dir() turned into a macro, to make it available elsewhere. Signed-off-by: Markus Armbruster --- include/path.h | 4 +++- src/lib/common/pathfind.c | 14 ++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/include/path.h b/include/path.h index 52a65885..5d83f32a 100644 --- a/include/path.h +++ b/include/path.h @@ -27,7 +27,7 @@ * path.h: Definitions for directions, paths, etc. * * Known contributors to this file: - * Markus Armbruster, 2005-2011 + * Markus Armbruster, 2005-2014 */ #ifndef PATH_H @@ -49,6 +49,8 @@ #define DIR_FIRST 1 #define DIR_LAST 6 +#define DIR_BACK(dir) ((dir) >= DIR_FIRST + 3 ? (dir) - 3 : (dir) + 3) + #define MOB_MOVE 0 #define MOB_MARCH 1 #define MOB_RAIL 2 diff --git a/src/lib/common/pathfind.c b/src/lib/common/pathfind.c index 2793aed4..759c7c88 100644 --- a/src/lib/common/pathfind.c +++ b/src/lib/common/pathfind.c @@ -27,7 +27,7 @@ * pathfind.c: Find cheapest paths * * Known contributors to this file: - * Markus Armbruster, 2011 + * Markus Armbruster, 2014 */ #include @@ -325,13 +325,6 @@ y_in_dir(coord y, int dir) return yy; } -static int -rev_dir(int dir) -{ - assert(DIR_FIRST <= dir && dir <= DIR_LAST); - return dir >= DIR_FIRST + 3 ? dir - 3 : dir + 3; -} - /* * Set the current source and cost function. * SX,SY is the source. @@ -456,8 +449,9 @@ path_find_route(char *buf, size_t bufsz, i = bufsz; buf[--i] = dirch[d]; len++; - x = x_in_dir(x, rev_dir(d)); - y = y_in_dir(y, rev_dir(d)); + assert(DIR_FIRST <= d && d <= DIR_LAST); + x = x_in_dir(x, DIR_BACK(d)); + y = y_in_dir(y, DIR_BACK(d)); } assert(x == sx && y == sy);