X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswftools.c;h=a1befc2d9ff4d22267fe5806e7eef55ccb8b119f;hb=47806f6bdb0797f02a12410956c63c80c8985129;hp=3427436e2afd891c14bb26d44bbdee6019a56689;hpb=9b55540dea2fbd5c4fc153bde0b32190c10fb87e;p=swftools.git diff --git a/lib/modules/swftools.c b/lib/modules/swftools.c index 3427436..a1befc2 100644 --- a/lib/modules/swftools.c +++ b/lib/modules/swftools.c @@ -86,15 +86,16 @@ U16 swf_GetDefineID(TAG * t) case ST_DEFINEBITSLOSSLESS2: case ST_DEFINEBUTTON: case ST_DEFINEBUTTON2: - case ST_DEFINEBUTTONCXFORM: - case ST_DEFINEBUTTONSOUND: + case ST_DEFINEBUTTONCXFORM: //pseudodefine + case ST_DEFINEBUTTONSOUND: //pseudodefine case ST_DEFINEFONT: case ST_DEFINEFONT2: - case ST_DEFINEFONTINFO: + case ST_DEFINEFONTINFO: //pseudodefine case ST_DEFINETEXT: case ST_DEFINETEXT2: case ST_DEFINESOUND: case ST_DEFINESPRITE: + case ST_NAMECHARACTER: //pseudodefine id = swf_GetU16(t); break; } @@ -132,7 +133,7 @@ U16 swf_GetPlaceID(TAG * t) return id; } -int definingtagids[] = +static int swf_definingtagids[] = {ST_DEFINESHAPE, ST_DEFINESHAPE2, ST_DEFINESHAPE3, @@ -156,7 +157,7 @@ int definingtagids[] = }; // tags which may be used inside a sprite definition -int spritetagids[] = +static int swf_spritetagids[] = {ST_SHOWFRAME, ST_PLACEOBJECT, ST_PLACEOBJECT2, @@ -172,13 +173,22 @@ int spritetagids[] = -1 }; +static int swf_pseudodefiningtagids[] = +{ + ST_DEFINEFONTINFO, + ST_DEFINEBUTTONCXFORM, + ST_DEFINEBUTTONSOUND, + ST_NAMECHARACTER, + -1 +}; + U8 swf_isAllowedSpriteTag(TAG * tag) { int id = tag->id; int t=0; - while(spritetagids[t]>=0) + while(swf_spritetagids[t]>=0) { - if(spritetagids[t] == id) + if(swf_spritetagids[t] == id) return 1; t++; } @@ -189,9 +199,22 @@ U8 swf_isDefiningTag(TAG * tag) { int id = tag->id; int t=0; - while(definingtagids[t]>=0) + while(swf_definingtagids[t]>=0) + { + if(swf_definingtagids[t] == id) + return 1; + t++; + } + return 0; +} + +U8 swf_isPseudoDefiningTag(TAG * tag) +{ + int id = tag->id; + int t=0; + while(swf_pseudodefiningtagids[t]>=0) { - if(definingtagids[t] == id) + if(swf_pseudodefiningtagids[t] == id) return 1; t++; }