# cargo_const.h

Go to the documentation of this file.

    00001 /* $Id: cargo_const.h 18413 2009-12-05 21:39:28Z alberth $ */
    00002
    00003 /*
    00004  * This file is part of OpenTTD.
    00005  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
    00006  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    00007  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
    00008  */
    00009
    00013 #define MK(bt, label, c, e, f, g, h, fr, te, ks1, ks2, ks3, ks4, ks5, l, m) \
    00014     {bt, label, c, c, e, f, {g, h}, fr, te, 0, 0, ks1, ks2, ks3, ks4, ks5, l, m, NULL, NULL, 0}
    00015
    00016 static const CargoSpec _default_cargo[] = {
    00017   MK(  0, 'PASS', 152,  1, 3185,  0,  24, false, TE_PASSENGERS,
    00018     STR_CARGO_PLURAL_PASSENGERS,     STR_CARGO_SINGULAR_PASSENGER,      STR_PASSENGERS, STR_QUANTITY_PASSENGERS,   STR_ABBREV_PASSENGERS,
    00019     SPR_CARGO_PASSENGER,     CC_PASSENGERS  ),
    00020
    00021   MK(  1, 'COAL',  32, 16, 5916,  7, 255, true,  TE_NONE,
    00022     STR_CARGO_PLURAL_COAL,           STR_CARGO_SINGULAR_COAL,           STR_TONS,       STR_QUANTITY_COAL,         STR_ABBREV_COAL,
    00023     SPR_CARGO_COAL,          CC_BULK        ),
    00024
    00025   MK(  2, 'MAIL',  15,  4, 4550, 20,  90, false, TE_MAIL,
    00026     STR_CARGO_PLURAL_MAIL,           STR_CARGO_SINGULAR_MAIL,           STR_BAGS,       STR_QUANTITY_MAIL,         STR_ABBREV_MAIL,
    00027     SPR_CARGO_MAIL,          CC_MAIL        ),
    00028
    00029   /* Oil in temperate and arctic */
    00030   MK(  3, 'OIL_', 174, 16, 4437, 25, 255, true,  TE_NONE,
    00031     STR_CARGO_PLURAL_OIL,            STR_CARGO_SINGULAR_OIL,            STR_LITERS,     STR_QUANTITY_OIL,          STR_ABBREV_OIL,
    00032     SPR_CARGO_OIL,           CC_LIQUID      ),
    00033
    00034   /* Oil in subtropic */
    00035   MK(  3, 'OIL_', 174, 16, 4892, 25, 255, true,  TE_NONE,
    00036     STR_CARGO_PLURAL_OIL,            STR_CARGO_SINGULAR_OIL,            STR_LITERS,     STR_QUANTITY_OIL,          STR_ABBREV_OIL,
    00037     SPR_CARGO_OIL,           CC_LIQUID      ),
    00038
    00039   MK(  4, 'LVST', 208,  3, 4322,  4,  18, true,  TE_NONE,
    00040     STR_CARGO_PLURAL_LIVESTOCK,      STR_CARGO_SINGULAR_LIVESTOCK,      STR_ITEMS,      STR_QUANTITY_LIVESTOCK,    STR_ABBREV_LIVESTOCK,
    00041     SPR_CARGO_LIVESTOCK,     CC_PIECE_GOODS ),
    00042
    00043   MK(  5, 'GOOD', 194,  8, 6144,  5,  28, true,  TE_GOODS,
    00044     STR_CARGO_PLURAL_GOODS,          STR_CARGO_SINGULAR_GOODS,          STR_CRATES,     STR_QUANTITY_GOODS,        STR_ABBREV_GOODS,
    00045     SPR_CARGO_GOODS,         CC_EXPRESS     ),
    00046
    00047   MK(  6, 'GRAI', 191, 16, 4778,  4,  40, true,  TE_NONE,
    00048     STR_CARGO_PLURAL_GRAIN,          STR_CARGO_SINGULAR_GRAIN,          STR_TONS,       STR_QUANTITY_GRAIN,        STR_ABBREV_GRAIN,
    00049     SPR_CARGO_GRAIN,         CC_BULK        ),
    00050
    00051   MK(  6, 'WHEA', 191, 16, 4778,  4,  40, true,  TE_NONE,
    00052     STR_CARGO_PLURAL_WHEAT,          STR_CARGO_SINGULAR_WHEAT,          STR_TONS,       STR_QUANTITY_WHEAT,        STR_ABBREV_WHEAT,
    00053     SPR_CARGO_GRAIN,         CC_BULK        ),
    00054
    00055   MK(  6, 'MAIZ', 191, 16, 4322,  4,  40, true,  TE_NONE,
    00056     STR_CARGO_PLURAL_MAIZE,          STR_CARGO_SINGULAR_MAIZE,          STR_TONS,       STR_QUANTITY_MAIZE,        STR_ABBREV_MAIZE,
    00057     SPR_CARGO_GRAIN,         CC_BULK        ),
    00058
    00059   /* Wood in temperate and arctic */
    00060   MK(  7, 'WOOD',  84, 16, 5005, 15, 255, true,  TE_NONE,
    00061     STR_CARGO_PLURAL_WOOD,           STR_CARGO_SINGULAR_WOOD,           STR_TONS,       STR_QUANTITY_WOOD,         STR_ABBREV_WOOD,
    00062     SPR_CARGO_WOOD,          CC_PIECE_GOODS ),
    00063
    00064   /* Wood in subtropic */
    00065   MK(  7, 'WOOD',  84, 16, 7964, 15, 255, true,  TE_NONE,
    00066     STR_CARGO_PLURAL_WOOD,           STR_CARGO_SINGULAR_WOOD,           STR_TONS,       STR_QUANTITY_WOOD,         STR_ABBREV_WOOD,
    00067     SPR_CARGO_WOOD,          CC_PIECE_GOODS ),
    00068
    00069   MK(  8, 'IORE', 184, 16, 5120,  9, 255, true,  TE_NONE,
    00070     STR_CARGO_PLURAL_IRON_ORE,       STR_CARGO_SINGULAR_IRON_ORE,       STR_TONS,       STR_QUANTITY_IRON_ORE,     STR_ABBREV_IRON_ORE,
    00071     SPR_CARGO_IRON_ORE,      CC_BULK        ),
    00072
    00073   MK(  9, 'STEL',  10, 16, 5688,  7, 255, true,  TE_NONE,
    00074     STR_CARGO_PLURAL_STEEL,          STR_CARGO_SINGULAR_STEEL,          STR_TONS,       STR_QUANTITY_STEEL,        STR_ABBREV_STEEL,
    00075     SPR_CARGO_STEEL,         CC_PIECE_GOODS ),
    00076
    00077   MK( 10, 'VALU', 202,  2, 7509,  1,  32, true,  TE_NONE,
    00078     STR_CARGO_PLURAL_VALUABLES,      STR_CARGO_SINGULAR_VALUABLES,      STR_BAGS,       STR_QUANTITY_VALUABLES,    STR_ABBREV_VALUABLES,
    00079     SPR_CARGO_VALUES_GOLD,   CC_ARMOURED    ),
    00080
    00081   MK( 10, 'GOLD', 202,  8, 5802, 10,  40, true,  TE_NONE,
    00082     STR_CARGO_PLURAL_GOLD,           STR_CARGO_SINGULAR_GOLD,           STR_BAGS,       STR_QUANTITY_GOLD,         STR_ABBREV_GOLD,
    00083     SPR_CARGO_VALUES_GOLD,   CC_ARMOURED    ),
    00084
    00085   MK( 10, 'DIAM', 202,  2, 5802, 10, 255, true,  TE_NONE,
    00086     STR_CARGO_PLURAL_DIAMONDS,       STR_CARGO_SINGULAR_DIAMOND,        STR_BAGS,       STR_QUANTITY_DIAMONDS,     STR_ABBREV_DIAMONDS,
    00087     SPR_CARGO_DIAMONDS,      CC_ARMOURED    ),
    00088
    00089   MK( 11, 'PAPR',  10, 16, 5461,  7,  60, true,  TE_NONE,
    00090     STR_CARGO_PLURAL_PAPER,          STR_CARGO_SINGULAR_PAPER,          STR_TONS,       STR_QUANTITY_PAPER,        STR_ABBREV_PAPER,
    00091     SPR_CARGO_PAPER,         CC_PIECE_GOODS ),
    00092
    00093   MK( 12, 'FOOD',  48, 16, 5688,  0,  30, true,  TE_FOOD,
    00094     STR_CARGO_PLURAL_FOOD,           STR_CARGO_SINGULAR_FOOD,           STR_TONS,       STR_QUANTITY_FOOD,         STR_ABBREV_FOOD,
    00095     SPR_CARGO_FOOD,          CC_EXPRESS     | CC_REFRIGERATED),
    00096
    00097   MK( 13, 'FRUT', 208, 16, 4209,  0,  15, true,  TE_NONE,
    00098     STR_CARGO_PLURAL_FRUIT,          STR_CARGO_SINGULAR_FRUIT,          STR_TONS,       STR_QUANTITY_FRUIT,        STR_ABBREV_FRUIT,
    00099     SPR_CARGO_FRUIT,         CC_BULK        | CC_REFRIGERATED),
    00100
    00101   MK( 14, 'CORE', 184, 16, 4892, 12, 255, true,  TE_NONE,
    00102     STR_CARGO_PLURAL_COPPER_ORE,     STR_CARGO_SINGULAR_COPPER_ORE,     STR_TONS,       STR_QUANTITY_COPPER_ORE,   STR_ABBREV_COPPER_ORE,
    00103     SPR_CARGO_COPPER_ORE,    CC_BULK        ),
    00104
    00105   MK( 15, 'WATR',  10, 16, 4664, 20,  80, true,  TE_WATER,
    00106     STR_CARGO_PLURAL_WATER,          STR_CARGO_SINGULAR_WATER,          STR_LITERS,     STR_QUANTITY_WATER,        STR_ABBREV_WATER,
    00107     SPR_CARGO_WATERCOLA,     CC_LIQUID      ),
    00108
    00109   MK( 16, 'RUBR',  32, 16, 4437,  2,  20, true,  TE_NONE,
    00110     STR_CARGO_PLURAL_RUBBER,         STR_CARGO_SINGULAR_RUBBER,         STR_LITERS,     STR_QUANTITY_RUBBER,       STR_ABBREV_RUBBER,
    00111     SPR_CARGO_RUBBER,        CC_LIQUID      ),
    00112
    00113   MK( 17, 'SUGR',  32, 16, 4437, 20, 255, true,  TE_NONE,
    00114     STR_CARGO_PLURAL_SUGAR,          STR_CARGO_SINGULAR_SUGAR,          STR_TONS,       STR_QUANTITY_SUGAR,        STR_ABBREV_SUGAR,
    00115     SPR_CARGO_SUGAR,         CC_BULK        ),
    00116
    00117   MK( 18, 'TOYS', 174,  2, 5574, 25, 255, true,  TE_NONE,
    00118     STR_CARGO_PLURAL_TOYS,           STR_CARGO_SINGULAR_TOY,            STR_ITEMS,      STR_QUANTITY_TOYS,         STR_ABBREV_TOYS,
    00119     SPR_CARGO_TOYS,          CC_PIECE_GOODS ),
    00120
    00121   MK( 19, 'BATT', 208,  4, 4322,  2,  30, true,  TE_NONE,
    00122     STR_CARGO_PLURAL_BATTERIES,      STR_CARGO_SINGULAR_BATTERY,        STR_ITEMS,      STR_QUANTITY_BATTERIES,    STR_ABBREV_BATTERIES,
    00123     SPR_CARGO_BATTERIES,     CC_PIECE_GOODS ),
    00124
    00125   MK( 20, 'SWET', 194,  5, 6144,  8,  40, true,  TE_GOODS,
    00126     STR_CARGO_PLURAL_CANDY,          STR_CARGO_SINGULAR_CANDY,          STR_BAGS,       STR_QUANTITY_SWEETS,       STR_ABBREV_SWEETS,
    00127     SPR_CARGO_CANDY,         CC_EXPRESS     ),
    00128
    00129   MK( 21, 'TOFF', 191, 16, 4778, 14,  60, true,  TE_NONE,
    00130     STR_CARGO_PLURAL_TOFFEE,         STR_CARGO_SINGULAR_TOFFEE,         STR_TONS,       STR_QUANTITY_TOFFEE,       STR_ABBREV_TOFFEE,
    00131     SPR_CARGO_TOFFEE,        CC_BULK        ),
    00132
    00133   MK( 22, 'COLA',  84, 16, 4892,  5,  75, true,  TE_NONE,
    00134     STR_CARGO_PLURAL_COLA,           STR_CARGO_SINGULAR_COLA,           STR_LITERS,     STR_QUANTITY_COLA,         STR_ABBREV_COLA,
    00135     SPR_CARGO_WATERCOLA,     CC_LIQUID      ),
    00136
    00137   MK( 23, 'CTCD', 184, 16, 5005, 10,  25, true,  TE_NONE,
    00138     STR_CARGO_PLURAL_COTTON_CANDY,   STR_CARGO_SINGULAR_COTTON_CANDY,   STR_TONS,       STR_QUANTITY_CANDYFLOSS,   STR_ABBREV_CANDYFLOSS,
    00139     SPR_CARGO_COTTONCANDY,   CC_BULK        ),
    00140
    00141   MK( 24, 'BUBL',  10,  1, 5077, 20,  80, true,  TE_NONE,
    00142     STR_CARGO_PLURAL_BUBBLES,        STR_CARGO_SINGULAR_BUBBLE,         STR_ITEMS,      STR_QUANTITY_BUBBLES,      STR_ABBREV_BUBBLES,
    00143     SPR_CARGO_BUBBLES,       CC_PIECE_GOODS ),
    00144
    00145   MK( 25, 'PLST', 202, 16, 4664, 30, 255, true,  TE_NONE,
    00146     STR_CARGO_PLURAL_PLASTIC,        STR_CARGO_SINGULAR_PLASTIC,        STR_LITERS,     STR_QUANTITY_PLASTIC,      STR_ABBREV_PLASTIC,
    00147     SPR_CARGO_PLASTIC,       CC_LIQUID      ),
    00148
    00149   MK( 26, 'FZDR',  48,  2, 6250, 30,  50, true,  TE_FOOD,
    00150     STR_CARGO_PLURAL_FIZZY_DRINKS,   STR_CARGO_SINGULAR_FIZZY_DRINK,    STR_ITEMS,      STR_QUANTITY_FIZZY_DRINKS, STR_ABBREV_FIZZY_DRINKS,
    00151     SPR_CARGO_FIZZYDRINK,    CC_PIECE_GOODS ),
    00152
    00153   /* Void slot in temperate */
    00154   MK( 0xFF,    0,   1,  0, 5688,  0,  30, true,  TE_NONE,
    00155     STR_CARGO_PLURAL_NOTHING,        STR_CARGO_SINGULAR_NOTHING,        STR_TONS,       STR_QUANTITY_NOTHING,      STR_ABBREV_NOTHING,
    00156     SPR_ASCII_SPACE,         CC_NOAVAILABLE ),
    00157
    00158   /* Void slot in arctic */
    00159   MK( 0xFF,    0, 184,  0, 5120,  9, 255, true,  TE_NONE,
    00160     STR_CARGO_PLURAL_NOTHING,        STR_CARGO_SINGULAR_NOTHING,        STR_TONS,       STR_QUANTITY_NOTHING,      STR_ABBREV_NOTHING,
    00161     SPR_ASCII_SPACE,         CC_NOAVAILABLE ),
    00162
    00163 };
    00164
    00165
    00167 static const CargoLabel _default_climate_cargo[NUM_LANDSCAPE][12] = {
    00168   { 'PASS', 'COAL', 'MAIL', 'OIL_', 'LVST', 'GOOD', 'GRAI', 'WOOD', 'IORE', 'STEL', 'VALU',     33, },
    00169   { 'PASS', 'COAL', 'MAIL', 'OIL_', 'LVST', 'GOOD', 'WHEA', 'WOOD',     34, 'PAPR', 'GOLD', 'FOOD', },
    00170   { 'PASS', 'RUBR', 'MAIL',      4, 'FRUT', 'GOOD', 'MAIZ',     11, 'CORE', 'WATR', 'DIAM', 'FOOD', },
    00171   { 'PASS', 'SUGR', 'MAIL', 'TOYS', 'BATT', 'SWET', 'TOFF', 'COLA', 'CTCD', 'BUBL', 'PLST', 'FZDR', },
    00172 };
    00173