Fix script flaw in detection of best team when sending achievement info
authorunc0rr
Sat, 24 Aug 2013 01:37:20 +0400
changeset 9411 d95ac9992529
parent 9409 6564baf7dedf
child 9413 37fcb9a796e6
Fix script flaw in detection of best team when sending achievement info
hedgewars/uStats.pas
share/hedgewars/Data/Maps/TrophyRace/map.lua
--- a/hedgewars/uStats.pas	Sat Aug 24 00:13:15 2013 +0400
+++ b/hedgewars/uStats.pas	Sat Aug 24 01:37:20 2013 +0400
@@ -312,8 +312,8 @@
 end;
 
 procedure declareAchievement(id, teamname, location: shortstring; value: LongInt);
-begin
-    if (length(id) = 0) or (length(teamname) = 0) then exit;
+begin 
+if (length(id) = 0) or (length(teamname) = 0) or (length(location) = 0) then exit;
     WriteLnToConsole('ACHIEVEMENT');
     WriteLnToConsole(id);
     WriteLnToConsole(teamname);
--- a/share/hedgewars/Data/Maps/TrophyRace/map.lua	Sat Aug 24 00:13:15 2013 +0400
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua	Sat Aug 24 01:37:20 2013 +0400
@@ -31,6 +31,7 @@
 
 -- hog with best time
 local besthog = nil
+local besthogteam = ""
 
 -- hog with worst time (per round)
 local worsthog = nil
@@ -112,6 +113,7 @@
 			if ttime < besttime then
 				besttime = ttime
 				besthog = CurrentHedgehog
+                besthogteam = GetHogTeamName(besthog)
 				hscore = hscore .. loc("NEW fastest lap: ")
 			else
 				hscore = hscore .. loc("Fastest lap: ")
@@ -165,6 +167,6 @@
 
 function onAchievementsDeclaration()
     if besthog ~= nil then
-      DeclareAchievement("rope race", GetHogTeamName(besthog), "TrophyRace", besttime)
+      DeclareAchievement("rope race", besthogteam, "TrophyRace", besttime)
     end
 end