annotate src/command.cpp @ 11090:df23c4e04638 draft

(svn r15434) -Codechange: bit of type safety for the DC_xxx flags.
author rubidium <rubidium@openttd.org>
date Mon, 09 Feb 2009 21:20:05 +0000
parents 8da1855e9f14
children 82c90cd591ab
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
2
9111
d48433370037 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium <rubidium@openttd.org>
parents: 9061
diff changeset
3 /** @file command.cpp Handling of commands. */
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
5 #include "stdafx.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
6 #include "openttd.h"
6453
666fc3ef3174 (svn r9609) -Codechange: Move some function prototypes out of functions.h and into landscape.h, and add a few where they didn't exist.
maedhros <maedhros@openttd.org>
parents: 6444
diff changeset
7 #include "landscape.h"
8108
4faab45e2603 (svn r11669) -Codechange: refactor tile.h -> tile_type.h and tile_map.h
rubidium <rubidium@openttd.org>
parents: 8107
diff changeset
8 #include "tile_map.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
9 #include "gui.h"
8116
9cc845deddfe (svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium <rubidium@openttd.org>
parents: 8114
diff changeset
10 #include "command_func.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
11 #include "network/network.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
12 #include "genworld.h"
7609
9e4c3b886ccb (svn r11138) -Codechange: prepare some subsystems for persistent storage for NewGRFs.
rubidium <rubidium@openttd.org>
parents: 7559
diff changeset
13 #include "newgrf_storage.h"
8114
2d6af5d7a142 (svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents: 8108
diff changeset
14 #include "strings_func.h"
8123
c26c28875749 (svn r11684) -Codechange: split gfx.h in a type and functional header.
rubidium <rubidium@openttd.org>
parents: 8116
diff changeset
15 #include "gfx_func.h"
8131
e300ac8001ae (svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium <rubidium@openttd.org>
parents: 8123
diff changeset
16 #include "functions.h"
8232
cca79a4335e0 (svn r11795) -Fix [FS#1616]: take town rating into account when testing if a command can be executed.
glx <glx@openttd.org>
parents: 8230
diff changeset
17 #include "town.h"
8247
c0449b1df5e1 (svn r11811) -Fix: make compilation without networking work again (and thus move the debugdumpcommand stuff out of the network 'area').
rubidium <rubidium@openttd.org>
parents: 8232
diff changeset
18 #include "date_func.h"
c0449b1df5e1 (svn r11811) -Fix: make compilation without networking work again (and thus move the debugdumpcommand stuff out of the network 'area').
rubidium <rubidium@openttd.org>
parents: 8232
diff changeset
19 #include "debug.h"
10208
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
20 #include "company_func.h"
39cf8eebfda5 (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames.
rubidium <rubidium@openttd.org>
parents: 10207
diff changeset
21 #include "company_base.h"
8306
ea2c123b3655 (svn r11871) -Fix [FS#1074]: do not update signals after each tile when building/removing a large block of track/signals/station
smatz <smatz@openttd.org>
parents: 8275
diff changeset
22 #include "signal_func.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
23
8264
2495310e220f (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8254
diff changeset
24 #include "table/strings.h"
2495310e220f (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents: 8254
diff changeset
25
8275
27c91897317f (svn r11839) -Codechange: move some variables from variables.h to a more logical location.
rubidium <rubidium@openttd.org>
parents: 8264
diff changeset
26 StringID _error_message;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
27
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
28 /**
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
29 * Helper macro to define the header of all command handler macros.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
30 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
31 * This macro create the function header for a given command handler function, as
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
32 * all command handler functions got the parameters from the #CommandProc callback
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
33 * type.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
34 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
35 * @param yyyy The desired function name of the new command handler function.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
36 */
11090
df23c4e04638 (svn r15434) -Codechange: bit of type safety for the DC_xxx flags.
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
37 #define DEF_COMMAND(yyyy) CommandCost yyyy(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
38
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
39 DEF_COMMAND(CmdBuildRailroadTrack);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
40 DEF_COMMAND(CmdRemoveRailroadTrack);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
41 DEF_COMMAND(CmdBuildSingleRail);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
42 DEF_COMMAND(CmdRemoveSingleRail);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
43
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
44 DEF_COMMAND(CmdLandscapeClear);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
45
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
46 DEF_COMMAND(CmdBuildBridge);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
47
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
48 DEF_COMMAND(CmdBuildRailroadStation);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
49 DEF_COMMAND(CmdRemoveFromRailroadStation);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
50 DEF_COMMAND(CmdConvertRail);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
51
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
52 DEF_COMMAND(CmdBuildSingleSignal);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
53 DEF_COMMAND(CmdRemoveSingleSignal);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
54
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
55 DEF_COMMAND(CmdTerraformLand);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
56
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
57 DEF_COMMAND(CmdPurchaseLandArea);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
58 DEF_COMMAND(CmdSellLandArea);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
59
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
60 DEF_COMMAND(CmdBuildTunnel);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
61
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
62 DEF_COMMAND(CmdBuildTrainDepot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
63 DEF_COMMAND(CmdBuildTrainWaypoint);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
64 DEF_COMMAND(CmdRenameWaypoint);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
65 DEF_COMMAND(CmdRemoveTrainWaypoint);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
66
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
67 DEF_COMMAND(CmdBuildRoadStop);
6012
542153c1c803 (svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
68 DEF_COMMAND(CmdRemoveRoadStop);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
69
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
70 DEF_COMMAND(CmdBuildLongRoad);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
71 DEF_COMMAND(CmdRemoveLongRoad);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
72 DEF_COMMAND(CmdBuildRoad);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
73 DEF_COMMAND(CmdRemoveRoad);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
74
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
75 DEF_COMMAND(CmdBuildRoadDepot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
76
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
77 DEF_COMMAND(CmdBuildAirport);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
78
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
79 DEF_COMMAND(CmdBuildDock);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
80
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
81 DEF_COMMAND(CmdBuildShipDepot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
82
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
83 DEF_COMMAND(CmdBuildBuoy);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
84
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
85 DEF_COMMAND(CmdPlantTree);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
86
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
87 DEF_COMMAND(CmdBuildRailVehicle);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
88 DEF_COMMAND(CmdMoveRailVehicle);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
89
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
90 DEF_COMMAND(CmdSellRailWagon);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
91
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
92 DEF_COMMAND(CmdSendTrainToDepot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
93 DEF_COMMAND(CmdForceTrainProceed);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
94 DEF_COMMAND(CmdReverseTrainDirection);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
95
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
96 DEF_COMMAND(CmdModifyOrder);
6794
4449e9d10ee5 (svn r10033) -Feature [FS#760]: skip to the selected order in the order list when clicking on the "skip" button while pressing CTRL.
rubidium <rubidium@openttd.org>
parents: 6667
diff changeset
97 DEF_COMMAND(CmdSkipToOrder);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
98 DEF_COMMAND(CmdDeleteOrder);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
99 DEF_COMMAND(CmdInsertOrder);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
100 DEF_COMMAND(CmdChangeServiceInt);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
101 DEF_COMMAND(CmdRestoreOrderIndex);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
102
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
103 DEF_COMMAND(CmdBuildIndustry);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
104
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
105 DEF_COMMAND(CmdBuildCompanyHQ);
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
106 DEF_COMMAND(CmdSetCompanyManagerFace);
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 11069
diff changeset
107 DEF_COMMAND(CmdSetCompanyColour);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
108
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
109 DEF_COMMAND(CmdIncreaseLoan);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
110 DEF_COMMAND(CmdDecreaseLoan);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
111
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
112 DEF_COMMAND(CmdWantEnginePreview);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
113
10151
8a25a93ea7b4 (svn r14337) -Codechange: use CmdRename* and CMD_RENAME_* for vehicle, president and company renaming commands, too
smatz <smatz@openttd.org>
parents: 9928
diff changeset
114 DEF_COMMAND(CmdRenameVehicle);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
115 DEF_COMMAND(CmdRenameEngine);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
116
10151
8a25a93ea7b4 (svn r14337) -Codechange: use CmdRename* and CMD_RENAME_* for vehicle, president and company renaming commands, too
smatz <smatz@openttd.org>
parents: 9928
diff changeset
117 DEF_COMMAND(CmdRenameCompany);
8a25a93ea7b4 (svn r14337) -Codechange: use CmdRename* and CMD_RENAME_* for vehicle, president and company renaming commands, too
smatz <smatz@openttd.org>
parents: 9928
diff changeset
118 DEF_COMMAND(CmdRenamePresident);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
119
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
120 DEF_COMMAND(CmdRenameStation);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
121
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
122 DEF_COMMAND(CmdSellAircraft);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
123 DEF_COMMAND(CmdBuildAircraft);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
124 DEF_COMMAND(CmdSendAircraftToHangar);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
125 DEF_COMMAND(CmdRefitAircraft);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
126
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
127 DEF_COMMAND(CmdPlaceSign);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
128 DEF_COMMAND(CmdRenameSign);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
129
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
130 DEF_COMMAND(CmdBuildRoadVeh);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
131 DEF_COMMAND(CmdSellRoadVeh);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
132 DEF_COMMAND(CmdSendRoadVehToDepot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
133 DEF_COMMAND(CmdTurnRoadVeh);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
134 DEF_COMMAND(CmdRefitRoadVeh);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
135
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
136 DEF_COMMAND(CmdPause);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
137
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
138 DEF_COMMAND(CmdBuyShareInCompany);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
139 DEF_COMMAND(CmdSellShareInCompany);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
140 DEF_COMMAND(CmdBuyCompany);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
141
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
142 DEF_COMMAND(CmdBuildTown);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
143
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
144 DEF_COMMAND(CmdRenameTown);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
145 DEF_COMMAND(CmdDoTownAction);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
146
11069
36d798171bfd (svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents: 11062
diff changeset
147 DEF_COMMAND(CmdChangeSetting);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
148
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
149 DEF_COMMAND(CmdSellShip);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
150 DEF_COMMAND(CmdBuildShip);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
151 DEF_COMMAND(CmdSendShipToDepot);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
152 DEF_COMMAND(CmdRefitShip);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
153
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
154 DEF_COMMAND(CmdOrderRefit);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
155 DEF_COMMAND(CmdCloneOrder);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
156
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
157 DEF_COMMAND(CmdClearArea);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
158
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
159 DEF_COMMAND(CmdGiveMoney);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
160 DEF_COMMAND(CmdMoneyCheat);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
161 DEF_COMMAND(CmdBuildCanal);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
162 DEF_COMMAND(CmdBuildLock);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
163
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
164 DEF_COMMAND(CmdCompanyCtrl);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
165
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
166 DEF_COMMAND(CmdLevelLand);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
167
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
168 DEF_COMMAND(CmdRefitRailVehicle);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
169
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
170 DEF_COMMAND(CmdBuildSignalTrack);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
171 DEF_COMMAND(CmdRemoveSignalTrack);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
172
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
173 DEF_COMMAND(CmdSetAutoReplace);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
174
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
175 DEF_COMMAND(CmdCloneVehicle);
9921
29d461128c75 (svn r14076) -Codechange: Merge the four start/stop commands into a single CMD_START_STOP_VEHICLE.
frosch <frosch@openttd.org>
parents: 9652
diff changeset
176 DEF_COMMAND(CmdStartStopVehicle);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
177 DEF_COMMAND(CmdMassStartStopVehicle);
9928
0cc9c6c36c43 (svn r14083) -Fix [FS#1264, FS#2037, FS#2038, FS#2110]: Rewrite the autoreplace kernel.
frosch <frosch@openttd.org>
parents: 9921
diff changeset
178 DEF_COMMAND(CmdAutoreplaceVehicle);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
179 DEF_COMMAND(CmdDepotSellAllVehicles);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
180 DEF_COMMAND(CmdDepotMassAutoReplace);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
181
6643
18d58b36b9b3 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents: 6630
diff changeset
182 DEF_COMMAND(CmdCreateGroup);
18d58b36b9b3 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents: 6630
diff changeset
183 DEF_COMMAND(CmdRenameGroup);
18d58b36b9b3 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents: 6630
diff changeset
184 DEF_COMMAND(CmdDeleteGroup);
18d58b36b9b3 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents: 6630
diff changeset
185 DEF_COMMAND(CmdAddVehicleGroup);
18d58b36b9b3 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents: 6630
diff changeset
186 DEF_COMMAND(CmdAddSharedVehicleGroup);
18d58b36b9b3 (svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium <rubidium@openttd.org>
parents: 6630
diff changeset
187 DEF_COMMAND(CmdRemoveAllVehiclesGroup);
6667
12d521513434 (svn r9898) -Fix (r9874): Many...
peter1138 <peter1138@openttd.org>
parents: 6643
diff changeset
188 DEF_COMMAND(CmdSetGroupReplaceProtection);
12d521513434 (svn r9898) -Fix (r9874): Many...
peter1138 <peter1138@openttd.org>
parents: 6643
diff changeset
189
6832
17319fb8c1c3 (svn r10071) -Feature [FS#828]: moving of orders (skidd13).
rubidium <rubidium@openttd.org>
parents: 6794
diff changeset
190 DEF_COMMAND(CmdMoveOrder);
6980
cb6b3e277df0 (svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros <maedhros@openttd.org>
parents: 6957
diff changeset
191 DEF_COMMAND(CmdChangeTimetable);
cb6b3e277df0 (svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros <maedhros@openttd.org>
parents: 6957
diff changeset
192 DEF_COMMAND(CmdSetVehicleOnTime);
7066
bd6373f5acf4 (svn r10331) -Feature: Add the possibility of automatically filling in timetables based on
maedhros <maedhros@openttd.org>
parents: 7002
diff changeset
193 DEF_COMMAND(CmdAutofillTimetable);
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
194 #undef DEF_COMMAND
6832
17319fb8c1c3 (svn r10071) -Feature [FS#828]: moving of orders (skidd13).
rubidium <rubidium@openttd.org>
parents: 6794
diff changeset
195
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
196 /**
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
197 * The master command table
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
198 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
199 * This table contains all possible CommandProc functions with
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
200 * the flags which belongs to it. The indizes are the same
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
201 * as the value from the CMD_* enums.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
202 */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
203 static const Command _command_proc_table[] = {
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
204 {CmdBuildRailroadTrack, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_RAILROAD_TRACK */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
205 {CmdRemoveRailroadTrack, CMD_AUTO}, /* CMD_REMOVE_RAILROAD_TRACK */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
206 {CmdBuildSingleRail, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_SINGLE_RAIL */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
207 {CmdRemoveSingleRail, CMD_AUTO}, /* CMD_REMOVE_SINGLE_RAIL */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
208 {CmdLandscapeClear, 0}, /* CMD_LANDSCAPE_CLEAR */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
209 {CmdBuildBridge, CMD_AUTO}, /* CMD_BUILD_BRIDGE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
210 {CmdBuildRailroadStation, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_RAILROAD_STATION */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
211 {CmdBuildTrainDepot, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_TRAIN_DEPOT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
212 {CmdBuildSingleSignal, CMD_AUTO}, /* CMD_BUILD_SIGNALS */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
213 {CmdRemoveSingleSignal, CMD_AUTO}, /* CMD_REMOVE_SIGNALS */
10855
7881d9cd55ab (svn r15190) -Feature: Allow terraforming of the tiles at the edges of the map.
Yexo <Yexo@openttd.org>
parents: 10707
diff changeset
214 {CmdTerraformLand, CMD_ALL_TILES | CMD_AUTO}, /* CMD_TERRAFORM_LAND */
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
215 {CmdPurchaseLandArea, CMD_NO_WATER | CMD_AUTO}, /* CMD_PURCHASE_LAND_AREA */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
216 {CmdSellLandArea, 0}, /* CMD_SELL_LAND_AREA */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
217 {CmdBuildTunnel, CMD_AUTO}, /* CMD_BUILD_TUNNEL */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
218 {CmdRemoveFromRailroadStation, 0}, /* CMD_REMOVE_FROM_RAILROAD_STATION */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
219 {CmdConvertRail, 0}, /* CMD_CONVERT_RAILD */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
220 {CmdBuildTrainWaypoint, 0}, /* CMD_BUILD_TRAIN_WAYPOINT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
221 {CmdRenameWaypoint, 0}, /* CMD_RENAME_WAYPOINT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
222 {CmdRemoveTrainWaypoint, 0}, /* CMD_REMOVE_TRAIN_WAYPOINT */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
223
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
224 {CmdBuildRoadStop, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_ROAD_STOP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
225 {CmdRemoveRoadStop, 0}, /* CMD_REMOVE_ROAD_STOP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
226 {CmdBuildLongRoad, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_LONG_ROAD */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
227 {CmdRemoveLongRoad, CMD_NO_TEST | CMD_AUTO}, /* CMD_REMOVE_LONG_ROAD; towns may disallow removing road bits (as they are connected) in test, but in exec they're removed and thus removing is allowed. */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
228 {CmdBuildRoad, 0}, /* CMD_BUILD_ROAD */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
229 {CmdRemoveRoad, 0}, /* CMD_REMOVE_ROAD */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
230 {CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_ROAD_DEPOT */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
231
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
232 {CmdBuildAirport, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_AIRPORT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
233 {CmdBuildDock, CMD_AUTO}, /* CMD_BUILD_DOCK */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
234 {CmdBuildShipDepot, CMD_AUTO}, /* CMD_BUILD_SHIP_DEPOT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
235 {CmdBuildBuoy, CMD_AUTO}, /* CMD_BUILD_BUOY */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
236 {CmdPlantTree, CMD_AUTO}, /* CMD_PLANT_TREE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
237 {CmdBuildRailVehicle, 0}, /* CMD_BUILD_RAIL_VEHICLE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
238 {CmdMoveRailVehicle, 0}, /* CMD_MOVE_RAIL_VEHICLE */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
239
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
240 {CmdSellRailWagon, 0}, /* CMD_SELL_RAIL_WAGON */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
241 {CmdSendTrainToDepot, 0}, /* CMD_SEND_TRAIN_TO_DEPOT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
242 {CmdForceTrainProceed, 0}, /* CMD_FORCE_TRAIN_PROCEED */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
243 {CmdReverseTrainDirection, 0}, /* CMD_REVERSE_TRAIN_DIRECTION */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
244
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
245 {CmdModifyOrder, 0}, /* CMD_MODIFY_ORDER */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
246 {CmdSkipToOrder, 0}, /* CMD_SKIP_TO_ORDER */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
247 {CmdDeleteOrder, 0}, /* CMD_DELETE_ORDER */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
248 {CmdInsertOrder, 0}, /* CMD_INSERT_ORDER */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
249
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
250 {CmdChangeServiceInt, 0}, /* CMD_CHANGE_SERVICE_INT */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
251
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
252 {CmdBuildIndustry, 0}, /* CMD_BUILD_INDUSTRY */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
253 {CmdBuildCompanyHQ, CMD_NO_WATER | CMD_AUTO}, /* CMD_BUILD_COMPANY_HQ */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
254 {CmdSetCompanyManagerFace, 0}, /* CMD_SET_COMPANY_MANAGER_FACE */
11085
8da1855e9f14 (svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents: 11069
diff changeset
255 {CmdSetCompanyColour, 0}, /* CMD_SET_COMPANY_COLOUR */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
256
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
257 {CmdIncreaseLoan, 0}, /* CMD_INCREASE_LOAN */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
258 {CmdDecreaseLoan, 0}, /* CMD_DECREASE_LOAN */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
259
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
260 {CmdWantEnginePreview, 0}, /* CMD_WANT_ENGINE_PREVIEW */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
261
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
262 {CmdRenameVehicle, 0}, /* CMD_RENAME_VEHICLE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
263 {CmdRenameEngine, 0}, /* CMD_RENAME_ENGINE */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
264
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
265 {CmdRenameCompany, 0}, /* CMD_RENAME_COMPANY */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
266 {CmdRenamePresident, 0}, /* CMD_RENAME_PRESIDENT */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
267
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
268 {CmdRenameStation, 0}, /* CMD_RENAME_STATION */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
269
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
270 {CmdSellAircraft, 0}, /* CMD_SELL_AIRCRAFT */
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
271
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
272 {CmdBuildAircraft, 0}, /* CMD_BUILD_AIRCRAFT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
273 {CmdSendAircraftToHangar, 0}, /* CMD_SEND_AIRCRAFT_TO_HANGAR */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
274 {CmdRefitAircraft, 0}, /* CMD_REFIT_AIRCRAFT */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
275
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
276 {CmdPlaceSign, 0}, /* CMD_PLACE_SIGN */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
277 {CmdRenameSign, 0}, /* CMD_RENAME_SIGN */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
278
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
279 {CmdBuildRoadVeh, 0}, /* CMD_BUILD_ROAD_VEH */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
280 {CmdSellRoadVeh, 0}, /* CMD_SELL_ROAD_VEH */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
281 {CmdSendRoadVehToDepot, 0}, /* CMD_SEND_ROADVEH_TO_DEPOT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
282 {CmdTurnRoadVeh, 0}, /* CMD_TURN_ROADVEH */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
283 {CmdRefitRoadVeh, 0}, /* CMD_REFIT_ROAD_VEH */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
284
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
285 {CmdPause, CMD_SERVER}, /* CMD_PAUSE */
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
286
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
287 {CmdBuyShareInCompany, 0}, /* CMD_BUY_SHARE_IN_COMPANY */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
288 {CmdSellShareInCompany, 0}, /* CMD_SELL_SHARE_IN_COMPANY */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
289 {CmdBuyCompany, 0}, /* CMD_BUY_COMANY */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
290
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
291 {CmdBuildTown, CMD_OFFLINE}, /* CMD_BUILD_TOWN */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
292 {CmdRenameTown, CMD_SERVER}, /* CMD_RENAME_TOWN */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
293 {CmdDoTownAction, 0}, /* CMD_DO_TOWN_ACTION */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
294
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
295 {CmdSellShip, 0}, /* CMD_SELL_SHIP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
296 {CmdBuildShip, 0}, /* CMD_BUILD_SHIP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
297 {CmdSendShipToDepot, 0}, /* CMD_SEND_SHIP_TO_DEPOT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
298 {CmdRefitShip, 0}, /* CMD_REFIT_SHIP */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
299
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
300 {CmdOrderRefit, 0}, /* CMD_ORDER_REFIT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
301 {CmdCloneOrder, 0}, /* CMD_CLONE_ORDER */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
302
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
303 {CmdClearArea, CMD_NO_TEST}, /* CMD_CLEAR_AREA; destroying multi-tile houses makes town rating differ between test and execution */
8500
83450457346b (svn r12075) -Codechange: Remove explicit numbering on command enum, and remove blanks from command list where old commands have been removed.
peter1138 <peter1138@openttd.org>
parents: 8486
diff changeset
304
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
305 {CmdMoneyCheat, CMD_OFFLINE}, /* CMD_MONEY_CHEAT */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
306 {CmdBuildCanal, CMD_AUTO}, /* CMD_BUILD_CANAL */
11055
4c8d23865b6d (svn r15395) -Fix [FS#2611] (r15377): one couldn't reset companies anymore in a 'dedicated' server.
rubidium <rubidium@openttd.org>
parents: 10997
diff changeset
307 {CmdCompanyCtrl, CMD_SPECTATOR}, /* CMD_COMPANY_CTRL */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
308
10855
7881d9cd55ab (svn r15190) -Feature: Allow terraforming of the tiles at the edges of the map.
Yexo <Yexo@openttd.org>
parents: 10707
diff changeset
309 {CmdLevelLand, CMD_ALL_TILES | CMD_NO_TEST | CMD_AUTO}, /* CMD_LEVEL_LAND; test run might clear tiles multiple times, in execution that only happens once */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
310
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
311 {CmdRefitRailVehicle, 0}, /* CMD_REFIT_RAIL_VEHICLE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
312 {CmdRestoreOrderIndex, 0}, /* CMD_RESTORE_ORDER_INDEX */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
313 {CmdBuildLock, CMD_AUTO}, /* CMD_BUILD_LOCK */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
314
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
315 {CmdBuildSignalTrack, CMD_AUTO}, /* CMD_BUILD_SIGNAL_TRACK */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
316 {CmdRemoveSignalTrack, CMD_AUTO}, /* CMD_REMOVE_SIGNAL_TRACK */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
317
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
318 {CmdGiveMoney, 0}, /* CMD_GIVE_MONEY */
11069
36d798171bfd (svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents: 11062
diff changeset
319 {CmdChangeSetting, CMD_SERVER}, /* CMD_CHANGE_SETTING */
10606
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
320 {CmdSetAutoReplace, 0}, /* CMD_SET_AUTOREPLACE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
321 {CmdCloneVehicle, CMD_NO_TEST}, /* CMD_CLONE_VEHICLE; NewGRF callbacks influence building and refitting making it impossible to correctly estimate the cost */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
322 {CmdStartStopVehicle, 0}, /* CMD_START_STOP_VEHICLE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
323 {CmdMassStartStopVehicle, 0}, /* CMD_MASS_START_STOP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
324 {CmdAutoreplaceVehicle, 0}, /* CMD_AUTOREPLACE_VEHICLE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
325 {CmdDepotSellAllVehicles, 0}, /* CMD_DEPOT_SELL_ALL_VEHICLES */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
326 {CmdDepotMassAutoReplace, 0}, /* CMD_DEPOT_MASS_AUTOREPLACE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
327 {CmdCreateGroup, 0}, /* CMD_CREATE_GROUP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
328 {CmdDeleteGroup, 0}, /* CMD_DELETE_GROUP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
329 {CmdRenameGroup, 0}, /* CMD_RENAME_GROUP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
330 {CmdAddVehicleGroup, 0}, /* CMD_ADD_VEHICLE_GROUP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
331 {CmdAddSharedVehicleGroup, 0}, /* CMD_ADD_SHARE_VEHICLE_GROUP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
332 {CmdRemoveAllVehiclesGroup, 0}, /* CMD_REMOVE_ALL_VEHICLES_GROUP */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
333 {CmdSetGroupReplaceProtection, 0}, /* CMD_SET_GROUP_REPLACE_PROTECTION */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
334 {CmdMoveOrder, 0}, /* CMD_MOVE_ORDER */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
335 {CmdChangeTimetable, 0}, /* CMD_CHANGE_TIMETABLE */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
336 {CmdSetVehicleOnTime, 0}, /* CMD_SET_VEHICLE_ON_TIME */
4b69f32abb9d (svn r14895) -Change: move CMD_NO_WATER from all DoCommandPs to the command table
rubidium <rubidium@openttd.org>
parents: 10605
diff changeset
337 {CmdAutofillTimetable, 0}, /* CMD_AUTOFILL_TIMETABLE */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
338 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
339
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
340 /*!
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
341 * This function range-checks a cmd, and checks if the cmd is not NULL
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
342 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
343 * @param cmd The integervalue of a command
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
344 * @return true if the command is valid (and got a CommandProc function)
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
345 */
10237
d39d46dc7057 (svn r14465) -Codechange: minor code style of command.cpp.
rubidium <rubidium@openttd.org>
parents: 10225
diff changeset
346 bool IsValidCommand(uint32 cmd)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
347 {
10604
ec12a7f3eef8 (svn r14889) -Codechange: replace some magic numbers with constants.
rubidium <rubidium@openttd.org>
parents: 10515
diff changeset
348 cmd &= CMD_ID_MASK;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
349
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
350 return
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
351 cmd < lengthof(_command_proc_table) &&
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
352 _command_proc_table[cmd].proc != NULL;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
353 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
354
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
355 /*!
10604
ec12a7f3eef8 (svn r14889) -Codechange: replace some magic numbers with constants.
rubidium <rubidium@openttd.org>
parents: 10515
diff changeset
356 * This function mask the parameter with CMD_ID_MASK and returns
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
357 * the flags which belongs to the given command.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
358 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
359 * @param cmd The integer value of the command
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
360 * @return The flags for this command
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
361 */
10237
d39d46dc7057 (svn r14465) -Codechange: minor code style of command.cpp.
rubidium <rubidium@openttd.org>
parents: 10225
diff changeset
362 byte GetCommandFlags(uint32 cmd)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
363 {
10237
d39d46dc7057 (svn r14465) -Codechange: minor code style of command.cpp.
rubidium <rubidium@openttd.org>
parents: 10225
diff changeset
364 assert(IsValidCommand(cmd));
d39d46dc7057 (svn r14465) -Codechange: minor code style of command.cpp.
rubidium <rubidium@openttd.org>
parents: 10225
diff changeset
365
10604
ec12a7f3eef8 (svn r14889) -Codechange: replace some magic numbers with constants.
rubidium <rubidium@openttd.org>
parents: 10515
diff changeset
366 return _command_proc_table[cmd & CMD_ID_MASK].flags;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
367 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
368
8232
cca79a4335e0 (svn r11795) -Fix [FS#1616]: take town rating into account when testing if a command can be executed.
glx <glx@openttd.org>
parents: 8230
diff changeset
369 static int _docommand_recursive = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
370
10624
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
371 /**
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
372 * Shorthand for calling the long DoCommand with a container.
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
373 *
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
374 * @param container Container with (almost) all information
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
375 * @param flags Flags for the command and how to execute the command
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
376 * @see CommandProc
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
377 * @return the cost
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
378 */
11090
df23c4e04638 (svn r15434) -Codechange: bit of type safety for the DC_xxx flags.
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
379 CommandCost DoCommand(const CommandContainer *container, DoCommandFlag flags)
10624
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
380 {
10626
3189a053f43a (svn r14919) -Feature: distant joining of stations (Frostregen and PhilSophus)
rubidium <rubidium@openttd.org>
parents: 10624
diff changeset
381 return DoCommand(container->tile, container->p1, container->p2, flags, container->cmd & CMD_ID_MASK, container->text);
10624
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
382 }
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
383
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
384 /*!
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
385 * This function executes a given command with the parameters from the #CommandProc parameter list.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
386 * Depending on the flags parameter it execute or test a command.
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
387 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
388 * @param tile The tile to apply the command on (for the #CommandProc)
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
389 * @param p1 Additional data for the command (for the #CommandProc)
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
390 * @param p2 Additional data for the command (for the #CommandProc)
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
391 * @param flags Flags for the command and how to execute the command
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
392 * @param cmd The command-id to execute (a value of the CMD_* enums)
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
393 * @see CommandProc
10624
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
394 * @return the cost
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
395 */
11090
df23c4e04638 (svn r15434) -Codechange: bit of type safety for the DC_xxx flags.
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
396 CommandCost DoCommand(TileIndex tile, uint32 p1, uint32 p2, DoCommandFlag flags, uint32 cmd, const char *text)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
397 {
6943
fd42cb9816c6 (svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium <rubidium@openttd.org>
parents: 6832
diff changeset
398 CommandCost res;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
399
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
400 /* Do not even think about executing out-of-bounds tile-commands */
10855
7881d9cd55ab (svn r15190) -Feature: Allow terraforming of the tiles at the edges of the map.
Yexo <Yexo@openttd.org>
parents: 10707
diff changeset
401 if (tile != 0 && (tile >= MapSize() || (!IsValidTile(tile) && (flags & DC_ALL_TILES) == 0))) return CMD_ERROR;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
402
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
403 CommandProc *proc = _command_proc_table[cmd].proc;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
404
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
405 if (_docommand_recursive == 0) _error_message = INVALID_STRING_ID;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
406
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
407 _docommand_recursive++;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
408
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
409 /* only execute the test call if it's toplevel, or we're not execing. */
8486
99f058177c49 (svn r12061) -Cleanup: since r12060, DC_FORCETEST is not used anymore
smatz <smatz@openttd.org>
parents: 8442
diff changeset
410 if (_docommand_recursive == 1 || !(flags & DC_EXEC) ) {
8232
cca79a4335e0 (svn r11795) -Fix [FS#1616]: take town rating into account when testing if a command can be executed.
glx <glx@openttd.org>
parents: 8230
diff changeset
411 SetTownRatingTestMode(true);
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
412 res = proc(tile, flags & ~DC_EXEC, p1, p2, text);
8232
cca79a4335e0 (svn r11795) -Fix [FS#1616]: take town rating into account when testing if a command can be executed.
glx <glx@openttd.org>
parents: 8230
diff changeset
413 SetTownRatingTestMode(false);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
414 if (CmdFailed(res)) {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
415 res.SetGlobalErrorMessage();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
416 goto error;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
417 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
418
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
419 if (_docommand_recursive == 1 &&
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
420 !(flags & DC_QUERY_COST) &&
8519
0e4b2a37af1f (svn r12094) -Codechange: use DC_BANKRUPT command flag when removing player property to allow further fixes
smatz <smatz@openttd.org>
parents: 8500
diff changeset
421 !(flags & DC_BANKRUPT) &&
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
422 res.GetCost() != 0 &&
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
423 !CheckCompanyHasMoney(res)) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
424 goto error;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
425 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
426
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
427 if (!(flags & DC_EXEC)) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
428 _docommand_recursive--;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
429 return res;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
430 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
431 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
432
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
433 /* Execute the command here. All cost-relevant functions set the expenses type
8230
5b61305fcdd4 (svn r11793) -Codechange: pass the expense type via the CommandCost instead of a global variable. Patch by Noldo (FS#1114).
rubidium <rubidium@openttd.org>
parents: 8199
diff changeset
434 * themselves to the cost object at some point */
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
435 res = proc(tile, flags, p1, p2, text);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
436 if (CmdFailed(res)) {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
437 res.SetGlobalErrorMessage();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
438 error:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
439 _docommand_recursive--;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
440 return CMD_ERROR;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
441 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
442
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
443 /* if toplevel, subtract the money. */
8519
0e4b2a37af1f (svn r12094) -Codechange: use DC_BANKRUPT command flag when removing player property to allow further fixes
smatz <smatz@openttd.org>
parents: 8500
diff changeset
444 if (--_docommand_recursive == 0 && !(flags & DC_BANKRUPT)) {
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
445 SubtractMoneyFromCompany(res);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
446 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
447
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
448 return res;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
449 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
450
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
451 /*!
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
452 * This functions returns the money which can be used to execute a command.
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
453 * This is either the money of the current company or INT64_MAX if there
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
454 * is no such a company "at the moment" like the server itself.
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
455 *
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
456 * @return The available money of a company or INT64_MAX
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
457 */
6990
a19700261804 (svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents: 6980
diff changeset
458 Money GetAvailableMoneyForCommand()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
459 {
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
460 CompanyID company = _current_company;
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
461 if (!IsValidCompanyID(company)) return INT64_MAX;
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
462 return GetCompany(company)->money;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
463 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
464
10624
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
465 /**
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
466 * Shortcut for the long DoCommandP when having a container with the data.
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
467 * @param container the container with information.
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
468 * @param my_cmd indicator if the command is from a company or server (to display error messages for a user)
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
469 * @return true if the command succeeded, else false
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
470 */
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
471 bool DoCommandP(const CommandContainer *container, bool my_cmd)
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
472 {
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
473 return DoCommandP(container->tile, container->p1, container->p2, container->cmd, container->callback, container->text, my_cmd);
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
474 }
2f1e024c151f (svn r14916) -Codechange: make it possible to send CommandContainers directly to DoCommand(P).
rubidium <rubidium@openttd.org>
parents: 10608
diff changeset
475
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
476 /*!
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
477 * Toplevel network safe docommand function for the current company. Must not be called recursively.
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
478 * The callback is called when the command succeeded or failed. The parameters
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
479 * tile, p1 and p2 are from the #CommandProc function. The paramater cmd is the command to execute.
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
480 * The parameter my_cmd is used to indicate if the command is from a company or the server.
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
481 *
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
482 * @param tile The tile to perform a command on (see #CommandProc)
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
483 * @param p1 Additional data for the command (see #CommandProc)
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
484 * @param p2 Additional data for the command (see #CommandProc)
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
485 * @param cmd The command to execute (a CMD_* value)
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
486 * @param callback A callback function to call after the command is finished
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
487 * @param text The text to pass
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
488 * @param my_cmd indicator if the command is from a company or server (to display error messages for a user)
7559
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
489 * @return true if the command succeeded, else false
ad850ff2c61a (svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
rubidium <rubidium@openttd.org>
parents: 7521
diff changeset
490 */
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
491 bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallback *callback, const char *text, bool my_cmd)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
492 {
10605
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
493 assert(_docommand_recursive == 0);
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
494
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
495 CommandCost res, res2;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
496
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
497 int x = TileX(tile) * TILE_SIZE;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
498 int y = TileY(tile) * TILE_SIZE;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
499
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
500 _error_message = INVALID_STRING_ID;
10605
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
501 StringID error_part1 = GB(cmd, 16, 16);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
502 _additional_cash_required = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
503
11062
41935eabf53f (svn r15402) -Codechange: verify _current_company didn't change when executing a command
smatz <smatz@openttd.org>
parents: 11055
diff changeset
504 CompanyID old_company = _current_company;
41935eabf53f (svn r15402) -Codechange: verify _current_company didn't change when executing a command
smatz <smatz@openttd.org>
parents: 11055
diff changeset
505
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
506 /** Spectator has no rights except for the (dedicated) server which
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
507 * is/can be a spectator but as the server it can do anything */
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
508 if (_current_company == COMPANY_SPECTATOR && !_network_server) {
7222
ad1994c6d92f (svn r10501) -Fix [FS#1015]: error dialog was sometimes shown on all clients when a command failed instead of only the client that actually did the command.
rubidium <rubidium@openttd.org>
parents: 7066
diff changeset
509 if (my_cmd) ShowErrorMessage(_error_message, error_part1, x, y);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
510 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
511 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
512
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
513 /* get pointer to command handler */
10604
ec12a7f3eef8 (svn r14889) -Codechange: replace some magic numbers with constants.
rubidium <rubidium@openttd.org>
parents: 10515
diff changeset
514 byte cmd_id = cmd & CMD_ID_MASK;
ec12a7f3eef8 (svn r14889) -Codechange: replace some magic numbers with constants.
rubidium <rubidium@openttd.org>
parents: 10515
diff changeset
515 assert(cmd_id < lengthof(_command_proc_table));
10605
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
516
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
517 CommandProc *proc = _command_proc_table[cmd_id].proc;
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
518 if (proc == NULL) return false;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
519
10605
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
520 /* Command flags are used internally */
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
521 uint cmd_flags = GetCommandFlags(cmd);
10692
0b7e235f99df (svn r15014) -Codechange: Add a helper function to get the needed DC_xxx flags from the result of GetCommandFlags().
frosch <frosch@openttd.org>
parents: 10626
diff changeset
522 /* Flags get send to the DoCommand */
11090
df23c4e04638 (svn r15434) -Codechange: bit of type safety for the DC_xxx flags.
rubidium <rubidium@openttd.org>
parents: 11085
diff changeset
523 DoCommandFlag flags = CommandFlagsToDCFlags(cmd_flags);
7521
f5b39ff47e0e (svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium <rubidium@openttd.org>
parents: 7506
diff changeset
524
10855
7881d9cd55ab (svn r15190) -Feature: Allow terraforming of the tiles at the edges of the map.
Yexo <Yexo@openttd.org>
parents: 10707
diff changeset
525 /* Do not even think about executing out-of-bounds tile-commands */
7881d9cd55ab (svn r15190) -Feature: Allow terraforming of the tiles at the edges of the map.
Yexo <Yexo@openttd.org>
parents: 10707
diff changeset
526 if (tile != 0 && (tile >= MapSize() || (!IsValidTile(tile) && (cmd_flags & CMD_ALL_TILES) == 0))) return false;
7881d9cd55ab (svn r15190) -Feature: Allow terraforming of the tiles at the edges of the map.
Yexo <Yexo@openttd.org>
parents: 10707
diff changeset
527
10997
0692d0966f52 (svn r15337) -Fix: don't allow a spectating server to build stuff.
rubidium <rubidium@openttd.org>
parents: 10995
diff changeset
528 /* If the server is a spectator, it may only do server commands! */
11055
4c8d23865b6d (svn r15395) -Fix [FS#2611] (r15377): one couldn't reset companies anymore in a 'dedicated' server.
rubidium <rubidium@openttd.org>
parents: 10997
diff changeset
529 if (_current_company == COMPANY_SPECTATOR && (cmd_flags & (CMD_SPECTATOR | CMD_SERVER)) == 0) return false;
10997
0692d0966f52 (svn r15337) -Fix: don't allow a spectating server to build stuff.
rubidium <rubidium@openttd.org>
parents: 10995
diff changeset
530
10605
32ba3eb6d7c9 (svn r14890) -Codechange: move the notest information into the command table.
rubidium <rubidium@openttd.org>
parents: 10604
diff changeset
531 bool notest = (cmd_flags & CMD_NO_TEST) != 0;
8187
628ae1d0d227 (svn r11750) -Revert (r11749): commited too much
glx <glx@openttd.org>
parents: 8186
diff changeset
532
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
533 _docommand_recursive = 1;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
534
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
535 /* cost estimation only? */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
536 if (!IsGeneratingWorld() &&
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
537 _shift_pressed &&
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
538 IsLocalCompany() &&
10607
e3b26a6536ae (svn r14896) -Codechange: remove an unused constant and the related dead code.
rubidium <rubidium@openttd.org>
parents: 10606
diff changeset
539 !(cmd & CMD_NETWORK_COMMAND) &&
10604
ec12a7f3eef8 (svn r14889) -Codechange: replace some magic numbers with constants.
rubidium <rubidium@openttd.org>
parents: 10515
diff changeset
540 cmd_id != CMD_PAUSE) {
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
541 /* estimate the cost. */
8442
1a90922472a6 (svn r12012) -Fix (r11795): Enable TownRatingTestMode during cost estimation with 'shift'-key.
frosch <frosch@openttd.org>
parents: 8306
diff changeset
542 SetTownRatingTestMode(true);
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
543 res = proc(tile, flags, p1, p2, text);
8442
1a90922472a6 (svn r12012) -Fix (r11795): Enable TownRatingTestMode during cost estimation with 'shift'-key.
frosch <frosch@openttd.org>
parents: 8306
diff changeset
544 SetTownRatingTestMode(false);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
545 if (CmdFailed(res)) {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
546 res.SetGlobalErrorMessage();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
547 ShowErrorMessage(_error_message, error_part1, x, y);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
548 } else {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
549 ShowEstimatedCostOrIncome(res.GetCost(), x, y);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
550 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
551
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
552 _docommand_recursive = 0;
7609
9e4c3b886ccb (svn r11138) -Codechange: prepare some subsystems for persistent storage for NewGRFs.
rubidium <rubidium@openttd.org>
parents: 7559
diff changeset
553 ClearStorageChanges(false);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
554 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
555 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
556
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
557
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
558 if (!((cmd & CMD_NO_TEST_IF_IN_NETWORK) && _networking)) {
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
559 /* first test if the command can be executed. */
8232
cca79a4335e0 (svn r11795) -Fix [FS#1616]: take town rating into account when testing if a command can be executed.
glx <glx@openttd.org>
parents: 8230
diff changeset
560 SetTownRatingTestMode(true);
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
561 res = proc(tile, flags, p1, p2, text);
8232
cca79a4335e0 (svn r11795) -Fix [FS#1616]: take town rating into account when testing if a command can be executed.
glx <glx@openttd.org>
parents: 8230
diff changeset
562 SetTownRatingTestMode(false);
11062
41935eabf53f (svn r15402) -Codechange: verify _current_company didn't change when executing a command
smatz <smatz@openttd.org>
parents: 11055
diff changeset
563 assert(cmd_id == CMD_COMPANY_CTRL || old_company == _current_company);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
564 if (CmdFailed(res)) {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
565 res.SetGlobalErrorMessage();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
566 goto show_error;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
567 }
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
568 /* no money? Only check if notest is off */
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
569 if (!notest && res.GetCost() != 0 && !CheckCompanyHasMoney(res)) goto show_error;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
570 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
571
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
572 #ifdef ENABLE_NETWORK
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
573 /** If we are in network, and the command is not from the network
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
574 * send it to the command-queue and abort execution
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
575 * If we are a dedicated server temporarily switch local company, otherwise
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
576 * the other parties won't be able to execute our command and will desync.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
577 * We also need to do this if the server's company has gone bankrupt
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
578 * @todo Rewrite (dedicated) server to something more than a dirty hack!
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
579 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
580 if (_networking && !(cmd & CMD_NETWORK_COMMAND)) {
10225
fe1681c9d05b (svn r14448) -Codechange [FS#2328]: rename a few variables (based on a patch by planetmaker)
smatz <smatz@openttd.org>
parents: 10208
diff changeset
581 CompanyID bck = _local_company;
fe1681c9d05b (svn r14448) -Codechange [FS#2328]: rename a few variables (based on a patch by planetmaker)
smatz <smatz@openttd.org>
parents: 10208
diff changeset
582 if (_network_dedicated || (_network_server && bck == COMPANY_SPECTATOR)) _local_company = COMPANY_FIRST;
10608
b2e3a8e44c6f (svn r14897) -Codechange: don't allow a few command flags to be sent over the network as it's bogus information anyway; e.g. the "do not send over network" flag as it will be set whenever the command is received from the server/client.
rubidium <rubidium@openttd.org>
parents: 10607
diff changeset
583 NetworkSend_Command(tile, p1, p2, cmd & ~CMD_FLAGS_MASK, callback, text);
10225
fe1681c9d05b (svn r14448) -Codechange [FS#2328]: rename a few variables (based on a patch by planetmaker)
smatz <smatz@openttd.org>
parents: 10208
diff changeset
584 if (_network_dedicated || (_network_server && bck == COMPANY_SPECTATOR)) _local_company = bck;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
585 _docommand_recursive = 0;
7609
9e4c3b886ccb (svn r11138) -Codechange: prepare some subsystems for persistent storage for NewGRFs.
rubidium <rubidium@openttd.org>
parents: 7559
diff changeset
586 ClearStorageChanges(false);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
587 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
588 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
589 #endif /* ENABLE_NETWORK */
10515
7156262cf0c9 (svn r14772) -Codechange: make the "dump log of game to reproduce" desync debug stuff a runtime configurable debug option instead of a compile time option.
rubidium <rubidium@openttd.org>
parents: 10499
diff changeset
590 DEBUG(desync, 1, "cmd: %08x; %08x; %1x; %06x; %08x; %08x; %04x; %s\n", _date, _date_fract, (int)_current_company, tile, p1, p2, cmd & ~CMD_NETWORK_COMMAND, text);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
591
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
592 /* update last build coordinate of company. */
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
593 if (tile != 0 && IsValidCompanyID(_current_company)) {
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
594 GetCompany(_current_company)->last_build_coordinate = tile;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
595 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
596
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
597 /* Actually try and execute the command. If no cost-type is given
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
598 * use the construction one */
10499
45ca88a8de7d (svn r14754) -Codechange: get rid of _cmd_text and just pass it as (optional) parameter.
rubidium <rubidium@openttd.org>
parents: 10237
diff changeset
599 res2 = proc(tile, flags | DC_EXEC, p1, p2, text);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
600
11062
41935eabf53f (svn r15402) -Codechange: verify _current_company didn't change when executing a command
smatz <smatz@openttd.org>
parents: 11055
diff changeset
601 assert(cmd_id == CMD_COMPANY_CTRL || old_company == _current_company);
41935eabf53f (svn r15402) -Codechange: verify _current_company didn't change when executing a command
smatz <smatz@openttd.org>
parents: 11055
diff changeset
602
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
603 /* If notest is on, it means the result of the test can be different than
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
604 * the real command.. so ignore the test */
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
605 if (!notest && !((cmd & CMD_NO_TEST_IF_IN_NETWORK) && _networking)) {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
606 assert(res.GetCost() == res2.GetCost() && CmdFailed(res) == CmdFailed(res2)); // sanity check
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
607 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
608 if (CmdFailed(res2)) {
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
609 res.SetGlobalErrorMessage();
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
610 goto show_error;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
611 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
612 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
613
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
614 SubtractMoneyFromCompany(res2);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
615
8306
ea2c123b3655 (svn r11871) -Fix [FS#1074]: do not update signals after each tile when building/removing a large block of track/signals/station
smatz <smatz@openttd.org>
parents: 8275
diff changeset
616 /* update signals if needed */
ea2c123b3655 (svn r11871) -Fix [FS#1074]: do not update signals after each tile when building/removing a large block of track/signals/station
smatz <smatz@openttd.org>
parents: 8275
diff changeset
617 UpdateSignalsInBuffer();
ea2c123b3655 (svn r11871) -Fix [FS#1074]: do not update signals after each tile when building/removing a large block of track/signals/station
smatz <smatz@openttd.org>
parents: 8275
diff changeset
618
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
619 if (IsLocalCompany() && _game_mode != GM_EDITOR) {
7506
3cdc649e4e30 (svn r11021) -Fix [FS#1175]: do not display income/expenses when they do not belong to a "valid" tile, like the money cheat/giving money.
rubidium <rubidium@openttd.org>
parents: 7266
diff changeset
620 if (res2.GetCost() != 0 && tile != 0) ShowCostOrIncomeAnimation(x, y, GetSlopeZ(x, y), res2.GetCost());
6990
a19700261804 (svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch.
rubidium <rubidium@openttd.org>
parents: 6980
diff changeset
621 if (_additional_cash_required != 0) {
7002
fa75522e0249 (svn r10258) -Codechange: as we are now using int64 all over the place, it's better to use int64 variables in the string generating too instead of packing them into two int32s.
rubidium <rubidium@openttd.org>
parents: 6991
diff changeset
622 SetDParam(0, _additional_cash_required);
7222
ad1994c6d92f (svn r10501) -Fix [FS#1015]: error dialog was sometimes shown on all clients when a command failed instead of only the client that actually did the command.
rubidium <rubidium@openttd.org>
parents: 7066
diff changeset
623 if (my_cmd) ShowErrorMessage(STR_0003_NOT_ENOUGH_CASH_REQUIRES, error_part1, x, y);
6950
d2846442a133 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium <rubidium@openttd.org>
parents: 6943
diff changeset
624 if (res2.GetCost() == 0) goto callb_err;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
625 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
626 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
627
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
628 _docommand_recursive = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
629
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
630 if (callback) callback(true, tile, p1, p2);
7609
9e4c3b886ccb (svn r11138) -Codechange: prepare some subsystems for persistent storage for NewGRFs.
rubidium <rubidium@openttd.org>
parents: 7559
diff changeset
631 ClearStorageChanges(true);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
632 return true;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
633
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
634 show_error:
6123
595dc16a6fd8 (svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas <belugas@openttd.org>
parents: 6012
diff changeset
635 /* show error message if the command fails? */
10207
c54d140df948 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with.
rubidium <rubidium@openttd.org>
parents: 10151
diff changeset
636 if (IsLocalCompany() && error_part1 != 0 && my_cmd) {
6491
696f0e1b046e (svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium <rubidium@openttd.org>
parents: 6453
diff changeset
637 ShowErrorMessage(_error_message, error_part1, x, y);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
638 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
639
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
640 callb_err:
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
641 _docommand_recursive = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
642
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
643 if (callback) callback(false, tile, p1, p2);
7609
9e4c3b886ccb (svn r11138) -Codechange: prepare some subsystems for persistent storage for NewGRFs.
rubidium <rubidium@openttd.org>
parents: 7559
diff changeset
644 ClearStorageChanges(false);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
645 return false;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
646 }
8854
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
647
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
648
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
649 CommandCost CommandCost::AddCost(CommandCost ret)
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
650 {
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
651 this->AddCost(ret.cost);
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
652 if (this->success && !ret.success) {
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
653 this->message = ret.message;
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
654 this->success = false;
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
655 }
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
656 return *this;
855ce528445f (svn r12616) -Codechange: r12591 didn't work as expected for NDS, move one function back to cpp
smatz <smatz@openttd.org>
parents: 8841
diff changeset
657 }