Todo List

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)
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)
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_recruitment_stage::analyze_potential_recruit_movements ()
1.9: we give max movement, but recruited will get 0? Seems inaccurate

Member ai::aspect::redeploy (const config &cfg, const std::string &id)

1.9 add tod_changed_observer

1.9 add minor_gamestate_change_observer

1.9 add tod_changed_observer

1.9 add minor_gamestate_change_observer

Member ai::aspect::~aspect ()

1.9 add tod_changed_observer

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::attack_result::do_execute ()
1.9: change ToD to be location specific for the defender unit

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::lua_aspect< T >::lua_aspect (readonly_context &context, const config &cfg, const std::string &id, boost::shared_ptr< lua_ai_context > &l_ctx)
for Nephro or Crab: get rid of this workaround

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.

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::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_ai_default::get_villages_phase::execute ()
1.7 check if this an improvement

Member ai::testing_ai_default::testing_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_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=NULL)
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 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_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_mask_modification_decoding_1_arg)
check if the surface is correct

Member BOOST_AUTO_TEST_CASE (test_l_modification_decoding_1_arg)
check if the surface is correct

Member calculate_healing (int side, bool update_display)
FIXME

Member combatant::complex_fight (combatant &opponent, unsigned rounds, bool levelup_considered)
FIXME: This doesn't work for rolling calculations, just first battle.

Member combatant::fight (combatant &opponent, bool levelup_considered=true)
FIXME: This is approximate: we could drain, then get hit.

Member config_reload
FIXME: should define SIGINT here too, but to what?

Member connect_signals (std::stringstream &sstr, gui2::twidget &widget)
Add the rest of the events.

Member cursor::draw (surface screen)
FIXME: don't parse the file path every time

Member display::refresh_report (std::string const &report_name, const config &)
check to see if reports_ is ever updated

Member do_gameloop (int argc, char **argv)
editor can ask the game to quit completely

Member do_preferences_dialog (game_display &disp, const config &game_config)
This might no longer be needed when gui2 is done.

Member do_replay_handle (int side_num, const std::string &do_untill)
: Do we really want to check recorder here? Seems either redundant or the wrong thing to check.

Member draw_panel (CVideo &video, const theme::panel &panel, std::vector< gui::button > &buttons)
FixMe YogiHH: This is only made to have the buttons store their background information, otherwise the background will appear completely black. It would more straightforward to call bg_update, but that is not public and there seems to be no other way atm to call it. I will check if bg_update can be made public.

Member editor::adjust_sizes (const display &disp, size_specs &sizes)

Hardcoded coordinates for brush selection, make them themeable.

Hardcoded coordinates for terrain palette, make them themeable.

Hardcoded coordinates for terrain palette, make them themeable.

Hardcoded coordinates for terrain palette, make them themeable.

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?

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::menu_handler::create_unit (mouse_handler &mousehandler)
reenable after releasing 1.7.4; as-is causes memory corruption

Member events::menu_handler::unit_list ()
TODO: hero just has overlay "misc/hero-icon.png" - needs an ability to query

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 exit_sighup (int signal)
FIXME: should define SIGINT here too, but to what?

Member extract_summary_from_config (config &cfg_save, config &cfg_summary)
Ideally we should grab all leaders if there's more than 1 human player?

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.

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::missing
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::conditional_passed (const vconfig &cond, bool backwards_compat)
For now we will re-interpret it according to the old rules, but this should be later to prevent re-interpretation errors.

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::distance (const int a, const int b)
once this works properly the assert can be removed and the code inlined.

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 Uint16 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 wehether 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::show_message (CVideo &video, const std::string &title, const std::string &message, const tmessage::tbutton_style button_style, bool message_use_markup=false, bool title_use_markup=false)
implement the markup mode.

Member gui2::taddon_list::pre_show (CVideo &video, twindow &window)
do we really want to keep the length limit for the various items?

Member gui2::tcanvas::blit (surface &surf, SDL_Rect rect)
we should use: get_surface_portion(surf, r, false) no need to optimize format, since blur_surface will undo it

Member gui2::tcontainer_::create_walker ()
Implement properly.

Member gui2::tcontainer_::initial_grid ()
Evaluate whether this function is overridden if not remove.

Member gui2::tcontrol::calculate_best_size () const
The value send should subtract the border size and read it after calculation to get the proper result.

Member gui2::tcontrol::layout_init (const bool full_initialization)
Also handle the tooltip state 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::teditor_settings::update_selected_tod_info (twindow &window)
Implement the showing of the ToD icon.

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 ()
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)
Implement.

Member gui2::tgrid::demand_reduce_width (const unsigned maximum_width)
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)

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

Improve this code.

Member gui2::tgrid::request_reduce_width (const unsigned maximum_width)
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 (CVideo &video, 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=stdstring())
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_ )(twidget *)
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 instanciation:
  • 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)
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 (CVideo &video, twindow &window)

Should become a global hotkey after 1.8, then remove it here.

Remove this code once the resizing in twindow is finished.

Member gui2::tlobby_main::show_preferences_button_callback (twindow &window)
This might no longer be needed when gui2 is done.

Member gui2::tmp_cmd_wrapper::pre_show (CVideo &video, twindow &window)
Not really happy with the retval code in general. Need to give it some more thought. Therefore seperated the set_retval from the set_active code.

Member gui2::tpane::create_walker ()
Implement properly.

Member gui2::tplayer_list::init (twindow &w)
This is a hack to fold the items.

