Author: anonymissimus
Date: Tue Mar 27 21:50:21 2012
New Revision: 53672

URL: http://svn.gna.org/viewcvs/wesnoth?rev=53672&view=rev
Log:
Introduce SSF support in [filter][filter_vision].

Deprecate viewing_side= in favor of the SSF's side=.
Semantics in case of empty filter changes from "all enemy sides"
to "all sides". If a side isn't an enemy, it can usually see
the unit anyway, and just in case the SSF has [enemy_of].
wmllint rule to come.
(patch #3194 by Brilliand)

Modified:
    trunk/src/unit.cpp

Modified: trunk/src/unit.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit.cpp?rev=53672&r1=53671&r2=53672&view=diff
==============================================================================
--- trunk/src/unit.cpp (original)
+++ trunk/src/unit.cpp Tue Mar 27 21:50:21 2012
@@ -1478,6 +1478,7 @@
                        bool visible = (*i)["visible"].to_bool(true);
                        std::set<int> viewers;
                        if (i->has_attribute("viewing_side")) {
+                               ERR_NG << "[filter_vision]viewing_side= is 
deprecated, use side=\n";
                                std::vector<std::pair<int,int> > ranges = 
utils::parse_ranges((*i)["viewing_side"]);
                                std::vector<std::pair<int,int> 
>::const_iterator range, range_end = ranges.end();
                                for (range = ranges.begin(); range != 
range_end; ++range) {
@@ -1488,13 +1489,10 @@
                                        }
                                }
                        } else {
-                               //if viewing_side is not defined, default to 
all enemies
-                               const team& my_team = 
teams_manager::get_teams()[this->side()-1];
-                               for (size_t i = 1; i <= 
teams_manager::get_teams().size(); ++i) {
-                                       if (my_team.is_enemy(i)) {
-                                               viewers.insert(i);
-                                       }
-                               }
+                               // Use standard side filter
+                               side_filter ssf(*i);
+                               std::vector<int> sides = ssf.get_teams();
+                               viewers.insert(sides.begin(), sides.end());
                        }
                        if (viewers.empty()) {
                                return false;


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to