The Battle for Wesnoth  1.19.1+dev
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
playmp_controller Class Reference

#include <playmp_controller.hpp>

Inheritance diagram for playmp_controller:


class  hotkey_handler

Public Member Functions

 playmp_controller (const config &level, saved_game &state_of_game, mp_game_metadata *mp_info)
virtual ~playmp_controller ()
void maybe_linger () override
void process_oos (const std::string &err_msg) const override
 Asks the user whether to continue on an OOS error. More...
void receive_actions () override
 Reads and executes replay [command]s from the server. More...
void send_actions () override
 Sends replay [command]s to the server. More...
void surrender (int side_number)
bool is_networked_mp () const override
void send_to_wesnothd (const config &cfg, const std::string &packet_type="unknown") const override
bool receive_from_wesnothd (config &cfg) const override
void play_slice (bool is_delay_enabled=true) override
- Public Member Functions inherited from playsingle_controller
 playsingle_controller (const config &level, saved_game &state_of_game)
 ~playsingle_controller ()
 Defined here to reduce file includes. More...
level_result::type play_scenario (const config &level)
void play_scenario_init (const config &level)
ses_result skip_empty_sides (int side_num)
 Calculates the current side, starting at side_num that is non-empty. More...
void play_some ()
void play_side ()
void finish_side_turn ()
void do_end_level ()
void play_scenario_main_loop ()
virtual void check_objectives () override
void end_turn ()
void force_end_turn () override
void require_end_turn ()
std::string describe_result () const
bool get_player_type_changed () const
void set_player_type_changed ()
virtual bool should_return_to_play_side () const override
replay_controllerget_replay_controller () const override
void enable_replay (bool is_unit_test=false)
void on_replay_end (bool is_unit_test)
- Public Member Functions inherited from play_controller
 play_controller (const config &level, saved_game &state_of_game)
virtual ~play_controller ()
bool can_undo () const
bool can_redo () const
void undo ()
void redo ()
void load_game ()
void save_game ()
void save_game_auto (const std::string &filename)
void save_replay ()
void save_replay_auto (const std::string &filename)
void save_map ()
replayget_replay ()
void init_side_begin ()
void maybe_do_init_side ()
 Called by turn_info::process_network_data() or init_side() to call do_init_side() if necessary. More...
void do_init_side ()
 Called by replay handler or init_side() to do actual work for turn change. More...
void init_side_end ()
bool reveal_map_default () const
void set_end_level_data (const end_level_data &data)
void reset_end_level_data ()
bool is_regular_game_end () const
bool check_regular_game_end ()
const end_level_dataget_end_level_data () const
std::vector< team > & get_teams ()
const std::vector< team > & get_teams () const
const unit_mapget_units () const
unit_mapget_units ()
const gamemapget_map () const
const tod_managerget_tod_manager () const
bool is_observer () const
bool do_healing () const
void set_do_healing (bool do_healing)
game_stategamestate ()
const game_stategamestate () const
void check_victory ()
 Checks to see if a side has won. More...
std::size_t turn () const
int current_side () const
 Returns the number of the side whose turn it is. More...
config to_config () const
 Builds the snapshot config from members and their respective configs. More...
bool is_skipping_replay () const
void toggle_skipping_replay ()
void do_autosave ()
bool is_skipping_story () const
void do_consolesave (const std::string &filename)
events::mouse_handlerget_mouse_handler_base () override
 Get a reference to a mouse handler member a derived class uses. More...
events::menu_handlerget_menu_handler ()
std::shared_ptr< wb::managerget_whiteboard () const
const mp_game_settingsget_mp_settings ()
game_classificationget_classification ()
int get_server_request_number () const
void increase_server_request_number ()
game_events::wml_event_pumppump ()
int get_ticks () const
virtual soundsource::managerget_soundsource_man () override
 Get (optionally) a soundsources manager a derived class uses. More...
virtual plugins_contextget_plugins_context () override
 Get (optionally) a plugins context a derived class uses. More...
hotkey::command_executorget_hotkey_command_executor () override
 Optionally get a command executor to handle context menu events. More...
actions::undo_listget_undo_stack ()
bool is_browsing () const override
bool is_replay () const
replayrecorder () const
t_string get_scenario_name () const
bool get_disallow_recall () const
std::string get_loaded_resources () const
std::string theme () const
void maybe_throw_return_to_play_side () const
teamcurrent_team ()
const teamcurrent_team () const
bool can_use_synced_wml_menu () const
std::set< std::string > all_players () const
int ticks () const
game_displayget_display () override
 Get a reference to a display member a derived class uses. More...
void update_savegame_snapshot () const
void update_gui_to_player (const int team_index, const bool observe=false)
 Changes the UI for this client to the passed side index. More...
