mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-30 19:22:31 +00:00
Made all the AI actions test for level end. (Fix for bug #14068.)
This commit is contained in:
parent
86dce3e7cf
commit
e8afe762ca
@ -42,7 +42,9 @@
|
|||||||
#include "../log.hpp"
|
#include "../log.hpp"
|
||||||
#include "../mouse_handler_base.hpp"
|
#include "../mouse_handler_base.hpp"
|
||||||
#include "../pathfind.hpp"
|
#include "../pathfind.hpp"
|
||||||
|
#include "play_controller.hpp"
|
||||||
#include "../replay.hpp"
|
#include "../replay.hpp"
|
||||||
|
#include "resources.hpp"
|
||||||
#include "../statistics.hpp"
|
#include "../statistics.hpp"
|
||||||
#include "../team.hpp"
|
#include "../team.hpp"
|
||||||
|
|
||||||
@ -90,6 +92,8 @@ void action_result::execute()
|
|||||||
check_before();
|
check_before();
|
||||||
if (is_success()){
|
if (is_success()){
|
||||||
do_execute();
|
do_execute();
|
||||||
|
check_victory();
|
||||||
|
resources::controller->check_end_level();
|
||||||
}
|
}
|
||||||
if (is_success()){
|
if (is_success()){
|
||||||
check_after();
|
check_after();
|
||||||
@ -317,7 +321,6 @@ void attack_result::do_execute()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
check_victory();
|
|
||||||
set_gamestate_changed();
|
set_gamestate_changed();
|
||||||
//start of ugly hack. @todo 1.8 rework that via extended event system
|
//start of ugly hack. @todo 1.8 rework that via extended event system
|
||||||
//until event system is reworked, we note the attack this way
|
//until event system is reworked, we note the attack this way
|
||||||
|
@ -86,6 +86,7 @@ public:
|
|||||||
int percentage = -1, bool add = false, bool bonus = true,
|
int percentage = -1, bool add = false, bool bonus = true,
|
||||||
bool report = true, bool prescenario_save = true,
|
bool report = true, bool prescenario_save = true,
|
||||||
bool linger = true) = 0;
|
bool linger = true) = 0;
|
||||||
|
virtual void check_end_level() = 0;
|
||||||
|
|
||||||
//turn functions
|
//turn functions
|
||||||
size_t turn() const {return tod_manager_.turn();}
|
size_t turn() const {return tod_manager_.turn();}
|
||||||
|
@ -65,7 +65,7 @@ public:
|
|||||||
virtual void force_end_level(LEVEL_RESULT res, const std::string &endlevel_music_list,
|
virtual void force_end_level(LEVEL_RESULT res, const std::string &endlevel_music_list,
|
||||||
int percentage, bool add, bool bonus, bool report, bool prescenario_save,
|
int percentage, bool add, bool bonus, bool report, bool prescenario_save,
|
||||||
bool linger);
|
bool linger);
|
||||||
void check_end_level();
|
virtual void check_end_level();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void play_turn(bool no_save);
|
virtual void play_turn(bool no_save);
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
, bool /*linger*/)
|
, bool /*linger*/)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
virtual void check_end_level() {}
|
||||||
|
|
||||||
std::vector<team> teams_start_;
|
std::vector<team> teams_start_;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user