diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index 184c69ea93..77282403c1 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -156,7 +156,7 @@ static void BuildDocksToolbWndProc(Window *w, WindowEvent *e) if ((e->we.place.userdata & 0xF) == VPM_X_AND_Y) { // dragged actions GUIPlaceProcDragXY(e); } else if (e->we.place.userdata == VPM_X_OR_Y) { - DoCommandP(e->we.place.tile, e->we.place.starttile, _ctrl_pressed, 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_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS)); } } break; diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index 4b1270797d..5643aa8fea 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -212,7 +212,7 @@ int32 CmdBuildLock(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) /** Build a piece of canal. * @param tile end tile of stretch-dragging * @param p1 start tile of stretch-dragging - * @param p2 ctrl pressed - toggles ocean / canals at sealevel + * @param p2 ctrl pressed - toggles ocean / canals at sealevel (ocean only allowed in the scenario editor) */ int32 CmdBuildCanal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) { @@ -223,6 +223,8 @@ int32 CmdBuildCanal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) int sx, sy; if (p1 >= MapSize()) return CMD_ERROR; + /* Outside of the editor you can only build canals, not oceans */ + if (HASBIT(p2, 0) && _game_mode != GM_EDITOR) return CMD_ERROR; x = TileX(tile); y = TileY(tile);