IO_stat MCVideoClip::load(IO_handle stream, const char *version) { IO_stat stat; if ((stat = MCObject::load(stream, version)) != IO_NORMAL) return stat; if ((stat = IO_read_uint4(&size, stream)) != IO_NORMAL) return stat; if (size != 0) { frames = new uint1[size]; if ((stat = IO_read(frames, sizeof(uint1), size, stream)) != IO_NORMAL) return stat; } if (flags & F_FRAME_RATE) if ((stat = IO_read_uint2(&framerate, stream)) != IO_NORMAL) return stat; if (flags & F_SCALE_FACTOR) { int4 i; if ((stat = IO_read_int4(&i, stream)) != IO_NORMAL) return stat; scale = MCU_i4tor8(i); } return loadpropsets(stream); }
IO_stat MCEPS::load(IO_handle stream, uint32_t version) { IO_stat stat; if ((stat = MCObject::load(stream, version)) != IO_NORMAL) return stat; delete postscript; delete prolog; if ((stat = IO_read_uint4(&size, stream)) != IO_NORMAL) return stat; postscript = new char[size + 1]; if ((stat = IO_read(postscript, size, stream)) != IO_NORMAL) return stat; postscript[size] = '\0'; // MW-2013-11-19: [[ UnicodeFileFormat ]] EPS is always ASCII so legacy. if ((stat = IO_read_cstring_legacy(prolog, stream, 2)) != IO_NORMAL) return stat; int4 i; if ((stat = IO_read_int4(&i, stream)) != IO_NORMAL) return stat; xscale = MCU_i4tor8(i); if (flags & F_SCALE_INDEPENDENTLY) { if ((stat = IO_read_int4(&i, stream)) != IO_NORMAL) return stat; yscale = MCU_i4tor8(i); } else yscale = xscale; if ((stat = IO_read_int2(&angle, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_int2(&tx, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_int2(&ty, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_uint2(&ex, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_uint2(&ey, stream)) != IO_NORMAL) return stat; if (flags & F_RETAIN_IMAGE) { image = new MCImage; image->setparent(this); if ((stat = image->load(stream, version)) != IO_NORMAL) return stat; } if (version > 1300) { if ((stat = IO_read_uint2(&curpage, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_uint2(&pagecount, stream)) != IO_NORMAL) return stat; if (pagecount > 0) { pageIndex = new uint4[pagecount]; for (i = 0 ; i < pagecount ; i++) if ((stat = IO_read_uint4(&pageIndex[i], stream)) != IO_NORMAL) return stat; } } return loadpropsets(stream, version); }
IO_stat MCEPS::load(IO_handle stream, const char *version) { IO_stat stat; if ((stat = MCObject::load(stream, version)) != IO_NORMAL) return stat; delete postscript; delete prolog; if ((stat = IO_read_uint4(&size, stream)) != IO_NORMAL) return stat; postscript = new char[size + 1]; if ((stat = IO_read(postscript, sizeof(char), size, stream)) != IO_NORMAL) return stat; postscript[size] = '\0'; if ((stat = IO_read_string(prolog, stream)) != IO_NORMAL) return stat; int4 i; if ((stat = IO_read_int4(&i, stream)) != IO_NORMAL) return stat; xscale = MCU_i4tor8(i); if (flags & F_SCALE_INDEPENDENTLY) { if ((stat = IO_read_int4(&i, stream)) != IO_NORMAL) return stat; yscale = MCU_i4tor8(i); } else yscale = xscale; if ((stat = IO_read_int2(&angle, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_int2(&tx, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_int2(&ty, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_uint2(&ex, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_uint2(&ey, stream)) != IO_NORMAL) return stat; if (flags & F_RETAIN_IMAGE) { image = new MCImage; image->setparent(this); if ((stat = image->load(stream, version)) != IO_NORMAL) return stat; } if (strncmp(version, "1.3", 3) > 0) { if ((stat = IO_read_uint2(&curpage, stream)) != IO_NORMAL) return stat; if ((stat = IO_read_uint2(&pagecount, stream)) != IO_NORMAL) return stat; if (pagecount > 0) { pageIndex = new uint4[pagecount]; for (i = 0 ; i < pagecount ; i++) if ((stat = IO_read_uint4(&pageIndex[i], stream)) != IO_NORMAL) return stat; } } return loadpropsets(stream); }