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