From d475256cf15031e0fc4daec6ad3226562e8967d8 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 8 Dec 2007 14:14:31 +0000 Subject: [PATCH] (check_trade): Fix bug that made your money evaporate when you didn't have enough to pay. This was aggravated by the removal of automatic loans in rev. 1.15. Clean up after that revision, belatedly. --- src/lib/commands/trad.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/lib/commands/trad.c b/src/lib/commands/trad.c index d55af20a..a05dc05f 100644 --- a/src/lib/commands/trad.c +++ b/src/lib/commands/trad.c @@ -288,8 +288,6 @@ check_trade(void) struct trdstr trade; union empobj_storage tg; time_t now; - double subleft; - double monleft; double tleft; float price; int saveid; @@ -330,23 +328,9 @@ check_trade(void) continue; } - monleft = 0; price = trade.trd_price; natp = getnatp(trade.trd_maxbidder); - if (natp->nat_money <= 0) - monleft = price; - if (natp->nat_money < price && natp->nat_money > 0) { - monleft = price - (natp->nat_money - 1); - natp->nat_money = 1; - price = price - monleft; - } else if (natp->nat_money > 0) { - monleft = 0; - natp->nat_money -= price; - } - - subleft = monleft; - - if (monleft > 0) { + if (natp->nat_money < price) { nreport(trade.trd_maxbidder, N_WELCH_DEAL, trade.trd_owner, 1); wu(0, trade.trd_owner, "%s tried to buy a %s #%d from you for $%.2f\n", @@ -364,14 +348,14 @@ check_trade(void) } /* If we get this far, the sale will go through. */ -/* Only pay tax on the part you actually get cash for. As a break, - we don't tax the part you have to give a loan on. */ + natp->nat_money -= price; putnat(natp); + natp = getnatp(trade.trd_owner); - /* Make sure we subtract the extra amount */ - natp->nat_money += (roundavg(price * tradetax) - subleft); + natp->nat_money += roundavg(price * tradetax); putnat(natp); + switch (trade.trd_type) { case EF_NUKE: tg.nuke.nuk_x = trade.trd_x;