Mercurial > hg > openttd
diff src/economy.cpp @ 7781:67423408cf20 draft
(svn r11331) -Fix: do not misuse CommandCost for overflow safe stuff as Money supports that now too.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 21 Oct 2007 16:44:19 +0000 (2007-10-21) |
parents | b66a3cb83e69 |
children | 7ae5bda4e8dd |
line wrap: on
line diff
--- a/src/economy.cpp +++ b/src/economy.cpp @@ -63,39 +63,34 @@ { PlayerID owner = p->index; /* Do a little nasty by using CommandCost, so we can use the "overflow" protection of CommandCost */ - CommandCost value; - - { - Station *st; - uint num = 0; + Money value = 0; - FOR_ALL_STATIONS(st) { - if (st->owner == owner) num += COUNTBITS(st->facilities); - } + Station *st; + uint num = 0; - value.AddCost(num * _price.station_value * 25); + FOR_ALL_STATIONS(st) { + if (st->owner == owner) num += COUNTBITS(st->facilities); } - { - Vehicle *v; + value += num * _price.station_value * 25; - FOR_ALL_VEHICLES(v) { - if (v->owner != owner) continue; + Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (v->owner != owner) continue; - if (v->type == VEH_TRAIN || - v->type == VEH_ROAD || - (v->type == VEH_AIRCRAFT && IsNormalAircraft(v)) || - v->type == VEH_SHIP) { - value.AddCost(v->value * 3 >> 1); - } + if (v->type == VEH_TRAIN || + v->type == VEH_ROAD || + (v->type == VEH_AIRCRAFT && IsNormalAircraft(v)) || + v->type == VEH_SHIP) { + value += v->value * 3 >> 1; } } /* Add real money value */ - value.AddCost(-p->current_loan); - value.AddCost(p->player_money); + value -= p->current_loan; + value += p->player_money; - return max(value.GetCost(), (Money)1); + return max(value, (Money)1); } /** if update is set to true, the economy is updated with this score