memset(gradient, 0, sizeof(GRADIENT));
return;
}
- U8 num = swf_GetU8(tag);
+ U8 num = swf_GetU8(tag) & 15;
if(gradient) {
gradient->num = num;
gradient->rgba = rfx_calloc(sizeof(RGBA)*gradient->num);
gradient->ratios = rfx_calloc(sizeof(gradient->ratios[0])*gradient->num);
}
- for(t=0;t<gradient->num;t++)
+ for(t=0;t<num;t++)
{
U8 ratio = swf_GetU8(tag);
RGBA color;
if(writer) writer_lastpos = writer->pos;
- if(swf->fileVersion >= 8) {
- if ((swf->firstTag && swf->firstTag->id != ST_FILEATTRIBUTES) &&
- (!swf->firstTag->next || swf->firstTag->next->id != ST_FILEATTRIBUTES))
- {
- U32 flags = 0; // | 128 = usenetwork, | 8 = hasmetadata
- swf_SetU32(swf_InsertTagBefore(swf, swf->firstTag,ST_FILEATTRIBUTES),flags);
- }
- }
-
// Insert REFLEX Tag
#ifdef INSERT_RFX_TAG
}
#endif // INSERT_RFX_TAG
+
+ if(swf->fileVersion >= 8) {
+ if (swf->firstTag && swf->firstTag->id != ST_FILEATTRIBUTES)
+ {
+ U32 flags = 0; // | 128 = usenetwork, | 8 = hasmetadata
+ swf_SetU32(swf_InsertTagBefore(swf, swf->firstTag,ST_FILEATTRIBUTES),flags);
+ }
+ }
// Count Frames + File Size