Major design change in network protocol: Player information is now requested by clients whenever it is needed. The server only sends player ids. The client has a cache with player information.
This commit is contained in:
@@ -110,6 +110,7 @@ void ServerGuiWrapper::SignalNetClientGameInfo(int actionID) { if (myClientcb) m
|
||||
void ServerGuiWrapper::SignalNetClientError(int errorID, int osErrorID) { if (myClientcb) myClientcb->SignalNetClientError(errorID, osErrorID); }
|
||||
void ServerGuiWrapper::SignalNetClientSelfJoined(const string &playerName, PlayerRights rights) { if (myClientcb) myClientcb->SignalNetClientSelfJoined(playerName, rights); }
|
||||
void ServerGuiWrapper::SignalNetClientPlayerJoined(const string &playerName, PlayerRights rights) { if (myClientcb) myClientcb->SignalNetClientPlayerJoined(playerName, rights); }
|
||||
void ServerGuiWrapper::SignalNetClientPlayerChanged(const std::string &oldPlayerName, const std::string &newPlayerName) { if (myClientcb) myClientcb->SignalNetClientPlayerChanged(oldPlayerName, newPlayerName); }
|
||||
void ServerGuiWrapper::SignalNetClientPlayerLeft(const string &playerName) { if (myClientcb) myClientcb->SignalNetClientPlayerLeft(playerName); }
|
||||
void ServerGuiWrapper::SignalNetClientGameListNew(const string &gameName) { if (myClientcb) myClientcb->SignalNetClientGameListNew(gameName); }
|
||||
void ServerGuiWrapper::SignalNetClientGameListRemove(const string &gameName) { if (myClientcb) myClientcb->SignalNetClientGameListRemove(gameName); }
|
||||
|
||||
@@ -94,6 +94,7 @@ public:
|
||||
void SignalNetClientError(int errorID, int osErrorID);
|
||||
void SignalNetClientSelfJoined(const std::string &playerName, PlayerRights rights);
|
||||
void SignalNetClientPlayerJoined(const std::string &playerName, PlayerRights rights);
|
||||
void SignalNetClientPlayerChanged(const std::string &oldPlayerName, const std::string &newPlayerName);
|
||||
void SignalNetClientPlayerLeft(const std::string &playerName);
|
||||
void SignalNetClientChatMsg(const std::string &playerName, const std::string &msg);
|
||||
void SignalNetClientWaitDialog();
|
||||
|
||||
@@ -113,6 +113,10 @@ void GuiWrapper::SignalNetClientGameInfo(int actionID) { myW->signalNetClientGam
|
||||
void GuiWrapper::SignalNetClientError(int errorID, int osErrorID) { myW->signalNetClientError(errorID, osErrorID); }
|
||||
void GuiWrapper::SignalNetClientSelfJoined(const string &playerName, PlayerRights rights) { myW->signalNetClientSelfJoined(QString::fromUtf8(playerName.c_str()), rights); }
|
||||
void GuiWrapper::SignalNetClientPlayerJoined(const string &playerName, PlayerRights rights) { myW->signalNetClientPlayerJoined(QString::fromUtf8(playerName.c_str()), rights); }
|
||||
void GuiWrapper::SignalNetClientPlayerChanged(const string &oldPlayerName, const string &newPlayerName)
|
||||
{
|
||||
myW->signalNetClientPlayerChanged(QString::fromUtf8(oldPlayerName.c_str()), QString::fromUtf8(newPlayerName.c_str()));
|
||||
}
|
||||
void GuiWrapper::SignalNetClientPlayerLeft(const string &playerName)
|
||||
{
|
||||
QString tmpName(QString::fromUtf8(playerName.c_str()));
|
||||
|
||||
@@ -101,6 +101,7 @@ public:
|
||||
void SignalNetClientError(int errorID, int osErrorID);
|
||||
void SignalNetClientSelfJoined(const std::string &playerName, PlayerRights rights);
|
||||
void SignalNetClientPlayerJoined(const std::string &playerName, PlayerRights rights);
|
||||
void SignalNetClientPlayerChanged(const std::string &oldPlayerName, const std::string &newPlayerName);
|
||||
void SignalNetClientPlayerLeft(const std::string &playerName);
|
||||
void SignalNetClientChatMsg(const std::string &playerName, const std::string &msg);
|
||||
void SignalNetClientWaitDialog();
|
||||
|
||||
@@ -651,7 +651,13 @@ mainWindowImpl::mainWindowImpl(ConfigFile *c, QMainWindow *parent)
|
||||
connect(this, SIGNAL(signalNetClientGameInfo(int)), myStartNetworkGameDialog, SLOT(refresh(int)));
|
||||
connect(this, SIGNAL(signalNetClientSelfJoined(QString, int)), myStartNetworkGameDialog, SLOT(joinedNetworkGame(QString, int)));
|
||||
connect(this, SIGNAL(signalNetClientPlayerJoined(QString, int)), myStartNetworkGameDialog, SLOT(addConnectedPlayer(QString, int)));
|
||||
connect(this, SIGNAL(signalNetClientPlayerChanged(QString, QString)), myStartNetworkGameDialog, SLOT(updatePlayer(QString, QString)));
|
||||
connect(this, SIGNAL(signalNetClientPlayerLeft(QString)), myStartNetworkGameDialog, SLOT(removePlayer(QString)));
|
||||
|
||||
connect(this, SIGNAL(signalNetClientSelfJoined(QString, int)), myGameLobbyDialog, SLOT(joinedNetworkGame(QString, int)));
|
||||
connect(this, SIGNAL(signalNetClientPlayerJoined(QString, int)), myGameLobbyDialog, SLOT(addConnectedPlayer(QString, int)));
|
||||
connect(this, SIGNAL(signalNetClientPlayerChanged(QString, QString)), myGameLobbyDialog, SLOT(updatePlayer(QString, QString)));
|
||||
connect(this, SIGNAL(signalNetClientPlayerLeft(QString)), myGameLobbyDialog, SLOT(removePlayer(QString)));
|
||||
connect(this, SIGNAL(signalNetClientGameListNew(QString)), myGameLobbyDialog, SLOT(addGame(QString)));
|
||||
connect(this, SIGNAL(signalNetClientGameListRemove(QString)), myGameLobbyDialog, SLOT(removeGame(QString)));
|
||||
|
||||
|
||||
@@ -128,6 +128,7 @@ signals:
|
||||
void signalNetServerError(int errorID, int osErrorID);
|
||||
void signalNetClientSelfJoined(QString playerName, int rights);
|
||||
void signalNetClientPlayerJoined(QString playerName, int rights);
|
||||
void signalNetClientPlayerChanged(QString oldPlayerName, QString newPlayerName);
|
||||
void signalNetClientPlayerLeft(QString playerName);
|
||||
void signalNetClientGameListNew(QString gameName);
|
||||
void signalNetClientGameListRemove(QString gameName);
|
||||
|
||||
@@ -74,6 +74,14 @@ void startNetworkGameDialogImpl::addConnectedPlayer(QString playerName, int righ
|
||||
checkPlayerQuantity();
|
||||
}
|
||||
|
||||
void startNetworkGameDialogImpl::updatePlayer(QString oldPlayerName, QString newPlayerName)
|
||||
{
|
||||
QList<QTreeWidgetItem *> list = treeWidget->findItems(oldPlayerName, Qt::MatchExactly, 0);
|
||||
if(!list.empty()) {
|
||||
list[0]->setText(0, newPlayerName);
|
||||
}
|
||||
}
|
||||
|
||||
void startNetworkGameDialogImpl::removePlayer(QString playerName) {
|
||||
|
||||
QList<QTreeWidgetItem *> list = treeWidget->findItems(playerName, Qt::MatchExactly, 0);
|
||||
|
||||
@@ -47,6 +47,7 @@ public slots:
|
||||
void refresh(int actionID);
|
||||
void joinedNetworkGame(QString playerName, int rights);
|
||||
void addConnectedPlayer(QString playerName, int rights);
|
||||
void updatePlayer(QString oldPlayerName, QString newPlayerName);
|
||||
void removePlayer(QString playerName);
|
||||
void playerSelected(QTreeWidgetItem*, int);
|
||||
void kickPlayer();
|
||||
|
||||
Reference in New Issue
Block a user