added buttoncxform, buttonsound, namecharacter to pseudodefines.
[swftools.git] / lib / modules / swftools.c
index 3427436..a1befc2 100644 (file)
@@ -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++;
     }