changeset 7521:f5b39ff47e0e draft

(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
author rubidium <rubidium@openttd.org>
date Tue, 04 Sep 2007 11:58:27 +0000
parents 1903ce8b07b4
children 7cf3cb01d4df
files src/ai/ai.cpp src/airport_gui.cpp src/bridge_gui.cpp src/command.cpp src/command.h src/dock_gui.cpp src/main_gui.cpp src/misc_gui.cpp src/player_gui.cpp src/rail_gui.cpp src/road_gui.cpp src/terraform_gui.cpp
diffstat 12 files changed, 65 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/ai.cpp
+++ b/src/ai/ai.cpp
@@ -106,7 +106,6 @@
 
 	/* If we did a DC_EXEC, and the command did not return an error, execute it
 	 * over the network */
-	if (flags & DC_AUTO)     procc |= CMD_AUTO;
 	if (flags & DC_NO_WATER) procc |= CMD_NO_WATER;
 
 	/* NetworkSend_Command needs _local_player to be set correctly, so
--- a/src/airport_gui.cpp
+++ b/src/airport_gui.cpp
@@ -34,7 +34,7 @@
 
 static void PlaceAirport(TileIndex tile)
 {
-	DoCommandP(tile, _selected_airport_type, _ctrl_pressed, CcBuildAirport, CMD_BUILD_AIRPORT | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_A001_CAN_T_BUILD_AIRPORT_HERE));
+	DoCommandP(tile, _selected_airport_type, _ctrl_pressed, CcBuildAirport, CMD_BUILD_AIRPORT | CMD_NO_WATER | CMD_MSG(STR_A001_CAN_T_BUILD_AIRPORT_HERE));
 }
 
 static void PlaceAir_DemolishArea(TileIndex tile)
--- a/src/bridge_gui.cpp
+++ b/src/bridge_gui.cpp
@@ -36,7 +36,7 @@
 	DeleteWindow(w);
 	DoCommandP(_bridgedata.end_tile, _bridgedata.start_tile,
 		_bridgedata.indexes[i] | (_bridgedata.type << 8), CcBuildBridge,
-		CMD_BUILD_BRIDGE | CMD_AUTO | CMD_MSG(STR_5015_CAN_T_BUILD_BRIDGE_HERE));
+		CMD_BUILD_BRIDGE | CMD_MSG(STR_5015_CAN_T_BUILD_BRIDGE_HERE));
 }
 
 static void BuildBridgeWndProc(Window *w, WindowEvent *e)
--- a/src/command.cpp
+++ b/src/command.cpp
@@ -184,20 +184,20 @@
 
 /* The master command table */
 static const Command _command_proc_table[] = {
-	{CmdBuildRailroadTrack,                  0}, /*   0 */
-	{CmdRemoveRailroadTrack,                 0}, /*   1 */
-	{CmdBuildSingleRail,                     0}, /*   2 */
-	{CmdRemoveSingleRail,                    0}, /*   3 */
+	{CmdBuildRailroadTrack,           CMD_AUTO}, /*   0 */
+	{CmdRemoveRailroadTrack,          CMD_AUTO}, /*   1 */
+	{CmdBuildSingleRail,              CMD_AUTO}, /*   2 */
+	{CmdRemoveSingleRail,             CMD_AUTO}, /*   3 */
 	{CmdLandscapeClear,                      0}, /*   4 */
-	{CmdBuildBridge,                         0}, /*   5 */
-	{CmdBuildRailroadStation,                0}, /*   6 */
-	{CmdBuildTrainDepot,                     0}, /*   7 */
-	{CmdBuildSingleSignal,                   0}, /*   8 */
-	{CmdRemoveSingleSignal,                  0}, /*   9 */
-	{CmdTerraformLand,                       0}, /*  10 */
-	{CmdPurchaseLandArea,                    0}, /*  11 */
+	{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,                         0}, /*  13 */
+	{CmdBuildTunnel,                  CMD_AUTO}, /*  13 */
 	{CmdRemoveFromRailroadStation,           0}, /*  14 */
 	{CmdConvertRail,                         0}, /*  15 */
 	{CmdBuildTrainWaypoint,                  0}, /*  16 */
@@ -205,19 +205,19 @@
 	{CmdRemoveTrainWaypoint,                 0}, /*  18 */
 	{NULL,                                   0}, /*  19 */
 	{NULL,                                   0}, /*  20 */
-	{CmdBuildRoadStop,                       0}, /*  21 */
+	{CmdBuildRoadStop,                CMD_AUTO}, /*  21 */
 	{CmdRemoveRoadStop,                      0}, /*  22 */
-	{CmdBuildLongRoad,                       0}, /*  23 */
-	{CmdRemoveLongRoad,                      0}, /*  24 */
+	{CmdBuildLongRoad,                CMD_AUTO}, /*  23 */
+	{CmdRemoveLongRoad,               CMD_AUTO}, /*  24 */
 	{CmdBuildRoad,                           0}, /*  25 */
 	{CmdRemoveRoad,                          0}, /*  26 */
-	{CmdBuildRoadDepot,                      0}, /*  27 */
+	{CmdBuildRoadDepot,               CMD_AUTO}, /*  27 */
 	{NULL,                                   0}, /*  28 */
-	{CmdBuildAirport,                        0}, /*  29 */
-	{CmdBuildDock,                           0}, /*  30 */
-	{CmdBuildShipDepot,                      0}, /*  31 */
-	{CmdBuildBuoy,                           0}, /*  32 */
-	{CmdPlantTree,                           0}, /*  33 */
+	{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 */
@@ -235,7 +235,7 @@
 	{CmdChangeServiceInt,                    0}, /*  46 */
 
 	{CmdBuildIndustry,                       0}, /*  47 */
-	{CmdBuildCompanyHQ,                      0}, /*  48 */
+	{CmdBuildCompanyHQ,               CMD_AUTO}, /*  48 */
 	{CmdSetPlayerFace,                       0}, /*  49 */
 	{CmdSetPlayerColor,                      0}, /*  50 */
 
@@ -308,17 +308,17 @@
 	{NULL,                                   0}, /* 101 */
 
 	{CmdMoneyCheat,                CMD_OFFLINE}, /* 102 */
-	{CmdBuildCanal,                          0}, /* 103 */
+	{CmdBuildCanal,                   CMD_AUTO}, /* 103 */
 	{CmdPlayerCtrl,                          0}, /* 104 */
 
-	{CmdLevelLand,                           0}, /* 105 */
+	{CmdLevelLand,                    CMD_AUTO}, /* 105 */
 
 	{CmdRefitRailVehicle,                    0}, /* 106 */
 	{CmdRestoreOrderIndex,                   0}, /* 107 */
-	{CmdBuildLock,                           0}, /* 108 */
+	{CmdBuildLock,                    CMD_AUTO}, /* 108 */
 	{NULL,                                   0}, /* 109 */
-	{CmdBuildSignalTrack,                    0}, /* 110 */
-	{CmdRemoveSignalTrack,                   0}, /* 111 */
+	{CmdBuildSignalTrack,             CMD_AUTO}, /* 110 */
+	{CmdRemoveSignalTrack,            CMD_AUTO}, /* 111 */
 	{NULL,                                   0}, /* 112 */
 	{CmdGiveMoney,                           0}, /* 113 */
 	{CmdChangePatchSetting,         CMD_SERVER}, /* 114 */
@@ -462,7 +462,6 @@
 	}
 
 	flags = 0;
-	if (cmd & CMD_AUTO) flags |= DC_AUTO;
 	if (cmd & CMD_NO_WATER) flags |= DC_NO_WATER;
 
 	/* get pointer to command handler */
@@ -473,6 +472,8 @@
 		return false;
 	}
 
+	if (GetCommandFlags(cmd) & CMD_AUTO) flags |= DC_AUTO;
+
 	/* Some commands have a different output in dryrun than the realrun
 	 *  e.g.: if you demolish a whole town, the dryrun would say okay.
 	 *  but by really destroying, your rating drops and at a certain point
--- a/src/command.h
+++ b/src/command.h
@@ -172,7 +172,6 @@
 #define CMD_MSG(x) ((x) << 16)
 
 enum {
-	CMD_AUTO                  = 0x0200,
 	CMD_NO_WATER              = 0x0400,
 	CMD_NETWORK_COMMAND       = 0x0800, ///< execute the command without sending it on the network
 	CMD_NO_TEST_IF_IN_NETWORK = 0x1000, ///< When enabled, the command will bypass the no-DC_EXEC round if in network
@@ -183,6 +182,7 @@
 enum {
 	CMD_SERVER  = 0x1, ///< the command can only be initiated by the server
 	CMD_OFFLINE = 0x2, ///< the command cannot be executed in a multiplayer game; single-player only
+	CMD_AUTO    = 0x4, ///< set the DC_AUTO flag on this command
 };
 
 typedef CommandCost CommandProc(TileIndex tile, uint32 flags, uint32 p1, uint32 p2);
--- a/src/dock_gui.cpp
+++ b/src/dock_gui.cpp
@@ -38,17 +38,17 @@
 
 static void PlaceDocks_Dock(TileIndex tile)
 {
-	DoCommandP(tile, _ctrl_pressed, 0, CcBuildDocks, CMD_BUILD_DOCK | CMD_AUTO | CMD_MSG(STR_9802_CAN_T_BUILD_DOCK_HERE));
+	DoCommandP(tile, _ctrl_pressed, 0, CcBuildDocks, CMD_BUILD_DOCK | CMD_MSG(STR_9802_CAN_T_BUILD_DOCK_HERE));
 }
 
 static void PlaceDocks_Depot(TileIndex tile)
 {
-	DoCommandP(tile, _ship_depot_direction, 0, CcBuildDocks, CMD_BUILD_SHIP_DEPOT | CMD_AUTO | CMD_MSG(STR_3802_CAN_T_BUILD_SHIP_DEPOT));
+	DoCommandP(tile, _ship_depot_direction, 0, CcBuildDocks, CMD_BUILD_SHIP_DEPOT | CMD_MSG(STR_3802_CAN_T_BUILD_SHIP_DEPOT));
 }
 
 static void PlaceDocks_Buoy(TileIndex tile)
 {
-	DoCommandP(tile, 0, 0, CcBuildDocks, CMD_BUILD_BUOY | CMD_AUTO | CMD_MSG(STR_9835_CAN_T_POSITION_BUOY_HERE));
+	DoCommandP(tile, 0, 0, CcBuildDocks, CMD_BUILD_BUOY | CMD_MSG(STR_9835_CAN_T_POSITION_BUOY_HERE));
 }
 
 static void PlaceDocks_DemolishArea(TileIndex tile)
@@ -63,7 +63,7 @@
 
 static void PlaceDocks_BuildLock(TileIndex tile)
 {
-	DoCommandP(tile, 0, 0, CcBuildDocks, CMD_BUILD_LOCK | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_LOCKS));
+	DoCommandP(tile, 0, 0, CcBuildDocks, CMD_BUILD_LOCK | CMD_MSG(STR_CANT_BUILD_LOCKS));
 }
 
 
@@ -162,7 +162,7 @@
 					GUIPlaceProcDragXY(e);
 					break;
 				case DDSP_CREATE_WATER:
-					DoCommandP(e->we.place.tile, e->we.place.starttile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS));
+					DoCommandP(e->we.place.tile, e->we.place.starttile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS));
 					break;
 				default: break;
 			}
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -1086,7 +1086,7 @@
 		StringID msg =
 			mode ? STR_0808_CAN_T_RAISE_LAND_HERE : STR_0809_CAN_T_LOWER_LAND_HERE;
 
-		DoCommandP(tile, SLOPE_N, (uint32)mode, CcTerraform, CMD_TERRAFORM_LAND | CMD_AUTO | CMD_MSG(msg));
+		DoCommandP(tile, SLOPE_N, (uint32)mode, CcTerraform, CMD_TERRAFORM_LAND | CMD_MSG(msg));
 	} else {
 		SndPlayTileFx(SND_1F_SPLAT, tile);
 
@@ -1113,7 +1113,7 @@
 
 		BEGIN_TILE_LOOP(tile2, sizex, sizey, tile) {
 			if (TileHeight(tile2) == h) {
-				DoCommandP(tile2, SLOPE_N, (uint32)mode, NULL, CMD_TERRAFORM_LAND | CMD_AUTO);
+				DoCommandP(tile2, SLOPE_N, (uint32)mode, NULL, CMD_TERRAFORM_LAND);
 			}
 		} END_TILE_LOOP(tile2, sizex, sizey, tile)
 	}
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -396,7 +396,7 @@
 	case WE_PLACE_MOUSEUP:
 		if (e->we.place.pt.x != -1 && e->we.place.select_proc == DDSP_PLANT_TREES) {
 			DoCommandP(e->we.place.tile, _tree_to_plant, e->we.place.starttile, NULL,
-				CMD_PLANT_TREE | CMD_AUTO | CMD_MSG(STR_2805_CAN_T_PLANT_TREE_HERE));
+				CMD_PLANT_TREE | CMD_MSG(STR_2805_CAN_T_PLANT_TREE_HERE));
 		}
 		break;
 
--- a/src/player_gui.cpp
+++ b/src/player_gui.cpp
@@ -834,7 +834,7 @@
 			break;
 
 		case WE_PLACE_OBJ:
-			if (DoCommandP(e->we.place.tile, 0, 0, NULL, CMD_BUILD_COMPANY_HQ | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS)))
+			if (DoCommandP(e->we.place.tile, 0, 0, NULL, CMD_BUILD_COMPANY_HQ | CMD_NO_WATER | CMD_MSG(STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS)))
 				ResetObjectToPlace();
 				w->widget[PCW_WIDGET_BUILD_VIEW_HQ].type = WWT_PUSHTXTBTN; // this button can now behave as a normal push button
 				RaiseWindowButtons(w);
--- a/src/rail_gui.cpp
+++ b/src/rail_gui.cpp
@@ -66,8 +66,8 @@
 {
 	DoCommandP(tile, _cur_railtype, cmd, CcPlaySound1E,
 		_remove_button_clicked ?
-		CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) | CMD_AUTO | CMD_NO_WATER :
-		CMD_BUILD_SINGLE_RAIL | CMD_MSG(STR_1011_CAN_T_BUILD_RAILROAD_TRACK) | CMD_AUTO | CMD_NO_WATER
+		CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) | CMD_NO_WATER :
+		CMD_BUILD_SINGLE_RAIL | CMD_MSG(STR_1011_CAN_T_BUILD_RAILROAD_TRACK) | CMD_NO_WATER
 	);
 }
 
@@ -103,7 +103,7 @@
 	if (GetRailTileType(tile) != RAIL_TILE_NORMAL) return;
 	if ((GetTrackBits(tile) & GB(extra, 8, 8)) == 0) return;
 
-	DoCommandP(tile, _cur_railtype, extra & 0xFF, NULL, CMD_BUILD_SINGLE_RAIL | CMD_AUTO | CMD_NO_WATER);
+	DoCommandP(tile, _cur_railtype, extra & 0xFF, NULL, CMD_BUILD_SINGLE_RAIL | CMD_NO_WATER);
 }
 
 static const uint16 _place_depot_extra[12] = {
@@ -134,7 +134,7 @@
 static void PlaceRail_Depot(TileIndex tile)
 {
 	DoCommandP(tile, _cur_railtype, _build_depot_direction, CcRailDepot,
-		CMD_BUILD_TRAIN_DEPOT | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_100E_CAN_T_BUILD_TRAIN_DEPOT));
+		CMD_BUILD_TRAIN_DEPOT | CMD_NO_WATER | CMD_MSG(STR_100E_CAN_T_BUILD_TRAIN_DEPOT));
 }
 
 static void PlaceRail_Waypoint(TileIndex tile)
@@ -166,7 +166,7 @@
 		DoCommandP(tile,
 				_railstation.orientation | (_railstation.numtracks << 8) | (_railstation.platlength << 16) | (_ctrl_pressed << 24),
 				_cur_railtype | (_railstation.station_class << 8) | (_railstation.station_type << 16), CcStation,
-				CMD_BUILD_RAILROAD_STATION | CMD_NO_WATER | CMD_AUTO | CMD_MSG(STR_100F_CAN_T_BUILD_RAILROAD_STATION));
+				CMD_BUILD_RAILROAD_STATION | CMD_NO_WATER | CMD_MSG(STR_100F_CAN_T_BUILD_RAILROAD_STATION));
 	}
 }
 
@@ -190,10 +190,10 @@
 		SB(p1, 4, 1, _cur_year < _patches.semaphore_build_before);
 
 		DoCommandP(tile, p1, 0, CcPlaySound1E,
-			CMD_BUILD_SIGNALS | CMD_AUTO | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE));
+			CMD_BUILD_SIGNALS | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE));
 	} else {
 		DoCommandP(tile, track, 0, CcPlaySound1E,
-			CMD_REMOVE_SIGNALS | CMD_AUTO | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM));
+			CMD_REMOVE_SIGNALS | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM));
 	}
 }
 
@@ -215,12 +215,12 @@
 static void PlaceRail_Tunnel(TileIndex tile)
 {
 	DoCommandP(tile, _cur_railtype, 0, CcBuildRailTunnel,
-		CMD_BUILD_TUNNEL | CMD_AUTO | CMD_MSG(STR_5016_CAN_T_BUILD_TUNNEL_HERE));
+		CMD_BUILD_TUNNEL | CMD_MSG(STR_5016_CAN_T_BUILD_TUNNEL_HERE));
 }
 
 void PlaceProc_BuyLand(TileIndex tile)
 {
-	DoCommandP(tile, 0, 0, CcPlaySound1E, CMD_PURCHASE_LAND_AREA | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_5806_CAN_T_PURCHASE_THIS_LAND));
+	DoCommandP(tile, 0, 0, CcPlaySound1E, CMD_PURCHASE_LAND_AREA | CMD_NO_WATER | CMD_MSG(STR_5806_CAN_T_PURCHASE_THIS_LAND));
 }
 
 static void PlaceRail_ConvertRail(TileIndex tile)
@@ -346,8 +346,8 @@
 {
 	DoCommandP(TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), _cur_railtype | (mode << 4), NULL,
 		_remove_button_clicked ?
-		CMD_REMOVE_RAILROAD_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) :
-		CMD_BUILD_RAILROAD_TRACK  | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1011_CAN_T_BUILD_RAILROAD_TRACK)
+		CMD_REMOVE_RAILROAD_TRACK | CMD_NO_WATER | CMD_MSG(STR_1012_CAN_T_REMOVE_RAILROAD_TRACK) :
+		CMD_BUILD_RAILROAD_TRACK  | CMD_NO_WATER | CMD_MSG(STR_1011_CAN_T_BUILD_RAILROAD_TRACK)
 	);
 }
 
@@ -388,8 +388,8 @@
 		p2,
 		CcPlaySound1E,
 		_remove_button_clicked ?
-			CMD_REMOVE_SIGNAL_TRACK | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM) :
-			CMD_BUILD_SIGNAL_TRACK  | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE)
+			CMD_REMOVE_SIGNAL_TRACK | CMD_NO_WATER | CMD_MSG(STR_1013_CAN_T_REMOVE_SIGNALS_FROM) :
+			CMD_BUILD_SIGNAL_TRACK  | CMD_NO_WATER | CMD_MSG(STR_1010_CAN_T_BUILD_SIGNALS_HERE)
 	);
 }
 
@@ -671,7 +671,7 @@
 	DoCommandP(TileXY(sx, sy),
 			_railstation.orientation | (w << 8) | (h << 16) | (_ctrl_pressed << 24),
 			_cur_railtype | (_railstation.station_class << 8) | (_railstation.station_type << 16), CcStation,
-			CMD_BUILD_RAILROAD_STATION | CMD_NO_WATER | CMD_AUTO | CMD_MSG(STR_100F_CAN_T_BUILD_RAILROAD_STATION));
+			CMD_BUILD_RAILROAD_STATION | CMD_NO_WATER | CMD_MSG(STR_100F_CAN_T_BUILD_RAILROAD_STATION));
 }
 
 /* Check if the currently selected station size is allowed */
--- a/src/road_gui.cpp
+++ b/src/road_gui.cpp
@@ -115,7 +115,7 @@
 
 static void PlaceRoad_Tunnel(TileIndex tile)
 {
-	DoCommandP(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, CcBuildRoadTunnel, CMD_BUILD_TUNNEL | CMD_AUTO | CMD_MSG(STR_5016_CAN_T_BUILD_TUNNEL_HERE));
+	DoCommandP(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, CcBuildRoadTunnel, CMD_BUILD_TUNNEL | CMD_MSG(STR_5016_CAN_T_BUILD_TUNNEL_HERE));
 }
 
 static void BuildRoadOutsideStation(TileIndex tile, DiagDirection direction)
@@ -143,7 +143,7 @@
 
 static void PlaceRoad_Depot(TileIndex tile)
 {
-	DoCommandP(tile, _cur_roadtype << 2 | _road_depot_orientation, 0, CcRoadDepot, CMD_BUILD_ROAD_DEPOT | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_depot));
+	DoCommandP(tile, _cur_roadtype << 2 | _road_depot_orientation, 0, CcRoadDepot, CMD_BUILD_ROAD_DEPOT | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_depot));
 }
 
 static void PlaceRoadStop(TileIndex tile, uint32 p2, uint32 cmd)
