00001 /* $Id: ai_company.hpp 17080 2009-08-05 23:57:41Z rubidium $ */ 00002 00005 #ifndef AI_COMPANY_HPP 00006 #define AI_COMPANY_HPP 00007 00008 #include "ai_object.hpp" 00009 00013 class AICompany : public AIObject { 00014 public: 00015 static const char *GetClassName() { return "AICompany"; } 00016 00018 enum CompanyID { 00019 COMPANY_INVALID = -1, 00020 00021 #ifdef DEFINE_SCRIPT_FILES 00022 COMPANY_FIRST = 0, 00023 COMPANY_LAST = ::MAX_COMPANIES, 00024 #endif /* DEFINE_SCRIPT_FILES */ 00025 00026 COMPANY_SELF = 254, 00027 }; 00028 00030 enum Gender { 00031 GENDER_MALE, 00032 GENDER_FEMALE, 00033 GENDER_INVALID = -1, 00034 }; 00035 00044 static CompanyID ResolveCompanyID(CompanyID company); 00045 00051 static bool IsMine(CompanyID company); 00052 00061 static bool SetName(const char *name); 00062 00069 static char *GetName(CompanyID company); 00070 00078 static bool SetPresidentName(const char *name); 00079 00086 static char *GetPresidentName(CompanyID company); 00087 00095 static bool SetPresidentGender(Gender gender); 00096 00102 static Gender GetPresidentGender(CompanyID company); 00103 00113 static bool SetLoanAmount(int32 loan); 00114 00122 static bool SetMinimumLoanAmount(int32 loan); 00123 00130 static Money GetLoanAmount(); 00131 00138 static Money GetMaxLoanAmount(); 00139 00145 static Money GetLoanInterval(); 00146 00153 static Money GetCompanyValue(CompanyID company); 00154 00161 static Money GetBankBalance(CompanyID company); 00162 00173 static bool BuildCompanyHQ(TileIndex tile); 00174 00182 static TileIndex GetCompanyHQ(CompanyID company); 00183 00189 static bool SetAutoRenewStatus(bool autorenew); 00190 00197 static bool GetAutoRenewStatus(CompanyID company); 00198 00204 static bool SetAutoRenewMonths(int16 months); 00205 00212 static int16 GetAutoRenewMonths(CompanyID company); 00213 00219 static bool SetAutoRenewMoney(uint32 money); 00220 00227 static uint32 GetAutoRenewMoney(CompanyID company); 00228 }; 00229 00230 DECLARE_POSTFIX_INCREMENT(AICompany::CompanyID); 00231 00232 #endif /* AI_COMPANY_HPP */