20 #include <QModelIndex> |
20 #include <QModelIndex> |
21 |
21 |
22 #include "ammoSchemeModel.h" |
22 #include "ammoSchemeModel.h" |
23 #include "hwconsts.h" |
23 #include "hwconsts.h" |
24 |
24 |
|
25 QList<QVariant> defaultScheme = QList<QVariant>() |
|
26 << QVariant("Default") // name 0 |
|
27 << QVariant(false) // fortsmode 1 |
|
28 << QVariant(false) // team divide 2 |
|
29 << QVariant(false) // solid land 3 |
|
30 << QVariant(false) // border 4 |
|
31 << QVariant(false) // low gravity 5 |
|
32 << QVariant(false) // laser sight 6 |
|
33 << QVariant(false) // invulnerable 7 |
|
34 << QVariant(true) // add mines 8 |
|
35 << QVariant(100) // damage modfier 9 |
|
36 << QVariant(45) // turn time 10 |
|
37 << QVariant(100) // init health 11 |
|
38 << QVariant(15) // sudden death 12 |
|
39 << QVariant(5) // case prob 13 |
|
40 ; |
|
41 |
25 AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) : |
42 AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) : |
26 QAbstractTableModel(parent), |
43 QAbstractTableModel(parent), |
27 fileConfig(fileName, QSettings::IniFormat) |
44 fileConfig(fileName, QSettings::IniFormat) |
28 { |
45 { |
29 spNames |
46 QStringList predefSchemesNames; |
|
47 predefSchemesNames |
|
48 << "Default" |
|
49 << "Pro mode"; |
|
50 |
|
51 QStringList spNames = QStringList() |
30 << "name" // 0 |
52 << "name" // 0 |
31 << "fortsmode" // 1 |
53 << "fortsmode" // 1 |
32 << "divteams" // 2 |
54 << "divteams" // 2 |
33 << "solidland" // 3 |
55 << "solidland" // 3 |
34 << "border" // 4 |
56 << "border" // 4 |
41 << "health" // 11 |
63 << "health" // 11 |
42 << "suddendeath" // 12 |
64 << "suddendeath" // 12 |
43 << "caseprobability" // 13 |
65 << "caseprobability" // 13 |
44 ; |
66 ; |
45 |
67 |
46 |
|
47 QStringList predefSchemesNames; |
|
48 predefSchemesNames |
|
49 << tr("Default") |
|
50 << tr("Pro mode"); |
|
51 |
|
52 defaultScheme |
|
53 << QVariant(tr("Default")) // name 0 |
|
54 << QVariant(false) // fortsmode 1 |
|
55 << QVariant(false) // team divide 2 |
|
56 << QVariant(false) // solid land 3 |
|
57 << QVariant(false) // border 4 |
|
58 << QVariant(false) // low gravity 5 |
|
59 << QVariant(false) // laser sight 6 |
|
60 << QVariant(false) // invulnerable 7 |
|
61 << QVariant(true) // add mines 8 |
|
62 << QVariant(100) // damage modfier 9 |
|
63 << QVariant(45) // turn time 10 |
|
64 << QVariant(100) // init health 11 |
|
65 << QVariant(15) // sudden death 12 |
|
66 << QVariant(5) // case prob 13 |
|
67 ; |
|
68 |
|
69 QList<QVariant> proMode; |
68 QList<QVariant> proMode; |
70 proMode |
69 proMode |
71 << QVariant(tr("Pro mode"))// name 0 |
70 << QVariant("Pro mode") // name 0 |
72 << QVariant(false) // fortsmode 1 |
71 << QVariant(false) // fortsmode 1 |
73 << QVariant(false) // team divide 2 |
72 << QVariant(false) // team divide 2 |
74 << QVariant(false) // solid land 3 |
73 << QVariant(false) // solid land 3 |
75 << QVariant(false) // border 4 |
74 << QVariant(false) // border 4 |
76 << QVariant(false) // low gravity 5 |
75 << QVariant(false) // low gravity 5 |
193 for (int k = 0; k < spNames.size(); ++k) |
192 for (int k = 0; k < spNames.size(); ++k) |
194 fileConfig.setValue(spNames[k], scheme[k]); |
193 fileConfig.setValue(spNames[k], scheme[k]); |
195 } |
194 } |
196 fileConfig.endArray(); |
195 fileConfig.endArray(); |
197 } |
196 } |
|
197 |
|
198 |
|
199 NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) : |
|
200 QAbstractTableModel(parent) |
|
201 { |
|
202 netScheme = defaultScheme; |
|
203 } |
|
204 |
|
205 QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const |
|
206 { |
|
207 return QVariant(); |
|
208 } |
|
209 |
|
210 int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const |
|
211 { |
|
212 if (parent.isValid()) |
|
213 return 0; |
|
214 else |
|
215 return 1; |
|
216 } |
|
217 |
|
218 int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const |
|
219 { |
|
220 if (parent.isValid()) |
|
221 return 0; |
|
222 else |
|
223 return defaultScheme.size(); |
|
224 } |
|
225 |
|
226 QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const |
|
227 { |
|
228 if (!index.isValid() || index.row() < 0 |
|
229 || index.row() > 1 |
|
230 || index.column() >= defaultScheme.size() |
|
231 || (role != Qt::EditRole && role != Qt::DisplayRole) |
|
232 ) |
|
233 return QVariant(); |
|
234 |
|
235 return netScheme[index.column()]; |
|
236 } |
|
237 |
|
238 void NetAmmoSchemeModel::setNetSchemeConfig(QStringList & cfg) |
|
239 { |
|
240 if(cfg.size() != netScheme.size()) |
|
241 { |
|
242 qWarning("Incorrect scheme cfg size"); |
|
243 return; |
|
244 } |
|
245 |
|
246 for(int i = 0; i < cfg.size(); ++i) |
|
247 netScheme[i] = QVariant(cfg[i]); |
|
248 |
|
249 reset(); |
|
250 } |