diff --git a/src/plans_gui.cpp b/src/plans_gui.cpp index 75c286f7e4..ff173fbafb 100644 --- a/src/plans_gui.cpp +++ b/src/plans_gui.cpp @@ -107,7 +107,7 @@ struct PlansWindow : Window { DoCommandP(0, _local_company, 0, CMD_ADD_PLAN, CcAddPlan); break; case WID_PLN_ADD_LINES: - if (_current_plan) HandlePlacePushButton(this, widget, SPR_CURSOR_MOUSE, HT_POINT); + if (_current_plan) HandlePlacePushButton(this, widget, SPR_CURSOR_MOUSE, HT_POINT | HT_MAP); break; case WID_PLN_DELETE: if (this->selected != INT_MAX) { @@ -416,7 +416,7 @@ void CcAddPlan(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, ((PlansWindow *) w)->SelectPlan(_current_plan->index); if (!w->IsWidgetLowered(WID_PLN_ADD_LINES)) { w->SetWidgetDisabledState(WID_PLN_ADD_LINES, false); - HandlePlacePushButton(w, WID_PLN_ADD_LINES, SPR_CURSOR_MOUSE, HT_POINT); + HandlePlacePushButton(w, WID_PLN_ADD_LINES, SPR_CURSOR_MOUSE, HT_POINT | HT_MAP); } } } diff --git a/src/tilehighlight_type.h b/src/tilehighlight_type.h index 06ed00fde4..3a7d48275d 100644 --- a/src/tilehighlight_type.h +++ b/src/tilehighlight_type.h @@ -30,6 +30,7 @@ enum HighLightStyle { HT_NEW_POLY = 0xC00, ///< start completly new polyline; implies #HT_POLY HT_DRAG_MASK = 0x0F8, ///< Mask for the tile drag-type modes. HT_TUNNEL = 0x1000,///< tunnel highlight hint + HT_MAP = 0x2000,///< Allow in viewport map mode /* lower bits (used with HT_LINE and HT_RAIL): * (see ASCII art in table/autorail.h for a visual interpretation) */ diff --git a/src/viewport.cpp b/src/viewport.cpp index d2c45099f6..6bc4376b45 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -4060,7 +4060,7 @@ bool HandleViewportDoubleClicked(Window *w, int x, int y) bool HandleViewportClicked(const Viewport *vp, int x, int y, bool double_click) { /* No click in smallmap mode except for plan making. */ - if (vp->zoom >= ZOOM_LVL_DRAW_MAP && !(_thd.place_mode == HT_POINT && _thd.select_proc == DDSP_DRAW_PLANLINE)) return true; + if (vp->zoom >= ZOOM_LVL_DRAW_MAP && !(_thd.place_mode & HT_MAP)) return true; const Vehicle *v = CheckClickOnVehicle(vp, x, y); @@ -4086,6 +4086,8 @@ bool HandleViewportClicked(const Viewport *vp, int x, int y, bool double_click) return true; } + if (vp->zoom >= ZOOM_LVL_DRAW_MAP) return true; + if (CheckClickOnViewportSign(vp, x, y)) return true; bool result = CheckClickOnLandscape(vp, x, y);