git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added missing imports
[swftools.git]
/
src
/
swfdump.c
diff --git
a/src/swfdump.c
b/src/swfdump.c
index
3accbfb
..
c6e438e
100644
(file)
--- a/
src/swfdump.c
+++ b/
src/swfdump.c
@@
-265,6
+265,7
@@
void dumpButtonActions(TAG*tag, char*prefix)
}
actions = swf_ActionGet(tag);
swf_DumpActions(actions, prefix);
}
actions = swf_ActionGet(tag);
swf_DumpActions(actions, prefix);
+ swf_ActionFree(actions);
}
void dumpButton(TAG*tag, char*prefix)
}
void dumpButton(TAG*tag, char*prefix)
@@
-785,11
+786,13
@@
char* fillstyle2str(FILLSTYLE*style)
/* TODO: display information about that bitmap */
sprintf(stylebuf, "BITMAPt%s %d", (style->type&2)?"n":"", style->id_bitmap);
/* TODO: show matrix */
/* TODO: display information about that bitmap */
sprintf(stylebuf, "BITMAPt%s %d", (style->type&2)?"n":"", style->id_bitmap);
/* TODO: show matrix */
+ //swf_DumpMatrix(stdout, &style->m);
break;
case 0x41: case 0x43:
/* TODO: display information about that bitmap */
sprintf(stylebuf, "BITMAPc%s %d", (style->type&2)?"n":"", style->id_bitmap);
/* TODO: show matrix */
break;
case 0x41: case 0x43:
/* TODO: display information about that bitmap */
sprintf(stylebuf, "BITMAPc%s %d", (style->type&2)?"n":"", style->id_bitmap);
/* TODO: show matrix */
+ //swf_DumpMatrix(stdout, &style->m);
break;
default:
sprintf(stylebuf, "UNKNOWN[%02x]",style->type);
break;
default:
sprintf(stylebuf, "UNKNOWN[%02x]",style->type);
@@
-1176,6
+1179,20
@@
int main (int argc,char ** argv)
else if(tag->id == ST_FREECHARACTER) {
printf(" frees object %04d", swf_GetPlaceID(tag));
}
else if(tag->id == ST_FREECHARACTER) {
printf(" frees object %04d", swf_GetPlaceID(tag));
}
+ else if(tag->id == ST_DOABC) {
+ swf_SetTagPos(tag, 0);
+ U32 flags = swf_GetU32(tag);
+ char*s = swf_GetString(tag);
+ if(*s) {
+ printf(" \"%s\"", s);
+ }
+ if(flags&1) {
+ if(name)
+ printf(",");
+ printf(" lazy load");
+ }
+ swf_SetTagPos(tag, 0);
+ }
else if(tag->id == ST_STARTSOUND) {
U8 flags;
U16 id;
else if(tag->id == ST_STARTSOUND) {
U8 flags;
U16 id;
@@
-1235,18
+1252,15
@@
int main (int argc,char ** argv)
if(issprite) {spriteframe++; spriteframelabel = 0;}
if(!issprite) {mainframe++; framelabel = 0;}
}
if(issprite) {spriteframe++; spriteframelabel = 0;}
if(!issprite) {mainframe++; framelabel = 0;}
}
-
- if(tag->id == ST_SETBACKGROUNDCOLOR) {
+ else if(tag->id == ST_SETBACKGROUNDCOLOR) {
U8 r = swf_GetU8(tag);
U8 g = swf_GetU8(tag);
U8 b = swf_GetU8(tag);
U8 r = swf_GetU8(tag);
U8 g = swf_GetU8(tag);
U8 b = swf_GetU8(tag);
- printf(" (%02x/%02x/%02x)\n",r,g,b);
+ printf(" (%02x/%02x/%02x)",r,g,b);
}
else if(tag->id == ST_PROTECT) {
if(tag->len>0) {
}
else if(tag->id == ST_PROTECT) {
if(tag->len>0) {
- printf(" %s\n", swf_GetString(tag));
- } else {
- printf("\n");
+ printf(" %s", swf_GetString(tag));
}
}
else if(tag->id == ST_CSMTEXTSETTINGS) {
}
}
else if(tag->id == ST_CSMTEXTSETTINGS) {
@@
-1266,10
+1280,11
@@
int main (int argc,char ** argv)
printf("unknown[%08x],", flags);
float thickness = swf_GetFixed(tag);
float sharpness = swf_GetFixed(tag);
printf("unknown[%08x],", flags);
float thickness = swf_GetFixed(tag);
float sharpness = swf_GetFixed(tag);
- printf("s=%.2f,t=%.2f)\n", thickness, sharpness);
+ printf("s=%.2f,t=%.2f)", thickness, sharpness);
swf_GetU8(tag);
}
swf_GetU8(tag);
}
- else if(tag->id == ST_DEFINEBITSLOSSLESS ||
+
+ if(tag->id == ST_DEFINEBITSLOSSLESS ||
tag->id == ST_DEFINEBITSLOSSLESS2) {
handleDefineBits(tag);
printf("\n");
tag->id == ST_DEFINEBITSLOSSLESS2) {
handleDefineBits(tag);
printf("\n");
@@
-1352,8
+1367,10
@@
int main (int argc,char ** argv)
actions = swf_ActionGet(tag);
swf_DumpActions(actions, myprefix);
}
actions = swf_ActionGet(tag);
swf_DumpActions(actions, myprefix);
}
- else if(tag->id == ST_DOABC && action) {
- swf_ReadABC(tag);
+ else if((tag->id == ST_DOABC || tag->id == ST_RAWABC) && action) {
+ void*abccode = swf_ReadABC(tag);
+ swf_DumpABC(stdout, abccode, "");
+ swf_FreeABC(abccode);
}
else if(tag->id == ST_DOINITACTION && action) {
ActionTAG*actions;
}
else if(tag->id == ST_DOINITACTION && action) {
ActionTAG*actions;