The Battle for Wesnoth  1.13.10+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Todo List
Member actions::undo_list::add_auto_shroud (bool turned_on)
: Consecutive shroud actions can be collapsed into one.
Member actions::undo_list::add_dummy ()
: Consecutive shroud actions can be collapsed into one.
Member actions::undo_list::add_update_shroud ()
: Consecutive shroud actions can be collapsed into one.
Member addon_info::display_title () const
FIXME: Is it even possible for the add-ons server to provide untitled add-ons in its reply anymore? Titles seem to be required at upload time.
Member addon_info::resolve_dependencies (const addons_list &addons) const
Tag resolved dependencies with information about where they come from, and implement more dependency tiers.
Member ADDON_INSTALLED_BROKEN
This option isn't currently implemented!
Member addons_client::request_addons_list (config &cfg)
FIXME: get rid of this legacy "campaign"/"campaigns" silliness
Member addons_client::upload_addon (const std::string &id, std::string &response_message, config &cfg)
Notify the user about the automatic passphrase.
Member ai::ai_composite::evaluate (const std::string &str)
1.9 : consider allowing other engines to evaluate
Member ai::ai_composite::new_turn ()
1.9 replace with event system
Member ai::ai_default_rca::get_villages_phase::execute ()
1.7 check if this an improvement
Member ai::ai_default_rca::move_to_targets_phase::choose_move (std::vector< target > &targets)
1.9: lower this value for perf,
Member ai::aspect::redeploy (const config &cfg, const std::string &id)

1.9 add minor_gamestate_change_observer

1.9 add minor_gamestate_change_observer

Member ai::aspect::~aspect ()
1.9 add minor_gamestate_change_observer
Member ai::attack_analysis::analyze (const gamemap &map, unit_map &units, const readonly_context &ai_obj, const move_map &dstsrc, const move_map &srcdst, const move_map &enemy_dstsrc, double aggression)

1.9 add combatant.prob_killed

1.9: attack_prediction.cpp should understand advancement directly. For each level of attacker def gets 1 xp or kill_experience.

Member ai::composite_aspect< T >::recalculate () const
1.9 optimize in case of an aspect which returns variant
Member ai::engine_lua::evaluate (const std::string &str)
this is not mandatory, but if we want to allow lua to evaluate
Member ai::formula_ai::make_action (wfl::const_formula_ptr formula_, const wfl::formula_callable &variables)
1.9 add formula_debugger
Member ai::game_info::recent_attacks
1.9 rework that via extended event system, or at least ensure it hurts no one
Class ai::holder
1.9 move it out of public view
Member ai::manager::add_ai_for_side (side_number side, const std::string &ai_algorithm_type, bool replace=true)
1.9 add error reporting
Member ai::manager::add_ai_for_side_from_file (side_number side, const std::string &file, bool replace=true)
1.9 add error reporting
Member ai::manager::internal_evaluate_command (side_number side, const std::string &str)

1.9 rewrite this function to use a fai or lua parser.

1.9 extract to separate class which will use fai or lua parser

