Changeset - r22684:257bdd73d51a
[Not reviewed]
master
0 2 0
adf88 - 7 years ago 2017-08-31 06:48:55
adf88@openttd.org
(svn r27905) -Fix [FS#6585]: Keep the "link" between industry chain and smallmap windows whenever possible
2 files changed with 18 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/smallmap_gui.cpp
Show inline comments
 
@@ -572,6 +572,12 @@ static const byte _vehicle_type_colours[
 
};
 

	
 

	
 
/** Notify the industry chain window to stop sending newly selected industries. */
 
/* static */ void SmallMapWindow::BreakIndustryChainLink()
 
{
 
	InvalidateWindowClassesData(WC_INDUSTRY_CARGOES, NUM_INDUSTRYTYPES);
 
}
 

	
 
inline Point SmallMapWindow::SmallmapRemapCoords(int x, int y) const
 
{
 
	Point pt;
 
@@ -1069,6 +1075,12 @@ SmallMapWindow::SmallMapWindow(WindowDes
 
	this->SetOverlayCargoMask();
 
}
 

	
 
SmallMapWindow::~SmallMapWindow()
 
{
 
	delete this->overlay;
 
	this->BreakIndustryChainLink();
 
}
 

	
 
/**
 
 * Rebuilds the colour indices used for fast access to the smallmap contour colours based on the heightlevel.
 
 */
 
@@ -1278,6 +1290,7 @@ void SmallMapWindow::SwitchMapType(Small
 
	this->SetupWidgetData();
 

	
 
	if (map_type == SMT_LINKSTATS) this->overlay->RebuildCache();
 
	if (map_type != SMT_INDUSTRY) this->BreakIndustryChainLink();
 
	this->SetDirty();
 
}
 

	
 
@@ -1329,6 +1342,8 @@ void SmallMapWindow::SelectLegendItem(in
 
	} else {
 
		legend[click_pos].show_on_map = !legend[click_pos].show_on_map;
 
	}
 

	
 
	if (this->map_type == SMT_INDUSTRY) this->BreakIndustryChainLink();
 
}
 

	
 
/**
 
@@ -1383,9 +1398,6 @@ int SmallMapWindow::GetPositionOnLegend(
 

	
 
/* virtual */ void SmallMapWindow::OnClick(Point pt, int widget, int click_count)
 
{
 
	/* User clicked something, notify the industry chain window to stop sending newly selected industries. */
 
	InvalidateWindowClassesData(WC_INDUSTRY_CARGOES, NUM_INDUSTRYTYPES);
 

	
 
	switch (widget) {
 
		case WID_SM_MAP: { // Map window
 
			/*
 
@@ -1473,6 +1485,7 @@ int SmallMapWindow::GetPositionOnLegend(
 
			switch (this->map_type) {
 
				case SMT_INDUSTRY:
 
					tbl = _legend_from_industries;
 
					this->BreakIndustryChainLink();
 
					break;
 
				case SMT_OWNER:
 
					tbl = &(_legend_land_owners[NUM_NO_COMPANY_ENTRIES]);
src/smallmap_gui.h
Show inline comments
 
@@ -82,6 +82,7 @@ protected:
 
	uint8 refresh;   ///< Refresh counter, zeroed every FORCE_REFRESH_PERIOD ticks.
 
	LinkGraphOverlay *overlay;
 

	
 
	static void BreakIndustryChainLink();
 
	Point SmallmapRemapCoords(int x, int y) const;
 

	
 
	/**
 
@@ -173,7 +174,7 @@ public:
 
	friend class NWidgetSmallmapDisplay;
 

	
 
	SmallMapWindow(WindowDesc *desc, int window_number);
 
	virtual ~SmallMapWindow() { delete this->overlay; }
 
	virtual ~SmallMapWindow();
 

	
 
	void SmallMapCenterOnCurrentPos();
 
	Point GetStationMiddle(const Station *st) const;
0 comments (0 inline, 0 general)