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 #include "hwconsts.h" |
20 #include "hwconsts.h" |
|
21 #include "DataManager.h" |
21 #include <QSettings> |
22 #include <QSettings> |
22 #include <QMap> |
23 #include <QMap> |
23 #include <QDebug> |
24 #include <QDebug> |
|
25 #include <QObject> |
24 |
26 |
25 QStringList getCampMissionList(QString & campaign) |
27 QStringList getCampMissionList(QString & campaign) |
26 { |
28 { |
27 QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0); |
29 QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0); |
28 campfile.setIniCodec("UTF-8"); |
30 campfile.setIniCodec("UTF-8"); |
73 } |
75 } |
74 } |
76 } |
75 return missionList; |
77 return missionList; |
76 } |
78 } |
77 |
79 |
78 unsigned int getCampProgress(QString & teamName, QString & campName) |
80 QStringList getDescriptions(QString & campaignName, QString & teamName) |
79 { |
81 { |
80 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
82 QStringList descriptionList; |
81 teamfile.setIniCodec("UTF-8"); |
|
82 return teamfile.value("Campaign " + campName + "/Progress", 0).toInt(); |
|
83 } |
|
84 |
|
85 QMap<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName) |
|
86 { |
|
87 QMap<QString,QString> hash; |
|
88 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
83 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
89 teamfile.setIniCodec("UTF-8"); |
84 teamfile.setIniCodec("UTF-8"); |
90 unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt(); |
85 unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt(); |
91 qDebug("HERE is progress : %d",progress); |
86 qDebug("HERE is progress : %d",progress); |
92 unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt(); |
87 unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt(); |
95 QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0); |
90 QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0); |
96 campfile.setIniCodec("UTF-8"); |
91 campfile.setIniCodec("UTF-8"); |
97 unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt(); |
92 unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt(); |
98 qDebug("HERE is number of missions : %d",missionsNumber); |
93 qDebug("HERE is number of missions : %d",missionsNumber); |
99 |
94 |
|
95 |
|
96 DataManager & dataMgr = DataManager::instance(); |
|
97 // get locale |
|
98 QSettings settings(dataMgr.settingsFileName(), |
|
99 QSettings::IniFormat); |
|
100 QString loc = settings.value("misc/locale", "").toString(); |
|
101 if (loc.isEmpty()) |
|
102 loc = QLocale::system().name(); |
|
103 QString campaignDescFile = QString("physfs://Locale/campaigns_" + loc + ".txt"); |
|
104 // if file is non-existant try with language only |
|
105 if (!QFile::exists(campaignDescFile)) |
|
106 campaignDescFile = QString("physfs://Locale/campaigns_" + loc.remove(QRegExp("_.*$")) + ".txt"); |
|
107 |
|
108 // fallback if file for current locale is non-existant |
|
109 if (!QFile::exists(campaignDescFile)) |
|
110 campaignDescFile = QString("physfs://Locale/campaigns_en.txt"); |
|
111 |
|
112 QSettings m_info(campaignDescFile, QSettings::IniFormat, 0); |
|
113 m_info.setIniCodec("UTF-8"); |
|
114 |
|
115 if(progress>=0 and unlockedMissions==0) |
|
116 { |
|
117 for(unsigned int i=progress+1;i>0;i--) |
|
118 { |
|
119 //update descruiptions here |
|
120 descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc", |
|
121 QObject::tr("No description available")).toString(); |
|
122 } |
|
123 } |
|
124 else if(unlockedMissions>0) |
|
125 { |
|
126 qDebug("IN HERE !!!"); |
|
127 for(unsigned int i=1;i<=unlockedMissions;i++) |
|
128 { |
|
129 QString missionNum = QString("%1").arg(i); |
|
130 descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc", |
|
131 QObject::tr("No description available")).toString(); |
|
132 } |
|
133 } |
|
134 return descriptionList; |
|
135 } |
|
136 |
|
137 unsigned int getCampProgress(QString & teamName, QString & campName) |
|
138 { |
|
139 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
|
140 teamfile.setIniCodec("UTF-8"); |
|
141 return teamfile.value("Campaign " + campName + "/Progress", 0).toInt(); |
|
142 } |
|
143 |
|
144 QMap<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName) |
|
145 { |
|
146 QMap<QString,QString> hash; |
|
147 QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0); |
|
148 teamfile.setIniCodec("UTF-8"); |
|
149 unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt(); |
|
150 qDebug("HERE is progress : %d",progress); |
|
151 unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt(); |
|
152 qDebug("HERE is unlocked missions : %d",unlockedMissions); |
|
153 |
|
154 QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0); |
|
155 campfile.setIniCodec("UTF-8"); |
|
156 unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt(); |
|
157 qDebug("HERE is number of missions : %d",missionsNumber); |
|
158 |
100 if(progress>=0 and unlockedMissions==0) |
159 if(progress>=0 and unlockedMissions==0) |
101 { |
160 { |
102 for(unsigned int i=1;i<=progress+1;i++) |
161 for(unsigned int i=1;i<=progress+1;i++) |
103 { |
162 { |
104 hash[getCampaignScript(campaignName,i)] = campfile.value(QString("Mission %1/Name").arg(i)).toString(); |
163 hash[getCampaignScript(campaignName,i)] = campfile.value(QString("Mission %1/Name").arg(i)).toString(); |