From 89b60151f3f643705efb63026a71f99088a9e6bf Mon Sep 17 00:00:00 2001 From: RickyRister Date: Mon, 21 Apr 2025 21:45:25 -0700 Subject: [PATCH] Don't support colors on face-down tokens The other client doesn't know about the color, so it causes a desync --- cockatrice/src/dialogs/dlg_create_token.cpp | 3 +++ common/server_player.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/dialogs/dlg_create_token.cpp b/cockatrice/src/dialogs/dlg_create_token.cpp index 614e9941b..904f70ad2 100644 --- a/cockatrice/src/dialogs/dlg_create_token.cpp +++ b/cockatrice/src/dialogs/dlg_create_token.cpp @@ -162,6 +162,8 @@ void DlgCreateToken::closeEvent(QCloseEvent *event) void DlgCreateToken::faceDownCheckBoxToggled(bool checked) { if (checked) { + colorEdit->setCurrentIndex(6); + colorEdit->setEnabled(false); ptEdit->clear(); ptEdit->clearFocus(); ptEdit->setEnabled(false); @@ -169,6 +171,7 @@ void DlgCreateToken::faceDownCheckBoxToggled(bool checked) annotationEdit->clearFocus(); annotationEdit->setEnabled(false); } else { + colorEdit->setEnabled(true); ptEdit->setEnabled(true); annotationEdit->setEnabled(true); } diff --git a/common/server_player.cpp b/common/server_player.cpp index f36548c5f..65f42d0b9 100644 --- a/common/server_player.cpp +++ b/common/server_player.cpp @@ -401,9 +401,9 @@ makeCreateTokenEvent(Server_CardZone *zone, Server_Card *card, int xCoord, int y if (!card->getFaceDown() || revealFacedownInfo) { event.set_card_name(card->getName().toStdString()); event.set_card_provider_id(card->getProviderId().toStdString()); - event.set_color(card->getColor().toStdString()); } + event.set_color(card->getColor().toStdString()); event.set_pt(card->getPT().toStdString()); event.set_annotation(card->getAnnotation().toStdString()); event.set_destroy_on_zone_change(card->getDestroyOnZoneChange()); @@ -1515,9 +1515,9 @@ Server_Player::cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer auto *card = new Server_Card(cardName, cardProviderId, newCardId(), xCoord, yCoord); card->moveToThread(thread()); - card->setColor(nameFromStdString(cmd.color())); // Client should already prevent face-down tokens from having attributes; this just an extra server-side check if (!cmd.face_down()) { + card->setColor(nameFromStdString(cmd.color())); card->setPT(nameFromStdString(cmd.pt())); card->setAnnotation(nameFromStdString(cmd.annotation())); }