10#include "lcf/lmt/reader.h"
11#include "lcf/lmt/chunks.h"
18 static void ReadLcf(rpg::TreeMap& ref, LcfReader& stream, uint32_t length);
19 static void WriteLcf(
const rpg::TreeMap& ref, LcfWriter& stream);
20 static int LcfSize(
const rpg::TreeMap& ref, LcfWriter& stream);
21 static void WriteXml(
const rpg::TreeMap& ref, XmlWriter& stream);
22 static void BeginXml(rpg::TreeMap& ref, XmlReader& stream);
30 for (
int i = stream.ReadInt(); i > 0; i--)
31 ref.tree_order.push_back(stream.ReadInt());
32 ref.active_node = stream.ReadInt();
38 int count = ref.tree_order.size();
39 stream.WriteInt(count);
40 for (
int i = 0; i < count; i++)
41 stream.WriteInt(ref.tree_order[i]);
42 stream.WriteInt(ref.active_node);
52 stream.BeginElement(
"TreeMap");
54 stream.BeginElement(
"maps");
56 stream.EndElement(
"maps");
58 stream.BeginElement(
"tree_order");
59 stream.Write<std::vector<int32_t>>(ref.tree_order);
60 stream.EndElement(
"tree_order");
62 stream.WriteNode<int32_t>(
"active_node", ref.active_node);
64 stream.BeginElement(
"start");
66 stream.EndElement(
"start");
68 stream.EndElement(
"TreeMap");
83 if (strcmp(
name,
"maps") == 0)
85 else if (strcmp(
name,
"tree_order") == 0)
87 else if (strcmp(
name,
"active_node") == 0)
89 else if (strcmp(
name,
"start") == 0)
92 stream.Error(
"Unrecognized field '%s'",
name);
101 XmlReader::Read<int32_t>(
ref.active_node, data);
103 XmlReader::Read<std::vector<int32_t>>(
ref.tree_order, data);
static void BeginXml(S &obj, XmlReader &stream)
static void WriteXml(const S &obj, XmlWriter &stream)
static void WriteLcf(const S &obj, LcfWriter &stream)
static void ReadLcf(S &obj, LcfReader &stream)
void EndElement(XmlReader &, const char *)
void CharacterData(XmlReader &, const std::string &data)
TreeMapXmlHandler(rpg::TreeMap &ref)
void StartElement(XmlReader &stream, const char *name, const char **)
const char *const Struct< rpg::Actor >::name
static void WriteXml(const T &ref, XmlWriter &stream)
static void BeginXml(T &ref, XmlReader &stream)
static void ReadLcf(T &ref, LcfReader &stream, uint32_t length)
static void WriteLcf(const T &ref, LcfWriter &stream)
static int LcfSize(const T &ref, LcfWriter &stream)