mirror of https://github.com/OpenTTD/OpenTTD
(svn r7129) -Codechange: Get rid of a global variable that only sets a window's number.
parent
d50f6c8a8c
commit
21db9ebb8e
|
@ -183,9 +183,7 @@ static void ShowAircraftDetailsWindow(const Vehicle *v)
|
|||
DeleteWindowById(WC_VEHICLE_ORDERS, veh);
|
||||
DeleteWindowById(WC_VEHICLE_DETAILS, veh);
|
||||
|
||||
_alloc_wnd_parent_num = veh;
|
||||
w = AllocateWindowDesc(&_aircraft_details_desc);
|
||||
w->window_number = veh;
|
||||
w = AllocateWindowDescFront(&_aircraft_details_desc, veh);
|
||||
w->caption_color = v->owner;
|
||||
// w->vscroll.cap = 6;
|
||||
// w->traindetails_d.tab = 0;
|
||||
|
|
|
@ -221,10 +221,7 @@ static const WindowDesc _depot_sell_all_desc = {
|
|||
|
||||
static void ShowDepotSellAllWindow(TileIndex tile, byte type)
|
||||
{
|
||||
Window *w;
|
||||
|
||||
_alloc_wnd_parent_num = tile;
|
||||
w = AllocateWindowDescFront(&_depot_sell_all_desc, tile);
|
||||
Window *w = AllocateWindowDescFront(&_depot_sell_all_desc, tile);
|
||||
|
||||
if (w != NULL) {
|
||||
w->caption_color = GetTileOwner(tile);
|
||||
|
|
|
@ -649,16 +649,13 @@ void ShowOrdersWindow(const Vehicle *v)
|
|||
DeleteWindowById(WC_VEHICLE_ORDERS, veh);
|
||||
DeleteWindowById(WC_VEHICLE_DETAILS, veh);
|
||||
|
||||
_alloc_wnd_parent_num = veh;
|
||||
|
||||
if (v->owner != _local_player) {
|
||||
w = AllocateWindowDesc(&_other_orders_desc);
|
||||
w = AllocateWindowDescFront(&_other_orders_desc, veh);
|
||||
} else {
|
||||
w = AllocateWindowDesc((v->type == VEH_Train) ? &_orders_train_desc : &_orders_desc);
|
||||
w = AllocateWindowDescFront((v->type == VEH_Train) ? &_orders_train_desc : &_orders_desc, veh);
|
||||
}
|
||||
|
||||
if (w != NULL) {
|
||||
w->window_number = veh;
|
||||
w->caption_color = v->owner;
|
||||
w->vscroll.cap = 6;
|
||||
w->resize.step_height = 10;
|
||||
|
|
|
@ -219,9 +219,8 @@ static void ShowRoadVehDetailsWindow(const Vehicle *v)
|
|||
|
||||
DeleteWindowById(WC_VEHICLE_ORDERS, veh);
|
||||
DeleteWindowById(WC_VEHICLE_DETAILS, veh);
|
||||
_alloc_wnd_parent_num = veh;
|
||||
w = AllocateWindowDesc(&_roadveh_details_desc);
|
||||
w->window_number = veh;
|
||||
|
||||
w = AllocateWindowDescFront(&_roadveh_details_desc, veh);
|
||||
w->caption_color = v->owner;
|
||||
}
|
||||
|
||||
|
|
|
@ -217,9 +217,7 @@ static void ShowShipDetailsWindow(const Vehicle *v)
|
|||
|
||||
DeleteWindowById(WC_VEHICLE_ORDERS, veh);
|
||||
DeleteWindowById(WC_VEHICLE_DETAILS, veh);
|
||||
_alloc_wnd_parent_num = veh;
|
||||
w = AllocateWindowDesc(&_ship_details_desc);
|
||||
w->window_number = veh;
|
||||
w = AllocateWindowDescFront(&_ship_details_desc, veh);
|
||||
w->caption_color = v->owner;
|
||||
}
|
||||
|
||||
|
|
|
@ -1216,10 +1216,8 @@ static void ShowTrainDetailsWindow(const Vehicle *v)
|
|||
DeleteWindowById(WC_VEHICLE_ORDERS, veh);
|
||||
DeleteWindowById(WC_VEHICLE_DETAILS, veh);
|
||||
|
||||
_alloc_wnd_parent_num = veh;
|
||||
w = AllocateWindowDesc(&_train_details_desc);
|
||||
w = AllocateWindowDescFront(&_train_details_desc, veh);
|
||||
|
||||
w->window_number = veh;
|
||||
w->caption_color = v->owner;
|
||||
w->vscroll.cap = 6;
|
||||
w->widget[4].data = (w->vscroll.cap << 8) + 1;
|
||||
|
|
|
@ -442,9 +442,7 @@ void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order)
|
|||
|
||||
DeleteWindowById(WC_VEHICLE_REFIT, v->index);
|
||||
|
||||
_alloc_wnd_parent_num = v->index;
|
||||
|
||||
w = AllocateWindowDesc(&_vehicle_refit_desc);
|
||||
w = AllocateWindowDescFront(&_vehicle_refit_desc, v->index);
|
||||
WP(w, refit_d).order = order;
|
||||
|
||||
if (w != NULL) {
|
||||
|
|
15
window.c
15
window.c
|
@ -682,12 +682,17 @@ static Window *LocalAllocateWindowDesc(const WindowDesc *desc, int window_number
|
|||
Point pt;
|
||||
Window *w;
|
||||
|
||||
if (desc->parent_cls != WC_MAIN_WINDOW &&
|
||||
(w = FindWindowById(desc->parent_cls, _alloc_wnd_parent_num), _alloc_wnd_parent_num=0, w) != NULL &&
|
||||
w->left < _screen.width-20 && w->left > -60 && w->top < _screen.height-20) {
|
||||
/* By default position a child window at an offset of 10/10 of its parent.
|
||||
* However if it falls too extremely outside window positions, reposition
|
||||
* it to an automatic place */
|
||||
if (desc->parent_cls != 0 /* WC_MAIN_WINDOW */ &&
|
||||
(w = FindWindowById(desc->parent_cls, window_number)) != NULL &&
|
||||
w->left < _screen.width - 20 && w->left > -60 && w->top < _screen.height - 20) {
|
||||
|
||||
pt.x = w->left + 10;
|
||||
if (pt.x > _screen.width + 10 - desc->width)
|
||||
if (pt.x > _screen.width + 10 - desc->width) {
|
||||
pt.x = (_screen.width + 10 - desc->width) - 20;
|
||||
}
|
||||
pt.y = w->top + 10;
|
||||
} else if (desc->cls == WC_BUILD_TOOLBAR) { // open Build Toolbars aligned
|
||||
/* Override the position if a toolbar is opened according to the place of the maintoolbar
|
||||
|
@ -1715,7 +1720,7 @@ int PositionMainToolbar(Window *w)
|
|||
}
|
||||
|
||||
switch (_patches.toolbar_pos) {
|
||||
case 1: w->left = (_screen.width - w->width) >> 1; break;
|
||||
case 1: w->left = (_screen.width - w->width) / 2; break;
|
||||
case 2: w->left = _screen.width - w->width; break;
|
||||
default: w->left = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue