{"e", "html"},
{"a", "action"},
{"t", "text"},
+{"s", "shapes"},
{"p", "placements"},
{"X", "width"},
{"Y", "height"},
{"f", "frames"},
{"d", "hex"},
{"u", "used"},
-{"s", "shapes"},
{0,0}
};
printf("-e , --html Print out html code for embedding the file\n");
printf("-a , --action Disassemble action tags\n");
printf("-t , --text Show text fields (like swfstrings).\n");
+ printf("-s , --shapes Show shape coordinates/styles\n");
printf("-p , --placements Show placement information\n");
printf("-X , --width Prints out a string of the form \"-X width\".\n");
printf("-Y , --height Prints out a string of the form \"-Y height\".\n");
U16 id = swf_GetU16(tag);
U16 depth = swf_GetU16(tag);
- MATRIX matrix; swf_GetMatrix(tag, &matrix);
- CXFORM cxform; swf_GetCXForm(tag, &cxform, 0);
+ MATRIX matrix;
+ CXFORM cxform;
+ swf_GetMatrix(tag, &matrix);
+ swf_GetCXForm(tag, &cxform, 0);
swf_SetU8(tag2, 14);
swf_SetU16(tag2, depth);
void handleShape(TAG*tag, char*prefix)
{
SHAPE2 shape;
+ SHAPELINE*line;
+ int t,max;
+
tag->pos = 0;
tag->readBit = 0;
swf_ParseDefineShape(tag, &shape);
- SHAPELINE*line;
- int t;
- int max = shape.numlinestyles > shape.numfillstyles?shape.numlinestyles:shape.numfillstyles;
+ max = shape.numlinestyles > shape.numfillstyles?shape.numlinestyles:shape.numfillstyles;
if(max) printf("%s | fillstyles(%02d) linestyles(%02d)\n",
prefix,
ascii[t&15] = printable(tag->data[t]);
if((t && ((t&15)==15)) || (t==tag->len-1))
{
- int s,p=((t-1)&15)+1;
+ int s,p=((t)&15)+1;
ascii[p] = 0;
- for(s=p;s<16;s++) {
+ for(s=p-1;s<16;s++) {
printf(" ");
}
if(t==tag->len-1)
actions = swf_ActionGet(tag);
swf_DumpActions(actions, myprefix);
}
+ else if(tag->id == ST_DOINITACTION && action) {
+ ActionTAG*actions;
+ swf_GetU16(tag); // id
+ actions = swf_ActionGet(tag);
+ swf_DumpActions(actions, myprefix);
+ }
else if(tag->id == ST_DEFINEBUTTON && action) {
dumpButtonActions(tag, myprefix);
}