Member ai::move_result::do_check_after ()
1.9 add 'new units spotted' failure mode
Member ai::move_result::do_execute ()
1.9 set to false after implemeting interrupt awareness
Member ai::move_result::test_route (const unit &un)
1.9: see_all -> false
Member ai::readonly_context_impl::calculate_moves (const unit_map &units, std::map< map_location, pathfind::paths > &possible_moves, move_map &srcdst, move_map &dstsrc, bool enemy, bool assume_full_movement=false, const terrain_filter *remove_destinations=nullptr, bool see_all=false) const override
This is where support for a speculative unit map is incomplete. There are several places (deep) within the paths constructor where resources::gameboard->units() is assumed to be the unit map. Rather than introduce a new parameter to numerous functions, a better solution may be for the creator of the speculative map (if one is used in the future) to cause resources::gameboard->units() to point to that map (and restore the "real" pointer when the speculating is completed). If that approach is adopted, calculate_moves() and calculate_possible_moves() become redundant, and one of them should probably be eliminated.
Member ai::readonly_context_impl::get_attack_depth () const override
1.9: add validators, such as minmax filters to aspects
Member ai::readonly_context_impl::get_attacks_as_variant () const override
1.9: replace with variant::null_variant;
Member ai::readonly_context_impl::get_recall_list () const override
1.9: check for (level_["disallow_recall"]))
Member ai::readonly_context_impl::recalculate_move_maps () const override
: shall possible moves be modified as well ?
Member ai::stage_side_formulas::to_config () const
1.7: serialize to config
Member ai_testing::log_game_start ()
1.9: add information about ai_config
Member battle_context::choose_defender_weapon (const unit &attacker, const unit &defender, unsigned attacker_weapon, const unit_map &units, const map_location &attacker_loc, const map_location &defender_loc, const combatant *prev_def)
FIXME: Hand previous defender unit in here.
Member battle_context::get_attacker_combatant (const combatant *prev_def=nullptr)
FIXME: better to initialize combatant initially (move into battle_context_unit_stats?), just do fight() when required.
Member BOOST_AUTO_TEST_CASE (test_mask_modification_decoding_1_arg)
check if the surface is correct
Member BOOST_AUTO_TEST_CASE (test_fire_event)
Add the rest of the events.
Member BOOST_AUTO_TEST_CASE (test_blit_modification_decoding_1_arg)
check if the surface is correct
Member BOOST_AUTO_TEST_CASE (test_blit_modification_decoding_3_args)
check if the surface is correct
Member BOOST_AUTO_TEST_CASE (test_mask_modification_decoding_3_args)
check if the surface is correct
Member BOOST_AUTO_TEST_CASE (test_l_modification_decoding_1_arg)
check if the surface is correct
Member config_implementation::child (T config, config_key_type key, const std::string &parent)
Implement a proper wml_exception here.
Member connect_signals (std::stringstream &sstr, gui2::widget &widget)
Add the rest of the events.
Member editor::brush_drag_mouse_action::drag_end (editor_display &disp, int x, int y)
partial actions (the entire drag should end up as one action)
Member editor::brush_drag_mouse_action::drag_left (editor_display &disp, int x, int y, bool &partial, editor_action *last_undo)
partial actions support and merging of many drag actions into one
Member editor::brush_drag_mouse_action::drag_right (editor_display &disp, int x, int y, bool &partial, editor_action *last_undo)
partial actions support and merging of many drag actions into one
Member editor::brush_drag_mouse_action::previous_drag_hex_
keep a set of all "visited" locations to reduce action count in long drags that hit the same hexes multiple times?
Member editor::map_context::undo_stack_
Use boost's pointer-owning container?
Member editor::mouse_action_fill::click_left (editor_display &disp, int x, int y)
only take the base terrain into account when searching for contiguous terrain when painting base only
Member editor::mouse_action_fill::click_right (editor_display &disp, int x, int y)
only take the base terrain into account when searching for contiguous terrain when painting base only
Page Event dispatching.

Describe drawing and resizing once the code is stable and working as wanted in these areas.

The hotkeys need to be implemented like above in 1.9.

This might change in the near future.

Validate the code it seems a down event with a captured mouse doesn't really work as wanted. (Rare case but should work properly.) In general the mouse event handling needs testing to see whether the proper events are send all the time.

Document further.

Member events::mouse_handler::attack_enemy_ (const map_location &attacker_loc, const map_location &defender_loc, int choice)
change ToD to be location specific for the defender
Member exception_translator_config (const config::error &e)
add all others exception handlers too
Member font::pango_text::get_column_line (const point &position) const
There's still a bug left. When you select a text which is in the ellipses on the right side the text gets reformatted with ellipses on the left and the selected character is not the one under the cursor. Other widget toolkits don't show ellipses and have no indication more text is available. Haven't found what the best thing to do would be. Until that time leave it as is.
Class game_config::config_cache

