summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/economy.cpp2
-rw-r--r--src/economy_func.h9
-rw-r--r--src/industry_cmd.cpp2
-rw-r--r--src/object_cmd.cpp4
-rw-r--r--src/town_cmd.cpp4
5 files changed, 15 insertions, 6 deletions
diff --git a/src/economy.cpp b/src/economy.cpp
index 996125005..87d946f95 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -710,7 +710,7 @@ static void HandleEconomyFluctuations()
if (_settings_game.difficulty.economy != 0) {
/* When economy is Fluctuating, decrease counter */
_economy.fluct--;
- } else if (_economy.fluct <= 0) {
+ } else if (EconomyIsInRecession()) {
/* When it's Steady and we are in recession, end it now */
_economy.fluct = -12;
} else {
diff --git a/src/economy_func.h b/src/economy_func.h
index dfeefbb9c..e9c9c170d 100644
--- a/src/economy_func.h
+++ b/src/economy_func.h
@@ -42,4 +42,13 @@ void InitializeEconomy();
void RecomputePrices();
void AddInflation(bool check_year = true);
+/**
+ * Is the economy in recession?
+ * @return \c True if economy is in recession, \c false otherwise.
+ */
+static inline bool EconomyIsInRecession()
+{
+ return _economy.fluct <= 0;
+}
+
#endif /* ECONOMY_FUNC_H */
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp
index 2e617afe2..a56ed02b5 100644
--- a/src/industry_cmd.cpp
+++ b/src/industry_cmd.cpp
@@ -497,7 +497,7 @@ static void TransportIndustryGoods(TileIndex tile)
i->produced_cargo_waiting[j] -= cw;
/* fluctuating economy? */
- if (_economy.fluct <= 0) cw = (cw + 1) / 2;
+ if (EconomyIsInRecession()) cw = (cw + 1) / 2;
i->this_month_production[j] += cw;
diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp
index 4ad51d58f..0cf87a50e 100644
--- a/src/object_cmd.cpp
+++ b/src/object_cmd.cpp
@@ -508,7 +508,7 @@ static void TileLoop_Object(TileIndex tile)
/* Top town buildings generate 250, so the top HQ type makes 256. */
if (GB(r, 0, 8) < (256 / 4 / (6 - level))) {
uint amt = GB(r, 0, 8) / 8 / 4 + 1;
- if (_economy.fluct <= 0) amt = (amt + 1) >> 1;
+ if (EconomyIsInRecession()) amt = (amt + 1) >> 1;
MoveGoodsToStation(CT_PASSENGERS, amt, ST_HEADQUARTERS, GetTileOwner(tile), stations.GetStations());
}
@@ -517,7 +517,7 @@ static void TileLoop_Object(TileIndex tile)
* equations. */
if (GB(r, 8, 8) < (196 / 4 / (6 - level))) {
uint amt = GB(r, 8, 8) / 8 / 4 + 1;
- if (_economy.fluct <= 0) amt = (amt + 1) >> 1;
+ if (EconomyIsInRecession()) amt = (amt + 1) >> 1;
MoveGoodsToStation(CT_MAIL, amt, ST_HEADQUARTERS, GetTileOwner(tile), stations.GetStations());
}
}
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index e08cbb158..3f2231326 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -497,7 +497,7 @@ static void TileLoop_Town(TileIndex tile)
if (GB(r, 0, 8) < hs->population) {
uint amt = GB(r, 0, 8) / 8 + 1;
- if (_economy.fluct <= 0) amt = (amt + 1) >> 1;
+ if (EconomyIsInRecession()) amt = (amt + 1) >> 1;
t->new_max_pass += amt;
t->new_act_pass += MoveGoodsToStation(CT_PASSENGERS, amt, ST_TOWN, t->index, stations.GetStations());
}
@@ -505,7 +505,7 @@ static void TileLoop_Town(TileIndex tile)
if (GB(r, 8, 8) < hs->mail_generation) {
uint amt = GB(r, 8, 8) / 8 + 1;
- if (_economy.fluct <= 0) amt = (amt + 1) >> 1;
+ if (EconomyIsInRecession()) amt = (amt + 1) >> 1;
t->new_max_mail += amt;
t->new_act_mail += MoveGoodsToStation(CT_MAIL, amt, ST_TOWN, t->index, stations.GetStations());
}