/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
- * Ken Stevens, Steve McClure
+ * Copyright (C) 1986-2011, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Ken Stevens, Steve McClure, Markus Armbruster
*
- * This program is free software; you can redistribute it and/or modify
+ * Empire is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* ---
*
* ---
*
* move.c: Move something somewhere.
- *
+ *
* Known contributors to this file:
- *
+ *
*/
#include <config.h>
-#include "misc.h"
-#include "player.h"
-#include "sect.h"
-#include "item.h"
+#include <ctype.h>
+#include "damage.h"
#include "file.h"
-#include "xy.h"
-#include "path.h"
-#include "nat.h"
#include "map.h"
-#include "nsc.h"
-#include "damage.h"
+#include "path.h"
+#include "player.h"
#include "prototypes.h"
+#include "sect.h"
static int move_map(coord curx, coord cury, char *arg);
int intcost;
int takedam = *dam;
int out = 0;
- char bpath[512];
- char buf2[512];
+ char bpath[1024];
+ char buf2[1024];
char prompt[128];
char buf[1024];
}
pr("Looking for best path to %s\n", path);
path = BestLandPath(buf2, start, &ending_sect, &total_mcost,
- MOB_ROAD);
+ MOB_MOVE);
if (exploring && path) /* take off the 'h' */
path[strlen(path) - 1] = '\0';
if (!path)
if (movstr && sarg_xy(movstr, &dx, &dy)) {
if (getsect(dx, dy, &dsect)) {
movstr = BestLandPath(buf2, §, &dsect, &mv_cost,
- MOB_ROAD);
+ MOB_MOVE);
} else {
pr("Invalid destination sector!\n");
movstr = NULL;
*movstr = 0;
continue;
}
- movstr++;
+ do movstr++; while (isspace(*movstr));
if (dir == DIR_MAP) {
if (!exploring)
- map(curx, cury, movstr + 1);
+ map(curx, cury, movstr);
*movstr = 0;
continue;
} else if (dir == DIR_STOP)
*movstr = 0;
continue;
}
- sect_mcost = sector_mcost(&next, MOB_ROAD);
+ sect_mcost = sector_mcost(&next, MOB_MOVE);
if ((!player->owner && (!exploring
|| next.sct_item[I_MILIT]
|| next.sct_item[I_CIVIL]))
mobility -= sect_mcost;
total_mcost += sect_mcost;
}
- curx = tmpx;
- cury = tmpy;
+ curx = next.sct_x;
+ cury = next.sct_y;
if (cury != start->sct_y)
out = 1;
if (curx != start->sct_x)
i = 0;
while (i < 7 && nxtsct(&ns, §)) {
/* Nasty: this relies on the iteration order */
- if (!(view[i] = player->bmap[sctoff(ns.x, ns.y)]))
+ if (!(view[i] = player->bmap[sect.sct_uid]))
view[i] = ' ';
i++;
}
int dam = 0;
getsect(x, y, §);
- if (sect.sct_mines > 0 &&
+ if (SCT_LANDMINES(§) > 0 &&
sect.sct_oldown != player->cnum &&
chance(DMINE_LHITCHANCE(sect.sct_mines)) && chance(weight / 100.0)) {
pr_beep();