From 483e075ffb6bd4a66fa57d7e628108d7296d15be Mon Sep 17 00:00:00 2001 From: kramm Date: Sun, 9 Dec 2007 10:48:49 +0000 Subject: [PATCH] a few more flash 9 additions --- lib/modules/swfdump.c | 2 ++ lib/modules/swftools.c | 3 +++ lib/rfxswf.h | 1 + src/swfdump.c | 9 ++++++++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/modules/swfdump.c b/lib/modules/swfdump.c index b2a6698..1287cc6 100644 --- a/lib/modules/swfdump.c +++ b/lib/modules/swfdump.c @@ -237,6 +237,8 @@ char* swf_TagGetName(TAG*tag) return "DEFINEFONT3"; case ST_DEFINEFONTALIGNZONES: return "DEFINEFONTALIGNZONES"; + case ST_DEFINEFONTNAME: + return "DEFINEFONTNAME"; case ST_CSMTEXTSETTINGS: return "CSMTEXTSETTINGS"; case ST_FREEALL: diff --git a/lib/modules/swftools.c b/lib/modules/swftools.c index f763897..313d082 100644 --- a/lib/modules/swftools.c +++ b/lib/modules/swftools.c @@ -118,6 +118,7 @@ U16 swf_GetDefineID(TAG * t) case ST_DEFINEFONTINFO: //pseudodefine case ST_DEFINEFONTINFO2: //pseudodefine case ST_DEFINEFONTALIGNZONES: //pseudodefine + case ST_DEFINEFONTNAME: //pseudodefine case ST_DEFINETEXT: case ST_DEFINETEXT2: case ST_DEFINESOUND: @@ -270,6 +271,7 @@ static int swf_pseudodefiningtagids[] = ST_DEFINEFONTINFO, ST_DEFINEFONTINFO2, ST_DEFINEFONTALIGNZONES, + ST_DEFINEFONTNAME, ST_DEFINEBUTTONCXFORM, ST_DEFINEBUTTONSOUND, ST_DEFINESCALINGGRID, @@ -607,6 +609,7 @@ void enumerateUsedIDs(TAG * tag, int base, void (*callback)(TAG*, int, void*), v case ST_FREECHARACTER: /* unusual tags, which all start with an ID */ case ST_NAMECHARACTER: case ST_DEFINEBINARY: + case ST_DEFINEFONTNAME: case ST_GENERATORTEXT: callback(tag, tag->pos + base, callback_data); break; diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 67046f2..d246cd2 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -334,6 +334,7 @@ SRECT swf_TurnRect(SRECT r, MATRIX* m); #define ST_DEFINEMORPHSHAPE2 84 /* version 8 */ #define ST_SCENEDESCRIPTION 86 /* version 9 */ #define ST_DEFINEBINARY 87 /* version 9 */ +#define ST_DEFINEFONTNAME 88 /* version 9 */ /* custom tags- only valid for swftools */ #define ST_REFLEX 777 /* to identify generator software */ diff --git a/src/swfdump.c b/src/swfdump.c index 35dc77e..a16f873 100644 --- a/src/swfdump.c +++ b/src/swfdump.c @@ -1246,7 +1246,7 @@ int main (int argc,char ** argv) } else if(tag->id == ST_PLACEOBJECT2 || tag->id == ST_PLACEOBJECT3) { } - else if(tag->id == ST_NAMECHARACTER) { + else if(tag->id == ST_NAMECHARACTER || tag->id==ST_DEFINEFONTNAME) { swf_GetU16(tag); printf(" \"%s\"\n", swf_GetString(tag)); } @@ -1310,6 +1310,13 @@ int main (int argc,char ** argv) else if(tag->id == ST_PLACEOBJECT2 || tag->id == ST_PLACEOBJECT3) { handlePlaceObject23(tag, myprefix); } + else if(tag->id == ST_DEFINEFONTNAME) { + swf_SetTagPos(tag, 0); + swf_GetU16(tag); //id + swf_GetString(tag); //name + char* copyright = swf_GetString(tag); + printf("%s%s\n", myprefix, copyright); + } else if(tag->id == ST_DEFINESHAPE || tag->id == ST_DEFINESHAPE2 || tag->id == ST_DEFINESHAPE3 || -- 1.7.10.4