# HG changeset patch
# User sheepluva
# Date 1385413782 -3600
# Node ID 563a34cd83987da50765925068b761fad18fc9e6
# Parent  b8b7ef99a084543c46f6b08f6690861d0b70b6bb
unbreak various parts of campaign variable loading/saving

diff -r b8b7ef99a084 -r 563a34cd8398 QTfrontend/game.cpp
--- a/QTfrontend/game.cpp	Mon Nov 25 10:12:18 2013 +0100
+++ b/QTfrontend/game.cpp	Mon Nov 25 22:09:42 2013 +0100
@@ -506,7 +506,7 @@
 
 void HWGame::sendCampaignVar(const QByteArray &varToSend)
 {
-    QString varToFind(varToSend);
+    QString varToFind = QString::fromUtf8(varToSend);
     QSettings teamfile(QString("physfs://Teams/%1.hwt").arg(campaignTeam), QSettings::IniFormat, 0);
     teamfile.setIniCodec("UTF-8");
     QString varValue = teamfile.value("Campaign " + campaign + "/" + varToFind, "").toString();
diff -r b8b7ef99a084 -r 563a34cd8398 hedgewars/uScript.pas
--- a/hedgewars/uScript.pas	Mon Nov 25 10:12:18 2013 +0100
+++ b/hedgewars/uScript.pas	Mon Nov 25 22:09:42 2013 +0100
@@ -1791,7 +1791,7 @@
     if (lua_gettop(L) <> 1) then
         LuaError('Lua: Wrong number of parameters passed to GetCampaignVar!')
     else
-        SendIPCAndWaitReply('V?' + lua_tostring(L, 1));
+        SendIPCAndWaitReply('V?' + lua_tostring(L, 1) + #0);
     lua_pushstring(L, str2pchar(CampaignVariable));
     lc_getcampaignvar := 1;
 end;
diff -r b8b7ef99a084 -r 563a34cd8398 share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/global_functions.lua
--- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/global_functions.lua	Mon Nov 25 10:12:18 2013 +0100
+++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/global_functions.lua	Mon Nov 25 22:09:42 2013 +0100
@@ -5,9 +5,10 @@
 	if tonumber(GetCampaignVar("MainMissionsStatus")) then
 		status = GetCampaignVar("MainMissionsStatus")
 	end
-	if i == 1 then
-		status = "1"..status:sub(planetNum+1)
-	elseif i == status:len() then
+
+	if planetNum == 1 then
+		status = "1"..status:sub(2)
+	elseif planetNum == status:len() then
 		status = status:sub(1,planetNum-1).."1"
 	else
 		status = status:sub(1,planetNum-1).."1"..status:sub(planetNum+1)
@@ -79,9 +80,9 @@
 	if tonumber(GetCampaignVar("SideMissionsBonuses")) then
 		bonus = GetCampaignVar("SideMissionsBonuses")
 	end
-	if i == 1 then
-		bonus = times..bonus:sub(index+1)
-	elseif i == bonus:len() then
+	if index == 1 then
+		bonus = times..bonus:sub(2)
+	elseif index == bonus:len() then
 		bonus = bonus:sub(1,index-1)..times
 	else
 		bonus = bonus:sub(1,index-1)..times..bonus:sub(index+1)