Make smarter filetree checksum caching so only required parts of tree are checked at startup. Trees are overlapping so have to split trees to subtrees to only do check once per file.

Make cache system easily allow validation of in memory cache objects using hash checksum of preproc_map.

Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_config::images::app_icon
de-hardcode this
Member game_display::game_mode
if the current implementation is wanted we can change the stuff back to a boolean
Member game_display::pre_draw ()
FIXME: must modify changed, but best to do it at the floating_label level
Member game_events::WML_HANDLER_FUNCTION (clear_global_variable,, pcfg)
Finish experimenting.
Member game_events::WML_HANDLER_FUNCTION (get_global_variable,, pcfg)
Finish experimenting.
Member game_events::WML_HANDLER_FUNCTION (recall,, cfg)

FIXME: we should design the WML to avoid these types of collisions; filters should be named consistently and always have a distinct scope.

fendrin: comment this monster

fendrin: comment this monster

Member game_events::WML_HANDLER_FUNCTION (set_global_variable,, pcfg)
Finish experimenting.
Member game_events::WML_HANDLER_FUNCTION (replace_map,, cfg)
Finish experimenting.
Class gamemap
Update for new map-format.
Member gamemap::on_board (const map_location &loc) const
inline for performance? – Ilor
Member get_variations (const std::string &base, const std::string &variations)
optimize this function
Namespace gui2

The items below are not implemented yet.

This implementation is quite a hack that needs to be rewritten cleanly

Page GUI2 Iterator.

Write the entire visiting algorithm.

Write the entire visiting algorithm.

Member gui2::chatbox::set_active_window_changed_callback (const std::function< void(void)> &f)
: remove
Member gui2::circle_shape::draw (surface &canvas, SDL_Renderer *renderer, wfl::map_formula_callable &variables) override
formulas are now recalculated every draw cycle which is a bit silly unless there has been a resize. So to optimize we should use an extra flag or do the calculation in a separate routine.
Member gui2::container_base::create_walker () override
Implement properly.
Member gui2::dialogs::file_dialog::is_selection_type_acceptable (SELECTION_TYPE stype) const
This currently never returns true for SELECTION_IS_DIR, awaiting a need to implement a directory selection mode.
Member gui2::dialogs::language_selection::pre_show (window &window) override
show we also reset the translations and is the tips of day call really needed?
Member gui2::dialogs::mp_lobby::post_build (window &window) override
Should become a global hotkey after 1.8, then remove it here.
Member gui2::dialogs::mp_lobby::show_preferences_button_callback (window &window)

This might no longer be needed when gui2 is done.

This might no longer be needed when gui2 is done.

Member gui2::dialogs::sub_player_list::update_player_count_label ()
Make sure setting visible resizes the widget.
Member gui2::dialogs::title_screen::update_tip (window &window, const bool previous)
Look for a proper fix.
Member gui2::dialogs::wml_message_base::pre_show (window &window) override
This function enables the wml markup for all items, but the interface is a bit hacky. Especially the fiddling in the internals of the listbox is ugly. There needs to be a clean interface to set whether a widget has a markup and what kind of markup. These fixes will be post 1.6.
Member gui2::event::dispatcher::register_hotkey (const hotkey::HOTKEY_COMMAND id, const hotkey_function &function)
add a static function register_global_hotkey.
Member gui2::event::dispatcher::want_keyboard_input_
The entire mouse and keyboard handling can use a code review to seen whether it might be combined in one flag field. At the moment the keyboard doesn't look whether a dialog has the mouse focus before sending the event, so maybe we should add an active dispatcher to keep track of it. But since at the moment there are only non-modal windows and tooltips it's not a problem.
Member gui2::event::distributor::distributor (widget &owner, const dispatcher::queue_position queue_position)
Test whether the state is properly tracked when an input blocker is used.
Member gui2::event::distributor::signal_handler_keyboard_internal (event::ui_event evt, P1 &&p1, P2 &&p2, P3 &&p3)

