The Battle for Wesnoth  1.13.4+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::download_addon (config &archive_cfg, const std::string &id, const std::string &title, bool increase_downloads=true)
FIXME Refactor this again once I figure out a better way to not transfer so much information in the method signature! Perhaps we'd reask the server for the add-ons list and extract the information from there again, since there isn't any way to request info for a single entry atm.
Member addons_client::install_addon (config &archive_cfg, const addon_info &info)
FIXME Refactor this again once I figure out a better way to not transfer so much information in the method signature! Perhaps we'd reask the server for the add-ons list and extract the information from there again, since there isn't any way to request info for a single entry atm.
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, const move_map &srcdst, const move_map &dstsrc, const move_map &enemy_dstsrc)
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 (game_logic::const_formula_ptr formula_, const game_logic::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
This is where support for a speculative unit map is incomplete. There are several places (deep) within the paths constructor where *resources::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::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
1.9: add validators, such as minmax filters to aspects
Member ai::readonly_context_impl::get_attacks_as_variant () const
1.9: replace with variant::null_variant;
Member ai::readonly_context_impl::get_recall_list () const
1.9: check for (level_["disallow_recall"]))
Member ai::readonly_context_impl::recalculate_move_maps () const
1.9: 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 blur_alpha_surface (const surface &surf, int depth=1, bool optimize=true)
FIXME: This is just an adapted copy-paste of the normal blur but with blur alpha channel too
Member blur_alpha_surface (const surface &surf, int depth=1, bool optimize=true)
FIXME: This is just an adapted copy-paste of the normal blur but with blur alpha channel too
Member BOOST_AUTO_TEST_CASE (test_l_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_1_arg)
check if the surface is correct
Member BOOST_AUTO_TEST_CASE (test_mask_modification_decoding_3_args)
check if the surface is correct
Member connect_signals (std::stringstream &sstr, gui2::twidget &widget)
Add the rest of the events.
Member dialogs::show_unit_list (display &gui)
TODO: hero just has overlay "misc/hero-icon.png" - needs an ability to query
Member do_preferences_dialog (CVideo &video, const config &game_config)
This might no longer be needed when gui2 is done.
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::console_handler::do_layers ()

also use random image variations (not just take 1st)

deal with (rarely used) ~modifications

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 floating_point_emulation::detail::tidiv< T, 8 >::idiv (tfloat< T, 8 > &lhs, tfloat< T, 8 > rhs)

The function needs more branch-prediction markers.

The function is too large to inline and needs to be separated in more functions, where the unlikely cases are not inlined but a function call.

