y! code clean up :) spacecampaign
authorPeriklis Ntanasis <pntanasis@gmail.com>
Fri, 28 Jun 2013 22:38:08 +0300
branchspacecampaign
changeset 9292 187ce630dddc
parent 9290 478aa681e702
child 9294 f9b31c3efd35
y! code clean up :)
QTfrontend/campaign.cpp
QTfrontend/campaign.h
QTfrontend/hwform.cpp
QTfrontend/hwform.h
--- a/QTfrontend/campaign.cpp	Fri Jun 28 22:06:57 2013 +0300
+++ b/QTfrontend/campaign.cpp	Fri Jun 28 22:38:08 2013 +0300
@@ -20,78 +20,20 @@
 #include "hwconsts.h"
 #include "DataManager.h"
 #include <QSettings>
-#include <QMap>
-#include <QDebug>
 #include <QObject>
-
-QStringList getCampMissionList(QString & campaign)
-{
-    QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0);
-    campfile.setIniCodec("UTF-8");
-    unsigned int mNum = campfile.value("MissionNum", 0).toInt();
-
-    QStringList missionList;
-    for (unsigned int i = 0; i < mNum; i++)
-    {
-      missionList += campfile.value(QString("Mission %1/Name").arg(i + 1)).toString();
-    }
-    return missionList;
-}
+#include <QLocale>
 
-// works ok
-QStringList getCampMissionList2(QString & campaignName, QString & teamName)
-{    
-    QStringList missionList;
-	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
-    teamfile.setIniCodec("UTF-8");
-    unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
-    qDebug("HERE is progress : %d",progress);
-    unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
-    qDebug("HERE is unlocked missions : %d",unlockedMissions);
-    
-    QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
-    campfile.setIniCodec("UTF-8");
-    unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
-    qDebug("HERE is number of missions : %d",missionsNumber);  
-    
-    if(progress>=0 and unlockedMissions==0)
-    {
-		for(unsigned int i=progress+1;i>0;i--)
-		{
-			missionList += campfile.value(QString("Mission %1/Name").arg(i)).toString();
-		}
-	} 
-	else if(unlockedMissions>0)
-	{
-		qDebug("IN HERE !!!");  
-		for(unsigned int i=1;i<=unlockedMissions;i++)
-		{
-			QString missionNum = QString("%1").arg(i);
-			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
-			qDebug("Campaign %s Mission %d",campaignName.toUtf8().constData(),i);  
-			qDebug("MISSION NUMBER : %d",missionNumber);  
-			missionList += campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString();
-			qDebug(campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString().toUtf8().constData());
-		}
-	}
-	return missionList;
-}
-
-QList<MissionInfo> getCampMissionList3(QString & campaignName, QString & teamName)
+QList<MissionInfo> getCampMissionList(QString & campaignName, QString & teamName)
 {    
 	// TODO: add default image if there isn't an available one
     QList<MissionInfo> missionInfoList;
 	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
     teamfile.setIniCodec("UTF-8");
     unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
-    qDebug("HERE is progress : %d",progress);
     unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
-    qDebug("HERE is unlocked missions : %d",unlockedMissions);
     
     QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
     campfile.setIniCodec("UTF-8");
-    unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
-    qDebug("HERE is number of missions : %d",missionsNumber);  
     
     DataManager & dataMgr = DataManager::instance();
         // get locale
@@ -118,214 +60,27 @@
 		{
 			MissionInfo missionInfo;
 			missionInfo.name = campfile.value(QString("Mission %1/Name").arg(i)).toString();
-			missionInfo.description = m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
+            missionInfo.script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
+			missionInfo.description = m_info.value(campaignName+"-"+ missionInfo.script.replace(QString(".lua"),QString("")) + ".desc",
                                             QObject::tr("No description available")).toString();
-            missionInfo.script = campfile.value(QString("Mission %1/Script").arg(i)).toString();
             missionInfo.image = campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
 			missionInfoList.append(missionInfo);
 		}
 	} 
 	else if(unlockedMissions>0)
 	{
-		qDebug("IN HERE !!!");  
 		for(unsigned int i=1;i<=unlockedMissions;i++)
 		{
 			QString missionNum = QString("%1").arg(i);
 			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
 			MissionInfo missionInfo;
 			missionInfo.name = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString();
-			missionInfo.description = m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,missionNumber) + ".desc",
+            missionInfo.script = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString();
+			missionInfo.description = m_info.value(campaignName+"-"+ missionInfo.script.replace(QString(".lua"),QString("")) + ".desc",
                                             QObject::tr("No description available")).toString();
-            missionInfo.script = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString();
             missionInfo.image = campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString().replace(QString(".lua"),QString(".png"));
 			missionInfoList.append(missionInfo);
 		}
 	}
 	return missionInfoList;
 }
