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