void refresh_objectives () const
 Reevaluate [show_if] conditions and build a new objectives string. More...
void show_objectives () const
saved_gameget_saved_game ()
statistics_tstatistics ()
bool is_during_turn () const
bool is_linger_mode () const
- Public Member Functions inherited from controller_base
 controller_base ()
virtual ~controller_base ()
void apply_keyboard_scroll (int x, int y)
void set_scroll_up (bool on)
void set_scroll_down (bool on)
void set_scroll_left (bool on)
void set_scroll_right (bool on)
- Public Member Functions inherited from events::sdl_handler
virtual void handle_window_event (const SDL_Event &)
virtual void process_event ()
virtual bool requires_event_focus (const SDL_Event *=nullptr) const
virtual void process_tooltip_string (int, int)
virtual void join ()
virtual void join (context &c)
virtual void join_same (sdl_handler *parent)
virtual void leave ()
virtual void join_global ()
virtual void leave_global ()
virtual bool has_joined ()
virtual bool has_joined_global ()
sdl_handleroperator= (sdl_handler &&)=delete
 Moving would require two instances' context membership to be handled, it's simpler to delete these and require the two instances to be separately constructed / destructed. More...
 sdl_handler (sdl_handler &&)=delete
- Public Member Functions inherited from events::pump_monitor
 pump_monitor ()
virtual ~pump_monitor ()
- Public Member Functions inherited from events::observer
virtual ~observer ()
- Public Member Functions inherited from quit_confirmation
 quit_confirmation (const std::function< bool()> &prompt=&quit_confirmation::default_prompt)
 ~quit_confirmation ()

Protected Member Functions

virtual void handle_generic_event (const std::string &name) override
void start_network ()
void stop_network ()
virtual void play_human_turn () override
virtual void after_human_turn () override
virtual void play_network_turn () override
 Will handle networked turns in descendent classes. More...
virtual void do_idle_notification () override
 Will handle sending a networked notification in descendent classes. More...
virtual void play_idle_loop () override
void wait_for_upload ()
 Wait for the host to upload the next scenario. More...
virtual void on_not_observer () override
virtual bool is_host () const override
void remove_blindfold ()
- Protected Member Functions inherited from playsingle_controller
void play_side_impl ()
void before_human_turn ()
void show_turn_dialog ()
void execute_gotos ()
void end_turn_enable (bool enable)
void play_ai_turn ()
virtual void init_gui () override
void linger ()
void update_gui_linger ()
void sync_end_turn () override
bool is_team_visible (int team_num, bool observer) const
int find_viewing_side () const override
 returns 0 if no such team was found. More...
void update_viewing_player () override
void reset_replay ()
- Protected Member Functions inherited from play_controller
void play_slice_catch ()
bool have_keyboard_focus () override
 Derived classes should override this to return false when arrow keys should not scroll the map, hotkeys not processed etc, for example when a textbox is active. More...
void process_focus_keydown_event (const SDL_Event &event) override
 Process keydown (only when the general map display does not have focus). More...
void process_keydown_event (const SDL_Event &event) override
 Process keydown (always). More...
void process_keyup_event (const SDL_Event &event) override
 Process keyup (always). More...
void init_managers ()
void fire_preload ()
 preload events cannot be synced More...
void fire_prestart ()
void fire_start ()
void start_game ()
void finish_side_turn_events ()
void finish_turn ()
bool enemies_visible () const
void enter_textbox ()
void textbox_move_vertically (bool up)
void tab ()
actions::undo_listundo_stack ()
const actions::undo_listundo_stack () const
const std::string & select_music (bool victory) const
void reset_gamestate (const config &level, int replay_pos)
virtual void check_time_over ()
- Protected Member Functions inherited from controller_base
virtual std::vector< std::string > additional_actions_pressed ()
bool handle_scroll (int mousex, int mousey, int mouse_flags)
 Handle scrolling by keyboard, joystick and moving mouse near map edges. More...
void handle_event (const SDL_Event &event) override
 Process mouse- and keypress-events from SDL. More...
virtual void process (events::pump_info &) override
virtual void show_menu (const std::vector< config > &items_arg, int xloc, int yloc, bool context_menu, display &disp)
virtual void execute_action (const std::vector< std::string > &items_arg, int xloc, int yloc, bool context_menu)
virtual bool in_context_menu (const hotkey::ui_command &cmd) const
void long_touch_callback (int x, int y)
- Protected Member Functions inherited from events::sdl_handler
 sdl_handler (const bool auto_join=true)
 sdl_handler (const sdl_handler &)
