diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index c938b85e2d..1a536ec4b5 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2170,17 +2170,19 @@ std::tuple CmdFoundTown(DoCommandFlag flags, TileInd Town *t; if (random_location) { t = CreateRandomTown(20, townnameparts, size, city, layout); - if (t == nullptr) return { CommandCost(STR_ERROR_NO_SPACE_FOR_TOWN), 0, INVALID_TOWN }; } else { t = new Town(tile); DoCreateTown(t, tile, townnameparts, size, city, layout, true); } - new_town = t->index; UpdateNearestTownForRoadTiles(false); old_generating_world.Restore(); - if (t != nullptr && !text.empty()) { + if (t == nullptr) return { CommandCost(STR_ERROR_NO_SPACE_FOR_TOWN), 0, INVALID_TOWN }; + + new_town = t->index; + + if (!text.empty()) { t->name = text; t->UpdateVirtCoord(); }