#include <game_data.hpp>
Public Types | |
enum | PHASE { INITIAL , PRELOAD , PRESTART , START , TURN_STARTING_WAITING , TURN_STARTING , TURN_PLAYING , TURN_ENDED , GAME_ENDING , GAME_ENDED } |
Public Member Functions | |
game_data (const config &level) | |
game_data (const game_data &data) | |
const config & | get_variables () const |
config::attribute_value & | get_variable (const std::string &varname) |
throws invalid_variablename_exception if varname is no valid variable name. More... | |
virtual config::attribute_value | get_variable_const (const std::string &varname) const |
returns a blank attribute value if varname is no valid variable name. More... | |
config & | get_variable_cfg (const std::string &varname) |
throws invalid_variablename_exception if varname is no valid variable name. More... | |
void | set_variable (const std::string &varname, const t_string &value) |
does nothing if varname is no valid variable name. More... | |
config & | add_variable_cfg (const std::string &varname, const config &value=config()) |
throws invalid_variablename_exception if varname is no valid variable name. More... | |
variable_access_const | get_variable_access_read (const std::string &varname) const |
returns a variable_access that cannot be used to change the game variables More... | |
variable_access_create | get_variable_access_write (const std::string &varname) |
returns a variable_access that can be used to change the game variables More... | |
void | clear_variable (const std::string &varname) |
Clears attributes config children does nothing if varname is no valid variable name. More... | |
void | clear_variable_cfg (const std::string &varname) |
Clears only the config children does nothing if varname is no valid variable name. More... | |
const randomness::mt_rng & | rng () const |
randomness::mt_rng & | rng () |
PHASE | phase () const |
void | set_phase (PHASE phase) |
bool | has_current_player () const |
returns where there is currently a well defiend "current player", that is for example not the case during start events or during linger mode. More... | |
bool | is_before_screen () const |
bool | is_after_start () const |
const t_string & | cannot_end_turn_reason () |
bool | allow_end_turn () const |
void | set_allow_end_turn (bool value, const t_string &reason="") |
void | write_snapshot (config &cfg) const |
const std::string & | next_scenario () const |
void | set_next_scenario (const std::string &next_scenario) |
const std::string & | get_id () const |
void | set_id (const std::string &value) |
const std::string & | get_theme () const |
void | set_theme (const std::string &value) |
const std::vector< std::string > & | get_defeat_music () const |
void | set_defeat_music (std::vector< std::string > value) |
const std::vector< std::string > & | get_victory_music () const |
void | set_victory_music (std::vector< std::string > value) |
void | set_end_turn_forced (bool v) |
bool | end_turn_forced () const |
Public Member Functions inherited from variable_set | |
virtual | ~variable_set () |
Static Public Member Functions | |
static PHASE | read_phase (const config &cfg) |
static void | write_phase (config &cfg, game_data::PHASE phase) |
Public Attributes | |
std::vector< scoped_wml_variable * > | scoped_variables |
map_location | last_selected |
the last location where a select event fired. More... | |
Private Member Functions | |
void | activate_scope_variable (std::string var_name) const |
variable_access_throw | get_variable_access_throw (const std::string &varname) |
Used to delete variables. More... | |
Private Attributes | |
randomness::mt_rng | rng_ |
config | variables_ |
PHASE | phase_ |
bool | can_end_turn_ |
bool | end_turn_forced_ |
t_string | cannot_end_turn_reason_ |
std::string | next_scenario_ |
the scenario coming next (for campaigns) More... | |
std::string | id_ |
std::string | theme_ |
std::vector< std::string > | defeat_music_ |
std::vector< std::string > | victory_music_ |
Definition at line 26 of file game_data.hpp.
enum game_data::PHASE |
Definition at line 70 of file game_data.hpp.
|
explicit |
Definition at line 34 of file game_data.cpp.
game_data::game_data | ( | const game_data & | data | ) |
Definition at line 52 of file game_data.cpp.
|
private |
Definition at line 154 of file game_data.cpp.
References utils::find(), utils::views::reverse, and scoped_variables.
Referenced by get_variable_access_read(), get_variable_access_throw(), and get_variable_access_write().
config & game_data::add_variable_cfg | ( | const std::string & | varname, |
const config & | value = config() |
||
) |
throws invalid_variablename_exception if varname is no valid variable name.
Definition at line 100 of file game_data.cpp.
References variable_info_mutable< V >::append_array(), and get_variable_access_write().
Referenced by scoped_wml_variable::store(), and scoped_wml_variable::~scoped_wml_variable().
|
inline |
Definition at line 119 of file game_data.hpp.
References can_end_turn_.
|
inline |
Definition at line 116 of file game_data.hpp.
References cannot_end_turn_reason_.
void game_data::clear_variable | ( | const std::string & | varname | ) |
Clears attributes config children does nothing if varname is no valid variable name.
Definition at line 118 of file game_data.cpp.
References variable_info_mutable< V >::clear(), and get_variable_access_throw().
Referenced by get_global_variable(), and game_lua_kernel::intf_set_variable().
void game_data::clear_variable_cfg | ( | const std::string & | varname | ) |
Clears only the config children does nothing if varname is no valid variable name.
Definition at line 106 of file game_data.cpp.
References variable_info_mutable< V >::clear(), and get_variable_access_throw().
Referenced by scoped_wml_variable::store(), and scoped_wml_variable::~scoped_wml_variable().
|
inline |
Definition at line 146 of file game_data.hpp.
References end_turn_forced_.
Referenced by playsingle_controller::play_some(), and synced_context::undo_blocked().
|
inline |
Definition at line 139 of file game_data.hpp.
References defeat_music_.
|
inline |
Definition at line 133 of file game_data.hpp.
References id_.
|
inline |
Definition at line 136 of file game_data.hpp.
References theme_.
config::attribute_value & game_data::get_variable | ( | const std::string & | varname | ) |
throws invalid_variablename_exception if varname is no valid variable name.
Definition at line 66 of file game_data.cpp.
References variable_info< V >::as_scalar(), and get_variable_access_write().
Referenced by play_controller::do_init_side(), play_controller::fire_preload(), play_controller::fire_prestart(), play_controller::fire_start(), game_events::wml_event_pump::operator()(), tod_manager::set_turn(), and set_variable().
|
inlinevirtual |
returns a variable_access that cannot be used to change the game variables
Implements variable_set.
Definition at line 45 of file game_data.hpp.
References activate_scope_variable(), and variables_.
Referenced by get_variable_const(), game_lua_kernel::intf_get_variable(), and game_events::WML_HANDLER_FUNCTION().
|
inlineprivate |
Used to delete variables.
Definition at line 150 of file game_data.hpp.
References activate_scope_variable(), and variables_.
Referenced by clear_variable(), and clear_variable_cfg().
|
inline |
returns a variable_access that can be used to change the game variables
Definition at line 51 of file game_data.hpp.
References activate_scope_variable(), and variables_.
Referenced by add_variable_cfg(), get_variable(), get_variable_cfg(), game_lua_kernel::intf_set_variable(), and game_events::WML_HANDLER_FUNCTION().
config & game_data::get_variable_cfg | ( | const std::string & | varname | ) |
throws invalid_variablename_exception if varname is no valid variable name.
Definition at line 83 of file game_data.cpp.
References variable_info< V >::as_container(), and get_variable_access_write().
Referenced by game_events::WML_HANDLER_FUNCTION().
|
virtual |
returns a blank attribute value if varname is no valid variable name.
Implements variable_set.
Definition at line 71 of file game_data.cpp.
References variable_info< V >::as_scalar(), and get_variable_access_read().
Referenced by storyscreen::story_parser::resolve_wml(), and game_events::builtin_conditions::variable_matches().
|
inline |
Definition at line 33 of file game_data.hpp.
References variables_.
Referenced by set_global_variable().
|
inline |
Definition at line 142 of file game_data.hpp.
References victory_music_.
bool game_data::has_current_player | ( | ) | const |
returns where there is currently a well defiend "current player", that is for example not the case during start events or during linger mode.
Definition at line 192 of file game_data.cpp.
References phase(), TURN_ENDED, TURN_PLAYING, and TURN_STARTING.
bool game_data::is_after_start | ( | ) | const |
bool game_data::is_before_screen | ( | ) | const |
Definition at line 197 of file game_data.cpp.
References INITIAL, phase(), PRELOAD, and PRESTART.
Referenced by mp_sync::get_user_choice(), and user_choice_manager::get_user_choice_internal().
|
inline |
Definition at line 130 of file game_data.hpp.
References next_scenario_.
Referenced by game_state::has_next_scenario(), and set_next_scenario().
|
inline |
Definition at line 105 of file game_data.hpp.
References phase_.
Referenced by has_current_player(), game_state::in_phase(), is_after_start(), is_before_screen(), set_phase(), game_events::WML_HANDLER_FUNCTION(), and write_phase().
|
static |
Definition at line 177 of file game_data.cpp.
References GAME_ENDED, config::has_child(), PRELOAD, TURN_PLAYING, and TURN_STARTING_WAITING.
Referenced by playsingle_controller::play_scenario_init().
|
inline |
Definition at line 68 of file game_data.hpp.
References rng_.
|
inline |
Definition at line 67 of file game_data.hpp.
References rng_.
Referenced by synced_context::get_rng_for_action(), and game_state::init().
|
inline |
Definition at line 120 of file game_data.hpp.
References can_end_turn_, and cannot_end_turn_reason_.
Referenced by game_lua_kernel::intf_allow_end_turn().
|
inline |
Definition at line 140 of file game_data.hpp.
References defeat_music_.
|
inline |
Definition at line 145 of file game_data.hpp.
References end_turn_forced_.
Referenced by playsingle_controller::finish_side_turn(), and playsingle_controller::force_end_turn().
|
inline |
Definition at line 134 of file game_data.hpp.
References id_.
|
inline |
Definition at line 131 of file game_data.hpp.
References next_scenario(), and next_scenario_.
Referenced by SYNCED_COMMAND_HANDLER_FUNCTION().
|
inline |
Definition at line 106 of file game_data.hpp.
References phase(), and phase_.
Referenced by play_controller::do_init_side(), do_replay_handle(), playsingle_controller::finish_side_turn(), play_controller::fire_prestart(), play_controller::fire_start(), play_controller::init(), playsingle_controller::play_scenario_init(), playsingle_controller::play_some(), play_controller::reset_gamestate(), and playsingle_controller::sync_end_turn().
|
inline |
Definition at line 137 of file game_data.hpp.
References theme_.
void game_data::set_variable | ( | const std::string & | varname, |
const t_string & | value | ||
) |
does nothing if varname is no valid variable name.
Definition at line 88 of file game_data.cpp.
References ERR_NG, and get_variable().
Referenced by get_global_variable(), and SYNCED_COMMAND_HANDLER_FUNCTION().
|
inline |
Definition at line 143 of file game_data.hpp.
References victory_music_.
|
static |
Definition at line 207 of file game_data.cpp.
References INITIAL, phase(), PRELOAD, PRESTART, and TURN_STARTING_WAITING.
Referenced by write_snapshot().
void game_data::write_snapshot | ( | config & | cfg | ) | const |
Definition at line 130 of file game_data.cpp.
References config::add_child(), can_end_turn_, cannot_end_turn_reason_, defeat_music_, randomness::mt_rng::get_random_calls(), randomness::mt_rng::get_random_seed_str(), id_, utils::join(), next_scenario_, phase_, rng_, theme_, variables_, victory_music_, and write_phase().
Referenced by game_state::write().
|
private |
Definition at line 159 of file game_data.hpp.
Referenced by allow_end_turn(), set_allow_end_turn(), and write_snapshot().
|
private |
Definition at line 161 of file game_data.hpp.
Referenced by cannot_end_turn_reason(), set_allow_end_turn(), and write_snapshot().
|
private |
Definition at line 167 of file game_data.hpp.
Referenced by get_defeat_music(), set_defeat_music(), and write_snapshot().
|
private |
Definition at line 160 of file game_data.hpp.
Referenced by end_turn_forced(), and set_end_turn_forced().
|
private |
Definition at line 165 of file game_data.hpp.
Referenced by get_id(), set_id(), and write_snapshot().
map_location game_data::last_selected |
the last location where a select event fired.
Used by wml menu items with needs_select=yes
Definition at line 126 of file game_data.hpp.
Referenced by play_controller::init_side_begin(), and game_events::wml_event_pump::process_event().
|
private |
the scenario coming next (for campaigns)
Definition at line 163 of file game_data.hpp.
Referenced by next_scenario(), set_next_scenario(), and write_snapshot().
|
private |
Definition at line 158 of file game_data.hpp.
Referenced by phase(), set_phase(), and write_snapshot().
|
private |
Definition at line 156 of file game_data.hpp.
Referenced by rng(), and write_snapshot().
std::vector<scoped_wml_variable*> game_data::scoped_variables |
Definition at line 31 of file game_data.hpp.
Referenced by activate_scope_variable(), scoped_wml_variable::scoped_wml_variable(), and scoped_wml_variable::~scoped_wml_variable().
|
private |
Definition at line 166 of file game_data.hpp.
Referenced by get_theme(), set_theme(), and write_snapshot().
|
private |
Definition at line 157 of file game_data.hpp.
Referenced by get_variable_access_read(), get_variable_access_throw(), get_variable_access_write(), get_variables(), and write_snapshot().
|
private |
Definition at line 168 of file game_data.hpp.
Referenced by get_victory_music(), set_victory_music(), and write_snapshot().