flash9 tags implementation
[swftools.git] / lib / modules / swftools.c
index fd27d1b..f763897 100644 (file)
@@ -155,6 +155,7 @@ SRECT swf_GetDefineBBox(TAG * t)
   { case ST_DEFINESHAPE:
     case ST_DEFINESHAPE2:
     case ST_DEFINESHAPE3:
+    case ST_DEFINESHAPE4:
     case ST_DEFINEEDITTEXT:
     case ST_DEFINETEXT:
     case ST_DEFINETEXT2:
@@ -240,6 +241,7 @@ static int swf_definingtagids[] =
  ST_DEFINEBUTTON2,
  ST_DEFINESOUND,
  ST_DEFINEVIDEOSTREAM,
+ ST_DEFINEBINARY,
  -1
 };
 
@@ -252,6 +254,7 @@ static int swf_spritetagids[] =
  ST_REMOVEOBJECT,
  ST_REMOVEOBJECT2,
  ST_DOACTION,
+ ST_DOABC,
  ST_STARTSOUND,
  ST_FRAMELABEL,
  ST_SOUNDSTREAMHEAD,
@@ -603,6 +606,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_GENERATORTEXT:
            callback(tag, tag->pos + base, callback_data);
         break;
@@ -961,10 +965,10 @@ void swf_Relocate (SWF*swf, char*bitmap)
                if(slaveids[id]<0) {
                    fprintf(stderr, "swf_Relocate: Mapping id (%d) never encountered before in %s\n", id,
                            swf_TagGetName(tag));
-                   return ;
+               } else {
+                   id = slaveids[id];
+                   PUT16(&tag->data[ptr[t]], id);
                }
-               id = slaveids[id];
-               PUT16(&tag->data[ptr[t]], id);
            }
        }
        tag=tag->next;