sdl_handleroperator= (const sdl_handler &)
virtual ~sdl_handler ()
virtual std::vector< sdl_handler * > handler_members ()

Protected Attributes

bool network_processing_stopped_
bool next_scenario_notified_
blindfold blindfold_
- Protected Attributes inherited from playsingle_controller
const cursor::setter cursor_setter_
bool end_turn_requested_
 true iff the user has pressed the end turn button this turn. More...
bool ai_fallback_
 true when the current side is actually an ai side but was taken over by a human (usually for debugging purposes), we need this variable to remember to give the ai control back next turn. More...
std::unique_ptr< replay_controllerreplay_controller_
 non-null when replay mode in active, is used in singleplayer and for the "back to turn" feature in multiplayer. More...
- Protected Attributes inherited from play_controller
std::unique_ptr< game_stategamestate_
config level_
tooltips::manager tooltips_manager_
std::shared_ptr< wb::managerwhiteboard_manager_
std::unique_ptr< plugins_contextplugins_context_
std::unique_ptr< font::floating_label_contextlabels_manager_
help::help_manager help_manager_
events::mouse_handler mouse_handler_
events::menu_handler menu_handler_
std::unique_ptr< hotkey_handlerhotkey_handler_
std::unique_ptr< soundsource::managersoundsources_manager_
persist_manager persist_
std::unique_ptr< game_displaygui_
const std::unique_ptr< unit_experience_acceleratorxp_mod_
const std::unique_ptr< statistics_tstatistics_context_
std::unique_ptr< replayreplay_
bool skip_replay_
bool skip_story_
bool did_autosave_this_turn_
 Whether we did init sides in this session (false = we did init sides before we reloaded the game). More...
bool did_tod_sound_this_turn_
map_location map_start_
bool start_faded_
bool ignore_replay_errors_
bool player_type_changed_
 true when the controller of the currently playing side has changed. More...
- Protected Attributes inherited from controller_base
const game_config_viewgame_config_
CKey key_
bool scrolling_
bool scroll_up_
bool scroll_down_
bool scroll_left_
bool scroll_right_
uint32_t last_scroll_tick_
double scroll_carry_x_
double scroll_carry_y_

Private Types


Private Member Functions

void process_network_data (bool unsync_only=false)
PROCESS_DATA_RESULT process_network_data_impl (const config &cfg, bool chat_only=false)
 Check for and Handle incoming data from the multiplayer server. More...
PROCESS_DATA_RESULT process_network_turn_impl (const config &t, bool chat_only=false)
 Handle incoming [turn] from the multiplayer server. More...
void process_network_side_drop_impl (const config &t)
 Handle incoming [side_drop] from the multiplayer server. More...
void process_network_change_controller_impl (const config &)
 Handle incoming [change_controller] from the multiplayer server. More...
void send_change_side_controller (int side, const std::string &player)
 Send [change_controller] to the multiplayer server. More...

Private Attributes

playturn_network_adapter network_reader_
 Helper to preprocess infoming network data. More...
 Information about our connection to the multiplayer server. More...

Additional Inherited Members

- Static Public Member Functions inherited from quit_confirmation
static bool quit ()
 Shows the quit confirmation if needed. More...
static void quit_to_title ()
static void quit_to_desktop ()
static bool show_prompt (const std::string &message)
static bool default_prompt ()

Detailed Description

Definition at line 23 of file playmp_controller.hpp.

Member Enumeration Documentation



when we couldn't handle the given action currently.

Definition at line 67 of file playmp_controller.hpp.

Constructor & Destructor Documentation

◆ playmp_controller()

