2 * Empire - A multi-player, client/server Internet based war game.
3 * Copyright (C) 1986-2011, Dave Pare, Jeff Bailey, Thomas Ruschak,
4 * Ken Stevens, Steve McClure, Markus Armbruster
6 * Empire is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 * See files README, COPYING and CREDITS in the root of the source
22 * tree for related information and legal notices. It is expected
23 * that future projects/authors will amend these files as needed.
27 * path.c: Path finding interface code
29 * Known contributors to this file:
32 * Thomas Ruschak, 1993
34 * Markus Armbruster, 2011
47 BestLandPath(char *path,
49 struct sctstr *to, double *cost, int mob_type)
58 * Note: passing from->sct_own for actor is funny, but works: its
59 * only effect is to confine the search to that nation's land. It
60 * doesn't affect mobility costs. The real actor is different for
61 * marching in allied land, and passing it would break path
64 c = path_find(from->sct_x, from->sct_y, to->sct_x, to->sct_y,
65 from->sct_own, mob_type);
68 len = path_find_route(path, 1024,
69 from->sct_x, from->sct_y,
70 to->sct_x, to->sct_y);
73 strcpy(path + len, "h");
79 BestDistPath(char *path,
81 struct sctstr *to, double *cost)
83 return BestLandPath(path, from, to, cost, MOB_MOVE);
87 BestShipPath(char *path, int fx, int fy, int tx, int ty, int owner)
91 map = ef_ptr(EF_BMAP, owner);
94 return bestownedpath(path, map, fx, fy, tx, ty, owner);
98 BestAirPath(char *path, int fx, int fy, int tx, int ty)
100 return bestownedpath(path, NULL, fx, fy, tx, ty, -1);