2 |
2 |
3 #ifndef COMMAND_H |
3 #ifndef COMMAND_H |
4 #define COMMAND_H |
4 #define COMMAND_H |
5 |
5 |
6 enum { |
6 enum { |
7 CMD_BUILD_RAILROAD_TRACK = 0, |
7 CMD_BUILD_RAILROAD_TRACK = 0, |
8 CMD_REMOVE_RAILROAD_TRACK = 1, |
8 CMD_REMOVE_RAILROAD_TRACK = 1, |
9 CMD_BUILD_SINGLE_RAIL = 2, |
9 CMD_BUILD_SINGLE_RAIL = 2, |
10 CMD_REMOVE_SINGLE_RAIL = 3, |
10 CMD_REMOVE_SINGLE_RAIL = 3, |
11 CMD_LANDSCAPE_CLEAR = 4, |
11 CMD_LANDSCAPE_CLEAR = 4, |
12 CMD_BUILD_BRIDGE = 5, |
12 CMD_BUILD_BRIDGE = 5, |
13 CMD_BUILD_RAILROAD_STATION = 6, |
13 CMD_BUILD_RAILROAD_STATION = 6, |
14 CMD_BUILD_TRAIN_DEPOT = 7, |
14 CMD_BUILD_TRAIN_DEPOT = 7, |
15 CMD_BUILD_SIGNALS = 8, |
15 CMD_BUILD_SIGNALS = 8, |
16 CMD_REMOVE_SIGNALS = 9, |
16 CMD_REMOVE_SIGNALS = 9, |
17 CMD_TERRAFORM_LAND = 10, |
17 CMD_TERRAFORM_LAND = 10, |
18 CMD_PURCHASE_LAND_AREA = 11, |
18 CMD_PURCHASE_LAND_AREA = 11, |
19 CMD_SELL_LAND_AREA = 12, |
19 CMD_SELL_LAND_AREA = 12, |
20 CMD_BUILD_TUNNEL = 13, |
20 CMD_BUILD_TUNNEL = 13, |
21 |
21 |
22 CMD_REMOVE_FROM_RAILROAD_STATION = 14, |
22 CMD_REMOVE_FROM_RAILROAD_STATION = 14, |
23 CMD_CONVERT_RAIL = 15, |
23 CMD_CONVERT_RAIL = 15, |
24 |
24 |
25 CMD_BUILD_TRAIN_WAYPOINT = 16, |
25 CMD_BUILD_TRAIN_WAYPOINT = 16, |
26 CMD_RENAME_WAYPOINT = 17, |
26 CMD_RENAME_WAYPOINT = 17, |
27 CMD_REMOVE_TRAIN_WAYPOINT = 18, |
27 CMD_REMOVE_TRAIN_WAYPOINT = 18, |
28 |
28 |
29 CMD_BUILD_ROAD_STOP = 21, |
29 CMD_BUILD_ROAD_STOP = 21, |
30 CMD_BUILD_LONG_ROAD = 23, |
30 CMD_BUILD_LONG_ROAD = 23, |
31 CMD_REMOVE_LONG_ROAD = 24, |
31 CMD_REMOVE_LONG_ROAD = 24, |
32 CMD_BUILD_ROAD = 25, |
32 CMD_BUILD_ROAD = 25, |
33 CMD_REMOVE_ROAD = 26, |
33 CMD_REMOVE_ROAD = 26, |
34 CMD_BUILD_ROAD_DEPOT = 27, |
34 CMD_BUILD_ROAD_DEPOT = 27, |
35 |
35 |
36 CMD_BUILD_AIRPORT = 29, |
36 CMD_BUILD_AIRPORT = 29, |
37 |
37 |
38 CMD_BUILD_DOCK = 30, |
38 CMD_BUILD_DOCK = 30, |
39 |
39 |
40 CMD_BUILD_SHIP_DEPOT = 31, |
40 CMD_BUILD_SHIP_DEPOT = 31, |
41 CMD_BUILD_BUOY = 32, |
41 CMD_BUILD_BUOY = 32, |
42 |
42 |
43 CMD_PLANT_TREE = 33, |
43 CMD_PLANT_TREE = 33, |
44 |
44 |
45 CMD_BUILD_RAIL_VEHICLE = 34, |
45 CMD_BUILD_RAIL_VEHICLE = 34, |
46 CMD_MOVE_RAIL_VEHICLE = 35, |
46 CMD_MOVE_RAIL_VEHICLE = 35, |
47 |
47 |
48 CMD_START_STOP_TRAIN = 36, |
48 CMD_START_STOP_TRAIN = 36, |
49 |
49 |
50 CMD_SELL_RAIL_WAGON = 38, |
50 CMD_SELL_RAIL_WAGON = 38, |
51 |
51 |
52 CMD_TRAIN_GOTO_DEPOT = 39, |
52 CMD_TRAIN_GOTO_DEPOT = 39, |
53 CMD_FORCE_TRAIN_PROCEED = 40, |
53 CMD_FORCE_TRAIN_PROCEED = 40, |
54 CMD_REVERSE_TRAIN_DIRECTION = 41, |
54 CMD_REVERSE_TRAIN_DIRECTION = 41, |
55 |
55 |
56 CMD_MODIFY_ORDER = 42, |
56 CMD_MODIFY_ORDER = 42, |
57 CMD_SKIP_ORDER = 43, |
57 CMD_SKIP_ORDER = 43, |
58 CMD_DELETE_ORDER = 44, |
58 CMD_DELETE_ORDER = 44, |
59 CMD_INSERT_ORDER = 45, |
59 CMD_INSERT_ORDER = 45, |
60 |
60 |
61 CMD_CHANGE_SERVICE_INT = 46, |
61 CMD_CHANGE_SERVICE_INT = 46, |
62 |
62 |
63 CMD_BUILD_INDUSTRY = 47, |
63 CMD_BUILD_INDUSTRY = 47, |
64 |
64 |
65 CMD_BUILD_COMPANY_HQ = 48, |
65 CMD_BUILD_COMPANY_HQ = 48, |
66 CMD_SET_PLAYER_FACE = 49, |
66 CMD_SET_PLAYER_FACE = 49, |
67 CMD_SET_PLAYER_COLOR = 50, |
67 CMD_SET_PLAYER_COLOR = 50, |
68 |
68 |
69 CMD_INCREASE_LOAN = 51, |
69 CMD_INCREASE_LOAN = 51, |
70 CMD_DECREASE_LOAN = 52, |
70 CMD_DECREASE_LOAN = 52, |
71 |
71 |
72 CMD_WANT_ENGINE_PREVIEW = 53, |
72 CMD_WANT_ENGINE_PREVIEW = 53, |
73 |
73 |
74 CMD_NAME_VEHICLE = 54, |
74 CMD_NAME_VEHICLE = 54, |
75 CMD_RENAME_ENGINE = 55, |
75 CMD_RENAME_ENGINE = 55, |
76 CMD_CHANGE_COMPANY_NAME = 56, |
76 CMD_CHANGE_COMPANY_NAME = 56, |
77 CMD_CHANGE_PRESIDENT_NAME = 57, |
77 CMD_CHANGE_PRESIDENT_NAME = 57, |
78 CMD_RENAME_STATION = 58, |
78 CMD_RENAME_STATION = 58, |
79 |
79 |
80 CMD_SELL_AIRCRAFT = 59, |
80 CMD_SELL_AIRCRAFT = 59, |
81 CMD_START_STOP_AIRCRAFT = 60, |
81 CMD_START_STOP_AIRCRAFT = 60, |
82 CMD_BUILD_AIRCRAFT = 61, |
82 CMD_BUILD_AIRCRAFT = 61, |
83 CMD_SEND_AIRCRAFT_TO_HANGAR = 62, |
83 CMD_SEND_AIRCRAFT_TO_HANGAR = 62, |
84 CMD_REFIT_AIRCRAFT = 64, |
84 CMD_REFIT_AIRCRAFT = 64, |
85 |
85 |
86 CMD_PLACE_SIGN = 65, |
86 CMD_PLACE_SIGN = 65, |
87 CMD_RENAME_SIGN = 66, |
87 CMD_RENAME_SIGN = 66, |
88 |
88 |
89 CMD_BUILD_ROAD_VEH = 67, |
89 CMD_BUILD_ROAD_VEH = 67, |
90 CMD_START_STOP_ROADVEH = 68, |
90 CMD_START_STOP_ROADVEH = 68, |
91 CMD_SELL_ROAD_VEH = 69, |
91 CMD_SELL_ROAD_VEH = 69, |
92 CMD_SEND_ROADVEH_TO_DEPOT = 70, |
92 CMD_SEND_ROADVEH_TO_DEPOT = 70, |
93 CMD_TURN_ROADVEH = 71, |
93 CMD_TURN_ROADVEH = 71, |
94 CMD_REFIT_ROAD_VEH = 72, |
94 CMD_REFIT_ROAD_VEH = 72, |
95 |
95 |
96 CMD_PAUSE = 73, |
96 CMD_PAUSE = 73, |
97 |
97 |
98 CMD_BUY_SHARE_IN_COMPANY = 74, |
98 CMD_BUY_SHARE_IN_COMPANY = 74, |
99 CMD_SELL_SHARE_IN_COMPANY = 75, |
99 CMD_SELL_SHARE_IN_COMPANY = 75, |
100 CMD_BUY_COMPANY = 76, |
100 CMD_BUY_COMPANY = 76, |
101 |
101 |
102 CMD_BUILD_TOWN = 77, |
102 CMD_BUILD_TOWN = 77, |
103 |
103 |
104 CMD_RENAME_TOWN = 80, |
104 CMD_RENAME_TOWN = 80, |
105 CMD_DO_TOWN_ACTION = 81, |
105 CMD_DO_TOWN_ACTION = 81, |
106 |
106 |
107 CMD_SET_ROAD_DRIVE_SIDE = 82, |
107 CMD_SET_ROAD_DRIVE_SIDE = 82, |
108 |
108 |
109 CMD_CHANGE_DIFFICULTY_LEVEL = 85, |
109 CMD_CHANGE_DIFFICULTY_LEVEL = 85, |
110 |
110 |
111 CMD_START_STOP_SHIP = 86, |
111 CMD_START_STOP_SHIP = 86, |
112 CMD_SELL_SHIP = 87, |
112 CMD_SELL_SHIP = 87, |
113 CMD_BUILD_SHIP = 88, |
113 CMD_BUILD_SHIP = 88, |
114 CMD_SEND_SHIP_TO_DEPOT = 89, |
114 CMD_SEND_SHIP_TO_DEPOT = 89, |
115 CMD_REFIT_SHIP = 91, |
115 CMD_REFIT_SHIP = 91, |
116 |
116 |
117 CMD_CLONE_ORDER = 99, |
117 CMD_CLONE_ORDER = 99, |
118 CMD_CLEAR_AREA = 100, |
118 CMD_CLEAR_AREA = 100, |
119 |
119 |
120 CMD_MONEY_CHEAT = 102, |
120 CMD_MONEY_CHEAT = 102, |
121 CMD_BUILD_CANAL = 103, |
121 CMD_BUILD_CANAL = 103, |
122 |
122 |
123 CMD_PLAYER_CTRL = 104, // used in multiplayer to create a new player etc. |
123 CMD_PLAYER_CTRL = 104, // used in multiplayer to create a new player etc. |
124 CMD_LEVEL_LAND = 105, // level land |
124 CMD_LEVEL_LAND = 105, // level land |
125 |
125 |
126 CMD_REFIT_RAIL_VEHICLE = 106, |
126 CMD_REFIT_RAIL_VEHICLE = 106, |
127 CMD_RESTORE_ORDER_INDEX = 107, |
127 CMD_RESTORE_ORDER_INDEX = 107, |
128 CMD_BUILD_LOCK = 108, |
128 CMD_BUILD_LOCK = 108, |
129 |
129 |
130 CMD_BUILD_SIGNAL_TRACK = 110, |
130 CMD_BUILD_SIGNAL_TRACK = 110, |
131 CMD_REMOVE_SIGNAL_TRACK = 111, |
131 CMD_REMOVE_SIGNAL_TRACK = 111, |
132 |
132 |
133 CMD_GIVE_MONEY = 113, |
133 CMD_GIVE_MONEY = 113, |
134 CMD_CHANGE_PATCH_SETTING = 114, |
134 CMD_CHANGE_PATCH_SETTING = 114, |
135 |
135 |
136 CMD_REPLACE_VEHICLE = 115, |
136 CMD_REPLACE_VEHICLE = 115, |
137 |
137 |
138 CMD_CLONE_VEHICLE = 116, |
138 CMD_CLONE_VEHICLE = 116, |
139 |
139 |
140 }; |
140 }; |
141 |
141 |
142 enum { |
142 enum { |
143 DC_EXEC = 1, |
143 DC_EXEC = 0x01, |
144 DC_AUTO = 2, // don't allow building on structures |
144 DC_AUTO = 0x02, // don't allow building on structures |
145 DC_QUERY_COST = 4, // query cost only, don't build. |
145 DC_QUERY_COST = 0x04, // query cost only, don't build. |
146 DC_NO_WATER = 8, // don't allow building on water |
146 DC_NO_WATER = 0x08, // don't allow building on water |
147 DC_NO_RAIL_OVERLAP = 0x10, // don't allow overlap of rails (used in buildrail) |
147 DC_NO_RAIL_OVERLAP = 0x10, // don't allow overlap of rails (used in buildrail) |
148 DC_AI_BUILDING = 0x20, // special building rules for AI |
148 DC_AI_BUILDING = 0x20, // special building rules for AI |
149 DC_NO_TOWN_RATING = 0x40, // town rating does not disallow you from building |
149 DC_NO_TOWN_RATING = 0x40, // town rating does not disallow you from building |
150 DC_FORCETEST = 0x80, // force test too. |
150 DC_FORCETEST = 0x80, // force test too. |
151 |
151 |
152 CMD_ERROR = ((int32)0x80000000), |
152 CMD_ERROR = ((int32)0x80000000), |
153 }; |
153 }; |
154 |
154 |
155 #define CMD_MSG(x) ((x)<<16) |
155 #define CMD_MSG(x) ((x)<<16) |
156 |
156 |
157 enum { |
157 enum { |
158 CMD_AUTO = 0x200, |
158 CMD_AUTO = 0x0200, |
159 CMD_NO_WATER = 0x400, |
159 CMD_NO_WATER = 0x0400, |
160 CMD_NETWORK_COMMAND = 0x800, // execute the command without sending it on the network |
160 CMD_NETWORK_COMMAND = 0x0800, // execute the command without sending it on the network |
161 CMD_NO_TEST_IF_IN_NETWORK = 0x1000, // When enabled, the command will bypass the no-DC_EXEC round if in network |
161 CMD_NO_TEST_IF_IN_NETWORK = 0x1000, // When enabled, the command will bypass the no-DC_EXEC round if in network |
162 CMD_SHOW_NO_ERROR = 0x2000, |
162 CMD_SHOW_NO_ERROR = 0x2000, |
163 }; |
163 }; |
164 |
164 |
165 /** Command flags for the command table |
165 /** Command flags for the command table |
166 * @see _command_proc_table |
166 * @see _command_proc_table |
167 */ |
167 */ |