tools/MissionsEditor/editor.cpp
changeset 2583 f8da275981e5
parent 2572 af96861683f8
child 2584 cc049fbb65ef
--- a/tools/MissionsEditor/editor.cpp	Sun Oct 25 10:39:12 2009 +0000
+++ b/tools/MissionsEditor/editor.cpp	Sun Oct 25 12:19:47 2009 +0000
@@ -1,3 +1,4 @@
+#include <QtGui>
 #include "editor.h"
 #include "ui_editor.h"
 
@@ -5,9 +6,72 @@
     : QMainWindow(parent), ui(new Ui::editor)
 {
     ui->setupUi(this);
+
+    cbFlags
+        << ui->cbForts
+        << ui->cbMultiWeapon
+        << ui->cbSolidLand
+        << ui->cbBorder
+        << ui->cbDivideTeams
+        << ui->cbLowGravity
+        << ui->cbLaserSight
+        << ui->cbInvulnerable
+        << ui->cbMines
+        << ui->cbVampiric
+        << ui->cbKarma
+        << ui->cbArtillery
+        << ui->cbOneClanMode
+        ;
 }
 
 editor::~editor()
 {
     delete ui;
 }
+
+void editor::on_actionLoad_triggered()
+{
+    QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), "Missions (*.txt)");
+
+    if(!fileName.isEmpty())
+        load(fileName);
+}
+
+void editor::load(const QString & fileName)
+{
+    QFile file(fileName);
+
+    if(!file.open(QIODevice::ReadOnly))
+    {
+        QMessageBox::warning(this, "File error", "No such file");
+        return ;
+    }
+
+    QTextStream stream(&file);
+
+    while(!stream.atEnd())
+    {
+        QString line = stream.readLine();
+        if (line.startsWith("seed"))
+            ui->leSeed->setText(line.mid(5));
+        else
+        if (line.startsWith("$turntime"))
+            ui->sbTurnTime->setValue(line.mid(10).toInt());
+        else
+        if (line.startsWith("$casefreq"))
+            ui->sbCrateDrops->setValue(line.mid(10).toInt());
+        else
+        if (line.startsWith("$damagepct"))
+            ui->sbDamageModifier->setValue(line.mid(11).toInt());
+        else
+        if (line.startsWith("$gmflags"))
+        {
+            quint32 flags = line.mid(9).toInt();
+            foreach(QCheckBox * cb, cbFlags)
+            {
+                cb->setChecked(flags & 1);
+                flags >>= 1;
+            }
+        }
+    }
+}