case ST_DEFINESHAPE2:
case ST_DEFINESHAPE3:
case ST_DEFINEMORPHSHAPE:
+ case ST_DEFINEEDITTEXT:
case ST_DEFINEBITS:
case ST_DEFINEBITSJPEG2:
case ST_DEFINEBITSJPEG3:
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;
}
return id;
}
-int definingtagids[] =
+static int swf_definingtagids[] =
{ST_DEFINESHAPE,
ST_DEFINESHAPE2,
ST_DEFINESHAPE3,
};
// tags which may be used inside a sprite definition
-int spritetagids[] =
+static int swf_spritetagids[] =
{ST_SHOWFRAME,
ST_PLACEOBJECT,
ST_PLACEOBJECT2,
-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++;
}
{
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++;
}
return depth;
}
-char* swf_GetTagName(TAG * t)
+char* swf_GetName(TAG * t)
{
char* name = 0;
U32 oldTagPos;
if(flags&PF_RATIO)
swf_GetU16(t);
if(flags&PF_NAME) {
- swf_ResetBitmask(t);
+ swf_ResetReadBits(t);
name = &t->data[swf_GetTagPos(t)];
}
}