(svn r6350) -Codechange: moved some setup stuff into WE_CREATE in PlayerVehWndProc()

This is possible now that the window number is known when running WE_CREATE and it's a nicer solution
pull/155/head
bjarni 18 years ago
parent db53a47f70
commit edd5f92568

@ -1039,11 +1039,6 @@ void ShowPlayerAircraftLocal(PlayerID player, StationID station, OrderID order,
}
if (w != NULL) {
vehiclelist_d *vl = &WP(w, vehiclelist_d);
vl->flags = VL_REBUILD | (_sorting.aircraft.order << (VL_DESC - 1));
vl->sort_type = _sorting.aircraft.criteria;
w->caption_color = player;
w->vscroll.cap = 4;
w->widget[7].unkA = (w->vscroll.cap << 8) + 1;
w->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_BIG;

@ -968,11 +968,6 @@ static void ShowPlayerRoadVehiclesLocal(PlayerID player, StationID station, Orde
}
if (w != NULL) {
vehiclelist_d *vl = &WP(w, vehiclelist_d);
vl->flags = VL_REBUILD | (_sorting.roadveh.order << (VL_DESC - 1));
vl->sort_type = _sorting.roadveh.criteria;
w->caption_color = player;
w->vscroll.cap = 7; // maximum number of vehicles shown
w->widget[7].unkA = (w->vscroll.cap << 8) + 1;
w->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_SMALL;

@ -981,11 +981,6 @@ static void ShowPlayerShipsLocal(PlayerID player, StationID station, OrderID ord
}
if (w != NULL) {
vehiclelist_d *vl = &WP(w, vehiclelist_d);
vl->flags = VL_REBUILD | (_sorting.ship.order << (VL_DESC - 1));
vl->sort_type = _sorting.ship.criteria;
w->caption_color = player;
w->vscroll.cap = 4;
w->widget[7].unkA = (w->vscroll.cap << 8) + 1;
w->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_BIG;

@ -1437,11 +1437,6 @@ static void ShowPlayerTrainsLocal(PlayerID player, StationID station, OrderID or
}
if (w != NULL) {
vehiclelist_d *vl = &WP(w, vehiclelist_d);
vl->flags = VL_REBUILD | (_sorting.train.order << (VL_DESC - 1));
vl->sort_type = _sorting.train.criteria;
w->caption_color = player;
w->hscroll.cap = 10 * 29;
w->vscroll.cap = 7; // maximum number of vehicles shown
w->widget[7].unkA = (w->vscroll.cap << 8) + 1;

@ -1362,8 +1362,26 @@ void PlayerVehWndProc(Window *w, WindowEvent *e)
break;
case WE_CREATE:
/* IMPORTANT: order and criteria needs to be set after the window is created, but before it's used */
/* w->window_number is not yet set at this point, so we lack info on what kind of vehicle we are dealing with */
w->caption_color = GB(w->window_number, 0, 8); // OwnerID is stored in the last 8 bits of the window number
switch (vehicle_type) {
case VEH_Train:
vl->flags = VL_REBUILD | (_sorting.train.order << (VL_DESC - 1));
vl->sort_type = _sorting.train.criteria;
break;
case VEH_Road:
vl->flags = VL_REBUILD | (_sorting.roadveh.order << (VL_DESC - 1));
vl->sort_type = _sorting.roadveh.criteria;
break;
case VEH_Ship:
vl->flags = VL_REBUILD | (_sorting.ship.order << (VL_DESC - 1));
vl->sort_type = _sorting.ship.criteria;
break;
case VEH_Aircraft:
vl->flags = VL_REBUILD | (_sorting.aircraft.order << (VL_DESC - 1));
vl->sort_type = _sorting.aircraft.criteria;
break;
default: NOT_REACHED(); break;
}
vl->sort_list = NULL;
vl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; // Set up resort timer
break;

Loading…
Cancel
Save