# HG changeset patch # User Periklis Ntanasis # Date 1372448288 -10800 # Node ID 187ce630dddcc8fbc28a132ad8685100572ceb26 # Parent 478aa681e702929e012229df95bf42d48261fa4b y! code clean up :) diff -r 478aa681e702 -r 187ce630dddc QTfrontend/campaign.cpp --- 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 -#include -#include #include - -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 -// 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 getCampMissionList3(QString & campaignName, QString & teamName) +QList getCampMissionList(QString & campaignName, QString & teamName) { // TODO: add default image if there isn't an available one QList 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 getUnlockedMissions2(QString & campaignName, QString & teamName) -{ - QMap 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("")); -} - diff -r 478aa681e702 -r 187ce630dddc QTfrontend/campaign.h --- 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 -#include 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 getUnlockedMissions2(QString & campaignName, QString & teamName); -QStringList getCampMissionList2(QString & campaignName, QString & teamName); -QStringList getDescriptions(QString & campaignName, QString & teamName); -QStringList getImages(QString & campaignName, QString & teamName); -QList getCampMissionList3(QString & campaignName, QString & teamName); +QList getCampMissionList(QString & campaignName, QString & teamName); #endif diff -r 478aa681e702 -r 187ce630dddc QTfrontend/hwform.cpp --- 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;iCBMission->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("

"+ui.pageCampaign->CBMission->currentText()+"

"); ui.pageCampaign->lbldescription->setText(campaignMissionInfo[index].description); ui.pageCampaign->btnPreview->setIcon(QIcon((":/res/campaign/"+campaignName+"/"+campaignMissionInfo[index].image))); diff -r 478aa681e702 -r 187ce630dddc QTfrontend/hwform.h --- 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 #include #include -#include #include "netserver.h" #include "game.h" @@ -196,9 +195,7 @@ AmmoSchemeModel * ammoSchemeModel; QStack PagesStack; QString previousCampaignName; - QString previousTeamName; - QStringList campaignMissionDescriptions; - QStringList campaignMissionImages; + QString previousTeamName; QList campaignMissionInfo; QTime eggTimer; BGWidget * wBackground;