summaryrefslogtreecommitdiff
path: root/main_gui.c
diff options
context:
space:
mode:
Diffstat (limited to 'main_gui.c')
-rw-r--r--main_gui.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/main_gui.c b/main_gui.c
index 88bceae17..d599bc4b1 100644
--- a/main_gui.c
+++ b/main_gui.c
@@ -42,7 +42,7 @@ static byte _last_built_railtype;
extern void GenerateWorld(int mode, uint size_x, uint size_y);
extern void GenerateIndustries(void);
-extern void GenerateTowns(void);
+extern bool GenerateTowns(void);
void HandleOnEditTextCancel(void)
{
@@ -1505,16 +1505,23 @@ static void ScenEditTownGenWndProc(Window *w, WindowEvent *e)
_generating_world = true;
t = CreateRandomTown(20);
_generating_world = false;
- if (t != NULL)
+
+ if (t == NULL) {
+ ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0);
+ } else
ScrollMainWindowToTile(t->xy);
+
break;
}
case 6: {/* many random towns */
HandleButtonClick(w, 6);
+
_generating_world = true;
_game_mode = GM_NORMAL; // little hack to avoid towns of the same size
- GenerateTowns();
+ if (!GenerateTowns())
+ ShowErrorMessage(STR_NO_SPACE_FOR_TOWN, STR_CANNOT_GENERATE_TOWN, 0, 0);
_generating_world = false;
+
_game_mode = GM_EDITOR;
break;
}