MP Create Game: don't allow proceeding if selected game has no sides
This commit is contained in:
parent
d957326828
commit
b8fe9fe7dc
3 changed files with 15 additions and 1 deletions
|
@ -352,6 +352,11 @@ void create_engine::init_generated_level_data()
|
|||
//DBG_MP << current_level().data().debug();
|
||||
}
|
||||
|
||||
bool create_engine::current_level_has_side_data()
|
||||
{
|
||||
return current_level().data().has_child("side");
|
||||
}
|
||||
|
||||
void create_engine::prepare_for_new_level()
|
||||
{
|
||||
DBG_MP << "preparing mp_game_settings for new level\n";
|
||||
|
|
|
@ -402,6 +402,9 @@ public:
|
|||
|
||||
saved_game& get_state();
|
||||
|
||||
/** Returns true if the current level has one or more [side] tags. */
|
||||
bool current_level_has_side_data();
|
||||
|
||||
private:
|
||||
create_engine(const create_engine&) = delete;
|
||||
void operator=(const create_engine&) = delete;
|
||||
|
|
|
@ -712,7 +712,13 @@ void mp_create_game::load_game_callback(window& window)
|
|||
window.set_retval(LOAD_GAME);
|
||||
}
|
||||
|
||||
bool mp_create_game::dialog_exit_hook(window&) {
|
||||
bool mp_create_game::dialog_exit_hook(window& window)
|
||||
{
|
||||
if(!create_engine_.current_level_has_side_data()) {
|
||||
gui2::show_transient_error_message(window.video(), _("The selected game has no sides!"));
|
||||
return false;
|
||||
}
|
||||
|
||||
if(create_engine_.current_level_type() != ng::level::TYPE::CAMPAIGN &&
|
||||
create_engine_.current_level_type() != ng::level::TYPE::SP_CAMPAIGN
|
||||
) {
|
||||
|
|
Loading…
Add table
Reference in a new issue