Merge branch 'master' of github.com:wesnoth/wesnoth-old
This commit is contained in:
commit
5610b589e0
3 changed files with 91 additions and 78 deletions
|
@ -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]
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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_;
|
||||
|
|
Loading…
Add table
Reference in a new issue