X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfaction.c;h=014730b01b64df79ba1831e09daddfa5d23f26a9;hb=47df0688e74d14cb1aaff3fca3ac51356d632dd2;hp=53aab9c12c0f2540d76c6fef623f5f28f0adeaf0;hpb=2f8eafc40152ad19b48e49f7dd16c4508782a568;p=swftools.git diff --git a/lib/modules/swfaction.c b/lib/modules/swfaction.c index 53aab9c..014730b 100644 --- a/lib/modules/swfaction.c +++ b/lib/modules/swfaction.c @@ -13,6 +13,8 @@ #include "../rfxswf.h" +#define MAX_LOOKUP 1024 // make cross references in dumps + struct Action { int version; @@ -229,7 +231,7 @@ int OpAdvance(char c, char*data) return 1+4; //int } else if (type == 8) { return 1+1; //lookup - } + } else return 1; break; } } @@ -242,8 +244,18 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) int t; U8*data; char* cp; - if(!prefix) - prefix=""; + int entry = 0; + +#ifdef MAX_LOOKUP + + char * lookup[MAX_LOOKUP]; + memset(lookup,0x00,sizeof(lookup)); + +#endif + + if (!prefix) + prefix=""; + while(atag) { U8 poollen = 0; @@ -278,9 +290,14 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) } break; case 'c': { printf(" String:\"%s\"", data); +#ifdef MAX_LOOKUP + if (entrynext; } + +#ifdef MAX_LOOKUP + for (t=0;ttmp = 7; //int - *(U8*)¤tatag->tmp[1] = i; + *(U32*)¤tatag->tmp[1] = i; swf_AddActionTAG(ACTION_PUSH, (U8*)currentatag->tmp, 5); } void action_GotoLabel(char* label) @@ -828,3 +853,30 @@ void action_GetUrl(char* url, char* label) void action_DefineFunction(U8*data, int len) {} void action_Constantpool(char* constantpool) {} void action_With(char*object) {} + +/* + Properties: + + _X 0 + _Y 1 + _xscale 2 + _yscale 3 + _currentframe 4 + _totalframes 5 + _alpha 6 + _visible 7 + _width 8 + _height 9 + _rotation 10 + _target 11 + _framesloaded 12 + _name 13 + _droptarget 14 + _url 15 + _highquality 16 + _focusrect 17 + _soundbuftime 18 + _quality* 19 + _xmouse* 20 + _ymouse* 21 +*/