Files @ r4574:26f71b3f860b
Branch filter:

Location: cpp/openttd-patchpack/source/table/landscape_const.h

bjarni
(svn r6424) -Codechange: [autoreplace] removed a loop though all vehicles from each time the window is redrawn
To do this, the player struct contains an array, that contains the count of each engine type that the player owns
Those arrays are updated each time a vehicle is build or deleted and is calculated on load (it's not saved)
It's possible to access the arrays outside of the autoreplace GUI, so feel free to read from them in other patches as well
/* $Id$ */

#include "sprites.h"

typedef struct CargoTypesValues {
	StringID names[NUM_CARGO];
	StringID units_volume[NUM_CARGO];
	byte weights[NUM_CARGO];
	SpriteID sprites[NUM_CARGO];

	uint16 initial_cargo_payment[NUM_CARGO];
	byte transit_days_table_1[NUM_CARGO];
	byte transit_days_table_2[NUM_CARGO];

	byte road_veh_by_cargo_start[NUM_CARGO];
	byte road_veh_by_cargo_count[NUM_CARGO];
} CargoTypesValues;


static const CargoTypesValues _cargo_types_base_values[4] = {
	{
		/* normal names */
		{
			STR_000F_PASSENGERS,
			STR_0010_COAL,
			STR_0011_MAIL,
			STR_0012_OIL,
			STR_0013_LIVESTOCK,
			STR_0014_GOODS,
			STR_0015_GRAIN,
			STR_0016_WOOD,
			STR_0017_IRON_ORE,
			STR_0018_STEEL,
			STR_0019_VALUABLES,
			STR_000E,
		},

		{ /* normal units of volume */
			STR_PASSENGERS,
			STR_TONS,
			STR_BAGS,
			STR_LITERS,
			STR_ITEMS,
			STR_CRATES,
			STR_TONS,
			STR_TONS,
			STR_TONS,
			STR_TONS,
			STR_BAGS,
			STR_RES_OTHER
		},

		/* normal weights */
		{
			1, 16, 4, 16, 3, 8, 16, 16, 16, 16, 2, 0,
		},

		/* normal sprites */
		{
			SPR_CARGO_PASSENGER,      SPR_CARGO_COAL,  SPR_CARGO_MAIL, SPR_CARGO_OIL,      SPR_CARGO_LIVESTOCK,
			SPR_CARGO_GOODS,          SPR_CARGO_GRAIN, SPR_CARGO_WOOD, SPR_CARGO_IRON_ORE, SPR_CARGO_STEEL,
			SPR_CARGO_VALUES_GOLD,    SPR_ASCII_SPACE
		},

		/* normal initial cargo payment */
		{
			3185, 5916, 4550, 4437, 4322, 6144, 4778, 5005, 5120, 5688, 7509, 5688
		},

		/* normal transit days table 1 */
		{
			0, 7, 20, 25, 4, 5, 4, 15, 9, 7, 1, 0,
		},

		/* normal transit days table 2 */
		{
			24, 255, 90, 255, 18, 28, 40, 255, 255, 255, 32, 30,
		},

		/* normal road veh by cargo start & count */
		{116, 123, 126, 132, 135, 138, 141, 144, 147, 150, 153, 156},
		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}
	},

	{
		/* hilly names */
		{
			STR_000F_PASSENGERS,
			STR_0010_COAL,
			STR_0011_MAIL,
			STR_0012_OIL,
			STR_0013_LIVESTOCK,
			STR_0014_GOODS,
			STR_0022_WHEAT,
			STR_0016_WOOD,
			STR_000E,
			STR_001F_PAPER,
			STR_0020_GOLD,
			STR_001E_FOOD,
		},

		{ /* hilly units of volume */
			STR_PASSENGERS,
			STR_TONS,
			STR_BAGS,
			STR_LITERS,
			STR_ITEMS,
			STR_CRATES,
			STR_TONS,
			STR_TONS,
			STR_RES_OTHER,
			STR_TONS,
			STR_BAGS,
			STR_TONS
		},

		/* hilly weights */
		{
			1, 16, 4, 16, 3, 8, 16, 16, 0, 16, 8, 16
		},

		/* hilly sprites */
		{
			SPR_CARGO_PASSENGER,   SPR_CARGO_COAL,  SPR_CARGO_MAIL, SPR_CARGO_OIL,   SPR_CARGO_LIVESTOCK,
			SPR_CARGO_GOODS,       SPR_CARGO_GRAIN, SPR_CARGO_WOOD, SPR_ASCII_SPACE, SPR_CARGO_PAPER,
			SPR_CARGO_VALUES_GOLD, SPR_CARGO_FOOD
		},

		/* hilly initial cargo payment */
		{
			3185, 5916, 4550, 4437, 4322, 6144, 4778, 5005, 5120, 5461, 5802, 5688
		},

		/* hilly transit days table 1 */
		{
			0, 7, 20, 25, 4, 5, 4, 15, 9, 7, 10, 0,
		},

		/* hilly transit days table 2 */
		{
			24, 255, 90, 255, 18, 28, 40, 255, 255, 60, 40, 30
		},

		/* hilly road veh by cargo start & count */
		{116, 123, 126, 132, 135, 138, 141, 144, 147, 159, 153, 156},
		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3},
	},

	{
		/* desert names */
		{
			STR_000F_PASSENGERS,
			STR_0023_RUBBER,
			STR_0011_MAIL,
			STR_0012_OIL,
			STR_001C_FRUIT,
			STR_0014_GOODS,
			STR_001B_MAIZE,
			STR_0016_WOOD,
			STR_001A_COPPER_ORE,
			STR_0021_WATER,
			STR_001D_DIAMONDS,
			STR_001E_FOOD
		},

		{ /* desert units of volume */
			STR_PASSENGERS,
			STR_LITERS,
			STR_BAGS,
			STR_LITERS,
			STR_TONS,
			STR_CRATES,
			STR_TONS,
			STR_TONS,
			STR_TONS,
			STR_LITERS,
			STR_BAGS,
			STR_TONS
		},

		/* desert weights */
		{
			1, 16, 4, 16, 16, 8, 16, 16, 16, 16, 2, 16,
		},

		/* desert sprites */
		{
			SPR_CARGO_PASSENGER, SPR_CARGO_RUBBER, SPR_CARGO_MAIL, SPR_CARGO_OIL,        SPR_CARGO_FRUIT,
			SPR_CARGO_GOODS,     SPR_CARGO_GRAIN,  SPR_CARGO_WOOD, SPR_CARGO_COPPER_ORE, SPR_CARGO_WATERCOLA,
			SPR_CARGO_DIAMONDS,  SPR_CARGO_FOOD
		},

		/* desert initial cargo payment */
		{
			3185, 4437, 4550, 4892, 4209, 6144, 4322, 7964, 4892, 4664, 5802, 5688
		},

		/* desert transit days table 1 */
		{
			0, 2, 20, 25, 0, 5, 4, 15, 12, 20, 10, 0
		},

		/* desert transit days table 2 */
		{
			24, 20, 90, 255, 15, 28, 40, 255, 255, 80, 255, 30
		},

		/* desert road veh by cargo start & count */
		{116, 171, 126, 132, 168, 138, 141, 144, 162, 165, 153, 156},
		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}
	},

	{
		/* candy names */
		{
			STR_000F_PASSENGERS,
			STR_0024_SUGAR,
			STR_0011_MAIL,
			STR_0025_TOYS,
			STR_002B_BATTERIES,
			STR_0026_CANDY,
			STR_002A_TOFFEE,
			STR_0027_COLA,
			STR_0028_COTTON_CANDY,
			STR_0029_BUBBLES,
			STR_002C_PLASTIC,
			STR_002D_FIZZY_DRINKS,
		},

		{ /* candy unitrs of volume */
			STR_PASSENGERS,
			STR_TONS,
			STR_BAGS,
			STR_NOTHING,
			STR_NOTHING,
			STR_TONS,
			STR_TONS,
			STR_LITERS,
			STR_TONS,
			STR_NOTHING,
			STR_LITERS,
			STR_NOTHING
		},

		/* candy weights */
		{
			1, 16, 4, 2, 4, 5, 16, 16, 16, 1, 16, 2
		},

		/* candy sprites */
		{
			SPR_CARGO_PASSENGER, SPR_CARGO_SUGAR,  SPR_CARGO_MAIL,      SPR_CARGO_TOYS,        SPR_CARGO_BATTERIES,
			SPR_CARGO_CANDY,     SPR_CARGO_TOFFEE, SPR_CARGO_WATERCOLA, SPR_CARGO_COTTONCANDY, SPR_CARGO_BUBBLES,
			SPR_CARGO_PLASTIC,   SPR_CARGO_FIZZYDRINK
		},

		/* candy initial cargo payment */
		{
			3185, 4437, 4550, 5574, 4322, 6144, 4778, 4892, 5005, 5077, 4664, 6250
		},

		/* candy transit days table 1 */
		{
			0, 20, 20, 25, 2, 8, 14, 5, 10, 20, 30, 30,
		},

		/* candy transit days table 2 */
		{
			24, 255, 90, 255, 30, 40, 60, 75, 25, 80, 255, 50
		},

		/* candy road veh by cargo start & count */
		{116, 174, 126, 186, 192, 189, 183, 177, 180, 201, 198, 195},
		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}
	}
};