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:
@@ -23,7 +23,7 @@
|
||||
company = ScriptCompany::ResolveCompanyID(company);
|
||||
if (company == ScriptCompany::COMPANY_INVALID || (::RailType)railtype >= RAILTYPE_END) return 0;
|
||||
|
||||
return ::Company::Get((::CompanyID)company)->infrastructure.rail[railtype];
|
||||
return ::Company::Get(ScriptCompany::FromScriptCompanyID(company))->infrastructure.rail[railtype];
|
||||
}
|
||||
|
||||
/* static */ SQInteger ScriptInfrastructure::GetRoadPieceCount(ScriptCompany::CompanyID company, ScriptRoad::RoadType roadtype)
|
||||
@@ -31,7 +31,7 @@
|
||||
company = ScriptCompany::ResolveCompanyID(company);
|
||||
if (company == ScriptCompany::COMPANY_INVALID || (::RoadType)roadtype >= ROADTYPE_END) return 0;
|
||||
|
||||
return ::Company::Get((::CompanyID)company)->infrastructure.road[roadtype];
|
||||
return ::Company::Get(ScriptCompany::FromScriptCompanyID(company))->infrastructure.road[roadtype];
|
||||
}
|
||||
|
||||
/* static */ SQInteger ScriptInfrastructure::GetInfrastructurePieceCount(ScriptCompany::CompanyID company, Infrastructure infra_type)
|
||||
@@ -39,7 +39,7 @@
|
||||
company = ScriptCompany::ResolveCompanyID(company);
|
||||
if (company == ScriptCompany::COMPANY_INVALID) return 0;
|
||||
|
||||
const ::Company *c = ::Company::Get((::CompanyID)company);
|
||||
const ::Company *c = ::Company::Get(ScriptCompany::FromScriptCompanyID(company));
|
||||
switch (infra_type) {
|
||||
case INFRASTRUCTURE_RAIL:
|
||||
return c->infrastructure.GetRailTotal();
|
||||
@@ -69,7 +69,7 @@
|
||||
company = ScriptCompany::ResolveCompanyID(company);
|
||||
if (company == ScriptCompany::COMPANY_INVALID || (::RailType)railtype >= RAILTYPE_END || !_settings_game.economy.infrastructure_maintenance) return 0;
|
||||
|
||||
const ::Company *c = ::Company::Get((::CompanyID)company);
|
||||
const ::Company *c = ::Company::Get(ScriptCompany::FromScriptCompanyID(company));
|
||||
return ::RailMaintenanceCost((::RailType)railtype, c->infrastructure.rail[railtype], c->infrastructure.GetRailTotal());
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
company = ScriptCompany::ResolveCompanyID(company);
|
||||
if (company == ScriptCompany::COMPANY_INVALID || (::RoadType)roadtype >= ROADTYPE_END || !_settings_game.economy.infrastructure_maintenance) return 0;
|
||||
|
||||
const ::Company *c = ::Company::Get((::CompanyID)company);
|
||||
const ::Company *c = ::Company::Get(ScriptCompany::FromScriptCompanyID(company));
|
||||
return ::RoadMaintenanceCost((::RoadType)roadtype, c->infrastructure.road[roadtype], RoadTypeIsRoad((::RoadType)roadtype) ? c->infrastructure.GetRoadTotal() : c->infrastructure.GetTramTotal());
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
company = ScriptCompany::ResolveCompanyID(company);
|
||||
if (company == ScriptCompany::COMPANY_INVALID || !_settings_game.economy.infrastructure_maintenance) return 0;
|
||||
|
||||
const ::Company *c = ::Company::Get((::CompanyID)company);
|
||||
const ::Company *c = ::Company::Get(ScriptCompany::FromScriptCompanyID(company));
|
||||
switch (infra_type) {
|
||||
case INFRASTRUCTURE_RAIL: {
|
||||
Money cost;
|
||||
|
||||
Reference in New Issue
Block a user