Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
AmmoSchemeModel was a misleading name, this class was actually used only for game schemes.
--- a/QTfrontend/hwform.cpp Wed Mar 14 14:42:50 2018 +0100
+++ b/QTfrontend/hwform.cpp Wed Mar 14 15:19:08 2018 +0100
@@ -90,7 +90,7 @@
#include "chatwidget.h"
#include "input_ip.h"
#include "input_password.h"
-#include "ammoSchemeModel.h"
+#include "gameSchemeModel.h"
#include "bgwidget.h"
#include "drawmapwidget.h"
#include "mouseoverfilter.h"
@@ -347,10 +347,10 @@
connect(ui.pageVideos, SIGNAL(goBack()), config, SLOT(SaveVideosOptions()));
- ammoSchemeModel = new AmmoSchemeModel(this, cfgdir->absolutePath() + "/Schemes/Game");
- ui.pageScheme->setModel(ammoSchemeModel);
- ui.pageMultiplayer->gameCFG->GameSchemes->setModel(ammoSchemeModel);
- ui.pageOptions->SchemesName->setModel(ammoSchemeModel);
+ gameSchemeModel = new GameSchemeModel(this, cfgdir->absolutePath() + "/Schemes/Game");
+ ui.pageScheme->setModel(gameSchemeModel);
+ ui.pageMultiplayer->gameCFG->GameSchemes->setModel(gameSchemeModel);
+ ui.pageOptions->SchemesName->setModel(gameSchemeModel);
wBackground = new BGWidget(this);
wBackground->setFixedSize(this->width(), this->height());
@@ -919,7 +919,7 @@
//if (curid == ID_PAGE_NETGAME && (!game || game->gameState != gsStarted)) hwnet->partRoom();
if (curid == ID_PAGE_SCHEME)
- ammoSchemeModel->Save();
+ gameSchemeModel->Save();
#if (QT_VERSION >= 0x040600)
/**Start animation :**/
@@ -1079,14 +1079,14 @@
void HWForm::DeleteScheme()
{
ui.pageScheme->selectScheme->setCurrentIndex(ui.pageOptions->SchemesName->currentIndex());
- if (ui.pageOptions->SchemesName->currentIndex() < ammoSchemeModel->numberOfDefaultSchemes)
+ if (ui.pageOptions->SchemesName->currentIndex() < gameSchemeModel->numberOfDefaultSchemes)
{
MessageDialog::ShowErrorMessage(QMessageBox::tr("Cannot delete default scheme '%1'!").arg(ui.pageOptions->SchemesName->currentText()), this);
}
else
{
ui.pageScheme->deleteRow();
- ammoSchemeModel->Save();
+ gameSchemeModel->Save();
}
}
@@ -1899,7 +1899,7 @@
ui.pageNetGame->restrictJoins->setChecked(false);
ui.pageNetGame->restrictTeamAdds->setChecked(false);
ui.pageNetGame->restrictUnregistered->setChecked(false);
- ui.pageNetGame->pGameCFG->GameSchemes->setModel(ammoSchemeModel);
+ ui.pageNetGame->pGameCFG->GameSchemes->setModel(gameSchemeModel);
ui.pageNetGame->pGameCFG->setMaster(true);
ui.pageNetGame->pNetTeamsWidget->setInteractivity(true);
@@ -1936,7 +1936,7 @@
if (hwnet)
{
- NetAmmoSchemeModel * netAmmo = new NetAmmoSchemeModel(hwnet);
+ NetGameSchemeModel * netAmmo = new NetGameSchemeModel(hwnet);
connect(hwnet, SIGNAL(netSchemeConfig(QStringList)), netAmmo, SLOT(setNetSchemeConfig(QStringList)));
ui.pageNetGame->pGameCFG->GameSchemes->setModel(netAmmo);
--- a/QTfrontend/hwform.h Wed Mar 14 14:42:50 2018 +0100
+++ b/QTfrontend/hwform.h Wed Mar 14 15:19:08 2018 +0100
@@ -47,7 +47,7 @@
class GameUIConfig;
class HWNetRegisterServer;
class QCloseEvent;
-class AmmoSchemeModel;
+class GameSchemeModel;
class QSettings;
class QSignalMapper;
@@ -197,7 +197,7 @@
QPointer<HWTeam> editedTeam;
QPointer<HWNewNet> hwnet;
HWNamegen * namegen;
- AmmoSchemeModel * ammoSchemeModel;
+ GameSchemeModel * gameSchemeModel;
QStack<int> PagesStack;
QString previousCampaignName;
QString previousTeamName;
--- a/QTfrontend/model/ammoSchemeModel.cpp Wed Mar 14 14:42:50 2018 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1050 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <QDebug>
-#include <QModelIndex>
-#include <QFile>
-#include <QTextStream>
-#include <QHash>
-
-#include "ammoSchemeModel.h"
-#include "hwconsts.h"
-
-QList<QVariant> defaultScheme = QList<QVariant>()
- << QVariant("Default") // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(4) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
-AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & directory) :
- QAbstractTableModel(parent),
- fileConfig(cfgdir->absolutePath() + "/schemes.ini", QSettings::IniFormat)
-{
- predefSchemesNames = QStringList()
- << "Default"
- << "Pro Mode"
- << "Shoppa"
- << "Clean Slate"
- << "Minefield"
- << "Barrel Mayhem"
- << "Tunnel Hogs"
- << "Timeless"
- << "Thinking with Portals"
- << "King Mode"
- << "Construction Mode"
- << "Space Invasion"
- << "HedgeEditor"
- ;
-
- numberOfDefaultSchemes = predefSchemesNames.size();
-
- spNames = QStringList()
- << "name" // 0 | Name should be first forever
- << "fortsmode" // 1
- << "divteams" // 2
- << "solidland" // 3
- << "border" // 4
- << "lowgrav" // 5
- << "laser" // 6
- << "invulnerability" // 7
- << "resethealth" // 8
- << "vampiric" // 9
- << "karma" // 10
- << "artillery" // 11
- << "randomorder" // 12
- << "king" // 13
- << "placehog" // 14
- << "sharedammo" // 15
- << "disablegirders" // 16
- << "disablelandobjects" // 17
- << "aisurvival" // 18
- << "infattack" // 19
- << "resetweps" // 20
- << "perhogammo" // 21
- << "disablewind" // 22
- << "morewind" // 23
- << "tagteam" // 24
- << "bottomborder" // 25
- << "damagefactor" // 26
- << "turntime" // 27
- << "health" // 28
- << "suddendeath" // 29
- << "caseprobability" // 30
- << "minestime" // 31
- << "minesnum" // 32
- << "minedudpct" // 33
- << "explosives" // 34
- << "airmines" // 35
- << "healthprobability" // 36
- << "healthcaseamount" // 37
- << "waterrise" // 38
- << "healthdecrease" // 39
- << "ropepct" // 40
- << "getawaytime" // 41
- << "worldedge" // 42
- << "scriptparam" // scriptparam 43
- ;
-
- QList<QVariant> proMode;
- proMode
- << predefSchemesNames[1] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(15) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> shoppa;
- shoppa
- << predefSchemesNames[2] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(true) // solid land 3
- << QVariant(true) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(true) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(true) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(50) // sudden death 29
- << QVariant(1) // case prob 30
- << QVariant(0) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(0) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(0) // water rise amt 38
- << QVariant(0) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> cleanslate;
- cleanslate
- << predefSchemesNames[3] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(true) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(true) // inf. attack 19
- << QVariant(true) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(4) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> minefield;
- minefield
- << predefSchemesNames[4] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(50) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(0) // mines time 31
- << QVariant(200) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> barrelmayhem;
- barrelmayhem
- << predefSchemesNames[5] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(0) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(200) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> tunnelhogs;
- tunnelhogs
- << predefSchemesNames[6] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(true) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(true) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(30) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(10) // mines number 32
- << QVariant(10) // mine dud pct 33
- << QVariant(10) // explosives 34
- << QVariant(4) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> timeless;
- timeless
- << predefSchemesNames[7] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(true) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(9999) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(5) // mines number 32
- << QVariant(10) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(30) // health case amt 37
- << QVariant(0) // water rise amt 38
- << QVariant(0) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> thinkingportals;
- thinkingportals
- << predefSchemesNames[8] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(true) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(2) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(5) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(5) // explosives 34
- << QVariant(4) // air mines 35
- << QVariant(25) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> kingmode;
- kingmode
- << predefSchemesNames[9] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(true) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(4) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(2) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
- QList<QVariant> construction;
- construction
- << predefSchemesNames[10] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(true) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(true) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(true) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(15) // sudden death 29
- << QVariant(5) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(47) // water rise amt 38
- << QVariant(5) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- // NOTE: If you change this, also change the defaults in the Construction Mode script
- << QVariant("initialenergy=550, energyperround=50, maxenergy=1000, cratesperround=5") // scriptparam 43
- ;
-
- QList<QVariant> spaceinvasion;
- spaceinvasion
- << predefSchemesNames[11] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(true) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(true) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(false) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(45) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(50) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(0) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(0) // water rise amt 38
- << QVariant(0) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- // NOTE: If you change this, also change the defaults in the Space Invasion script
- << QVariant("rounds=3, shield=30, barrels=5, pings=2, barrelbonus=3, shieldbonus=30, timebonus=4") // scriptparam 43
- ;
-
- QList<QVariant> hedgeeditor;
- hedgeeditor
- << predefSchemesNames[12] // name 0
- << QVariant(false) // fortsmode 1
- << QVariant(false) // team divide 2
- << QVariant(false) // solid land 3
- << QVariant(false) // border 4
- << QVariant(false) // low gravity 5
- << QVariant(false) // laser sight 6
- << QVariant(false) // invulnerable 7
- << QVariant(false) // reset health 8
- << QVariant(false) // vampiric 9
- << QVariant(false) // karma 10
- << QVariant(false) // artillery 11
- << QVariant(false) // random order 12
- << QVariant(false) // king 13
- << QVariant(false) // place hog 14
- << QVariant(false) // shared ammo 15
- << QVariant(false) // disable girders 16
- << QVariant(false) // disable land objects 17
- << QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
- << QVariant(true) // per hog ammo 21
- << QVariant(false) // no wind 22
- << QVariant(false) // more wind 23
- << QVariant(false) // tag team 24
- << QVariant(false) // bottom border 25
- << QVariant(100) // damage modfier 26
- << QVariant(9999) // turn time 27
- << QVariant(100) // init health 28
- << QVariant(50) // sudden death 29
- << QVariant(0) // case prob 30
- << QVariant(3) // mines time 31
- << QVariant(0) // mines number 32
- << QVariant(0) // mine dud pct 33
- << QVariant(0) // explosives 34
- << QVariant(0) // air mines 35
- << QVariant(35) // health case pct 36
- << QVariant(25) // health case amt 37
- << QVariant(0) // water rise amt 38
- << QVariant(0) // health dec amt 39
- << QVariant(100) // rope modfier 40
- << QVariant(100) // get away time 41
- << QVariant(0) // world edge 42
- << QVariant() // scriptparam 43
- ;
-
-
-
- schemes.append(defaultScheme);
- schemes.append(proMode);
- schemes.append(shoppa);
- schemes.append(cleanslate);
- schemes.append(minefield);
- schemes.append(barrelmayhem);
- schemes.append(tunnelhogs);
- schemes.append(timeless);
- schemes.append(thinkingportals);
- schemes.append(kingmode);
- schemes.append(construction);
- schemes.append(spaceinvasion);
- schemes.append(hedgeeditor);
-
- if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) {
- QDir().mkdir(cfgdir->absolutePath() + "/Schemes");
- }
- if (!QDir(directory).exists()) {
- QDir().mkdir(directory);
-
- qDebug("No /Schemes/Game directory found. Trying to import game schemes from schemes.ini.");
-
- int size = fileConfig.beginReadArray("schemes");
- int imported = 0;
- for (int i = 0; i < size; ++i)
- {
- fileConfig.setArrayIndex(i);
-
- QString schemeName = fileConfig.value(spNames[0]).toString();
- if (!schemeName.isNull() && !predefSchemesNames.contains(schemeName))
- {
- QList<QVariant> scheme;
- QFile file(directory + "/" + schemeName + ".hwg");
-
- // Add keys to scheme info and create file
- if (file.open(QIODevice::WriteOnly)) {
- QTextStream stream(&file);
-
- for (int k = 0; k < spNames.size(); ++k) {
- scheme << fileConfig.value(spNames[k], defaultScheme[k]);
-
- // File handling
- // We skip the name key (k==0), it is not stored redundantly in file.
- // The file name is used for that already.
- if(k != 0) {
- // The file is just a list of key=value pairs
- stream << spNames[k] << "=" << fileConfig.value(spNames[k], defaultScheme[k]).toString();
- stream << endl;
- }
- }
- file.close();
- }
- imported++;
-
- schemes.append(scheme);
- }
- }
- qDebug("%d game scheme(s) imported.", imported);
- fileConfig.endArray();
- } else {
- QStringList scheme_dir = QDir(directory).entryList(QDir::Files);
-
- for(int i = 0; i < scheme_dir.size(); i++)
- {
- QList<QVariant> scheme;
- QFile file(directory + "/" + scheme_dir[i]);
-
- // Chop off file name suffix
- QString schemeName = scheme_dir[i];
- if (schemeName.endsWith(".hwg", Qt::CaseInsensitive)) {
- schemeName.chop(4);
- }
- // Parse game scheme file
- if (file.open(QIODevice::ReadOnly)) {
- QTextStream stream(&file);
- QString line, key, value;
- QHash<QString, QString> fileKeyValues;
- do {
- // Read line and get key and value
- line = stream.readLine();
- key = line.section(QChar('='), 0, 0);
- value = line.section(QChar('='), 1);
- if(!key.isNull() && !value.isNull()) {
- fileKeyValues[key] = value;
- }
- } while (!line.isNull());
-
- // Add scheme name manually
- scheme << schemeName;
- // Add other keys from the QHash.
- for (int k = 1; k < spNames.size(); ++k) {
- key = spNames[k];
- if (fileKeyValues.contains(key)) {
- scheme << fileKeyValues.value(key);
- } else {
- // Use default value in case the key is not set
- scheme << defaultScheme[k];
- }
- }
- schemes.append(scheme);
-
- file.close();
- }
- }
- }
-}
-
-QVariant AmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- Q_UNUSED(section);
- Q_UNUSED(orientation);
- Q_UNUSED(role);
-
- return QVariant();
-}
-
-int AmmoSchemeModel::rowCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return schemes.size();
-}
-
-int AmmoSchemeModel::columnCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return defaultScheme.size();
-}
-
-bool AmmoSchemeModel::hasScheme(QString name)
-{
- for(int i=0; i<schemes.size(); i++)
- {
- if(schemes[i][0] == name)
- {
- return true;
- }
- }
- return false;
-}
-
-Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const
-{
- Q_UNUSED(index);
-
- return
- Qt::ItemIsEnabled
- | Qt::ItemIsSelectable
- | Qt::ItemIsEditable;
-}
-
-bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role)
-{
- if (!index.isValid() || index.row() < numberOfDefaultSchemes
- || index.row() >= schemes.size()
- || index.column() >= defaultScheme.size()
- || role != Qt::EditRole)
- return false;
-
- schemes[index.row()][index.column()] = value;
-
- emit dataChanged(index, index);
- return true;
-}
-
-bool AmmoSchemeModel::insertRows(int row, int count, const QModelIndex & parent)
-{
- Q_UNUSED(count);
-
- beginInsertRows(parent, schemes.size(), schemes.size());
-
- if (row == -1)
- {
- QList<QVariant> newScheme = defaultScheme;
-
- QString newName = tr("New");
- if(hasScheme(newName))
- {
- //name already used -> look for an appropriate name:
- int i=2;
- while(hasScheme(newName = tr("New (%1)").arg(i++))) ;
- }
- newScheme[0] = QVariant(newName);
- schemes.insert(schemes.size(), newScheme);
- }
- else
- {
- QList<QVariant> newScheme = schemes[row];
- QString oldName = newScheme[0].toString();
- QString newName = tr("Copy of %1").arg(oldName);
- if(hasScheme(newName))
- {
- //name already used -> look for an appropriate name:
- int i=2;
- while(hasScheme(newName = tr("Copy of %1 (%2)").arg(oldName).arg(i++)));
- }
- newScheme[0] = QVariant(newName);
- schemes.insert(schemes.size(), newScheme);
- }
-
- endInsertRows();
-
- return true;
-}
-
-bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent)
-{
- if(count != 1
- || row < numberOfDefaultSchemes
- || row >= schemes.size())
- return false;
-
- beginRemoveRows(parent, row, row);
-
- QList<QVariant> scheme = schemes[row];
- int j = spNames.indexOf("name");
- QFile(cfgdir->absolutePath() + "/Schemes/Game/" + scheme[j].toString() + ".hwg").remove();
- schemes.removeAt(row);
-
- endRemoveRows();
-
- return true;
-}
-
-QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid() || index.row() < 0
- || index.row() >= schemes.size()
- || index.column() >= defaultScheme.size()
- || (role != Qt::EditRole && role != Qt::DisplayRole)
- )
- return QVariant();
-
- return schemes[index.row()][index.column()];
-}
-
-void AmmoSchemeModel::Save()
-{
- fileConfig.beginWriteArray("schemes");
- for (int i = 0; i < schemes.size() - numberOfDefaultSchemes; ++i)
- {
- QList<QVariant> scheme = schemes[i + numberOfDefaultSchemes];
- int j = spNames.indexOf("name");
-
- QString schemeName = scheme[j].toString();
- QFile file(cfgdir->absolutePath() + "/Schemes/Game/" + schemeName + ".hwg");
-
- if (file.open(QIODevice::WriteOnly)) {
- QTextStream stream(&file);
- for (int k = 0; k < spNames.size(); ++k) {
- // We skip the name key
- if(k != j) {
- // The file is just a list of key=value pairs
- stream << spNames[k] << "=" << scheme[k].toString();
- stream << endl;
- }
- }
- file.close();
- }
- }
- fileConfig.endArray();
-}
-
-
-NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) :
- QAbstractTableModel(parent)
-{
- netScheme = defaultScheme;
-}
-
-QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- Q_UNUSED(section);
- Q_UNUSED(orientation);
- Q_UNUSED(role);
-
- return QVariant();
-}
-
-int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return 1;
-}
-
-int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const
-{
- if (parent.isValid())
- return 0;
- else
- return defaultScheme.size();
-}
-
-QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid() || index.row() < 0
- || index.row() > 1
- || index.column() >= defaultScheme.size()
- || (role != Qt::EditRole && role != Qt::DisplayRole)
- )
- return QVariant();
-
- return netScheme[index.column()];
-}
-
-void NetAmmoSchemeModel::setNetSchemeConfig(QStringList cfg)
-{
- if(cfg.size() != netScheme.size())
- {
- qWarning("Incorrect scheme cfg size");
- return;
- }
-
- beginResetModel();
-
- cfg[cfg.size()-1] = cfg[cfg.size()-1].mid(1);
-
- for(int i = 0; i < cfg.size(); ++i)
- netScheme[i] = QVariant(cfg[i]);
-
- endResetModel();
-}
--- a/QTfrontend/model/ammoSchemeModel.h Wed Mar 14 14:42:50 2018 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef _AMMO_SCHEME_MODEL_INCLUDED
-#define _AMMO_SCHEME_MODEL_INCLUDED
-
-#include <QAbstractTableModel>
-#include <QStringList>
-#include <QList>
-#include <QSettings>
-
-class AmmoSchemeModel : public QAbstractTableModel
-{
- Q_OBJECT
-
- public:
- AmmoSchemeModel(QObject * parent, const QString & fileName);
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- int rowCount(const QModelIndex & parent) const;
- int columnCount(const QModelIndex & parent) const;
- bool hasScheme(QString name);
- Qt::ItemFlags flags(const QModelIndex & index) const;
- bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
- bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
- QVariant data(const QModelIndex &index, int role) const;
-
- int numberOfDefaultSchemes;
- QStringList predefSchemesNames;
- QStringList spNames;
-
- public slots:
- void Save();
-
-// signals:
-// void dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight);
-
- protected:
- QList< QList<QVariant> > schemes;
-
- private:
- QSettings fileConfig;
-};
-
-class NetAmmoSchemeModel : public QAbstractTableModel
-{
- Q_OBJECT
-
- public:
- NetAmmoSchemeModel(QObject * parent);
-
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- int rowCount(const QModelIndex & parent) const;
- int columnCount(const QModelIndex & parent) const;
- QVariant data(const QModelIndex &index, int role) const;
-
- public slots:
- void setNetSchemeConfig(QStringList cfg);
-
- private:
- QList<QVariant> netScheme;
-};
-
-#endif // _AMMO_SCHEME_MODEL_INCLUDED
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/gameSchemeModel.cpp Wed Mar 14 15:19:08 2018 +0100
@@ -0,0 +1,1050 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <QDebug>
+#include <QModelIndex>
+#include <QFile>
+#include <QTextStream>
+#include <QHash>
+
+#include "gameSchemeModel.h"
+#include "hwconsts.h"
+
+QList<QVariant> defaultScheme = QList<QVariant>()
+ << QVariant("Default") // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(4) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+GameSchemeModel::GameSchemeModel(QObject* parent, const QString & directory) :
+ QAbstractTableModel(parent),
+ fileConfig(cfgdir->absolutePath() + "/schemes.ini", QSettings::IniFormat)
+{
+ predefSchemesNames = QStringList()
+ << "Default"
+ << "Pro Mode"
+ << "Shoppa"
+ << "Clean Slate"
+ << "Minefield"
+ << "Barrel Mayhem"
+ << "Tunnel Hogs"
+ << "Timeless"
+ << "Thinking with Portals"
+ << "King Mode"
+ << "Construction Mode"
+ << "Space Invasion"
+ << "HedgeEditor"
+ ;
+
+ numberOfDefaultSchemes = predefSchemesNames.size();
+
+ spNames = QStringList()
+ << "name" // 0 | Name should be first forever
+ << "fortsmode" // 1
+ << "divteams" // 2
+ << "solidland" // 3
+ << "border" // 4
+ << "lowgrav" // 5
+ << "laser" // 6
+ << "invulnerability" // 7
+ << "resethealth" // 8
+ << "vampiric" // 9
+ << "karma" // 10
+ << "artillery" // 11
+ << "randomorder" // 12
+ << "king" // 13
+ << "placehog" // 14
+ << "sharedammo" // 15
+ << "disablegirders" // 16
+ << "disablelandobjects" // 17
+ << "aisurvival" // 18
+ << "infattack" // 19
+ << "resetweps" // 20
+ << "perhogammo" // 21
+ << "disablewind" // 22
+ << "morewind" // 23
+ << "tagteam" // 24
+ << "bottomborder" // 25
+ << "damagefactor" // 26
+ << "turntime" // 27
+ << "health" // 28
+ << "suddendeath" // 29
+ << "caseprobability" // 30
+ << "minestime" // 31
+ << "minesnum" // 32
+ << "minedudpct" // 33
+ << "explosives" // 34
+ << "airmines" // 35
+ << "healthprobability" // 36
+ << "healthcaseamount" // 37
+ << "waterrise" // 38
+ << "healthdecrease" // 39
+ << "ropepct" // 40
+ << "getawaytime" // 41
+ << "worldedge" // 42
+ << "scriptparam" // scriptparam 43
+ ;
+
+ QList<QVariant> proMode;
+ proMode
+ << predefSchemesNames[1] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(15) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> shoppa;
+ shoppa
+ << predefSchemesNames[2] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(true) // solid land 3
+ << QVariant(true) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(true) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(true) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(50) // sudden death 29
+ << QVariant(1) // case prob 30
+ << QVariant(0) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(0) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(0) // water rise amt 38
+ << QVariant(0) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> cleanslate;
+ cleanslate
+ << predefSchemesNames[3] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(true) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(true) // inf. attack 19
+ << QVariant(true) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(4) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> minefield;
+ minefield
+ << predefSchemesNames[4] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(50) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(0) // mines time 31
+ << QVariant(200) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> barrelmayhem;
+ barrelmayhem
+ << predefSchemesNames[5] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(0) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(200) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> tunnelhogs;
+ tunnelhogs
+ << predefSchemesNames[6] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(true) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(true) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(30) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(10) // mines number 32
+ << QVariant(10) // mine dud pct 33
+ << QVariant(10) // explosives 34
+ << QVariant(4) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> timeless;
+ timeless
+ << predefSchemesNames[7] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(true) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(9999) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(5) // mines number 32
+ << QVariant(10) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(30) // health case amt 37
+ << QVariant(0) // water rise amt 38
+ << QVariant(0) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> thinkingportals;
+ thinkingportals
+ << predefSchemesNames[8] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(true) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(2) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(5) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(5) // explosives 34
+ << QVariant(4) // air mines 35
+ << QVariant(25) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> kingmode;
+ kingmode
+ << predefSchemesNames[9] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(true) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(4) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(2) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+ QList<QVariant> construction;
+ construction
+ << predefSchemesNames[10] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(true) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(true) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(true) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(15) // sudden death 29
+ << QVariant(5) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(47) // water rise amt 38
+ << QVariant(5) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ // NOTE: If you change this, also change the defaults in the Construction Mode script
+ << QVariant("initialenergy=550, energyperround=50, maxenergy=1000, cratesperround=5") // scriptparam 43
+ ;
+
+ QList<QVariant> spaceinvasion;
+ spaceinvasion
+ << predefSchemesNames[11] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(true) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(45) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(50) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(0) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(0) // water rise amt 38
+ << QVariant(0) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ // NOTE: If you change this, also change the defaults in the Space Invasion script
+ << QVariant("rounds=3, shield=30, barrels=5, pings=2, barrelbonus=3, shieldbonus=30, timebonus=4") // scriptparam 43
+ ;
+
+ QList<QVariant> hedgeeditor;
+ hedgeeditor
+ << predefSchemesNames[12] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(false) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(true) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(false) // tag team 24
+ << QVariant(false) // bottom border 25
+ << QVariant(100) // damage modfier 26
+ << QVariant(9999) // turn time 27
+ << QVariant(100) // init health 28
+ << QVariant(50) // sudden death 29
+ << QVariant(0) // case prob 30
+ << QVariant(3) // mines time 31
+ << QVariant(0) // mines number 32
+ << QVariant(0) // mine dud pct 33
+ << QVariant(0) // explosives 34
+ << QVariant(0) // air mines 35
+ << QVariant(35) // health case pct 36
+ << QVariant(25) // health case amt 37
+ << QVariant(0) // water rise amt 38
+ << QVariant(0) // health dec amt 39
+ << QVariant(100) // rope modfier 40
+ << QVariant(100) // get away time 41
+ << QVariant(0) // world edge 42
+ << QVariant() // scriptparam 43
+ ;
+
+
+
+ schemes.append(defaultScheme);
+ schemes.append(proMode);
+ schemes.append(shoppa);
+ schemes.append(cleanslate);
+ schemes.append(minefield);
+ schemes.append(barrelmayhem);
+ schemes.append(tunnelhogs);
+ schemes.append(timeless);
+ schemes.append(thinkingportals);
+ schemes.append(kingmode);
+ schemes.append(construction);
+ schemes.append(spaceinvasion);
+ schemes.append(hedgeeditor);
+
+ if (!QDir(cfgdir->absolutePath() + "/Schemes").exists()) {
+ QDir().mkdir(cfgdir->absolutePath() + "/Schemes");
+ }
+ if (!QDir(directory).exists()) {
+ QDir().mkdir(directory);
+
+ qDebug("No /Schemes/Game directory found. Trying to import game schemes from schemes.ini.");
+
+ int size = fileConfig.beginReadArray("schemes");
+ int imported = 0;
+ for (int i = 0; i < size; ++i)
+ {
+ fileConfig.setArrayIndex(i);
+
+ QString schemeName = fileConfig.value(spNames[0]).toString();
+ if (!schemeName.isNull() && !predefSchemesNames.contains(schemeName))
+ {
+ QList<QVariant> scheme;
+ QFile file(directory + "/" + schemeName + ".hwg");
+
+ // Add keys to scheme info and create file
+ if (file.open(QIODevice::WriteOnly)) {
+ QTextStream stream(&file);
+
+ for (int k = 0; k < spNames.size(); ++k) {
+ scheme << fileConfig.value(spNames[k], defaultScheme[k]);
+
+ // File handling
+ // We skip the name key (k==0), it is not stored redundantly in file.
+ // The file name is used for that already.
+ if(k != 0) {
+ // The file is just a list of key=value pairs
+ stream << spNames[k] << "=" << fileConfig.value(spNames[k], defaultScheme[k]).toString();
+ stream << endl;
+ }
+ }
+ file.close();
+ }
+ imported++;
+
+ schemes.append(scheme);
+ }
+ }
+ qDebug("%d game scheme(s) imported.", imported);
+ fileConfig.endArray();
+ } else {
+ QStringList scheme_dir = QDir(directory).entryList(QDir::Files);
+
+ for(int i = 0; i < scheme_dir.size(); i++)
+ {
+ QList<QVariant> scheme;
+ QFile file(directory + "/" + scheme_dir[i]);
+
+ // Chop off file name suffix
+ QString schemeName = scheme_dir[i];
+ if (schemeName.endsWith(".hwg", Qt::CaseInsensitive)) {
+ schemeName.chop(4);
+ }
+ // Parse game scheme file
+ if (file.open(QIODevice::ReadOnly)) {
+ QTextStream stream(&file);
+ QString line, key, value;
+ QHash<QString, QString> fileKeyValues;
+ do {
+ // Read line and get key and value
+ line = stream.readLine();
+ key = line.section(QChar('='), 0, 0);
+ value = line.section(QChar('='), 1);
+ if(!key.isNull() && !value.isNull()) {
+ fileKeyValues[key] = value;
+ }
+ } while (!line.isNull());
+
+ // Add scheme name manually
+ scheme << schemeName;
+ // Add other keys from the QHash.
+ for (int k = 1; k < spNames.size(); ++k) {
+ key = spNames[k];
+ if (fileKeyValues.contains(key)) {
+ scheme << fileKeyValues.value(key);
+ } else {
+ // Use default value in case the key is not set
+ scheme << defaultScheme[k];
+ }
+ }
+ schemes.append(scheme);
+
+ file.close();
+ }
+ }
+ }
+}
+
+QVariant GameSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ Q_UNUSED(section);
+ Q_UNUSED(orientation);
+ Q_UNUSED(role);
+
+ return QVariant();
+}
+
+int GameSchemeModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return schemes.size();
+}
+
+int GameSchemeModel::columnCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return defaultScheme.size();
+}
+
+bool GameSchemeModel::hasScheme(QString name)
+{
+ for(int i=0; i<schemes.size(); i++)
+ {
+ if(schemes[i][0] == name)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+Qt::ItemFlags GameSchemeModel::flags(const QModelIndex & index) const
+{
+ Q_UNUSED(index);
+
+ return
+ Qt::ItemIsEnabled
+ | Qt::ItemIsSelectable
+ | Qt::ItemIsEditable;
+}
+
+bool GameSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role)
+{
+ if (!index.isValid() || index.row() < numberOfDefaultSchemes
+ || index.row() >= schemes.size()
+ || index.column() >= defaultScheme.size()
+ || role != Qt::EditRole)
+ return false;
+
+ schemes[index.row()][index.column()] = value;
+
+ emit dataChanged(index, index);
+ return true;
+}
+
+bool GameSchemeModel::insertRows(int row, int count, const QModelIndex & parent)
+{
+ Q_UNUSED(count);
+
+ beginInsertRows(parent, schemes.size(), schemes.size());
+
+ if (row == -1)
+ {
+ QList<QVariant> newScheme = defaultScheme;
+
+ QString newName = tr("New");
+ if(hasScheme(newName))
+ {
+ //name already used -> look for an appropriate name:
+ int i=2;
+ while(hasScheme(newName = tr("New (%1)").arg(i++))) ;
+ }
+ newScheme[0] = QVariant(newName);
+ schemes.insert(schemes.size(), newScheme);
+ }
+ else
+ {
+ QList<QVariant> newScheme = schemes[row];
+ QString oldName = newScheme[0].toString();
+ QString newName = tr("Copy of %1").arg(oldName);
+ if(hasScheme(newName))
+ {
+ //name already used -> look for an appropriate name:
+ int i=2;
+ while(hasScheme(newName = tr("Copy of %1 (%2)").arg(oldName).arg(i++)));
+ }
+ newScheme[0] = QVariant(newName);
+ schemes.insert(schemes.size(), newScheme);
+ }
+
+ endInsertRows();
+
+ return true;
+}
+
+bool GameSchemeModel::removeRows(int row, int count, const QModelIndex & parent)
+{
+ if(count != 1
+ || row < numberOfDefaultSchemes
+ || row >= schemes.size())
+ return false;
+
+ beginRemoveRows(parent, row, row);
+
+ QList<QVariant> scheme = schemes[row];
+ int j = spNames.indexOf("name");
+ QFile(cfgdir->absolutePath() + "/Schemes/Game/" + scheme[j].toString() + ".hwg").remove();
+ schemes.removeAt(row);
+
+ endRemoveRows();
+
+ return true;
+}
+
+QVariant GameSchemeModel::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || index.row() < 0
+ || index.row() >= schemes.size()
+ || index.column() >= defaultScheme.size()
+ || (role != Qt::EditRole && role != Qt::DisplayRole)
+ )
+ return QVariant();
+
+ return schemes[index.row()][index.column()];
+}
+
+void GameSchemeModel::Save()
+{
+ fileConfig.beginWriteArray("schemes");
+ for (int i = 0; i < schemes.size() - numberOfDefaultSchemes; ++i)
+ {
+ QList<QVariant> scheme = schemes[i + numberOfDefaultSchemes];
+ int j = spNames.indexOf("name");
+
+ QString schemeName = scheme[j].toString();
+ QFile file(cfgdir->absolutePath() + "/Schemes/Game/" + schemeName + ".hwg");
+
+ if (file.open(QIODevice::WriteOnly)) {
+ QTextStream stream(&file);
+ for (int k = 0; k < spNames.size(); ++k) {
+ // We skip the name key
+ if(k != j) {
+ // The file is just a list of key=value pairs
+ stream << spNames[k] << "=" << scheme[k].toString();
+ stream << endl;
+ }
+ }
+ file.close();
+ }
+ }
+ fileConfig.endArray();
+}
+
+
+NetGameSchemeModel::NetGameSchemeModel(QObject * parent) :
+ QAbstractTableModel(parent)
+{
+ netScheme = defaultScheme;
+}
+
+QVariant NetGameSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ Q_UNUSED(section);
+ Q_UNUSED(orientation);
+ Q_UNUSED(role);
+
+ return QVariant();
+}
+
+int NetGameSchemeModel::rowCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return 1;
+}
+
+int NetGameSchemeModel::columnCount(const QModelIndex & parent) const
+{
+ if (parent.isValid())
+ return 0;
+ else
+ return defaultScheme.size();
+}
+
+QVariant NetGameSchemeModel::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || index.row() < 0
+ || index.row() > 1
+ || index.column() >= defaultScheme.size()
+ || (role != Qt::EditRole && role != Qt::DisplayRole)
+ )
+ return QVariant();
+
+ return netScheme[index.column()];
+}
+
+void NetGameSchemeModel::setNetSchemeConfig(QStringList cfg)
+{
+ if(cfg.size() != netScheme.size())
+ {
+ qWarning("Incorrect scheme cfg size");
+ return;
+ }
+
+ beginResetModel();
+
+ cfg[cfg.size()-1] = cfg[cfg.size()-1].mid(1);
+
+ for(int i = 0; i < cfg.size(); ++i)
+ netScheme[i] = QVariant(cfg[i]);
+
+ endResetModel();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/model/gameSchemeModel.h Wed Mar 14 15:19:08 2018 +0100
@@ -0,0 +1,80 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _GAME_SCHEME_MODEL_INCLUDED
+#define _GAME_SCHEME_MODEL_INCLUDED
+
+#include <QAbstractTableModel>
+#include <QStringList>
+#include <QList>
+#include <QSettings>
+
+class GameSchemeModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+ public:
+ GameSchemeModel(QObject * parent, const QString & fileName);
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ int rowCount(const QModelIndex & parent) const;
+ int columnCount(const QModelIndex & parent) const;
+ bool hasScheme(QString name);
+ Qt::ItemFlags flags(const QModelIndex & index) const;
+ bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
+ bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex());
+ bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
+ QVariant data(const QModelIndex &index, int role) const;
+
+ int numberOfDefaultSchemes;
+ QStringList predefSchemesNames;
+ QStringList spNames;
+
+ public slots:
+ void Save();
+
+// signals:
+// void dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight);
+
+ protected:
+ QList< QList<QVariant> > schemes;
+
+ private:
+ QSettings fileConfig;
+};
+
+class NetGameSchemeModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+ public:
+ NetGameSchemeModel(QObject * parent);
+
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ int rowCount(const QModelIndex & parent) const;
+ int columnCount(const QModelIndex & parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+
+ public slots:
+ void setNetSchemeConfig(QStringList cfg);
+
+ private:
+ QList<QVariant> netScheme;
+};
+
+#endif // _GAME_SCHEME_MODEL_INCLUDED
--- a/QTfrontend/ui/page/pageroomslist.cpp Wed Mar 14 14:42:50 2018 +0100
+++ b/QTfrontend/ui/page/pageroomslist.cpp Wed Mar 14 15:19:08 2018 +0100
@@ -34,7 +34,7 @@
#include "roomslistmodel.h"
-#include "ammoSchemeModel.h"
+#include "gameSchemeModel.h"
#include "hwconsts.h"
#include "chatwidget.h"
#include "roomnameprompt.h"
--- a/QTfrontend/ui/page/pageroomslist.h Wed Mar 14 14:42:50 2018 +0100
+++ b/QTfrontend/ui/page/pageroomslist.h Wed Mar 14 15:19:08 2018 +0100
@@ -23,7 +23,7 @@
#include "AbstractPage.h"
class HWChatWidget;
-class AmmoSchemeModel;
+class GameSchemeModel;
class QTableView;
class RoomsListModel;
class QSortFilterProxyModel;
@@ -100,7 +100,7 @@
QAction * showJoinRestricted;
QSplitter * m_splitter;
- AmmoSchemeModel * ammoSchemeModel;
+ GameSchemeModel * gameSchemeModel;
bool restoreHeaderState();
};
--- a/QTfrontend/ui/page/pagescheme.cpp Wed Mar 14 14:42:50 2018 +0100
+++ b/QTfrontend/ui/page/pagescheme.cpp Wed Mar 14 15:19:08 2018 +0100
@@ -27,7 +27,7 @@
#include <QDataWidgetMapper>
#include <QSpinBox>
-#include "ammoSchemeModel.h"
+#include "gameSchemeModel.h"
#include "pagescheme.h"
#include "FreqSpinBox.h"
#include "MinesTimeSpinBox.h"
@@ -608,7 +608,7 @@
void PageScheme::deleteRow()
{
- int numberOfDefaultSchemes = ((AmmoSchemeModel*)mapper->model())->numberOfDefaultSchemes;
+ int numberOfDefaultSchemes = ((GameSchemeModel*)mapper->model())->numberOfDefaultSchemes;
if (selectScheme->currentIndex() < numberOfDefaultSchemes)
{
QMessageBox deniedMsg(this);
@@ -637,7 +637,7 @@
void PageScheme::schemeSelected(int n)
{
- int c = ((AmmoSchemeModel*)mapper->model())->numberOfDefaultSchemes;
+ int c = ((GameSchemeModel*)mapper->model())->numberOfDefaultSchemes;
gbGameModes->setEnabled(n >= c);
gbBasicSettings->setEnabled(n >= c);
LE_name->setEnabled(n >= c);
--- a/QTfrontend/ui/widget/gamecfgwidget.cpp Wed Mar 14 14:42:50 2018 +0100
+++ b/QTfrontend/ui/widget/gamecfgwidget.cpp Wed Mar 14 15:19:08 2018 +0100
@@ -34,7 +34,7 @@
#include "igbox.h"
#include "DataManager.h"
#include "hwconsts.h"
-#include "ammoSchemeModel.h"
+#include "gameSchemeModel.h"
#include "proto.h"
#include "GameStyleModel.h"
#include "themeprompt.h"
--- a/project_files/hedgewars.pro Wed Mar 14 14:42:50 2018 +0100
+++ b/project_files/hedgewars.pro Wed Mar 14 15:19:08 2018 +0100
@@ -21,7 +21,7 @@
HEADERS += ../QTfrontend/model/ThemeModel.h \
../QTfrontend/model/MapModel.h \
- ../QTfrontend/model/ammoSchemeModel.h \
+ ../QTfrontend/model/gameSchemeModel.h \
../QTfrontend/model/netserverslist.h \
../QTfrontend/ui/page/pagedrawmap.h \
../QTfrontend/ui/page/pagedata.h \
@@ -121,7 +121,7 @@
../QTfrontend/net/hwmapoptimizer.h
-SOURCES += ../QTfrontend/model/ammoSchemeModel.cpp \
+SOURCES += ../QTfrontend/model/gameSchemeModel.cpp \
../QTfrontend/model/MapModel.cpp \
../QTfrontend/model/ThemeModel.cpp \
../QTfrontend/model/netserverslist.cpp \
--- a/share/hedgewars/Data/Locale/hedgewars_ar.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">جديد</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">Нов</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">nový</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_da.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_da.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">ny</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Wed Mar 14 15:19:08 2018 +0100
@@ -99,7 +99,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">Neu</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_el.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_el.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">Νέο</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">new</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_es.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">Nuevo</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>New</source>
<translation>Uusi</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">Nouveau</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_gd.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_gd.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>New</source>
<translation>Ùr</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_gl.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_gl.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">novo</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">új</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">nuovo</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">作成</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_ko.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>New</source>
<translation type="unfinished"></translation>
--- a/share/hedgewars/Data/Locale/hedgewars_lt.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_lt.ts Wed Mar 14 15:19:08 2018 +0100
@@ -106,24 +106,24 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
- <message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="847"/>
+ <name>GameSchemeModel</name>
+ <message>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="847"/>
<source>New</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="852"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="852"/>
<source>New (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="861"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="861"/>
<source>Copy of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="866"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="866"/>
<source>Copy of %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
--- a/share/hedgewars/Data/Locale/hedgewars_ms.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ms.ts Wed Mar 14 15:19:08 2018 +0100
@@ -106,24 +106,24 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
- <message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="847"/>
+ <name>GameSchemeModel</name>
+ <message>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="847"/>
<source>New</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="852"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="852"/>
<source>New (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="861"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="861"/>
<source>Copy of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="866"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="866"/>
<source>Copy of %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
--- a/share/hedgewars/Data/Locale/hedgewars_nl.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>New</source>
<translation type="unfinished"></translation>
--- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">nowy</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">novo</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">novo</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_ro.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ro.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">new</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">новый</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">nový</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">ny</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">yeni</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">нова</translation>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Wed Mar 14 15:19:08 2018 +0100
@@ -106,28 +106,28 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">新</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="847"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="847"/>
<source>New</source>
<translation type="unfinished">新游戏</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="852"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="852"/>
<source>New (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="861"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="861"/>
<source>Copy of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="866"/>
+ <location filename="../../../../QTfrontend/model/gameSchemeModel.cpp" line="866"/>
<source>Copy of %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Wed Mar 14 14:42:50 2018 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Wed Mar 14 15:19:08 2018 +0100
@@ -87,7 +87,7 @@
</message>
</context>
<context>
- <name>AmmoSchemeModel</name>
+ <name>GameSchemeModel</name>
<message>
<source>new</source>
<translation type="obsolete">新</translation>