new function isPseudoDefiningTag.
[swftools.git] / lib / modules / swftools.c
index 5349620..47ce10e 100644 (file)
@@ -78,6 +78,7 @@ U16 swf_GetDefineID(TAG * t)
     case ST_DEFINESHAPE2:
     case ST_DEFINESHAPE3:
     case ST_DEFINEMORPHSHAPE:
+    case ST_DEFINEEDITTEXT:
     case ST_DEFINEBITS:
     case ST_DEFINEBITSJPEG2:
     case ST_DEFINEBITSJPEG3:
@@ -89,7 +90,7 @@ U16 swf_GetDefineID(TAG * t)
     case ST_DEFINEBUTTONSOUND:
     case ST_DEFINEFONT:
     case ST_DEFINEFONT2:
-    case ST_DEFINEFONTINFO:
+    case ST_DEFINEFONTINFO: //psedodefine
     case ST_DEFINETEXT:
     case ST_DEFINETEXT2:
     case ST_DEFINESOUND:
@@ -131,7 +132,7 @@ U16 swf_GetPlaceID(TAG * t)
   return id;
 }
 
-int definingtagids[] =
+static int swf_definingtagids[] =
 {ST_DEFINESHAPE,
  ST_DEFINESHAPE2,
  ST_DEFINESHAPE3,
@@ -155,7 +156,7 @@ int definingtagids[] =
 };
 
 // tags which may be used inside a sprite definition
-int spritetagids[] =
+static int swf_spritetagids[] =
 {ST_SHOWFRAME,
  ST_PLACEOBJECT,
  ST_PLACEOBJECT2,
@@ -171,13 +172,19 @@ int spritetagids[] =
  -1
 };
 
+static int swf_pseudodefiningtagids[] = 
+{
+ ST_DEFINEFONTINFO,
+ -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++;
     }
@@ -188,9 +195,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++;
     }