diff --git a/src/lib/commands/buy.c b/src/lib/commands/buy.c index 92f3c856..e17edc4d 100644 --- a/src/lib/commands/buy.c +++ b/src/lib/commands/buy.c @@ -163,7 +163,7 @@ buy(void) ip = whichitem(comm.com_type); n = sect.sct_item[ip->i_vtype]; qty = comm.com_amount; - if (qty + n > 9990) { + if (qty + n > ITEM_MAX) { pr("That sector cannot hold %d more %s. It currently holds %d.\n", qty, ip->i_name, n); return RET_FAIL; diff --git a/src/lib/commands/move.c b/src/lib/commands/move.c index f68e1fc2..fb4372a4 100644 --- a/src/lib/commands/move.c +++ b/src/lib/commands/move.c @@ -228,7 +228,7 @@ move(void) left = mob; } else if (!istest) { /* - * decrement mobility appropriately. + * decrement mobility appropriately. */ getsect(x, y, &start); mob = start.sct_mobil; @@ -258,9 +258,10 @@ move(void) } amt_dst = sect.sct_item[vtype]; - if (32767 - amt_dst < amount) { + if (amount > ITEM_MAX - amt_dst) { pr("Only enough room for %d in %s. The goods will be returned.\n", - 32767 - amt_dst, xyas(sect.sct_x, sect.sct_y, player->cnum)); + ITEM_MAX - amt_dst, xyas(sect.sct_x, sect.sct_y, player->cnum)); + /* FIXME Not nice. Move what we can and return the rest. */ getsect(x, y, §); } @@ -281,7 +282,7 @@ move(void) if (tsct.sct_own != player->cnum) continue; amt_dst = tsct.sct_item[vtype]; - if (32767 - amt_dst < amount) + if (amount > ITEM_MAX - amt_dst) continue; n = -1; break; diff --git a/src/lib/commands/prod.c b/src/lib/commands/prod.c index 34b22070..bd9f285c 100644 --- a/src/lib/commands/prod.c +++ b/src/lib/commands/prod.c @@ -286,11 +286,9 @@ prod(void) if (real < 0.0) real = 0.0; /* production backlog? */ - if ((there = sect.sct_item[vtype]) >= 9999) { - there = 9999; - } - act = min(act, (9999 - there)); - max = min(max, (9999 - there)); + there = min(ITEM_MAX, sect.sct_item[vtype]); + act = min(act, ITEM_MAX - there); + max = min(max, ITEM_MAX - there); } if (prodeff != 0) { diff --git a/src/lib/update/distribute.c b/src/lib/update/distribute.c index 1b518d8c..7017c30b 100644 --- a/src/lib/update/distribute.c +++ b/src/lib/update/distribute.c @@ -178,8 +178,8 @@ dodistribute(struct sctstr *sp, int imex, s_char *path, double dist_i_cost, amt = amt_sect; if (sp->sct_mobil < excost * amt) amt = sp->sct_mobil / excost; - if (amt + amt_dist > 9999) - amt = 9999 - amt_dist; + if (amt > ITEM_MAX - amt_dist) + amt = ITEM_MAX - amt_dist; if (amt == 0) continue; /* XXX replace with vector assign and putvec() */ diff --git a/src/lib/update/produce.c b/src/lib/update/produce.c index 0a9d2ecb..0d459431 100644 --- a/src/lib/update/produce.c +++ b/src/lib/update/produce.c @@ -138,20 +138,19 @@ produce(struct natstr *np, struct sctstr *sp, short *vec, int work, actual = 999; material_consume = (int)(actual / (product->p_effic * 0.01)); } - vec[item] += actual; - if (vec[item] > 9999) { + if (vec[item] + actual > ITEM_MAX) { material_consume = - roundavg((9999.0 - vec[item] + actual) * - material_consume / actual); + roundavg((ITEM_MAX - vec[item]) * material_consume / actual); if (material_consume < 0) material_consume = 0; - vec[item] = 9999; + vec[item] = ITEM_MAX; if (( /* vtype != V_FOOD && */ sp->sct_own) && (!player->simulation)) wu(0, sp->sct_own, "%s production backlog in %s\n", product->p_name, ownxy(sp)); - } + } else + vec[item] += actual; } /* * Reset produced amount by commodity production ratio