author | unc0rr |
Thu, 26 Jan 2017 14:45:44 +0300 | |
changeset 12150 | a482c7a5f6e3 |
parent 11963 | de66192866d3 |
child 12310 | d3a52e51efd4 |
permissions | -rw-r--r-- |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
1 |
/* |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
2 |
* Hedgewars, a free turn based strategy game |
11046 | 3 |
* Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
4 |
* |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License as published by |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
7 |
* the Free Software Foundation; version 2 of the License |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
8 |
* |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
13 |
* |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
10108
c68cf030eded
update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents:
10017
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
17 |
*/ |
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
18 |
|
9000
af202eff659c
remove about 45 useless #include statements from campain.* - copypasta ftw, eh? :p
sheepluva
parents:
8434
diff
changeset
|
19 |
#include "campaign.h" |
af202eff659c
remove about 45 useless #include statements from campain.* - copypasta ftw, eh? :p
sheepluva
parents:
8434
diff
changeset
|
20 |
#include "hwconsts.h" |
9278
33a30ce9782f
this seems to works, still wip
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9275
diff
changeset
|
21 |
#include "DataManager.h" |
7201
dc17ffdf0702
The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents:
diff
changeset
|
22 |
#include <QSettings> |
9278
33a30ce9782f
this seems to works, still wip
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9275
diff
changeset
|
23 |
#include <QObject> |
9292
187ce630dddc
y! code clean up :)
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9290
diff
changeset
|
24 |
#include <QLocale> |
8434 | 25 |
|
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
26 |
QSettings* getCampTeamFile(QString & campaignName, QString & teamName) |
9294
f9b31c3efd35
added deafult image if not one available in campaign
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9292
diff
changeset
|
27 |
{ |
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
28 |
QSettings* teamfile = new QSettings(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
29 |
teamfile->setIniCodec("UTF-8"); |
9821
7501208fd025
check if save from old campaign name scheme exists and if so rename it to use _ instead of spaces -see issue 722
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9308
diff
changeset
|
30 |
// if entry not found check if there is written without _ |
7501208fd025
check if save from old campaign name scheme exists and if so rename it to use _ instead of spaces -see issue 722
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9308
diff
changeset
|
31 |
// if then is found rename it to use _ |
7501208fd025
check if save from old campaign name scheme exists and if so rename it to use _ instead of spaces -see issue 722
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9308
diff
changeset
|
32 |
QString spaceCampName = campaignName; |
7501208fd025
check if save from old campaign name scheme exists and if so rename it to use _ instead of spaces -see issue 722
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9308
diff
changeset
|
33 |
spaceCampName = spaceCampName.replace(QString("_"),QString(" ")); |
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
34 |
if (!teamfile->childGroups().contains("Campaign " + campaignName) and |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
35 |
teamfile->childGroups().contains("Campaign " + spaceCampName)){ |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
36 |
teamfile->beginGroup("Campaign " + spaceCampName); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
37 |
QStringList keys = teamfile->childKeys(); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
38 |
teamfile->endGroup(); |
10017 | 39 |
for (int i=0;i<keys.size();i++) { |
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
40 |
QVariant value = teamfile->value("Campaign " + spaceCampName + "/" + keys[i]); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
41 |
teamfile->setValue("Campaign " + campaignName + "/" + keys[i], value); |
10017 | 42 |
} |
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
43 |
teamfile->remove("Campaign " + spaceCampName); |
10017 | 44 |
} |
45 |
||
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
46 |
return teamfile; |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
47 |
} |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
48 |
|
11956
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
49 |
/** |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
50 |
Returns true if the specified mission has been completed |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
51 |
campaignName: Name of the campaign in question |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
52 |
missionInList: QComboBox index of the mission as selected in the mission widget |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
53 |
teamName: Name of the playing team |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
54 |
*/ |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
55 |
bool isMissionWon(QString & campaignName, int missionInList, QString & teamName) |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
56 |
{ |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
57 |
QSettings* teamfile = getCampTeamFile(campaignName, teamName); |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
58 |
int progress = teamfile->value("Campaign " + campaignName + "/Progress", 0).toInt(); |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
59 |
int unlockedMissions = teamfile->value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt(); |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
60 |
if(progress>0 and unlockedMissions==0) |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
61 |
{ |
11961
221b38978401
Seperate campaign victories from campaign mission victories
Wuzzy <almikes@aol.com>
parents:
11959
diff
changeset
|
62 |
QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0); |
221b38978401
Seperate campaign victories from campaign mission victories
Wuzzy <almikes@aol.com>
parents:
11959
diff
changeset
|
63 |
campfile.setIniCodec("UTF-8"); |
221b38978401
Seperate campaign victories from campaign mission victories
Wuzzy <almikes@aol.com>
parents:
11959
diff
changeset
|
64 |
int totalMissions = campfile.value("MissionNum", 1).toInt(); |
221b38978401
Seperate campaign victories from campaign mission victories
Wuzzy <almikes@aol.com>
parents:
11959
diff
changeset
|
65 |
return (progress > (progress - missionInList)) || (progress >= totalMissions); |
11956
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
66 |
} |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
67 |
else if(unlockedMissions>0) |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
68 |
{ |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
69 |
int fileMissionId = missionInList + 1; |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
70 |
int actualMissionId = teamfile->value(QString("Campaign %1/Mission%2").arg(campaignName, QString::number(fileMissionId)), false).toInt(); |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
71 |
return teamfile->value(QString("Campaign %1/Mission%2Won").arg(campaignName, QString::number(actualMissionId)), false).toBool(); |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
72 |
} |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
73 |
else |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
74 |
return false; |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
75 |
} |
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
76 |
|
b05db9ca6e1c
Add support for storing and displaying success of campaign missions
Wuzzy <almikes@aol.com>
parents:
11953
diff
changeset
|
77 |
/** Returns true if the campaign has been won by the team */ |
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
78 |
bool isCampWon(QString & campaignName, QString & teamName) |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
79 |
{ |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
80 |
QSettings* teamfile = getCampTeamFile(campaignName, teamName); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
81 |
bool won = teamfile->value("Campaign " + campaignName + "/Won", false).toBool(); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
82 |
return won; |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
83 |
} |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
84 |
|
11962 | 85 |
QSettings* getCampMetaInfo() |
86 |
{ |
|
87 |
DataManager & dataMgr = DataManager::instance(); |
|
88 |
// get locale |
|
89 |
QSettings settings(dataMgr.settingsFileName(), |
|
90 |
QSettings::IniFormat); |
|
91 |
QString loc = settings.value("misc/locale", "").toString(); |
|
92 |
if (loc.isEmpty()) |
|
93 |
loc = QLocale::system().name(); |
|
94 |
QString campaignDescFile = QString("physfs://Locale/campaigns_" + loc + ".txt"); |
|
95 |
// if file is non-existant try with language only |
|
96 |
if (!QFile::exists(campaignDescFile)) |
|
97 |
campaignDescFile = QString("physfs://Locale/campaigns_" + loc.remove(QRegExp("_.*$")) + ".txt"); |
|
98 |
||
99 |
// fallback if file for current locale is non-existant |
|
100 |
if (!QFile::exists(campaignDescFile)) |
|
101 |
campaignDescFile = QString("physfs://Locale/campaigns_en.txt"); |
|
102 |
||
103 |
QSettings* m_info = new QSettings(campaignDescFile, QSettings::IniFormat, 0); |
|
104 |
m_info->setIniCodec("UTF-8"); |
|
105 |
||
106 |
return m_info; |
|
107 |
} |
|
108 |
||
109 |
/** Returns the localized campaign name */ |
|
110 |
QString getRealCampName(QString & campaignName) |
|
111 |
{ |
|
11963
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
112 |
QString campaignNameOrig = campaignName; |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
113 |
QString campaignNameSpaces = campaignName.replace(QString("_"), QString(" ")); |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
114 |
return getCampMetaInfo()->value(campaignNameOrig+".name", campaignNameSpaces).toString(); |
11962 | 115 |
} |
116 |
||
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
117 |
QList<MissionInfo> getCampMissionList(QString & campaignName, QString & teamName) |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
118 |
{ |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
119 |
QList<MissionInfo> missionInfoList; |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
120 |
QSettings* teamfile = getCampTeamFile(campaignName, teamName); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
121 |
|
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
122 |
int progress = teamfile->value("Campaign " + campaignName + "/Progress", 0).toInt(); |
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
123 |
int unlockedMissions = teamfile->value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt(); |
10017 | 124 |
|
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
125 |
QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0); |
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
126 |
campfile.setIniCodec("UTF-8"); |
10017 | 127 |
|
11962 | 128 |
QSettings* m_info = getCampMetaInfo(); |
10017 | 129 |
|
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
130 |
if(progress>=0 and unlockedMissions==0) |
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
131 |
{ |
10017 | 132 |
for(unsigned int i=progress+1;i>0;i--) |
133 |
{ |
|
134 |
MissionInfo missionInfo; |
|
135 |
QString script = campfile.value(QString("Mission %1/Script").arg(i)).toString(); |
|
11959
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
136 |
if(!script.isNull()) { |
11963
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
137 |
missionInfo.script = script; |
11959
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
138 |
missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString(); |
11963
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
139 |
QString scriptPrefix = campaignName+"-"+ script.replace(QString(".lua"),QString("")); |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
140 |
missionInfo.realName = m_info->value(scriptPrefix+".name", missionInfo.name).toString(); |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
141 |
missionInfo.description = m_info->value(scriptPrefix + ".desc", |
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
142 |
QObject::tr("No description available")).toString(); |
11959
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
143 |
QString image = campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png")); |
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
144 |
missionInfo.image = ":/res/campaign/"+campaignName+"/"+image; |
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
145 |
if (!QFile::exists(missionInfo.image)) |
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
146 |
missionInfo.image = ":/res/CampaignDefault.png"; |
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
147 |
missionInfoList.append(missionInfo); |
62be63822a96
Fix final mission of Progress-based campaigns (like ACF) not being recognized as finished
Wuzzy <almikes@aol.com>
parents:
11956
diff
changeset
|
148 |
} |
10017 | 149 |
} |
150 |
} |
|
151 |
else if(unlockedMissions>0) |
|
152 |
{ |
|
153 |
for(int i=1;i<=unlockedMissions;i++) |
|
154 |
{ |
|
155 |
QString missionNum = QString("%1").arg(i); |
|
11953
6da9bb4b3449
Show check marks for campaigns with Won=true
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
156 |
int missionNumber = teamfile->value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt(); |
10017 | 157 |
MissionInfo missionInfo; |
158 |
QString script = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString(); |
|
9308
4bddcc1a1450
merge and changed also spacecampaign name
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9294
diff
changeset
|
159 |
missionInfo.script = script; |
11963
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
160 |
missionInfo.name = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString(); |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
161 |
QString scriptPrefix = campaignName+"-"+ script.replace(QString(".lua"),QString("")); |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
162 |
missionInfo.realName = m_info->value(scriptPrefix+".name", missionInfo.name).toString(); |
de66192866d3
Make campaign mission names translatable
Wuzzy <almikes@aol.com>
parents:
11962
diff
changeset
|
163 |
missionInfo.description = m_info->value(scriptPrefix + ".desc", |
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
164 |
QObject::tr("No description available")).toString(); |
9294
f9b31c3efd35
added deafult image if not one available in campaign
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9292
diff
changeset
|
165 |
QString image = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString().replace(QString(".lua"),QString(".png")); |
f9b31c3efd35
added deafult image if not one available in campaign
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9292
diff
changeset
|
166 |
missionInfo.image = ":/res/campaign/"+campaignName+"/"+image; |
f9b31c3efd35
added deafult image if not one available in campaign
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9292
diff
changeset
|
167 |
if (!QFile::exists(missionInfo.image)) |
10017 | 168 |
missionInfo.image = ":/res/CampaignDefault.png"; |
169 |
missionInfoList.append(missionInfo); |
|
170 |
} |
|
171 |
} |
|
172 |
return missionInfoList; |
|
9290
478aa681e702
this seems to work ok, but I have to clean up the code
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9286
diff
changeset
|
173 |
} |