@@ -162,7 +162,7 @@
 	if (_remove_button_clicked) {
 		DoCommandP(tile, 0, RoadStop::BUS, CcPlaySound1D, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[RoadStop::BUS]));
 	} else {
-		PlaceRoadStop(tile, (_ctrl_pressed << 5) | RoadTypeToRoadTypes(_cur_roadtype) << 2 | RoadStop::BUS, CMD_BUILD_ROAD_STOP | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_station[RoadStop::BUS]));
+		PlaceRoadStop(tile, (_ctrl_pressed << 5) | RoadTypeToRoadTypes(_cur_roadtype) << 2 | RoadStop::BUS, CMD_BUILD_ROAD_STOP | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_station[RoadStop::BUS]));
 	}
 }
 
@@ -171,7 +171,7 @@
 	if (_remove_button_clicked) {
 		DoCommandP(tile, 0, RoadStop::TRUCK, CcPlaySound1D, CMD_REMOVE_ROAD_STOP | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_station[RoadStop::TRUCK]));
 	} else {
-		PlaceRoadStop(tile, (_ctrl_pressed << 5) | RoadTypeToRoadTypes(_cur_roadtype) << 2 | RoadStop::TRUCK, CMD_BUILD_ROAD_STOP | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_station[RoadStop::TRUCK]));
+		PlaceRoadStop(tile, (_ctrl_pressed << 5) | RoadTypeToRoadTypes(_cur_roadtype) << 2 | RoadStop::TRUCK, CMD_BUILD_ROAD_STOP | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_station[RoadStop::TRUCK]));
 	}
 }
 
