OpenTTD Source  13.2.1
command_type.h
Go to the documentation of this file.
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 
10 #ifndef COMMAND_TYPE_H
11 #define COMMAND_TYPE_H
12 
13 #include "economy_type.h"
14 #include "strings_type.h"
15 #include "tile_type.h"
16 #include <vector>
17 
18 struct GRFFile;
19 
24 class CommandCost {
28  bool success;
31 
32  static uint32 textref_stack[16];
33 
34 public:
39 
44 
50 
57 
58 
63  inline void AddCost(const Money &cost)
64  {
65  this->cost += cost;
66  }
67 
68  void AddCost(const CommandCost &cmd_cost);
69 
74  inline void MultiplyCost(int factor)
75  {
76  this->cost *= factor;
77  }
78 
83  inline Money GetCost() const
84  {
85  return this->cost;
86  }
87 
93  {
94  return this->expense_type;
95  }
96 
102  {
103  assert(message != INVALID_STRING_ID);
104  this->success = false;
105  this->message = message;
106  }
107 
108  void UseTextRefStack(const GRFFile *grffile, uint num_registers);
109 
115  {
116  return this->textref_stack_grffile;
117  }
118 
123  uint GetTextRefStackSize() const
124  {
125  return this->textref_stack_size;
126  }
127 
132  const uint32 *GetTextRefStack() const
133  {
134  return textref_stack;
135  }
136 
142  {
143  if (this->success) return INVALID_STRING_ID;
144  return this->message;
145  }
146 
151  inline bool Succeeded() const
152  {
153  return this->success;
154  }
155 
160  inline bool Failed() const
161  {
162  return !this->success;
163  }
164 };
165 
176 enum Commands : uint16 {
191 
194 
198 
206 
208 
210 
213 
215 
221 
225 
231 
233 
236 
239 
242 
245 
252 
255 
257 
259 
263 
273 
277 
281 
302 
304 
306 
309 
313 
315 
322 
331 
338 
340 
346 
348 };
349 
356  DC_NONE = 0x000,
357  DC_EXEC = 0x001,
358  DC_AUTO = 0x002,
359  DC_QUERY_COST = 0x004,
360  DC_NO_WATER = 0x008,
361  // 0x010 is unused
363  DC_BANKRUPT = 0x040,
364  DC_AUTOREPLACE = 0x080,
366  DC_ALL_TILES = 0x200,
369 };
371 
372 
378  CMD_SERVER = 0x001,
379  CMD_SPECTATOR = 0x002,
380  CMD_OFFLINE = 0x004,
381  CMD_AUTO = 0x008,
382  CMD_ALL_TILES = 0x010,
383  CMD_NO_TEST = 0x020,
384  CMD_NO_WATER = 0x040,
385  CMD_CLIENT_ID = 0x080,
386  CMD_DEITY = 0x100,
387  CMD_STR_CTRL = 0x200,
388  CMD_NO_EST = 0x400,
389  CMD_LOCATION = 0x800,
390 };
392 
393 
404 
406 };
407 
414 };
415 
416 
417 template <typename T> struct CommandFunctionTraitHelper;
418 template <typename... Targs>
420  using Args = std::tuple<std::decay_t<Targs>...>;
421  using RetTypes = void;
422  using CbArgs = Args;
423  using CbProcType = void(*)(Commands, const CommandCost &);
424 };
425 template <template <typename...> typename Tret, typename... Tretargs, typename... Targs>
426 struct CommandFunctionTraitHelper<Tret<CommandCost, Tretargs...>(*)(DoCommandFlag, Targs...)> {
427  using Args = std::tuple<std::decay_t<Targs>...>;
428  using RetTypes = std::tuple<std::decay_t<Tretargs>...>;
429  using CbArgs = std::tuple<std::decay_t<Tretargs>..., std::decay_t<Targs>...>;
430  using CbProcType = void(*)(Commands, const CommandCost &, Tretargs...);
431 };
432 
434 template <Commands Tcmd> struct CommandTraits;
435 
436 #define DEF_CMD_TRAIT(cmd_, proc_, flags_, type_) \
437  template<> struct CommandTraits<cmd_> { \
438  using ProcType = decltype(&proc_); \
439  using Args = typename CommandFunctionTraitHelper<ProcType>::Args; \
440  using RetTypes = typename CommandFunctionTraitHelper<ProcType>::RetTypes; \
441  using CbArgs = typename CommandFunctionTraitHelper<ProcType>::CbArgs; \
442  using RetCallbackProc = typename CommandFunctionTraitHelper<ProcType>::CbProcType; \
443  static constexpr Commands cmd = cmd_; \
444  static constexpr auto &proc = proc_; \
445  static constexpr CommandFlags flags = (CommandFlags)(flags_); \
446  static constexpr CommandType type = type_; \
447  static inline constexpr const char *name = #proc_; \
448  };
449 
451 typedef std::vector<byte> CommandDataBuffer;
452 
465 typedef void CommandCallback(Commands cmd, const CommandCost &result, TileIndex tile);
466 
481 typedef void CommandCallbackData(Commands cmd, const CommandCost &result, const CommandDataBuffer &data, CommandDataBuffer result_data);
482 
483 #endif /* COMMAND_TYPE_H */
CMD_CHANGE_TIMETABLE
@ CMD_CHANGE_TIMETABLE
change the timetable for a vehicle
Definition: command_type.h:333
CMD_BUILD_SIGNAL_TRACK
@ CMD_BUILD_SIGNAL_TRACK
add signals along a track (by dragging)
Definition: command_type.h:307
CMD_DO_TOWN_ACTION
@ CMD_DO_TOWN_ACTION
do a action from the town detail window (like advertises or bribe)
Definition: command_type.h:266
CMD_MODIFY_ORDER
@ CMD_MODIFY_ORDER
modify an order (like set full-load)
Definition: command_type.h:227
CMD_BUILD_DOCK
@ CMD_BUILD_DOCK
build a dock
Definition: command_type.h:209
CMD_CLEAR_ORDER_BACKUP
@ CMD_CLEAR_ORDER_BACKUP
clear the order backup of a given user/tile
Definition: command_type.h:226
CMD_SET_GOAL_COMPLETED
@ CMD_SET_GOAL_COMPLETED
update goal completed status of a goal
Definition: command_type.h:289
CMD_RENAME_STATION
@ CMD_RENAME_STATION
rename a station
Definition: command_type.h:250
CMD_LEVEL_LAND
@ CMD_LEVEL_LAND
level land
Definition: command_type.h:303
CMD_BULK_CHANGE_TIMETABLE
@ CMD_BULK_CHANGE_TIMETABLE
change the timetable for all orders of a vehicle
Definition: command_type.h:334
CMD_BUILD_OBJECT
@ CMD_BUILD_OBJECT
build an object
Definition: command_type.h:188
INVALID_EXPENSES
@ INVALID_EXPENSES
Invalid expense type.
Definition: economy_type.h:172
CMD_SET_COMPANY_COLOUR
@ CMD_SET_COMPANY_COLOUR
set the colour of the company
Definition: command_type.h:238
CommandCost::MakeError
void MakeError(StringID message)
Makes this CommandCost behave like an error command.
Definition: command_type.h:101
CMD_SET_GROUP_FLAG
@ CMD_SET_GROUP_FLAG
set/clear a flag for a group
Definition: command_type.h:329
CMD_REMOVE_ROAD_STOP
@ CMD_REMOVE_ROAD_STOP
remove a road stop
Definition: command_type.h:200
CMDPL_NO_ACTIONS
@ CMDPL_NO_ACTIONS
No user actions may be executed.
Definition: command_type.h:410
CMD_SET_GOAL_TEXT
@ CMD_SET_GOAL_TEXT
update goal text of a goal
Definition: command_type.h:287
CMD_BUILD_OBJECT_AREA
@ CMD_BUILD_OBJECT_AREA
build an area of objects
Definition: command_type.h:189
CMD_BUILD_ROAD_DEPOT
@ CMD_BUILD_ROAD_DEPOT
build a road depot
Definition: command_type.h:204
CMD_SET_STORY_PAGE_TITLE
@ CMD_SET_STORY_PAGE_TITLE
update title of a story page
Definition: command_type.h:295
Commands
Commands
List of commands.
Definition: command_type.h:176
CommandDataBuffer
std::vector< byte > CommandDataBuffer
Storage buffer for serialized command data.
Definition: command_type.h:451
CMD_FORCE_TRAIN_PROCEED
@ CMD_FORCE_TRAIN_PROCEED
proceed a train to pass a red signal
Definition: command_type.h:223
CommandCost::MultiplyCost
void MultiplyCost(int factor)
Multiplies the cost of the command by the given factor.
Definition: command_type.h:74
CMD_REMOVE_SIGNAL_TRACK
@ CMD_REMOVE_SIGNAL_TRACK
remove signals along a track (by dragging)
Definition: command_type.h:308
CMD_CREATE_SUBSIDY
@ CMD_CREATE_SUBSIDY
create a new subsidy
Definition: command_type.h:282
CMD_CHANGE_COMPANY_SETTING
@ CMD_CHANGE_COMPANY_SETTING
change a company setting
Definition: command_type.h:312
CMD_OFFLINE
@ CMD_OFFLINE
the command cannot be executed in a multiplayer game; single-player only
Definition: command_type.h:380
CMD_RENAME_TOWN
@ CMD_RENAME_TOWN
rename a town
Definition: command_type.h:265
CMDT_VEHICLE_CONSTRUCTION
@ CMDT_VEHICLE_CONSTRUCTION
Construction, modification (incl. refit) and destruction of vehicles.
Definition: command_type.h:396
CMD_CLEAR_AREA
@ CMD_CLEAR_AREA
clear an area
Definition: command_type.h:276
CMD_BUILD_ROAD_STOP
@ CMD_BUILD_ROAD_STOP
build a road stop
Definition: command_type.h:199
CMD_AUTOREPLACE_VEHICLE
@ CMD_AUTOREPLACE_VEHICLE
replace/renew a vehicle while it is in a depot
Definition: command_type.h:319
CMD_BUILD_LOCK
@ CMD_BUILD_LOCK
build a lock
Definition: command_type.h:305
CMD_LOCATION
@ CMD_LOCATION
the command has implicit location argument.
Definition: command_type.h:389
CMD_DELETE_ORDER
@ CMD_DELETE_ORDER
delete an order
Definition: command_type.h:229
CommandType
CommandType
Types of commands we have.
Definition: command_type.h:394
CMD_UPDATE_LEAGUE_TABLE_ELEMENT_DATA
@ CMD_UPDATE_LEAGUE_TABLE_ELEMENT_DATA
update the data fields of a league table element
Definition: command_type.h:343
CMD_BUILD_RAIL_WAYPOINT
@ CMD_BUILD_RAIL_WAYPOINT
build a waypoint
Definition: command_type.h:195
TileIndex
The index/ID of a Tile.
Definition: tile_type.h:85
CMD_CUSTOM_NEWS_ITEM
@ CMD_CUSTOM_NEWS_ITEM
create a custom news message
Definition: command_type.h:284
CMD_BUILD_RAIL_STATION
@ CMD_BUILD_RAIL_STATION
build a rail station
Definition: command_type.h:183
CMD_CONVERT_ROAD
@ CMD_CONVERT_ROAD
convert a road type
Definition: command_type.h:205
CMD_NO_EST
@ CMD_NO_EST
the command is never estimated.
Definition: command_type.h:388
CMD_BUILD_RAILROAD_TRACK
@ CMD_BUILD_RAILROAD_TRACK
build a rail track
Definition: command_type.h:177
CMD_SKIP_TO_ORDER
@ CMD_SKIP_TO_ORDER
skip an order to the next of specific one
Definition: command_type.h:228
CMD_BUILD_CANAL
@ CMD_BUILD_CANAL
build a canal
Definition: command_type.h:280
CMD_PLACE_SIGN
@ CMD_PLACE_SIGN
place a sign
Definition: command_type.h:253
CMD_CREATE_STORY_PAGE_ELEMENT
@ CMD_CREATE_STORY_PAGE_ELEMENT
create a new story page element
Definition: command_type.h:293
DC_NO_WATER
@ DC_NO_WATER
don't allow building on water
Definition: command_type.h:360
CMD_REMOVE_STORY_PAGE
@ CMD_REMOVE_STORY_PAGE
remove a story page
Definition: command_type.h:298
DC_ALL_TILES
@ DC_ALL_TILES
allow this command also on MP_VOID tiles
Definition: command_type.h:366
CommandCallback
void CommandCallback(Commands cmd, const CommandCost &result, TileIndex tile)
Define a callback function for the client, after the command is finished.
Definition: command_type.h:465
CMD_BUILD_BUOY
@ CMD_BUILD_BUOY
build a buoy
Definition: command_type.h:212
CMDT_CHEAT
@ CMDT_CHEAT
A cheat of some sorts.
Definition: command_type.h:403
CMDT_COMPANY_SETTING
@ CMDT_COMPANY_SETTING
Changing settings related to a company.
Definition: command_type.h:401
CMD_RENAME_WAYPOINT
@ CMD_RENAME_WAYPOINT
rename a waypoint
Definition: command_type.h:196
CMD_SET_COMPANY_MANAGER_FACE
@ CMD_SET_COMPANY_MANAGER_FACE
set the manager's face of the company
Definition: command_type.h:237
CMD_REMOVE_STORY_PAGE_ELEMENT
@ CMD_REMOVE_STORY_PAGE_ELEMENT
remove a story page element
Definition: command_type.h:299
strings_type.h
CMD_WANT_ENGINE_PREVIEW
@ CMD_WANT_ENGINE_PREVIEW
confirm the preview of an engine
Definition: command_type.h:243
CommandCost::GetTextRefStack
const uint32 * GetTextRefStack() const
Returns a pointer to the values for the TextRefStack of the error message.
Definition: command_type.h:132
CMD_CHANGE_SERVICE_INT
@ CMD_CHANGE_SERVICE_INT
change the server interval of a vehicle
Definition: command_type.h:232
DC_EXEC
@ DC_EXEC
execute the given command
Definition: command_type.h:357
CommandCost::GetErrorMessage
StringID GetErrorMessage() const
Returns the error message of a command.
Definition: command_type.h:141
CommandCost::CommandCost
CommandCost(ExpensesType ex_t)
Creates a command cost with given expense type and start cost of 0.
Definition: command_type.h:49
CMD_INCREASE_LOAN
@ CMD_INCREASE_LOAN
increase the loan from the bank
Definition: command_type.h:240
CommandCost::textref_stack
static uint32 textref_stack[16]
Values to put on the TextRefStack for the error message.
Definition: command_type.h:32
DoCommandFlag
DoCommandFlag
List of flags for a command.
Definition: command_type.h:355
CommandTraits
Defines the traits of a command.
Definition: command_type.h:434
CMD_GIVE_MONEY
@ CMD_GIVE_MONEY
give money to another company
Definition: command_type.h:310
CMD_END
@ CMD_END
Must ALWAYS be on the end of this list!! (period)
Definition: command_type.h:347
CMD_TOWN_CARGO_GOAL
@ CMD_TOWN_CARGO_GOAL
set the goal of a cargo for a town
Definition: command_type.h:267
CommandCost::Succeeded
bool Succeeded() const
Did this command succeed?
Definition: command_type.h:151
CMD_DEITY
@ CMD_DEITY
the command may be executed by COMPANY_DEITY
Definition: command_type.h:386
CMD_BUILD_BRIDGE
@ CMD_BUILD_BRIDGE
build a bridge
Definition: command_type.h:182
CMD_SET_GROUP_LIVERY
@ CMD_SET_GROUP_LIVERY
set the livery for a group
Definition: command_type.h:330
CMD_UPDATE_LEAGUE_TABLE_ELEMENT_SCORE
@ CMD_UPDATE_LEAGUE_TABLE_ELEMENT_SCORE
update the score of a league table element
Definition: command_type.h:344
CMDT_END
@ CMDT_END
Magic end marker.
Definition: command_type.h:405
CommandCost::expense_type
ExpensesType expense_type
the type of expence as shown on the finances view
Definition: command_type.h:25
CMD_TOWN_GROWTH_RATE
@ CMD_TOWN_GROWTH_RATE
set the town growth rate
Definition: command_type.h:268
CMD_BUILD_TRAIN_DEPOT
@ CMD_BUILD_TRAIN_DEPOT
build a train depot
Definition: command_type.h:184
CMD_BUY_COMPANY
@ CMD_BUY_COMPANY
buy a company which is bankrupt
Definition: command_type.h:262
CommandFlags
CommandFlags
Command flags for the command table _command_proc_table.
Definition: command_type.h:377
CommandCost::UseTextRefStack
void UseTextRefStack(const GRFFile *grffile, uint num_registers)
Activate usage of the NewGRF TextRefStack for the error message.
Definition: command.cpp:437
CommandCost
Common return value for all commands.
Definition: command_type.h:24
CommandCost::textref_stack_size
uint textref_stack_size
Number of uint32 values to put on the TextRefStack for the error message.
Definition: command_type.h:30
CMDT_OTHER_MANAGEMENT
@ CMDT_OTHER_MANAGEMENT
Renaming stuff, changing company colours, placing signs, etc.
Definition: command_type.h:400
CMD_EXPAND_TOWN
@ CMD_EXPAND_TOWN
expand a town
Definition: command_type.h:271
CMD_REMOVE_FROM_RAIL_WAYPOINT
@ CMD_REMOVE_FROM_RAIL_WAYPOINT
remove a (rectangle of) tiles from a rail waypoint
Definition: command_type.h:197
CommandCost::GetExpensesType
ExpensesType GetExpensesType() const
The expense type of the cost.
Definition: command_type.h:92
CMD_REVERSE_TRAIN_DIRECTION
@ CMD_REVERSE_TRAIN_DIRECTION
turn a train around
Definition: command_type.h:224
CMD_AUTO
@ CMD_AUTO
set the DC_AUTO flag on this command
Definition: command_type.h:381
CommandCost::GetTextRefStackSize
uint GetTextRefStackSize() const
Returns the number of uint32 values for the TextRefStack of the error message.
Definition: command_type.h:123
CMD_SET_TIMETABLE_START
@ CMD_SET_TIMETABLE_START
set the date that a timetable should start
Definition: command_type.h:337
CMD_CHANGE_SETTING
@ CMD_CHANGE_SETTING
change a setting
Definition: command_type.h:311
CMD_CREATE_STORY_PAGE
@ CMD_CREATE_STORY_PAGE
create a new story page
Definition: command_type.h:292
CommandCost::Failed
bool Failed() const
Did this command fail?
Definition: command_type.h:160
CMD_SELL_SHARE_IN_COMPANY
@ CMD_SELL_SHARE_IN_COMPANY
sell a share from a company
Definition: command_type.h:261
CMDPL_NO_LANDSCAPING
@ CMDPL_NO_LANDSCAPING
No landscaping actions may be executed.
Definition: command_type.h:412
CommandCallbackData
void CommandCallbackData(Commands cmd, const CommandCost &result, const CommandDataBuffer &data, CommandDataBuffer result_data)
Define a callback function for the client, after the command is finished.
Definition: command_type.h:481
CMD_BUILD_SINGLE_RAIL
@ CMD_BUILD_SINGLE_RAIL
build a single rail track
Definition: command_type.h:179
CommandCost::GetTextRefStackGRF
const GRFFile * GetTextRefStackGRF() const
Returns the NewGRF providing the TextRefStack of the error message.
Definition: command_type.h:114
CMD_COMPANY_CTRL
@ CMD_COMPANY_CTRL
used in multiplayer to create a new companies etc.
Definition: command_type.h:283
CMDT_ROUTE_MANAGEMENT
@ CMDT_ROUTE_MANAGEMENT
Modifications to route management (orders, groups, etc).
Definition: command_type.h:399
CMD_CLONE_ORDER
@ CMD_CLONE_ORDER
clone (and share) an order
Definition: command_type.h:275
CommandCost::CommandCost
CommandCost(StringID msg)
Creates a command return value the is failed with the given message.
Definition: command_type.h:43
CMD_REMOVE_FROM_RAIL_STATION
@ CMD_REMOVE_FROM_RAIL_STATION
remove a (rectangle of) tiles from a rail station
Definition: command_type.h:192
CMD_BUILD_TUNNEL
@ CMD_BUILD_TUNNEL
build a tunnel
Definition: command_type.h:190
DC_AUTOREPLACE
@ DC_AUTOREPLACE
autoreplace/autorenew is in progress, this shall disable vehicle limits when building,...
Definition: command_type.h:364
CMD_CLONE_VEHICLE
@ CMD_CLONE_VEHICLE
clone a vehicle
Definition: command_type.h:316
CMD_SEND_VEHICLE_TO_DEPOT
@ CMD_SEND_VEHICLE_TO_DEPOT
send a vehicle to a depot
Definition: command_type.h:219
CMD_MASS_START_STOP
@ CMD_MASS_START_STOP
start/stop all vehicles (in a depot)
Definition: command_type.h:318
CMD_CLIENT_ID
@ CMD_CLIENT_ID
set p2 with the ClientID of the sending client.
Definition: command_type.h:385
CMD_BUILD_SHIP_DEPOT
@ CMD_BUILD_SHIP_DEPOT
build a ship depot
Definition: command_type.h:211
CMD_INSERT_ORDER
@ CMD_INSERT_ORDER
insert a new order
Definition: command_type.h:230
CommandCost::GetCost
Money GetCost() const
The costs as made up to this moment.
Definition: command_type.h:83
CMD_SET_VEHICLE_VISIBILITY
@ CMD_SET_VEHICLE_VISIBILITY
hide or unhide a vehicle in the build vehicle and autoreplace GUIs
Definition: command_type.h:220
CMD_SELL_VEHICLE
@ CMD_SELL_VEHICLE
sell a vehicle
Definition: command_type.h:217
DC_NO_TEST_TOWN_RATING
@ DC_NO_TEST_TOWN_RATING
town rating does not disallow you from building
Definition: command_type.h:362
CMD_INDUSTRY_CTRL
@ CMD_INDUSTRY_CTRL
change industry properties
Definition: command_type.h:235
CMD_RENAME_VEHICLE
@ CMD_RENAME_VEHICLE
rename a whole vehicle
Definition: command_type.h:246
CommandCost::AddCost
void AddCost(const Money &cost)
Adds the given cost to the cost of the command.
Definition: command_type.h:63
CMD_SET_STORY_PAGE_DATE
@ CMD_SET_STORY_PAGE_DATE
update date of a story page
Definition: command_type.h:296
CMD_ENGINE_CTRL
@ CMD_ENGINE_CTRL
control availability of the engine for companies
Definition: command_type.h:244
CMD_REMOVE_GOAL
@ CMD_REMOVE_GOAL
remove a goal
Definition: command_type.h:286
CMD_MOVE_RAIL_VEHICLE
@ CMD_MOVE_RAIL_VEHICLE
move a rail vehicle (in the depot)
Definition: command_type.h:222
CMD_MOVE_ORDER
@ CMD_MOVE_ORDER
move an order
Definition: command_type.h:332
CMD_PAUSE
@ CMD_PAUSE
pause the game
Definition: command_type.h:258
DC_BANKRUPT
@ DC_BANKRUPT
company bankrupts, skip money check, skip vehicle on tile check in some cases
Definition: command_type.h:363
CMD_BUILD_ROAD
@ CMD_BUILD_ROAD
build a "half" road
Definition: command_type.h:203
CMD_RENAME_SIGN
@ CMD_RENAME_SIGN
rename a sign
Definition: command_type.h:254
CMD_GOAL_QUESTION
@ CMD_GOAL_QUESTION
ask a goal related question
Definition: command_type.h:290
CMD_SET_AUTOREPLACE
@ CMD_SET_AUTOREPLACE
set an autoreplace entry
Definition: command_type.h:314
CMD_DELETE_GROUP
@ CMD_DELETE_GROUP
delete a group
Definition: command_type.h:324
CMD_CREATE_GOAL
@ CMD_CREATE_GOAL
create a new goal
Definition: command_type.h:285
CommandCost::textref_stack_grffile
const GRFFile * textref_stack_grffile
NewGRF providing the TextRefStack content.
Definition: command_type.h:29
CMD_BUILD_AIRPORT
@ CMD_BUILD_AIRPORT
build an airport
Definition: command_type.h:207
CommandPauseLevel
CommandPauseLevel
Different command pause levels.
Definition: command_type.h:409
CMD_RENAME_PRESIDENT
@ CMD_RENAME_PRESIDENT
change the president name
Definition: command_type.h:249
StringID
uint32 StringID
Numeric value that represents a string, independent of the selected language.
Definition: strings_type.h:16
CMD_SET_GOAL_PROGRESS
@ CMD_SET_GOAL_PROGRESS
update goal progress text of a goal
Definition: command_type.h:288
CMD_GOAL_QUESTION_ANSWER
@ CMD_GOAL_QUESTION_ANSWER
answer(s) to CMD_GOAL_QUESTION
Definition: command_type.h:291
CMD_TERRAFORM_LAND
@ CMD_TERRAFORM_LAND
terraform a tile
Definition: command_type.h:187
CMDT_VEHICLE_MANAGEMENT
@ CMDT_VEHICLE_MANAGEMENT
Stopping, starting, sending to depot, turning around, replace orders etc.
Definition: command_type.h:398
CMD_START_STOP_VEHICLE
@ CMD_START_STOP_VEHICLE
start or stop a vehicle
Definition: command_type.h:317
CMD_NO_WATER
@ CMD_NO_WATER
set the DC_NO_WATER flag on this command
Definition: command_type.h:384
CommandFunctionTraitHelper
Definition: command_type.h:417
CMD_OPEN_CLOSE_AIRPORT
@ CMD_OPEN_CLOSE_AIRPORT
open/close an airport to incoming aircraft
Definition: command_type.h:339
CMD_BUILD_LONG_ROAD
@ CMD_BUILD_LONG_ROAD
build a complete road (not a "half" one)
Definition: command_type.h:201
DC_FORCE_CLEAR_TILE
@ DC_FORCE_CLEAR_TILE
do not only remove the object on the tile, but also clear any water left on it
Definition: command_type.h:368
CMD_SHOW_STORY_PAGE
@ CMD_SHOW_STORY_PAGE
show a story page
Definition: command_type.h:297
CommandCost::message
StringID message
Warning message for when success is unset.
Definition: command_type.h:27
CMD_REMOVE_SINGLE_RAIL
@ CMD_REMOVE_SINGLE_RAIL
remove a single rail track
Definition: command_type.h:180
CMD_ALL_TILES
@ CMD_ALL_TILES
allow this command also on MP_VOID tiles
Definition: command_type.h:382
CMD_RENAME_ENGINE
@ CMD_RENAME_ENGINE
rename a engine (in the engine list)
Definition: command_type.h:247
tile_type.h
CMD_DEPOT_SELL_ALL_VEHICLES
@ CMD_DEPOT_SELL_ALL_VEHICLES
sell all vehicles which are in a given depot
Definition: command_type.h:320
CMD_RENAME_DEPOT
@ CMD_RENAME_DEPOT
rename a depot
Definition: command_type.h:251
DC_NO_CARGO_CAP_CHECK
@ DC_NO_CARGO_CAP_CHECK
when autoreplace/autorenew is in progress, this shall prevent truncating the amount of cargo in the v...
Definition: command_type.h:365
CMD_DELETE_TOWN
@ CMD_DELETE_TOWN
delete a town
Definition: command_type.h:272
CMD_DECREASE_LOAN
@ CMD_DECREASE_LOAN
decrease the loan from the bank
Definition: command_type.h:241
CommandCost::CommandCost
CommandCost(ExpensesType ex_t, const Money &cst)
Creates a command return value with the given start cost and expense type.
Definition: command_type.h:56
CMDT_SERVER_SETTING
@ CMDT_SERVER_SETTING
Pausing/removing companies/server settings.
Definition: command_type.h:402
CMD_LANDSCAPE_CLEAR
@ CMD_LANDSCAPE_CLEAR
demolish a tile
Definition: command_type.h:181
CMD_BUILD_SIGNALS
@ CMD_BUILD_SIGNALS
build a signal
Definition: command_type.h:185
CMD_TURN_ROADVEH
@ CMD_TURN_ROADVEH
turn a road vehicle around
Definition: command_type.h:256
CMD_BUILD_INDUSTRY
@ CMD_BUILD_INDUSTRY
build a new industry
Definition: command_type.h:234
CMD_UPDATE_STORY_PAGE_ELEMENT
@ CMD_UPDATE_STORY_PAGE_ELEMENT
update a story page element
Definition: command_type.h:294
CommandCost::CommandCost
CommandCost()
Creates a command cost return with no cost and no error.
Definition: command_type.h:38
DC_AUTO
@ DC_AUTO
don't allow building on structures
Definition: command_type.h:358
CMD_NO_TEST
@ CMD_NO_TEST
the command's output may differ between test and execute due to town rating changes etc.
Definition: command_type.h:383
DC_NO_MODIFY_TOWN_RATING
@ DC_NO_MODIFY_TOWN_RATING
do not change town rating
Definition: command_type.h:367
CMD_MONEY_CHEAT
@ CMD_MONEY_CHEAT
do the money cheat
Definition: command_type.h:278
DECLARE_ENUM_AS_BIT_SET
DECLARE_ENUM_AS_BIT_SET(GenderEthnicity) enum CompanyManagerFaceVariable
Bitgroups of the CompanyManagerFace variable.
Definition: company_manager_face.h:29
CMD_ORDER_REFIT
@ CMD_ORDER_REFIT
change the refit information of an order (for "goto depot" )
Definition: command_type.h:274
CMD_SCROLL_VIEWPORT
@ CMD_SCROLL_VIEWPORT
scroll main viewport of players
Definition: command_type.h:300
CommandCost::cost
Money cost
The cost of this action.
Definition: command_type.h:26
CMD_CREATE_GROUP
@ CMD_CREATE_GROUP
create a new group
Definition: command_type.h:323
CMD_ADD_VEHICLE_GROUP
@ CMD_ADD_VEHICLE_GROUP
add a vehicle to a group
Definition: command_type.h:326
CMD_DEPOT_MASS_AUTOREPLACE
@ CMD_DEPOT_MASS_AUTOREPLACE
force the autoreplace to take action in a given depot
Definition: command_type.h:321
CMD_CREATE_LEAGUE_TABLE
@ CMD_CREATE_LEAGUE_TABLE
create a new league table
Definition: command_type.h:341
CMD_BUILD_VEHICLE
@ CMD_BUILD_VEHICLE
build a vehicle
Definition: command_type.h:216
CMD_REMOVE_LONG_ROAD
@ CMD_REMOVE_LONG_ROAD
remove a complete road (not a "half" one)
Definition: command_type.h:202
CMDPL_ALL_ACTIONS
@ CMDPL_ALL_ACTIONS
All actions may be executed.
Definition: command_type.h:413
OverflowSafeInt< int64 >
CMD_STORY_PAGE_BUTTON
@ CMD_STORY_PAGE_BUTTON
selection via story page button
Definition: command_type.h:301
CMD_ALTER_GROUP
@ CMD_ALTER_GROUP
alter a group
Definition: command_type.h:325
CMD_PLANT_TREE
@ CMD_PLANT_TREE
plant a tree
Definition: command_type.h:214
CMD_REMOVE_RAILROAD_TRACK
@ CMD_REMOVE_RAILROAD_TRACK
remove a rail track
Definition: command_type.h:178
CMD_CREATE_LEAGUE_TABLE_ELEMENT
@ CMD_CREATE_LEAGUE_TABLE_ELEMENT
create a new element in a league table
Definition: command_type.h:342
DC_NONE
@ DC_NONE
no flag is set
Definition: command_type.h:356
CMD_REFIT_VEHICLE
@ CMD_REFIT_VEHICLE
refit the cargo space of a vehicle
Definition: command_type.h:218
CMD_REMOVE_ALL_VEHICLES_GROUP
@ CMD_REMOVE_ALL_VEHICLES_GROUP
remove all vehicles from a group
Definition: command_type.h:328
CMD_SERVER
@ CMD_SERVER
the command can only be initiated by the server
Definition: command_type.h:378
CMD_SPECTATOR
@ CMD_SPECTATOR
the command may be initiated by a spectator
Definition: command_type.h:379
DC_QUERY_COST
@ DC_QUERY_COST
query cost only, don't build.
Definition: command_type.h:359
CMD_STR_CTRL
@ CMD_STR_CTRL
the command's string may contain control strings
Definition: command_type.h:387
CMD_CHANGE_BANK_BALANCE
@ CMD_CHANGE_BANK_BALANCE
change bank balance to charge costs or give money from a GS
Definition: command_type.h:279
ExpensesType
ExpensesType
Types of expenses.
Definition: economy_type.h:157
CMD_ADD_SHARED_VEHICLE_GROUP
@ CMD_ADD_SHARED_VEHICLE_GROUP
add all other shared vehicles to a group which are missing
Definition: command_type.h:327
economy_type.h
CMD_REMOVE_SIGNALS
@ CMD_REMOVE_SIGNALS
remove a signal
Definition: command_type.h:186
CMD_BUY_SHARE_IN_COMPANY
@ CMD_BUY_SHARE_IN_COMPANY
buy a share from a company
Definition: command_type.h:260
CMD_RENAME_COMPANY
@ CMD_RENAME_COMPANY
change the company name
Definition: command_type.h:248
CMD_SET_VEHICLE_ON_TIME
@ CMD_SET_VEHICLE_ON_TIME
set the vehicle on time feature (timetable)
Definition: command_type.h:335
CMD_TOWN_RATING
@ CMD_TOWN_RATING
set rating of a company in a town
Definition: command_type.h:269
CMD_FOUND_TOWN
@ CMD_FOUND_TOWN
found a town
Definition: command_type.h:264
CMDPL_NO_CONSTRUCTION
@ CMDPL_NO_CONSTRUCTION
No construction actions may be executed.
Definition: command_type.h:411
CMD_TOWN_SET_TEXT
@ CMD_TOWN_SET_TEXT
set the custom text of a town
Definition: command_type.h:270
CMD_AUTOFILL_TIMETABLE
@ CMD_AUTOFILL_TIMETABLE
autofill the timetable
Definition: command_type.h:336
CMD_REMOVE_LEAGUE_TABLE_ELEMENT
@ CMD_REMOVE_LEAGUE_TABLE_ELEMENT
remove a league table element
Definition: command_type.h:345
CMDT_MONEY_MANAGEMENT
@ CMDT_MONEY_MANAGEMENT
Management of money, i.e. loans and shares.
Definition: command_type.h:397
CMD_CONVERT_RAIL
@ CMD_CONVERT_RAIL
convert a rail type
Definition: command_type.h:193
CMDT_LANDSCAPE_CONSTRUCTION
@ CMDT_LANDSCAPE_CONSTRUCTION
Construction and destruction of objects on the map.
Definition: command_type.h:395
INVALID_STRING_ID
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
Definition: strings_type.h:17
GRFFile
Dynamic data of a loaded NewGRF.
Definition: newgrf.h:106
CommandCost::success
bool success
Whether the comment went fine up to this moment.
Definition: command_type.h:28