X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FTypeDescription.h;fp=src%2Floader%2FTypeDescription.h;h=078002fed916c2a96481be4b050c205edae60331;hb=0e7b9eca67383e45e04aa419cb783c92722f7801;hp=7b7483624bfe1577979e5ff849405ab25e2fc65b;hpb=1970312e983541d32d4ff73c81b8d90156a7bb99;p=l2e.git diff --git a/src/loader/TypeDescription.h b/src/loader/TypeDescription.h index 7b74836..078002f 100644 --- a/src/loader/TypeDescription.h +++ b/src/loader/TypeDescription.h @@ -40,9 +40,11 @@ public: bool HasField(const std::string &name) const; const FieldDescription &GetField(const std::string &name) const; void Construct(void *) const; + void Init(void *) const; void Load(void *) const; void SetConstructor(void (*ctor)(void *)) { constructor = ctor; } + void SetInitializer(void (*init)(void *)) { initializer = init; } void SetLoader(void (*ld)(void *)) { loader = ld; } void AddSupertype(int id, std::ptrdiff_t offset); bool IsSubtypeOf(int id) const; @@ -72,10 +74,19 @@ public: static void WriteSourceWiki(std::ostream &); private: - TypeDescription(int id, const std::string &name) : constructor(0), loader(0), description(0), name(name), id(id), size(0) { } + TypeDescription(int id, const std::string &name) + : constructor(0) + , initializer(0) + , loader(0) + , description(0) + , name(name) + , id(id) + , size(0) + { } private: void (*constructor)(void *); + void (*initializer)(void *); void (*loader)(void *); const char *description; std::string name;