83 |
83 |
84 SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) : |
84 SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) : |
85 QFrame(parent), |
85 QFrame(parent), |
86 m_numItems(numItems) |
86 m_numItems(numItems) |
87 { |
87 { |
88 if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) QDir().mkdir(cfgdir->absolutePath() + "/Schemes"); |
88 if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) { |
|
89 QDir().mkdir(cfgdir->absolutePath() + "/Schemes"); |
|
90 } |
89 if (!QDir(cfgdir->absolutePath() + "/Schemes/Ammo").exists()) { |
91 if (!QDir(cfgdir->absolutePath() + "/Schemes/Ammo").exists()) { |
|
92 qDebug("No /Schemes/Ammo directory found. Trying to import weapon schemes from weapons.ini."); |
90 QDir().mkdir(cfgdir->absolutePath() + "/Schemes/Ammo"); |
93 QDir().mkdir(cfgdir->absolutePath() + "/Schemes/Ammo"); |
91 wconf = new QSettings("Hedgewars", "Hedgewars"); |
94 wconf = new QSettings("Hedgewars", "Hedgewars"); |
92 wconf->clear(); |
95 wconf->clear(); |
93 QSettings old_wconf(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat); |
96 QSettings old_wconf(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat); |
94 |
97 |
95 QList<QVariant> defaultAmmos; |
98 QStringList defaultAmmos; |
96 for(int i = 0; i < cDefaultAmmos.size(); ++i) { |
99 for(int i = 0; i < cDefaultAmmos.size(); ++i) { |
97 wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second); |
100 wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second); |
98 defaultAmmos.append(cDefaultAmmos[i].first); |
101 defaultAmmos.append(cDefaultAmmos[i].first); |
99 } |
102 } |
100 |
103 |
101 QStringList keys = old_wconf.allKeys(); |
104 QStringList keys = old_wconf.allKeys(); |
|
105 int imported = 0; |
102 for(int i = 0; i < keys.size(); i++) |
106 for(int i = 0; i < keys.size(); i++) |
103 { |
107 { |
104 wconf->setValue(keys[i], fixWeaponSet(old_wconf.value(keys[i]).toString())); |
|
105 |
|
106 if (!defaultAmmos.contains(keys[i])) { |
108 if (!defaultAmmos.contains(keys[i])) { |
|
109 wconf->setValue(keys[i], fixWeaponSet(old_wconf.value(keys[i]).toString())); |
107 QFile file(cfgdir->absolutePath() + "/Schemes/Ammo/" + keys[i] + ".hwa"); |
110 QFile file(cfgdir->absolutePath() + "/Schemes/Ammo/" + keys[i] + ".hwa"); |
108 if (file.open(QIODevice::WriteOnly)) { |
111 if (file.open(QIODevice::WriteOnly)) { |
109 QTextStream stream( &file ); |
112 QTextStream stream( &file ); |
110 stream << old_wconf.value(keys[i]).toString() << endl; |
113 stream << old_wconf.value(keys[i]).toString() << endl; |
111 } |
114 } |
|
115 imported++; |
112 } |
116 } |
113 } |
117 } |
|
118 qDebug("%d weapon scheme(s) imported.", imported); |
114 } else { |
119 } else { |
115 wconf = new QSettings("Hedgewars", "Hedgewars"); |
120 wconf = new QSettings("Hedgewars", "Hedgewars"); |
116 wconf->clear(); |
121 wconf->clear(); |
117 |
122 |
118 for(int i = 0; i < cDefaultAmmos.size(); ++i) |
123 for(int i = 0; i < cDefaultAmmos.size(); ++i) |