@@ -347,8 +347,8 @@
 				case DDSP_PLACE_ROAD_NW:
 					DoCommandP(end_tile, start_tile, _place_road_flag | (_cur_roadtype << 3) | _ctrl_pressed << 5, CcPlaySound1D,
 						_remove_button_clicked ?
-						CMD_REMOVE_LONG_ROAD | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_road) :
-						CMD_BUILD_LONG_ROAD | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_road));
+						CMD_REMOVE_LONG_ROAD | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_road) :
+						CMD_BUILD_LONG_ROAD | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_road));
 					break;
 			}
 		}
--- a/src/terraform_gui.cpp
+++ b/src/terraform_gui.cpp
@@ -109,7 +109,7 @@
 			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA));
 			break;
 		case DDSP_LEVEL_AREA:
-			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_LEVEL_LAND | CMD_AUTO);
+			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_LEVEL_LAND);
 			break;
 		case DDSP_CREATE_ROCKS:
 			GenerateRockyArea(end_tile, start_tile);
@@ -118,7 +118,7 @@
 			GenerateDesertArea(end_tile, start_tile);
 			break;
 		case DDSP_CREATE_WATER:
-			DoCommandP(end_tile, start_tile, _ctrl_pressed, CcBuildCanal, CMD_BUILD_CANAL | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS));
+			DoCommandP(end_tile, start_tile, _ctrl_pressed, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS));
 			break;
 		default:
 			return false;
@@ -148,7 +148,7 @@
 {
 	DoCommandP(
 		tile, SLOPE_N, 1, CcTerraform,
-		CMD_TERRAFORM_LAND | CMD_AUTO | CMD_MSG(STR_0808_CAN_T_RAISE_LAND_HERE)
+		CMD_TERRAFORM_LAND | CMD_MSG(STR_0808_CAN_T_RAISE_LAND_HERE)
 	);
 }
 
@@ -156,7 +156,7 @@
 {
 	DoCommandP(
 		tile, SLOPE_N, 0, CcTerraform,
-		CMD_TERRAFORM_LAND | CMD_AUTO | CMD_MSG(STR_0809_CAN_T_LOWER_LAND_HERE)
+		CMD_TERRAFORM_LAND | CMD_MSG(STR_0809_CAN_T_LOWER_LAND_HERE)
 	);
 }