protocol changes, menu cleanups, phase button speed improvement

This commit is contained in:
Max-Wilhelm Bruker 2009-09-21 20:21:11 +02:00
parent ab3858239f
commit 890740bcc9
19 changed files with 514 additions and 442 deletions

View file

@ -44,27 +44,16 @@ QString ServerGame::getGameListLine() const
.arg(players.size())
.arg(maxPlayers)
.arg(creator->getPlayerName())
.arg(spectatorsAllowed ? 0 : 1)
.arg(spectatorsAllowed ? 1 : 0)
.arg(spectators.size());
}
QStringList ServerGame::getPlayerNames() const
{
QStringList result;
QListIterator<ServerSocket *> i(players);
while (i.hasNext()) {
ServerSocket *tmp = i.next();
result << QString("%1|%2").arg(tmp->getPlayerId()).arg(tmp->getPlayerName());
}
return result;
}
ServerSocket *ServerGame::getPlayer(int player_id)
ServerSocket *ServerGame::getPlayer(int playerId)
{
QListIterator<ServerSocket *> i(players);
while (i.hasNext()) {
ServerSocket *tmp = i.next();
if (tmp->getPlayerId() == player_id)
if (tmp->getPlayerId() == playerId)
return tmp;
}
return NULL;
@ -72,9 +61,10 @@ ServerSocket *ServerGame::getPlayer(int player_id)
void ServerGame::msg(const QString &s)
{
QListIterator<ServerSocket *> i(players);
while (i.hasNext())
i.next()->msg(s);
for (int i = 0; i < players.size(); ++i)
players[i]->msg(s);
for (int i = 0; i < spectators.size(); ++i)
spectators[i]->msg(s);
}
void ServerGame::broadcastEvent(const QString &cmd, ServerSocket *player)
@ -139,7 +129,6 @@ void ServerGame::addPlayer(ServerSocket *player, bool spectator)
max = tmp;
}
player->setPlayerId(max + 1);
player->msg(QString("private|||player_id|%1|%2").arg(max + 1).arg(player->getPlayerName()));
} else
player->setPlayerId(-1);

View file

@ -48,14 +48,14 @@ public:
ServerSocket *getCreator() const { return creator; }
bool getGameStarted() const { return gameStarted; }
int getPlayerCount() const { return players.size(); }
const QList<ServerSocket *> &getPlayers() const { return players; }
int getGameId() const { return gameId; }
QString getDescription() const { return description; }
QString getPassword() const { return password; }
int getMaxPlayers() const { return maxPlayers; }
bool getSpectatorsAllowed() const { return spectatorsAllowed; }
QString getGameListLine() const;
QStringList getPlayerNames() const;
ServerSocket *getPlayer(int player_id);
ServerSocket *getPlayer(int playerId);
ReturnMessage::ReturnCode checkJoin(const QString &_password, bool spectator);
void addPlayer(ServerSocket *player, bool spectator);
void removePlayer(ServerSocket *player);

View file

@ -353,7 +353,12 @@ ReturnMessage::ReturnCode ServerSocket::cmdLeaveGame(const QList<QVariant> &/*pa
ReturnMessage::ReturnCode ServerSocket::cmdListPlayers(const QList<QVariant> &/*params*/)
{
remsg->sendList(game->getPlayerNames());
QStringList result;
const QList<ServerSocket *> &players = game->getPlayers();
for (int i = 0; i < players.size(); ++i)
result << QString("%1|%2|%3").arg(players[i]->getPlayerId()).arg(players[i]->getPlayerName()).arg(players[i] == this ? 1 : 0);
remsg->sendList(result);
return ReturnMessage::ReturnOk;
}
@ -398,7 +403,7 @@ ReturnMessage::ReturnCode ServerSocket::cmdDrawCards(const QList<QVariant> &para
Card *card = deck->cards.first();
deck->cards.removeFirst();
hand->cards.append(card);
msg(QString("private|||draw|%1|%2").arg(card->getId()).arg(card->getName()));
privateEvent(QString("draw|%1|%2").arg(card->getId()).arg(card->getName()));
}
emit broadcastEvent(QString("draw|%1").arg(number), this);
@ -467,7 +472,7 @@ ReturnMessage::ReturnCode ServerSocket::cmdMoveCard(const QList<QVariant> &param
privateCardId = QString();
privateCardName = QString();
}
msg(QString("private|||move_card|%1|%2|%3|%4|%5|%6|%7|%8").arg(privateCardId)
privateEvent(QString("move_card|%1|%2|%3|%4|%5|%6|%7|%8").arg(privateCardId)
.arg(privateCardName)
.arg(startzone->getName())
.arg(position)
@ -773,14 +778,9 @@ bool ServerSocket::parseCommand(QString line)
return remsg->send(ReturnMessage::ReturnSyntaxError);
}
PlayerStatusEnum ServerSocket::getStatus()
void ServerSocket::privateEvent(const QString &line)
{
return PlayerStatus;
}
void ServerSocket::setStatus(PlayerStatusEnum status)
{
PlayerStatus = status;
msg(QString("private|%1|%2|%3").arg(playerId).arg(playerName).arg(line));
}
void ServerSocket::setGame(ServerGame *g)
@ -812,7 +812,7 @@ QStringList ServerSocket::listZones() const
void ServerSocket::msg(const QString &s)
{
qDebug(QString(">>> %1").arg(s).toLatin1());
qDebug(QString("OUT id=%1 name=%2 >>> %3").arg(playerId).arg(playerName).arg(s).toLatin1());
QTextStream stream(this);
stream.setCodec("UTF-8");
stream << s << endl;

View file

@ -107,6 +107,7 @@ private:
void clearZones();
void leaveGame();
bool parseCommand(QString line);
void privateEvent(const QString &line);
PlayerStatusEnum PlayerStatus;
ReturnMessage *remsg;
AuthenticationResult authState;
@ -117,8 +118,8 @@ public:
~ServerSocket();
void msg(const QString &s);
void setGame(ServerGame *g);
PlayerStatusEnum getStatus();
void setStatus(PlayerStatusEnum status);
PlayerStatusEnum getStatus() { return PlayerStatus; }
void setStatus(PlayerStatusEnum _status) { PlayerStatus = _status; }
void initConnection();
int getPlayerId() const { return playerId; }
void setPlayerId(int _id) { playerId = _id; }