Author: alink
Date: Sat May 24 02:05:44 2008
New Revision: 26808
URL: http://svn.gna.org/viewcvs/wesnoth?rev=26808&view=rev
Log:
A discovered hidden unit now lost its hidden status until its next new turn.
Previously, was hidden again after the next user action.
This change a little how hides works for multi sides games.
Modified:
trunk/src/actions.cpp
Modified: trunk/src/actions.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/actions.cpp?rev=26808&r1=26807&r2=26808&view=diff
==============================================================================
--- trunk/src/actions.cpp (original)
+++ trunk/src/actions.cpp Sat May 24 02:05:44 2008
@@ -2146,18 +2146,24 @@
if(adjacent[i] == ui->first)
continue;
- const unit_map::const_iterator it =
units.find(adjacent[i]);
+ const unit_map::iterator it = units.find(adjacent[i]);
if(it != units.end() &&
team.is_enemy(it->second.side()) &&
it->second.invisible(it->first,units,teams)) {
discovered_unit = true;
- unit_ability_list hides =
it->second.get_abilities("hides",it->first);
-
for(std::vector<std::pair<config*,gamemap::location> >::const_iterator hide_it
= hides.cfgs.begin();
- hide_it != hides.cfgs.end();
++hide_it) {
- ambushed_string
=(*hide_it->first)["alert"];
- }
should_clear_stack = true;
moves_left = 0;
- break;
+
+ it->second.set_state("hidden","no");
+
+ // we only use the first valid alert message
+ if (ambushed_string.empty()) {
+ unit_ability_list hides =
it->second.get_abilities("hides",it->first);
+
+
for(std::vector<std::pair<config*,gamemap::location> >::const_iterator hide_it
= hides.cfgs.begin();
+ hide_it !=
hides.cfgs.end(); ++hide_it) {
+ ambushed_string
=(*hide_it->first)["alert"];
+ }
+ }
}
}
}
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits