From a021a20e551f1f0ab05ad6da336dc28c83a10075 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Tue, 12 Jan 2021 21:42:42 +0100 Subject: [PATCH] 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 --- src/lib/commands/buy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); -- 2.43.0