# 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)