-
-QStringList getDescriptions(QString & campaignName, QString & teamName)
-{    
-    QStringList descriptionList;
-	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
-    teamfile.setIniCodec("UTF-8");
-    unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
-    qDebug("HERE is progress : %d",progress);
-    unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
-    qDebug("HERE is unlocked missions : %d",unlockedMissions);
-    
-    QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
-    campfile.setIniCodec("UTF-8");
-    unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
-    qDebug("HERE is number of missions : %d",missionsNumber);  
-    
-    
-    DataManager & dataMgr = DataManager::instance();
-        // get locale
-        QSettings settings(dataMgr.settingsFileName(),
-                           QSettings::IniFormat);
-        QString loc = settings.value("misc/locale", "").toString();
-        if (loc.isEmpty())
-            loc = QLocale::system().name();
-        QString campaignDescFile = QString("physfs://Locale/campaigns_" + loc + ".txt");
-        // if file is non-existant try with language only
-        if (!QFile::exists(campaignDescFile))
-            campaignDescFile = QString("physfs://Locale/campaigns_" + loc.remove(QRegExp("_.*$")) + ".txt");
-
-        // fallback if file for current locale is non-existant
-        if (!QFile::exists(campaignDescFile))
-            campaignDescFile = QString("physfs://Locale/campaigns_en.txt");
-
-        QSettings m_info(campaignDescFile, QSettings::IniFormat, 0);
-        m_info.setIniCodec("UTF-8");
-    
-    if(progress>=0 and unlockedMissions==0)
-    {
-		for(unsigned int i=progress+1;i>0;i--)
-		{
-			//update descruiptions here
-			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,i) + ".desc",
-                                            QObject::tr("No description available")).toString();
-		}
-	} 
-	else if(unlockedMissions>0)
-	{
-		qDebug("IN HERE !!!");  
-		for(unsigned int i=1;i<=unlockedMissions;i++)
-		{
-			QString missionNum = QString("%1").arg(i);
-			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
-			descriptionList += m_info.value(campaignName+"-"+ getCampaignMissionName(campaignName,missionNumber) + ".desc",
-                                            QObject::tr("No description available")).toString();
-		}
-	}
-	return descriptionList;
-}
-
-QStringList getImages(QString & campaignName, QString & teamName)
-{    
-    QStringList imageList;
-	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
-    teamfile.setIniCodec("UTF-8");
-    unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
-    qDebug("HERE is progress : %d",progress);
-    unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
-    qDebug("HERE is unlocked missions : %d",unlockedMissions);
-    
-    QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
-    campfile.setIniCodec("UTF-8");
-    unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
-    qDebug("HERE is number of missions : %d",missionsNumber);  
-    
-    
-    DataManager & dataMgr = DataManager::instance();
-        // get locale
-        QSettings settings(dataMgr.settingsFileName(),
-                           QSettings::IniFormat);
-        QString loc = settings.value("misc/locale", "").toString();
-        if (loc.isEmpty())
-            loc = QLocale::system().name();
-        QString campaignDescFile = QString("physfs://Locale/campaigns_" + loc + ".txt");
-        // if file is non-existant try with language only
-        if (!QFile::exists(campaignDescFile))
-            campaignDescFile = QString("physfs://Locale/campaigns_" + loc.remove(QRegExp("_.*$")) + ".txt");
-
-        // fallback if file for current locale is non-existant
-        if (!QFile::exists(campaignDescFile))
-            campaignDescFile = QString("physfs://Locale/campaigns_en.txt");
-
-        QSettings m_info(campaignDescFile, QSettings::IniFormat, 0);
-        m_info.setIniCodec("UTF-8");
-    
-    if(progress>=0 and unlockedMissions==0)
-    {
-		for(unsigned int i=progress+1;i>0;i--)
-		{
-			//update descruiptions here
-			imageList += campfile.value(QString("Mission %1/Script").arg(i)).toString().replace(QString(".lua"),QString(".png"));
-		}
-	} 
-	else if(unlockedMissions>0)
-	{
-		qDebug("IN HERE !!!");  
-		for(unsigned int i=1;i<=unlockedMissions;i++)
-		{
-			QString missionNum = QString("%1").arg(i);
-			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+missionNum, -1).toInt();
-			imageList += campfile.value(QString("Mission %1/Script").arg(missionNumber)).toString().replace(QString(".lua"),QString(".png"));
-		}
-	}
-	return imageList;
-}
-
-unsigned int getCampProgress(QString & teamName, QString & campName)
-{
-    QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
-    teamfile.setIniCodec("UTF-8");
-    return teamfile.value("Campaign " + campName + "/Progress", 0).toInt();
-}
-
-QMap<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName)
-{
-	QMap<QString,QString> hash;
-	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
-    teamfile.setIniCodec("UTF-8");
-    unsigned int progress = teamfile.value("Campaign " + campaignName + "/Progress", 0).toInt();
-    qDebug("HERE is progress : %d",progress);
-    unsigned int unlockedMissions = teamfile.value("Campaign " + campaignName + "/UnlockedMissions", 0).toInt();
-    qDebug("HERE is unlocked missions : %d",unlockedMissions);
-    
-    QSettings campfile("physfs://Missions/Campaign/" + campaignName + "/campaign.ini", QSettings::IniFormat, 0);
-    campfile.setIniCodec("UTF-8");
-    unsigned int missionsNumber = campfile.value("MissionNum", 0).toInt();
-    qDebug("HERE is number of missions : %d",missionsNumber);  
-    
-    if(progress>=0 and unlockedMissions==0)
-    {
-		for(unsigned int i=1;i<=progress+1;i++)
-		{
-			hash[getCampaignScript(campaignName,i)] = campfile.value(QString("Mission %1/Name").arg(i)).toString();
-		}
-	} 
-	else if(unlockedMissions>0)
-	{
-		for(unsigned int i=1;i<=unlockedMissions;i++)
-		{
-			int missionNumber = teamfile.value("Campaign " + campaignName + "/Mission"+i, -1).toInt();
-			hash[getCampaignScript(campaignName,missionNumber)] = campfile.value(QString("Mission %1/Name").arg(missionNumber)).toString();
-		}
-	}
-	return hash;
-}
-
-QStringList getUnlockedMissions(QString & teamName, QString & campName)
-{
-	QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
-    teamfile.setIniCodec("UTF-8");
-    unsigned int mNum = teamfile.value("UnlockedMissions", 0).toInt();
-    
-    QStringList missionList;
-    for (unsigned int i = 0; i < mNum; i++)
-    {
-      missionList += teamfile.value(QString("Mission%1").arg(i + 1)).toString();
-    }
-    return missionList;
-}
-
-QString getCampaignScript(QString campaign, unsigned int mNum)
-{
-    QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0);
-    campfile.setIniCodec("UTF-8");
-    return campfile.value(QString("Mission %1/Script").arg(mNum)).toString();
-}
-
-QString getCampaignImage(QString campaign, unsigned int mNum)
-{
-    return getCampaignScript(campaign,mNum).replace(QString(".lua"),QString(".png"));
-}
-
-QString getCampaignMissionName(QString campaign, unsigned int mNum)
-{
-    return getCampaignScript(campaign,mNum).replace(QString(".lua"),QString(""));
-}
-
--- a/QTfrontend/campaign.h	Fri Jun 28 22:06:57 2013 +0300
+++ b/QTfrontend/campaign.h	Fri Jun 28 22:38:08 2013 +0300
@@ -20,7 +20,6 @@
 #define CAMPAIGN_H
 
 #include <QString>
