1 /*
2  * This file is part of OpenTTD.
3  * 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.
4  * 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.
5  * 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/>.
6  */
7 
8 /** @file newgrf_properties.h Properties of NewGRF Action 0. */
9 
10 #ifndef NEWGRF_PROPERTIES_H
11 #define NEWGRF_PROPERTIES_H
12 
13 /**
14  * List of NewGRF properties used in Action 0 or Callback 0x36 (CBID_VEHICLE_MODIFY_PROPERTY).
15  * Names are formatted as PROP_<CLASS>_<NAME>
16  * @todo Currently the list only contains properties which are used more than once in the code. I.e. they are available for callback 0x36.
17  */
18 enum PropertyID {
19 	PROP_VEHICLE_LOAD_AMOUNT                    = 0x07, ///< Loading speed
20 
21 	PROP_TRAIN_SPEED                            = 0x09, ///< Max. speed: 1 unit = 1/1.6 mph = 1 km-ish/h
22 	PROP_TRAIN_POWER                            = 0x0B, ///< Power in hp          (if dualheaded: sum of both vehicles)
23 	PROP_TRAIN_RUNNING_COST_FACTOR              = 0x0D, ///< Yearly runningcost   (if dualheaded: sum of both vehicles)
24 	PROP_TRAIN_CARGO_CAPACITY                   = 0x14, ///< Capacity             (if dualheaded: for each single vehicle)
25 	PROP_TRAIN_WEIGHT                           = 0x16, ///< Weight in t          (if dualheaded: for each single vehicle)
26 	PROP_TRAIN_COST_FACTOR                      = 0x17, ///< Purchase cost        (if dualheaded: sum of both vehicles)
27 	PROP_TRAIN_TRACTIVE_EFFORT                  = 0x1F, ///< Tractive effort coefficient in 1/256
28 	PROP_TRAIN_SHORTEN_FACTOR                   = 0x21, ///< Shorter vehicles
29 	PROP_TRAIN_USER_DATA                        = 0x25, ///< User defined data for vehicle variable 0x42
30 	PROP_TRAIN_CARGO_AGE_PERIOD                 = 0x2B, ///< Number of ticks before carried cargo is aged
31 	PROP_TRAIN_CURVE_SPEED_MOD                  = 0x2E, ///< Modifier to maximum speed in curves
32 
33 	PROP_ROADVEH_RUNNING_COST_FACTOR            = 0x09, ///< Yearly runningcost
34 	PROP_ROADVEH_CARGO_CAPACITY                 = 0x0F, ///< Capacity
35 	PROP_ROADVEH_COST_FACTOR                    = 0x11, ///< Purchase cost
36 	PROP_ROADVEH_POWER                          = 0x13, ///< Power in 10 HP
37 	PROP_ROADVEH_WEIGHT                         = 0x14, ///< Weight in 1/4 t
38 	PROP_ROADVEH_SPEED                          = 0x15, ///< Max. speed: 1 unit = 1/0.8 mph = 2 km-ish/h
39 	PROP_ROADVEH_TRACTIVE_EFFORT                = 0x18, ///< Tractive effort coefficient in 1/256
40 	PROP_ROADVEH_CARGO_AGE_PERIOD               = 0x22, ///< Number of ticks before carried cargo is aged
41 	PROP_ROADVEH_SHORTEN_FACTOR                 = 0x23, ///< Shorter vehicles
42 
43 	PROP_SHIP_COST_FACTOR                       = 0x0A, ///< Purchase cost
44 	PROP_SHIP_SPEED                             = 0x0B, ///< Max. speed: 1 unit = 1/3.2 mph = 0.5 km-ish/h
45 	PROP_SHIP_CARGO_CAPACITY                    = 0x0D, ///< Capacity
46 	PROP_SHIP_RUNNING_COST_FACTOR               = 0x0F, ///< Yearly runningcost
47 	PROP_SHIP_CARGO_AGE_PERIOD                  = 0x1D, ///< Number of ticks before carried cargo is aged
48 
49 	PROP_AIRCRAFT_COST_FACTOR                   = 0x0B, ///< Purchase cost
50 	PROP_AIRCRAFT_SPEED                         = 0x0C, ///< Max. speed: 1 unit = 8 mph = 12.8 km-ish/h
51 	PROP_AIRCRAFT_RUNNING_COST_FACTOR           = 0x0E, ///< Yearly runningcost
52 	PROP_AIRCRAFT_PASSENGER_CAPACITY            = 0x0F, ///< Passenger Capacity
53 	PROP_AIRCRAFT_MAIL_CAPACITY                 = 0x11, ///< Mail Capacity
54 	PROP_AIRCRAFT_CARGO_AGE_PERIOD              = 0x1C, ///< Number of ticks before carried cargo is aged
55 	PROP_AIRCRAFT_RANGE                         = 0x1F, ///< Aircraft range
56 };
57 
58 #endif /* NEWGRF_PROPERTIES_H */
59