/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2004, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
int i;
coord *table; /* sectors already seen */
int t_len = 0;
- int vec[I_MAX + 1];
- int dvec[I_MAX + 1];
int nrecon;
int nunits;
struct nstr_sect nstr;
while (nxtsct(&nstr, &from)) {
if (!player->owner && !player->god)
continue;
- getvec(VT_ITEM, vec, (s_char *)&from, EF_SECTOR);
nrecon = 0;
nunits = 0;
snxtitem_xy(&ni, EF_LAND, from.sct_x, from.sct_y);
if (lchr[(int)land.lnd_type].l_flags & L_RECON)
nrecon++;
}
- if ((military = vec[I_MILIT]) == 0 && (nunits == 0))
+ if ((military = from.sct_item[I_MILIT]) == 0 && (nunits == 0))
continue;
x = from.sct_x;
y = from.sct_y;
continue;
}
getsect(nx, ny, &dsect);
- getvec(VT_ITEM, dvec, (s_char *)&dsect, EF_SECTOR);
- if (player->owner || (dsect.sct_type == SCT_WATER) ||
- (!dvec[I_MILIT] && !dvec[I_CIVIL] &&
- (num_units(nx, ny) == 0))) {
+ if (player->owner
+ || (dsect.sct_type == SCT_WATER)
+ || (!dsect.sct_item[I_MILIT] && !dsect.sct_item[I_CIVIL]
+ && num_units(nx, ny) == 0)) {
/* mark sector as seen */
insert(table, &t_len, nx, ny);
continue;
}
/* catch spy N/200 chance, N = # military */
- caught = chance((double)dvec[I_MILIT] / 200.0);
+ caught = chance((double)dsect.sct_item[I_MILIT] / 200.0);
own = dsect.sct_own;
/* determine spyee relations with spyer */
relat = getrel(getnatp(own), player->cnum);
if ((savemil != military) && (savemil > 0)) {
if ((military < 0) || (military > savemil))
military = 0;
- vec[I_MILIT] = military;
- putvec(VT_ITEM, vec, (s_char *)&from, EF_SECTOR);
+ from.sct_item[I_MILIT] = military;
putsect(&from);
}
}
static void
spyline(struct sctstr *sp)
{
- int vec[I_MAX + 1];
-
- getvec(VT_ITEM, vec, (s_char *)sp, EF_SECTOR);
prxy("%4d,%-4d", sp->sct_x, sp->sct_y, player->cnum);
- pr(" %c%c %3d %3d %3d %3d %3d %3d %4d %4d %4d %3d %4d %4d %4d %3d %3d\n", dchr[sp->sct_type].d_mnem, (sp->sct_newtype == sp->sct_type) ? ' ' : dchr[sp->sct_newtype].d_mnem, sp->sct_own, sp->sct_oldown, roundintby((int)sp->sct_effic, 10), roundintby((int)sp->sct_road, 10), roundintby((int)sp->sct_rail, 10), roundintby((int)sp->sct_defense, 10), roundintby(vec[I_CIVIL], 10), roundintby(vec[I_MILIT], 10), roundintby(vec[I_SHELL], 10), roundintby(vec[I_GUN], 10), roundintby(vec[I_PETROL], 10), roundintby(vec[I_FOOD], 10), roundintby(vec[I_BAR], 10), count_sect_units(sp), count_sect_planes(sp));
+ pr(" %c%c %3d %3d %3d %3d %3d %3d %4d %4d %4d %3d %4d %4d %4d %3d %3d\n",
+ dchr[sp->sct_type].d_mnem,
+ (sp->sct_newtype == sp->sct_type) ? ' ' : dchr[sp->sct_newtype].d_mnem,
+ sp->sct_own,
+ sp->sct_oldown,
+ roundintby((int)sp->sct_effic, 10),
+ roundintby((int)sp->sct_road, 10),
+ roundintby((int)sp->sct_rail, 10),
+ roundintby((int)sp->sct_defense, 10),
+ roundintby(sp->sct_item[I_CIVIL], 10),
+ roundintby(sp->sct_item[I_MILIT], 10),
+ roundintby(sp->sct_item[I_SHELL], 10),
+ roundintby(sp->sct_item[I_GUN], 10),
+ roundintby(sp->sct_item[I_PETROL], 10),
+ roundintby(sp->sct_item[I_FOOD], 10),
+ roundintby(sp->sct_item[I_BAR], 10),
+ count_sect_units(sp),
+ count_sect_planes(sp));
}