#include "deliantra/data/fx.h" #include "deliantra/data/glyph.h" void command_parser::on_fx (std::istream &args) { std::vector faces; u32 type = 0; while (args.peek () != EOF) { u32 facenum = read_ber32 (args); std::string name = read_string08 (args); if (facenum) { data::glyph glyph; if (!name.empty ()) { glyph.fg = name[0]; glyph.bg = name[1]; glyph.text = name.substr (2); } else glyph.text = " "; data::register_glyph (facenum, glyph); faces.emplace_back (data::fx { type, facenum, name }); } else if (name.length () == 1) type = name[0]; } emit fx (faces); }