summaryrefslogtreecommitdiff
path: root/roadveh_gui.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-09-07 19:01:06 +0000
committerdarkvater <darkvater@openttd.org>2004-09-07 19:01:06 +0000
commitbf9c8068be695e95662a541eb76465d60af6c976 (patch)
tree29dca88c305d0bd459c03c65b6c285d4eb8eef5a /roadveh_gui.c
parent51d928a478f5cc83285d4f87453fa5c2ce69f77b (diff)
downloadopenttd-bf9c8068be695e95662a541eb76465d60af6c976.tar.xz
(svn r175) -Fix: [1023771] inconsistent/missing stations in station list. Forgot to change owner-sort after changing function.
-Codechange: some more asserts to vehicle-sorts to quickly find any possible problems.
Diffstat (limited to 'roadveh_gui.c')
-rw-r--r--roadveh_gui.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/roadveh_gui.c b/roadveh_gui.c
index 7e6e44412..70c3cee41 100644
--- a/roadveh_gui.c
+++ b/roadveh_gui.c
@@ -731,7 +731,6 @@ static void MakeSortedRoadList(byte owner)
// Player0: 25; Player1: (41-25) 16; Player2: (43-41) 2
for (i = &_num_road_sort[1]; i != endof(_num_road_sort); i++) {*i += *(i-1);}
-
// sort by owner, then only subsort the requested owner-vehicles
qsort(_road_sort, n, sizeof(_road_sort[0]), GeneralOwnerSorter);
@@ -803,6 +802,8 @@ static void PlayerRoadVehWndProc(Window *w, WindowEvent *e)
StringID str;
v = DEREF_VEHICLE(_road_sort[i].index);
+ assert(v->type == VEH_Road && v->owner == window_number);
+
DrawRoadVehImage(v, x + 22, y + 6, INVALID_VEHICLE);
DrawVehicleProfitButton(v, x, y+13);
@@ -841,22 +842,22 @@ static void PlayerRoadVehWndProc(Window *w, WindowEvent *e)
ShowDropDownMenu(w, _vehicle_sort_listing, _road_sort_type[(byte)w->window_number], 4, 0); // do it for widget 4
return;
case 6: { /* Matrix to show vehicles */
- int id_v = (e->click.pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET) / PLY_WND_PRC__SIZE_OF_ROW_SMALL;
+ uint32 id_v = (e->click.pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET) / PLY_WND_PRC__SIZE_OF_ROW_SMALL;
- if ((uint)id_v >= w->vscroll.cap) { return;} // click out of bounds
+ if (id_v >= w->vscroll.cap) { return;} // click out of bounds
id_v += w->vscroll.pos;
{
- byte owner = (byte)w->window_number;
- uint16 adder = (owner == 0) ? 0 : _num_road_sort[owner - 1]; // first element in list
+ const byte owner = (byte)w->window_number;
Vehicle *v;
+ id_v += (owner == 0) ? 0 : _num_road_sort[owner - 1]; // first element in list
- if (id_v + adder >= _num_road_sort[owner]) { return;} // click out of vehicle bound
+ if (id_v >= _num_road_sort[owner]) { return;} // click out of vehicle bound
- v = DEREF_VEHICLE(_road_sort[adder+id_v].index); // add the offset id_x to that
+ v = DEREF_VEHICLE(_road_sort[id_v].index); // add the offset id_x to that
- assert(v->type == VEH_Road && v->owner == owner && v->owner == _road_sort[adder+id_v].owner);
+ assert(v->type == VEH_Road && v->owner == owner);
ShowRoadVehViewWindow(v);
}