Changeset - r26964:29c5f75b403e
[Not reviewed]
master
0 2 0
glx22 - 16 months ago 2023-02-09 21:47:44
glx@openttd.org
Codechange: Use SQInteger for generic numbers in script_cargo
2 files changed with 14 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/script/api/script_cargo.cpp
Show inline comments
 
@@ -70,9 +70,12 @@
 
	return (ScriptCargo::TownEffect)::CargoSpec::Get(cargo_type)->town_effect;
 
}
 

	
 
/* static */ Money ScriptCargo::GetCargoIncome(CargoID cargo_type, uint32 distance, uint32 days_in_transit)
 
/* static */ Money ScriptCargo::GetCargoIncome(CargoID cargo_type, SQInteger distance, SQInteger days_in_transit)
 
{
 
	if (!IsValidCargo(cargo_type)) return -1;
 

	
 
	distance = Clamp<SQInteger>(distance, 0, UINT32_MAX);
 

	
 
	return ::GetTransportedGoodsIncome(1, distance, Clamp(days_in_transit * 2 / 5, 0, 255), cargo_type);
 
}
 

	
 
@@ -82,8 +85,11 @@
 
	return (ScriptCargo::DistributionType)_settings_game.linkgraph.GetDistributionType(cargo_type);
 
}
 

	
 
/* static */ int64 ScriptCargo::GetWeight(CargoID cargo_type, uint32 amount)
 
/* static */ SQInteger ScriptCargo::GetWeight(CargoID cargo_type, SQInteger amount)
 
{
 
	if (!IsValidCargo(cargo_type)) return -1;
 

	
 
	amount = Clamp<SQInteger>(amount, 0, UINT32_MAX);
 

	
 
	return ::CargoSpec::Get(cargo_type)->WeightOfNUnits(amount);
 
}
src/script/api/script_cargo.hpp
Show inline comments
 
@@ -142,10 +142,12 @@ public:
 
	 * @param cargo_type The cargo to transport.
 
	 * @pre ScriptCargo::IsValidCargo(cargo_type).
 
	 * @param distance The distance the cargo travels from begin to end.
 
	 * @param days_in_transit Amount of (game) days the cargo is in transit. The max value of this variable is 637. Any value higher returns the same as 637 would.
 
	 *                 The value will be clamped to 0 .. MAX(uint32).
 
	 * @param days_in_transit Amount of (game) days the cargo is in transit.
 
	 *                        The max value of this variable is 637. Any value higher returns the same as 637 would.
 
	 * @return The amount of money that would be earned by this trip.
 
	 */
 
	static Money GetCargoIncome(CargoID cargo_type, uint32 distance, uint32 days_in_transit);
 
	static Money GetCargoIncome(CargoID cargo_type, SQInteger distance, SQInteger days_in_transit);
 

	
 
	/**
 
	 * Get the cargo distribution type for a cargo.
 
@@ -159,10 +161,11 @@ public:
 
	 *   cargo for the specified type.
 
	 * @param cargo_type The cargo to check on.
 
	 * @param amount The quantity of cargo.
 
	 *               The value will be clamped to 0 .. MAX(uint32).
 
	 * @pre ScriptCargo::IsValidCargo(cargo_type).
 
	 * @return The weight in tonnes for that quantity of cargo.
 
	 */
 
	static int64 GetWeight(CargoID cargo_type, uint32 amount);
 
	static SQInteger GetWeight(CargoID cargo_type, SQInteger amount);
 
};
 

	
 
#endif /* SCRIPT_CARGO_HPP */
0 comments (0 inline, 0 general)