diff src/command.cpp @ 7559:ad850ff2c61a draft

(svn r11084) -Documentation [FS#1219]: of command.*. Patch by Progman.
author rubidium <rubidium@openttd.org>
date Mon, 10 Sep 2007 15:21:14 +0000 (2007-09-10)
parents f5b39ff47e0e
children 9e4c3b886ccb
line wrap: on
line diff
--- a/src/command.cpp
+++ b/src/command.cpp
@@ -16,8 +16,17 @@
 #include "variables.h"
 #include "genworld.h"
 
-const char* _cmd_text = NULL;
+const char *_cmd_text = NULL;
 
+/**
+ * Helper macro to define the header of all command handler macros.
+ *
+ * This macro create the function header for a given command handler function, as
+ * all command handler functions got the parameters from the #CommandProc callback
+ * type.
+ *
+ * @param yyyy The desired function name of the new command handler function.
+ */
 #define DEF_COMMAND(yyyy) CommandCost yyyy(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
 DEF_COMMAND(CmdBuildRailroadTrack);
@@ -181,166 +190,178 @@
 DEF_COMMAND(CmdChangeTimetable);
 DEF_COMMAND(CmdSetVehicleOnTime);
 DEF_COMMAND(CmdAutofillTimetable);
+#undef DEF_COMMAND
 
-/* The master command table */
+/**
+ * The master command table
+ *
+ * This table contains all possible CommandProc functions with
+ * the flags which belongs to it. The indizes are the same
+ * as the value from the CMD_* enums.
+ */
 static const Command _command_proc_table[] = {
-	{CmdBuildRailroadTrack,           CMD_AUTO}, /*   0 */
-	{CmdRemoveRailroadTrack,          CMD_AUTO}, /*   1 */
-	{CmdBuildSingleRail,              CMD_AUTO}, /*   2 */
-	{CmdRemoveSingleRail,             CMD_AUTO}, /*   3 */
-	{CmdLandscapeClear,                      0}, /*   4 */
-	{CmdBuildBridge,                  CMD_AUTO}, /*   5 */
-	{CmdBuildRailroadStation,         CMD_AUTO}, /*   6 */
-	{CmdBuildTrainDepot,              CMD_AUTO}, /*   7 */
-	{CmdBuildSingleSignal,            CMD_AUTO}, /*   8 */
-	{CmdRemoveSingleSignal,           CMD_AUTO}, /*   9 */
-	{CmdTerraformLand,                CMD_AUTO}, /*  10 */
-	{CmdPurchaseLandArea,             CMD_AUTO}, /*  11 */
-	{CmdSellLandArea,                        0}, /*  12 */
-	{CmdBuildTunnel,                  CMD_AUTO}, /*  13 */
-	{CmdRemoveFromRailroadStation,           0}, /*  14 */
-	{CmdConvertRail,                         0}, /*  15 */
-	{CmdBuildTrainWaypoint,                  0}, /*  16 */
-	{CmdRenameWaypoint,                      0}, /*  17 */
-	{CmdRemoveTrainWaypoint,                 0}, /*  18 */
-	{NULL,                                   0}, /*  19 */
-	{NULL,                                   0}, /*  20 */
-	{CmdBuildRoadStop,                CMD_AUTO}, /*  21 */
-	{CmdRemoveRoadStop,                      0}, /*  22 */
-	{CmdBuildLongRoad,                CMD_AUTO}, /*  23 */
-	{CmdRemoveLongRoad,               CMD_AUTO}, /*  24 */
-	{CmdBuildRoad,                           0}, /*  25 */
-	{CmdRemoveRoad,                          0}, /*  26 */
-	{CmdBuildRoadDepot,               CMD_AUTO}, /*  27 */
-	{NULL,                                   0}, /*  28 */
-	{CmdBuildAirport,                 CMD_AUTO}, /*  29 */
-	{CmdBuildDock,                    CMD_AUTO}, /*  30 */
-	{CmdBuildShipDepot,               CMD_AUTO}, /*  31 */
-	{CmdBuildBuoy,                    CMD_AUTO}, /*  32 */
-	{CmdPlantTree,                    CMD_AUTO}, /*  33 */
-	{CmdBuildRailVehicle,                    0}, /*  34 */
-	{CmdMoveRailVehicle,                     0}, /*  35 */
-	{CmdStartStopTrain,                      0}, /*  36 */
-	{NULL,                                   0}, /*  37 */
-	{CmdSellRailWagon,                       0}, /*  38 */
-	{CmdSendTrainToDepot,                    0}, /*  39 */
-	{CmdForceTrainProceed,                   0}, /*  40 */
-	{CmdReverseTrainDirection,               0}, /*  41 */
+	{CmdBuildRailroadTrack,           CMD_AUTO}, /*   0, CMD_BUILD_RAILROAD_TRACK */
+	{CmdRemoveRailroadTrack,          CMD_AUTO}, /*   1, CMD_REMOVE_RAILROAD_TRACK */
+	{CmdBuildSingleRail,              CMD_AUTO}, /*   2, CMD_BUILD_SINGLE_RAIL */
+	{CmdRemoveSingleRail,             CMD_AUTO}, /*   3, CMD_REMOVE_SINGLE_RAIL */
+	{CmdLandscapeClear,                      0}, /*   4, CMD_LANDSCAPE_CLEAR */
+	{CmdBuildBridge,                  CMD_AUTO}, /*   5, CMD_BUILD_BRIDGE */
+	{CmdBuildRailroadStation,         CMD_AUTO}, /*   6, CMD_BUILD_RAILROAD_STATION */
+	{CmdBuildTrainDepot,              CMD_AUTO}, /*   7, CMD_BUILD_TRAIN_DEPOT */
+	{CmdBuildSingleSignal,            CMD_AUTO}, /*   8, CMD_BUILD_SIGNALS */
+	{CmdRemoveSingleSignal,           CMD_AUTO}, /*   9, CMD_REMOVE_SIGNALS */
+	{CmdTerraformLand,                CMD_AUTO}, /*  10, CMD_TERRAFORM_LAND */
+	{CmdPurchaseLandArea,             CMD_AUTO}, /*  11, CMD_PURCHASE_LAND_AREA */
+	{CmdSellLandArea,                        0}, /*  12, CMD_SELL_LAND_AREA */
+	{CmdBuildTunnel,                  CMD_AUTO}, /*  13, CMD_BUILD_TUNNEL */
+	{CmdRemoveFromRailroadStation,           0}, /*  14, CMD_REMOVE_FROM_RAILROAD_STATION */
+	{CmdConvertRail,                         0}, /*  15, CMD_CONVERT_RAILD */
+	{CmdBuildTrainWaypoint,                  0}, /*  16, CMD_BUILD_TRAIN_WAYPOINT */
+	{CmdRenameWaypoint,                      0}, /*  17, CMD_RENAME_WAYPOINT */
+	{CmdRemoveTrainWaypoint,                 0}, /*  18, CMD_REMOVE_TRAIN_WAYPOINT */
+	{NULL,                                   0}, /*  19, unused */
+	{NULL,                                   0}, /*  20, unused */
+	{CmdBuildRoadStop,                CMD_AUTO}, /*  21, CMD_BUILD_ROAD_STOP */
+	{CmdRemoveRoadStop,                      0}, /*  22, CMD_REMOVE_ROAD_STOP */
+	{CmdBuildLongRoad,                CMD_AUTO}, /*  23, CMD_BUILD_LONG_ROAD */
+	{CmdRemoveLongRoad,               CMD_AUTO}, /*  24, CMD_REMOVE_LONG_ROAD */
+	{CmdBuildRoad,                           0}, /*  25, CMD_BUILD_ROAD */
+	{CmdRemoveRoad,                          0}, /*  26, CMD_REMOVE_ROAD */
+	{CmdBuildRoadDepot,               CMD_AUTO}, /*  27, CMD_BUILD_ROAD_DEPOT */
+	{NULL,                                   0}, /*  28, unused */
+	{CmdBuildAirport,                 CMD_AUTO}, /*  29, CMD_BUILD_AIRPORT */
+	{CmdBuildDock,                    CMD_AUTO}, /*  30, CMD_BUILD_DOCK */
+	{CmdBuildShipDepot,               CMD_AUTO}, /*  31, CMD_BUILD_SHIP_DEPOT */
+	{CmdBuildBuoy,                    CMD_AUTO}, /*  32, CMD_BUILD_BUOY */
+	{CmdPlantTree,                    CMD_AUTO}, /*  33, CMD_PLANT_TREE */
+	{CmdBuildRailVehicle,                    0}, /*  34, CMD_BUILD_RAIL_VEHICLE */
+	{CmdMoveRailVehicle,                     0}, /*  35, CMD_MOVE_RAIL_VEHICLE */
+	{CmdStartStopTrain,                      0}, /*  36, CMD_START_STOP_TRAIN */
+	{NULL,                                   0}, /*  37, unused */
+	{CmdSellRailWagon,                       0}, /*  38, CMD_SELL_RAIL_WAGON */
+	{CmdSendTrainToDepot,                    0}, /*  39, CMD_SEND_TRAIN_TO_DEPOT */
+	{CmdForceTrainProceed,                   0}, /*  40, CMD_FORCE_TRAIN_PROCEED */
+	{CmdReverseTrainDirection,               0}, /*  41, CMD_REVERSE_TRAIN_DIRECTION */
 
-	{CmdModifyOrder,                         0}, /*  42 */
-	{CmdSkipToOrder,                         0}, /*  43 */
-	{CmdDeleteOrder,                         0}, /*  44 */
-	{CmdInsertOrder,                         0}, /*  45 */
-
-	{CmdChangeServiceInt,                    0}, /*  46 */
+	{CmdModifyOrder,                         0}, /*  42, CMD_MODIFY_ORDER */
+	{CmdSkipToOrder,                         0}, /*  43, CMD_SKIP_TO_ORDER */
+	{CmdDeleteOrder,                         0}, /*  44, CMD_DELETE_ORDER */
+	{CmdInsertOrder,                         0}, /*  45, CMD_INSERT_ORDER */
 
-	{CmdBuildIndustry,                       0}, /*  47 */
-	{CmdBuildCompanyHQ,               CMD_AUTO}, /*  48 */
-	{CmdSetPlayerFace,                       0}, /*  49 */
-	{CmdSetPlayerColor,                      0}, /*  50 */
+	{CmdChangeServiceInt,                    0}, /*  46, CMD_CHANGE_SERVICE_INT */
 
-	{CmdIncreaseLoan,                        0}, /*  51 */
-	{CmdDecreaseLoan,                        0}, /*  52 */
+	{CmdBuildIndustry,                       0}, /*  47, CMD_BUILD_INDUSTRY */
+	{CmdBuildCompanyHQ,               CMD_AUTO}, /*  48, CMD_BUILD_COMPANY_HQ */
+	{CmdSetPlayerFace,                       0}, /*  49, CMD_SET_PLAYER_FACE */
+	{CmdSetPlayerColor,                      0}, /*  50, CMD_SET_PLAYER_COLOR */
 
-	{CmdWantEnginePreview,                   0}, /*  53 */
+	{CmdIncreaseLoan,                        0}, /*  51, CMD_INCREASE_LOAN */
+	{CmdDecreaseLoan,                        0}, /*  52, CMD_DECREASE_LOAN */
 
-	{CmdNameVehicle,                         0}, /*  54 */
-	{CmdRenameEngine,                        0}, /*  55 */
+	{CmdWantEnginePreview,                   0}, /*  53, CMD_WANT_ENGINE_PREVIEW */
 
-	{CmdChangeCompanyName,                   0}, /*  56 */
-	{CmdChangePresidentName,                 0}, /*  57 */
+	{CmdNameVehicle,                         0}, /*  54, CMD_NAME_VEHICLE */
+	{CmdRenameEngine,                        0}, /*  55, CMD_RENAME_ENGINE */
 
-	{CmdRenameStation,                       0}, /*  58 */
-
-	{CmdSellAircraft,                        0}, /*  59 */
-	{CmdStartStopAircraft,                   0}, /*  60 */
+	{CmdChangeCompanyName,                   0}, /*  56, CMD_CHANGE_COMPANY_NAME */
+	{CmdChangePresidentName,                 0}, /*  57, CMD_CHANGE_PRESIDENT_NAME */
 
-	{CmdBuildAircraft,                       0}, /*  61 */
-	{CmdSendAircraftToHangar,                0}, /*  62 */
-	{NULL,                                   0}, /*  63 */
-	{CmdRefitAircraft,                       0}, /*  64 */
+	{CmdRenameStation,                       0}, /*  58, CMD_RENAME_STATION */
+
+	{CmdSellAircraft,                        0}, /*  59, CMD_SELL_AIRCRAFT */
+	{CmdStartStopAircraft,                   0}, /*  60, CMD_START_STOP_AIRCRAFT */
 
-	{CmdPlaceSign,                           0}, /*  65 */
-	{CmdRenameSign,                          0}, /*  66 */
+	{CmdBuildAircraft,                       0}, /*  61, CMD_BUILD_AIRCRAFT */
+	{CmdSendAircraftToHangar,                0}, /*  62, CMD_SEND_AIRCRAFT_TO_HANGAR */
+	{NULL,                                   0}, /*  63, unused */
+	{CmdRefitAircraft,                       0}, /*  64, CMD_REFIT_AIRCRAFT */
+
+	{CmdPlaceSign,                           0}, /*  65, CMD_PLACE_SIGN */
+	{CmdRenameSign,                          0}, /*  66, CMD_RENAME_SIGN */
 
-	{CmdBuildRoadVeh,                        0}, /*  67 */
-	{CmdStartStopRoadVeh,                    0}, /*  68 */
-	{CmdSellRoadVeh,                         0}, /*  69 */
-	{CmdSendRoadVehToDepot,                  0}, /*  70 */
-	{CmdTurnRoadVeh,                         0}, /*  71 */
-	{CmdRefitRoadVeh,                        0}, /*  72 */
+	{CmdBuildRoadVeh,                        0}, /*  67, CMD_BUILD_ROAD_VEH */
+	{CmdStartStopRoadVeh,                    0}, /*  68, CMD_START_STOP_ROADVEH */
+	{CmdSellRoadVeh,                         0}, /*  69, CMD_SELL_ROAD_VEH */
+	{CmdSendRoadVehToDepot,                  0}, /*  70, CMD_SEND_ROADVEH_TO_DEPOT */
+	{CmdTurnRoadVeh,                         0}, /*  71, CMD_TURN_ROADVEH */
+	{CmdRefitRoadVeh,                        0}, /*  72, CMD_REFIT_ROAD_VEH */
 
-	{CmdPause,                      CMD_SERVER}, /*  73 */
-
-	{CmdBuyShareInCompany,                   0}, /*  74 */
-	{CmdSellShareInCompany,                  0}, /*  75 */
-	{CmdBuyCompany,                          0}, /*  76 */
+	{CmdPause,                      CMD_SERVER}, /*  73, CMD_PAUSE */
 
-	{CmdBuildTown,                 CMD_OFFLINE}, /*  77 */
-	{NULL,                                   0}, /*  78 */
-	{NULL,                                   0}, /*  79 */
-	{CmdRenameTown,                 CMD_SERVER}, /*  80 */
-	{CmdDoTownAction,                        0}, /*  81 */
+	{CmdBuyShareInCompany,                   0}, /*  74, CMD_BUY_SHARE_IN_COMPANY */
+	{CmdSellShareInCompany,                  0}, /*  75, CMD_SELL_SHARE_IN_COMPANY */
+	{CmdBuyCompany,                          0}, /*  76, CMD_BUY_COMANY */
+
+	{CmdBuildTown,                 CMD_OFFLINE}, /*  77, CMD_BUILD_TOWN */
+	{NULL,                                   0}, /*  78, unused */
+	{NULL,                                   0}, /*  79, unused */
+	{CmdRenameTown,                 CMD_SERVER}, /*  80, CMD_RENAME_TOWN */
+	{CmdDoTownAction,                        0}, /*  81, CMD_DO_TOWN_ACTION */
 
-	{CmdSetRoadDriveSide,           CMD_SERVER}, /*  82 */
-	{NULL,                                   0}, /*  83 */
-	{NULL,                                   0}, /*  84 */
-	{CmdChangeDifficultyLevel,      CMD_SERVER}, /*  85 */
+	{CmdSetRoadDriveSide,           CMD_SERVER}, /*  82, CMD_SET_ROAD_DRIVE_SIDE */
+	{NULL,                                   0}, /*  83, unused */
+	{NULL,                                   0}, /*  84, unused */
+	{CmdChangeDifficultyLevel,      CMD_SERVER}, /*  85, CMD_CHANGE_DIFFICULTY_LEVEL */
 
-	{CmdStartStopShip,                       0}, /*  86 */
-	{CmdSellShip,                            0}, /*  87 */
-	{CmdBuildShip,                           0}, /*  88 */
-	{CmdSendShipToDepot,                     0}, /*  89 */
-	{NULL,                                   0}, /*  90 */
-	{CmdRefitShip,                           0}, /*  91 */
+	{CmdStartStopShip,                       0}, /*  86, CMD_START_STOP_SHIP */
+	{CmdSellShip,                            0}, /*  87, CMD_SELL_SHIP */
+	{CmdBuildShip,                           0}, /*  88, CMD_BUILD_SHIP */
+	{CmdSendShipToDepot,                     0}, /*  89, CMD_SEND_SHIP_TO_DEPOT */
+	{NULL,                                   0}, /*  90, unused */
+	{CmdRefitShip,                           0}, /*  91, CMD_REFIT_SHIP */
 
-	{NULL,                                   0}, /*  92 */
-	{NULL,                                   0}, /*  93 */
-	{NULL,                                   0}, /*  94 */
-	{NULL,                                   0}, /*  95 */
-	{NULL,                                   0}, /*  96 */
-	{NULL,                                   0}, /*  97 */
+	{NULL,                                   0}, /*  92, unused */
+	{NULL,                                   0}, /*  93, unused */
+	{NULL,                                   0}, /*  94, unused */
+	{NULL,                                   0}, /*  95, unused */
+	{NULL,                                   0}, /*  96, unused */
+	{NULL,                                   0}, /*  97, unused */
 
-	{CmdOrderRefit,                          0}, /*  98 */
-	{CmdCloneOrder,                          0}, /*  99 */
+	{CmdOrderRefit,                          0}, /*  98, CMD_ORDER_REFIT */
+	{CmdCloneOrder,                          0}, /*  99, CMD_CLONE_ORDER */
 
-	{CmdClearArea,                           0}, /* 100 */
-	{NULL,                                   0}, /* 101 */
+	{CmdClearArea,                           0}, /* 100, CMD_CLEAR_AREA */
+	{NULL,                                   0}, /* 101, unused */
 
-	{CmdMoneyCheat,                CMD_OFFLINE}, /* 102 */
-	{CmdBuildCanal,                   CMD_AUTO}, /* 103 */
-	{CmdPlayerCtrl,                          0}, /* 104 */
+	{CmdMoneyCheat,                CMD_OFFLINE}, /* 102, CMD_MONEY_CHEAT */
+	{CmdBuildCanal,                   CMD_AUTO}, /* 103, CMD_BUILD_CANAL */
+	{CmdPlayerCtrl,                          0}, /* 104, CMD_PLAYER_CTRL */
 
-	{CmdLevelLand,                    CMD_AUTO}, /* 105 */
+	{CmdLevelLand,                    CMD_AUTO}, /* 105, CMD_LEVEL_LAND */
 
-	{CmdRefitRailVehicle,                    0}, /* 106 */
-	{CmdRestoreOrderIndex,                   0}, /* 107 */
-	{CmdBuildLock,                    CMD_AUTO}, /* 108 */
-	{NULL,                                   0}, /* 109 */
-	{CmdBuildSignalTrack,             CMD_AUTO}, /* 110 */
-	{CmdRemoveSignalTrack,            CMD_AUTO}, /* 111 */
-	{NULL,                                   0}, /* 112 */
-	{CmdGiveMoney,                           0}, /* 113 */
-	{CmdChangePatchSetting,         CMD_SERVER}, /* 114 */
-	{CmdSetAutoReplace,                      0}, /* 115 */
-	{CmdCloneVehicle,                        0}, /* 116 */
-	{CmdMassStartStopVehicle,                0}, /* 117 */
-	{CmdDepotSellAllVehicles,                0}, /* 118 */
-	{CmdDepotMassAutoReplace,                0}, /* 119 */
-	{CmdCreateGroup,                         0}, /* 120 */
-	{CmdDeleteGroup,                         0}, /* 121 */
-	{CmdRenameGroup,                         0}, /* 122 */
-	{CmdAddVehicleGroup,                     0}, /* 123 */
-	{CmdAddSharedVehicleGroup,               0}, /* 124 */
-	{CmdRemoveAllVehiclesGroup,              0}, /* 125 */
-	{CmdSetGroupReplaceProtection,           0}, /* 126 */
-	{CmdMoveOrder,                           0}, /* 127 */
-	{CmdChangeTimetable,                     0}, /* 128 */
-	{CmdSetVehicleOnTime,                    0}, /* 129 */
-	{CmdAutofillTimetable,                   0}, /* 130 */
+	{CmdRefitRailVehicle,                    0}, /* 106, CMD_REFIT_RAIL_VEHICLE */
+	{CmdRestoreOrderIndex,                   0}, /* 107, CMD_RESTORE_ORDER_INDEX */
+	{CmdBuildLock,                    CMD_AUTO}, /* 108, CMD_BUILD_LOCK */
+	{NULL,                                   0}, /* 109, unused */
+	{CmdBuildSignalTrack,             CMD_AUTO}, /* 110, CMD_BUILD_SIGNAL_TRACK */
+	{CmdRemoveSignalTrack,            CMD_AUTO}, /* 111, CMD_REMOVE_SIGNAL_TRACK */
+	{NULL,                                   0}, /* 112, unused */
+	{CmdGiveMoney,                           0}, /* 113, CMD_GIVE_MONEY */
+	{CmdChangePatchSetting,         CMD_SERVER}, /* 114, CMD_CHANGE_PATCH_SETTING */
+	{CmdSetAutoReplace,                      0}, /* 115, CMD_SET_AUTOREPLACE */
+	{CmdCloneVehicle,                        0}, /* 116, CMD_CLONE_VEHICLE */
+	{CmdMassStartStopVehicle,                0}, /* 117, CMD_MASS_START_STOP */
+	{CmdDepotSellAllVehicles,                0}, /* 118, CMD_DEPOT_SELL_ALL_VEHICLES */
+	{CmdDepotMassAutoReplace,                0}, /* 119, CMD_DEPOT_MASS_AUTOREPLACE */
+	{CmdCreateGroup,                         0}, /* 120, CMD_CREATE_GROUP */
+	{CmdDeleteGroup,                         0}, /* 121, CMD_DELETE_GROUP */
+	{CmdRenameGroup,                         0}, /* 122, CMD_RENAME_GROUP */
+	{CmdAddVehicleGroup,                     0}, /* 123, CMD_ADD_VEHICLE_GROUP */
+	{CmdAddSharedVehicleGroup,               0}, /* 124, CMD_ADD_SHARE_VEHICLE_GROUP */
+	{CmdRemoveAllVehiclesGroup,              0}, /* 125, CMD_REMOVE_ALL_VEHICLES_GROUP */
+	{CmdSetGroupReplaceProtection,           0}, /* 126, CMD_SET_GROUP_REPLACE_PROTECTION */
+	{CmdMoveOrder,                           0}, /* 127, CMD_MOVE_ORDER */
+	{CmdChangeTimetable,                     0}, /* 128, CMD_CHANGE_TIMETABLE */
+	{CmdSetVehicleOnTime,                    0}, /* 129, CMD_SET_VEHICLE_ON_TIME */
+	{CmdAutofillTimetable,                   0}, /* 130, CMD_AUTOFILL_TIMETABLE */
 };
 
-/* This function range-checks a cmd, and checks if the cmd is not NULL */
+/*!
+ * This function range-checks a cmd, and checks if the cmd is not NULL
+ *
+ * @param cmd The integervalue of a command
+ * @return true if the command is valid (and got a CommandProc function)
+ */
 bool IsValidCommand(uint cmd)
 {
 	cmd &= 0xFF;
@@ -350,14 +371,34 @@
 		_command_proc_table[cmd].proc != NULL;
 }
 
+/*!
+ * This function mask the parameter with 0xFF and returns
+ * the flags which belongs to the given command.
+ *
+ * @param cmd The integer value of the command
+ * @return The flags for this command
+ * @bug integervalues which are less equals 0xFF and greater than the
+ *      size of _command_proc_table can result in an index out of bounce
+ *      error (which doesn't happend anyway). Check function #IsValidCommand(). (Progman)
+ */
 byte GetCommandFlags(uint cmd)
 {
 	return _command_proc_table[cmd & 0xFF].flags;
 }
 
-
 static int _docommand_recursive;
 
+/*!
+ * This function executes a given command with the parameters from the #CommandProc parameter list.
+ * Depending on the flags parameter it execute or test a command.
+ *
+ * @param tile The tile to apply the command on (for the #CommandProc)
+ * @param p1 Additional data for the command (for the #CommandProc)
+ * @param p2 Additional data for the command (for the #CommandProc)
+ * @param flags Flags for the command and how to execute the command
+ * @param procc The command-id to execute (a value of the CMD_* enums)
+ * @see CommandProc
+ */
 CommandCost DoCommand(TileIndex tile, uint32 p1, uint32 p2, uint32 flags, uint procc)
 {
 	CommandCost res;
@@ -421,6 +462,13 @@
 	return res;
 }
 
+/*!
+ * This functions returns the money which can be used to execute a command.
+ * This is either the money of the current player or INT64_MAX if there
+ * is no such a player "at the moment" like the server itself.
+ *
+ * @return The available money of a player or INT64_MAX
+ */
 Money GetAvailableMoneyForCommand()
 {
 	PlayerID pid = _current_player;
@@ -428,8 +476,20 @@
 	return GetPlayer(pid)->player_money;
 }
 
-/* toplevel network safe docommand function for the current player. must not be called recursively.
- * the callback is called when the command succeeded or failed. */
+/*!
+ * Toplevel network safe docommand function for the current player. Must not be called recursively.
+ * The callback is called when the command succeeded or failed. The parameters
+ * tile, p1 and p2 are from the #CommandProc function. The paramater cmd is the command to execute.
+ * The parameter my_cmd is used to indicate if the command is from a player or the server.
+ *
+ * @param tile The tile to perform a command on (see #CommandProc)
+ * @param p1 Additional data for the command (see #CommandProc)
+ * @param p2 Additional data for the command (see #CommandProc)
+ * @param callback A callback function to call after the command is finished
+ * @param cmd The command to execute (a CMD_* value)
+ * @param my_cmd indicator if the command is from a player or server (to display error messages for a user)
+ * @return true if the command succeeded, else false
+ */
 bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback, uint32 cmd, bool my_cmd)
 {
 	CommandCost res, res2;