Codechange: [Script] Use helper function over direct casting CompanyID

In the script's API `COMPANY_INVALID` has a value of -1, whereas the internal
game's `INVALID_COMPANY` has a value of 255. Since the script's API also has
a `COMPANY_SPECTATOR` with a value of 255, these enumerations cannot be easily
reconciled by casting. As such, replace all casts in the script API with
either ScriptCompany::FromScriptCompanyID or ScriptCompany::ToScriptCompanyID.

Also make clear whether CompanyID is ::CompanyID or ScriptCompany::CompanyID
by using either one of those over CompanyID in the script's API.
This commit is contained in:
Rubidium
2025-02-08 21:26:58 +01:00
committed by rubidium42
parent 8ab3e9f0a3
commit 4cda9f900d
37 changed files with 201 additions and 184 deletions

View File

@@ -13,13 +13,12 @@
#include "../../safeguards.h"
ScriptCompanyMode::ScriptCompanyMode(SQInteger company)
ScriptCompanyMode::ScriptCompanyMode(ScriptCompany::CompanyID company)
{
if (company < OWNER_BEGIN || company >= MAX_COMPANIES) company = INVALID_COMPANY;
if (!::Company::IsValidID(company)) company = INVALID_COMPANY;
company = ScriptCompany::ResolveCompanyID(company);
this->last_company = ScriptObject::GetCompany();
ScriptObject::SetCompany((::CompanyID)company);
ScriptObject::SetCompany(ScriptCompany::FromScriptCompanyID(company));
}
ScriptCompanyMode::~ScriptCompanyMode()