Test whether recursion protection is needed.

Make sure we're not in the event chain.

Member gui2::event::distributor::signal_handler_notify_removal (dispatcher &widget, const ui_event event)
Evaluate whether moving the cleanup parts in the subclasses.
Member gui2::field_base::attach_to_window (window &window)
Most functions that have a window parameter only use it to get the widget. Evaluate and remove the window parameter where applicable.
Member gui2::generator< minimum_selection, maximum_selection, my_placement, select_action >::child::shown
functions now test for visible and shown, that can use some polishing.
Member gui2::generator< minimum_selection, maximum_selection, my_placement, select_action >::create_walker () override
Implement properly.
Member gui2::grid::demand_reduce_height (const unsigned maximum_height) override
Implement.
Member gui2::grid::demand_reduce_width (const unsigned maximum_width) override
Implement.
Member gui2::grid::reduce_height (const unsigned maximum_height)
Implement.
Member gui2::grid::reduce_width (const unsigned maximum_width)
Implement.
Member gui2::grid::request_reduce_height (const unsigned maximum_height) override

this point shouldn't be reached, find out why it does.

Improve this code.

Member gui2::grid::request_reduce_width (const unsigned maximum_width) override
this point shouldn't be reached, find out why it does.
Member gui2::grid::set_column_grow_factor (const unsigned column, const unsigned factor)
refer to a page with the layout manipulation info.
Member gui2::grid::set_row_grow_factor (const unsigned row, const unsigned factor)
refer to a page with the layout manipulation info.
Member gui2::gui_definition::gui_definition (const config &cfg)
Regarding sounds: Need to evaluate but probably we want the widget definition be able to:
  • Override the default (and clear it). This will allow toggle buttons in a listbox to sound like a toggle panel.
  • Override the default and above per instance of the widget, some buttons can give a different sound.
Member gui2::image_shape::draw (surface &canvas, SDL_Renderer *renderer, wfl::map_formula_callable &variables) override
formulas are now recalculated every draw cycle which is a bit silly unless there has been a resize. So to optimize we should use an extra flag or do the calculation in a separate routine.
Member gui2::implementation::builder_multi_page::builder_multi_page (const config &cfg)
This part is untested.
Class gui2::implementation::builder_window
See whether this hack can be removed.
Member gui2::legacy_menu_item::legacy_menu_item (const std::string &str=std::string())
This syntax looks like a bad hack, it would be nice to write a new syntax which doesn't use those hacks (also avoids the problem with special meanings for certain characters.
Member gui2::line_shape::draw (surface &canvas, SDL_Renderer *renderer, wfl::map_formula_callable &variables) override
formulas are now recalculated every draw cycle which is a bit silly unless there has been a resize. So to optimize we should use an extra flag or do the calculation in a separate routine.
Member gui2::listbox::finalize (builder_grid_const_ptr header, builder_grid_const_ptr footer, const std::vector< std::map< std::string, string_map >> &list_data)
A listbox must have the following config parameters in the instantiation:
  • fixed row height?
  • fixed column width? and if so the following ways to set them
  • fixed depending on header ids
  • fixed depending on footer ids
  • fixed depending on first row ids
  • fixed depending on list (the user has to enter a list of ids)
