X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=061010b0d83a0a6dad55d3e8776aef2fea78cbc8;hb=1f9f467ef90391c81c31da7f6b5ed2131443a1fe;hp=ca87274c6113fa644307e687bd71f118ea7a36ef;hpb=cc29df1f6cd189f1a5845f1813ca47aa7cbf960a;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index ca87274..061010b 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -179,6 +179,13 @@ int swf_SetU16(TAG * t,U16 v) t->data[t->len++] = a[1]; return 0; } +void swf_SetS16(TAG * t,int v) +{ + if(v>32767 || v<-32768) { + fprintf(stderr, "Warning: S16 overflow: %d\n", v); + } + swf_SetU16(t, (S16)v); +} int swf_SetU32(TAG * t,U32 v) { U8 a[4]; @@ -1254,7 +1261,7 @@ int swf_WriteSWF2(struct writer_t*writer, SWF * swf) // Writes SWF to file, while(t) { len += swf_WriteTag(-1,t); - if(t->id == ST_DEFINESPRITE) inSprite++; + if(t->id == ST_DEFINESPRITE && !swf_IsFolded(t)) inSprite++; else if(t->id == ST_END && inSprite) inSprite--; else if(t->id == ST_SHOWFRAME && !inSprite) frameCount++; t = swf_NextTag(t);