mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-10 08:14:47 -07:00
spectator leave bugfix
This commit is contained in:
parent
ca12aeb5a7
commit
ac15d1b5e8
2 changed files with 13 additions and 4 deletions
|
|
@ -232,6 +232,7 @@ void TabGame::processGameEventContainer(GameEventContainer *cont)
|
|||
if (spectators.contains(event->getPlayerId())) {
|
||||
switch (event->getItemId()) {
|
||||
case ItemId_Event_Say: eventSpectatorSay(qobject_cast<Event_Say *>(event), context); break;
|
||||
case ItemId_Event_Leave: eventSpectatorLeave(qobject_cast<Event_Leave *>(event), context); break;
|
||||
default: {
|
||||
qDebug() << "unhandled spectator game event";
|
||||
break;
|
||||
|
|
@ -305,6 +306,16 @@ void TabGame::eventSpectatorSay(Event_Say *event, GameEventContext * /*context*/
|
|||
messageLog->logSpectatorSay(spectators.value(event->getPlayerId()), event->getMessage());
|
||||
}
|
||||
|
||||
void TabGame::eventSpectatorLeave(Event_Leave *event, GameEventContext * /*context*/)
|
||||
{
|
||||
int playerId = event->getPlayerId();
|
||||
messageLog->logLeaveSpectator(spectators.value(playerId));
|
||||
playerListWidget->removePlayer(playerId);
|
||||
spectators.remove(playerId);
|
||||
|
||||
emit userEvent();
|
||||
}
|
||||
|
||||
void TabGame::eventGameStateChanged(Event_GameStateChanged *event, GameEventContext * /*context*/)
|
||||
{
|
||||
const QList<ServerInfo_Player *> &plList = event->getPlayerList();
|
||||
|
|
@ -382,10 +393,6 @@ void TabGame::eventLeave(Event_Leave *event, GameEventContext * /*context*/)
|
|||
playerListWidget->removePlayer(playerId);
|
||||
players.remove(playerId);
|
||||
delete player;
|
||||
} else if (spectators.contains(playerId)) {
|
||||
messageLog->logLeaveSpectator(spectators.value(playerId));
|
||||
playerListWidget->removePlayer(playerId);
|
||||
spectators.remove(playerId);
|
||||
}
|
||||
emit userEvent();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue