QTfrontend/campaign.cpp
changeset 11954 62be63822a96
parent 11951 b05db9ca6e1c
child 11956 221b38978401
equal deleted inserted replaced
11953:c8457c7f10f4 11954:62be63822a96
    53     teamName: Name of the playing team
    53     teamName: Name of the playing team
    54 */
    54 */
    55 bool isMissionWon(QString & campaignName, int missionInList, QString & teamName)
    55 bool isMissionWon(QString & campaignName, int missionInList, QString & teamName)
    56 {
    56 {
    57     QSettings* teamfile = getCampTeamFile(campaignName, teamName);
    57     QSettings* teamfile = getCampTeamFile(campaignName, teamName);
       
    58     int won = teamfile->value("Campaign " + campaignName + "/Won", false).toBool();
    58     int progress = teamfile->value("Campaign " + campaignName + "/Progress", 0).toInt();
    59     int progress = teamfile->value("Campaign " + campaignName + "/Progress", 0).toInt();
    59     int unlockedMissions = teamfile->value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
    60     int unlockedMissions = teamfile->value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
    60     if(progress>0 and unlockedMissions==0)
    61     if(progress>0 and unlockedMissions==0)
    61     {
    62     {
    62         return progress > (progress - missionInList);
    63         return (progress > (progress - missionInList)) || won;
    63     }
    64     }
    64     else if(unlockedMissions>0)
    65     else if(unlockedMissions>0)
    65     {
    66     {
    66         int fileMissionId = missionInList + 1;
    67         int fileMissionId = missionInList + 1;
    67         int actualMissionId = teamfile->value(QString("Campaign %1/Mission%2").arg(campaignName, QString::number(fileMissionId)), false).toInt();
    68         int actualMissionId = teamfile->value(QString("Campaign %1/Mission%2").arg(campaignName, QString::number(fileMissionId)), false).toInt();
   112     if(progress>=0 and unlockedMissions==0)
   113     if(progress>=0 and unlockedMissions==0)
   113     {
   114     {
   114         for(unsigned int i=progress+1;i>0;i--)
   115         for(unsigned int i=progress+1;i>0;i--)
   115         {
   116         {
   116             MissionInfo missionInfo;
   117             MissionInfo missionInfo;
   117             missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString();
       
   118             QString script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
   118             QString script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
   119             missionInfo.script = script;
   119             if(!script.isNull()) {
   120             missionInfo.description = m_info.value(campaignName+"-"+ script.replace(QString(".lua"),QString("")) + ".desc",
   120                 missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString();
       
   121                 missionInfo.script = script;
       
   122                 missionInfo.description = m_info.value(campaignName+"-"+ script.replace(QString(".lua"),QString("")) + ".desc",
   121                                             QObject::tr("No description available")).toString();
   123                                             QObject::tr("No description available")).toString();
   122             QString image = campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
   124                 QString image = campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
   123             missionInfo.image = ":/res/campaign/"+campaignName+"/"+image;
   125                 missionInfo.image = ":/res/campaign/"+campaignName+"/"+image;
   124             if (!QFile::exists(missionInfo.image))
   126                 if (!QFile::exists(missionInfo.image))
   125                 missionInfo.image = ":/res/CampaignDefault.png";
   127                     missionInfo.image = ":/res/CampaignDefault.png";
   126             missionInfoList.append(missionInfo);
   128                 missionInfoList.append(missionInfo);
       
   129             }
   127         }
   130         }
   128     }
   131     }
   129     else if(unlockedMissions>0)
   132     else if(unlockedMissions>0)
   130     {
   133     {
   131         for(int i=1;i<=unlockedMissions;i++)
   134         for(int i=1;i<=unlockedMissions;i++)