Member gui2::listbox::list_item_clicked (widget &caller)
Hack to capture the keyboard focus.
Member gui2::listbox::set_content_size (const point &origin, const point &size) override
This function needs more testing.
Member gui2::matrix::create_walker () override
Implement properly.
Member gui2::pane::create_walker () override
Implement properly.
Member gui2::policy::minimum_selection::one_item::delete_item (const unsigned index)
do_select_item needs to test for shown flag.
Member gui2::policy::placement::horizontal_list::create_item (const unsigned index)
implement.
Class gui2::policy::placement::independent
Implement.
Class gui2::policy::placement::table
Implement.
Member gui2::policy::placement::table::create_item (const unsigned)
implement.
Member gui2::policy::placement::vertical_list::create_item (const unsigned index)
implement.
Member gui2::rectangle_shape::draw (surface &canvas, SDL_Renderer *renderer, wfl::map_formula_callable &variables) override
formulas are now recalculated every draw cycle which is a bit silly unless there has been a resize. So to optimize we should use an extra flag or do the calculation in a separate routine.
Member gui2::round_rectangle_shape::draw (surface &canvas, SDL_Renderer *renderer, wfl::map_formula_callable &variables) override
formulas are now recalculated every draw cycle which is a bit silly unless there has been a resize. So to optimize we should use an extra flag or do the calculation in a separate routine.
Member gui2::scrollbar_base::child_callback_positioner_moved ()
This is a kind of hack due to the fact there's no simple callback slot mechanism. See whether we can implement a generic way to attach callback which would remove quite some extra code.
Member gui2::scrollbar_base::recalculate ()
In the MP lobby it can happen that a listbox has first zero items, then gets filled and since there are no visible items the second assert after this block will be triggered. Use this ugly hack to avoid that case. (This hack also added the gui/widgets/window.hpp include.)
Member gui2::scrollbar_base::slider
Abstract the code so this friend is no longer needed.
Class gui2::scrollbar_container
events are not yet send to the content grid.
Member gui2::scrollbar_container::content_resize_request (const bool force_sizing=false)
Try to handle AUTO_VISIBLE_FIRST_RUN here as well.
Member gui2::scrollbar_container::request_reduce_height (const unsigned maximum_height) override
Evaluate whether sizing hints are required.
Member gui2::scrollbar_container::set_scrollbar_button_status ()

scrollbar visibility.

scrollbar visibility.

Member gui2::slider_base::child_callback_positioner_moved ()
This is a kind of hack due to the fact there's no simple callback slot mechanism. See whether we can implement a generic way to attach callback which would remove quite some extra code.
Member gui2::styled_widget::calculate_best_size () const override
The value send should subtract the border size and read it after calculation to get the proper result.
Member gui2::styled_widget::layout_initialize (const bool full_initialization) override
Also handle the tooltip state. Handle if shrunken_ && use_tooltip_on_label_overflow_.
Member gui2::styled_widget::renderer_
Maybe if still too slow we might also copy this cache to the canvas so it can reuse our results, but for now it seems fast enough. Unfortunately that would make the dependency between the classes bigger as wanted.
Member gui2::styled_widget::set_members (const string_map &data)

document this feature on the wiki.

do we need to add the debug colors here as well?

