From 3833396cfad7289b8c38ab64b69885b409d993ce Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 12 Apr 2020 00:05:55 +0100 Subject: [PATCH] Fix delayed error message in start game tab --- builtin/mainmenu/tab_local.lua | 57 ++++++++++++++++------------------ 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index 0969bccfb..cd6cbea46 100644 --- a/builtin/mainmenu/tab_local.lua +++ b/builtin/mainmenu/tab_local.lua @@ -207,40 +207,35 @@ local function main_button_handler(this, fields, name, tabdata) local selected = core.get_textlist_index("sp_worlds") gamedata.selected_world = menudata.worldlist:get_raw_index(selected) - if core.settings:get_bool("enable_server") then - if selected ~= nil and gamedata.selected_world ~= 0 then - gamedata.playername = fields["te_playername"] - gamedata.password = fields["te_passwd"] - gamedata.port = fields["te_serverport"] - gamedata.address = "" - - core.settings:set("port",gamedata.port) - if fields["te_serveraddr"] ~= nil then - core.settings:set("bind_address",fields["te_serveraddr"]) - end - - --update last game - local world = menudata.worldlist:get_raw_element(gamedata.selected_world) - if world then - local game = pkgmgr.find_by_gameid(world.gameid) - core.settings:set("menu_last_game", game.id) - end - - core.start() - else - gamedata.errormessage = + if selected == nil or gamedata.selected_world == 0 then + gamedata.errormessage = fgettext("No world created or selected!") - end - else - if selected ~= nil and gamedata.selected_world ~= 0 then - gamedata.singleplayer = true - core.start() - else - gamedata.errormessage = - fgettext("No world created or selected!") - end return true end + + -- Update last game + local world = menudata.worldlist:get_raw_element(gamedata.selected_world) + if world then + local game = pkgmgr.find_by_gameid(world.gameid) + core.settings:set("menu_last_game", game.id) + end + + if core.settings:get_bool("enable_server") then + gamedata.playername = fields["te_playername"] + gamedata.password = fields["te_passwd"] + gamedata.port = fields["te_serverport"] + gamedata.address = "" + + core.settings:set("port",gamedata.port) + if fields["te_serveraddr"] ~= nil then + core.settings:set("bind_address",fields["te_serveraddr"]) + end + else + gamedata.singleplayer = true + end + + core.start() + return true end if fields["world_create"] ~= nil then