QTfrontend/campaign.cpp
branchspacecampaign
changeset 9278 33a30ce9782f
parent 9275 3df990e2ee0e
child 9284 13b76fa362b4
equal deleted inserted replaced
9275:3df990e2ee0e 9278:33a30ce9782f
    16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    17  */
    17  */
    18 
    18 
    19 #include "campaign.h"
    19 #include "campaign.h"
    20 #include "hwconsts.h"
    20 #include "hwconsts.h"
       
    21 #include "DataManager.h"
    21 #include <QSettings>
    22 #include <QSettings>
    22 #include <QMap>
    23 #include <QMap>
    23 #include <QDebug>
    24 #include <QDebug>
       
    25 #include <QObject>
    24 
    26 
    25 QStringList getCampMissionList(QString & campaign)
    27 QStringList getCampMissionList(QString & campaign)
    26 {
    28 {
    27     QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0);
    29     QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0);
    28     campfile.setIniCodec("UTF-8");
    30     campfile.setIniCodec("UTF-8");
    73 		}
    75 		}
    74 	}
    76 	}
    75 	return missionList;
    77 	return missionList;
    76 }
    78 }
    77 
    79 
    78 unsigned int getCampProgress(QString & teamName, QString & campName)
    80 QStringList getDescriptions(QString & campaignName, QString & teamName)
    79 {
    81 {    
    80     QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
    82     QStringList descriptionList;
    81     teamfile.setIniCodec("UTF-8");
       
    82     return teamfile.value("Campaign " + campName + "/Progress", 0).toInt();
       
    83 }
       
    84 
       
    85 QMap<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName)
       
    86 {
       
    87 	QMap<QString,QString> hash;
       
    88 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
    83 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
    89     teamfile.setIniCodec("UTF-8");
    84     teamfile.setIniCodec("UTF-8");
    90     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
    85     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
    91     qDebug("HERE is progress : %d",progress);
    86     qDebug("HERE is progress : %d",progress);
    92     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
    87     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
    95     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
    90     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
    96     campfile.setIniCodec("UTF-8");
    91     campfile.setIniCodec("UTF-8");
    97     unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
    92     unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
    98     qDebug("HERE is number of missions : %d",missionsNumber);  
    93     qDebug("HERE is number of missions : %d",missionsNumber);  
    99     
    94     
       
    95     
       
    96     DataManager & dataMgr = DataManager::instance();
       
    97         // get locale
       
    98         QSettings settings(dataMgr.settingsFileName(),
       
    99                            QSettings::IniFormat);
       
   100         QString loc = settings.value("misc/locale", "").toString();
       
   101         if (loc.isEmpty())
       
   102             loc = QLocale::system().name();
       
   103         QString campaignDescFile = QString("physfs://Locale/campaigns_" + loc + ".txt");
       
   104         // if file is non-existant try with language only
       
   105         if (!QFile::exists(campaignDescFile))
       
   106             campaignDescFile = QString("physfs://Locale/campaigns_" + loc.remove(QRegExp("_.*$")) + ".txt");
       
   107 
       
   108         // fallback if file for current locale is non-existant
       
   109         if (!QFile::exists(campaignDescFile))
       
   110             campaignDescFile = QString("physfs://Locale/campaigns_en.txt");
       
   111 
       
   112         QSettings m_info(campaignDescFile, QSettings::IniFormat, 0);
       
   113         m_info.setIniCodec("UTF-8");
       
   114     
       
   115     if(progress>=0 and unlockedMissions==0)
       
   116     {
       
   117 		for(unsigned int i=progress+1;i>0;i--)
       
   118 		{
       
   119 			//update descruiptions here
       
   120 			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
       
   121                                             QObject::tr("No description available")).toString();
       
   122 		}
       
   123 	} 
       
   124 	else if(unlockedMissions>0)
       
   125 	{
       
   126 		qDebug("IN HERE !!!");  
       
   127 		for(unsigned int i=1;i<=unlockedMissions;i++)
       
   128 		{
       
   129 			QString missionNum = QString("%1").arg(i);
       
   130 			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
       
   131                                             QObject::tr("No description available")).toString();
       
   132 		}
       
   133 	}
       
   134 	return descriptionList;
       
   135 }
       
   136 
       
   137 unsigned int getCampProgress(QString & teamName, QString & campName)
       
   138 {
       
   139     QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
       
   140     teamfile.setIniCodec("UTF-8");
       
   141     return teamfile.value("Campaign " + campName + "/Progress", 0).toInt();
       
   142 }
       
   143 
       
   144 QMap<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName)
       
   145 {
       
   146 	QMap<QString,QString> hash;
       
   147 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
       
   148     teamfile.setIniCodec("UTF-8");
       
   149     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
       
   150     qDebug("HERE is progress : %d",progress);
       
   151     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
       
   152     qDebug("HERE is unlocked missions : %d",unlockedMissions);
       
   153     
       
   154     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
       
   155     campfile.setIniCodec("UTF-8");
       
   156     unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
       
   157     qDebug("HERE is number of missions : %d",missionsNumber);  
       
   158     
   100     if(progress>=0 and unlockedMissions==0)
   159     if(progress>=0 and unlockedMissions==0)
   101     {
   160     {
   102 		for(unsigned int i=1;i<=progress+1;i++)
   161 		for(unsigned int i=1;i<=progress+1;i++)
   103 		{
   162 		{
   104 			hash[getCampaignScript(campaignName,i)] = campfile.value(QString("Mission %1/Name").arg(i)).toString();
   163 			hash[getCampaignScript(campaignName,i)] = campfile.value(QString("Mission %1/Name").arg(i)).toString();