diff options
Diffstat (limited to 'src/ai/api/ai_company.cpp')
-rw-r--r-- | src/ai/api/ai_company.cpp | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/src/ai/api/ai_company.cpp b/src/ai/api/ai_company.cpp index c2a4f2935..90487951c 100644 --- a/src/ai/api/ai_company.cpp +++ b/src/ai/api/ai_company.cpp @@ -101,14 +101,65 @@ return HasBit(ge, ::GENDER_FEMALE) ? GENDER_FEMALE : GENDER_MALE; } -/* static */ Money AICompany::GetCompanyValue(AICompany::CompanyID company) +/* static */ Money AICompany::GetQuarterlyIncome(AICompany::CompanyID company, uint32 quarter) { company = ResolveCompanyID(company); if (company == COMPANY_INVALID) return -1; + if (quarter > EARLIEST_QUARTER) return -1; - return ::CalculateCompanyValue(::Company::Get((CompanyID)company)); + if (quarter == CURRENT_QUARTER) { + return ::Company::Get((::CompanyID)company)->cur_economy.income; + } + return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].income; +} + +/* static */ Money AICompany::GetQuarterlyExpenses(AICompany::CompanyID company, uint32 quarter) +{ + company = ResolveCompanyID(company); + if (company == COMPANY_INVALID) return -1; + if (quarter > EARLIEST_QUARTER) return -1; + + if (quarter == CURRENT_QUARTER) { + return ::Company::Get((::CompanyID)company)->cur_economy.expenses; + } + return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].expenses; +} + +/* static */ int32 AICompany::GetQuarterlyCargoDelivered(AICompany::CompanyID company, uint32 quarter) +{ + company = ResolveCompanyID(company); + if (company == COMPANY_INVALID) return -1; + if (quarter > EARLIEST_QUARTER) return -1; + + if (quarter == CURRENT_QUARTER) { + return ::Company::Get((::CompanyID)company)->cur_economy.delivered_cargo; + } + return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].delivered_cargo; } +/* static */ int32 AICompany::GetQuarterlyPerformanceRating(AICompany::CompanyID company, uint32 quarter) +{ + company = ResolveCompanyID(company); + if (company == COMPANY_INVALID) return -1; + if (quarter > EARLIEST_QUARTER) return -1; + if (quarter == CURRENT_QUARTER) return -1; + + return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].performance_history; +} + +/* static */ Money AICompany::GetQuarterlyCompanyValue(AICompany::CompanyID company, uint32 quarter) +{ + company = ResolveCompanyID(company); + if (company == COMPANY_INVALID) return -1; + if (quarter > EARLIEST_QUARTER) return -1; + + if (quarter == CURRENT_QUARTER) { + return ::CalculateCompanyValue(::Company::Get((::CompanyID)company)); + } + return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].company_value; +} + + /* static */ Money AICompany::GetBankBalance(AICompany::CompanyID company) { company = ResolveCompanyID(company); |