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