X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcombine.c;h=727f858d3bfb600d5c906b27e8719167eec38851;hb=00d2709df63c37a3467c36f6090a6ea5e449bb6b;hp=34830414ec8a185644f93ba2ccab9a380713eac9;hpb=46329d5c3a1f959be78f966dec899adfc136e56a;p=swftools.git diff --git a/src/combine.c b/src/combine.c index 3483041..727f858 100644 --- a/src/combine.c +++ b/src/combine.c @@ -303,6 +303,30 @@ void write_master(struct writer_t*w, int spriteid, int replaceddefine, int flags while(master.tags[pos++].id != 0); } +void writeheader(struct writer_t*w, u8*data, int length) +{ + if(config.hassizex || config.hassizey || config.framerate) + { + struct flash_header head; + swf_init(data-3, length+3); + head = swf_read_header(); + if(config.hassizex) + { + head.boundingBox.x2 = head.boundingBox.x1 + config.sizex; + } + if(config.hassizey) + { + head.boundingBox.y2 = head.boundingBox.y1 + config.sizey; + } + if(config.framerate) + { + head.rate = config.framerate; + } + swf_write_header(w, &head); + } + else + writer_write(w, data, length); +} uchar * combine(uchar*masterdata, int masterlength, char*_slavename, uchar*slavedata, int slavelength, int*newlength) { @@ -334,6 +358,9 @@ uchar * combine(uchar*masterdata, int masterlength, char*_slavename, uchar*slave logf(" the master file is flash (swf) format\n"); master_flash = 1; } + else + logf(" the master file is not flash (swf) format!\n"); + if(slavedata[2] == 'S' && slavedata[1] == 'W' && slavedata[0] == 'F') @@ -341,6 +368,8 @@ uchar * combine(uchar*masterdata, int masterlength, char*_slavename, uchar*slave logf(" the slave file is flash (swf) format\n"); slave_flash = 1; } + else + logf(" the slave file is not flash (swf) format!\n"); if(master_flash && slave_flash) { @@ -402,7 +431,7 @@ uchar * combine(uchar*masterdata, int masterlength, char*_slavename, uchar*slave writer_write(&w, "FWS",3); headlength = (u32*)(writer_getpos(&w) + 1); - writer_write(&w, master.header.headerdata, master.header.headerlength); + writeheader(&w, master.header.headerdata, master.header.headerlength); if(config.antistream) { write_sprite_defines(&w);