diff options
author | truebrain <truebrain@openttd.org> | 2011-12-19 21:05:25 +0000 |
---|---|---|
committer | truebrain <truebrain@openttd.org> | 2011-12-19 21:05:25 +0000 |
commit | cc3f42794d134b9f4b6c7efecb07d4b3366887c1 (patch) | |
tree | 1cd422d47fc44bd59463d0f9e2ef96f2edb09b50 /src/script/api/script_company.cpp | |
parent | 403cd3acdb7b7fedf2b5e823326611bb32113385 (diff) | |
download | openttd-cc3f42794d134b9f4b6c7efecb07d4b3366887c1.tar.xz |
(svn r23632) -Add: GSCompanyMode, to change company in GameScripts
Diffstat (limited to 'src/script/api/script_company.cpp')
-rw-r--r-- | src/script/api/script_company.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/script/api/script_company.cpp b/src/script/api/script_company.cpp index d241d7d30..6d11c17ac 100644 --- a/src/script/api/script_company.cpp +++ b/src/script/api/script_company.cpp @@ -26,7 +26,10 @@ /* static */ ScriptCompany::CompanyID ScriptCompany::ResolveCompanyID(ScriptCompany::CompanyID company) { - if (company == COMPANY_SELF) return (CompanyID)((byte)_current_company); + if (company == COMPANY_SELF) { + if (!::Company::IsValidID((::CompanyID)_current_company)) return COMPANY_INVALID; + return (CompanyID)((byte)_current_company); + } return ::Company::IsValidID((::CompanyID)company) ? company : COMPANY_INVALID; } @@ -170,7 +173,10 @@ /* static */ Money ScriptCompany::GetLoanAmount() { - return ::Company::Get(_current_company)->current_loan; + ScriptCompany::CompanyID company = ResolveCompanyID(COMPANY_SELF); + if (company == COMPANY_INVALID) return -1; + + return ::Company::Get(company)->current_loan; } /* static */ Money ScriptCompany::GetMaxLoanAmount() |