4493334393
Modernizes the code, and fixes qsizetype/int mismatch. Task-number: QTBUG-108857 Pick-to: 6.5 6.4 6.2 Change-Id: Id4262ee0bcb673d62135a81c30976903eef3e5e2 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
#include "level.h"
|
|
|
|
#include <QJsonArray>
|
|
#include <QTextStream>
|
|
|
|
Level::Level(const QString &name) : mName(name)
|
|
{
|
|
}
|
|
|
|
QString Level::name() const
|
|
{
|
|
return mName;
|
|
}
|
|
|
|
QList<Character> Level::npcs() const
|
|
{
|
|
return mNpcs;
|
|
}
|
|
|
|
void Level::setNpcs(const QList<Character> &npcs)
|
|
{
|
|
mNpcs = npcs;
|
|
}
|
|
|
|
//! [0]
|
|
void Level::read(const QJsonObject &json)
|
|
{
|
|
if (json.contains("name") && json["name"].isString())
|
|
mName = json["name"].toString();
|
|
|
|
if (json.contains("npcs") && json["npcs"].isArray()) {
|
|
QJsonArray npcArray = json["npcs"].toArray();
|
|
mNpcs.clear();
|
|
mNpcs.reserve(npcArray.size());
|
|
for (const QJsonValue &v : npcArray) {
|
|
QJsonObject npcObject = v.toObject();
|
|
Character npc;
|
|
npc.read(npcObject);
|
|
mNpcs.append(npc);
|
|
}
|
|
}
|
|
}
|
|
//! [0]
|
|
|
|
//! [1]
|
|
void Level::write(QJsonObject &json) const
|
|
{
|
|
json["name"] = mName;
|
|
QJsonArray npcArray;
|
|
for (const Character &npc : mNpcs) {
|
|
QJsonObject npcObject;
|
|
npc.write(npcObject);
|
|
npcArray.append(npcObject);
|
|
}
|
|
json["npcs"] = npcArray;
|
|
}
|
|
//! [1]
|
|
|
|
void Level::print(int indentation) const
|
|
{
|
|
const QString indent(indentation * 2, ' ');
|
|
QTextStream(stdout) << indent << "Name:\t" << mName << "\n";
|
|
|
|
QTextStream(stdout) << indent << "NPCs:\n";
|
|
for (const Character &character : mNpcs)
|
|
character.print(2);
|
|
}
|