X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=f8dd094e86cf214132d5550c2e32715a57c19806;hb=4a693dc68e920916f7edf7d2f0b91dd141955fad;hp=70a1f35718ac467bb5dddbe3331e032262b62a0c;hpb=32bce7795076522c72a9c7f5720a6774f5f8223c;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 70a1f35..f8dd094 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -48,11 +48,11 @@ extern "C" { #define NO_MP3 #endif -typedef signed long SFIXED; -typedef signed long SCOORD; +typedef signed SFIXED; +typedef signed SCOORD; -#define SCOORD_MAX 0x7fffffff -#define SCOORD_MIN -0x80000000 +#define SCOORD_MAX 0x7fffffffl +#define SCOORD_MIN -0x80000000l // Basic Structures @@ -156,6 +156,7 @@ typedef struct _SWF U16 frameRate; U16 frameCount; // valid after load and save TAG * firstTag; + U32 fileAttributes; // for SWFs >= Flash9 } SWF; // Basic Functions @@ -192,7 +193,7 @@ void swf_OptimizeTagOrder(SWF*swf); TAG * swf_InsertTag(TAG * after,U16 id); // updates frames, if necessary TAG * swf_InsertTagBefore(SWF*swf, TAG * before,U16 id); // like InsertTag, but insert tag before argument -int swf_DeleteTag(TAG * t); +TAG * swf_DeleteTag(SWF*swf, TAG * t); void swf_ClearTag(TAG * t); //frees tag data void swf_ResetTag(TAG*tag, U16 id); //set's tag position and length to 0, without freeing it @@ -215,7 +216,7 @@ int swf_CountUBits(U32 v,int nbits); int swf_CountBits(U32 v,int nbits); int swf_GetBlock(TAG * t,U8 * b,int l); // resets Bitcount -int swf_SetBlock(TAG * t,U8 * b,int l); +int swf_SetBlock(TAG * t,const U8 * b,int l); U8 swf_GetU8(TAG * t); // resets Bitcount U16 swf_GetU16(TAG * t); @@ -328,6 +329,7 @@ SRECT swf_TurnRect(SRECT r, MATRIX* m); #define ST_FILEATTRIBUTES 69 /* version 8 (required)- */ #define ST_PLACEOBJECT3 70 /* version 8 */ #define ST_IMPORTASSETS2 71 /* version 8 */ +#define ST_RAWABC 72 /* version 9, used by flex */ #define ST_DEFINEFONTALIGNZONES 73 /* version 8 */ #define ST_CSMTEXTSETTINGS 74 /* version 8 */ #define ST_DEFINEFONT3 75 /* version 8 */ @@ -515,8 +517,8 @@ typedef struct _SWFFONT U8 version; // 0 = not set, 1 = definefont, 2 = definefont2 U8 * name; SWFLAYOUT * layout; - U16 numchars; - U16 maxascii; // highest mapped ascii value + int numchars; + int maxascii; // highest mapped ascii/unicode value U8 style; U8 encoding; @@ -799,8 +801,9 @@ void swf_uncgi(); // same behaviour as Steven Grimm's uncgi-library // swfabc.c -void AVM2_InsertStops(SWF*swf); -void swf_DissassembleABC(TAG*tag); +void* swf_ReadABC(TAG*tag); +void swf_WriteABC(TAG*tag, void*code); +void swf_AddButtonLinks(SWF*swf, char stop_each_frame); // swfaction.c @@ -937,9 +940,9 @@ void action_fixjump(ActionMarker m1, ActionMarker m2); extern char*blendModeNames[]; -int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name); -int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction); -int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U8 blendmode); +int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name); +int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U16 clipaction); +int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U8 blendmode); int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx); #define PF_MOVE 0x01