Fix error if setting menu_last_game is not a valid game
authornOOb3167 <nOOb3167@gmail.com>
Fri, 22 Dec 2017 10:35:06 +0000 (11:35 +0100)
committerrubenwardy <rw@rubenwardy.com>
Fri, 22 Dec 2017 10:39:51 +0000 (10:39 +0000)
builtin/mainmenu/dlg_create_world.lua

index 380f0654f5802f1e011cbf5d10f9f3c501882ede..13061ee40d67903990865928b86d4b8c2cc9f9cb 100644 (file)
@@ -33,18 +33,21 @@ local function create_world_formspec(dialogdata)
                end
        end
 
-       local gamepath = core.get_game(gameidx).path
-       local gameconfig = Settings(gamepath.."/game.conf")
-
-       local disallowed_mapgens = (gameconfig:get("disallowed_mapgens") or ""):split()
-       for key, value in pairs(disallowed_mapgens) do
-               disallowed_mapgens[key] = value:trim()
-       end
+       local game_by_gameidx = core.get_game(gameidx)
+       if game_by_gameidx ~= nil then
+               local gamepath = game_by_gameidx.path
+               local gameconfig = Settings(gamepath.."/game.conf")
+
+               local disallowed_mapgens = (gameconfig:get("disallowed_mapgens") or ""):split()
+               for key, value in pairs(disallowed_mapgens) do
+                       disallowed_mapgens[key] = value:trim()
+               end
 
-       if disallowed_mapgens then
-               for i = #mapgens, 1, -1 do
-                       if table.indexof(disallowed_mapgens, mapgens[i]) > 0 then
-                               table.remove(mapgens, i)
+               if disallowed_mapgens then
+                       for i = #mapgens, 1, -1 do
+                               if table.indexof(disallowed_mapgens, mapgens[i]) > 0 then
+                                       table.remove(mapgens, i)
+                               end
                        end
                end
        end