summaryrefslogtreecommitdiff
path: root/src/ai/api/ai_company.cpp
diff options
context:
space:
mode:
authoryexo <yexo@openttd.org>2011-06-13 15:23:20 +0000
committeryexo <yexo@openttd.org>2011-06-13 15:23:20 +0000
commit0dc20c7d5fdc97e7aa5527ce2573806232ee09c6 (patch)
tree0eb2e1387146b0660ebb57c93cce02af65fed8ca /src/ai/api/ai_company.cpp
parentf851a515cc30b715caad56b34fe9db7be636e951 (diff)
downloadopenttd-0dc20c7d5fdc97e7aa5527ce2573806232ee09c6.tar.xz
(svn r22584) -Add: [NoAI] several functions to AICompany to find out performance information (Morloth)
Diffstat (limited to 'src/ai/api/ai_company.cpp')
-rw-r--r--src/ai/api/ai_company.cpp55
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);