- Debug("Object types...");
- LoadStructVector<ObjectType>(file, ObjectCount(), m_objects.types);
-
- Debug("Object bounds...");
- LoadStructVector<Rect>(file, ObjectCount(), m_objects.bounds);
-
+ DocChunkTypes chunk_type;
+ uint32_t chunk_size;
+ while (ReadChunkHeader(file, chunk_type, chunk_size))
+ {
+ switch(chunk_type)
+ {
+ case CT_NUMOBJS:
+ read = fread(&m_count, sizeof(m_count), 1, file);
+ if (read != 1)
+ Fatal("Failed to read number of objects!");
+ Debug("Number of objects: %u", ObjectCount());
+ break;
+ case CT_OBJTYPES:
+ Debug("Object types...");
+ LoadStructVector<ObjectType>(file, chunk_size/sizeof(ObjectType), m_objects.types);
+ break;
+ case CT_OBJBOUNDS:
+ Debug("Object bounds...");
+ LoadStructVector<Rect>(file, chunk_size/sizeof(Rect), m_objects.bounds);
+ break;
+ case CT_OBJINDICES:
+ Debug("Object data indices...");
+ LoadStructVector<unsigned>(file, chunk_size/sizeof(unsigned), m_objects.data_indices);
+ break;
+ case CT_OBJBEZIERS:
+ Debug("Bezier data...");
+ LoadStructVector<Bezier>(file, chunk_size/sizeof(Bezier), m_objects.beziers);
+ break;
+ }
+ }