belugas@3866: /* $Id$ */ belugas@3866: glx@9505: /** @file newgrf_cargo.h */ glx@9505: belugas@3866: #ifndef NEWGRF_CARGO_H belugas@3866: #define NEWGRF_CARGO_H belugas@3866: rubidium@9694: #include "newgrf_callbacks.h" rubidium@9723: #include "cargo_type.h" rubidium@9724: #include "gfx_type.h" rubidium@9694: belugas@3866: enum { rubidium@9723: CC_NOAVAILABLE = 0, ///< No cargo class has been specified rubidium@9723: CC_PASSENGERS = 1 << 0, ///< Passengers rubidium@9723: CC_MAIL = 1 << 1, ///< Mail rubidium@9723: CC_EXPRESS = 1 << 2, ///< Express cargo (Goods, Food, Candy, but also possible for passengers) rubidium@9723: CC_ARMOURED = 1 << 3, ///< Armoured cargo (Valuables, Gold, Diamonds) rubidium@9723: CC_BULK = 1 << 4, ///< Bulk cargo (Coal, Grain etc., Ores, Fruit) rubidium@9723: CC_PIECE_GOODS = 1 << 5, ///< Piece goods (Livestock, Wood, Steel, Paper) rubidium@9723: CC_LIQUID = 1 << 6, ///< Liquids (Oil, Water, Rubber) rubidium@9723: CC_REFRIGERATED = 1 << 7, ///< Refrigerated cargo (Food, Fruit) rubidium@9723: CC_HAZARDOUS = 1 << 8, ///< Hazardous cargo (Nucleair Fuel, Explosives, etc.) rubidium@9723: CC_COVERED = 1 << 9, ///< Covered/Sheltered Freight (Transporation in Box Vans, Silo Wagons, etc.) rubidium@9723: CC_SPECIAL = 1 << 15 ///< Special bit used for livery refit tricks instead of normal cargoes. belugas@3866: }; belugas@3866: peter1138@6474: static const CargoID CT_DEFAULT = NUM_CARGO + 0; peter1138@6474: static const CargoID CT_PURCHASE = NUM_CARGO + 1; peter1138@6474: static const CargoID CT_DEFAULT_NA = NUM_CARGO + 2; belugas@3866: rubidium@9599: /* Forward declarations of structs used */ KUDr@9543: struct CargoSpec; rubidium@9599: struct GRFFile; truelight@9517: truelight@9517: SpriteID GetCustomCargoSprite(const CargoSpec *cs); rubidium@9694: uint16 GetCargoCallback(CallbackID callback, uint32 param1, uint32 param2, const CargoSpec *cs); truelight@9718: CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile, bool usebit = false); truelight@9641: uint8 GetReverseCargoTranslation(CargoID cargo, const GRFFile *grffile); truelight@9517: belugas@3866: #endif /* NEWGRF_CARGO_H */