+
+void swf_RelocateDepth(SWF*swf, char*bitmap)
+{
+ TAG*tag;
+ int nr;
+ tag = swf->firstTag;
+ for(nr=65535;nr>=0;nr--) {
+ if(bitmap[nr] != 0)
+ break;
+ }
+ // now nr is the highest used depth. So we start
+ // assigning depths at nr+1
+ nr++;
+
+ while(tag)
+ {
+ int depth = swf_GetDepth(tag);
+ if(depth>=0) {
+ int newdepth = depth+nr;
+ if(newdepth>65535) {
+ fprintf(stderr, "Couldn't relocate depths: too large values\n");
+ newdepth = 65535;
+ }
+ swf_SetDepth(tag, newdepth);
+ }
+ tag=tag->next;
+ }
+}