Author: silene
Date: Sat Apr 4 23:30:59 2009
New Revision: 34501
URL: http://svn.gna.org/viewcvs/wesnoth?rev=34501&view=rev
Log:
Removed config::get_children.
Modified:
trunk/src/ai_dfool.cpp
trunk/src/ai_dfool.hpp
Modified: trunk/src/ai_dfool.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai_dfool.cpp?rev=34501&r1=34500&r2=34501&view=diff
==============================================================================
--- trunk/src/ai_dfool.cpp (original)
+++ trunk/src/ai_dfool.cpp Sat Apr 4 23:30:59 2009
@@ -17,6 +17,7 @@
#include "global.hpp"
#include "ai_dfool.hpp"
+#include "foreach.hpp"
#include "log.hpp"
#include "formula_string_utils.hpp"
@@ -27,7 +28,6 @@
const config& parms = current_team().ai_parameters();
config ai_mem = current_team().ai_memory();
- const config::child_list& orders = parms.get_children("order");
LOG_STREAM(info, ai)<<"dfool side:"<<team_num<<" of
"<<current_team().nteams()<<std::endl;
config side_filter;
@@ -72,11 +72,11 @@
}
}
- for(config::child_list::const_iterator o = orders.begin(); o !=
orders.end(); ++o) {
- std::string order_id=(**o)["id"];
- std::string number=(**o)["number"];
+ foreach (const config &o, parms.child_range("order"))
+ {
+ std::string order_id = o["id"];
+ std::string number = o["number"];
size_t num=atoi(number.c_str());
- const config::child_list& filter = (**o).get_children("filter");
LOG_STREAM(info, ai)<<"dfool order:"<<order_id<<std::endl;
@@ -88,9 +88,11 @@
// Need to populate orders
// Find units that match any filter.
// If no filters, then accept all units.
- if(filter.size()){
- for(config::child_list::const_iterator f = filter.begin(); f !=
filter.end(); ++f) {
- config ff=**f;
+ config::const_child_itors filters = o.child_range("filter");
+ if (filters.first != filters.second)
+ {
+ foreach (const config &ff, filters)
+ {
// LOG_STREAM(info, ai)<<"dfool filter:"<<std::endl;
unit_list
filtered_units=filter_units(ff,my_units,get_info().units);
@@ -121,19 +123,20 @@
}
// Execute commands
- for(unit_list::iterator ou = order_units.begin(); ou !=
order_units.end(); ou++){
- const config::child_list& commands = (**o).get_children("command");
- bool com_break=false;
-
- for(config::child_list::const_iterator com = commands.begin(); com !=
commands.end() && !com_break; ++com) {
- unit_map::iterator u=unit(*ou,get_info().units);
-
- const config::child_list& com_filter = (**com).get_children("filter");
+ foreach (size_t ou, order_units)
+ {
+ bool com_break = false;
+
+ foreach (const config &com, o.child_range("command"))
+ {
+ unit_map::iterator u = unit(ou,
get_info().units);
+
bool found=true;
if(u!=get_info().units.end()){
- for(config::child_list::const_iterator sf = com_filter.begin(); sf
!= com_filter.end(); ++sf) {
- config ff=**sf;
- LOG_STREAM(info, ai)<<"ff:"<<(**com)["type"]<<" "<<ff["type"]<<"
"<<ff["x"]<<","<<ff["y"]<<std::endl;
+ foreach (const config &ff,
com.child_range("filter"))
+ {
+ LOG_STREAM(info, ai) << "ff:"
<< com["type"] << ' '
+ << ff["type"] << ' ' <<
ff["x"] << ',' << ff["y"] << '\n';
LOG_STREAM(info, ai)<<"ff?"<<u->second.type_id()<<"
"<<u->first.x<<","<<u->first.y<<std::endl;
if (!u->second.matches_filter(vconfig(ff), u->first)) {
found=false;
@@ -143,8 +146,8 @@
}
if(found){
- std::string type=(**com)["type"];
- std::string e=(**com)["test"];
+ std::string type = com["type"];
+ std::string e = com["test"];
std::map<std::string, evaluator*> function_map;
arithmetic_evaluator eval(get_info().state.sog(),&function_map);
distance_evaluator dist(get_info().state.sog(),&function_map);
@@ -157,7 +160,7 @@
moveto(com,u);
}
if(type=="set_order"){
- std::string set_id=(**com)["id"];
+ std::string set_id = com["id"];
std::string a=(u->second.get_ai_special());
LOG_STREAM(info,
ai)<<"\t\t"<<u->second.underlying_id()<<"\t"<<a<<"->"<<set_id<<std::endl;
(u->second.assign_ai_special(set_id));
@@ -231,8 +234,9 @@
return(all);
}
- bool dfool_ai::moveto(config::child_list::const_iterator o,
unit_map::const_iterator m){
- location
target(atoi((**o)["target_x"].c_str())-1,atoi((**o)["target_y"].c_str())-1);
+bool dfool_ai::moveto(const config &o, unit_map::const_iterator m)
+{
+ location target(atoi(o["target_x"].c_str()) - 1,
atoi(o["target_y"].c_str()) - 1);
LOG_STREAM(info, ai)<<"\tmoving
to:("<<target.x<<","<<target.y<<")"<<std::endl;
if(m->second.movement_left()){
std::map<location,paths> possible_moves;
@@ -304,15 +308,14 @@
turns_(),
locations_()
{
- const config::child_list mem_list=cfg.get_children("unit_memory");
- for(config::child_list::const_iterator mem = mem_list.begin(); mem !=
mem_list.end(); ++mem) {
- config unit_cfg = (*mem)->child_or_empty("unit");
+ foreach (const config &mem, cfg.child_range("unit_memory"))
+ {
+ config unit_cfg = mem.child_or_empty("unit");
unit u(unit_cfg);
- int t = atoi((**mem)["turn"].c_str());
-
- map_location
l(atoi((**mem)["x"].c_str())-1,atoi((**mem)["y"].c_str())-1);
+ int t = atoi(mem["turn"].c_str());
+ map_location l(atoi(mem["x"].c_str()) - 1,
atoi(mem["y"].c_str()) - 1);
add_unit_sighting(u,l,t);
}
}
Modified: trunk/src/ai_dfool.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai_dfool.hpp?rev=34501&r1=34500&r2=34501&view=diff
==============================================================================
--- trunk/src/ai_dfool.hpp (original)
+++ trunk/src/ai_dfool.hpp Sat Apr 4 23:30:59 2009
@@ -109,7 +109,7 @@
unit_list visible_units();
unit_list my_units();
unit_list filter_units(const config& filter,unit_list& ul, unit_map& um);
- bool moveto(config::child_list::const_iterator o, unit_map::const_iterator
m);
+ bool moveto(const config &o, unit_map::const_iterator m);
unit_map::iterator unit(size_t unit_id, unit_map& um);
unit_memory unit_memory_;
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits