mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Use SQInteger for generic numbers in script_town
parent
18fe0a4046
commit
4e48bf2e16
|
@ -22,9 +22,9 @@
|
|||
|
||||
#include "../../safeguards.h"
|
||||
|
||||
/* static */ int32 ScriptTown::GetTownCount()
|
||||
/* static */ SQInteger ScriptTown::GetTownCount()
|
||||
{
|
||||
return (int32)::Town::GetNumItems();
|
||||
return ::Town::GetNumItems();
|
||||
}
|
||||
|
||||
/* static */ bool ScriptTown::IsValidTown(TownID town_id)
|
||||
|
@ -63,14 +63,14 @@
|
|||
return ScriptObject::Command<CMD_TOWN_SET_TEXT>::Do(town_id, text != nullptr ? text->GetEncodedText() : std::string{});
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetPopulation(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetPopulation(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
const Town *t = ::Town::Get(town_id);
|
||||
return t->cache.population;
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetHouseCount(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetHouseCount(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
const Town *t = ::Town::Get(town_id);
|
||||
|
@ -84,7 +84,7 @@
|
|||
return t->xy;
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetLastMonthProduction(TownID town_id, CargoID cargo_id)
|
||||
/* static */ SQInteger ScriptTown::GetLastMonthProduction(TownID town_id, CargoID cargo_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
if (!ScriptCargo::IsValidCargo(cargo_id)) return -1;
|
||||
|
@ -94,7 +94,7 @@
|
|||
return t->supplied[cargo_id].old_max;
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetLastMonthSupplied(TownID town_id, CargoID cargo_id)
|
||||
/* static */ SQInteger ScriptTown::GetLastMonthSupplied(TownID town_id, CargoID cargo_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
if (!ScriptCargo::IsValidCargo(cargo_id)) return -1;
|
||||
|
@ -104,7 +104,7 @@
|
|||
return t->supplied[cargo_id].old_act;
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetLastMonthTransportedPercentage(TownID town_id, CargoID cargo_id)
|
||||
/* static */ SQInteger ScriptTown::GetLastMonthTransportedPercentage(TownID town_id, CargoID cargo_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
if (!ScriptCargo::IsValidCargo(cargo_id)) return -1;
|
||||
|
@ -113,7 +113,7 @@
|
|||
return ::ToPercent8(t->GetPercentTransported(cargo_id));
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetLastMonthReceived(TownID town_id, ScriptCargo::TownEffect towneffect_id)
|
||||
/* static */ SQInteger ScriptTown::GetLastMonthReceived(TownID town_id, ScriptCargo::TownEffect towneffect_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
if (!ScriptCargo::IsValidTownEffect(towneffect_id)) return -1;
|
||||
|
@ -123,18 +123,20 @@
|
|||
return t->received[towneffect_id].old_act;
|
||||
}
|
||||
|
||||
/* static */ bool ScriptTown::SetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id, uint32 goal)
|
||||
/* static */ bool ScriptTown::SetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id, SQInteger goal)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidTown(town_id));
|
||||
EnforcePrecondition(false, ScriptCargo::IsValidTownEffect(towneffect_id));
|
||||
|
||||
goal = Clamp<SQInteger>(goal, 0, UINT32_MAX);
|
||||
|
||||
return ScriptObject::Command<CMD_TOWN_CARGO_GOAL>::Do(town_id, (::TownEffect)towneffect_id, goal);
|
||||
}
|
||||
|
||||
/* static */ uint32 ScriptTown::GetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id)
|
||||
/* static */ SQInteger ScriptTown::GetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return UINT32_MAX;
|
||||
if (!ScriptCargo::IsValidTownEffect(towneffect_id)) return UINT32_MAX;
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
if (!ScriptCargo::IsValidTownEffect(towneffect_id)) return -1;
|
||||
|
||||
const Town *t = ::Town::Get(town_id);
|
||||
|
||||
|
@ -151,7 +153,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* static */ bool ScriptTown::SetGrowthRate(TownID town_id, uint32 days_between_town_growth)
|
||||
/* static */ bool ScriptTown::SetGrowthRate(TownID town_id, SQInteger days_between_town_growth)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidTown(town_id));
|
||||
uint16 growth_rate;
|
||||
|
@ -167,14 +169,14 @@
|
|||
default:
|
||||
EnforcePrecondition(false, (days_between_town_growth * DAY_TICKS / TOWN_GROWTH_TICKS) <= MAX_TOWN_GROWTH_TICKS);
|
||||
/* Don't use growth_rate 0 as it means GROWTH_NORMAL */
|
||||
growth_rate = std::max(days_between_town_growth * DAY_TICKS, 2u) - 1;
|
||||
growth_rate = std::max<SQInteger>(days_between_town_growth * DAY_TICKS, 2u) - 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return ScriptObject::Command<CMD_TOWN_GROWTH_RATE>::Do(town_id, growth_rate);
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetGrowthRate(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetGrowthRate(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
|
||||
|
@ -185,12 +187,12 @@
|
|||
return RoundDivSU(t->growth_rate + 1, DAY_TICKS);
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetDistanceManhattanToTile(TownID town_id, TileIndex tile)
|
||||
/* static */ SQInteger ScriptTown::GetDistanceManhattanToTile(TownID town_id, TileIndex tile)
|
||||
{
|
||||
return ScriptMap::DistanceManhattan(tile, GetLocation(town_id));
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetDistanceSquareToTile(TownID town_id, TileIndex tile)
|
||||
/* static */ SQInteger ScriptTown::GetDistanceSquareToTile(TownID town_id, TileIndex tile)
|
||||
{
|
||||
return ScriptMap::DistanceSquare(tile, GetLocation(town_id));
|
||||
}
|
||||
|
@ -218,14 +220,14 @@
|
|||
return ::Town::Get(town_id)->larger_town;
|
||||
}
|
||||
|
||||
/* static */ int ScriptTown::GetRoadReworkDuration(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetRoadReworkDuration(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
|
||||
return ::Town::Get(town_id)->road_build_months;
|
||||
}
|
||||
|
||||
/* static */ int ScriptTown::GetFundBuildingsDuration(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetFundBuildingsDuration(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
|
||||
|
@ -240,7 +242,7 @@
|
|||
return (ScriptCompany::CompanyID)(int8)::Town::Get(town_id)->exclusivity;
|
||||
}
|
||||
|
||||
/* static */ int32 ScriptTown::GetExclusiveRightsDuration(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetExclusiveRightsDuration(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
|
||||
|
@ -264,12 +266,14 @@
|
|||
return ScriptObject::Command<CMD_DO_TOWN_ACTION>::Do(town_id, town_action);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptTown::ExpandTown(TownID town_id, int houses)
|
||||
/* static */ bool ScriptTown::ExpandTown(TownID town_id, SQInteger houses)
|
||||
{
|
||||
EnforcePrecondition(false, ScriptObject::GetCompany() == OWNER_DEITY);
|
||||
EnforcePrecondition(false, IsValidTown(town_id));
|
||||
EnforcePrecondition(false, houses > 0);
|
||||
|
||||
houses = std::min<SQInteger>(houses, UINT32_MAX);
|
||||
|
||||
return ScriptObject::Command<CMD_EXPAND_TOWN>::Do(town_id, houses);
|
||||
}
|
||||
|
||||
|
@ -330,7 +334,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* static */ int ScriptTown::GetDetailedRating(TownID town_id, ScriptCompany::CompanyID company_id)
|
||||
/* static */ SQInteger ScriptTown::GetDetailedRating(TownID town_id, ScriptCompany::CompanyID company_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return TOWN_RATING_INVALID;
|
||||
ScriptCompany::CompanyID company = ScriptCompany::ResolveCompanyID(company_id);
|
||||
|
@ -340,7 +344,7 @@
|
|||
return t->ratings[company];
|
||||
}
|
||||
|
||||
/* static */ bool ScriptTown::ChangeRating(TownID town_id, ScriptCompany::CompanyID company_id, int delta)
|
||||
/* static */ bool ScriptTown::ChangeRating(TownID town_id, ScriptCompany::CompanyID company_id, SQInteger delta)
|
||||
{
|
||||
EnforcePrecondition(false, ScriptObject::GetCompany() == OWNER_DEITY);
|
||||
EnforcePrecondition(false, IsValidTown(town_id));
|
||||
|
@ -354,7 +358,7 @@
|
|||
return ScriptObject::Command<CMD_TOWN_RATING>::Do(town_id, (::CompanyID)company_id, new_rating);
|
||||
}
|
||||
|
||||
/* static */ int ScriptTown::GetAllowedNoise(TownID town_id)
|
||||
/* static */ SQInteger ScriptTown::GetAllowedNoise(TownID town_id)
|
||||
{
|
||||
if (!IsValidTown(town_id)) return -1;
|
||||
|
||||
|
|
|
@ -127,7 +127,7 @@ public:
|
|||
* Gets the number of towns.
|
||||
* @return The number of towns.
|
||||
*/
|
||||
static int32 GetTownCount();
|
||||
static SQInteger GetTownCount();
|
||||
|
||||
/**
|
||||
* Checks whether the given town index is valid.
|
||||
|
@ -170,7 +170,7 @@ public:
|
|||
* @pre IsValidTown(town_id).
|
||||
* @return The number of inhabitants.
|
||||
*/
|
||||
static int32 GetPopulation(TownID town_id);
|
||||
static SQInteger GetPopulation(TownID town_id);
|
||||
|
||||
/**
|
||||
* Gets the number of houses in the town.
|
||||
|
@ -178,7 +178,7 @@ public:
|
|||
* @pre IsValidTown(town_id).
|
||||
* @return The number of houses.
|
||||
*/
|
||||
static int32 GetHouseCount(TownID town_id);
|
||||
static SQInteger GetHouseCount(TownID town_id);
|
||||
|
||||
/**
|
||||
* Gets the location of the town.
|
||||
|
@ -196,7 +196,7 @@ public:
|
|||
* @pre ScriptCargo::IsValidCargo(cargo_id).
|
||||
* @return The last month's production of the given cargo for this town.
|
||||
*/
|
||||
static int32 GetLastMonthProduction(TownID town_id, CargoID cargo_id);
|
||||
static SQInteger GetLastMonthProduction(TownID town_id, CargoID cargo_id);
|
||||
|
||||
/**
|
||||
* Get the total amount of cargo supplied from a town last month.
|
||||
|
@ -206,7 +206,7 @@ public:
|
|||
* @pre ScriptCargo::IsValidCargo(cargo_id).
|
||||
* @return The amount of cargo supplied for transport from this town last month.
|
||||
*/
|
||||
static int32 GetLastMonthSupplied(TownID town_id, CargoID cargo_id);
|
||||
static SQInteger GetLastMonthSupplied(TownID town_id, CargoID cargo_id);
|
||||
|
||||
/**
|
||||
* Get the percentage of transported production of the given cargo at a town.
|
||||
|
@ -216,7 +216,7 @@ public:
|
|||
* @pre ScriptCargo::IsValidCargo(cargo_id).
|
||||
* @return The percentage of given cargo transported from this town last month.
|
||||
*/
|
||||
static int32 GetLastMonthTransportedPercentage(TownID town_id, CargoID cargo_id);
|
||||
static SQInteger GetLastMonthTransportedPercentage(TownID town_id, CargoID cargo_id);
|
||||
|
||||
/**
|
||||
* Get the total amount of cargo effects received by a town last month.
|
||||
|
@ -226,19 +226,20 @@ public:
|
|||
* @pre ScriptCargo::IsValidTownEffect(cargo_id).
|
||||
* @return The amount of cargo received by this town last month for this cargo effect.
|
||||
*/
|
||||
static int32 GetLastMonthReceived(TownID town_id, ScriptCargo::TownEffect towneffect_id);
|
||||
static SQInteger GetLastMonthReceived(TownID town_id, ScriptCargo::TownEffect towneffect_id);
|
||||
|
||||
/**
|
||||
* Set the goal of a cargo for this town.
|
||||
* @param town_id The index of the town.
|
||||
* @param towneffect_id The index of the towneffect.
|
||||
* @param goal The new goal.
|
||||
* The value will be clamped to 0 .. MAX(uint32).
|
||||
* @pre IsValidTown(town_id).
|
||||
* @pre ScriptCargo::IsValidTownEffect(towneffect_id).
|
||||
* @return True if the action succeeded.
|
||||
* @api -ai
|
||||
*/
|
||||
static bool SetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id, uint32 goal);
|
||||
static bool SetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id, SQInteger goal);
|
||||
|
||||
/**
|
||||
* Get the amount of cargo that needs to be delivered (per TownEffect) for a
|
||||
|
@ -251,7 +252,7 @@ public:
|
|||
* @note Goals can change over time. For example with a changing snowline, or
|
||||
* with a growing town.
|
||||
*/
|
||||
static uint32 GetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id);
|
||||
static SQInteger GetCargoGoal(TownID town_id, ScriptCargo::TownEffect towneffect_id);
|
||||
|
||||
/**
|
||||
* Set the amount of days between town growth.
|
||||
|
@ -265,7 +266,7 @@ public:
|
|||
* @note When changing the growth rate, the relative progress is preserved and scaled to the new rate.
|
||||
* @api -ai
|
||||
*/
|
||||
static bool SetGrowthRate(TownID town_id, uint32 days_between_town_growth);
|
||||
static bool SetGrowthRate(TownID town_id, SQInteger days_between_town_growth);
|
||||
|
||||
/**
|
||||
* Get the amount of days between town growth.
|
||||
|
@ -274,7 +275,7 @@ public:
|
|||
* @return Amount of days between town growth, or TOWN_GROWTH_NONE.
|
||||
* @note This function does not indicate when it will grow next. It only tells you the time between growths.
|
||||
*/
|
||||
static int32 GetGrowthRate(TownID town_id);
|
||||
static SQInteger GetGrowthRate(TownID town_id);
|
||||
|
||||
/**
|
||||
* Get the manhattan distance from the tile to the ScriptTown::GetLocation()
|
||||
|
@ -284,7 +285,7 @@ public:
|
|||
* @pre IsValidTown(town_id).
|
||||
* @return The distance between town and tile.
|
||||
*/
|
||||
static int32 GetDistanceManhattanToTile(TownID town_id, TileIndex tile);
|
||||
static SQInteger GetDistanceManhattanToTile(TownID town_id, TileIndex tile);
|
||||
|
||||
/**
|
||||
* Get the square distance from the tile to the ScriptTown::GetLocation()
|
||||
|
@ -294,7 +295,7 @@ public:
|
|||
* @pre IsValidTown(town_id).
|
||||
* @return The distance between town and tile.
|
||||
*/
|
||||
static int32 GetDistanceSquareToTile(TownID town_id, TileIndex tile);
|
||||
static SQInteger GetDistanceSquareToTile(TownID town_id, TileIndex tile);
|
||||
|
||||
/**
|
||||
* Find out if this tile is within the rating influence of a town.
|
||||
|
@ -331,7 +332,7 @@ public:
|
|||
* @return The number of months the road reworks are still going to take.
|
||||
* The value 0 means that there are currently no road reworks.
|
||||
*/
|
||||
static int GetRoadReworkDuration(TownID town_id);
|
||||
static SQInteger GetRoadReworkDuration(TownID town_id);
|
||||
|
||||
/**
|
||||
* Find out how long new buildings are still being funded in a town.
|
||||
|
@ -340,7 +341,7 @@ public:
|
|||
* @return The number of months building construction is still funded.
|
||||
* The value 0 means that there is currently no funding.
|
||||
*/
|
||||
static int GetFundBuildingsDuration(TownID town_id);
|
||||
static SQInteger GetFundBuildingsDuration(TownID town_id);
|
||||
|
||||
/**
|
||||
* Find out which company currently has the exclusive rights of this town.
|
||||
|
@ -361,7 +362,7 @@ public:
|
|||
* The value 0 means that there are currently no exclusive rights
|
||||
* given out to anyone.
|
||||
*/
|
||||
static int32 GetExclusiveRightsDuration(TownID town_id);
|
||||
static SQInteger GetExclusiveRightsDuration(TownID town_id);
|
||||
|
||||
/**
|
||||
* Find out if an action can currently be performed on the town.
|
||||
|
@ -388,12 +389,13 @@ public:
|
|||
* Expand the town.
|
||||
* @param town_id The town to expand.
|
||||
* @param houses The amount of houses to grow the town with.
|
||||
* The value will be clamped to 0 .. MAX(uint32).
|
||||
* @pre IsValidTown(town_id).
|
||||
* @pre houses > 0.
|
||||
* @return True if the action succeeded.
|
||||
* @api -ai
|
||||
*/
|
||||
static bool ExpandTown(TownID town_id, int houses);
|
||||
static bool ExpandTown(TownID town_id, SQInteger houses);
|
||||
|
||||
/**
|
||||
* Found a new town.
|
||||
|
@ -433,7 +435,7 @@ public:
|
|||
* @return The rating as a number between -1000 (worst) and 1000 (best).
|
||||
* @api -ai
|
||||
*/
|
||||
static int GetDetailedRating(TownID town_id, ScriptCompany::CompanyID company_id);
|
||||
static SQInteger GetDetailedRating(TownID town_id, ScriptCompany::CompanyID company_id);
|
||||
|
||||
/**
|
||||
* Change the rating of a company within a town.
|
||||
|
@ -446,7 +448,7 @@ public:
|
|||
* @pre no company mode in scope
|
||||
* @api -ai
|
||||
*/
|
||||
static bool ChangeRating(TownID town_id, ScriptCompany::CompanyID company_id, int delta);
|
||||
static bool ChangeRating(TownID town_id, ScriptCompany::CompanyID company_id, SQInteger delta);
|
||||
|
||||
/**
|
||||
* Get the maximum level of noise that still can be added by airports
|
||||
|
@ -454,7 +456,7 @@ public:
|
|||
* @param town_id The town to get the allowed noise from.
|
||||
* @return The noise that still can be added.
|
||||
*/
|
||||
static int GetAllowedNoise(TownID town_id);
|
||||
static SQInteger GetAllowedNoise(TownID town_id);
|
||||
|
||||
/**
|
||||
* Get the road layout for a town.
|
||||
|
|
Loading…
Reference in New Issue