Class gui2::text_box_base
Validate whether the NOTIFY_MODIFIED is always fired properly. The current implementation is added for some quick testing so some cases might be forgotten.
Member gui2::text_box_base::handle_key_left_arrow (SDL_Keymod modifier, bool &handled)
implement the ctrl key.
Member gui2::text_box_base::handle_key_right_arrow (SDL_Keymod modifier, bool &handled)
implement the ctrl key.
Member gui2::text_shape::draw (surface &canvas, SDL_Renderer *renderer, wfl::map_formula_callable &variables) override
formulas are now recalculated every draw cycle which is a
Member gui2::toggle_panel::border_space () const override
only due to the fact our definition is slightly different from panel_definition we need to override this function and do about the same, look at a way to 'fix' that.
Member gui2::toggle_panel::find_at (const point &coordinate, const bool must_be_active) override
since there is no mouse event nesting (or event nesting at all) we need to capture all events. This means items on the panel will never receive an event, which gives problems with for example the intended button on the addon panel. So we need to chain mouse events as well and also add a handled flag for them.
Member gui2::toggle_panel::get_client_rect () const override
only due to the fact our definition is slightly different from panel_definition we need to override this function and do about the same, look at a way to 'fix' that.
Member gui2::tree_view::node_definitions_
evaluate which way the dependency should go.
Member gui2::tree_view_node::clear ()
Also try to find the optimal width.
Member gui2::tree_view_node::create_walker () override
Implement properly.
Member gui2::tree_view_node::signal_handler_left_button_click (const event::ui_event event)
Rewrite this sizing code for the folding/unfolding.
Member gui2::viewport::create_walker () override
Implement properly.
Member gui2::widget::demand_reduce_height (const unsigned maximum_height)
Make pure virtual.
Member gui2::widget::demand_reduce_width (const unsigned maximum_width)
Make pure virtual.
Member gui2::widget::linked_group_
For now the linked group is initialized when the layout of the widget is initialized. The best time to set it would be upon adding the widget in the window. Need to look whether it is possible in a clean way. Maybe a signal just prior to showing a window where the widget can do some of it's on things, would also be nice for widgets that need a finalizer function.
Member gui2::widget::move (const int x_offset, const int y_offset)
Implement the function to all derived classes.
Member gui2::widget::request_reduce_height (const unsigned maximum_height)
Make pure virtual.
Member gui2::window::add_linked_widget (const std::string &id, widget *widget)
Untested if a new widget is added after showing the widgets.
Member gui2::window::add_to_keyboard_chain (widget *widget)
rename to keyboard_add_to_chain.
Parameters
widgetThe widget to add to the chain. The widget should be valid widget, which hasn't been added to the chain yet.
Member gui2::window::click_dismiss_
After testing the click dismiss feature it should be documented in the wiki.
Member gui2::window::layout ()

implement the scrollbars on the window.

implement the scrollbars on the window.

Member gui2::window::remove_from_keyboard_chain (widget *widget)
rename to keyboard_remove_from_chain.
Member gui2::window::set_enter_disabled (const bool enter_disabled)
this function should be merged with the hotkey support once that has been added.
Member gui2::window::set_escape_disabled (const bool escape_disabled)
this function should be merged with the hotkey support once that has been added.
Member gui2::window::show (const bool restore=true, const unsigned auto_close_timeout=0)

Clean up the show functions.

Clean up the code duplication.

Member gui2::window::show_non_modal ()
implement auto_close_timeout.
Member gui2::window::show_tooltip ()
implement auto_close_timeout.
Member gui2::window_definition::resolution::resolution (const config &cfg)
Evaluate whether the grid should become mandatory.
Member gui::scrollarea::scrollarea (CVideo &video, bool auto_join=true)
FIXME: parameterlist ??
Member gui::scrollbar::scrollbar (CVideo &video)
FIXME: parameterlist ??
Member hotkey::del_hotkey (const hotkey_ptr item)
unusued?
Member hotkey::hotkey_base::get_description () const
unused
Returns
internationalised description of the command.
Class hotkey::hotkey_joystick
not implemented
Member make_addon_title (const std::string &id)
In the future we should store more local information about add-ons and use this only as a fallback; it could be desirable to fetch translated names as well somehow.
File manager.hpp

1.9 Refactor history handling and internal commands.

1.9 AI Interface command to clear the history.

Class map_location
Update for new map-format.
Member mp::initial_level_config (saved_game &state)
: see if all the comments ai algorithms are still up-to-date and relevant.
Member ng::configure_engine::side_cfg () const

This might not be 100% correct, but at the moment it is not possible to show fog and shroud per player. This might change in the future.

: Is the above even still true? – vultraz, 2017-10-05

