--- a/QTfrontend/campaign.cpp Tue Nov 10 18:16:35 2015 +0100
+++ b/QTfrontend/campaign.cpp Tue Nov 10 20:43:13 2015 +0100
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "campaign.h"
@@ -26,14 +26,31 @@
QList<MissionInfo> getCampMissionList(QString & campaignName, QString & teamName)
{
QList<MissionInfo> missionInfoList;
- QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
+ QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
teamfile.setIniCodec("UTF-8");
+
+ // if entry not found check if there is written without _
+ // if then is found rename it to use _
+ QString spaceCampName = campaignName;
+ spaceCampName = spaceCampName.replace(QString("_"),QString(" "));
+ if (!teamfile.childGroups().contains("Campaign " + campaignName) and
+ teamfile.childGroups().contains("Campaign " + spaceCampName)){
+ teamfile.beginGroup("Campaign " + spaceCampName);
+ QStringList keys = teamfile.childKeys();
+ teamfile.endGroup();
+ for (int i=0;i<keys.size();i++) {
+ QVariant value = teamfile.value("Campaign " + spaceCampName + "/" + keys[i]);
+ teamfile.setValue("Campaign " + campaignName + "/" + keys[i], value);
+ }
+ teamfile.remove("Campaign " + spaceCampName);
+ }
+
int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
-
+
QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
campfile.setIniCodec("UTF-8");
-
+
DataManager & dataMgr = DataManager::instance();
// get locale
QSettings settings(dataMgr.settingsFileName(),
@@ -52,42 +69,42 @@
QSettings m_info(campaignDescFile, QSettings::IniFormat, 0);
m_info.setIniCodec("UTF-8");
-
+
if(progress>=0 and unlockedMissions==0)
{
- for(unsigned int i=progress+1;i>0;i--)
- {
- MissionInfo missionInfo;
- missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString();
- QString script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
+ for(unsigned int i=progress+1;i>0;i--)
+ {
+ MissionInfo missionInfo;
+ missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString();
+ QString script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
missionInfo.script = script;
- missionInfo.description = m_info.value(campaignName+"-"+ script.replace(QString(".lua"),QString("")) + ".desc",
+ missionInfo.description = m_info.value(campaignName+"-"+ script.replace(QString(".lua"),QString("")) + ".desc",
QObject::tr("No description available")).toString();
QString image = campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
missionInfo.image = ":/res/campaign/"+campaignName+"/"+image;
if (!QFile::exists(missionInfo.image))
- missionInfo.image = ":/res/CampaignDefault.png";
- missionInfoList.append(missionInfo);
- }
- }
- else if(unlockedMissions>0)
- {
- for(int i=1;i<=unlockedMissions;i++)
- {
- QString missionNum = QString("%1").arg(i);
- int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
- MissionInfo missionInfo;
- missionInfo.name = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString();
- QString script = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString();
+ missionInfo.image = ":/res/CampaignDefault.png";
+ missionInfoList.append(missionInfo);
+ }
+ }
+ else if(unlockedMissions>0)
+ {
+ for(int i=1;i<=unlockedMissions;i++)
+ {
+ QString missionNum = QString("%1").arg(i);
+ int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
+ MissionInfo missionInfo;
+ missionInfo.name = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString();
+ QString script = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString();
missionInfo.script = script;
- missionInfo.description = m_info.value(campaignName+"-"+ script.replace(QString(".lua"),QString("")) + ".desc",
+ missionInfo.description = m_info.value(campaignName+"-"+ script.replace(QString(".lua"),QString("")) + ".desc",
QObject::tr("No description available")).toString();
QString image = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString().replace(QString(".lua"),QString(".png"));
missionInfo.image = ":/res/campaign/"+campaignName+"/"+image;
if (!QFile::exists(missionInfo.image))
- missionInfo.image = ":/res/CampaignDefault.png";
- missionInfoList.append(missionInfo);
- }
- }
- return missionInfoList;
+ missionInfo.image = ":/res/CampaignDefault.png";
+ missionInfoList.append(missionInfo);
+ }
+ }
+ return missionInfoList;
}