return name;
}
+/* used in enumerateUsedIDs */
+void swf_GetMorphGradient(TAG * tag, GRADIENT * gradient1, GRADIENT * gradient2)
+{
+ GRADIENT dummy1;
+ GRADIENT dummy2;
+ int t;
+ if(!gradient1)
+ gradient1 = &dummy1;
+ if(!gradient2)
+ gradient2 = &dummy2;
+ gradient1->num =
+ gradient2->num = swf_GetU8(tag);
+ for(t=0;t<gradient1->num;t++)
+ {
+ int s=t;
+ if(s>=8) //FIXME
+ s=7;
+ gradient1->ratios[t] = swf_GetU8(tag);
+ swf_GetRGBA(tag, &gradient1->rgba[t]);
+ gradient2->ratios[t] = swf_GetU8(tag);
+ swf_GetRGBA(tag, &gradient2->rgba[t]);
+ }
+}
+
#define DEBUG_ENUMERATE if(0)
static void enumerateUsedIDs_styles(TAG * tag, void (*callback)(TAG*, int, void*), void*callback_data, int num, int morph)
callback(tag, tag->pos + base, callback_data); //button id
break;
+ case ST_EXPORTASSETS: {
+ int num = swf_GetU16(tag);
+ int t;
+ for(t=0;t<num;t++) {
+ callback(tag, tag->pos + base, callback_data); //button id
+ swf_GetU16(tag); //id
+ while(swf_GetU8(tag)); //name
+ }
+ } break;
+
case ST_FREECHARACTER: /* unusual tags, which all start with an ID */
case ST_NAMECHARACTER:
case ST_GENERATORTEXT:
callback(tag, tag->pos + base, callback_data);
break;
- case ST_DEFINEMORPHSHAPE:
+ //case ST_DEFINEMORPHSHAPE: /* disabled for now (doesn't work) */
+
case ST_DEFINESHAPE3: // these thingies might have bitmap ids in their fillstyles
num++; //fallthrough
case ST_DEFINESHAPE2:
DEBUG_ENUMERATE printf("-------\n");
while(--morph>=0) /* morph shapes define two shapes */
{
- swf_ResetReadBits(tag); //?
fillbits = swf_GetBits(tag, 4);
linebits = swf_GetBits(tag, 4);
DEBUG_ENUMERATE printf("%d %d\n", fillbits, linebits);