summaryrefslogtreecommitdiff
path: root/src/economy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/economy.cpp')
-rw-r--r--src/economy.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/economy.cpp b/src/economy.cpp
index 0f814e0cf..8711011cd 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -110,7 +110,16 @@ Prices _price;
Money _additional_cash_required;
static PriceMultipliers _price_base_multiplier;
-Money CalculateCompanyValue(const Company *c)
+/**
+ * Calculate the value of the company. That is the value of all
+ * assets (vehicles, stations, etc) and money minus the loan,
+ * except when including_loan is \c false which is useful when
+ * we want to calculate the value for bankruptcy.
+ * @param c the company to get the value of.
+ * @param including_loan include the loan in the company value.
+ * @return the value of the company.
+ */
+Money CalculateCompanyValue(const Company *c, bool including_loan)
{
Owner owner = c->index;
Money value = 0;
@@ -137,7 +146,7 @@ Money CalculateCompanyValue(const Company *c)
}
/* Add real money value */
- value -= c->current_loan;
+ if (including_loan) value -= c->current_loan;
value += c->money;
return max(value, (Money)1);
@@ -507,7 +516,7 @@ static void CompanyCheckBankrupt(Company *c)
case 3: {
/* Check if the company has any value.. if not, declare it bankrupt
* right now */
- Money val = CalculateCompanyValue(c);
+ Money val = CalculateCompanyValue(c, false);
if (val > 0) {
c->bankrupt_value = val;
c->bankrupt_asked = 1 << c->index; // Don't ask the owner