(svn r21019) -Add: Use center of industry to focus on in the industry gui.

This commit is contained in:
alberth 2010-10-23 20:34:12 +00:00
parent 8f24ec9471
commit cccbc8f418
2 changed files with 13 additions and 4 deletions

View File

@ -673,7 +673,7 @@ public:
this->InitNested(desc, window_number);
NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(IVW_VIEWPORT);
nvp->InitializeViewport(this, Industry::Get(window_number)->location.tile + TileDiffXY(1, 1), ZOOM_LVL_INDUSTRY);
nvp->InitializeViewport(this, Industry::Get(window_number)->location.GetCenterTile(), ZOOM_LVL_INDUSTRY);
this->InvalidateData();
}
@ -900,9 +900,9 @@ public:
case IVW_GOTO: {
Industry *i = Industry::Get(this->window_number);
if (_ctrl_pressed) {
ShowExtraViewPortWindow(i->location.tile + TileDiffXY(1, 1));
ShowExtraViewPortWindow(i->location.GetCenterTile());
} else {
ScrollMainWindowToTile(i->location.tile + TileDiffXY(1, 1));
ScrollMainWindowToTile(i->location.GetCenterTile());
}
break;
}

View File

@ -12,7 +12,7 @@
#ifndef TILEAREA_TYPE_H
#define TILEAREA_TYPE_H
#include "tile_type.h"
#include "map_func.h"
/** Represents the covered area of e.g. a rail station */
struct TileArea {
@ -49,6 +49,15 @@ struct TileArea {
bool Intersects(const TileArea &ta) const;
void ClampToMap();
/**
* Get the center tile.
* @return The tile at the center, or just north of it.
*/
TileIndex GetCenterTile() const
{
return TILE_ADDXY(this->tile, this->w / 2, this->h / 2);
}
};
#endif /* TILEAREA_TYPE_H */