(svn r15589) -Fix: drawing of waypoints with invalid owner was broken

-Change: don't take over waypoints without owner, it could belong to a bankrupted company (and the code was broken) - savegame conversion code is a bit more liberal now, too
This commit is contained in:
smatz 2009-02-26 14:10:57 +00:00
parent 3fdac6f702
commit 1a940c24e3
2 changed files with 5 additions and 2 deletions

View File

@ -133,7 +133,7 @@ static Waypoint *FindDeletedWaypointCloseTo(TileIndex tile)
uint thres = 8;
FOR_ALL_WAYPOINTS(wp) {
if (wp->deleted && (wp->owner == OWNER_NONE || wp->owner == _current_company)) {
if (wp->deleted && wp->owner == _current_company) {
uint cur_dist = DistanceManhattan(tile, wp->xy);
if (cur_dist < thres) {

View File

@ -36,7 +36,7 @@ public:
WaypointWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
{
this->wp = GetWaypoint(this->window_number);
this->owner = this->wp->owner;
if (this->wp->owner != OWNER_NONE) this->owner = this->wp->owner;
this->flags4 |= WF_DISABLE_VP_SCROLL;
InitializeWindowViewport(this, 3, 17, 254, 86, this->wp->xy, ZOOM_LVL_MIN);
@ -53,6 +53,9 @@ public:
{
/* You can only change your own waypoints */
this->SetWidgetDisabledState(WAYPVW_RENAME, this->wp->owner != _local_company);
/* Disable the widget for waypoints with no owner (after company bankrupt) */
this->SetWidgetDisabledState(WAYPVW_SHOW_TRAINS, this->wp->owner == OWNER_NONE);
SetDParam(0, this->wp->index);
this->DrawWidgets();