diff options
author | rubidium <rubidium@openttd.org> | 2010-01-24 11:05:26 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-01-24 11:05:26 +0000 |
commit | 3d0b3818ddd1c9f825b81596e89a1b1a6baeb975 (patch) | |
tree | d43d57e5de1072570ba2de8fd796354e827a6742 /src/economy.cpp | |
parent | b2f9b0ac43a7cf1d6bea1328f3c129912f998492 (diff) | |
download | openttd-3d0b3818ddd1c9f825b81596e89a1b1a6baeb975.tar.xz |
(svn r18908) -Fix [FS#3561]: on bankruptcy the company value did include the loan and as such the value at which you bought the company was too low
Diffstat (limited to 'src/economy.cpp')
-rw-r--r-- | src/economy.cpp | 15 |
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 |