single player fix

This commit is contained in:
Max-Wilhelm Bruker 2010-09-08 20:15:34 +02:00
parent 135fed79ca
commit a5f678bc3d
7 changed files with 14 additions and 8 deletions

View file

@ -494,7 +494,7 @@ void TabGame::eventGameStateChanged(Event_GameStateChanged *event, GameEventCont
playerListWidget->addPlayer(prop); playerListWidget->addPlayer(prop);
} }
player->processPlayerInfo(pl); player->processPlayerInfo(pl);
if (player->getLocal() && pl->getDeck()) { if (player->getLocal() && !pl->getDeck()->isEmpty()) {
Deck_PictureCacher::cachePictures(pl->getDeck(), this); Deck_PictureCacher::cachePictures(pl->getDeck(), this);
deckViewContainers.value(player->getId())->setDeck(new DeckList(pl->getDeck())); deckViewContainers.value(player->getId())->setDeck(new DeckList(pl->getDeck()));
} }

View file

@ -470,6 +470,11 @@ void DeckList::cleanList()
setComments(); setComments();
} }
bool DeckList::isEmpty() const
{
return root->isEmpty();
}
DecklistCardNode *DeckList::addCard(const QString &cardName, const QString &zoneName) DecklistCardNode *DeckList::addCard(const QString &cardName, const QString &zoneName)
{ {
InnerDecklistNode *zoneNode = dynamic_cast<InnerDecklistNode *>(root->findChild(zoneName)); InnerDecklistNode *zoneNode = dynamic_cast<InnerDecklistNode *>(root->findChild(zoneName));

View file

@ -147,6 +147,7 @@ public:
static FileFormat getFormatFromNameFilter(const QString &selectedNameFilter); static FileFormat getFormatFromNameFilter(const QString &selectedNameFilter);
void cleanList(); void cleanList();
bool isEmpty() const;
InnerDecklistNode *getRoot() const { return root; } InnerDecklistNode *getRoot() const { return root; }
DecklistCardNode *addCard(const QString &cardName, const QString &zoneName); DecklistCardNode *addCard(const QString &cardName, const QString &zoneName);

View file

@ -358,8 +358,8 @@ Event_GameStateChanged::Event_GameStateChanged(bool _gameStarted, int _activePla
itemList.append(_playerList[i]); itemList.append(_playerList[i]);
} }
Event_PlayerPropertiesChanged::Event_PlayerPropertiesChanged(ServerInfo_PlayerProperties *_properties) Event_PlayerPropertiesChanged::Event_PlayerPropertiesChanged(int _playerId, ServerInfo_PlayerProperties *_properties)
: GameEvent("player_properties_changed", -1) : GameEvent("player_properties_changed", _playerId)
{ {
if (!_properties) if (!_properties)
_properties = new ServerInfo_PlayerProperties; _properties = new ServerInfo_PlayerProperties;

View file

@ -337,7 +337,7 @@ public:
class Event_PlayerPropertiesChanged : public GameEvent { class Event_PlayerPropertiesChanged : public GameEvent {
Q_OBJECT Q_OBJECT
public: public:
Event_PlayerPropertiesChanged(ServerInfo_PlayerProperties *_properties = 0); Event_PlayerPropertiesChanged(int _playerId = -1, ServerInfo_PlayerProperties *_properties = 0);
static SerializableItem *newItem() { return new Event_PlayerPropertiesChanged; } static SerializableItem *newItem() { return new Event_PlayerPropertiesChanged; }
int getItemId() const { return ItemId_Event_PlayerPropertiesChanged; } int getItemId() const { return ItemId_Event_PlayerPropertiesChanged; }
ServerInfo_PlayerProperties *getProperties() const { return static_cast<ServerInfo_PlayerProperties *>(itemMap.value("player_properties")); } ServerInfo_PlayerProperties *getProperties() const { return static_cast<ServerInfo_PlayerProperties *>(itemMap.value("player_properties")); }

View file

@ -234,7 +234,7 @@ void Server_Game::removePlayer(Server_Player *player)
void Server_Game::setActivePlayer(int _activePlayer) void Server_Game::setActivePlayer(int _activePlayer)
{ {
activePlayer = _activePlayer; activePlayer = _activePlayer;
sendGameEvent(new Event_SetActivePlayer(-1, activePlayer)); sendGameEvent(new Event_SetActivePlayer(activePlayer, activePlayer));
setActivePhase(0); setActivePhase(0);
} }

View file

@ -365,7 +365,7 @@ ResponseCode Server_ProtocolHandler::cmdDeckSelect(Command_DeckSelect *cmd, Comm
} }
player->setDeck(deck, cmd->getDeckId()); player->setDeck(deck, cmd->getDeckId());
game->sendGameEvent(new Event_PlayerPropertiesChanged(player->getProperties()), new Context_DeckSelect(cmd->getDeckId())); game->sendGameEvent(new Event_PlayerPropertiesChanged(player->getPlayerId(), player->getProperties()), new Context_DeckSelect(cmd->getDeckId()));
cont->setResponse(new Response_DeckDownload(cont->getCmdId(), RespOk, new DeckList(deck))); cont->setResponse(new Response_DeckDownload(cont->getCmdId(), RespOk, new DeckList(deck)));
return RespNothing; return RespNothing;
@ -392,7 +392,7 @@ ResponseCode Server_ProtocolHandler::cmdConcede(Command_Concede * /*cmd*/, Comma
return RespFunctionNotAllowed; return RespFunctionNotAllowed;
player->setConceded(true); player->setConceded(true);
game->sendGameEvent(new Event_PlayerPropertiesChanged(player->getProperties()), new Context_Concede); game->sendGameEvent(new Event_PlayerPropertiesChanged(player->getPlayerId(), player->getProperties()), new Context_Concede);
game->stopGameIfFinished(); game->stopGameIfFinished();
return RespOk; return RespOk;
} }
@ -409,7 +409,7 @@ ResponseCode Server_ProtocolHandler::cmdReadyStart(Command_ReadyStart *cmd, Comm
return RespContextError; return RespContextError;
player->setReadyStart(cmd->getReady()); player->setReadyStart(cmd->getReady());
game->sendGameEvent(new Event_PlayerPropertiesChanged(player->getProperties()), new Context_ReadyStart); game->sendGameEvent(new Event_PlayerPropertiesChanged(player->getPlayerId(), player->getProperties()), new Context_ReadyStart);
game->startGameIfReady(); game->startGameIfReady();
return RespOk; return RespOk;
} }