Skip to content

Commit

Permalink
Fixed mainmenu lua errors because of changes in get_textlist_index
Browse files Browse the repository at this point in the history
Fixed lua error when none of the worlds or servers selected are and connect,
delete or configure buttons used.
  • Loading branch information
vargad authored and BlockMen committed Jan 18, 2014
1 parent b11b48e commit 66b24cc
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 17 deletions.
35 changes: 19 additions & 16 deletions builtin/mainmenu.lua
Expand Up @@ -296,7 +296,7 @@ function menu.handle_key_up_down(fields,textlist,settingname)
if fields["key_up"] then
local oldidx = engine.get_textlist_index(textlist)

if oldidx > 1 then
if oldidx ~= nil and oldidx > 1 then
local newidx = oldidx -1
engine.setting_set(settingname,
filterlist.get_raw_index(worldlist,newidx))
Expand All @@ -306,7 +306,7 @@ function menu.handle_key_up_down(fields,textlist,settingname)
if fields["key_down"] then
local oldidx = engine.get_textlist_index(textlist)

if oldidx < filterlist.size(worldlist) then
if oldidx ~= nil and oldidx < filterlist.size(worldlist) then
local newidx = oldidx + 1
engine.setting_set(settingname,
filterlist.get_raw_index(worldlist,newidx))
Expand Down Expand Up @@ -392,7 +392,7 @@ function tabbuilder.handle_create_world_buttons(fields)
local worldname = fields["te_world_name"]
local gameindex = engine.get_textlist_index("games")

if gameindex > 0 and
if gameindex ~= nil and
worldname ~= "" then

local message = nil
Expand Down Expand Up @@ -506,11 +506,13 @@ function tabbuilder.handle_multiplayer_buttons(fields)

local fav_idx = engine.get_textlist_index("favourites")

if fields["key_up"] ~= nil and fav_idx > 1 then
fav_idx = fav_idx -1
else if fields["key_down"] and fav_idx < #menu.favorites then
fav_idx = fav_idx +1
end end
if fav_idx ~= nil then
if fields["key_up"] ~= nil and fav_idx > 1 then
fav_idx = fav_idx -1
else if fields["key_down"] and fav_idx < #menu.favorites then
fav_idx = fav_idx +1
end end
end

local address = menu.favorites[fav_idx].address
local port = menu.favorites[fav_idx].port
Expand Down Expand Up @@ -539,6 +541,7 @@ function tabbuilder.handle_multiplayer_buttons(fields)

if fields["btn_delete_favorite"] ~= nil then
local current_favourite = engine.get_textlist_index("favourites")
if current_favourite == nil then return end
engine.delete_favorite(current_favourite)
menu.favorites = engine.get_favorites()
menu.fav_selected = nil
Expand All @@ -559,7 +562,7 @@ function tabbuilder.handle_multiplayer_buttons(fields)

local fav_idx = engine.get_textlist_index("favourites")

if fav_idx > 0 and fav_idx <= #menu.favorites and
if fav_idx ~= nil and fav_idx <= #menu.favorites and
menu.favorites[fav_idx].address == fields["te_address"] and
menu.favorites[fav_idx].port == fields["te_port"] then

Expand Down Expand Up @@ -615,7 +618,7 @@ function tabbuilder.handle_server_buttons(fields)
world_doubleclick or
fields["key_enter"] then
local selected = engine.get_textlist_index("srv_worlds")
if selected > 0 then
if selected ~= nil then
gamedata.playername = fields["te_playername"]
gamedata.password = fields["te_passwd"]
gamedata.port = fields["te_serverport"]
Expand All @@ -637,7 +640,7 @@ function tabbuilder.handle_server_buttons(fields)

if fields["world_delete"] ~= nil then
local selected = engine.get_textlist_index("srv_worlds")
if selected > 0 and
if selected ~= nil and
selected <= filterlist.size(worldlist) then
local world = filterlist.get_list(worldlist)[selected]
if world ~= nil and
Expand All @@ -655,7 +658,7 @@ function tabbuilder.handle_server_buttons(fields)

if fields["world_configure"] ~= nil then
selected = engine.get_textlist_index("srv_worlds")
if selected > 0 then
if selected ~= nil then
modmgr.world_config_selected_world = filterlist.get_raw_index(worldlist,selected)
if modmgr.init_worldconfig() then
tabbuilder.current_tab = "dialog_configure_world"
Expand Down Expand Up @@ -763,7 +766,7 @@ function tabbuilder.handle_singleplayer_buttons(fields)
world_doubleclick or
fields["key_enter"] then
local selected = engine.get_textlist_index("sp_worlds")
if selected > 0 then
if selected ~= nil then
gamedata.selected_world = filterlist.get_raw_index(worldlist,selected)
gamedata.singleplayer = true

Expand All @@ -781,7 +784,7 @@ function tabbuilder.handle_singleplayer_buttons(fields)

if fields["world_delete"] ~= nil then
local selected = engine.get_textlist_index("sp_worlds")
if selected > 0 and
if selected ~= nil and
selected <= filterlist.size(worldlist) then
local world = filterlist.get_list(worldlist)[selected]
if world ~= nil and
Expand All @@ -799,7 +802,7 @@ function tabbuilder.handle_singleplayer_buttons(fields)

if fields["world_configure"] ~= nil then
selected = engine.get_textlist_index("sp_worlds")
if selected > 0 then
if selected ~= nil then
modmgr.world_config_selected_world = filterlist.get_raw_index(worldlist,selected)
if modmgr.init_worldconfig() then
tabbuilder.current_tab = "dialog_configure_world"
Expand All @@ -820,7 +823,7 @@ function tabbuilder.handle_texture_pack_buttons(fields)
index)
local list = filter_texture_pack_list(engine.get_dirlist(engine.get_texturepath(), true))
local current_index = engine.get_textlist_index("TPs")
if #list >= current_index then
if current_index ~= nil and #list >= current_index then
local new_path = engine.get_texturepath()..DIR_DELIM..list[current_index]
if list[current_index] == "None" then new_path = "" end

Expand Down
2 changes: 1 addition & 1 deletion builtin/modmgr.lua
Expand Up @@ -1067,7 +1067,7 @@ function modmgr.get_global_mod(idx)
return nil
end

if idx < 1 or idx > filterlist.size(modmgr.global_mods) then
if idx == nil or idx < 1 or idx > filterlist.size(modmgr.global_mods) then
return nil
end

Expand Down

0 comments on commit 66b24cc

Please sign in to comment.