static int showshapes = 0;
static int hex = 0;
static int used = 0;
+static int bbox = 0;
static struct options_t options[] = {
{"h", "help"},
{"Y", "height"},
{"r", "rate"},
{"f", "frames"},
+{"b", "bbox"},
{"d", "hex"},
{"u", "used"},
{0,0}
used = 1;
return 0;
}
+ else if(name[0]=='b') {
+ bbox = 1;
+ return 0;
+ }
else if(name[0]=='D') {
action = placements = showtext = showshapes = 1;
return 0;
swf_DumpActions(actions, prefix);
}
-#define ET_HASTEXT 32768
-#define ET_WORDWRAP 16384
-#define ET_MULTILINE 8192
-#define ET_PASSWORD 4096
-#define ET_READONLY 2048
-#define ET_HASTEXTCOLOR 1024
-#define ET_HASMAXLENGTH 512
-#define ET_HASFONT 256
-#define ET_X3 128
-#define ET_X2 64
-#define ET_HASLAYOUT 32
-#define ET_NOSELECT 16
-#define ET_BORDER 8
-#define ET_X1 4
-#define ET_X0 2
-#define ET_USEOUTLINES 1
-
SWF swf;
int fontnum = 0;
SWFFONT**fonts;
int t;
id = swf_GetU16(tag);
swf_GetRect(tag,0);
+
//swf_ResetReadBits(tag);
+
if (tag->readBit)
{ tag->pos++;
tag->readBit = 0;
swf_GetU16(tag); //indent
swf_GetU16(tag); //leading
}
- printf(" variable \"%s\"", &tag->data[tag->pos]);
+ printf(" variable \"%s\" ", &tag->data[tag->pos]);
+ if(flags & ET_HTML) printf("(html)");
+ if(flags & ET_NOSELECT) printf("(noselect)");
+ if(flags & ET_PASSWORD) printf("(password)");
+ if(flags & ET_READONLY) printf("(readonly)");
- if(flags & (ET_X1 | ET_X2 | ET_X3 | ET_X0))
+ if(flags & (ET_X1 | ET_X3 ))
{
- printf(" undefined flags: %d%d%d%d",
- (flags&ET_X0?1:0),
- (flags&ET_X1?1:0),
- (flags&ET_X2?1:0),
- (flags&ET_X3?1:0));
+ printf(" undefined flags: %08x (%08x)", (flags&(ET_X1|ET_X3)), flags);
}
while(tag->data[tag->pos++]);
if(t < shape.numfillstyles) {
printf(" | %-2d) %-18.18s", t+1, fillstyle2str(&shape.fillstyles[t]));
} else {
- printf(" ");
+ printf(" ");
}
if(t < shape.numlinestyles) {
printf("%-2d) %s", t+1, linestyle2str(&shape.linestyles[t]));
printf("%s |\n", prefix);
}
-void fontcallback1(U16 id,U8 * name)
+void fontcallback1(void*self, U16 id,U8 * name)
{ fontnum++;
}
-void fontcallback2(U16 id,U8 * name)
+void fontcallback2(void*self, U16 id,U8 * name)
{
swf_FontExtract(&swf,id,&fonts[fontnum]);
fontnum++;
if(showtext) {
fontnum = 0;
- swf_FontEnumerate(&swf,&fontcallback1);
+ swf_FontEnumerate(&swf,&fontcallback1, 0);
fonts = (SWFFONT**)malloc(fontnum*sizeof(SWFFONT*));
fontnum = 0;
- swf_FontEnumerate(&swf,&fontcallback2);
+ swf_FontEnumerate(&swf,&fontcallback2, 0);
}
while(tag) {
else {
printf("\n");
}
+
+ if(bbox && swf_isDefiningTag(tag) && tag->id != ST_DEFINESPRITE) {
+ SRECT r = swf_GetDefineBBox(tag);
+ printf(" %s bbox [%.2f, %.2f, %.2f, %.2f]\n", prefix,
+ r.xmin/20.0,
+ r.ymin/20.0,
+ r.xmax/20.0,
+ r.ymax/20.0);
+ }
sprintf(myprefix, " %s", prefix);