playmp_controller::playmp_controller ( const config level,
saved_game state_of_game,
mp_game_metadata mp_info 

Definition at line 50 of file playmp_controller.cpp.

References receive_from_wesnothd().

◆ ~playmp_controller()

playmp_controller::~playmp_controller ( )

Definition at line 68 of file playmp_controller.cpp.

Member Function Documentation

◆ after_human_turn()

void playmp_controller::after_human_turn ( )

◆ do_idle_notification()

void playmp_controller::do_idle_notification ( )

Will handle sending a networked notification in descendent classes.

Reimplemented from playsingle_controller.

Definition at line 273 of file playmp_controller.cpp.

References _(), play_controller::gui_, and events::chat_handler::MESSAGE_PUBLIC.

◆ handle_generic_event()

void playmp_controller::handle_generic_event ( const std::string &  name)

Reimplemented from playsingle_controller.

Definition at line 264 of file playmp_controller.cpp.

References playsingle_controller::handle_generic_event().

◆ is_host()

bool playmp_controller::is_host ( ) const

Reimplemented from playsingle_controller.

Definition at line 268 of file playmp_controller.cpp.

References mp_game_metadata::is_host, and mp_info_.

Referenced by maybe_linger(), and wait_for_upload().

◆ is_networked_mp()

bool playmp_controller::is_networked_mp ( ) const

Reimplemented from play_controller.

Definition at line 333 of file playmp_controller.cpp.

References mp_info_.

Referenced by send_actions().

◆ maybe_linger()

void playmp_controller::maybe_linger ( )

◆ on_not_observer()

void playmp_controller::on_not_observer ( )

◆ play_human_turn()

void playmp_controller::play_human_turn ( )

◆ play_idle_loop()

void playmp_controller::play_idle_loop ( )

◆ play_network_turn()

void playmp_controller::play_network_turn ( )

◆ play_slice()

void playmp_controller::play_slice ( bool  is_delay_enabled = true)

◆ process_network_change_controller_impl()

void playmp_controller::process_network_change_controller_impl ( const config change)

◆ process_network_data()

void playmp_controller::process_network_data ( bool  unsync_only = false)

◆ process_network_data_impl()

playmp_controller::PROCESS_DATA_RESULT playmp_controller::process_network_data_impl ( const config cfg,
bool  chat_only = false 

◆ process_network_side_drop_impl()

void playmp_controller::process_network_side_drop_impl ( const config t)

◆ process_network_turn_impl()

playmp_controller::PROCESS_DATA_RESULT playmp_controller::process_network_turn_impl ( const config t,
bool  chat_only = false 

◆ process_oos()

void playmp_controller::process_oos ( const std::string &  msg) const

Asks the user whether to continue on an OOS error.

quit_game_exceptionIf the user wants to abort.

Reimplemented from play_controller.

Definition at line 234 of file playmp_controller.cpp.

References _(), config::add_child(), i, play_controller::ignore_replay_errors_, lg::info(), savegame::savegame::save_game_interactive(), play_controller::saved_game_, send_to_wesnothd(), utils::split(), and savegame::savegame::YES_NO.

◆ receive_actions()

void playmp_controller::receive_actions ( )

Reads and executes replay [command]s from the server.

Reimplemented from play_controller.

Definition at line 312 of file playmp_controller.cpp.

References process_network_data(), and send_actions().

◆ receive_from_wesnothd()

bool playmp_controller::receive_from_wesnothd ( config cfg) const

Reimplemented from play_controller.

Definition at line 345 of file playmp_controller.cpp.

References mp_game_metadata::connection, mp_info_, and wesnothd_connection::receive_data().

Referenced by playmp_controller().

◆ remove_blindfold()

void playmp_controller::remove_blindfold ( )

◆ send_actions()

void playmp_controller::send_actions ( )

◆ send_change_side_controller()

void playmp_controller::send_change_side_controller ( int  side,
const std::string &  player 

Send [change_controller] to the multiplayer server.

Definition at line 677 of file playmp_controller.cpp.

References config::add_child(), and send_to_wesnothd().

Referenced by process_network_side_drop_impl().

◆ send_to_wesnothd()

void playmp_controller::send_to_wesnothd ( const config cfg,
const std::string &  packet_type = "unknown" 
) const

◆ start_network()

void playmp_controller::start_network ( )

Definition at line 72 of file playmp_controller.cpp.

References LOG_NG, and network_processing_stopped_.

◆ stop_network()

void playmp_controller::stop_network ( )

Definition at line 78 of file playmp_controller.cpp.

References LOG_NG, and network_processing_stopped_.

◆ surrender()

void playmp_controller::surrender ( int  side_number)

◆ wait_for_upload()

void playmp_controller::wait_for_upload ( )

Member Data Documentation

◆ blindfold_

blindfold playmp_controller::blindfold_

Definition at line 65 of file playmp_controller.hpp.

Referenced by remove_blindfold().

◆ mp_info_

mp_game_metadata* playmp_controller::mp_info_

Information about our connection to the multiplayer server.

null when we are not connected to the multiplayer server

Definition at line 97 of file playmp_controller.hpp.

Referenced by is_host(), is_networked_mp(), play_network_turn(), process_network_data_impl(), receive_from_wesnothd(), and send_to_wesnothd().

◆ network_processing_stopped_

bool playmp_controller::network_processing_stopped_

Definition at line 58 of file playmp_controller.hpp.

Referenced by play_network_turn(), play_slice(), start_network(), and stop_network().

◆ network_reader_

playturn_network_adapter playmp_controller::network_reader_

Helper to preprocess infoming network data.

Definition at line 94 of file playmp_controller.hpp.

Referenced by process_network_data().

◆ next_scenario_notified_

bool playmp_controller::next_scenario_notified_

The documentation for this class was generated from the following files: