(svn r17107) -Codechange: store type of subsidy source and destination in the Subsidy struct instead of determining it every time it's needed
This commit is contained in:
@@ -10,21 +10,21 @@
|
||||
|
||||
/* static */ bool AISubsidy::IsValidSubsidy(SubsidyID subsidy_id)
|
||||
{
|
||||
return Subsidy::IsValidID(subsidy_id);
|
||||
return ::Subsidy::IsValidID(subsidy_id);
|
||||
}
|
||||
|
||||
/* static */ bool AISubsidy::IsAwarded(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsValidSubsidy(subsidy_id)) return false;
|
||||
|
||||
return Subsidy::Get(subsidy_id)->IsAwarded();
|
||||
return ::Subsidy::Get(subsidy_id)->IsAwarded();
|
||||
}
|
||||
|
||||
/* static */ AICompany::CompanyID AISubsidy::GetAwardedTo(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsAwarded(subsidy_id)) return AICompany::COMPANY_INVALID;
|
||||
|
||||
return (AICompany::CompanyID)((byte)Station::Get(Subsidy::Get(subsidy_id)->from)->owner);
|
||||
return (AICompany::CompanyID)((byte)::Station::Get(::Subsidy::Get(subsidy_id)->src)->owner);
|
||||
}
|
||||
|
||||
/* static */ int32 AISubsidy::GetExpireDate(SubsidyID subsidy_id)
|
||||
@@ -35,9 +35,9 @@
|
||||
int month = AIDate::GetMonth(AIDate::GetCurrentDate());
|
||||
|
||||
if (IsAwarded(subsidy_id)) {
|
||||
month += 24 - Subsidy::Get(subsidy_id)->age;
|
||||
month += 24 - ::Subsidy::Get(subsidy_id)->age;
|
||||
} else {
|
||||
month += 12 - Subsidy::Get(subsidy_id)->age;
|
||||
month += 12 - ::Subsidy::Get(subsidy_id)->age;
|
||||
}
|
||||
|
||||
year += (month - 1) / 12;
|
||||
@@ -50,42 +50,33 @@
|
||||
{
|
||||
if (!IsValidSubsidy(subsidy_id)) return CT_INVALID;
|
||||
|
||||
return Subsidy::Get(subsidy_id)->cargo_type;
|
||||
return ::Subsidy::Get(subsidy_id)->cargo_type;
|
||||
}
|
||||
|
||||
/* static */ bool AISubsidy::SourceIsTown(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsValidSubsidy(subsidy_id) || IsAwarded(subsidy_id)) return false;
|
||||
|
||||
return CargoSpec::Get(GetCargoType(subsidy_id))->town_effect == TE_PASSENGERS ||
|
||||
CargoSpec::Get(GetCargoType(subsidy_id))->town_effect == TE_MAIL;
|
||||
return ::Subsidy::Get(subsidy_id)->src_type == ST_TOWN;
|
||||
}
|
||||
|
||||
/* static */ int32 AISubsidy::GetSource(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsValidSubsidy(subsidy_id)) return INVALID_STATION;
|
||||
|
||||
return Subsidy::Get(subsidy_id)->from;
|
||||
return ::Subsidy::Get(subsidy_id)->src;
|
||||
}
|
||||
|
||||
/* static */ bool AISubsidy::DestinationIsTown(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsValidSubsidy(subsidy_id) || IsAwarded(subsidy_id)) return false;
|
||||
|
||||
switch (CargoSpec::Get(GetCargoType(subsidy_id))->town_effect) {
|
||||
case TE_PASSENGERS:
|
||||
case TE_MAIL:
|
||||
case TE_GOODS:
|
||||
case TE_FOOD:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return ::Subsidy::Get(subsidy_id)->dst_type == ST_TOWN;
|
||||
}
|
||||
|
||||
/* static */ int32 AISubsidy::GetDestination(SubsidyID subsidy_id)
|
||||
{
|
||||
if (!IsValidSubsidy(subsidy_id)) return INVALID_STATION;
|
||||
|
||||
return Subsidy::Get(subsidy_id)->to;
|
||||
return ::Subsidy::Get(subsidy_id)->dst;
|
||||
}
|
||||
|
Reference in New Issue
Block a user