/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, 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.
*
* ---
*
*
*/
+#include <config.h>
+
#include "misc.h"
#include <ctype.h>
-#include "var.h"
+#include "plague.h"
#include "ship.h"
#include "plane.h"
#include "land.h"
-#include "nuke.h"
#include "sect.h"
-#include "news.h"
#include "xy.h"
#include "nsc.h"
#include "nat.h"
#include "common.h"
#include "gen.h"
-/* Format a ship name */
-int
-check_nav(struct sctstr *sect)
-{
- switch (dchr[sect->sct_type].d_flg & 03) {
- case NAVOK:
- break;
-
- case NAV_02:
- if (sect->sct_effic < 2)
- return CN_CONSTRUCTION;
- break;
- case NAV_60:
- if (sect->sct_effic < 60)
- return CN_CONSTRUCTION;
- break;
- default:
- return CN_LANDLOCKED;
- }
- return CN_NAVIGABLE;
-}
-
/* load a specific ship given its
* location and what field to modify.
* new autonav code
* Chad Zabel 6/1/94
*/
int
-load_it(register struct shpstr *sp, register struct sctstr *psect, int i)
+load_it(struct shpstr *sp, struct sctstr *psect, int i)
{
- int comm, shipown, amount, ship_amt, sect_amt;
+ int shipown, amount, ship_amt, sect_amt;
int abs_max, max_amt, transfer;
+ i_type comm;
struct mchrstr *vship;
amount = sp->shp_lend[i];
shipown = sp->shp_own;
comm = sp->shp_tend[i];
- if (CANT_HAPPEN((unsigned)comm > I_MAX))
+ if (CANT_HAPPEN(comm <= I_NONE || comm > I_MAX))
return 0;
ship_amt = sp->shp_item[comm];
sect_amt = psect->sct_item[comm];
/* check for disloyal civilians */
- if (psect->sct_oldown != shipown && comm == V_CIVIL) {
+ if (psect->sct_oldown != shipown && comm == I_CIVIL) {
wu(0, shipown,
"Ship #%d - unable to load disloyal civilians at %s.",
sp->shp_uid, xyas(psect->sct_x, psect->sct_y, psect->sct_own));
return 0;
}
- if (comm == V_CIVIL || comm == V_MILIT)
+ if (comm == I_CIVIL || comm == I_MILIT)
sect_amt--; /* leave 1 civ or mil to hold the sector. */
vship = &mchr[(int)sp->shp_type];
- abs_max = max_amt = vl_find(comm, vship->m_vtype,
- vship->m_vamt, (int)vship->m_nv);
+ abs_max = max_amt = vship->m_item[comm];
if (!abs_max)
return 0; /* can't load the ship, skip to the end. */
- max_amt = min(sect_amt, max_amt - ship_amt);
+ max_amt = MIN(sect_amt, max_amt - ship_amt);
if (max_amt <= 0 && (ship_amt != abs_max)) {
sp->shp_autonav |= AN_LOADING;
return 0;
transfer = abs_max - ship_amt; /* then the max alowed */
/* on the ship. */
- if (transfer == 0)
+ if (transfer <= 0)
return 0; /* nothing to move */
sp->shp_item[comm] = ship_amt + transfer;
- if (comm == V_CIVIL || comm == V_MILIT)
+ if (comm == I_CIVIL || comm == I_MILIT)
sect_amt++; /*adjustment */
psect->sct_item[comm] = sect_amt - transfer;
* Chad Zabel 6/1/94
*/
void
-unload_it(register struct shpstr *sp)
+unload_it(struct shpstr *sp)
{
struct sctstr *sectp;
int i;
int landowner;
int shipown;
- int comm;
+ i_type comm;
int sect_amt;
int ship_amt;
int max_amt;
continue;
comm = sp->shp_tend[i];
- if (CANT_HAPPEN((unsigned)comm > I_MAX))
+ if (CANT_HAPPEN(comm <= I_NONE || comm > I_MAX))
continue;
ship_amt = sp->shp_item[comm];
sect_amt = sectp->sct_item[comm];
/* check for disloyal civilians */
- if (sectp->sct_oldown != shipown && comm == V_CIVIL) {
+ if (sectp->sct_oldown != shipown && comm == I_CIVIL) {
wu(0, sp->shp_own,
"Ship #%d - unable to unload civilians into a disloyal sector at %s.",
sp->shp_uid, xyas(sectp->sct_x, sectp->sct_y,
sectp->sct_own));
continue;
}
- if (comm == V_CIVIL)
+ if (comm == I_CIVIL)
ship_amt--; /* This leaves 1 civs on board the ship */
- max_amt = min(ship_amt, ITEM_MAX - sect_amt);
+ max_amt = MIN(ship_amt, ITEM_MAX - sect_amt);
if (max_amt <= 0)
continue;
*/
void
-auto_fuel_ship(register struct shpstr *sp)
+auto_fuel_ship(struct shpstr *sp)
{
double d;
int totalfuel = 0;