]> git.pond.sub.org Git - empserver/commitdiff
(check_trade): Fix bug that made your money evaporate when you didn't
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 8 Dec 2007 14:14:31 +0000 (14:14 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 8 Dec 2007 14:14:31 +0000 (14:14 +0000)
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

index d55af20aa76f7ab41d4b6a23a460b48da2165c8c..a05dc05f46a79f46683d6dc22714a5b7b553c971 100644 (file)
@@ -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;