15 * along with this program; if not, write to the Free Software |
15 * along with this program; if not, write to the Free Software |
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 |
|
21 #include "hwconsts.h" |
20 #include "hwconsts.h" |
22 |
|
23 #include <QSettings> |
21 #include <QSettings> |
24 |
22 #include <QHash> |
|
23 #include <QDebug> |
25 |
24 |
26 QStringList getCampMissionList(QString & campaign) |
25 QStringList getCampMissionList(QString & campaign) |
27 { |
26 { |
28 QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0); |
27 QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0); |
29 campfile.setIniCodec("UTF-8"); |
28 campfile.setIniCodec("UTF-8"); |
42 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
41 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
43 teamfile.setIniCodec("UTF-8"); |
42 teamfile.setIniCodec("UTF-8"); |
44 return teamfile.value("Campaign " + campName + "/Progress", 0).toInt(); |
43 return teamfile.value("Campaign " + campName + "/Progress", 0).toInt(); |
45 } |
44 } |
46 |
45 |
|
46 QHash<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName) |
|
47 { |
|
48 QHash<QString,QString> hash; |
|
49 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
|
50 teamfile.setIniCodec("UTF-8"); |
|
51 unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt(); |
|
52 qDebug("HERE is progress : %d",progress); |
|
53 unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt(); |
|
54 qDebug("HERE is unlocked missions : %d",unlockedMissions); |
|
55 |
|
56 QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0); |
|
57 campfile.setIniCodec("UTF-8"); |
|
58 unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt(); |
|
59 qDebug("HERE is number of missions : %d",missionsNumber); |
|
60 |
|
61 if(progress>0) |
|
62 { |
|
63 for(unsigned int i=1;i<=missionsNumber;i++) |
|
64 { |
|
65 hash[getCampaignScript(campaignName,i)] = campfile.value(QString("Mission %1/Name").arg(i)).toString(); |
|
66 } |
|
67 } |
|
68 else if(unlockedMissions>0) |
|
69 { |
|
70 for(unsigned int i=1;i<=unlockedMissions;i++) |
|
71 { |
|
72 int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+i, -1).toInt(); |
|
73 hash[getCampaignScript(campaignName,missionNumber)] = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString(); |
|
74 } |
|
75 } |
|
76 return hash; |
|
77 } |
|
78 |
|
79 QStringList getUnlockedMissions(QString & teamName, QString & campName) |
|
80 { |
|
81 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
|
82 teamfile.setIniCodec("UTF-8"); |
|
83 unsigned int mNum = teamfile.value("UnlockedMissions", 0).toInt(); |
|
84 |
|
85 QStringList missionList; |
|
86 for (unsigned int i = 0; i < mNum; i++) |
|
87 { |
|
88 missionList += teamfile.value(QString("Mission%1").arg(i + 1)).toString(); |
|
89 } |
|
90 return missionList; |
|
91 } |
|
92 |
47 QString getCampaignScript(QString campaign, unsigned int mNum) |
93 QString getCampaignScript(QString campaign, unsigned int mNum) |
48 { |
94 { |
49 QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0); |
95 QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0); |
50 campfile.setIniCodec("UTF-8"); |
96 campfile.setIniCodec("UTF-8"); |
51 return campfile.value(QString("Mission %1/Script").arg(mNum)).toString(); |
97 return campfile.value(QString("Mission %1/Script").arg(mNum)).toString(); |