diff options
Diffstat (limited to 'modules/chanserv/cs_set_misc.cpp')
-rw-r--r-- | modules/chanserv/cs_set_misc.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/modules/chanserv/cs_set_misc.cpp b/modules/chanserv/cs_set_misc.cpp index 4439589a8..71afbe942 100644 --- a/modules/chanserv/cs_set_misc.cpp +++ b/modules/chanserv/cs_set_misc.cpp @@ -44,15 +44,25 @@ struct CSMiscData final name = n; data = d; } +}; + +struct CSMiscDataType + : Serialize::Type +{ + CSMiscDataType() + : Serialize::Type("CSMiscData") + { + } - void Serialize(Serialize::Data &sdata) const override + void Serialize(const Serializable *obj, Serialize::Data &sdata) const override { - sdata.Store("ci", this->object); - sdata.Store("name", this->name); - sdata.Store("data", this->data); + const auto *d = static_cast<const CSMiscData *>(obj); + sdata.Store("ci", d->object); + sdata.Store("name", d->name); + sdata.Store("data", d->data); } - static Serializable *Unserialize(Serializable *obj, Serialize::Data &data) + Serializable *Unserialize(Serializable *obj, Serialize::Data &data) const override { Anope::string sci, sname, sdata; @@ -172,11 +182,12 @@ class CSSetMisc final : public Module { CommandCSSetMisc commandcssetmisc; - Serialize::Type csmiscdata_type; + CSMiscDataType csmiscdata_type; public: - CSSetMisc(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR), - commandcssetmisc(this), csmiscdata_type("CSMiscData", CSMiscData::Unserialize) + CSSetMisc(const Anope::string &modname, const Anope::string &creator) + : Module(modname, creator, VENDOR) + , commandcssetmisc(this) { me = this; } |