summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2008-06-05 01:43:03 +0000
committerbelugas <belugas@openttd.org>2008-06-05 01:43:03 +0000
commit4f3eb7f3cda1927822699943574f1c2918548dde (patch)
tree03a05f0530f270ebbdf8d658eba39aececdf68ac
parentdc22170c99aed1aeb04132767fddf5f7f165418c (diff)
downloadopenttd-4f3eb7f3cda1927822699943574f1c2918548dde.tar.xz
(svn r13383) -Codechange: Put the cost of house removal in a class member
-rw-r--r--src/town.h8
-rw-r--r--src/town_cmd.cpp7
2 files changed, 14 insertions, 1 deletions
diff --git a/src/town.h b/src/town.h
index 89246f5aa..2bf2b5234 100644
--- a/src/town.h
+++ b/src/town.h
@@ -16,6 +16,7 @@
#include "settings_type.h"
#include "strings_type.h"
#include "viewport_type.h"
+#include "economy_type.h"
enum {
HOUSE_NO_CLASS = 0,
@@ -242,6 +243,13 @@ struct HouseSpec {
/* grf file related properties*/
uint8 local_id; ///< id defined by the grf file for this house
const struct GRFFile *grffile; ///< grf file that introduced this house
+
+ /**
+ * Get the cost for removing this house
+ * @return the cost (inflation corrected etc)
+ */
+ Money GetRemovalCost() const;
+
};
extern HouseSpec _house_specs[HOUSE_MAX];
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index 5314803ec..97c111461 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -127,6 +127,11 @@ void Town::InitializeLayout()
}
}
+Money HouseSpec::GetRemovalCost() const
+{
+ return (_price.remove_house * this->removal_cost) >> 8;
+}
+
// Local
static int _grow_town_result;
@@ -517,7 +522,7 @@ static CommandCost ClearTile_Town(TileIndex tile, byte flags)
const HouseSpec *hs = GetHouseSpecs(GetHouseType(tile));
CommandCost cost(EXPENSES_CONSTRUCTION);
- cost.AddCost(_price.remove_house * hs->removal_cost >> 8);
+ cost.AddCost(hs->GetRemovalCost());
int rating = hs->remove_rating_decrease;
_cleared_town_rating += rating;