The Battle for Wesnoth  1.13.10+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
stage_rca.hpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2009 - 2017 by Yurii Chernyi <terraninfo@terraninfo.net>
3  Part of the Battle for Wesnoth Project http://www.wesnoth.org/
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY.
11 
12  See the COPYING file for more details.
13 */
14 
15 /**
16  * @file
17  * candidate action evaluator
18  */
19 
20 #pragma once
21 
22 #include "ai/composite/rca.hpp"
23 #include "ai/composite/stage.hpp"
24 
25 #ifdef _MSC_VER
26 #pragma warning(push)
27 //silence "inherits via dominance" warnings
28 #pragma warning(disable:4250)
29 #endif
30 
31 namespace ai {
32 
33 namespace ai_default_rca {
34 
35 class candidate_action_evaluation_loop: public virtual stage, public virtual rca_context {
36 public:
37  candidate_action_evaluation_loop( ai_context &context, const config &cfg );
38 
40 
41  bool do_play_stage();
42 
43  void on_create();
44 
45  config to_config() const;
46 
48 
49  void remove_completed_cas();
50 
51 private:
52  std::vector<candidate_action_ptr> candidate_actions_;
53 
54  const config &cfg_;
55 };
56 
57 
58 } // of namespace testing_ai_default
59 
60 } // of namespace ai
61 
62 #ifdef _MSC_VER
63 #pragma warning(pop)
64 #endif
candidate_action_evaluation_loop(ai_context &context, const config &cfg)
Definition: stage_rca.cpp:41
std::vector< candidate_action_ptr > candidate_actions_
Definition: stage_rca.hpp:52
Composite AI stages.
A small explanation about what's going on here: Each action has access to two game_info objects First...
Definition: actions.cpp:58
bool do_play_stage()
Play the turn - implementation.
Definition: stage_rca.cpp:81
A config object defines a single node in a WML file, with access to child nodes.
Definition: config.hpp:93
candidate action framework