summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rail_gui.cpp18
-rw-r--r--src/station_cmd.cpp2
2 files changed, 12 insertions, 8 deletions
diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp
index c4fad3414..1808164c5 100644
--- a/src/rail_gui.cpp
+++ b/src/rail_gui.cpp
@@ -894,23 +894,27 @@ private:
{
if (statspec == NULL || _settings_client.gui.station_dragdrop) return;
- /* If current number of tracks is not allowed, make it as big as possible (which is always less than currently selected) */
+ /* If current number of tracks is not allowed, make it as big as possible */
if (HasBit(statspec->disallowed_platforms, _settings_client.gui.station_numtracks - 1)) {
this->RaiseWidget(_settings_client.gui.station_numtracks + WID_BRAS_PLATFORM_NUM_BEGIN);
_settings_client.gui.station_numtracks = 1;
- while (HasBit(statspec->disallowed_platforms, _settings_client.gui.station_numtracks - 1)) {
- _settings_client.gui.station_numtracks++;
+ if (statspec->disallowed_platforms != UINT8_MAX) {
+ while (HasBit(statspec->disallowed_platforms, _settings_client.gui.station_numtracks - 1)) {
+ _settings_client.gui.station_numtracks++;
+ }
+ this->LowerWidget(_settings_client.gui.station_numtracks + WID_BRAS_PLATFORM_NUM_BEGIN);
}
- this->LowerWidget(_settings_client.gui.station_numtracks + WID_BRAS_PLATFORM_NUM_BEGIN);
}
if (HasBit(statspec->disallowed_lengths, _settings_client.gui.station_platlength - 1)) {
this->RaiseWidget(_settings_client.gui.station_platlength + WID_BRAS_PLATFORM_LEN_BEGIN);
_settings_client.gui.station_platlength = 1;
- while (HasBit(statspec->disallowed_lengths, _settings_client.gui.station_platlength - 1)) {
- _settings_client.gui.station_platlength++;
+ if (statspec->disallowed_lengths != UINT8_MAX) {
+ while (HasBit(statspec->disallowed_lengths, _settings_client.gui.station_platlength - 1)) {
+ _settings_client.gui.station_platlength++;
+ }
+ this->LowerWidget(_settings_client.gui.station_platlength + WID_BRAS_PLATFORM_LEN_BEGIN);
}
- this->LowerWidget(_settings_client.gui.station_platlength + WID_BRAS_PLATFORM_LEN_BEGIN);
}
}
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index 341681124..1aa9ab0de 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -1213,7 +1213,7 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32
/* Perform NewStation checks */
/* Check if the station size is permitted */
- if (HasBit(statspec->disallowed_platforms, numtracks - 1) || HasBit(statspec->disallowed_lengths, plat_len - 1)) {
+ if (HasBit(statspec->disallowed_platforms, min(numtracks - 1, 7)) || HasBit(statspec->disallowed_lengths, min(plat_len - 1, 7))) {
return CMD_ERROR;
}