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);
}
player->processPlayerInfo(pl);
if (player->getLocal() && pl->getDeck()) {
if (player->getLocal() && !pl->getDeck()->isEmpty()) {
Deck_PictureCacher::cachePictures(pl->getDeck(), this);
deckViewContainers.value(player->getId())->setDeck(new DeckList(pl->getDeck()));
}

View file

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

View file

@ -147,6 +147,7 @@ public:
static FileFormat getFormatFromNameFilter(const QString &selectedNameFilter);
void cleanList();
bool isEmpty() const;
InnerDecklistNode *getRoot() const { return root; }
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]);
}
Event_PlayerPropertiesChanged::Event_PlayerPropertiesChanged(ServerInfo_PlayerProperties *_properties)
: GameEvent("player_properties_changed", -1)
Event_PlayerPropertiesChanged::Event_PlayerPropertiesChanged(int _playerId, ServerInfo_PlayerProperties *_properties)
: GameEvent("player_properties_changed", _playerId)
{
if (!_properties)
_properties = new ServerInfo_PlayerProperties;

View file

@ -337,7 +337,7 @@ public:
class Event_PlayerPropertiesChanged : public GameEvent {
Q_OBJECT
public:
Event_PlayerPropertiesChanged(ServerInfo_PlayerProperties *_properties = 0);
Event_PlayerPropertiesChanged(int _playerId = -1, ServerInfo_PlayerProperties *_properties = 0);
static SerializableItem *newItem() { return new Event_PlayerPropertiesChanged; }
int getItemId() const { return ItemId_Event_PlayerPropertiesChanged; }
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)
{
activePlayer = _activePlayer;
sendGameEvent(new Event_SetActivePlayer(-1, activePlayer));
sendGameEvent(new Event_SetActivePlayer(activePlayer, activePlayer));
setActivePhase(0);
}

View file

@ -365,7 +365,7 @@ ResponseCode Server_ProtocolHandler::cmdDeckSelect(Command_DeckSelect *cmd, Comm
}
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)));
return RespNothing;
@ -392,7 +392,7 @@ ResponseCode Server_ProtocolHandler::cmdConcede(Command_Concede * /*cmd*/, Comma
return RespFunctionNotAllowed;
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();
return RespOk;
}
@ -409,7 +409,7 @@ ResponseCode Server_ProtocolHandler::cmdReadyStart(Command_ReadyStart *cmd, Comm
return RespContextError;
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();
return RespOk;
}