Mercurial > hg > openttd
changeset 15315:ae1f7a2f6ce3 draft
(svn r19956) -Fix: close list of vehicles with given oil rig in orders when the oil rig is deleted
-Fix (r19952): close the list when it is not sticky
author | smatz <smatz@openttd.org> |
---|---|
date | Thu, 10 Jun 2010 23:52:09 +0000 |
parents | 0c24345003cc |
children | 2a60c2c9506b |
files | src/station.cpp src/waypoint.cpp src/waypoint_gui.cpp |
diffstat | 3 files changed, 17 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/station.cpp +++ b/src/station.cpp @@ -11,6 +11,7 @@ #include "stdafx.h" #include "company_func.h" +#include "company_base.h" #include "roadveh.h" #include "functions.h" #include "window_func.h" @@ -81,7 +82,10 @@ InvalidateWindowData(WC_STATION_LIST, this->owner, 0); DeleteWindowById(WC_STATION_VIEW, index); - WindowNumber wno = (this->index << 16) | VLW_STATION_LIST | this->owner; + + Owner owner = this->owner; + if (!Company::IsValidID(owner)) owner = _local_company; + WindowNumber wno = (this->index << 16) | VLW_STATION_LIST | owner; DeleteWindowById(WC_TRAINS_LIST, wno | (VEH_TRAIN << 11)); DeleteWindowById(WC_ROADVEH_LIST, wno | (VEH_ROAD << 11)); DeleteWindowById(WC_SHIPS_LIST, wno | (VEH_SHIP << 11));
--- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -17,6 +17,7 @@ #include "waypoint_base.h" #include "vehicle_gui.h" #include "company_func.h" +#include "company_base.h" /** * Draw a waypoint @@ -55,7 +56,9 @@ DeleteWindowById(WC_WAYPOINT_VIEW, this->index); RemoveOrderFromAllVehicles(OT_GOTO_WAYPOINT, this->index); - WindowNumber wno = (this->index << 16) | VLW_WAYPOINT_LIST | (this->owner == OWNER_NONE ? _local_company : this->owner); + Owner owner = this->owner; + if (!Company::IsValidID(owner)) owner = _local_company; + WindowNumber wno = (this->index << 16) | VLW_WAYPOINT_LIST | owner; DeleteWindowById(WC_TRAINS_LIST, wno | (VEH_TRAIN << 11)); DeleteWindowById(WC_SHIPS_LIST, wno | (VEH_SHIP << 11));
--- a/src/waypoint_gui.cpp +++ b/src/waypoint_gui.cpp @@ -18,6 +18,7 @@ #include "strings_func.h" #include "command_func.h" #include "company_func.h" +#include "company_base.h" #include "window_func.h" #include "waypoint_base.h" @@ -60,6 +61,13 @@ this->OnInvalidateData(0); } + ~WaypointWindow() + { + Owner owner = this->owner; + if (!Company::IsValidID(owner)) owner = _local_company; + DeleteWindowById(GetWindowClassForVehicleType(this->vt), (this->window_number << 16) | (this->vt << 11) | VLW_WAYPOINT_LIST | owner, false); + } + virtual void SetStringParameters(int widget) const { if (widget == WAYPVW_CAPTION) SetDParam(0, this->wp->index);