l->unload = unload;
}
-static int deserialize(UObject *o, struct upkg_file *f)
+static int deserialize(UObject *uo)
{
- struct music_priv *priv = MUSIC_GET_PRIV(o);
+ struct music_priv *priv = MUSIC_GET_PRIV(uo);
+ struct upkg_file *f = uo->pkg_file;
size_t rc, pos = 0, buflen;
unsigned char buf[32];
long size;
- U_OBJECT_CLASS(engine_music_parent_class)->deserialize(o, f);
+ U_OBJECT_CLASS(engine_music_parent_class)->deserialize(uo);
buflen = upkg_export_read(f, buf, sizeof buf);
G_DEFINE_DYNAMIC_TYPE(EngineTexture, engine_texture, U_OBJECT_TYPE);
-static int deserialize(UObject *o, struct upkg_file *f)
+static int deserialize(UObject *uo)
{
- struct texture_priv *priv = TEXTURE_GET_PRIV(o);
- EngineTexture *t = ENGINE_TEXTURE(o);
+ struct texture_priv *priv = TEXTURE_GET_PRIV(uo);
+ EngineTexture *t = ENGINE_TEXTURE(uo);
- U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(o, f);
+ U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(uo);
printf("Texture size: %ux%u\n", t->usize, t->vsize);
}
/* Deserialize properties from an Unreal package. */
-static int deserialize(UObject *o, struct upkg_file *f)
+static int deserialize(UObject *uo)
{
- struct u_object_priv *priv = U_OBJECT_GET_PRIV(o);
+ struct u_object_priv *priv = U_OBJECT_GET_PRIV(uo);
+ struct upkg_file *f = uo->pkg_file;
unsigned long rc, tot_len = 0;
while (1) {
break;
}
- rc = decode_property(U_OBJECT(o), name, f, len);
+ rc = decode_property(uo, name, f, len);
if (rc == 0)
return -1;
len = rc;
return -1;
}
- rc = U_OBJECT_GET_CLASS(obj)->deserialize(uo, f);
+ uo->pkg = pkg;
+ uo->pkg_file = f;
+
+ rc = U_OBJECT_GET_CLASS(obj)->deserialize(uo);
if (rc != 0) {
upkg_export_close(f);
- } else {
- uo->pkg = pkg;
- uo->pkg_file = f;
+ uo->pkg_file = NULL;
}
return rc;
struct UObjectClass {
GObjectClass parent;
- int (*deserialize)(UObject *obj, struct upkg_file *f);
+ int (*deserialize)(UObject *obj);
};
GType u_object_get_type(void);