union empobj_storage unit;
struct sctstr sect;
int x, y;
- int civ;
- int mil;
unsigned char *bitmap;
int changed = 0;
getsect(x, y, §);
if (sect.sct_type == SCT_WATER)
continue;
- if (sect.sct_own == player->cnum)
- pr("Your ");
- else
- pr("%s (#%d) ", cname(sect.sct_own), sect.sct_own);
- pr("%s", dchr[sect.sct_type].d_name);
+ look_at_sect(§, 10);
changed += map_set(player->cnum, x, y,
dchr[sect.sct_type].d_mnem, 0);
- pr(" %d%% efficient ", player->owner ? sect.sct_effic :
- roundintby((int)sect.sct_effic, 10));
- civ = sect.sct_item[I_CIVIL];
- mil = sect.sct_item[I_MILIT];
- if (civ)
- pr("with %s%d civ ",
- player->owner ? "" : "approx ",
- player->owner ? civ : roundintby(civ, 10));
- if (mil)
- pr("with %s%d mil ",
- player->owner ? "" : "approx ",
- player->owner ? mil : roundintby(mil, 10));
- pr("@ %s\n", xyas(x, y, player->cnum));
if (opt_HIDDEN) {
setcont(player->cnum, sect.sct_own, FOUND_LOOK);
}
return RET_OK;
}
+void look_at_sect(struct sctstr *sp, int mult)
+{
+ int civ, mil;
+ int ours = player->god || sp->sct_own == player->cnum;
+
+ if (sp->sct_own == player->cnum)
+ pr("Your ");
+ else
+ pr("%s (#%d) ", cname(sp->sct_own), sp->sct_own);
+ pr("%s", dchr[sp->sct_type].d_name);
+ pr(" %d%% efficient ",
+ ours ? sp->sct_effic : roundintby(sp->sct_effic, mult));
+ civ = sp->sct_item[I_CIVIL];
+ mil = sp->sct_item[I_MILIT];
+ if (civ)
+ pr("with %s%d civ ",
+ ours ? "" : "approx ",
+ ours ? civ : roundintby(civ, mult));
+ if (mil)
+ pr("with %s%d mil ",
+ ours ? "" : "approx ",
+ ours ? mil : roundintby(mil, mult));
+ pr("@ %s\n", xyas(sp->sct_x, sp->sct_y, player->cnum));
+}
+
static void
look_ship(struct shpstr *lookship)
{
int overfly[MAXNOC];
int flags;
struct emp_qelem ilist[MAXNOC];
- int civ, mil;
natid plane_owner;
struct sctstr sect;
struct shpstr ship;
} else if (flags & P_S) {
satdisp_sect(§, flags & P_I ? 10 : 50);
} else {
- /* This is borrowed from lookout */
- if (sect.sct_own == player->cnum)
- pr("Your ");
- else
- pr("%s (#%d) ",
- cname(sect.sct_own), sect.sct_own);
- pr("%s", dchr[sect.sct_type].d_name);
+ look_at_sect(§, 25);
changed += map_set(player->cnum,
sect.sct_x, sect.sct_y,
dchr[sect.sct_type].d_mnem, 0);
- pr(" %d%% efficient ",
- (sect.sct_own == player->cnum) ?
- sect.sct_effic : roundintby((int)sect.sct_effic, 25));
- civ = sect.sct_item[I_CIVIL];
- mil = sect.sct_item[I_MILIT];
- if (civ)
- pr("with %s%d civ ",
- (sect.sct_own == player->cnum) ?
- "" : "approx ",
- (sect.sct_own == player->cnum) ?
- civ : roundintby(civ, 25));
- if (mil)
- pr("with %s%d mil ",
- (sect.sct_own == player->cnum) ?
- "" : "approx ",
- (sect.sct_own == player->cnum) ?
- mil : roundintby(mil, 25));
- pr("@ %s\n", xyas(x, y, player->cnum));
}
if (flags & P_S)
satdisp_units(sect.sct_x, sect.sct_y);