diff --git a/include/nat.h b/include/nat.h index 5b94b89f..1ff81663 100644 --- a/include/nat.h +++ b/include/nat.h @@ -40,6 +40,17 @@ #define MAXNOR 50 /* max # realms */ +enum { /* Priorities */ + /* sector types are also priorities */ + PRI_SMAINT = SCT_MAXDEF+1, /* ship maintenance */ + PRI_PMAINT, /* plane maintenance */ + PRI_LMAINT, /* land unit maintenance */ + PRI_SBUILD, /* ship building */ + PRI_PBUILD, /* plane building */ + PRI_LBUILD, /* land building */ + PRI_MAX = PRI_LBUILD +}; + struct boundstr { short b_xl, b_xh; /* horizontal bounds */ short b_yl, b_yh; /* vertical bounds */ @@ -75,20 +86,12 @@ struct natstr { struct boundstr nat_b[MAXNOR]; /* realm bounds */ short nat_relate[MAXNOC]; short nat_contact[MAXNOC]; - short nat_rejects[(MAXNOC + 3) / 4]; /* four bits for each country */ - s_char nat_priorities[SCT_MAXDEF + 8]; /* priority for each SCT_MAXDEF+8 */ + short nat_rejects[(MAXNOC + 3) / 4]; /* four bits for each country */ + s_char nat_priorities[PRI_MAX+1]; /* budget priority */ long nat_flags; /* nation flags */ char nat_spare[15]; }; - /* Priorities */ -#define PRI_SMAINT SCT_MAXDEF+2 -#define PRI_PMAINT SCT_MAXDEF+3 -#define PRI_LMAINT SCT_MAXDEF+4 -#define PRI_SBUILD SCT_MAXDEF+5 -#define PRI_PBUILD SCT_MAXDEF+6 -#define PRI_LBUILD SCT_MAXDEF+7 - /* nation status types */ #define STAT_INUSE bit(0) /* cnum in use */ #define STAT_SANCT bit(1) /* country in sanctuary */ diff --git a/src/lib/commands/add.c b/src/lib/commands/add.c index ea6d0926..5ff45b30 100644 --- a/src/lib/commands/add.c +++ b/src/lib/commands/add.c @@ -230,7 +230,7 @@ add(void) } else pr("No special initializations done...\n"); - for (i = 0; i < SCT_MAXDEF + 8; i++) + for (i = 0; i <= PRI_MAX; i++) natp->nat_priorities[i] = -1; natp->nat_flags = NF_FLASH | NF_BEEP | NF_COASTWATCH | NF_SONAR | NF_TECHLISTS; diff --git a/src/lib/commands/budg.c b/src/lib/commands/budg.c index 36908dab..24d5da0f 100644 --- a/src/lib/commands/budg.c +++ b/src/lib/commands/budg.c @@ -65,7 +65,7 @@ budg(void) { s_char stype = 0, *pq; int priority, x; - long p_sect[SCT_MAXDEF + 1][2]; + long p_sect[SCT_MAXDEF+1][2]; int taxes = 0, bars = 0, mil = 0; int Ncivs = 0, Nuws = 0, Nbars = 0; int n, etu; @@ -108,11 +108,11 @@ budg(void) if (pq != (s_char *)0) { if (isdigit(*pq)) { priority = (atoi(pq) < 0 ? -1 * atoi(pq) : atoi(pq)); - if (priority >= SCT_MAXDEF + 8) { - pr("Priorities must be less than %d!\n", SCT_MAXDEF + 8); + if (priority > PRI_MAX) { + pr("Priorities must be less than %d!\n", PRI_MAX + 1); return RET_FAIL; } - for (x = 0; x < SCT_MAXDEF + 8; x++) + for (x = 0; x <= PRI_MAX; x++) if (priority && (np->nat_priorities[x] == priority)) { pr("Priorities must be unique!\n"); return RET_FAIL; @@ -158,7 +158,7 @@ budg(void) } } if (which == -1) { - for (x = 0; x < SCT_MAXDEF + 8; x++) { + for (x = 0; x <= PRI_MAX; x++) { np->nat_priorities[x] = -1; } } else { @@ -175,7 +175,7 @@ budg(void) income = taxes + bars; pr("Sector Type\t\tAbbr\tProduction\tPriority\t Cost\n"); - for (x = 0; x < SCT_MAXDEF + 1; x++) { + for (x = 0; x <= SCT_MAXDEF; x++) { if (!p_sect[x][1] && np->nat_priorities[x] == -1) continue; if (!pchr[dchr[x].d_prd].p_cost && @@ -355,8 +355,8 @@ calc_all(long int (*p_sect)[2], int *taxes, int *Ncivs, int *Nuws, *mil += (int)upd_slmilcosts(np->nat_cnum, etu); - for (y = 1; y < SCT_MAXDEF + 8; y++) { - for (z = 0; z < SCT_MAXDEF + 8; z++) + for (y = 1; y <= PRI_MAX; y++) { + for (z = 0; z <= PRI_MAX; z++) if (np->nat_priorities[z] == y) switch (z) { case PRI_SMAINT: diff --git a/src/lib/subs/show.c b/src/lib/subs/show.c index 9caccd8d..fa8cd3d7 100644 --- a/src/lib/subs/show.c +++ b/src/lib/subs/show.c @@ -624,7 +624,7 @@ show_sect_build(int foo) { register int x, first = 1; - for (x = 5; x < SCT_MAXDEF + 2; x++) { + for (x = 0; x <= SCT_MAXDEF; x++) { if (dchr[x].d_mnem == 0) continue; if ((dchr[x].d_cost > 0) || (dchr[x].d_build != 1) || @@ -658,7 +658,7 @@ show_sect_stats(int foo) natp = getnatp(player->cnum); /* We fake this */ sect.sct_effic = 100; - for (x = 0; x < SCT_MAXDEF + 2; x++) { + for (x = 0; x <= SCT_MAXDEF; x++) { if (dchr[x].d_mnem == 0) continue; if (first) { @@ -686,7 +686,7 @@ show_sect_capab(int foo) register int x, first = 1, i, j; char *tmpstr; - for (x = 0; x < SCT_MAXDEF + 2; x++) { + for (x = 0; x <= SCT_MAXDEF; x++) { if ((dchr[x].d_mnem == 0) || (dchr[x].d_prd == 0)) continue; if (first) { diff --git a/src/lib/update/main.c b/src/lib/update/main.c index 4592ef34..7961b920 100644 --- a/src/lib/update/main.c +++ b/src/lib/update/main.c @@ -112,7 +112,7 @@ update_main(void *unused) logerror("producing for countries..."); for (x = 0; x < MAXNOC; x++) { int y, z, sb = 0, sm = 0, pb = 0, pm = 0, lm = 0, lb = 0; - long p_sect[SCT_MAXDEF + 1][2]; + long p_sect[SCT_MAXDEF+1][2]; memset(p_sect, 0, sizeof(p_sect)); mil_dbl_pay = 0; @@ -126,8 +126,8 @@ update_main(void *unused) } np->nat_money += (int)(np->nat_reserve * money_res * etu); - for (y = 1; y < SCT_MAXDEF + 8; y++) { - for (z = 0; z < SCT_MAXDEF + 8; z++) { + for (y = 1; y <= PRI_MAX; y++) { + for (z = 0; z <= PRI_MAX; z++) { if (np->nat_priorities[z] == y) { do_prod(z, etu, x, bp, p_sect, &sb, &sm, &pb, &pm, &lb, &lm); diff --git a/src/util/files.c b/src/util/files.c index 15c692eb..9faa4009 100644 --- a/src/util/files.c +++ b/src/util/files.c @@ -138,8 +138,8 @@ main(int argc, char *argv[]) nat.nat_money = 123456789; nat.nat_cnum = 0; nat.nat_flags |= NF_FLASH; - for (x = 0; x < SCT_MAXDEF + 8; x++) - nat.nat_priorities[x] = -1; + for (i = 0; i <= PRI_MAX; i++) + nat.nat_priorities[i] = -1; putnat((&nat)); printf("All praise to %s!\n", nat.nat_cnam); memset(&nat, 0, sizeof(nat));