Move the offset logic one layer deeper for it to work with Command_DeckDownload AND Command_DeckSelect

This commit is contained in:
root 2020-09-28 17:49:57 -04:00
parent 7b01874459
commit 642ce68496
3 changed files with 9 additions and 5 deletions

View file

@ -868,6 +868,12 @@ DeckList *Servatrice_DatabaseInterface::getDeckFromDatabase(int deckId, int user
{ {
checkSql(); checkSql();
if ((server->getGlobalDecksID() != -1) && (deckId > globalDeckOffset))
{
deckId = deckId - globalDeckOffset;
userId = server->getGlobalDecksID();
}
QSqlQuery *query = QSqlQuery *query =
prepareQuery("select content from {prefix}_decklist_files where id = :id and id_user = :id_user"); prepareQuery("select content from {prefix}_decklist_files where id = :id and id_user = :id_user");
query->bindValue(":id", deckId); query->bindValue(":id", deckId);

View file

@ -74,7 +74,6 @@
#include <string> #include <string>
static const int protocolVersion = 14; static const int protocolVersion = 14;
static const int globalDeckOffset = 10000000;
AbstractServerSocketInterface::AbstractServerSocketInterface(Servatrice *_server, AbstractServerSocketInterface::AbstractServerSocketInterface(Servatrice *_server,
Servatrice_DatabaseInterface *_databaseInterface, Servatrice_DatabaseInterface *_databaseInterface,
@ -576,10 +575,7 @@ Response::ResponseCode AbstractServerSocketInterface::cmdDeckDownload(const Comm
DeckList *deck; DeckList *deck;
try { try {
if ((servatrice->getGlobalDecksID() != -1) && (cmd.deck_id() > globalDeckOffset)) deck = sqlInterface->getDeckFromDatabase(cmd.deck_id(), userInfo->id());
deck = sqlInterface->getDeckFromDatabase(cmd.deck_id() - globalDeckOffset, servatrice->getGlobalDecksID());
else
deck = sqlInterface->getDeckFromDatabase(cmd.deck_id(), userInfo->id());
} catch (Response::ResponseCode &r) { } catch (Response::ResponseCode &r) {
return r; return r;
} }

View file

@ -27,6 +27,8 @@
#include <QTcpSocket> #include <QTcpSocket>
#include <QWebSocket> #include <QWebSocket>
static const int globalDeckOffset = 10000000;
class Servatrice; class Servatrice;
class Servatrice_DatabaseInterface; class Servatrice_DatabaseInterface;
class DeckList; class DeckList;