diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1285,7 +1285,7 @@ public: } case WID_BRAS_IMAGE: { - uint16_t type = this->GetWidget(WID_BRAS_MATRIX)->GetCurrentElement(); + uint16_t type = this->GetWidget(widget)->GetParentWidget()->GetCurrentElement(); assert(type < _railstation.station_count); /* Check station availability callback */ const StationSpec *statspec = StationClass::Get(_railstation.station_class)->GetSpec(type); @@ -1470,7 +1470,7 @@ public: } case WID_BRAS_IMAGE: { - uint16_t y = this->GetWidget(WID_BRAS_MATRIX)->GetCurrentElement(); + uint16_t y = this->GetWidget(widget)->GetParentWidget()->GetCurrentElement(); if (y >= _railstation.station_count) return; /* Check station availability callback */ @@ -1480,7 +1480,7 @@ public: _railstation.station_type = y; this->CheckSelectedSize(statspec); - this->GetWidget(WID_BRAS_MATRIX)->SetClicked(_railstation.station_type); + this->GetWidget(widget)->GetParentWidget()->SetClicked(_railstation.station_type); if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); this->SetDirty(); @@ -2097,7 +2097,7 @@ struct BuildRailWaypointWindow : PickerW { switch (widget) { case WID_BRW_WAYPOINT: { - uint16_t type = this->list.at(this->GetWidget(WID_BRW_WAYPOINT_MATRIX)->GetCurrentElement()); + uint16_t type = this->list.at(this->GetWidget(widget)->GetParentWidget()->GetCurrentElement()); const StationSpec *statspec = this->waypoints->GetSpec(type); DrawPixelInfo tmp_dpi; @@ -2120,7 +2120,7 @@ struct BuildRailWaypointWindow : PickerW { switch (widget) { case WID_BRW_WAYPOINT: { - uint16_t sel = this->GetWidget(WID_BRW_WAYPOINT_MATRIX)->GetCurrentElement(); + uint16_t sel = this->GetWidget(widget)->GetParentWidget()->GetCurrentElement(); assert(sel < this->list.size()); uint16_t type = this->list.at(sel); @@ -2129,7 +2129,7 @@ struct BuildRailWaypointWindow : PickerW if (!IsStationAvailable(statspec)) return; _cur_waypoint_type = type; - this->GetWidget(WID_BRW_WAYPOINT_MATRIX)->SetClicked(sel); + this->GetWidget(widget)->GetParentWidget()->SetClicked(sel); if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); this->SetDirty(); break;