Split server/client port setting to avoid port number clashes in mainmenu

master
sapier 2013-11-28 21:43:06 +01:00
parent ff25218374
commit b08d7558de
4 changed files with 50 additions and 40 deletions

View File

@ -421,37 +421,42 @@ function tabbuilder.handle_multiplayer_buttons(fields)
if fields["favourites"] ~= nil then if fields["favourites"] ~= nil then
local event = explode_textlist_event(fields["favourites"]) local event = explode_textlist_event(fields["favourites"])
if event.typ == "DCL" then if event.typ == "DCL" then
gamedata.address = menu.favorites[event.index].address if event.index <= #menu.favorites then
gamedata.port = menu.favorites[event.index].port gamedata.address = menu.favorites[event.index].address
gamedata.playername = fields["te_name"] gamedata.port = menu.favorites[event.index].port
if fields["te_pwd"] ~= nil then gamedata.playername = fields["te_name"]
gamedata.password = fields["te_pwd"] if fields["te_pwd"] ~= nil then
end gamedata.password = fields["te_pwd"]
gamedata.selected_world = 0 end
gamedata.selected_world = 0
if menu.favorites ~= nil then if menu.favorites ~= nil then
gamedata.servername = menu.favorites[event.index].name gamedata.servername = menu.favorites[event.index].name
gamedata.serverdescription = menu.favorites[event.index].description gamedata.serverdescription = menu.favorites[event.index].description
end end
if gamedata.address ~= nil and if gamedata.address ~= nil and
gamedata.port ~= nil then gamedata.port ~= nil then
engine.setting_set("address",gamedata.address)
engine.start() engine.setting_set("remote_port",gamedata.port)
engine.start()
end
end end
end end
if event.typ == "CHG" then if event.typ == "CHG" then
local address = menu.favorites[event.index].address if event.index <= #menu.favorites then
local port = menu.favorites[event.index].port local address = menu.favorites[event.index].address
local port = menu.favorites[event.index].port
if address ~= nil and if address ~= nil and
port ~= nil then port ~= nil then
engine.setting_set("address",address) engine.setting_set("address",address)
engine.setting_set("port",port) engine.setting_set("remote_port",port)
end
menu.fav_selected = event.index
end end
menu.fav_selected = event.index
end end
return return
end end
@ -473,7 +478,7 @@ function tabbuilder.handle_multiplayer_buttons(fields)
if address ~= nil and if address ~= nil and
port ~= nil then port ~= nil then
engine.setting_set("address",address) engine.setting_set("address",address)
engine.setting_set("port",port) engine.setting_set("remote_port",port)
end end
menu.fav_selected = fav_idx menu.fav_selected = fav_idx
@ -499,13 +504,13 @@ function tabbuilder.handle_multiplayer_buttons(fields)
menu.fav_selected = nil menu.fav_selected = nil
engine.setting_set("address","") engine.setting_set("address","")
engine.setting_get("port","") engine.setting_set("remote_port","30000")
return return
end end
if fields["btn_mp_connect"] ~= nil or if fields["btn_mp_connect"] ~= nil or
fields["key_enter"] then fields["key_enter"] ~= nil then
gamedata.playername = fields["te_name"] gamedata.playername = fields["te_name"]
gamedata.password = fields["te_pwd"] gamedata.password = fields["te_pwd"]
@ -516,17 +521,20 @@ function tabbuilder.handle_multiplayer_buttons(fields)
if fav_idx > 0 and fav_idx <= #menu.favorites and if fav_idx > 0 and fav_idx <= #menu.favorites and
menu.favorites[fav_idx].address == fields["te_address"] and menu.favorites[fav_idx].address == fields["te_address"] and
menu.favorites[fav_idx].port == fields["te_port"] then menu.favorites[fav_idx].port == fields["te_port"] then
gamedata.servername = menu.favorites[fav_idx].name gamedata.servername = menu.favorites[fav_idx].name
gamedata.serverdescription = menu.favorites[fav_idx].description gamedata.serverdescription = menu.favorites[fav_idx].description
else else
gamedata.servername = "" gamedata.servername = ""
gamedata.serverdescription = "" gamedata.serverdescription = ""
end end
gamedata.selected_world = 0 gamedata.selected_world = 0
engine.setting_set("address",fields["te_address"])
engine.setting_set("remote_port",fields["te_port"])
engine.start() engine.start()
return return
end end
@ -574,6 +582,7 @@ function tabbuilder.handle_server_buttons(fields)
gamedata.address = "" gamedata.address = ""
gamedata.selected_world = filterlist.get_raw_index(worldlist,selected) gamedata.selected_world = filterlist.get_raw_index(worldlist,selected)
engine.setting_set("port",gamedata.port)
menu.update_last_game(gamedata.selected_world) menu.update_last_game(gamedata.selected_world)
engine.start() engine.start()
end end
@ -820,7 +829,7 @@ function tabbuilder.tab_multiplayer()
"label[1,4.25;".. fgettext("Address/Port") .. "]".. "label[1,4.25;".. fgettext("Address/Port") .. "]"..
"label[9,2.75;".. fgettext("Name/Password") .. "]" .. "label[9,2.75;".. fgettext("Name/Password") .. "]" ..
"field[1.25,5.25;5.5,0.5;te_address;;" ..engine.setting_get("address") .."]" .. "field[1.25,5.25;5.5,0.5;te_address;;" ..engine.setting_get("address") .."]" ..
"field[6.75,5.25;2.25,0.5;te_port;;" ..engine.setting_get("port") .."]" .. "field[6.75,5.25;2.25,0.5;te_port;;" ..engine.setting_get("remote_port") .."]" ..
"checkbox[1,3.6;cb_public_serverlist;".. fgettext("Public Serverlist") .. ";" .. "checkbox[1,3.6;cb_public_serverlist;".. fgettext("Public Serverlist") .. ";" ..
dump(engine.setting_getbool("public_serverlist")) .. "]" dump(engine.setting_getbool("public_serverlist")) .. "]"
@ -886,7 +895,8 @@ function tabbuilder.tab_server()
"field[0.8,3.2;3,0.5;te_playername;".. fgettext("Name") .. ";" .. "field[0.8,3.2;3,0.5;te_playername;".. fgettext("Name") .. ";" ..
engine.setting_get("name") .. "]" .. engine.setting_get("name") .. "]" ..
"pwdfield[0.8,4.2;3,0.5;te_passwd;".. fgettext("Password") .. "]" .. "pwdfield[0.8,4.2;3,0.5;te_passwd;".. fgettext("Password") .. "]" ..
"field[0.8,5.2;3,0.5;te_serverport;".. fgettext("Server Port") .. ";30000]" .. "field[0.8,5.2;3,0.5;te_serverport;".. fgettext("Server Port") .. ";" ..
engine.setting_get("port") .."]" ..
"textlist[4,0.25;7.5,3.7;srv_worlds;" .. "textlist[4,0.25;7.5,3.7;srv_worlds;" ..
menu.render_world_list() .. menu.render_world_list() ..
";" .. index .. "]" ";" .. index .. "]"

