# HG changeset patch # User unc0rr # Date 1390163140 -14400 # Node ID eb981a03de903b668d6c4f097e803fac87e93a59 # Parent 7f36194af01c1365c26efbacc9222fe83ee829a5 - Make Racer report achievements - Add official racer challenge map #1 - Helper script to detect official challenge maps by land digest diff -r 7f36194af01c -r eb981a03de90 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Sun Jan 19 17:53:16 2014 +0100 +++ b/hedgewars/uLand.pas Mon Jan 20 00:25:40 2014 +0400 @@ -31,7 +31,7 @@ implementation uses uConsole, uStore, uRandom, uLandObjects, uIO, uLandTexture, SysUtils, uVariables, uUtils, uCommands, adler32, uDebug, uLandPainted, uTextures, - uLandGenMaze, uLandOutline, uPhysFSLayer; + uLandGenMaze, uLandOutline, uPhysFSLayer, uScript; var digest: shortstring; @@ -886,6 +886,8 @@ adler:= Adler32Update(adler, @Land[i,0], LAND_WIDTH); s:= 'M' + IntToStr(adler) + cScriptName; + ScriptSetString('LandDigest', s); + chLandCheck(s); SendIPCRaw(@s[0], Length(s) + 1) end; diff -r 7f36194af01c -r eb981a03de90 misc/OfficialChallenges/racer_#1.hwmap --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/misc/OfficialChallenges/racer_#1.hwmap Mon Jan 20 00:25:40 2014 +0400 @@ -0,0 +1,1 @@ +AAAAw3icJc6xDcIwEAXQz+niWBhkiggxAS0djZs0kYVASFmBBWiYw0xAQ5sOV7SZgBpKRvAC+Ezz9PWlfzrd8BHmyzvwiTvoFe7QTf0AAoaIUO9hrwUMpQN56iN5tcT8U6C+dKADuzi7scsHeJuEnCaXJOSkXklAtWaXBBjDbRJKF/7dgtsgyPYcBNm+gwBtaTNqqzyqJ3fj1Oeff4W8JYk= \ No newline at end of file diff -r 7f36194af01c -r eb981a03de90 share/hedgewars/Data/Scripts/Multiplayer/Racer.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Sun Jan 19 17:53:16 2014 +0100 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Mon Jan 20 00:25:40 2014 +0400 @@ -72,6 +72,7 @@ ----------------------------- HedgewarsScriptLoad("/Scripts/Locale.lua") +HedgewarsScriptLoad("/Scripts/OfficialChallenges.lua") ------------------ -- Got Variables? @@ -718,3 +719,14 @@ end end + + +function onAchievementsDeclaration() + map = detectMap() + + for i = 0, (numTeams-1) do + if teamScore[i] < 100000 then + DeclareAchievement("rope race", teamNameArr[i], map, teamScore[i]) + end + end +end diff -r 7f36194af01c -r eb981a03de90 share/hedgewars/Data/Scripts/OfficialChallenges.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/OfficialChallenges.lua Mon Jan 20 00:25:40 2014 +0400 @@ -0,0 +1,5 @@ +function detectMap() + if LandDigest == "M838018718Scripts/Multiplayer/Racer.lua" then + return("Racer Challenge #1") + end +end