Member gui2::tscroll_label::finalize_subclass ()
wrapping should be a label setting. This setting shoul be mutual exclusive with the horizontal scrollbar. Also the scroll_grid needs to set the status for the scrollbars.

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)
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 (CVideo &video, twindow &window)
Should become a title screen hotkey.

Member gui2::ttitle_screen::tresult
Evaluate the best place for these items.

Member gui2::ttoggle_panel::border_space () const
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)
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
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 ()
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 ()
Implement properly.

Member gui2::twidget::demand_reduce_height (const unsigned)
Make pure virtual.

Member gui2::twidget::demand_reduce_width (const unsigned)
Make pure virtual.

Member gui2::twidget::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's 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::twidget::move (const int x_offset, const int y_offset)
Implement the function to all inherited classes.

Member gui2::twidget::request_reduce_height (const unsigned)
Make pure virtual.

Member gui2::twidget::set_dirty (const bool dirty=true)
test whether nobody redefines the function.

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.

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 (CVideo &video, twindow &window)

This function enables the wml markup for all items, but the interface is a bit hacky.

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::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 image::locator::locator_finder_t
replace this with std::unordered_map<value, int> or boost::unordered_map<value, int> boost::unordered_map can almost just be dropped in as boost::hash<T>(T val) will return hash_value(val), but it requires boost 1.35 (preferably 1.36 or later)

Member main (int argc, char **argv)
errno should be passed here with the error or it might not be the true errno anymore. Seems to work good enough for now though.

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 message_user_choice::query_user () const
This hack can be removed once gui2 is finished.

Member mp::connect::process_network_data (const config &data, const network::connection sock)
Seems like a needless limitation to only allow one side per player.

Member mp::create::process_event ()
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 mp::create::~create ()
FIXME: may be broken if new eras are added.

Member mp::lobby::process_event ()
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::generate_menu ()
we fall back to the side color, but that's ugly rather make the color mandatory in 1.5.

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, const network::connection sock)
We should catch config::error and then leave the game.

Member mp::wait::start_game ()
Instead of using level_to_gamestate reinit the state_, this needs more testing -- Mordante It seems level_to_gamestate is needed for the start of game download, but downloads of later scenarios miss certain info and add a players section. Use players to decide between old and new way. (Of course it would be nice to unify the data stored.)

Member play_game (display &disp, game_state &state, const config &game_config, io_type_t io_type=IO_NONE, bool skip_replay=false)
Fix logic to use network_ai controller

Member preferences::get_history (const std::string &id)
FIXME only used for gui2. Could be used for the above histories.

Member rand_rng::set_new_seed_callback (boost::function< void(int)> f)
needs a reliable way of clearing the callback when things don't go as normal (e.g. player quit the game while the callback is set)

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 replay::undo ()
Change undo= to default to "no" and explicitly mark all undoable commands with yes.

Member repos
FIXME: the variable repository should be a class of variable.hpp, and not the game_state.

Member reset_resting (unit_map &units, int side)
FIXME: Try moving this to unit::new_turn, then move it above calculate_healing().

Member server::ban_handler (const std::string &, const std::string &, std::string &, std::ostringstream *)
FIXME: make a proper check for valid IPs.

Member server::gban_handler (const std::string &, const std::string &, std::string &, std::ostringstream *)
FIXME: make a proper check for valid IPs.

Member server::kickban_handler (const std::string &, const std::string &, std::string &, std::ostringstream *)
FIXME: make a proper check for valid IPs.

Member server::process_data_game (const network::connection sock, simple_wml::document &data)
FIXME: Why not save the level data in the history_?

Member SOCKET
All code which holds a mutex should run O(1) time for scalability.

Member statistics_dialog::action (gui::dialog_process_info &dp_info)
FIXME? Perhaps killed units shouldn't have the same team-color as your own.

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=NULL)
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 it's own namespace to be safe.

Class tportrait
this is a proof-of-concept version and undocumented.

Member turn_info::handle_turn (bool &turn_end, const config &t, const bool skip_replay, std::deque< config > &backlog)
FIXME: Check what commands we execute when it's our turn!

Member unit::internal_matches_filter (const vconfig &cfg, const map_location &loc, bool use_flat_tod) const
use formula_ai

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.

Member unit::unit (const config &cfg, bool use_traits=false, game_state *state=NULL, const vconfig *vcfg=NULL)
Are these modified by read? if not they can be removed.

Member unit::unit (const unit_type *t, int side, bool real_unit, unit_race::GENDER gender=unit_raceNUM_GENDERS)
Test whether the calls above modify these values if not they can removed, since already set in the initialization list.

Member unit_map::insert (unit *p)
replace with quick_erase(i) when wesnoth supports boost 1.42 min version

Member unit_map::move (const map_location &src, const map_location &dst)
upgrade to quick_erase when boost 1.42 supported by wesnoth

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::highlight_visitor::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 mode.

Member wb::highlight_visitor::visit (move_ptr move)
find some highlight animation

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 wb::side_actions::empty () const
devise a cleanup system to prevent the possibility of empty queues.

Member wesnothd::game::add_player (const network::connection 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 player_map::const_iterator 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 network::connection exclude=0) const
Should be renamed to userlist.

Member WML_HANDLER_FUNCTION (unstore_unit,, cfg)
it would be better to change recall_list() from a vector to a map and use the underlying_id as key.

Member 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.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated by doxygen 1.7.1 on Fri May 25 2012 01:11:16 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs