implement allow_era_choice wml for sp settings

This commit is contained in:
Nathan Walker 2014-07-25 16:24:01 -05:00
parent 7ca092dc21
commit 049ae13a5a
4 changed files with 254 additions and 229 deletions

View File

@ -1,318 +1,337 @@
#textdomain wesnoth-lib
[window]
id = "campaign_settings"
description = "Singleplayer advanced settings dialog."
id = "campaign_settings"
description = "Singleplayer advanced settings dialog."
[resolution]
definition = "default"
[resolution]
definition = "default"
maximum_width = 800
maximum_width = 800
automatic_placement = "true"
vertical_placement = "center"
horizontal_placement = "center"
automatic_placement = "true"
vertical_placement = "center"
horizontal_placement = "center"
[linked_group]
id = "era"
fixed_width = "true"
[/linked_group]
[linked_group]
id = "era"
fixed_width = "true"
[/linked_group]
[linked_group]
id = "mod"
fixed_width = "true"
[/linked_group]
[linked_group]
id = "mod"
fixed_width = "true"
[/linked_group]
[tooltip]
id = "tooltip_large"
[/tooltip]
[tooltip]
id = "tooltip_large"
[/tooltip]
[helptip]
id = "tooltip_large"
[/helptip]
[helptip]
id = "tooltip_large"
[/helptip]
[grid]
[grid]
[row]
grow_factor = 0
[row]
grow_factor = 0
[column]
grow_factor = 1
[column]
grow_factor = 1
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
definition = "title"
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
definition = "title"
label = _ "Advanced Settings"
[/label]
label = _ "Advanced Settings"
[/label]
[/column]
[/column]
[column]
border = "all"
border_size = 5
[column]
horizontal_grow = "true"
vertical_grow = "true"
horizontal_grow = "true"
vertical_grow = "true"
[spacer]
[/spacer]
[/column]
[spacer]
[/spacer]
[/row]
[/column]
[row]
[/row]
[column]
grow_factor = 1
[row]
border = "all"
border_size = 5
horizontal_alignment = "left"
[column]
grow_factor = 1
[label]
definition = "default"
border = "all"
border_size = 5
horizontal_alignment = "left"
label = _ "Additional Dialogs:"
[/label]
[label]
definition = "default"
[/column]
[column]
[spacer]
[/spacer]
label = _ "Additional Dialogs:"
[/label]
[/column]
[/column]
[/row]
[column]
[row]
[spacer]
[/spacer]
[column]
grow_factor = 1
[/column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[/row]
[toggle_button]
definition = "default"
id = "mp_configure"
[row]
label = _ "Multiplayer Configure"
[/toggle_button]
[column]
grow_factor = 1
[/column]
#[column]
#[spacer]
#[/spacer]
border = "all"
border_size = 5
horizontal_alignment = "left"
#[/column]
[toggle_button]
definition = "default"
id = "mp_configure"
[column]
grow_factor = 1
label = _ "Multiplayer Configure"
[/toggle_button]
border = "all"
border_size = 5
horizontal_alignment = "left"
[/column]
[toggle_button]
definition = "default"
id = "mp_connect"
[column]
grow_factor = 1
label = _ "Multiplayer Connect"
[/toggle_button]
border = "all"
border_size = 5
horizontal_alignment = "left"
[/column]
#[column]
# [spacer]
# [/spacer]
#[/column]
[toggle_button]
definition = "default"
id = "mp_connect"
[/row]
label = _ "Multiplayer Connect"
[/toggle_button]
[row]
[column]
[spacer]
height = 5
[/spacer]
[/column]
[column]
[spacer]
height = 5
[/spacer]
[/column]
[/row]
[/column]
[row]
grow_factor = 0
[/row]
[column]
border = "all"
border_size = 5
horizontal_grow = "true"
[row]
[column]
[spacer]
height = 5
[/spacer]
[/column]
[column]
[spacer]
height = 5
[/spacer]
[/column]
[/row]
[label]
definition = "default"
[row]
label = _ "Era:"
[/label]
[column]
[/column]
horizontal_grow = "true"
vertical_grow = "true"
[column]
border = "all"
border_size = 5
horizontal_grow = "true"
[grid]
[label]
definition = "default"
[row]
grow_factor = 0
label = _ "Modifications:"
[/label]
[column]
border = "all"
border_size = 5
horizontal_grow = "true"
[/column]
[label]
definition = "default"
id = "era_label"
label = _ "Era:"
[/label]
[/row]
[/column]
[row]
grow_factor = 1
[/row]
[column]
border = "all"
border_size = 5
[row]
grow_factor = 1
horizontal_grow = "true"
vertical_grow = "true"
[column]
border = "all"
border_size = 5
[listbox]
id = "era_list"
definition = "default"
horizontal_grow = "true"
vertical_grow = "true"
[list_definition]
[listbox]
id = "era_list"
definition = "default"
[row]
[list_definition]
[column]
horizontal_grow = "true"
vertical_grow = "true"
[row]
[toggle_panel]
definition = "default"
return_value_id = "ok"
[column]
horizontal_grow = "true"
vertical_grow = "true"
[grid]
[toggle_panel]
definition = "default"
[row]
[grid]
[column]
horizontal_grow = "true"
vertical_grow = "true"
border = "all"
border_size = 5
[row]
[label]
id = "era"
linked_group = "era"
definition = "default"
[/label]
[column]
horizontal_grow = "true"
vertical_grow = "true"
border = "all"
border_size = 5
[/column]
[label]
id = "era"
linked_group = "era"
definition = "default"
[/label]
[/row]
[/column]
[/grid]
[/row]
[/toggle_panel]
[/grid]
[/column]
[/toggle_panel]
[/row]
[/column]
[/list_definition]
[/row]
[/listbox]
[/list_definition]
[/column]
[/listbox]
[column]
border = "all"
border_size = 5
[/column]
horizontal_grow = "true"
vertical_grow = "true"
[/row]
[listbox]
id = "modification_list"
definition = "default"
has_minimum = false
has_maximum = false
[/grid]
[list_definition]
[/column]
[row]
[column]
horizontal_grow = "true"
vertical_grow = "true"
[column]
horizontal_grow = "true"
vertical_grow = "true"
border = "all"
border_size = 5
[grid]
[toggle_button]
id = "mod"
linked_group = "mod"
definition = "default"
[/toggle_button]
[row]
[/column]
[column]
border = "all"
border_size = 5
horizontal_grow = "true"
[/row]
[label]
definition = "default"
id = "mod_label"
[/list_definition]
label = _ "Modifications:"
[/label]
[/listbox]
[/column]
[/column]
[/row]
[/row]
[row]
[row]
grow_factor = 0
[column]
border = "all"
border_size = 5
[column]
horizontal_grow = "true"
vertical_grow = "true"
[spacer]
[/spacer]
[listbox]
id = "modification_list"
definition = "default"
has_minimum = false
has_maximum = false
[/column]
[list_definition]
[column]
border = "all"
border_size = 5
[row]
horizontal_alignment = "right"
[column]
horizontal_grow = "true"
vertical_grow = "true"
border = "all"
border_size = 5
[button]
id = "ok"
definition = "default"
[toggle_button]
id = "mod"
linked_group = "mod"
definition = "default"
[/toggle_button]
label = _ "OK"
[/button]
[/column]
[/column]
[/row]
[/row]
[/list_definition]
[/grid]
[/listbox]
[/resolution]
[/column]
[/row]
[/grid]
[/column]
[/row]
[row]
grow_factor = 0
[column]
[spacer]
[/spacer]
[/column]
[column]
border = "all"
border_size = 5
horizontal_alignment = "right"
[button]
id = "ok"
definition = "default"
label = _ "OK"
[/button]
[/column]
[/row]
[/grid]
[/resolution]
[/window]

View File

@ -107,6 +107,7 @@ void tcampaign_selection::campaign_selected(twindow& window)
= find_widget<tmulti_page>(&window, "campaign_details", false);
multi_page.select_page(selected_row);
engine_.set_current_level(selected_row);
}
}

