X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FTypeDescription.h;h=edd0177c418fe3f344834165d7638d278749276b;hb=d2d8ff1fd5f55e8b43d48ae5e75c216492e2f032;hp=b7f4ba9e05bd08daaf7aa16b888b8cdbad5a3541;hpb=cddc8a96cce6117dac14248455ac70d332a4a9f8;p=l2e.git diff --git a/src/loader/TypeDescription.h b/src/loader/TypeDescription.h index b7f4ba9..edd0177 100644 --- a/src/loader/TypeDescription.h +++ b/src/loader/TypeDescription.h @@ -40,8 +40,10 @@ public: bool HasField(const std::string &name) const; const FieldDescription &GetField(const std::string &name) const; void Construct(void *) const; + void Load(void *) const; void SetConstructor(void (*ctor)(void *)) { constructor = ctor; } + void SetLoader(void (*ld)(void *)) { loader = ld; } void AddSupertype(int id, std::ptrdiff_t offset); bool IsSubtypeOf(int id) const; bool IsSubtypeOf(const TypeDescription &other) const { return IsSubtypeOf(other.TypeId()); } @@ -63,10 +65,11 @@ public: static const TypeDescription &Get(int id); private: - TypeDescription(int id, const std::string &name) : constructor(0), name(name), id(id), size(0) { } + TypeDescription(int id, const std::string &name) : constructor(0), loader(0), name(name), id(id), size(0) { } private: void (*constructor)(void *); + void (*loader)(void *); std::string name; std::map fields; std::map supertypes;