Merge branch 'master' of github.com:wesnoth/wesnoth-old

This commit is contained in:
Alexander van Gessel 2013-12-09 16:43:13 +01:00
commit 5610b589e0
3 changed files with 91 additions and 78 deletions

View file

@ -347,7 +347,8 @@
# The revealing of the path is much easier done in lua. Thanks mattsc for the code!
[lua]
code= <<
code= <<
local ai_helper = wesnoth.require "ai/lua/ai_helper.lua"
local H = wesnoth.require "lua/helper.lua"
local W = H.set_wml_action_metatable {}
local delf = wesnoth.get_units { id = 'Delfador' }[1]
@ -355,24 +356,18 @@
local path = wesnoth.find_path(delf, sceptre_x, sceptre_y, {ignore_units = true, viewing_side = 0})
_ = wesnoth.textdomain 'wesnoth-httt'
local dirs = { _"I sense the path to the sceptre is to the west of me.",
_"I sense the path to the sceptre is to the north-west of me.",
_"I sense the path to the sceptre is to the north of me.",
_"I sense the path to the sceptre is to the north-east of me.",
_"I sense the path to the sceptre is to the east of me.",
local dirs = { _"I sense the path to the sceptre is to the east of me.",
_"I sense the path to the sceptre is to the south-east of me.",
_"I sense the path to the sceptre is to the south of me.",
_"I sense the path to the sceptre is to the south-west of me." }
_"I sense the path to the sceptre is to the south-west of me.",
_"I sense the path to the sceptre is to the west of me.",
_"I sense the path to the sceptre is to the north-west of me.",
_"I sense the path to the sceptre is to the north of me.",
_"I sense the path to the sceptre is to the north-east of me." }
local goal = { x = path[6][1], y = path[6][2] }
-- Go to square geometry
local delf_y_sq = (delf.y * 2 - (delf.x % 2)) / 2.
local goal_y_sq = (goal.y * 2 - (goal.x % 2)) / 2.
local angle = math.atan2( (goal_y_sq - delf_y_sq), (goal.x - delf.x) )
angle = math.floor((angle / math.pi * 4 + 4.5) % 8 ) + 1
W.message{ speaker = 'Delfador', message= dirs[angle]}
W.message{ speaker = 'Delfador', message= dirs[ai_helper.get_direction_index(delf, goal, 8, true)]}
>>
[/lua]
[/event]

View file

