use new lua gui2 api in WC mapgen settings

The lua gui2 compatibility code doesn't apply
to the mapgen lua kernel. So this code was broken
This commit is contained in:
gfgtdf 2020-09-10 20:02:10 +02:00
parent 88fbe11457
commit 5fb3880ee4

View file

@ -241,47 +241,63 @@ local dialog_wml = {
}
function wc2_debug_settings(nplayers)
local function on_set_map()
globals.settings.scenario_num = wesnoth.get_dialog_value("sl_scenario")
local function preshow(window)
local sl_scenario = window.sl_scenario
local sl_map = window.sl_map
local function on_set_map()
globals.settings.scenario_num = sl_scenario.value
std_print(nplayers, globals.settings.scenario_num)
local generators = get_defaults(nplayers, globals.settings.scenario_num)
local map_data = generators[wesnoth.get_dialog_value("sl_map")]
if map_data then
wesnoth.set_dialog_value(map_data.length, "sl_length")
wesnoth.set_dialog_value(map_data.villages, "sl_villages")
wesnoth.set_dialog_value(map_data.castle, "sl_castle")
wesnoth.set_dialog_value(map_data.iterations, "sl_iterations")
wesnoth.set_dialog_value(map_data.island, "sl_island")
wesnoth.set_dialog_value(map_data.hill_size, "sl_hill_size")
wesnoth.set_dialog_value(map_data.ncastles, "sl_ncastles")
local generators = get_defaults(nplayers, globals.settings.scenario_num)
local map_data = generators[sl_map.value]
if map_data then
window.sl_length.value = map_data.length
window.sl_villages.value = map_data.villages
window.sl_castle.value = map_data.castle
window.sl_iterations.value = map_data.iterations
window.sl_island.value = map_data.island
window.sl_hill_size.value = map_data.hill_size
window.sl_ncastles.value = map_data.ncastles
globals.settings.default_id = map_data.default_id
globals.settings.postgen_id = map_data.postgen_id
globals.settings.default_id = map_data.default_id
globals.settings.postgen_id = map_data.postgen_id
end
end
end
local function on_set_scenario()
globals.settings.scenario_num = wesnoth.get_dialog_value("sl_scenario")
get_defaults(nplayers, globals.settings.scenario_num)
on_set_map()
end
local function preshow()
wesnoth.set_dialog_value(globals.settings.scenario_num or 1, "sl_scenario")
wesnoth.set_dialog_value(globals.settings.map_num or 1, "sl_map")
wesnoth.set_dialog_callback(on_set_scenario, "sl_scenario")
wesnoth.set_dialog_callback(on_set_map, "sl_map")
on_set_map()
end
local function postshow()
globals.settings.scenario_num = wesnoth.get_dialog_value("sl_scenario")
globals.settings.map_num = wesnoth.get_dialog_value("sl_map")
globals.settings.length = wesnoth.get_dialog_value("sl_length")
globals.settings.villages = wesnoth.get_dialog_value("sl_villages")
globals.settings.castle = wesnoth.get_dialog_value("sl_castle")
globals.settings.iterations = wesnoth.get_dialog_value("sl_iterations")
globals.settings.island = wesnoth.get_dialog_value("sl_island")
globals.settings.hill_size = wesnoth.get_dialog_value("sl_hill_size")
globals.settings.ncastles = wesnoth.get_dialog_value("sl_ncastles")
local function on_set_scenario()
globals.settings.scenario_num = sl_scenario.value
get_defaults(nplayers, globals.settings.scenario_num)
on_set_map()
end
sl_scenario.value = globals.settings.scenario_num or 1
sl_map.value = globals.settings.map_num or 1
sl_scenario.callback = on_set_scenario
sl_map.callback = on_set_map
on_set_map()
end
local function postshow(window)
globals.settings.scenario_num = window.sl_scenario.value
globals.settings.map_num = window.sl_map.value
globals.settings.length = window.sl_length.value
globals.settings.villages = window.sl_villages.value
globals.settings.castle = window.sl_castle.value
globals.settings.iterations = window.sl_iterations.value
globals.settings.island = window.sl_island.value
globals.settings.hill_size = window.sl_hill_size.value
globals.settings.ncastles = window.sl_ncastles.value
end
wesnoth.show_dialog(dialog_wml, preshow, postshow)
end