Try to use map preview facilities:
- HWGame and HWRecorder are completely broken
- HWMap should work, but doesn't
/* * Hedgewars, a free turn based strategy game * Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com> * Copyright (c) 2004-2012 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */#include "tcpBase.h"#include <QMessageBox>#include <QList>#include <QApplication>#include <QImage>#include <QThread>#include "hwconsts.h"#ifdef HWLIBRARYextern "C" void Game(char**arguments);//NOTE: most likely subclassing QThread is wrongclass EngineThread : public QThread{protected: void run();};void EngineThread::run(){ char *args[12]; args[0] = "1"; //cShowFPS args[1] = "65000"; //ipcPort args[2] = "1024"; //cScreenWidth args[3] = "768"; //cScreenHeight args[4] = "0"; //cReducedQuality args[5] = "en.txt"; //cLocaleFName args[6] = "koda"; //UserNick args[7] = "1"; //SetSound args[8] = "1"; //SetMusic args[9] = "0"; //cAltDamage args[10]= "../Resources/hedgewars/Data"; //cPathPrefix args[11]= NULL; //recordFileName Game(args);}#endifQList<TCPBase*> srvsList;TCPBase::~TCPBase(){ // make sure this object is not in the server list anymore srvsList.removeOne(this);}TCPBase::TCPBase(QObject *parent) : QObject(parent), m_hasStarted(false){}void TCPBase::RealStart(){ onEngineStart();#ifdef HWLIBRARY EngineThread engineThread;// = new EngineThread(this); engineThread.start();#else QProcess * process; process = new QProcess(); QStringList arguments = getArguments(); // redirect everything written on stdout/stderr if(isDevBuild) process->setProcessChannelMode(QProcess::ForwardedChannels); process->start(bindir->absolutePath() + "/hwengine", arguments);#endif m_hasStarted = true;}void TCPBase::clientDisconnected(){ emit nextPlease(); deleteLater();}void TCPBase::iStart(){ disconnect(srvsList.first(), SIGNAL(nextPlease()), this, SLOT(iStart())); RealStart();}void TCPBase::start(bool couldCancelPreviousRequest){ if(srvsList.isEmpty()) { srvsList.push_back(this); RealStart(); } else { TCPBase * last = srvsList.last(); if(couldCancelPreviousRequest && last->couldBeRemoved() && (last->parent() == parent())) { srvsList.removeLast(); last->deleteLater(); start(couldCancelPreviousRequest); } else { connect(srvsList.last(), SIGNAL(nextPlease()), this, SLOT(iStart())); srvsList.push_back(this); } }}bool TCPBase::couldBeRemoved(){ return false;}