Indented with src/scripts/indent-emp.

This commit is contained in:
Markus Armbruster 2003-09-02 20:48:48 +00:00
parent 5f263a7753
commit 9b7adfbecc
437 changed files with 52211 additions and 51052 deletions

View file

@ -48,209 +48,226 @@
#include "optlist.h"
struct stats {
double res;
double tech;
double edu;
double hap;
int stat;
double res;
double tech;
double edu;
double hap;
int stat;
};
static void printdiff(int mystat, double ours, struct natstr *natp, int what);
static void repo_header(void);
static void repo_list(struct stats *stat, natid cn, struct natstr *natp);
static void printdiff(int mystat, double ours, struct natstr *natp,
int what);
static void repo_header(void);
static void repo_list(struct stats *stat, natid cn, struct natstr *natp);
static int check(s_char *buf, double theirs, double min, double max, int shift, int what, int tolerance);
static int check(s_char *buf, double theirs, double min, double max,
int shift, int what, int tolerance);
int
repo(void)
{
struct natstr *natp;
struct stats mystat;
struct natstr nat;
struct nstr_item ni;
int first;
struct natstr *natp;
struct stats mystat;
struct natstr nat;
struct nstr_item ni;
int first;
if (!snxtitem(&ni, EF_NATION, player->argp[1]))
return RET_SYN;
prdate();
natp = getnatp(player->cnum);
bzero((s_char *)&mystat, sizeof(struct stats));
mystat.stat = natp->nat_stat;
if (mystat.stat & STAT_NORM) {
mystat.res = natp->nat_level[NAT_RLEV];
mystat.tech = natp->nat_level[NAT_TLEV];
mystat.edu = natp->nat_level[NAT_ELEV];
mystat.hap = natp->nat_level[NAT_HLEV];
}
if (!snxtitem(&ni, EF_NATION, player->argp[1]))
return RET_SYN;
prdate();
natp = getnatp(player->cnum);
bzero((s_char *)&mystat, sizeof(struct stats));
mystat.stat = natp->nat_stat;
if (mystat.stat & STAT_NORM) {
mystat.res = natp->nat_level[NAT_RLEV];
mystat.tech = natp->nat_level[NAT_TLEV];
mystat.edu = natp->nat_level[NAT_ELEV];
mystat.hap = natp->nat_level[NAT_HLEV];
}
if (opt_HIDDEN) {
repo_header();
first = 0;
} else {
first = 1;
}
while (nxtitem(&ni, (s_char *)&nat)) {
if (!(nat.nat_stat & STAT_INUSE))
continue;
if (opt_HIDDEN) {
if (!player->god && !getcontact(getnatp(player->cnum), ni.cur))
continue;
}
if (first) {
repo_header();
first = 0;
} else {
first = 1;
}
while (nxtitem(&ni, (s_char *) &nat)) {
if (!(nat.nat_stat & STAT_INUSE))
continue;
if (opt_HIDDEN) {
if (!player->god &&
!getcontact(getnatp(player->cnum), ni.cur))
continue;
}
if (first) {
repo_header();
first = 0;
}
repo_list(&mystat, (natid)ni.cur, &nat);
}
return RET_OK;
repo_list(&mystat, (natid)ni.cur, &nat);
}
return RET_OK;
}
static void
repo_header(void)
{
pr(" # name tech research education happiness ");
if (player->god)
pr("capital\n");
else {
if (opt_HIDDEN)
pr("\n");
else
pr(" status\n");
}
pr(" # name tech research education happiness ");
if (player->god)
pr("capital\n");
else {
if (opt_HIDDEN)
pr("\n");
else
pr(" status\n");
}
}
static void
repo_list(struct stats *stat, natid cn, struct natstr *natp)
{
struct sctstr cap;
struct sctstr cap;
if (player->god) {
pr(" %-3d %-14.14s ", cn, natp->nat_cnam);
pr(" %7.2f %7.2f %7.2f %7.2f",
natp->nat_level[NAT_TLEV],
natp->nat_level[NAT_RLEV],
natp->nat_level[NAT_ELEV],
natp->nat_level[NAT_HLEV]);
prxy(" %4d,%-4d\n", natp->nat_xcap, natp->nat_ycap,
player->cnum);
return;
}
switch (natp->nat_stat & (STAT_NORM|STAT_GOD|STAT_NEW|STAT_SANCT)) {
case STAT_NORM:
case (STAT_NORM|STAT_SANCT):
pr(" %-3d %-14.14s ", cn, natp->nat_cnam);
printdiff(stat->stat, stat->tech, natp, NAT_TLEV);
printdiff(stat->stat, stat->res, natp, NAT_RLEV);
printdiff(stat->stat, stat->edu, natp, NAT_ELEV);
printdiff(stat->stat, stat->hap, natp, NAT_HLEV);
getsect(natp->nat_xcap, natp->nat_ycap, &cap);
if (opt_HIDDEN) {
pr("\n");
} else {
if ((cap.sct_own != cn) ||
(cap.sct_type != SCT_CAPIT &&
cap.sct_type != SCT_MOUNT) ||
(natp->nat_flags & NF_SACKED))
pr("In flux\n");
else if (natp->nat_money <= 0)
pr("Broke\n");
else
pr("Active\n");
}
break;
case STAT_SANCT:
break;
case STAT_NEW:
case 0:
break;
case STAT_SANCT|STAT_NORM|STAT_GOD:
case STAT_NORM|STAT_GOD:
case STAT_GOD:
break;
default:
pr("???? ???? ???? ????\n");
break;
if (player->god) {
pr(" %-3d %-14.14s ", cn, natp->nat_cnam);
pr(" %7.2f %7.2f %7.2f %7.2f",
natp->nat_level[NAT_TLEV],
natp->nat_level[NAT_RLEV],
natp->nat_level[NAT_ELEV], natp->nat_level[NAT_HLEV]);
prxy(" %4d,%-4d\n", natp->nat_xcap, natp->nat_ycap, player->cnum);
return;
}
switch (natp->
nat_stat & (STAT_NORM | STAT_GOD | STAT_NEW | STAT_SANCT)) {
case STAT_NORM:
case (STAT_NORM | STAT_SANCT):
pr(" %-3d %-14.14s ", cn, natp->nat_cnam);
printdiff(stat->stat, stat->tech, natp, NAT_TLEV);
printdiff(stat->stat, stat->res, natp, NAT_RLEV);
printdiff(stat->stat, stat->edu, natp, NAT_ELEV);
printdiff(stat->stat, stat->hap, natp, NAT_HLEV);
getsect(natp->nat_xcap, natp->nat_ycap, &cap);
if (opt_HIDDEN) {
pr("\n");
} else {
if ((cap.sct_own != cn) ||
(cap.sct_type != SCT_CAPIT &&
cap.sct_type != SCT_MOUNT) ||
(natp->nat_flags & NF_SACKED))
pr("In flux\n");
else if (natp->nat_money <= 0)
pr("Broke\n");
else
pr("Active\n");
}
break;
case STAT_SANCT:
break;
case STAT_NEW:
case 0:
break;
case STAT_SANCT | STAT_NORM | STAT_GOD:
case STAT_NORM | STAT_GOD:
case STAT_GOD:
break;
default:
pr("???? ???? ???? ????\n");
break;
}
}
static void
printdiff(int mystat, double ours, struct natstr *natp, int what)
{
double theirs;
int shift;
int tolerance;
s_char buf[128];
if (natp->nat_cnum == player->cnum) {
pr(" %7.2f ", ours);
return;
}
if (ours && mystat & STAT_NORM &&
natp->nat_stat &STAT_NORM) {
theirs = natp->nat_level[what];
if ((shift = min((int)theirs, (int)ours) - 100) > 0) {
ours -= shift;
theirs -= shift;
} else
shift = 0;
switch (what) {
case NAT_TLEV:
tolerance = 20; break;
case NAT_RLEV:
tolerance = 10; break;
default:
tolerance = 5;
}
if (tolerance > 2 * ours)
tolerance = (int)(2 * ours);
if (check(buf, theirs, 2 * ours, -1.0, shift, what, tolerance));
else if (check(buf, theirs, 1.5*ours, 2.0*ours, shift, what, tolerance));
else if (check(buf, theirs, 1.2*ours, 1.5*ours, shift, what, tolerance));
else if (check(buf, theirs, 1.1*ours, 1.2*ours, shift, what, tolerance));
else if (check(buf, theirs, ours/1.1, 1.1*ours, shift, what, tolerance));
else if (check(buf, theirs, ours/1.2, ours/1.1, shift, what, tolerance));
else if (check(buf, theirs, ours/1.5, ours/1.2, shift, what, tolerance));
else if (check(buf, theirs, ours/2.0, ours/1.5, shift, what, tolerance));
else if (check(buf, theirs, -1.0, ours/2.0, shift, what, tolerance));
else sprintf(buf, " n/a");
} else
sprintf(buf, " n/a");
double theirs;
int shift;
int tolerance;
s_char buf[128];
pr("%-11s ", buf);
if (natp->nat_cnum == player->cnum) {
pr(" %7.2f ", ours);
return;
}
if (ours && mystat & STAT_NORM && natp->nat_stat & STAT_NORM) {
theirs = natp->nat_level[what];
if ((shift = min((int)theirs, (int)ours) - 100) > 0) {
ours -= shift;
theirs -= shift;
} else
shift = 0;
switch (what) {
case NAT_TLEV:
tolerance = 20;
break;
case NAT_RLEV:
tolerance = 10;
break;
default:
tolerance = 5;
}
if (tolerance > 2 * ours)
tolerance = (int)(2 * ours);
if (check(buf, theirs, 2 * ours, -1.0, shift, what, tolerance)) ;
else if (check
(buf, theirs, 1.5 * ours, 2.0 * ours, shift, what,
tolerance)) ;
else if (check
(buf, theirs, 1.2 * ours, 1.5 * ours, shift, what,
tolerance)) ;
else if (check
(buf, theirs, 1.1 * ours, 1.2 * ours, shift, what,
tolerance)) ;
else if (check
(buf, theirs, ours / 1.1, 1.1 * ours, shift, what,
tolerance)) ;
else if (check
(buf, theirs, ours / 1.2, ours / 1.1, shift, what,
tolerance)) ;
else if (check
(buf, theirs, ours / 1.5, ours / 1.2, shift, what,
tolerance)) ;
else if (check
(buf, theirs, ours / 2.0, ours / 1.5, shift, what,
tolerance)) ;
else if (check
(buf, theirs, -1.0, ours / 2.0, shift, what, tolerance)) ;
else
sprintf(buf, " n/a");
} else
sprintf(buf, " n/a");
pr("%-11s ", buf);
}
static int
check(s_char *buf, double theirs, double min, double max, int shift, int what, int tolerance)
check(s_char *buf, double theirs, double min, double max, int shift,
int what, int tolerance)
{
double shove;
double shove;
if (min < 0) {
if (theirs <= max) {
if (max < tolerance)
max = tolerance;
sprintf(buf, " 0 - %d", (int)max + shift);
return 1;
}
} else if (max < 0) {
if (theirs >= min) {
sprintf(buf, " >= %d", (int)min + shift);
return 1;
}
} else if (theirs >= min && theirs <= max) {
if (max - min < tolerance) {
shove = (tolerance - (max - min)) / 2;
if (min + shift - shove >= 0) {
min -= shove;
max += shove;
} else {
min = 0;
max = tolerance;
}
}
sprintf(buf, "%4d - %d", (int)min + shift, (int)max + shift);
return 1;
if (min < 0) {
if (theirs <= max) {
if (max < tolerance)
max = tolerance;
sprintf(buf, " 0 - %d", (int)max + shift);
return 1;
}
} else if (max < 0) {
if (theirs >= min) {
sprintf(buf, " >= %d", (int)min + shift);
return 1;
}
} else if (theirs >= min && theirs <= max) {
if (max - min < tolerance) {
shove = (tolerance - (max - min)) / 2;
if (min + shift - shove >= 0) {
min -= shove;
max += shove;
} else {
min = 0;
max = tolerance;
}
}
sprintf(buf, "%4d - %d", (int)min + shift, (int)max + shift);
return 1;
}
return 0;
return 0;
}