From: Markus Armbruster Date: Tue, 12 Jan 2021 20:42:42 +0000 (+0100) Subject: buy: Fix bogus error when lot gets reused at the last prompt X-Git-Tag: v4.4.1~21 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=a021a20e551f1f0ab05ad6da336dc28c83a10075;ds=sidebyside buy: Fix bogus error when lot gets reused at the last prompt When the lot being bid for goes away and gets reused while the player is at the prompt for the destination sector, comm.com_amount gets stale. We use it before we detect the change and fail the command This can lead to a misleading ""You don't have that much to spend!" error. Messed up when the code was fixed to deal with lot changes in 4.0.2. Fix by checking for lot change earlier. Signed-off-by: Markus Armbruster --- diff --git a/src/lib/commands/buy.c b/src/lib/commands/buy.c index 3d7b079bf..72afa28c2 100644 --- a/src/lib/commands/buy.c +++ b/src/lib/commands/buy.c @@ -141,6 +141,8 @@ buy(void) pr("Could not access sector"); return RET_FAIL; } + if (!check_comm_ok(&comm)) + return RET_FAIL; if ((sect.sct_type != SCT_WAREH && sect.sct_type != SCT_HARBR) || sect.sct_own != player->cnum) { pr("The destination sector is not one of your warehouses.\n"); @@ -161,8 +163,6 @@ buy(void) pr("You don't have that much to spend!\n"); return RET_FAIL; } - if (!check_comm_ok(&comm)) - return RET_FAIL; if (bid > 0.04 + comm.com_price) { comm.com_price = bid; time(&now);