Skip to content

Commit

Permalink
revert PR 98
Browse files Browse the repository at this point in the history
This commit removes the "carryover_wml" feature which was added
just before 1.12 was branched off.

I added this feature at a time when I didn't have as good an
understanding as I do now of the networked mp code, I now believe
that it was poorly concieved and should not be implemented this
way if at all. There are better ways to achieve what was meant to
be achieved here, we are better off to remove it as it currently
exists.
  • Loading branch information
cbeck88 committed Aug 28, 2014
1 parent 81390b1 commit 61bca90
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 71 deletions.
18 changes: 0 additions & 18 deletions src/game_end_exceptions.cpp
Expand Up @@ -33,8 +33,6 @@ end_level_data::end_level_data()
, carryover_percentage(game_config::gold_carryover_percentage)
, carryover_add(false)
, transient()
, next_scenario_settings()
, next_scenario_append()
{
}

Expand All @@ -45,13 +43,6 @@ void end_level_data::write(config& cfg) const
cfg["bonus"] = gold_bonus;
cfg["carryover_percentage"] = carryover_percentage;
cfg["carryover_add"] = carryover_add;
if (!next_scenario_settings.empty()) {
cfg.add_child("next_scenario_settings", next_scenario_settings);
}
if (!next_scenario_append.empty()) {
cfg.add_child("next_scenario_append", next_scenario_append);
}

}

void end_level_data::read(const config& cfg)
Expand All @@ -61,13 +52,4 @@ void end_level_data::read(const config& cfg)
gold_bonus = cfg["bonus"].to_bool(true);
carryover_percentage = cfg["carryover_percentage"].to_int(game_config::gold_carryover_percentage);
carryover_add = cfg["carryover_add"].to_bool(false);
const config & next_scenario_settings_cfg = cfg.child_or_empty("next_scenario_settings");
if (!next_scenario_settings_cfg.empty()) {
next_scenario_settings = next_scenario_settings_cfg;
}
const config & next_scenario_append_cfg = cfg.child_or_empty("next_scenario_append");
if (!next_scenario_append_cfg.empty()) {
next_scenario_append = next_scenario_append_cfg;
}

}
5 changes: 1 addition & 4 deletions src/game_end_exceptions.hpp
Expand Up @@ -26,7 +26,7 @@

#include <string>

#include "config.hpp"
class config;

enum LEVEL_RESULT {
NONE,
Expand Down Expand Up @@ -108,9 +108,6 @@ struct end_level_data
bool carryover_add; /**< Add or replace next scenario's minimum starting gold. */
transient_end_level transient;

config next_scenario_settings;
config next_scenario_append;

void write(config& cfg) const;

void read(const config& cfg);
Expand Down
9 changes: 0 additions & 9 deletions src/game_events/action_wml.cpp
Expand Up @@ -727,15 +727,6 @@ WML_HANDLER_FUNCTION(endlevel, /*event_info*/, cfg)
std::string next_scenario = cfg["next_scenario"];
if (!next_scenario.empty()) {
resources::gamedata->set_next_scenario(next_scenario);

const config next_scenario_settings_cfg = cfg.get_parsed_config().child_or_empty("next_scenario_settings");
if (!next_scenario_settings_cfg.empty()) {
data.next_scenario_settings = next_scenario_settings_cfg;
}
const config next_scenario_append_cfg = cfg.get_parsed_config().child_or_empty("next_scenario_append");
if (!next_scenario_append_cfg.empty()) {
data.next_scenario_append = next_scenario_append_cfg;
}
}

std::string end_of_campaign_text = cfg["end_text"];
Expand Down
43 changes: 3 additions & 40 deletions src/playcampaign.cpp
Expand Up @@ -70,33 +70,6 @@ static void team_init(config& level, game_state& gamestate){
}
}

static void do_carryover_WML(config & level, game_state& gamestate){

if(gamestate.snapshot.child_or_empty("variables")["turn_number"].to_int(-1)<1){

carryover_info sides(gamestate.carryover_sides_start);

end_level_data end_level_ = sides.get_end_level();

if(!end_level_.next_scenario_settings.empty()) {
level.merge_with(end_level_.next_scenario_settings);
}
if(!end_level_.next_scenario_append.empty())
{
level.append_children(end_level_.next_scenario_append);
}
}
}

static void clear_carryover_WML (game_state & gamestate) {

if (gamestate.carryover_sides.has_child("end_level_data")) {
config & eld = gamestate.carryover_sides.child("end_level_data");
eld.clear_children("next_scenario_settings");
eld.clear_children("next_scenario_append");
}
}

static void store_carryover(game_state& gamestate, playsingle_controller& playcontroller, display& disp, const end_level_data& end_level){
bool has_next_scenario = !resources::gamedata->next_scenario().empty() &&
resources::gamedata->next_scenario() != "null";
Expand Down Expand Up @@ -262,9 +235,8 @@ static LEVEL_RESULT playsingle_scenario(const config& game_config,
int num_turns = (*level)["turns"].to_int(-1);

config init_level = *level;
do_carryover_WML(init_level, state_of_game);

team_init(init_level, state_of_game);
clear_carryover_WML(state_of_game);

LOG_NG << "creating objects... " << (SDL_GetTicks() - ticks) << "\n";
playsingle_controller playcontroller(init_level, state_of_game, ticks, num_turns, game_config, disp.video(), skip_replay);
Expand Down Expand Up @@ -312,9 +284,8 @@ static LEVEL_RESULT playmp_scenario(const config& game_config,
int num_turns = (*level)["turns"].to_int(-1);

config init_level = *level;
do_carryover_WML(init_level, state_of_game);

team_init(init_level, state_of_game);
clear_carryover_WML(state_of_game);

playmp_controller playcontroller(init_level, state_of_game, ticks, num_turns,
game_config, disp.video(), skip_replay, blindfold_replay, io_type == IO_SERVER);
Expand Down Expand Up @@ -604,14 +575,6 @@ LEVEL_RESULT play_game(game_display& disp, game_state& gamestate,
// mp::connect_engine.
team_init(starting_pos, gamestate);

//We don't merge WML until start of next scenario, but if we want to allow user to disable MP ui in transition,
//then we have to move "allow_new_game" attribute over now.
bool allow_new_game_flag = (*scenario)["allow_new_game"].to_bool(true);

if (gamestate.carryover_sides_start.child_or_empty("end_level_data").child_or_empty("next_scenario_settings").has_attribute("allow_new_game")) {
allow_new_game_flag = gamestate.carryover_sides_start.child_or_empty("end_level_data").child("next_scenario_settings")["allow_new_game"].to_bool();
}

params.scenario_data = *scenario;
params.scenario_data["next_underlying_unit_id"] = n_unit::id_manager::instance().get_save_id();
params.mp_scenario = (*scenario)["id"].str();
Expand All @@ -625,7 +588,7 @@ LEVEL_RESULT play_game(game_display& disp, game_state& gamestate,
connect_engine(new mp::connect_engine(disp, gamestate,
params, !network_game, false));

if (allow_new_game_flag || (game_config::debug && network::nconnections() == 0)) {
if ((*scenario)["allow_new_game"].to_bool(true) || (game_config::debug && network::nconnections() == 0)) {
// Opens mp::connect dialog to allow users to
// make an adjustments for scenario.
// TODO: Fix this so that it works when network::nconnections() > 0 as well.
Expand Down

0 comments on commit 61bca90

Please sign in to comment.