View File

@ -22,8 +22,7 @@
# Client and server # Client and server
# #
# Network port (UDP)
#port =
# Name of player; on a server this is the main admin # Name of player; on a server this is the main admin
#name = #name =
@ -31,6 +30,8 @@
# Client stuff # Client stuff
# #
# Port to connect to (UDP)
#remote_port =
# Key mappings # Key mappings
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
#keymap_forward = KEY_KEY_W #keymap_forward = KEY_KEY_W
@ -198,7 +199,8 @@
# #
# Server stuff # Server stuff
# #
# Network port to listen (UDP)
#port =
# Name of server # Name of server
#server_name = Minetest server #server_name = Minetest server
# Description of server # Description of server

View File

@ -25,11 +25,10 @@ void set_default_settings(Settings *settings)
{ {
// Client and server // Client and server
settings->setDefault("port", "");
settings->setDefault("name", ""); settings->setDefault("name", "");
// Client stuff // Client stuff
settings->setDefault("remote_port", "30000");
settings->setDefault("keymap_forward", "KEY_KEY_W"); settings->setDefault("keymap_forward", "KEY_KEY_W");
settings->setDefault("keymap_backward", "KEY_KEY_S"); settings->setDefault("keymap_backward", "KEY_KEY_S");
settings->setDefault("keymap_left", "KEY_KEY_A"); settings->setDefault("keymap_left", "KEY_KEY_A");
@ -157,6 +156,7 @@ void set_default_settings(Settings *settings)
// Server stuff // Server stuff
// "map-dir" doesn't exist by default. // "map-dir" doesn't exist by default.
settings->setDefault("port", "30000");
settings->setDefault("default_game", "minetest"); settings->setDefault("default_game", "minetest");
settings->setDefault("motd", ""); settings->setDefault("motd", "");
settings->setDefault("max_users", "15"); settings->setDefault("max_users", "15");

View File

@ -1674,8 +1674,6 @@ int main(int argc, char *argv[])
// Save settings // Save settings
g_settings->set("name", playername); g_settings->set("name", playername);
g_settings->set("address", address);
g_settings->set("port", itos(port));
if((menudata.selected_world >= 0) && if((menudata.selected_world >= 0) &&
(menudata.selected_world < (int)worldspecs.size())) (menudata.selected_world < (int)worldspecs.size()))