prevent cheating with hashes
This commit is contained in:
parent
31890450dc
commit
ef268d79c3
1 changed files with 17 additions and 4 deletions
|
@ -726,12 +726,25 @@ bool DeckList::deleteNode(AbstractDecklistNode *node, InnerDecklistNode *rootNod
|
||||||
void DeckList::updateDeckHash()
|
void DeckList::updateDeckHash()
|
||||||
{
|
{
|
||||||
QStringList cardList;
|
QStringList cardList;
|
||||||
for (int i = 0; i < root->size(); i++) {
|
bool isValidDeckList = true;
|
||||||
|
for (int i = 0; i < root->size(); i++)
|
||||||
|
{
|
||||||
InnerDecklistNode *node = dynamic_cast<InnerDecklistNode *>(root->at(i));
|
InnerDecklistNode *node = dynamic_cast<InnerDecklistNode *>(root->at(i));
|
||||||
for (int j = 0; j < node->size(); j++) {
|
for (int j = 0; j < node->size(); j++)
|
||||||
|
{
|
||||||
DecklistCardNode *card = dynamic_cast<DecklistCardNode *>(node->at(j));
|
DecklistCardNode *card = dynamic_cast<DecklistCardNode *>(node->at(j));
|
||||||
for (int k = 0; k < card->getNumber(); ++k)
|
for (int k = 0; k < card->getNumber(); ++k)
|
||||||
cardList.append((node->getName() == "side" ? "SB:" : "") + card->getName().toLower());
|
{
|
||||||
|
if (node->getName() == "main" || node->getName() == "side") // Mainboard or Sideboard
|
||||||
|
{
|
||||||
|
cardList.append((node->getName() == "side" ? "SB:" : "") + card->getName().toLower());
|
||||||
|
}
|
||||||
|
else if (node->getName() != "tokens") // Neither Mainboard, Sideboard, or Tokens... cheater?
|
||||||
|
{
|
||||||
|
isValidDeckList = false;
|
||||||
|
break; break; break; // Deck is invalid, end the entire check
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cardList.sort();
|
cardList.sort();
|
||||||
|
@ -741,7 +754,7 @@ void DeckList::updateDeckHash()
|
||||||
+ (((quint64) (unsigned char) deckHashArray[2] << 16))
|
+ (((quint64) (unsigned char) deckHashArray[2] << 16))
|
||||||
+ (((quint64) (unsigned char) deckHashArray[3]) << 8)
|
+ (((quint64) (unsigned char) deckHashArray[3]) << 8)
|
||||||
+ (quint64) (unsigned char) deckHashArray[4];
|
+ (quint64) (unsigned char) deckHashArray[4];
|
||||||
deckHash = QString::number(number, 32).rightJustified(8, '0');
|
deckHash = (isValidDeckList) ? QString::number(number, 32).rightJustified(8, '0') : "INVALID";
|
||||||
|
|
||||||
emit deckHashChanged();
|
emit deckHashChanged();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue