summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;