(buy, move, prod, dodistribute, produce): Obey ITEM_MAX. Previous

change to move() was incomplete.
This commit is contained in:
Markus Armbruster 2004-03-16 18:56:14 +00:00
parent 913774e53e
commit 9b7a65b865
5 changed files with 16 additions and 18 deletions

View file

@ -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;

View file

@ -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, &sect);
}
@ -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;

View file

@ -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) {