mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-11 18:40:08 +00:00
add "always" defeat_condition
This commit is contained in:
parent
26d60c0a8f
commit
12d190ff9f
@ -1403,10 +1403,11 @@ void play_controller::check_victory()
|
||||
for (unit_map::const_iterator i = units_.begin(),
|
||||
i_end = units_.end(); i != i_end; ++i)
|
||||
{
|
||||
if (i->can_recruit()) {
|
||||
const team& tm = teams_[i->side()-1];
|
||||
if (i->can_recruit() && tm.defeat_condition() == team::NO_LEADER) {
|
||||
//DBG_NG << "seen leader for side " << i->side() << "\n";
|
||||
not_defeated.insert(i->side());
|
||||
} else if (teams_[i->side()-1].defeat_condition() == team::NO_UNITS) {
|
||||
} else if (tm.defeat_condition() == team::NO_UNITS) {
|
||||
//DBG_NG << "side doesn't require leader " << i->side() << "\n";
|
||||
not_defeated.insert(i->side());
|
||||
}
|
||||
|
@ -78,6 +78,8 @@ team::DEFEAT_CONDITION team::parse_defeat_condition(const std::string& cond, tea
|
||||
return team::NO_UNITS;
|
||||
else if (cond == "never")
|
||||
return team::NEVER;
|
||||
else if (cond == "always")
|
||||
return team::ALWAYS;
|
||||
else
|
||||
return def;
|
||||
//throw game::game_error("Cannot parse string " + cond +" to a DEFEAT_CONDITION");
|
||||
@ -92,6 +94,8 @@ std::string team::defeat_condition_to_string(DEFEAT_CONDITION cond)
|
||||
return "no_unit";
|
||||
case team::NEVER:
|
||||
return "never";
|
||||
case team::ALWAYS:
|
||||
return "always";
|
||||
default:
|
||||
throw game::game_error("Found corrupted DEFEAT_CONDITION");
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ class team : public savegame::savegame_config
|
||||
{
|
||||
public:
|
||||
enum CONTROLLER { HUMAN, AI, NETWORK, NETWORK_AI, IDLE, EMPTY };
|
||||
enum DEFEAT_CONDITION {NO_LEADER, NO_UNITS, NEVER};
|
||||
enum DEFEAT_CONDITION {NO_LEADER, NO_UNITS, NEVER, ALWAYS};
|
||||
static DEFEAT_CONDITION parse_defeat_condition(const std::string& cond, team::DEFEAT_CONDITION def);
|
||||
static std::string defeat_condition_to_string(DEFEAT_CONDITION cond);
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user