@ -86,12 +86,13 @@ configure::configure(game_display& disp, const config &cfg, chat& c, config& gam
name_entry_(disp.video(), 32),
entry_points_label_(disp.video(), _("Select an entry point:"), font::SIZE_SMALL, font::LOBBY_COLOR),
entry_points_combo_(disp, std::vector<std::string>()),
options_pane_(disp.video()),
options_pane_left_(disp.video()),
options_pane_right_(disp.video()),
entry_points_(),
show_entry_points_(false),
force_use_map_settings_check_(true),
parameters_(params),
options_manager_(cfg, disp.video(), &options_pane_, preferences::options())
options_manager_(cfg, disp.video(), &options_pane_right_, preferences::options())
{
// Build the list of scenarios to play
@ -510,7 +511,8 @@ void configure::hide_children(bool hide)
entry_points_label_.hide(hide);
entry_points_combo_.hide(hide);
options_pane_.hide(hide);
options_pane_left_.hide(hide);
options_pane_right_.hide(hide);
}
void configure::layout_children(const SDL_Rect& rect)
@ -539,106 +541,121 @@ void configure::layout_children(const SDL_Rect& rect)
// Save ypos here (column top)
int ypos_columntop = ypos;
const int right_pane_height =
ca.h - (ypos_columntop - ca.y + launch_game_.height() + border_size);
// First column: non-gameplay settings
int slider_width = first_column_width;
options_pane_left_.set_location(xpos, ypos);
options_pane_left_.set_width(first_column_width);
options_pane_left_.set_height(right_pane_height - entry_points_label_.height());
int slider_width = options_pane_left_.width() - 40;
#ifdef MP_VISION_OPTIONAL
vision_combo_.set_location(xpos, ypos);
ypos += vision_combo_.height() + border_size;
#endif
ypos += 2*border_size;
observers_game_.set_location(xpos, ypos);
shuffle_sides_.set_location(ca.x + first_column_width/2, ypos);
ypos += shuffle_sides_.height() + border_size;
int xpos_left = 0;
int ypos_left = 0;
countdown_game_.set_location(xpos, ypos);
ypos_left += 2 * border_size;
options_pane_left_.add_widget(&observers_game_, xpos_left, ypos_left);
options_pane_left_.add_widget(&shuffle_sides_,
xpos_left + (options_pane_left_.width() - xpos_left) / 2 + border_size, ypos_left);
ypos_left += shuffle_sides_.height() + border_size;
options_pane_left_.add_widget(&countdown_game_, xpos_left, ypos_left);
if(!local_players_only_) {
password_button_.set_location(ca.x + first_column_width/2, ypos);
options_pane_left_.add_widget(&password_button_,
(ca.x + first_column_width / 2) - 40, ypos_left);
} else {
password_button_.hide(true);
}
ypos += countdown_game_.height() + border_size;
ypos_left += countdown_game_.height() + border_size;
countdown_init_time_label_.set_location(xpos, ypos);
ypos += countdown_init_time_label_.height() + border_size;
options_pane_left_.add_widget(&countdown_init_time_label_, xpos_left, ypos_left );
ypos_left += countdown_init_time_label_.height() + border_size;
countdown_init_time_slider_.set_width(slider_width);
countdown_init_time_slider_.set_location(xpos, ypos);
ypos += countdown_init_time_slider_.height() + border_size;
options_pane_left_.add_widget(&countdown_init_time_slider_, xpos_left, ypos_left);
ypos_left += countdown_init_time_slider_.height() + border_size;
countdown_turn_bonus_label_.set_location(xpos, ypos);
ypos += countdown_turn_bonus_label_.height() + border_size;
options_pane_left_.add_widget(&countdown_turn_bonus_label_, xpos_left, ypos_left);
ypos_left += countdown_turn_bonus_label_.height() + border_size;
countdown_turn_bonus_slider_.set_width(slider_width);
countdown_turn_bonus_slider_.set_location(xpos, ypos);
ypos += countdown_turn_bonus_slider_.height() + border_size;
options_pane_left_.add_widget(&countdown_turn_bonus_slider_, xpos_left, ypos_left);
ypos_left += countdown_turn_bonus_slider_.height() + border_size;
countdown_reservoir_time_label_.set_location(xpos, ypos);
ypos += countdown_reservoir_time_label_.height() + border_size;
options_pane_left_.add_widget(&countdown_reservoir_time_label_, xpos_left, ypos_left);
ypos_left += countdown_reservoir_time_label_.height() + border_size;
countdown_reservoir_time_slider_.set_width(slider_width);
countdown_reservoir_time_slider_.set_location(xpos, ypos);
ypos += countdown_reservoir_time_slider_.height() + border_size;
countdown_action_bonus_label_.set_location(xpos, ypos);
ypos += countdown_action_bonus_label_.height() + border_size;
options_pane_left_.add_widget(&countdown_reservoir_time_slider_, xpos_left, ypos_left);
ypos_left += countdown_reservoir_time_slider_.height() + border_size;
options_pane_left_.add_widget(&countdown_action_bonus_label_, xpos_left, ypos_left);
ypos_left += countdown_action_bonus_label_.height() + border_size;
countdown_action_bonus_slider_.set_width(slider_width);
countdown_action_bonus_slider_.set_location(xpos, ypos);
ypos += countdown_action_bonus_slider_.height() + border_size;
options_pane_left_.add_widget(&countdown_action_bonus_slider_, xpos_left, ypos_left);
ypos_left += countdown_action_bonus_slider_.height() + border_size;
if (show_entry_points_) {
ypos += border_size;
entry_points_label_.set_location(xpos, ypos);
ypos += entry_points_label_.height() + border_size;
entry_points_combo_.set_location(xpos, ypos);
ypos += entry_points_combo_.height() + border_size;
int x = ca.x;
int y = ca.y + ca.h - entry_points_combo_.height();
entry_points_combo_.set_location(x, y);
y -= entry_points_label_.height() + border_size;
entry_points_label_.set_location(x, y);
}
// Second column: gameplay settings
xpos += first_column_width + column_border_size;
ypos = ypos_columntop;
options_pane_.set_location(xpos, ypos);
options_pane_.set_width(ca.w - (xpos - ca.x));
options_pane_.set_height(ca.h - (ypos - ca.y + launch_game_.height() + border_size));
options_pane_right_.set_location(xpos, ypos);
options_pane_right_.set_width(ca.w - (xpos - ca.x));
options_pane_right_.set_height(right_pane_height);
slider_width = options_pane_.width() - 40;
slider_width = options_pane_right_.width() - 40;
xpos = 0;
ypos = 0;
options_pane_.add_widget(&generic_label_, xpos, ypos);
ypos += generic_label_.height() + border_size;
int xpos_right = 0;
int ypos_right = 0;
options_pane_right_.add_widget(&generic_label_, xpos_right, ypos_right);
ypos_right += generic_label_.height() + border_size;
options_pane_.add_widget(&use_map_settings_, xpos, ypos);
options_pane_.add_widget(&fog_game_, xpos + (options_pane_.width() - xpos)/2 + 5, ypos);
ypos += use_map_settings_.height() + border_size;
options_pane_right_.add_widget(&use_map_settings_, xpos_right, ypos_right);
options_pane_right_.add_widget(&fog_game_,
xpos_right + (options_pane_right_.width() - xpos_right)/2 + 5, ypos_right);
ypos_right += use_map_settings_.height() + border_size;
options_pane_.add_widget(&random_start_time_, xpos, ypos);
options_pane_.add_widget(&shroud_game_, xpos + (options_pane_.width() - xpos)/2 + 5, ypos);
ypos += random_start_time_.height() + border_size;
options_pane_right_.add_widget(&random_start_time_, xpos_right, ypos_right);
options_pane_right_.add_widget(&shroud_game_,
xpos_right + (options_pane_right_.width() - xpos_right)/2 + 5, ypos_right);
ypos_right += random_start_time_.height() + border_size;
options_pane_.add_widget(&turns_label_, xpos, ypos);
ypos += turns_label_.height() + border_size;
options_pane_right_.add_widget(&turns_label_, xpos_right, ypos_right);
ypos_right += turns_label_.height() + border_size;
turns_slider_.set_width(slider_width);
options_pane_.add_widget(&turns_slider_, xpos, ypos);
ypos += turns_slider_.height() + border_size;
options_pane_right_.add_widget(&turns_slider_, xpos_right, ypos_right);
ypos_right += turns_slider_.height() + border_size;
options_pane_.add_widget(&xp_modifier_label_, xpos, ypos);
ypos += xp_modifier_label_.height() + border_size;
options_pane_right_.add_widget(&xp_modifier_label_, xpos_right, ypos_right);
ypos_right += xp_modifier_label_.height() + border_size;
xp_modifier_slider_.set_width(slider_width);
options_pane_.add_widget(&xp_modifier_slider_, xpos, ypos);
ypos += xp_modifier_slider_.height() + border_size;
options_pane_right_.add_widget(&xp_modifier_slider_, xpos_right, ypos_right);
ypos_right += xp_modifier_slider_.height() + border_size;
options_pane_.add_widget(&village_support_label_, xpos, ypos);
ypos += village_support_label_.height() + border_size;
options_pane_right_.add_widget(&village_support_label_, xpos_right, ypos_right);
ypos_right += village_support_label_.height() + border_size;
village_support_slider_.set_width(slider_width);
options_pane_.add_widget(&village_support_slider_, xpos, ypos);
ypos += village_support_slider_.height() + border_size;
options_pane_right_.add_widget(&village_support_slider_, xpos_right, ypos_right);
ypos_right += village_support_slider_.height() + border_size;
options_pane_.add_widget(&village_gold_label_, xpos, ypos);
ypos += village_gold_label_.height() + border_size;
options_pane_right_.add_widget(&village_gold_label_, xpos_right, ypos_right);
ypos_right += village_gold_label_.height() + border_size;
village_gold_slider_.set_width(slider_width);
options_pane_.add_widget(&village_gold_slider_, xpos, ypos);
ypos += village_gold_slider_.height() + border_size;
options_pane_right_.add_widget(&village_gold_slider_, xpos_right, ypos_right);
ypos_right += village_gold_slider_.height() + 3 * border_size;
options_manager_.layout_widgets(xpos, ypos);

View file

@ -85,7 +85,8 @@ private:
gui::label entry_points_label_;
gui::combo entry_points_combo_;
gui::scrollpane options_pane_;
gui::scrollpane options_pane_left_;
gui::scrollpane options_pane_right_;
std::vector<config const*> entry_points_;
bool show_entry_points_;