10 #include "lcf/ldb/reader.h"
11 #include "lcf/ldb/chunks.h"
18 static void ReadLcf(rpg::Equipment& ref, LcfReader& stream, uint32_t length);
19 static void WriteLcf(
const rpg::Equipment& ref, LcfWriter& stream);
20 static int LcfSize(
const rpg::Equipment& ref, LcfWriter& stream);
21 static void WriteXml(
const rpg::Equipment& ref, XmlWriter& stream);
22 static void BeginXml(rpg::Equipment& ref, XmlReader& stream);
30 fprintf(stderr,
"Equipment has incorrect size %" PRIu32
" (expected 10)\n", length);
32 LcfReader::Chunk chunk_info;
34 chunk_info.length = length;
36 stream.Skip(chunk_info,
"Equipment");
41 stream.Read(ref.weapon_id);
42 stream.Read(ref.shield_id);
43 stream.Read(ref.armor_id);
44 stream.Read(ref.helmet_id);
45 stream.Read(ref.accessory_id);
49 stream.Write(ref.weapon_id);
50 stream.Write(ref.shield_id);
51 stream.Write(ref.armor_id);
52 stream.Write(ref.helmet_id);
53 stream.Write(ref.accessory_id);
61 stream.BeginElement(
"Equipment");
62 stream.WriteNode<int16_t>(
"weapon_id", ref.weapon_id);
63 stream.WriteNode<int16_t>(
"shield_id", ref.shield_id);
64 stream.WriteNode<int16_t>(
"armor_id", ref.armor_id);
65 stream.WriteNode<int16_t>(
"helmet_id", ref.helmet_id);
66 stream.WriteNode<int16_t>(
"accessory_id", ref.accessory_id);
67 stream.EndElement(
"Equipment");
76 void StartElement(XmlReader& stream,
const char* name,
const char** ) {
77 if (strcmp(name,
"weapon_id") == 0)
79 else if (strcmp(name,
"shield_id") == 0)
81 else if (strcmp(name,
"armor_id") == 0)
83 else if (strcmp(name,
"helmet_id") == 0)
85 else if (strcmp(name,
"accessory_id") == 0)
88 stream.Error(
"Unrecognized field '%s'", name);
97 XmlReader::Read(*
field, data);
void CharacterData(XmlReader &, const std::string &data)
void StartElement(XmlReader &stream, const char *name, const char **)
EquipmentXmlHandler(rpg::Equipment &ref)
void EndElement(XmlReader &, const char *)
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)