-#include <QStringList>
 
 class MissionInfo
 {
@@ -31,15 +30,6 @@
 		QString image;
 };
 
-QStringList getCampMissionList(QString & campaign);
-unsigned int getCampProgress(QString & teamName, QString & campName);
-QString getCampaignScript(QString campaign, unsigned int mNum);
-QString getCampaignImage(QString campaign, unsigned int mNum);
-QString getCampaignMissionName(QString campaign, unsigned int mNum);
-QMap<QString,QString> getUnlockedMissions2(QString & campaignName, QString & teamName);
-QStringList getCampMissionList2(QString & campaignName, QString & teamName);
-QStringList getDescriptions(QString & campaignName, QString & teamName);
-QStringList getImages(QString & campaignName, QString & teamName);
-QList<MissionInfo> getCampMissionList3(QString & campaignName, QString & teamName);
+QList<MissionInfo> getCampMissionList(QString & campaignName, QString & teamName);
 
 #endif
--- a/QTfrontend/hwform.cpp	Fri Jun 28 22:06:57 2013 +0300
+++ b/QTfrontend/hwform.cpp	Fri Jun 28 22:38:08 2013 +0300
@@ -1722,11 +1722,7 @@
 void HWForm::StartCampaign()
 {
     CreateGame(0, 0, 0);
-	// what if no picture? :D
-    //QComboBox *combo = ui.pageCampaign->CBMission;
     QString camp = ui.pageCampaign->CBCampaign->currentText();
-    //unsigned int mNum = combo->count() - combo->currentIndex();
-    //QString miss = getCampaignScript(camp, mNum);
     QString miss = campaignMissionInfo[ui.pageCampaign->CBMission->currentIndex()].script;
     QString campTeam = ui.pageCampaign->CBTeam->currentText();
 
@@ -1896,43 +1892,29 @@
 
 void HWForm::UpdateCampaignPage(int index)
 {
-	qDebug("UpdateCampaignPage");
     Q_UNUSED(index);
     HWTeam team(ui.pageCampaign->CBTeam->currentText());
-    ui.pageCampaign->CBMission->clear();
-
     QString campaignName = ui.pageCampaign->CBCampaign->currentText();
-    QString tName = team.name();
-    QStringList missionEntries = getCampMissionList2(campaignName,tName);
+    QString tName = team.name();    
     
-    campaignMissionInfo = getCampMissionList3(campaignName,tName);
-
-	//unlockedMissionsHash = getUnlockedMissions2(campaignName, tName);
-    // if the campaign name changes update the campaignMissionDescriptions list
-    // this will be used later in UpdateCampaignPageMission() to update
-    // the mission description in the campaign page
-	campaignMissionDescriptions.clear();
-	campaignMissionImages.clear();
+    campaignMissionInfo = getCampMissionList(campaignName,tName);    
 	ui.pageCampaign->CBMission->clear();
-    campaignMissionDescriptions = getDescriptions(campaignName,tName);
-    campaignMissionImages = getImages(campaignName,tName);
-    for(int i=0;i<missionEntries.size();i++)
+	
+    for(int i=0;i<campaignMissionInfo.size();i++)
     {
+		// Maybe not enforce the prefix Mission %1, isn't so nice for the misison with no
+		// specific order
         ui.pageCampaign->CBMission->addItem(QString("Mission %1: ").arg(campaignMissionInfo.size()-i) + QString(campaignMissionInfo[i].name), QString(campaignMissionInfo[i].name));
 	}
 }
 
 void HWForm::UpdateCampaignPageMission(int index)
 {
-	qDebug("UpdateCampaignPageMission");
-    // update thumbnail
+    // update thumbnail and description
     QString campaignName = ui.pageCampaign->CBCampaign->currentText();
-    // update description
     // when campaign changes the UpdateCampaignPageMission is triggered with wrong values
-    // this will cause segfault. This check prevents illegal memory reads    
-    qDebug("INDEX IS %d and number of descs is %d",index,campaignMissionDescriptions.count());
-    if(index > -1 && index < campaignMissionDescriptions.count()) {
-		qDebug("INSIDE IF *******");
+    // this will cause segfault. This check prevents illegal memory reads
+    if(index > -1 && index < campaignMissionInfo.count()) {
         ui.pageCampaign->lbltitle->setText("<h2>"+ui.pageCampaign->CBMission->currentText()+"</h2>");
         ui.pageCampaign->lbldescription->setText(campaignMissionInfo[index].description);
 		ui.pageCampaign->btnPreview->setIcon(QIcon((":/res/campaign/"+campaignName+"/"+campaignMissionInfo[index].image)));
--- a/QTfrontend/hwform.h	Fri Jun 28 22:06:57 2013 +0300
+++ b/QTfrontend/hwform.h	Fri Jun 28 22:38:08 2013 +0300
@@ -28,7 +28,6 @@
 #include <QNetworkReply>
 #include <QNetworkRequest>
 #include <QNetworkAccessManager>
-#include <QMap>
 
 #include "netserver.h"
 #include "game.h"
@@ -196,9 +195,7 @@
         AmmoSchemeModel * ammoSchemeModel;
         QStack<int> PagesStack;
         QString previousCampaignName;
-        QString previousTeamName;
-        QStringList campaignMissionDescriptions;
-        QStringList campaignMissionImages;        
+        QString previousTeamName;     
         QList<MissionInfo> campaignMissionInfo;
         QTime eggTimer;
         BGWidget * wBackground;