QTfrontend/campaign.cpp
branchspacecampaign
changeset 9290 478aa681e702
parent 9286 c89b992ff5fe
child 9292 187ce630dddc
equal deleted inserted replaced
9288:180cab35c9c1 9290:478aa681e702
    75 		}
    75 		}
    76 	}
    76 	}
    77 	return missionList;
    77 	return missionList;
    78 }
    78 }
    79 
    79 
    80 QStringList getDescriptions(QString & campaignName, QString & teamName)
    80 QList<MissionInfo> getCampMissionList3(QString & campaignName, QString & teamName)
    81 {    
    81 {    
    82     QStringList descriptionList;
    82 	// TODO: add default image if there isn't an available one
    83 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
    83     QList<MissionInfo> missionInfoList;
    84     teamfile.setIniCodec("UTF-8");
    84 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
    85     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
    85     teamfile.setIniCodec("UTF-8");
    86     qDebug("HERE is progress : %d",progress);
    86     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
    87     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
    87     qDebug("HERE is progress : %d",progress);
    88     qDebug("HERE is unlocked missions : %d",unlockedMissions);
    88     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
    89     
    89     qDebug("HERE is unlocked missions : %d",unlockedMissions);
    90     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
    90     
    91     campfile.setIniCodec("UTF-8");
    91     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
    92     unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
    92     campfile.setIniCodec("UTF-8");
    93     qDebug("HERE is number of missions : %d",missionsNumber);  
    93     unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
    94     
    94     qDebug("HERE is number of missions : %d",missionsNumber);  
    95     
    95     
    96     DataManager & dataMgr = DataManager::instance();
    96     DataManager & dataMgr = DataManager::instance();
    97         // get locale
    97         // get locale
    98         QSettings settings(dataMgr.settingsFileName(),
    98         QSettings settings(dataMgr.settingsFileName(),
    99                            QSettings::IniFormat);
    99                            QSettings::IniFormat);
   114     
   114     
   115     if(progress>=0 and unlockedMissions==0)
   115     if(progress>=0 and unlockedMissions==0)
   116     {
   116     {
   117 		for(unsigned int i=progress+1;i>0;i--)
   117 		for(unsigned int i=progress+1;i>0;i--)
   118 		{
   118 		{
   119 			//update descruiptions here
   119 			MissionInfo missionInfo;
   120 			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
   120 			missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString();
       
   121 			missionInfo.description = m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
   121                                             QObject::tr("No description available")).toString();
   122                                             QObject::tr("No description available")).toString();
       
   123             missionInfo.script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
       
   124             missionInfo.image = campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
       
   125 			missionInfoList.append(missionInfo);
   122 		}
   126 		}
   123 	} 
   127 	} 
   124 	else if(unlockedMissions>0)
   128 	else if(unlockedMissions>0)
   125 	{
   129 	{
   126 		qDebug("IN HERE !!!");  
   130 		qDebug("IN HERE !!!");  
   127 		for(unsigned int i=1;i<=unlockedMissions;i++)
   131 		for(unsigned int i=1;i<=unlockedMissions;i++)
   128 		{
   132 		{
   129 			QString missionNum = QString("%1").arg(i);
   133 			QString missionNum = QString("%1").arg(i);
   130 			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
   134 			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
   131 			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,missionNumber) + ".desc",
   135 			MissionInfo missionInfo;
       
   136 			missionInfo.name = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString();
       
   137 			missionInfo.description = m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,missionNumber) + ".desc",
   132                                             QObject::tr("No description available")).toString();
   138                                             QObject::tr("No description available")).toString();
   133 		}
   139             missionInfo.script = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString();
   134 	}
   140             missionInfo.image = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString().replace(QString(".lua"),QString(".png"));
   135 	return descriptionList;
   141 			missionInfoList.append(missionInfo);
   136 }
   142 		}
   137 
   143 	}
   138 QStringList getImages(QString & campaignName, QString & teamName)
   144 	return missionInfoList;
       
   145 }
       
   146 
       
   147 QStringList getDescriptions(QString & campaignName, QString & teamName)
   139 {    
   148 {    
   140     QStringList imageList;
   149     QStringList descriptionList;
   141 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
   150 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
   142     teamfile.setIniCodec("UTF-8");
   151     teamfile.setIniCodec("UTF-8");
   143     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
   152     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
   144     qDebug("HERE is progress : %d",progress);
   153     qDebug("HERE is progress : %d",progress);
   145     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
   154     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
   173     if(progress>=0 and unlockedMissions==0)
   182     if(progress>=0 and unlockedMissions==0)
   174     {
   183     {
   175 		for(unsigned int i=progress+1;i>0;i--)
   184 		for(unsigned int i=progress+1;i>0;i--)
   176 		{
   185 		{
   177 			//update descruiptions here
   186 			//update descruiptions here
       
   187 			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
       
   188                                             QObject::tr("No description available")).toString();
       
   189 		}
       
   190 	} 
       
   191 	else if(unlockedMissions>0)
       
   192 	{
       
   193 		qDebug("IN HERE !!!");  
       
   194 		for(unsigned int i=1;i<=unlockedMissions;i++)
       
   195 		{
       
   196 			QString missionNum = QString("%1").arg(i);
       
   197 			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
       
   198 			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,missionNumber) + ".desc",
       
   199                                             QObject::tr("No description available")).toString();
       
   200 		}
       
   201 	}
       
   202 	return descriptionList;
       
   203 }
       
   204 
       
   205 QStringList getImages(QString & campaignName, QString & teamName)
       
   206 {    
       
   207     QStringList imageList;
       
   208 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
       
   209     teamfile.setIniCodec("UTF-8");
       
   210     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
       
   211     qDebug("HERE is progress : %d",progress);
       
   212     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
       
   213     qDebug("HERE is unlocked missions : %d",unlockedMissions);
       
   214     
       
   215     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
       
   216     campfile.setIniCodec("UTF-8");
       
   217     unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
       
   218     qDebug("HERE is number of missions : %d",missionsNumber);  
       
   219     
       
   220     
       
   221     DataManager & dataMgr = DataManager::instance();
       
   222         // get locale
       
   223         QSettings settings(dataMgr.settingsFileName(),
       
   224                            QSettings::IniFormat);
       
   225         QString loc = settings.value("misc/locale", "").toString();
       
   226         if (loc.isEmpty())
       
   227             loc = QLocale::system().name();
       
   228         QString campaignDescFile = QString("physfs://Locale/campaigns_" + loc + ".txt");
       
   229         // if file is non-existant try with language only
       
   230         if (!QFile::exists(campaignDescFile))
       
   231             campaignDescFile = QString("physfs://Locale/campaigns_" + loc.remove(QRegExp("_.*$")) + ".txt");
       
   232 
       
   233         // fallback if file for current locale is non-existant
       
   234         if (!QFile::exists(campaignDescFile))
       
   235             campaignDescFile = QString("physfs://Locale/campaigns_en.txt");
       
   236 
       
   237         QSettings m_info(campaignDescFile, QSettings::IniFormat, 0);
       
   238         m_info.setIniCodec("UTF-8");
       
   239     
       
   240     if(progress>=0 and unlockedMissions==0)
       
   241     {
       
   242 		for(unsigned int i=progress+1;i>0;i--)
       
   243 		{
       
   244 			//update descruiptions here
   178 			imageList += campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
   245 			imageList += campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
   179 		}
   246 		}
   180 	} 
   247 	} 
   181 	else if(unlockedMissions>0)
   248 	else if(unlockedMissions>0)
   182 	{
   249 	{