Index: src/atanks.cc =================================================================== RCS file: /cvsroot/atanks/atanks/src/atanks.cc,v retrieving revision 1.57 diff -u -r1.57 atanks.cc --- src/atanks.cc 4 Feb 2004 23:34:33 -0000 1.57 +++ src/atanks.cc 8 Oct 2004 01:48:26 -0000 @@ -1574,7 +1574,8 @@ fi = global->stopwindow = updatename = scroll = 1; if (global->currentround != global->rounds) { for (z = 0; z < global->numPlayers; z++) { - global->players[z]->money = (long int) (global->players[z]->money * global->interest); + double money = global->players[z]->money * global->interest; + global->players[z]->money = (money < LONG_MAX ? (long int) money : LONG_MAX); } } @@ -2763,10 +2764,13 @@ if (ltank->l <= 0 && !anyExploding) { ltank->explode (); if (ltank->creditTo) { + double money; if (ltank->player != ltank->creditTo) { //enemy destroyed - ltank->creditTo->money += (int)global->scoreUnitDestroyBonus; + money = ltank->creditTo->money + global->scoreUnitDestroyBonus; + ltank->creditTo->money = (money < LONG_MAX ? (long int)money : LONG_MAX); } else { //self destroy - ugh foolish one :)) - ltank->creditTo->money -= (int)global->scoreUnitSelfDestroy; + money = ltank->creditTo->money - global->scoreUnitSelfDestroy; + ltank->creditTo->money = (money > LONG_MIN ? (long int)money : LONG_MIN); } ltank->creditTo = NULL; } @@ -2808,7 +2812,8 @@ if (winner >= 0) { global->players[winner]->score++; global->players[winner]->won++; - global->players[winner]->money += (long int)global->scoreRoundWinBonus; + double money = global->players[winner]->money + global->scoreRoundWinBonus; + global->players[winner]->money = (money < LONG_MAX ? (long int) money : LONG_MAX); } bCount = 0; global->updateMenu = 1;