From 642ce68496534b1f0f69e3dfaa2feaf6b659f18c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 28 Sep 2020 17:49:57 -0400 Subject: [PATCH] Move the offset logic one layer deeper for it to work with Command_DeckDownload AND Command_DeckSelect --- servatrice/src/servatrice_database_interface.cpp | 6 ++++++ servatrice/src/serversocketinterface.cpp | 6 +----- servatrice/src/serversocketinterface.h | 2 ++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/servatrice/src/servatrice_database_interface.cpp b/servatrice/src/servatrice_database_interface.cpp index fcb43bf95..1b3fc2bf6 100644 --- a/servatrice/src/servatrice_database_interface.cpp +++ b/servatrice/src/servatrice_database_interface.cpp @@ -868,6 +868,12 @@ DeckList *Servatrice_DatabaseInterface::getDeckFromDatabase(int deckId, int user { checkSql(); + if ((server->getGlobalDecksID() != -1) && (deckId > globalDeckOffset)) + { + deckId = deckId - globalDeckOffset; + userId = server->getGlobalDecksID(); + } + QSqlQuery *query = prepareQuery("select content from {prefix}_decklist_files where id = :id and id_user = :id_user"); query->bindValue(":id", deckId); diff --git a/servatrice/src/serversocketinterface.cpp b/servatrice/src/serversocketinterface.cpp index fbcf5accb..14b1a680b 100644 --- a/servatrice/src/serversocketinterface.cpp +++ b/servatrice/src/serversocketinterface.cpp @@ -74,7 +74,6 @@ #include static const int protocolVersion = 14; -static const int globalDeckOffset = 10000000; AbstractServerSocketInterface::AbstractServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, @@ -576,10 +575,7 @@ Response::ResponseCode AbstractServerSocketInterface::cmdDeckDownload(const Comm DeckList *deck; try { - if ((servatrice->getGlobalDecksID() != -1) && (cmd.deck_id() > globalDeckOffset)) - deck = sqlInterface->getDeckFromDatabase(cmd.deck_id() - globalDeckOffset, servatrice->getGlobalDecksID()); - else - deck = sqlInterface->getDeckFromDatabase(cmd.deck_id(), userInfo->id()); + deck = sqlInterface->getDeckFromDatabase(cmd.deck_id(), userInfo->id()); } catch (Response::ResponseCode &r) { return r; } diff --git a/servatrice/src/serversocketinterface.h b/servatrice/src/serversocketinterface.h index e85d174f8..ab4517883 100644 --- a/servatrice/src/serversocketinterface.h +++ b/servatrice/src/serversocketinterface.h @@ -27,6 +27,8 @@ #include #include +static const int globalDeckOffset = 10000000; + class Servatrice; class Servatrice_DatabaseInterface; class DeckList;