/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2005, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
*
* ---
*
- * See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- * related information and legal notices. It is expected that any future
- * projects/authors will amend these files as needed.
+ * See files README, COPYING and CREDITS in the root of the source
+ * tree for related information and legal notices. It is expected
+ * that future projects/authors will amend these files as needed.
*
* ---
*
* Steve McClure, 1996-2000
*/
+#include <config.h>
+
#include <math.h>
#include "misc.h"
#include "queue.h"
#include "server.h"
#include "prototypes.h"
-static int shp_check_nav(struct sctstr *);
static int shp_check_one_mines(struct mlist *);
static int shp_hit_mine(struct shpstr *, struct mchrstr *);
static void shp_mess(s_char *, struct mlist *);
continue;
case CN_LANDLOCKED:
shp_mess("is landlocked", mlp);
- break;
+ continue;
case CN_NAVIGABLE:
break;
case CN_ERROR:
if (chance(0.66)) {
mpr(actor, "Sweep...\n");
mines--;
- shells = min(max, shells + 1);
+ shells = MIN(max, shells + 1);
changed |= map_set(actor, sect.sct_x, sect.sct_y, 'X', 0);
}
}
pr("%4d ", shp->shp_uid);
pr("%-16.16s ", mlp->mcp->m_name);
prxy("%4d,%-4d ", shp->shp_x, shp->shp_y, mlp->ship.shp_own);
- pr("%1c", shp->shp_fleet);
+ pr("%c", shp->shp_fleet);
pr("%4d%%", shp->shp_effic);
pr("%4d", shp->shp_item[I_MILIT]);
pr("%4d", shp->shp_item[I_SHELL]);
free(mlp);
}
-static int
+int
shp_check_nav(struct sctstr *sect)
{
- switch (dchr[sect->sct_type].d_flg & 03) {
+ switch (dchr[sect->sct_type].d_nav) {
case NAVOK:
break;
return CN_NAVIGABLE;
}
+int
+sect_has_dock(struct sctstr *sect)
+{
+ switch (dchr[sect->sct_type].d_nav) {
+ case NAV_02:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
static int
shp_count(struct emp_qelem *list, int wantflags, int nowantflags, int x,
int y)
gun = fsect.sct_item[I_GUN];
if (gun < 1)
continue;
- range = tfactfire(fsect.sct_own, (double)min(gun, 7));
+ range = tfactfire(fsect.sct_own, (double)MIN(gun, 7));
if (fsect.sct_effic > 59)
range++;
range2 = roundrange(range);
continue;
}
}
- if (opt_BIG_CITY && sect.sct_type == SCT_CAPIT) {
- if (mlp->mcp->m_lcm + 2 * mlp->mcp->m_hcm >= 60) {
+ if (IS_BIG_CITY(sect.sct_type)) {
+ if (!(mlp->mcp->m_flags & M_CANAL)) {
sprintf(dp,
"is too large to fit into the canal system at %s",
xyas(newx, newy, actor));
continue;
/* now calculate the odds */
- gun = min(ship.shp_item[I_GUN], ship.shp_glim);
+ gun = MIN(ship.shp_item[I_GUN], ship.shp_glim);
eff = (double)ship.shp_effic / 100.0;
teff =
(((double)ship.shp_tech) / (((double)ship.shp_tech) + 200.0));