Class preferences::admin_authentication_reset
FIXME: is_authenticated shouldn't be a preferences function. Also, the name is misleading.
Member preferences::get_history (const std::string &id)
FIXME only used for gui2. Could be used for the above histories.
Member read_addons_list (const config &cfg, addons_list &dest)
FIXME: get rid of this legacy "campaign"/"campaigns" silliness
Member terrain_builder::load_images (building_rule &rule)
improve this, 99% of terrains are not animated.
Member terrain_builder::rebuild_terrain (const map_location &loc)
TODO: rename this function
Member terrain_builder::tile::rebuild_cache (const std::string &tod, logs *log=nullptr)
improve this
Member terrain_type::terrain_type (const config &cfg)
reenable these validations. The problem is that all MP scenarios/campaigns share the same namespace and one rogue scenario can avoid the player to create a MP game. So every scenario/campaign should get its own namespace to be safe.
Member turn_info::handle_turn (const config &t)
FIXME: Check what commands we execute when it's our turn!
Member unit::anim_comp () const
Document this
Member unit::get_hidden () const
document hiddenness
Member unit::hp_bar_scaling () const
: document further
Member unit::invisible (const map_location &loc, const display_context &dc, bool see_all=true) const
FIXME: We use the cache only when using the default see_all=true Maybe add a second cache if the see_all=false become more frequent.
Member unit::rename (const std::string &name)
should this also take a t_string?
Member unit::set_user_end_turn (bool value=true)
Verify meaning and explain better
Member unit::STATE_NOT_MOVED
Explain better
Member unit::toggle_user_end_turn ()
Verify meaning and explain better
Member unit::usage () const
document further
Member unit::user_end_turn () const
Verify meaning and explain better
Member unit::xp_bar_scaling () const
: document further
Member unit_display::unit_mover::wait_for_anims ()
For wesnoth 1.14+: check if efficient for redrawing? Check with large animated units too make sure artifacts are not left on screen after unit movement in particular.
Class utf8::invalid_utf8_exception
FIXME: This clearly needs a better name for that reason.
Member utils::quoted_split (const std::string &val, char c= ',', int flags=REMOVE_EMPTY|STRIP_SPACES, char quote= '\')
Why not change split()? That would change the methods post condition.
Member validate_draw (std::stringstream &sstr)
Add the rest of the events.
Class variable_info_mutable< V >
: should these functions take a reference?
Member VGETTEXT (msgid,...)
Convert all functions.
Member wb::highlighter::highlight_main_visitor::visit (recall_ptr)
: find some suitable effect for mouseover on planned recall.
Member wb::highlighter::highlight_main_visitor::visit (move_ptr)
find some highlight animation
Member wb::highlighter::highlight_main_visitor::visit (recruit_ptr)
: find some suitable effect for mouseover on planned recruit.
Member wb::highlighter::highlight_main_visitor::visit (attack_ptr)
: highlight the attack indicator
Member wb::highlighter::set_mouseover_hex (const map_location &hex)
"is_numbering_hex" is not the "correct" criterion by which to select the hightlighted/selected action. It's just convenient for me to use at the moment since it happens to coincide with the "correct" criterion, which is to use find_main_highlight.
Member wb::manager::contextual_delete ()
Shouldn't we probably deselect the unit at this point?
Member wb::manager::should_clear_undo () const
Only when there are networked allies and we have set a preferences option
Member wb::move::ARROW_BRIGHTNESS
Make use of safe_enum idiom?
Member wb::recall::to_config () const
Find a better way to serialize unit_ because underlying_id isn't cutting it
Member wesnothd::game::add_player (const socket_ptr player, bool observer=false)
differentiate between "observers not allowed" and "player already in the game" errors.
Member wesnothd::game::mute_observer (const simple_wml::node &mute, const socket_ptr muter)
FIXME: Maybe rather save muted nicks as a set of strings and also allow muting of usernames not in the game.
Member wesnothd::server::ban_handler (const std::string &, const std::string &, std::string &, std::ostringstream *)
FIXME: make a proper check for valid IPs.
Member wesnothd::server::gban_handler (const std::string &, const std::string &, std::string &, std::ostringstream *)
FIXME: make a proper check for valid IPs.
Member wesnothd::server::handle_player_in_game (socket_ptr socket, std::shared_ptr< simple_wml::document > doc)
FIXME: Why not save the level data in the history_?
Member wesnothd::server::kickban_handler (const std::string &, const std::string &, std::string &, std::ostringstream *)
FIXME: make a proper check for valid IPs.