diff options
-rw-r--r-- | src/industry_gui.cpp | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 8d98f9662..c3837160b 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -2346,33 +2346,36 @@ struct IndustryCargoesWindow : public Window { virtual void OnClick(Point pt, int widget, int click_count) { - if (widget != ICW_PANEL) return; - - Point fieldxy, xy; - if (!CalculatePositionInWidget(pt, &fieldxy, &xy)) return; - - const CargoesField *fld = this->fields[fieldxy.y].columns + fieldxy.x; - switch (fld->type) { - case CFT_INDUSTRY: - if (fld->u.industry.ind_type < NUM_INDUSTRYTYPES) this->ComputeIndustryDisplay(fld->u.industry.ind_type); - break; + switch (widget) { + case ICW_PANEL: { + Point fieldxy, xy; + if (!CalculatePositionInWidget(pt, &fieldxy, &xy)) return; + + const CargoesField *fld = this->fields[fieldxy.y].columns + fieldxy.x; + switch (fld->type) { + case CFT_INDUSTRY: + if (fld->u.industry.ind_type < NUM_INDUSTRYTYPES) this->ComputeIndustryDisplay(fld->u.industry.ind_type); + break; + + case CFT_CARGO: { + CargoesField *lft = (fieldxy.x > 0) ? this->fields[fieldxy.y].columns + fieldxy.x - 1 : NULL; + CargoesField *rgt = (fieldxy.x < 4) ? this->fields[fieldxy.y].columns + fieldxy.x + 1 : NULL; + CargoID cid = fld->CargoClickedAt(lft, rgt, xy); + if (cid != INVALID_CARGO) this->ComputeCargoDisplay(cid); + break; + } - case CFT_CARGO: { - CargoesField *lft = (fieldxy.x > 0) ? this->fields[fieldxy.y].columns + fieldxy.x - 1 : NULL; - CargoesField *rgt = (fieldxy.x < 4) ? this->fields[fieldxy.y].columns + fieldxy.x + 1 : NULL; - CargoID cid = fld->CargoClickedAt(lft, rgt, xy); - if (cid != INVALID_CARGO) this->ComputeCargoDisplay(cid); - break; - } + case CFT_CARGO_LABEL: { + CargoID cid = fld->CargoLabelClickedAt(xy); + if (cid != INVALID_CARGO) this->ComputeCargoDisplay(cid); + break; + } - case CFT_CARGO_LABEL: { - CargoID cid = fld->CargoLabelClickedAt(xy); - if (cid != INVALID_CARGO) this->ComputeCargoDisplay(cid); + default: + break; + } break; } - - default: - break; } } |