diff options
author | fonsinchen <fonsinchen@openttd.org> | 2014-01-19 09:26:56 +0000 |
---|---|---|
committer | fonsinchen <fonsinchen@openttd.org> | 2014-01-19 09:26:56 +0000 |
commit | b158c7d0fa0bec2ccf885d06a9f1855ca8b3c698 (patch) | |
tree | 501d2d77868709da599734aaa413e46f1d48c544 /src/smallmap_gui.cpp | |
parent | be62387e4412e15fe7238a1c90979fe119c0fdcf (diff) | |
download | openttd-b158c7d0fa0bec2ccf885d06a9f1855ca8b3c698.tar.xz |
(svn r26266) -Fix [FS#5860]: Update smallmap overlay if player joins different company and make sure company masks are valid
Diffstat (limited to 'src/smallmap_gui.cpp')
-rw-r--r-- | src/smallmap_gui.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index e144ddb0c..b4137038f 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -1049,7 +1049,7 @@ void SmallMapWindow::SetupWidgetData() SmallMapWindow::SmallMapWindow(WindowDesc *desc, int window_number) : Window(desc), refresh(FORCE_REFRESH_PERIOD) { _smallmap_industry_highlight = INVALID_INDUSTRYTYPE; - this->overlay = new LinkGraphOverlay(this, WID_SM_MAP); + this->overlay = new LinkGraphOverlay(this, WID_SM_MAP, 0, this->GetOverlayCompanyMask(), 1); this->InitNested(window_number); this->LowerWidget(this->map_type + WID_SM_CONTOUR); @@ -1530,7 +1530,14 @@ int SmallMapWindow::GetPositionOnLegend(Point pt) /* Update the window every now and then */ if (--this->refresh != 0) return; - if (this->map_type == SMT_LINKSTATS) this->overlay->RebuildCache(); + if (this->map_type == SMT_LINKSTATS) { + uint32 company_mask = this->GetOverlayCompanyMask(); + if (this->overlay->GetCompanyMask() != company_mask) { + this->overlay->SetCompanyMask(company_mask); + } else { + this->overlay->RebuildCache(); + } + } _smallmap_industry_highlight_state = !_smallmap_industry_highlight_state; this->refresh = _smallmap_industry_highlight != INVALID_INDUSTRYTYPE ? BLINK_PERIOD : FORCE_REFRESH_PERIOD; |