summaryrefslogtreecommitdiff
path: root/src/company_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/company_base.h')
-rw-r--r--src/company_base.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/company_base.h b/src/company_base.h
index e1049bad5..6d0f2abd0 100644
--- a/src/company_base.h
+++ b/src/company_base.h
@@ -79,6 +79,18 @@ struct Company : CompanyPool::PoolItem<&_company_pool> {
EngineRenewList engine_renew_list; ///< Defined later
CompanySettings settings; ///< settings specific for each company
uint16 *num_engines; ///< caches the number of engines of each type the company owns (no need to save this)
+
+ static FORCEINLINE bool IsValidAiID(size_t index)
+ {
+ const Company *c = GetIfValid(index);
+ return c != NULL && c->is_ai;
+ }
+
+ static FORCEINLINE bool IsValidHumanID(size_t index)
+ {
+ const Company *c = GetIfValid(index);
+ return c != NULL && !c->is_ai;
+ }
};
#define FOR_ALL_COMPANIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Company, company_index, var, start)
@@ -86,6 +98,12 @@ struct Company : CompanyPool::PoolItem<&_company_pool> {
Money CalculateCompanyValue(const Company *c);
+static inline bool IsHumanCompany(CompanyID company)
+{
+ return !Company::Get(company)->is_ai;
+}
+
+
extern uint _next_competitor_start;
extern uint _cur_company_tick_index;