QTfrontend/hwmap.cpp
author unc0rr
Fri, 01 May 2009 09:01:44 +0000
changeset 2021 a591afb43768
parent 1797 fedd8649fdd9
child 2948 3f21a9dc93d0
permissions -rw-r--r--
Some changes in try to fix issue when you enter room with painted map, but frontend shows generated one (most probably bug is triggered by template filters) Untested.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
172
5294ada3910b working map preview
displacer
parents: 171
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 497
diff changeset
     2
 * Hedgewars, a free turn based strategy game
486
7ea71cd3acd5 - Change proto version to 4
unc0rr
parents: 443
diff changeset
     3
 * Copyright (c) 2006, 2007 Igor Ulyanov <iulyanov@gmail.com>
172
5294ada3910b working map preview
displacer
parents: 171
diff changeset
     4
 *
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
172
5294ada3910b working map preview
displacer
parents: 171
diff changeset
     8
 *
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
    12
 * GNU General Public License for more details.
172
5294ada3910b working map preview
displacer
parents: 171
diff changeset
    13
 *
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
    15
 * along with this program; if not, write to the Free Software
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 180
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */
172
5294ada3910b working map preview
displacer
parents: 171
diff changeset
    17
497
adf1aee202c6 merge fixes from branch
displacer
parents: 486
diff changeset
    18
#include "hwconsts.h"
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    19
#include "hwmap.h"
1797
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    20
180
ea83b9e9057f tcp sockets are incapsulated in TCPBase class now
displacer
parents: 177
diff changeset
    21
HWMap::HWMap() :
ea83b9e9057f tcp sockets are incapsulated in TCPBase class now
displacer
parents: 177
diff changeset
    22
  TCPBase(false)
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    23
{
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    24
}
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    25
168
679e9b8912f5 multiple server starting improved
displacer
parents: 164
diff changeset
    26
HWMap::~HWMap()
679e9b8912f5 multiple server starting improved
displacer
parents: 164
diff changeset
    27
{
679e9b8912f5 multiple server starting improved
displacer
parents: 164
diff changeset
    28
}
679e9b8912f5 multiple server starting improved
displacer
parents: 164
diff changeset
    29
1797
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    30
void HWMap::getImage(std::string seed, int filter)
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    31
{
1797
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    32
	m_seed = seed;
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    33
	templateFilter = filter;
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    34
	Start();
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    35
}
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    36
177
c67c15e6fae3 prepare uniting tcp classes
displacer
parents: 172
diff changeset
    37
QStringList HWMap::setArguments()
c67c15e6fae3 prepare uniting tcp classes
displacer
parents: 172
diff changeset
    38
{
1797
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    39
	QStringList arguments;
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    40
	arguments << cfgdir->absolutePath();
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    41
	arguments << QString("%1").arg(ipc_port);
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    42
	arguments << "landpreview";
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    43
	return arguments;
177
c67c15e6fae3 prepare uniting tcp classes
displacer
parents: 172
diff changeset
    44
}
c67c15e6fae3 prepare uniting tcp classes
displacer
parents: 172
diff changeset
    45
c67c15e6fae3 prepare uniting tcp classes
displacer
parents: 172
diff changeset
    46
void HWMap::onClientDisconnect()
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    47
{
1790
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    48
	if (readbuffer.size() == 128 * 32 + 1)
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    49
	{
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    50
		quint8 *buf = (quint8*) readbuffer.constData();
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    51
		QImage im(buf, 256, 128, QImage::Format_Mono);
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    52
		im.setNumColors(2);
1791
7c9d645d2591 Fix passing hedgehogs number from engine to frontend
unc0rr
parents: 1790
diff changeset
    53
		emit HHLimitReceived(buf[128 * 32]);
1790
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    54
		emit ImageReceived(im);
c84223511ca8 frontend's part of nemo patch
unc0rr
parents: 1066
diff changeset
    55
	}
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    56
}
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    57
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    58
void HWMap::SendToClientFirst()
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    59
{
1797
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    60
	SendIPC(QString("eseed %1").arg(m_seed.c_str()).toLatin1());
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    61
	SendIPC(QString("e$template_filter %1").arg(templateFilter).toLatin1());
fedd8649fdd9 Templates filter by nemo
unc0rr
parents: 1791
diff changeset
    62
	SendIPC("!");
164
92cff18a3ab6 first map preview added (still experimental)
displacer
parents:
diff changeset
    63
}