Public Types | Static Public Member Functions

ScriptCargo Class Reference

Class that handles all cargo related functions. More...

#include <script_cargo.hpp>

Inheritance diagram for ScriptCargo:
ScriptObject SimpleCountedObject

Public Types

enum  CargoClass {
  CC_PASSENGERS = ::CC_PASSENGERS, CC_MAIL = ::CC_MAIL, CC_EXPRESS = ::CC_EXPRESS, CC_ARMOURED = ::CC_ARMOURED,
  CC_BULK = ::CC_BULK, CC_PIECE_GOODS = ::CC_PIECE_GOODS, CC_LIQUID = ::CC_LIQUID, CC_REFRIGERATED = ::CC_REFRIGERATED,
  CC_HAZARDOUS = ::CC_HAZARDOUS, CC_COVERED = ::CC_COVERED
}
 

The classes of cargo.

More...
enum  TownEffect {
  TE_NONE = ::TE_NONE, TE_PASSENGERS = ::TE_PASSENGERS, TE_MAIL = ::TE_MAIL, TE_GOODS = ::TE_GOODS,
  TE_WATER = ::TE_WATER, TE_FOOD = ::TE_FOOD
}
 

The effects a cargo can have on a town.

More...
enum  SpecialCargoID { CT_AUTO_REFIT = ::CT_AUTO_REFIT, CT_NO_REFIT = ::CT_NO_REFIT }
 

Special cargo types.

More...

Static Public Member Functions

static bool IsValidCargo (CargoID cargo_type)
 Checks whether the given cargo type is valid.
static bool IsValidTownEffect (TownEffect towneffect_type)
 Checks whether the given town effect type is valid.
static char * GetCargoLabel (CargoID cargo_type)
 Gets the string representation of the cargo label.
static bool IsFreight (CargoID cargo_type)
 Checks whether the give cargo is a freight or not.
static bool HasCargoClass (CargoID cargo_type, CargoClass cargo_class)
 Check if this cargo is in the requested cargo class.
static TownEffect GetTownEffect (CargoID cargo_type)
 Get the effect this cargo has on a town.
static Money GetCargoIncome (CargoID cargo_type, uint32 distance, uint32 days_in_transit)
 Get the income for transporting a piece of cargo over the given distance within the specified time.

Detailed Description

Class that handles all cargo related functions.

ai game

Definition at line 23 of file script_cargo.hpp.


Member Enumeration Documentation

The classes of cargo.

Enumerator:
CC_PASSENGERS 

Passengers. Cargoes of this class appear at bus stops. Cargoes not of this class appear at truck stops.

CC_MAIL 

Mail.

CC_EXPRESS 

Express cargo (Goods, Food, Candy, but also possible for passengers).

CC_ARMOURED 

Armoured cargo (Valuables, Gold, Diamonds).

CC_BULK 

Bulk cargo (Coal, Grain etc., Ores, Fruit).

CC_PIECE_GOODS 

Piece goods (Livestock, Wood, Steel, Paper).

CC_LIQUID 

Liquids (Oil, Water, Rubber).

CC_REFRIGERATED 

Refrigerated cargo (Food, Fruit).

CC_HAZARDOUS 

Hazardous cargo (Nuclear Fuel, Explosives, etc.).

CC_COVERED 

Covered/Sheltered Freight (Transporation in Box Vans, Silo Wagons, etc.).

Definition at line 28 of file script_cargo.hpp.

Special cargo types.

Enumerator:
CT_AUTO_REFIT 

Automatically choose cargo type when doing auto-refitting.

CT_NO_REFIT 

Do not refit cargo of a vehicle.

Definition at line 58 of file script_cargo.hpp.

The effects a cargo can have on a town.

Enumerator:
TE_NONE 

This cargo has no effect on a town.

TE_PASSENGERS 

This cargo supplies passengers to a town.

TE_MAIL 

This cargo supplies mail to a town.

TE_GOODS 

This cargo supplies goods to a town.

TE_WATER 

This cargo supplies water to a town.

TE_FOOD 

This cargo supplies food to a town.

Definition at line 45 of file script_cargo.hpp.


Member Function Documentation

Money ScriptCargo::GetCargoIncome ( CargoID  cargo_type,
uint32  distance,
uint32  days_in_transit 
) [static]

Get the income for transporting a piece of cargo over the given distance within the specified time.

Parameters:
cargo_type The cargo to transport.
Precondition:
ScriptCargo::IsValidCargo(cargo_type).
Parameters:
distance The distance the cargo travels from begin to end.
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.
Returns:
The amount of money that would be earned by this trip.

Definition at line 63 of file script_cargo.cpp.

References Clamp(), and IsValidCargo().

char * ScriptCargo::GetCargoLabel ( CargoID  cargo_type  )  [static]

Gets the string representation of the cargo label.

Parameters:
cargo_type The cargo to get the string representation of.
Precondition:
ScriptCargo::IsValidCargo(cargo_type).
Returns:
The cargo label.
Note:
Never use this to check if it is a certain cargo. NewGRF can redefine all of the names.

Definition at line 28 of file script_cargo.cpp.

References GB(), CargoSpec::Get(), IsValidCargo(), and CargoSpec::label.

ScriptCargo::TownEffect ScriptCargo::GetTownEffect ( CargoID  cargo_type  )  [static]

Get the effect this cargo has on a town.

Parameters:
cargo_type The cargo to check on.
Precondition:
ScriptCargo::IsValidCargo(cargo_type).
Returns:
The effect this cargo has on a town, or TE_NONE if it has no effect.

Definition at line 56 of file script_cargo.cpp.

References CargoSpec::Get(), and IsValidCargo().

bool ScriptCargo::HasCargoClass ( CargoID  cargo_type,
CargoClass  cargo_class 
) [static]

Check if this cargo is in the requested cargo class.

Parameters:
cargo_type The cargo to check on.
Precondition:
ScriptCargo::IsValidCargo(cargo_type).
Parameters:
cargo_class The class to check for.
Returns:
True if and only if the cargo is in the cargo class.

Definition at line 50 of file script_cargo.cpp.

References IsCargoInClass(), and IsValidCargo().

Referenced by ScriptEngine::CanPullCargo(), and ScriptRoad::GetRoadVehicleTypeForCargo().

bool ScriptCargo::IsFreight ( CargoID  cargo_type  )  [static]

Checks whether the give cargo is a freight or not.

This defines whether the "freight train weight multiplier" will apply to trains transporting this cargo.

Parameters:
cargo_type The cargo to check on.
Precondition:
ScriptCargo::IsValidCargo(cargo_type).
Returns:
True if and only if the cargo is freight.

Definition at line 43 of file script_cargo.cpp.

References CargoSpec::Get(), CargoSpec::is_freight, and IsValidCargo().

bool ScriptCargo::IsValidTownEffect ( TownEffect  towneffect_type  )  [static]

Checks whether the given town effect type is valid.

Parameters:
towneffect_type The town effect to check.
Returns:
True if and only if the town effect type is valid.

Definition at line 23 of file script_cargo.cpp.

References TE_END.

Referenced by ScriptTown::GetCargoGoal(), ScriptTown::GetLastMonthReceived(), and ScriptTown::SetCargoGoal().


The documentation for this class was generated from the following files: