diff --git a/aircraft_gui.c b/aircraft_gui.c index 163718e1de..c2242a570d 100644 --- a/aircraft_gui.c +++ b/aircraft_gui.c @@ -735,7 +735,7 @@ static void DrawAircraftDepotWindow(Window *w) } static int GetVehicleFromAircraftDepotWndPt(Window *w, int x, int y, Vehicle **veh) { - uint xt,yt,xm,ym; + uint xt,row,xm,ym; Vehicle *v; uint tile; int pos; @@ -745,12 +745,12 @@ static int GetVehicleFromAircraftDepotWndPt(Window *w, int x, int y, Vehicle **v if (xt >= 4) return 1; - yt = (y - 14) / 24; + row = (y - 14) / 24; ym = (y - 14) % 24; - if (yt >= 2) + if (row >= w->vscroll.cap) return 1; - pos = (yt + w->vscroll.pos) * 4 + xt; + pos = (row + w->vscroll.pos) * 4 + xt; tile = w->window_number; FOR_ALL_VEHICLES(v) { diff --git a/roadveh_gui.c b/roadveh_gui.c index ab835ecf88..5fad9f8a0c 100644 --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -544,7 +544,7 @@ static void DrawRoadDepotWindow(Window *w) static int GetVehicleFromRoadDepotWndPt(Window *w, int x, int y, Vehicle **veh) { - uint xt,yt,xm; + uint xt,row,xm; TileIndex tile; Vehicle *v; int pos; @@ -554,11 +554,11 @@ static int GetVehicleFromRoadDepotWndPt(Window *w, int x, int y, Vehicle **veh) if (xt >= 5) return 1; - yt = (y - 14) / 14; - if (yt >= 3) + row = (y - 14) / 14; + if (row >= w->vscroll.cap) return 1; - pos = (yt + w->vscroll.pos) * 5 + xt; + pos = (row + w->vscroll.pos) * 5 + xt; tile = w->window_number; FOR_ALL_VEHICLES(v) { diff --git a/ship_gui.c b/ship_gui.c index 491f42c6d9..2f2fe90197 100644 --- a/ship_gui.c +++ b/ship_gui.c @@ -677,7 +677,7 @@ static void DrawShipDepotWindow(Window *w) static int GetVehicleFromShipDepotWndPt(Window *w, int x, int y, Vehicle **veh) { - uint xt,yt,xm,ym; + uint xt,row,xm,ym; TileIndex tile; Vehicle *v; int pos; @@ -687,12 +687,12 @@ static int GetVehicleFromShipDepotWndPt(Window *w, int x, int y, Vehicle **veh) if (xt >= 5) return 1; - yt = (y - 14) / 24; + row = (y - 14) / 24; ym = (y - 14) % 24; - if (yt >= 2) + if (row >= w->vscroll.cap) return 1; - pos = (yt + w->vscroll.pos) * 3 + xt; + pos = (row + w->vscroll.pos) * 3 + xt; tile = w->window_number; FOR_ALL_VEHICLES(v) {