Author: esr
Date: Thu Oct 23 06:50:13 2008
New Revision: 30329
URL: http://svn.gna.org/viewcvs/wesnoth?rev=30329&view=rev
Log:
Minor optimization suggested by one of suokko's commits. No game effects.
Modified:
trunk/src/ai.cpp
Modified: trunk/src/ai.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai.cpp?rev=30329&r1=30328&r2=30329&view=diff
==============================================================================
--- trunk/src/ai.cpp (original)
+++ trunk/src/ai.cpp Thu Oct 23 06:50:13 2008
@@ -1277,44 +1277,32 @@
if(!info_.units.count(u))
{
ERR_AI << "attempt to attack without attacker\n";
+ return;
}
if (!info_.units.count(target))
{
ERR_AI << "attempt to attack without defender\n";
- }
-
- if(info_.units.count(u) && info_.units.count(target)) {
- if(info_.units.find(target)->second.incapacitated()) {
- LOG_STREAM(err, ai) << "attempt to attack unit that is
turned to stone\n";
- return;
- }
- if(!info_.units.find(u)->second.attacks_left()) {
- LOG_STREAM(err, ai) << "attempt to attack twice with
the same unit\n";
- return;
- }
-
- if(weapon >= 0) {
- recorder.add_attack(u,target,weapon,def_weapon);
- }
- try {
- attack(info_.disp, info_.map, info_.teams, u, target,
weapon, def_weapon,
- info_.units, info_.state);
- }
- catch (end_level_exception&)
- {
-
dialogs::advance_unit(info_.map,info_.units,u,info_.disp,true);
-
- const unit_map::const_iterator defender =
info_.units.find(target);
- if(defender != info_.units.end()) {
- const size_t defender_team =
size_t(defender->second.side()) - 1;
- if(defender_team < info_.teams.size()) {
- dialogs::advance_unit(info_.map,
info_.units,
- target, info_.disp,
!info_.teams[defender_team].is_human());
- }
- }
-
- throw;
- }
+ return;
+ }
+
+ if(info_.units.find(target)->second.incapacitated()) {
+ LOG_STREAM(err, ai) << "attempt to attack unit that is turned
to stone\n";
+ return;
+ }
+ if(!info_.units.find(u)->second.attacks_left()) {
+ LOG_STREAM(err, ai) << "attempt to attack twice with the same
unit\n";
+ return;
+ }
+
+ if(weapon >= 0) {
+ recorder.add_attack(u,target,weapon,def_weapon);
+ }
+ try {
+ attack(info_.disp, info_.map, info_.teams, u, target, weapon,
def_weapon,
+ info_.units, info_.state);
+ }
+ catch (end_level_exception&)
+ {
dialogs::advance_unit(info_.map,info_.units,u,info_.disp,true);
const unit_map::const_iterator defender =
info_.units.find(target);
@@ -1326,9 +1314,21 @@
}
}
- check_victory(info_.units,info_.teams, info_.disp);
- raise_enemy_attacked();
- }
+ throw;
+ }
+ dialogs::advance_unit(info_.map,info_.units,u,info_.disp,true);
+
+ const unit_map::const_iterator defender = info_.units.find(target);
+ if(defender != info_.units.end()) {
+ const size_t defender_team = size_t(defender->second.side()) -
1;
+ if(defender_team < info_.teams.size()) {
+ dialogs::advance_unit(info_.map, info_.units,
+ target, info_.disp,
!info_.teams[defender_team].is_human());
+ }
+ }
+
+ check_victory(info_.units,info_.teams, info_.disp);
+ raise_enemy_attacked();
}
bool ai::get_healing(std::map<map_location,paths>& possible_moves,
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits