From: Markus Armbruster Date: Mon, 14 Jun 2010 04:57:04 +0000 (+0200) Subject: Factor look_at_sect() out of do_look() and ac_encounter() X-Git-Tag: v4.3.27~216 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=8eca636c7dc7254545340834e67ff0f972285cc7 Factor look_at_sect() out of do_look() and ac_encounter() --- diff --git a/include/prototypes.h b/include/prototypes.h index 7ec32de19..55a2be7f6 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -73,6 +73,7 @@ extern int check_trade(void); extern int ontradingblock(int, void *); extern void trdswitchown(int, void *, int); extern int do_look(int); +extern void look_at_sect(struct sctstr *, int); extern int radar(int); extern void update_power(void); extern int show_first_tel(char *); diff --git a/src/lib/commands/look.c b/src/lib/commands/look.c index 95a217afd..493d7826c 100644 --- a/src/lib/commands/look.c +++ b/src/lib/commands/look.c @@ -62,8 +62,6 @@ do_look(int type) union empobj_storage unit; struct sctstr sect; int x, y; - int civ; - int mil; unsigned char *bitmap; int changed = 0; @@ -103,26 +101,9 @@ do_look(int type) 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); } @@ -134,6 +115,31 @@ do_look(int type) 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) { diff --git a/src/lib/subs/aircombat.c b/src/lib/subs/aircombat.c index 2b32bfd02..6598457fb 100644 --- a/src/lib/subs/aircombat.c +++ b/src/lib/subs/aircombat.c @@ -83,7 +83,6 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list, int overfly[MAXNOC]; int flags; struct emp_qelem ilist[MAXNOC]; - int civ, mil; natid plane_owner; struct sctstr sect; struct shpstr ship; @@ -155,34 +154,10 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list, } 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);