mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-14 19:18:55 -07:00
protocol changes, menu cleanups, phase button speed improvement
This commit is contained in:
parent
ab3858239f
commit
890740bcc9
19 changed files with 514 additions and 442 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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> ¶
|
|||
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> ¶m
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue