10#include "lcf/lmt/reader.h"
11#include "lcf/lmt/chunks.h"
31 for (
int i =
stream.ReadInt();
i > 0;
i--)
32 ref.tree_order.push_back(
stream.ReadInt());
33 ref.active_node =
stream.ReadInt();
39 int count = ref.tree_order.size();
42 stream.WriteInt(ref.tree_order[
i]);
43 stream.WriteInt(ref.active_node);
53 stream.BeginElement(
"TreeMap");
55 stream.BeginElement(
"maps");
59 stream.BeginElement(
"tree_order");
60 stream.Write<std::vector<int32_t>>(ref.tree_order);
61 stream.EndElement(
"tree_order");
65 stream.BeginElement(
"start");
67 stream.EndElement(
"start");
69 stream.EndElement(
"TreeMap");
84 if (
strcmp(name,
"maps") == 0)
86 else if (
strcmp(name,
"tree_order") == 0)
88 else if (
strcmp(name,
"active_node") == 0)
90 else if (
strcmp(name,
"start") == 0)
93 Log::Error(
"XML: Unrecognized field '%s'", name);
102 XmlReader::Read<int32_t>(
ref.active_node,
data);
104 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 **)
void Error(const char *fmt,...) LIKE_PRINTF
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)