AICargo Class Reference

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

Inheritance diagram for AICargo:

AIObject

Public Types

enum  CargoClass {
  CC_PASSENGERS = 1 << 0,
  CC_MAIL = 1 << 1,
  CC_EXPRESS = 1 << 2,
  CC_ARMOURED = 1 << 3,
  CC_BULK = 1 << 4,
  CC_PIECE_GOODS = 1 << 5,
  CC_LIQUID = 1 << 6,
  CC_REFRIGERATED = 1 << 7,
  CC_HAZARDOUS = 1 << 8,
  CC_COVERED = 1 << 9
}
 The classes of cargo (from newgrf_cargo.h). More...
enum  TownEffect {
  TE_NONE = 0,
  TE_PASSENGERS = 1,
  TE_MAIL = 2,
  TE_GOODS = 3,
  TE_WATER = 4,
  TE_FOOD = 5
}
 The effects a cargo can have on a town. More...

Static Public Member Functions

static bool IsValidCargo (CargoID cargo_type)
 Checks whether the given cargo 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.

Member Enumeration Documentation

The classes of cargo (from newgrf_cargo.h).

Enumerator:
CC_PASSENGERS  Passengers. Cargos of this class appear at bus stops. Cargos 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.).

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.


Member Function Documentation

static bool AICargo::IsValidCargo ( CargoID  cargo_type  )  [static]

Checks whether the given cargo type is valid.

Parameters:
cargo_type The cargo to check.
Returns:
True if and only if the cargo type is valid.

static char* AICargo::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:
AICargo::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.

static bool AICargo::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:
AICargo::IsValidCargo(cargo_type).
Returns:
True if and only if the cargo is freight.

static bool AICargo::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:
AICargo::IsValidCargo(cargo_type).
Parameters:
cargo_class The class to check for.
Returns:
True if and only if the cargo is in the cargo class.

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

Get the effect this cargo has on a town.

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

static Money AICargo::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:
AICargo::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.


Generated on Sat Jul 31 21:05:10 2010 for OpenTTD NoAI API by  doxygen 1.5.6