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

Reply via email to