diff -r 45db8e97d282 -r 9585435e20f7 QTfrontend/gamecfgwidget.cpp --- a/QTfrontend/gamecfgwidget.cpp Wed Dec 08 22:35:29 2010 +0100 +++ b/QTfrontend/gamecfgwidget.cpp Thu Dec 09 11:59:07 2010 +0300 @@ -30,6 +30,7 @@ #include "igbox.h" #include "hwconsts.h" #include "ammoSchemeModel.h" +#include "proto.h" GameCFGWidget::GameCFGWidget(QWidget* parent, bool externalControl) : QGroupBox(parent), mainLayout(this) @@ -170,33 +171,33 @@ return schemeData(26).toInt(); } -QStringList GameCFGWidget::getFullConfig() const +QByteArray GameCFGWidget::getFullConfig() const { - QStringList sl; + QList bcfg; int mapgen = pMapContainer->get_mapgen(); - - sl.append("eseed " + pMapContainer->getCurrentSeed()); - sl.append(QString("e$gmflags %1").arg(getGameFlags())); - sl.append(QString("e$damagepct %1").arg(schemeData(24).toInt())); - sl.append(QString("e$turntime %1").arg(schemeData(25).toInt() * 1000)); - sl.append(QString("e$sd_turns %1").arg(schemeData(27).toInt())); - sl.append(QString("e$casefreq %1").arg(schemeData(28).toInt())); - sl.append(QString("e$minestime %1").arg(schemeData(29).toInt() * 1000)); - sl.append(QString("e$minesnum %1").arg(schemeData(30).toInt())); - sl.append(QString("e$minedudpct %1").arg(schemeData(31).toInt())); - sl.append(QString("e$explosives %1").arg(schemeData(32).toInt())); - sl.append(QString("e$healthprob %1").arg(schemeData(33).toInt())); - sl.append(QString("e$hcaseamount %1").arg(schemeData(34).toInt())); - sl.append(QString("e$waterrise %1").arg(schemeData(35).toInt())); - sl.append(QString("e$healthdec %1").arg(schemeData(36).toInt())); - sl.append(QString("e$ropepct %1").arg(schemeData(37).toInt())); - sl.append(QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter())); - sl.append(QString("e$mapgen %1").arg(mapgen)); + + bcfg << QString("eseed " + pMapContainer->getCurrentSeed()).toUtf8(); + bcfg << QString("e$gmflags %1").arg(getGameFlags()).toUtf8(); + bcfg << QString("e$damagepct %1").arg(schemeData(24).toInt()).toUtf8(); + bcfg << QString("e$turntime %1").arg(schemeData(25).toInt() * 1000).toUtf8(); + bcfg << QString("e$sd_turns %1").arg(schemeData(27).toInt()).toUtf8(); + bcfg << QString("e$casefreq %1").arg(schemeData(28).toInt()).toUtf8(); + bcfg << QString("e$minestime %1").arg(schemeData(29).toInt() * 1000).toUtf8(); + bcfg << QString("e$minesnum %1").arg(schemeData(30).toInt()).toUtf8(); + bcfg << QString("e$minedudpct %1").arg(schemeData(31).toInt()).toUtf8(); + bcfg << QString("e$explosives %1").arg(schemeData(32).toInt()).toUtf8(); + bcfg << QString("e$healthprob %1").arg(schemeData(33).toInt()).toUtf8(); + bcfg << QString("e$hcaseamount %1").arg(schemeData(34).toInt()).toUtf8(); + bcfg << QString("e$waterrise %1").arg(schemeData(35).toInt()).toUtf8(); + bcfg << QString("e$healthdec %1").arg(schemeData(36).toInt()).toUtf8(); + bcfg << QString("e$ropepct %1").arg(schemeData(37).toInt()).toUtf8(); + bcfg << QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter()).toUtf8(); + bcfg << QString("e$mapgen %1").arg(mapgen).toUtf8(); switch (mapgen) { case MAPGEN_MAZE: - sl.append(QString("e$maze_size %1").arg(pMapContainer->get_maze_size())); + bcfg << QString("e$maze_size %1").arg(pMapContainer->get_maze_size()).toUtf8(); case MAPGEN_DRAWN: { @@ -204,9 +205,10 @@ while(data.size() > 0) { QByteArray tmp = data; - tmp.truncate(230); - sl << QString("edraw %1").arg(QString(tmp)); - data.remove(0, 230); + tmp.truncate(200); + tmp.prepend("edraw "); + bcfg << tmp; + data.remove(0, 200); } } default: ; @@ -215,13 +217,18 @@ QString currentMap = pMapContainer->getCurrentMap(); if (currentMap.size() > 0) { - sl.append("emap " + currentMap); + bcfg << QString("emap " + currentMap).toUtf8(); if(pMapContainer->getCurrentIsMission()) - sl.append(QString("escript Maps/%1/map.lua") - .arg(currentMap)); + bcfg << QString("escript Maps/%1/map.lua").arg(currentMap).toUtf8(); } - sl.append("etheme " + pMapContainer->getCurrentTheme()); - return sl; + bcfg << QString("etheme " + pMapContainer->getCurrentTheme()).toUtf8(); + + QByteArray result; + + foreach(QByteArray ba, bcfg) + HWProto::addByteArrayToBuffer(result, ba); + + return result; } void GameCFGWidget::setNetAmmo(const QString& name, const QString& ammo)