aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/mainmenu.lua11
-rw-r--r--src/main.cpp3
2 files changed, 12 insertions, 2 deletions
diff --git a/builtin/mainmenu.lua b/builtin/mainmenu.lua
index 6670a5eb8..30cff823e 100644
--- a/builtin/mainmenu.lua
+++ b/builtin/mainmenu.lua
@@ -332,6 +332,10 @@ function menu.filtered_index_to_plain(filtered_index)
local temp_idx = 0
+ if menu.worldlist == nil then
+ return -1
+ end
+
for i=1,#menu.worldlist,1 do
if menu.worldlist[i].gameid == current_game.id then
temp_idx = temp_idx +1
@@ -418,6 +422,10 @@ function menu.update_last_game(world_idx)
if gamedata.selected_world <= #menu.worldlist then
local world = menu.worldlist[gamedata.selected_world]
+ if world == nil then
+ return
+ end
+
for i=1,#gamemgr.games,1 do
if gamemgr.games[i].id == world.gameid then
menu.last_game = i
@@ -574,7 +582,8 @@ end
--------------------------------------------------------------------------------
function tabbuilder.handle_create_world_buttons(fields)
- if fields["world_create_confirm"] then
+ if fields["world_create_confirm"] or
+ fields["key_enter"] then
local worldname = fields["te_world_name"]
local gameindex = engine.get_textlist_index("games")
diff --git a/src/main.cpp b/src/main.cpp
index 02bffa84d..580260ade 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1667,7 +1667,8 @@ int main(int argc, char *argv[])
}
// Set world path to selected one
- if(menudata.selected_world != -1){
+ if ((menudata.selected_world >= 0) &&
+ (menudata.selected_world < worldspecs.size())) {
worldspec = worldspecs[menudata.selected_world];
infostream<<"Selected world: "<<worldspec.name
<<" ["<<worldspec.path<<"]"<<std::endl;