Member font::ttext::get_column_line (const gui2::tpoint &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::pre_draw ()
FIXME: must modify changed, but best to do it at the floating_label level
Member game_display::tgame_mode
if the current implementation is wanted we can change the stuff back to a boolean
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::event::tdispatcher::register_hotkey (const hotkey::HOTKEY_COMMAND id, const thotkey_function &function)
add a static function register_global_hotkey.
Member gui2::event::tdispatcher::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::tdistributor::signal_handler_notify_removal (tdispatcher &widget, const tevent event)
Evaluate whether moving the cleanup parts in the subclasses.
Member gui2::event::tdistributor::signal_handler_sdl_key_down (const SDLKey key, const SDLMod modifier, const utf8::string &unicode)

Test whether recursion protection is needed.

Make sure we're not in the event chain.

Member gui2::event::tdistributor::tdistributor (twidget &owner, const tdispatcher::tposition queue_position)
Test whether the state is properly tracked when an input blocker is used.
Member gui2::event::thandler::draw (const bool force)
Need to evaluate which windows really to redraw.
Member gui2::event::thandler::handle_event (const SDL_Event &event)
Convert this to a proper new style event.
Member gui2::implementation::tbuilder_multi_page::tbuilder_multi_page (const config &cfg)
This part is untested.
Class gui2::implementation::tbuilder_window
See whether this hack can be removed.
Member gui2::policy::minimum_selection::tone::delete_item (const unsigned index)
do_select_item needs to test for shown flag.
Member gui2::policy::placement::thorizontal_list::create_item (const unsigned index)
implement.
Class gui2::policy::placement::tindependent
Implement.
Class gui2::policy::placement::tmatrix
Implement.
Member gui2::policy::placement::tvertical_list::create_item (const unsigned index)
implement.
Member gui2::tcontainer_::create_walker () override
Implement properly.
Member gui2::tcontainer_::initial_grid ()
Evaluate whether this function is overridden if not remove.
Member gui2::tcontrol::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::tcontrol::layout_initialise (const bool full_initialisation) override
Also handle the tooltip state. Handle if shrunken_ && use_tooltip_on_label_overflow_.
Member gui2::tcontrol::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::tcontrol::set_members (const string_map &data)

document this feature on the wiki.

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

Member gui2::tfield_::attach_to_window (twindow &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::tgenerator< minimum_selection, maximum_selection, placement, select_action >::create_walker () override
Implement properly.
Member gui2::tgenerator< minimum_selection, maximum_selection, placement, select_action >::titem::shown
functions now test for visible and shown, that can use some polishing.
Member gui2::tgrid::demand_reduce_height (const unsigned maximum_height) override
Implement.
Member gui2::tgrid::demand_reduce_width (const unsigned maximum_width) override
Implement.
Member gui2::tgrid::reduce_height (const unsigned maximum_height)
Implement.
Member gui2::tgrid::reduce_width (const unsigned maximum_width)
Implement.
Member gui2::tgrid::request_reduce_height (const unsigned maximum_height) override

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

Improve this code.

Member gui2::tgrid::request_reduce_width (const unsigned maximum_width) override
this point shouldn't be reached, find out why it does.
Member gui2::tgrid::set_column_grow_factor (const unsigned column, const unsigned factor)
refer to a page with the layout manipulation info.
Member gui2::tgrid::set_row_grow_factor (const unsigned row, const unsigned factor)
refer to a page with the layout manipulation info.
Member gui2::tgui_definition::read (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::tlanguage_selection::pre_show (twindow &window)
show we also reset the translations and is the tips of day call really needed?
Member gui2::tlegacy_menu_item::tlegacy_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::tlistbox::callback_value_changed_
the implementation of the callback hasn't been tested a lot and there might be too many calls. That might happen if an arrow up didn't change the selected item.
Member gui2::tlistbox::finalize (tbuilder_grid_const_ptr header, tbuilder_grid_const_ptr footer, const std::vector< 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::tlistbox::list_item_clicked (twidget &caller)
Hack to capture the keyboard focus.
Member gui2::tlistbox::place (const tpoint &origin, const tpoint &size) override
Work-around to set the selected item visible again.
Member gui2::tlistbox::set_content_size (const tpoint &origin, const tpoint &size)
This function needs more testing.
Member gui2::tlobby_main::post_build (twindow &window)
Should become a global hotkey after 1.8, then remove it here.
Member gui2::tlobby_main::show_preferences_button_callback (twindow &window)
This might no longer be needed when gui2 is done.
Member gui2::tmatrix::create_walker () override
Implement properly.
Member gui2::tmp_cmd_wrapper::pre_show (twindow &window)
Not really happy with the retval code in general. Need to give it some more thought. Therefore separated the set_retval from the set_active code.
Member gui2::tpane::create_walker () override
Implement properly.
Member gui2::tscrollbar_::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::tscrollbar_::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::tscrollbar_::tslider
Abstract the code so this friend is no longer needed.
Class gui2::tscrollbar_container
events are not yet send to the content grid.
Member gui2::tscrollbar_container::content_resize_request (const bool force_sizing=false)
Try to handle auto_visible_first_run here as well.
Member gui2::tscrollbar_container::request_reduce_height (const unsigned maximum_height) override
Evaluate whether sizing hints are required.
Member gui2::tscrollbar_container::set_scrollbar_button_status ()

scrollbar visibility.

scrollbar visibility.

Member gui2::tslider::set_maximum_value (const int maximum_value)
maybe make it a VALIDATE.
Member gui2::tslider::set_minimum_value (const int minimum_value)
maybe make it a VALIDATE.
Member gui2::tsub_player_list::auto_hide ()
Make sure setting visible resizes the widget.
Class gui2::ttext_
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::ttext_::handle_key_left_arrow (SDLMod modifier, bool &handled)
implement the ctrl key.
Member gui2::ttext_::handle_key_right_arrow (SDLMod modifier, bool &handled)
implement the ctrl key.
Class gui2::ttitle_screen
Evaluate whether we can handle more buttons in this class.
Member gui2::ttitle_screen::post_build (twindow &window)
Should become a title screen hotkey.
Member gui2::ttitle_screen::tresult
Evaluate the best place for these items.
Member gui2::ttitle_screen::update_tip (twindow &window, const bool previous)
Look for a proper fix.
Member gui2::ttoggle_panel::border_space () const override
only due to the fact our definition is slightly different from tpanel_definition we need to override this function and do about the same, look at a way to 'fix' that.
Member gui2::ttoggle_panel::find_at (const tpoint &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::ttoggle_panel::get_client_rect () const override
only due to the fact our definition is slightly different from tpanel_definition we need to override this function and do about the same, look at a way to 'fix' that.
Member gui2::ttree_view::node_definitions_
evaluate which way the dependancy should go.
Member gui2::ttree_view_node::clear ()
Also try to find the optimal width.
Member gui2::ttree_view_node::create_walker () override
Implement properly.
Member gui2::ttree_view_node::node_definitions_
Maybe store this list in the tree_view to avoid copying the reference.
Member gui2::ttree_view_node::signal_handler_left_button_click (const event::tevent event)
Rewrite this sizing code for the folding/unfolding.
Member gui2::ttree_view_node::size () const
Rename this function, names to close to the size of the widget.
Member gui2::tviewport::create_walker () override
Implement properly.
Member gui2::twidget::demand_reduce_height (const unsigned maximum_height)
Make pure virtual.
Member gui2::twidget::demand_reduce_width (const unsigned maximum_width)
Make pure virtual.
Member gui2::twidget::linked_group_
For now the linked group is initialised when the layout of the widget is initialised. 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 finaliser function.
Member gui2::twidget::move (const int x_offset, const int y_offset)
Implement the function to all derived classes.
Member gui2::twidget::request_reduce_height (const unsigned maximum_height)
Make pure virtual.
Member gui2::twidget::tredraw_action::scoped_enum
C++11 use a scoped enum.
Member gui2::twidget::tvisible::scoped_enum
C++11 use a scoped enum.
Member gui2::twindow::add_linked_widget (const std::string &id, twidget *widget)
Untested if a new widget is added after showing the widgets.
Member gui2::twindow::add_to_keyboard_chain (twidget *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::twindow::click_dismiss_
After testing the click dismiss feature it should be documented in the wiki.
Member gui2::twindow::draw ()
should probably be moved to event::thandler::draw.
Member gui2::twindow::layout ()

implement the scrollbars on the window.

implement the scrollbars on the window.

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

Clean up the show functions.

Clean up the code duplication.

Member gui2::twindow::show_non_modal ()
implement auto_close_timeout.
Member gui2::twindow::show_tooltip ()
implement auto_close_timeout.
Member gui2::twindow_definition::tresolution::tresolution (const config &cfg)
Evaluate whether the grid should become mandatory.
Member gui2::twml_message_::pre_show (twindow &window)
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::unit_mode_controller::handle_stuff_list_selection ()
replace with precached data
Member gui2::variable_mode_controller::handle_stuff_list_selection ()
replace with precached data
Member gui::scrollarea::scrollarea (CVideo &video, bool auto_join=true)
FIXME: parameterlist ??
Member gui::scrollbar::scrollbar (CVideo &video)
FIXME: parameterlist ??
Member gui::scrollpane::scrollpane (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::lobby::process_event_impl (const process_event_data &)
I am aware that the box is not grayed out even though it definitely should be. This is because the textbox class currently does not really have an easy way to do that. I'll have to look into this.
Member mp::ui::handle_event (const SDL_Event &event)
find out why the help string stays visible and fix it
Member mp::wait::join_game (bool observe)
Check whether we have the era. If we don't inform the user.
Member mp::wait::process_network_data (const config &data)
We should catch config::error and then leave the game.
Member ng::configure_engine::side_cfg_
This might not be 100% correct, but at the moment it is not possible to show the fog and shroud per player. This might change in the future. NOTE when 'load game' is selected there are no sides.
Member play_controller::hotkey_handler::execute_command (const hotkey::hotkey_command &command, int index=-1, bool press=true)
Shouldn't the function return at this point?
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
File render.cpp
Translate relevant parts to GUI2.
File render.hpp
Translate relevant parts to GUI2.
Member savegame::extract_summary_from_config (config &, config &)
Ideally we should grab all leaders if there's more than 1 human player?
Member sdl::twindow::operator SDL_Renderer * ()
Evaluate whether the function should become public or not.
Member SOCKET
All code which holds a mutex should run O(1) time for scalability.
Member tconfig_implementation::child (T config, const std::string &key, const std::string &parent)
Implement a proper wml_exception here.
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::invisible (const map_location &loc, 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.
Class utf8::invalid_utf8_exception
FIXME: This clearly needs a better name for that reason.
Member utils::quoted_split (std::string const &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.
Member VGETTEXT (msgid, symbols)
Convert all functions.
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::highlight_main_visitor::visit (move_ptr)
find some highlight animation
Member wb::highlighter::highlight_main_visitor::visit (recall_ptr)
: find some suitable effect for mouseover on planned recall.
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 it be "find_last_action_of" instead of "find_first_action_of" above?

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::game::send_user_list (const socket_ptr exclude=socket_ptr()) const
Should be renamed to userlist.
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, boost::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.