Fix script flaw in detection of best team when sending achievement info 0.9.19
authorunc0rr
Sat, 24 Aug 2013 01:37:20 +0400
branch0.9.19
changeset 9142 0dceffbaa4ee
parent 9140 a6bb1fde2939
child 9144 1e0ba74930d0
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 01:22:45 2013 +0400
+++ b/hedgewars/uStats.pas	Sat Aug 24 01:37:20 2013 +0400
@@ -309,8 +309,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 01:22:45 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