mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-21 00:55:09 -07:00
[DeckList] Extract sideboard-plan move parsing into a helper (#7318)
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
9acb9739b2
commit
faffb5a837
1 changed files with 27 additions and 17 deletions
|
|
@ -2,6 +2,32 @@
|
||||||
|
|
||||||
#include <QXmlStreamReader>
|
#include <QXmlStreamReader>
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
void readMoveCardToZone(QXmlStreamReader *xml, QList<MoveCard_ToZone> &moveList)
|
||||||
|
{
|
||||||
|
MoveCard_ToZone move;
|
||||||
|
while (!xml->atEnd()) {
|
||||||
|
xml->readNext();
|
||||||
|
const QString childName = xml->name().toString();
|
||||||
|
if (xml->isStartElement()) {
|
||||||
|
if (childName == "card_name") {
|
||||||
|
move.set_card_name(xml->readElementText().toStdString());
|
||||||
|
} else if (childName == "start_zone") {
|
||||||
|
move.set_start_zone(xml->readElementText().toStdString());
|
||||||
|
} else if (childName == "target_zone") {
|
||||||
|
move.set_target_zone(xml->readElementText().toStdString());
|
||||||
|
}
|
||||||
|
} else if (xml->isEndElement() && (childName == "move_card_to_zone")) {
|
||||||
|
moveList.append(move);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
SideboardPlan::SideboardPlan(const QString &_name, const QList<MoveCard_ToZone> &_moveList)
|
SideboardPlan::SideboardPlan(const QString &_name, const QList<MoveCard_ToZone> &_moveList)
|
||||||
: name(_name), moveList(_moveList)
|
: name(_name), moveList(_moveList)
|
||||||
{
|
{
|
||||||
|
|
@ -21,23 +47,7 @@ bool SideboardPlan::readElement(QXmlStreamReader *xml)
|
||||||
if (childName == "name") {
|
if (childName == "name") {
|
||||||
name = xml->readElementText();
|
name = xml->readElementText();
|
||||||
} else if (childName == "move_card_to_zone") {
|
} else if (childName == "move_card_to_zone") {
|
||||||
MoveCard_ToZone m;
|
readMoveCardToZone(xml, moveList);
|
||||||
while (!xml->atEnd()) {
|
|
||||||
xml->readNext();
|
|
||||||
const QString childName2 = xml->name().toString();
|
|
||||||
if (xml->isStartElement()) {
|
|
||||||
if (childName2 == "card_name") {
|
|
||||||
m.set_card_name(xml->readElementText().toStdString());
|
|
||||||
} else if (childName2 == "start_zone") {
|
|
||||||
m.set_start_zone(xml->readElementText().toStdString());
|
|
||||||
} else if (childName2 == "target_zone") {
|
|
||||||
m.set_target_zone(xml->readElementText().toStdString());
|
|
||||||
}
|
|
||||||
} else if (xml->isEndElement() && (childName2 == "move_card_to_zone")) {
|
|
||||||
moveList.append(m);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (xml->isEndElement() && (childName == "sideboard_plan")) {
|
} else if (xml->isEndElement() && (childName == "sideboard_plan")) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue