Author: anonymissimus
Date: Tue Mar 27 21:51:38 2012
New Revision: 53675

URL: http://svn.gna.org/viewcvs/wesnoth?rev=53675&view=rev
Log:
introduce [filter_vision]<SSF> in SLFs (patch #3209 by brilliand)

Modified:
    trunk/src/terrain_filter.cpp

Modified: trunk/src/terrain_filter.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/terrain_filter.cpp?rev=53675&r1=53674&r2=53675&view=diff
==============================================================================
--- trunk/src/terrain_filter.cpp (original)
+++ trunk/src/terrain_filter.cpp Tue Mar 27 21:51:38 2012
@@ -149,6 +149,27 @@
                const unit_map::const_iterator u = units_.find(loc);
                if (u == units_.end() || !u->matches_filter(unit_filter, loc, 
flat_))
                        return false;
+       }
+
+       // Allow filtering on visibility to a side
+       if (cfg_.has_child("filter_vision")) {
+               const vconfig::child_list& vis_filt = 
cfg_.get_children("filter_vision");
+               vconfig::child_list::const_iterator i, i_end = vis_filt.end();
+               for (i = vis_filt.begin(); i != i_end; ++i) {
+                       bool visible = (*i)["visible"].to_bool(true);
+                       bool respect_fog = (*i)["respect_fog"].to_bool(true);
+
+                       side_filter ssf(*i);
+                       std::vector<int> sides = ssf.get_teams();
+
+                       foreach(const int side, sides) {
+                               const team &viewing_team = 
resources::teams->at(side - 1);
+                               bool viewer_sees = respect_fog ? 
!viewing_team.fogged(loc) : !viewing_team.shrouded(loc);
+                               if (visible != viewer_sees) {
+                                       return false;
+                               }
+                       }
+               }
        }
 
        //Allow filtering on adjacent locations


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

Reply via email to