View File

@ -15,9 +15,11 @@
#define GETTEXT_DOMAIN "wesnoth-lib"
#include "saved_game.hpp"
#include "gettext.hpp"
#include "gui/auxiliary/find_widget.tpp"
#include "gui/dialogs/campaign_settings.hpp"
#include "gui/widgets/button.hpp"
#include "gui/widgets/label.hpp"
#include "gui/widgets/listbox.hpp"
#include "gui/widgets/settings.hpp"
#include "gui/widgets/toggle_button.hpp"
@ -41,9 +43,8 @@ void tcampaign_settings::change_era(twindow& window)
engine_.set_current_era_index(list.get_selected_row());
}
void tcampaign_settings::change_mod(size_t index, twindow& window)
void tcampaign_settings::change_mod(size_t index, twindow&)
{
tlistbox& mod_list = find_widget<tlistbox>(&window, "modification_list", false);
engine_.set_current_mod_index(index);
// force toggle mod.
engine_.toggle_current_mod(true);
@ -53,19 +54,26 @@ void tcampaign_settings::update_lists(twindow& window)
{
tlistbox& era_list = find_widget<tlistbox>(&window, "era_list", false);
tlistbox& mod_list = find_widget<tlistbox>(&window, "modification_list", false);
tlabel& era_label = find_widget<tlabel>(&window, "era_label", false);
era_list.clear();
BOOST_FOREACH(std::string era, engine_.extras_menu_item_names(ng::create_engine::ERA)) {
std::map<std::string, string_map> row;
string_map column;
if (engine_.current_level().allow_era_choice()) {
BOOST_FOREACH(std::string era, engine_.extras_menu_item_names(ng::create_engine::ERA)) {
std::map<std::string, string_map> row;
string_map column;
column["label"] = era;
row.insert(std::make_pair("era", column));
column["label"] = era;
row.insert(std::make_pair("era", column));
era_list.add_row(row);
era_list.add_row(row);
}
era_list.select_row(engine_.current_era_index());
}
else {
era_label.set_label(_("Era:\nNot allowed"));
era_list.set_active(false);
}
era_list.select_row(engine_.current_era_index());
mod_list.clear();

View File

@ -85,9 +85,6 @@ bool enter_create_mode(game_display& disp, const config& game_config,
}
}
create_eng.set_current_level(campaign_num);
create_eng.set_current_era_index(0);
std::string random_mode = use_deterministic_mode ? "deterministic" : "";
state.classification().random_mode = random_mode;