Handle case where rail waypoint runs out of station spec slots
This commit is contained in:
@@ -280,6 +280,10 @@ CommandCost CmdBuildRailWaypoint(TileIndex start_tile, DoCommandFlag flags, uint
|
|||||||
if (!Waypoint::CanAllocateItem()) return_cmd_error(STR_ERROR_TOO_MANY_STATIONS_LOADING);
|
if (!Waypoint::CanAllocateItem()) return_cmd_error(STR_ERROR_TOO_MANY_STATIONS_LOADING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check if we can allocate a custom stationspec to this station */
|
||||||
|
int map_spec_index = AllocateSpecToStation(spec, wp, (flags & DC_EXEC) != 0);
|
||||||
|
if (map_spec_index == -1) return_cmd_error(STR_ERROR_TOO_MANY_STATION_SPECS);
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
if (wp == nullptr) {
|
if (wp == nullptr) {
|
||||||
wp = new Waypoint(start_tile);
|
wp = new Waypoint(start_tile);
|
||||||
@@ -301,8 +305,6 @@ CommandCost CmdBuildRailWaypoint(TileIndex start_tile, DoCommandFlag flags, uint
|
|||||||
|
|
||||||
wp->UpdateVirtCoord();
|
wp->UpdateVirtCoord();
|
||||||
|
|
||||||
byte map_spec_index = AllocateSpecToStation(spec, wp, true);
|
|
||||||
|
|
||||||
Company *c = Company::Get(wp->owner);
|
Company *c = Company::Get(wp->owner);
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
TileIndex tile = start_tile + i * offset;
|
TileIndex tile = start_tile + i * offset;
|
||||||
|
Reference in New Issue
Block a user