Author: suokko
Date: Sun Jun 29 14:05:41 2008
New Revision: 27587

URL: http://svn.gna.org/viewcvs/wesnoth?rev=27587&view=rev
Log:
* Fixed statitics not add turn data from previus scenarios (bug: #11719)

Modified:
    trunk/changelog
    trunk/src/statistics.cpp

Modified: trunk/changelog
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/changelog?rev=27587&r1=27586&r2=27587&view=diff
==============================================================================
--- trunk/changelog (original)
+++ trunk/changelog Sun Jun 29 14:05:41 2008
@@ -9,7 +9,6 @@
  * WML engine:
    * When examining stored units, now the attacks, max_hitpoints, max_moves,
      and max_experience are the "real" values and can also be modified.
-   * Enhanced recursion prevention for [kill] fire_event=yes [/kill]
  * GUI improvements:
    * Rewrote the textbox history saving of the new widget library. This rewrite
      is incompatible with the old version, but since the library is still in
@@ -22,6 +21,7 @@
    * Fixed timer end warning not to play in opponents turn (bug: #11517)
  * miscellaneous and bug fixes:
    * Fixed droiding not to make wesnoth think player is observer (bug: #9675)
+   * Fixed statitics not add turn data from previus scenarios (bug: #11719)
    * Removed persistance from team configuration (bug: #10916)
 
 Version 1.5.1:

Modified: trunk/src/statistics.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/statistics.cpp?rev=27587&r1=27586&r2=27587&view=diff
==============================================================================
--- trunk/src/statistics.cpp (original)
+++ trunk/src/statistics.cpp Sun Jun 29 14:05:41 2008
@@ -26,6 +26,7 @@
 #include "unit.hpp"
 
 #define ERR_NG lg::err(lg::engine)
+#define DBG_NG LOG_STREAM(debug, engine)
 
 namespace {
 
@@ -189,6 +190,7 @@
 
 static void merge_stats(stats& a, const stats& b)
 {
+       DBG_NG << "Merging statistics\n";
        merge_str_int_map(a.recruits,b.recruits);
        merge_str_int_map(a.recalls,b.recalls);
        merge_str_int_map(a.advanced_to,b.advanced_to);
@@ -205,15 +207,17 @@
        a.damage_taken += b.damage_taken;
        a.expected_damage_inflicted += b.expected_damage_inflicted;
        a.expected_damage_taken += b.expected_damage_taken;
-       a.turn_damage_inflicted += b.turn_damage_inflicted;
-       a.turn_damage_taken += b.turn_damage_taken;
-       a.turn_expected_damage_inflicted += b.turn_expected_damage_inflicted;
-       a.turn_expected_damage_taken += b.turn_expected_damage_taken;
+       // Only take the last value for this turn
+       a.turn_damage_inflicted = b.turn_damage_inflicted;
+       a.turn_damage_taken = b.turn_damage_taken;
+       a.turn_expected_damage_inflicted = b.turn_expected_damage_inflicted;
+       a.turn_expected_damage_taken = b.turn_expected_damage_taken;
        
        a.new_expected_damage_inflicted += b.new_expected_damage_inflicted;
        a.new_expected_damage_taken += b.new_expected_damage_taken;
-       a.new_turn_expected_damage_inflicted += 
b.new_turn_expected_damage_inflicted;
-       a.new_turn_expected_damage_taken += b.new_turn_expected_damage_taken;
+       // Only take the last value for this turn
+       a.new_turn_expected_damage_inflicted = 
b.new_turn_expected_damage_inflicted;
+       a.new_turn_expected_damage_taken = b.new_turn_expected_damage_taken;
 }
 
 namespace statistics
@@ -613,9 +617,11 @@
 
 stats calculate_stats(int category, int side)
 {
+       DBG_NG << "calculate_stats, category: " << category << " side: " << 
side << " master_stats.size: " << master_stats.size() << "\n";
        if(category == 0) {
                stats res;
-               for(int i = 1; i <= int(master_stats.size()); ++i) {
+               // We are going from last to first to include corect turn stats 
in result
+               for(int i = int(master_stats.size()); i > 0 ; --i) {
                        merge_stats(res,calculate_stats(i,side));
                }
 


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

Reply via email to