--- deliantra/server/include/cfperl.h 2006/08/28 07:07:41 1.11 +++ deliantra/server/include/cfperl.h 2006/08/28 14:05:24 1.12 @@ -107,30 +107,33 @@ } }; -struct object_freezer +struct object_freezethaw { - const char *filename; void *av; + FILE *fp; + + operator FILE *() { return fp; } +}; + +struct object_freezer : object_freezethaw +{ + void *filename; object_freezer (const char *filename); ~object_freezer (); - void put (FILE *fp, attachable_base *ext); + void put (attachable_base *ext); template - void put (FILE *fp, attachable *obj) + void put (attachable *obj) { - put (fp, (attachable_base *)obj); + put ((attachable_base *)obj); } - - void finish (); }; -struct object_thawer +struct object_thawer : object_freezethaw { - void *av; - - object_thawer (const char *filename = 0); + object_thawer (FILE *fp, const char *filename = 0); ~object_thawer (); void get (data_type type, void *obj, attachable_base *ext, int oid); @@ -141,8 +144,6 @@ if (av) get (subclass::get_dt (), (subclass *)obj, obj, oid); } - - void finish (); }; #endif