Skip to content

Commit

Permalink
sync :next_level command
Browse files Browse the repository at this point in the history
  • Loading branch information
gfgtdf committed Jun 7, 2015
1 parent fb40721 commit 035aa07
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 22 deletions.
24 changes: 2 additions & 22 deletions src/menu_events.cpp
Expand Up @@ -2952,17 +2952,7 @@ void console_handler::do_nosaves() {

void console_handler::do_next_level()
{
if (!get_data().empty())
menu_handler_.gamedata().set_next_scenario(get_data());
end_level_data e;
e.transient.carryover_report = false;
e.prescenario_save = true;
e.transient.linger_mode = false;
e.proceed_to_next_level = true;
e.is_victory = true;
menu_handler_.pc_.set_end_level_data(e);
menu_handler_.pc_.force_end_turn();
menu_handler_.pc_.maybe_throw_return_to_play_side();
synced_context::run_and_throw("debug_next_level", config_of("next_level", get_data()));
}

void console_handler::do_choose_level() {
Expand Down Expand Up @@ -3004,17 +2994,7 @@ void console_handler::do_choose_level() {
return;

if (size_t(choice) < options.size()) {
menu_handler_.gamedata().set_next_scenario(options[choice]);
end_level_data e;
e.transient.carryover_report = false;
e.prescenario_save = true;
e.transient.linger_mode = false;
e.proceed_to_next_level = true;
e.is_victory = true;
menu_handler_.pc_.set_end_level_data(e);
// This is for linger mode where end turn is actualy end scenario.
menu_handler_.pc_.force_end_turn();
menu_handler_.pc_.maybe_throw_return_to_play_side();
synced_context::run_and_throw("debug_next_level", config_of("next_level", options[choice]));
}
}

Expand Down
26 changes: 26 additions & 0 deletions src/synced_commands.cpp
Expand Up @@ -497,3 +497,29 @@ SYNCED_COMMAND_HANDLER_FUNCTION(debug_lua, child, use_undo, /*show*/, /*error_ha

return true;
}

SYNCED_COMMAND_HANDLER_FUNCTION(debug_next_level, child, use_undo, /*show*/, /*error_handler*/)
{
if(use_undo) {
resources::undo_stack->clear();
}

utils::string_map symbols;
symbols["player"] = resources::controller->current_team().current_player();
resources::screen->announce(vgettext(":next_level debug command was used during turn of $player", symbols), font::NORMAL_COLOR);

std::string next_level = child["next_level"];
if (!next_level.empty())
resources::gamedata->set_next_scenario(next_level);
end_level_data e;
e.transient.carryover_report = false;
e.prescenario_save = true;
e.transient.linger_mode = false;
e.proceed_to_next_level = true;
e.is_victory = true;

resources::controller->set_end_level_data(e);
resources::controller->force_end_turn();

return true;
}

0 comments on commit 035aa07

Please sign in to comment.