mirror of https://github.com/OpenTTD/OpenTTD
(svn r11304) -Feature: Control-Clicking the Center Main View button on the vehicle window allows the main viewport to follow the chosen vehicle.(stevenh)
parent
95f2181a1d
commit
705f0ae90c
|
@ -2086,9 +2086,16 @@ static void VehicleViewWndProc(Window *w, WindowEvent *e)
|
|||
DoCommandP(v->tile, v->index, 0, NULL,
|
||||
_vehicle_command_translation_table[VCT_CMD_START_STOP][v->type]);
|
||||
break;
|
||||
case VVW_WIDGET_CENTER_MAIN_VIEH: /* center main view */
|
||||
ScrollMainWindowTo(v->x_pos, v->y_pos);
|
||||
break;
|
||||
case VVW_WIDGET_CENTER_MAIN_VIEH: {/* center main view */
|
||||
const Window *mainwindow = FindWindowById(WC_MAIN_WINDOW, 0);
|
||||
/* code to allow the main window to 'follow' the vehicle if the ctrl key is pressed */
|
||||
if (_ctrl_pressed && mainwindow->viewport->zoom == ZOOM_LVL_NORMAL) {
|
||||
WP(mainwindow, vp_d).follow_vehicle = v->index;
|
||||
} else {
|
||||
ScrollMainWindowTo(v->x_pos, v->y_pos);
|
||||
}
|
||||
} break;
|
||||
|
||||
case VVW_WIDGET_GOTO_DEPOT: /* goto hangar */
|
||||
DoCommandP(v->tile, v->index, _ctrl_pressed ? DEPOT_SERVICE : 0, NULL,
|
||||
_vehicle_command_translation_table[VCT_CMD_GOTO_DEPOT][v->type]);
|
||||
|
|
|
@ -1466,6 +1466,13 @@ static bool HandleViewportScroll()
|
|||
|
||||
w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y);
|
||||
|
||||
if (WP(w, vp_d).follow_vehicle != INVALID_VEHICLE && w == FindWindowById(WC_MAIN_WINDOW, 0)) {
|
||||
/* If the main window is following a vehicle, then first let go of it! */
|
||||
const Vehicle *veh = GetVehicle(WP(w, vp_d).follow_vehicle);
|
||||
ScrollMainWindowTo(veh->x_pos, veh->y_pos, true); /* This also resets follow_vehicle */
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!(_right_button_down || scrollwheel_scrolling) || w == NULL) {
|
||||
_cursor.fix_at = false;
|
||||
_scrolling_viewport = false;
|
||||
|
|
Loading…
Reference in New Issue