minor fixes
This commit is contained in:
parent
748d9bb603
commit
13b6a360d2
15 changed files with 58 additions and 65 deletions
|
@ -15,6 +15,7 @@ CardDragItem::CardDragItem(QGraphicsScene *scene, CardZone *_startZone, QPixmap
|
|||
|
||||
setZValue(2000000000);
|
||||
setCacheMode(DeviceCoordinateCache);
|
||||
setCursor(Qt::ClosedHandCursor);
|
||||
|
||||
if (!parent)
|
||||
scene->addItem(this);
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
CardItem::CardItem(CardDatabase *_db, const QString &_name, int _cardid, QGraphicsItem *parent)
|
||||
: QGraphicsItem(parent), db(_db), name(_name), id(_cardid), tapped(false), attacking(false), facedown(false), counters(0), doesntUntap(false), dragItem(NULL)
|
||||
{
|
||||
width = CARD_WIDTH;
|
||||
height = CARD_HEIGHT;
|
||||
image = db->getCard(name)->getPixmap();
|
||||
setCursor(Qt::OpenHandCursor);
|
||||
setFlag(ItemIsSelectable);
|
||||
|
@ -27,13 +25,11 @@ CardItem::~CardItem()
|
|||
|
||||
QRectF CardItem::boundingRect() const
|
||||
{
|
||||
return QRectF(0, 0, width, height);
|
||||
return QRectF(0, 0, CARD_WIDTH, CARD_HEIGHT);
|
||||
}
|
||||
|
||||
void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||
void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget */*widget*/)
|
||||
{
|
||||
Q_UNUSED(widget);
|
||||
|
||||
painter->save();
|
||||
QRectF foo = option->matrix.mapRect(boundingRect());
|
||||
qDebug(QString("%1: w=%2,h=%3").arg(name).arg(foo.width()).arg(foo.height()).toLatin1());
|
||||
|
@ -46,7 +42,7 @@ void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|||
painter->drawPixmap(boundingRect(), bar, bar.rect());
|
||||
if (isSelected()) {
|
||||
painter->setPen(QPen(QColor("red")));
|
||||
painter->drawRect(QRectF(1, 1, width - 2, height - 2));
|
||||
painter->drawRect(QRectF(1, 1, CARD_WIDTH - 2, CARD_HEIGHT - 2));
|
||||
}
|
||||
if (counters) {
|
||||
painter->setFont(QFont("Times", 32, QFont::Bold));
|
||||
|
@ -69,7 +65,7 @@ void CardItem::setTapped(bool _tapped)
|
|||
{
|
||||
tapped = _tapped;
|
||||
if (tapped)
|
||||
setTransform(QTransform().translate((float) width / 2, (float) height / 2).rotate(90).translate((float) -width / 2, (float) -height / 2));
|
||||
setTransform(QTransform().translate((float) CARD_WIDTH / 2, (float) CARD_HEIGHT / 2).rotate(90).translate((float) -CARD_WIDTH / 2, (float) -CARD_HEIGHT / 2));
|
||||
else
|
||||
setTransform(QTransform());
|
||||
update(boundingRect());
|
||||
|
@ -161,19 +157,16 @@ void CardItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
|||
CardDragItem *drag = new CardDragItem(scene(), (CardZone *) parentItem(), c->getImage(), c->getId(), QPointF(), false, dragItem);
|
||||
drag->setPos(c->pos() - pos());
|
||||
}
|
||||
|
||||
setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
|
||||
void CardItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
void CardItem::mouseReleaseEvent(QGraphicsSceneMouseEvent */*event*/)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
|
||||
void CardItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
if (!isSelected()) {
|
||||
// Unselect all items, then select this one
|
||||
scene()->setSelectionArea(QPainterPath());
|
||||
|
|
|
@ -34,7 +34,6 @@ private:
|
|||
CardDatabase *db;
|
||||
QString name;
|
||||
int id;
|
||||
int width, height;
|
||||
QPixmap *image;
|
||||
bool tapped;
|
||||
bool attacking;
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
#include "client.h"
|
||||
|
||||
Client::Client(QObject *parent)
|
||||
: QObject(parent), MsgId(0)
|
||||
: QObject(parent), status(StatusDisconnected), MsgId(0)
|
||||
{
|
||||
timer = new QTimer(this);
|
||||
timer->setInterval(1000);
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(checkTimeout()));
|
||||
|
||||
status = StatusDisconnected;
|
||||
socket = new QTcpSocket(this);
|
||||
socket->setTextModeEnabled(true);
|
||||
connect(socket, SIGNAL(connected()), this, SLOT(slotConnected()));
|
||||
|
@ -19,7 +18,6 @@ Client::Client(QObject *parent)
|
|||
Client::~Client()
|
||||
{
|
||||
disconnectFromServer();
|
||||
delete socket;
|
||||
}
|
||||
|
||||
void Client::checkTimeout()
|
||||
|
@ -54,11 +52,8 @@ void Client::slotConnected()
|
|||
|
||||
void Client::readLine()
|
||||
{
|
||||
QString line;
|
||||
for (;;) {
|
||||
if (!socket->canReadLine())
|
||||
break;
|
||||
line = QString(socket->readLine()).trimmed();
|
||||
while (socket->canReadLine()) {
|
||||
QString line = QString(socket->readLine()).trimmed();
|
||||
|
||||
if (line.isNull())
|
||||
break;
|
||||
|
@ -67,9 +62,9 @@ void Client::readLine()
|
|||
QString prefix = values.takeFirst();
|
||||
// prefix is one of {welcome, private, public, resp, list_games, list_players, list_counters, list_zones, dump_zone}
|
||||
if (!(prefix.compare("private") && prefix.compare("public"))) {
|
||||
ServerEventData *event = new ServerEventData(line);
|
||||
if (event->getEventType() == eventPlayerId) {
|
||||
QStringList data = event->getEventData();
|
||||
ServerEventData event(line);
|
||||
if (event.getEventType() == eventPlayerId) {
|
||||
QStringList data = event.getEventData();
|
||||
if (data.size() != 2) {
|
||||
// XXX
|
||||
}
|
||||
|
@ -78,7 +73,6 @@ void Client::readLine()
|
|||
if (!ok) {
|
||||
// XXX
|
||||
}
|
||||
delete event;
|
||||
emit playerIdReceived(id, data[1]);
|
||||
} else
|
||||
emit gameEvent(event);
|
||||
|
|
|
@ -32,7 +32,7 @@ signals:
|
|||
void zoneDumpReceived(int commandId, QList<ServerZoneCard *> cards);
|
||||
void responseReceived(ServerResponse *response);
|
||||
void playerIdReceived(int id, QString name);
|
||||
void gameEvent(ServerEventData *msg);
|
||||
void gameEvent(const ServerEventData &msg);
|
||||
void serverTimeout();
|
||||
void logSocketError(const QString &errorString);
|
||||
|
||||
|
@ -57,7 +57,7 @@ private:
|
|||
public:
|
||||
Client(QObject *parent = 0);
|
||||
~Client();
|
||||
ProtocolStatus getStatus() { return status; }
|
||||
ProtocolStatus getStatus() const { return status; }
|
||||
QString peerName() const { return socket->peerName(); }
|
||||
|
||||
void connectToServer(const QString &hostname, unsigned int port, const QString &playername, const QString &password);
|
||||
|
|
|
@ -18,7 +18,7 @@ Game::Game(CardDatabase *_db, Client *_client, QGraphicsScene *_scene, QMenu *_a
|
|||
QRectF sr = scene->sceneRect();
|
||||
localPlayer = addPlayer(playerId, playerName, QPointF(0, sr.y() + sr.height() / 2 + 2), true);
|
||||
|
||||
connect(client, SIGNAL(gameEvent(ServerEventData *)), this, SLOT(gameEvent(ServerEventData *)));
|
||||
connect(client, SIGNAL(gameEvent(const ServerEventData &)), this, SLOT(gameEvent(const ServerEventData &)));
|
||||
connect(client, SIGNAL(playerListReceived(QList<ServerPlayer *>)), this, SLOT(playerListReceived(QList<ServerPlayer *>)));
|
||||
|
||||
aUntapAll = new QAction(tr("&Untap all permanents"), this);
|
||||
|
@ -154,36 +154,38 @@ void Game::restartGameDialog()
|
|||
dlgStartGame->show();
|
||||
}
|
||||
|
||||
void Game::gameEvent(ServerEventData *msg)
|
||||
void Game::gameEvent(const ServerEventData &msg)
|
||||
{
|
||||
qDebug(QString("game::gameEvent: public=%1, player=%2, name=%3, type=%4, data=%5").arg(msg->getPublic()).arg(msg->getPlayerId()).arg(msg->getPlayerName()).arg(msg->getEventType()).arg(msg->getEventData().join("/")).toLatin1());
|
||||
if (!msg->getPublic())
|
||||
qDebug(QString("game::gameEvent: public=%1, player=%2, name=%3, type=%4, data=%5").arg(msg.getPublic()).arg(msg.getPlayerId()).arg(msg.getPlayerName()).arg(msg.getEventType()).arg(msg.getEventData().join("/")).toLatin1());
|
||||
if (!msg.getPublic())
|
||||
localPlayer->gameEvent(msg);
|
||||
else {
|
||||
Player *p = players.findPlayer(msg->getPlayerId());
|
||||
Player *p = players.findPlayer(msg.getPlayerId());
|
||||
if (!p) {
|
||||
// XXX
|
||||
}
|
||||
|
||||
switch(msg->getEventType()) {
|
||||
switch(msg.getEventType()) {
|
||||
case eventSay:
|
||||
emit logSay(p->getName(), msg->getEventData()[0]);
|
||||
emit logSay(p->getName(), msg.getEventData()[0]);
|
||||
break;
|
||||
case eventJoin: {
|
||||
emit logJoin(msg->getPlayerName());
|
||||
addPlayer(msg->getPlayerId(), msg->getPlayerName(), QPointF(0, 0), false);
|
||||
emit logJoin(msg.getPlayerName());
|
||||
addPlayer(msg.getPlayerId(), msg.getPlayerName(), QPointF(0, 0), false);
|
||||
break;
|
||||
}
|
||||
case eventLeave:
|
||||
emit logLeave(msg->getPlayerName());
|
||||
emit logLeave(msg.getPlayerName());
|
||||
// XXX Spieler natürlich noch rauswerfen
|
||||
break;
|
||||
case eventReadyStart:
|
||||
if (started) {
|
||||
started = false;
|
||||
emit logReadyStart(p->getName());
|
||||
if (!p->getLocal())
|
||||
if (!p->getLocal()) {
|
||||
// XXX Zoneviews schließen
|
||||
restartGameDialog();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case eventGameStart:
|
||||
|
@ -194,7 +196,7 @@ void Game::gameEvent(ServerEventData *msg)
|
|||
emit logShuffle(p->getName());
|
||||
break;
|
||||
case eventRollDice: {
|
||||
QStringList data = msg->getEventData();
|
||||
QStringList data = msg.getEventData();
|
||||
int sides = data[0].toInt();
|
||||
int roll = data[1].toInt();
|
||||
emit logRollDice(p->getName(), sides, roll);
|
||||
|
@ -217,19 +219,19 @@ void Game::gameEvent(ServerEventData *msg)
|
|||
break;
|
||||
}
|
||||
case eventDumpZone: {
|
||||
QStringList data = msg->getEventData();
|
||||
QStringList data = msg.getEventData();
|
||||
emit logDumpZone(p->getName(), data[1], players.findPlayer(data[0].toInt())->getName(), data[2].toInt());
|
||||
break;
|
||||
}
|
||||
case eventMoveCard: {
|
||||
if (msg->getPlayerId() == localPlayer->getId())
|
||||
if (msg.getPlayerId() == localPlayer->getId())
|
||||
break;
|
||||
p->gameEvent(msg);
|
||||
break;
|
||||
}
|
||||
case eventDraw: {
|
||||
emit logDraw(p->getName(), msg->getEventData()[0].toInt());
|
||||
if (msg->getPlayerId() == localPlayer->getId())
|
||||
emit logDraw(p->getName(), msg.getEventData()[0].toInt());
|
||||
if (msg.getPlayerId() == localPlayer->getId())
|
||||
break;
|
||||
p->gameEvent(msg);
|
||||
break;
|
||||
|
|
|
@ -47,7 +47,7 @@ private slots:
|
|||
void actSetCounters();
|
||||
void actRearrange();
|
||||
|
||||
void gameEvent(ServerEventData *msg);
|
||||
void gameEvent(const ServerEventData &msg);
|
||||
void playerListReceived(QList<ServerPlayer *> playerList);
|
||||
void readyStart();
|
||||
signals:
|
||||
|
|
|
@ -10,6 +10,7 @@ GraveZone::GraveZone(Player *_p, QGraphicsItem *parent)
|
|||
{
|
||||
cards = new CardList(true);
|
||||
setCacheMode(DeviceCoordinateCache); // Do not move this line to the parent constructor!
|
||||
setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
|
||||
QRectF GraveZone::boundingRect() const
|
||||
|
@ -19,6 +20,7 @@ QRectF GraveZone::boundingRect() const
|
|||
|
||||
void GraveZone::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||
{
|
||||
qDebug("grave: paint");
|
||||
if (!cards->isEmpty())
|
||||
cards->at(0)->paint(painter, option, widget);
|
||||
|
||||
|
@ -46,6 +48,7 @@ void GraveZone::handleDropEvent(int cardId, CardZone *startZone, const QPoint &/
|
|||
|
||||
void GraveZone::reorganizeCards()
|
||||
{
|
||||
qDebug(QString("grave: reorganize, x=%1, y=%2, w=%3, h=%4").arg(boundingRect().x()).arg(boundingRect().y()).arg(boundingRect().width()).arg(boundingRect().height()).toLatin1());
|
||||
update(boundingRect());
|
||||
}
|
||||
|
||||
|
|
|
@ -143,10 +143,10 @@ void Player::setCardAttrHelper(CardItem *card, const QString &aname, const QStri
|
|||
}
|
||||
}
|
||||
|
||||
void Player::gameEvent(ServerEventData *event)
|
||||
void Player::gameEvent(const ServerEventData &event)
|
||||
{
|
||||
QStringList data = event->getEventData();
|
||||
switch (event->getEventType()) {
|
||||
QStringList data = event.getEventData();
|
||||
switch (event.getEventType()) {
|
||||
case eventSetupZones: {
|
||||
// XXX Life counter
|
||||
int deck_cards = data[0].toInt();
|
||||
|
@ -186,7 +186,7 @@ void Player::gameEvent(ServerEventData *event)
|
|||
case eventDraw: {
|
||||
CardZone *deck = zones.findZone("deck");
|
||||
CardZone *hand = zones.findZone("hand");
|
||||
if (!event->getPublic()) {
|
||||
if (!event.getPublic()) {
|
||||
hand->addCard(deck->takeCard(0, data[0].toInt(), data[1]), true, -1);
|
||||
} else {
|
||||
int number = data[0].toInt();
|
||||
|
|
|
@ -62,7 +62,7 @@ public:
|
|||
QString getName() const { return name; }
|
||||
bool getLocal() const { return local; }
|
||||
const ZoneList *getZones() const { return &zones; }
|
||||
void gameEvent(ServerEventData *event);
|
||||
void gameEvent(const ServerEventData &event);
|
||||
void hoverCardEvent(CardItem *card);
|
||||
CardDatabase *getDb() const { return db; }
|
||||
void showCardMenu(const QPoint &p);
|
||||
|
|
|
@ -10,6 +10,7 @@ RfgZone::RfgZone(Player *_p, QGraphicsItem *parent)
|
|||
{
|
||||
cards = new CardList(true);
|
||||
setCacheMode(DeviceCoordinateCache); // Do not move this line to the parent constructor!
|
||||
setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
|
||||
QRectF RfgZone::boundingRect() const
|
||||
|
|
|
@ -45,11 +45,11 @@ private:
|
|||
QStringList EventData;
|
||||
public:
|
||||
ServerEventData(const QString &line);
|
||||
bool getPublic() { return IsPublic; }
|
||||
int getPlayerId() { return PlayerId; }
|
||||
QString getPlayerName() { return PlayerName; }
|
||||
ServerEventType getEventType() { return EventType; }
|
||||
QStringList getEventData() { return EventData; }
|
||||
bool getPublic() const { return IsPublic; }
|
||||
int getPlayerId() const { return PlayerId; }
|
||||
QString getPlayerName() const { return PlayerName; }
|
||||
ServerEventType getEventType() const { return EventType; }
|
||||
QStringList getEventData() const { return EventData; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -12,12 +12,12 @@ private:
|
|||
public:
|
||||
ServerGame(int _gameId, const QString &_creator, const QString &_description, bool _hasPassword, unsigned char _playerCount, unsigned char _maxPlayers)
|
||||
: gameId(_gameId), creator(_creator), description(_description), hasPassword(_hasPassword), playerCount(_playerCount), maxPlayers(_maxPlayers) { }
|
||||
int getGameId() { return gameId; }
|
||||
QString getCreator() { return creator; }
|
||||
QString getDescription() { return description; }
|
||||
bool getHasPassword() { return hasPassword; }
|
||||
unsigned char getPlayerCount() { return playerCount; }
|
||||
unsigned char getMaxPlayers() { return maxPlayers; }
|
||||
int getGameId() const { return gameId; }
|
||||
QString getCreator() const { return creator; }
|
||||
QString getDescription() const { return description; }
|
||||
bool getHasPassword() const { return hasPassword; }
|
||||
unsigned char getPlayerCount() const { return playerCount; }
|
||||
unsigned char getMaxPlayers() const { return maxPlayers; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -10,8 +10,8 @@ private:
|
|||
public:
|
||||
ServerPlayer(int _PlayerId, const QString &_name)
|
||||
: PlayerId(_PlayerId), name(_name) { }
|
||||
int getPlayerId() { return PlayerId; }
|
||||
QString getName() { return name; }
|
||||
int getPlayerId() const { return PlayerId; }
|
||||
QString getName() const { return name; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -14,9 +14,9 @@ private:
|
|||
public:
|
||||
ServerResponse(int _msgId, bool _ok, ServerErrorMessage _message)
|
||||
: msgId(_msgId), ok(_ok), message(_message) { }
|
||||
int getMsgId() { return msgId; }
|
||||
bool getOk() { return ok; }
|
||||
ServerErrorMessage getMessage() { return message; }
|
||||
int getMsgId() const { return msgId; }
|
||||
bool getOk() const { return ok; }
|
||||
ServerErrorMessage getMessage() const { return message; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue