X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfaction.c;h=6b59ca0046c4fc0008ae687a580856e51e3299df;hb=cca1e30598ddd0df01af13bb2d994737792f6b0a;hp=48087ab7f86f2534ff1345ca621ec0fbc246244b;hpb=b0c5cc4e16532f813228c88d6dbdfee37999bd2a;p=swftools.git diff --git a/lib/modules/swfaction.c b/lib/modules/swfaction.c index 48087ab..6b59ca0 100644 --- a/lib/modules/swfaction.c +++ b/lib/modules/swfaction.c @@ -127,7 +127,8 @@ r: register (byte) {5,"TypeOf", 0x44,""}, {5,"Add2", 0x47,""}, {5,"Less2", 0x48,""}, -{5/*6?*/,"Less3", 0x67,""} +{5/*6?*/,"Less3?", 0x67,""}, +{5/*6?*/,"GetMembers?", 0x55,""} }; static int definedactions = sizeof(actions)/sizeof(struct Action); @@ -214,6 +215,8 @@ int OpAdvance(char c, U8*data) return 1; case 'b': return 2; + case 'r': + return 1; case 'p': { U8 type = *data++; if(type == 0) { @@ -335,20 +338,21 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) case '{': { U16 num; U16 codesize; + int s = 0; int t; printf(" %s(", data); - while(*data++); //name - num = (*data++); //num - num += (*data++)*256; + while(data[s++]); //name + num = (data[s++]); //num + num += (data[s++])*256; for(t=0;t=15) { @@ -382,6 +386,9 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) case 'b': { printf(" %d", data[0]+256*(signed char)data[1]); } break; + case 'r': { + printf(" %d", data[0]); + } break; case 'p': { U8 type = *data; unsigned char*value = data+1;