removed swfscripts again
[swftools.git] / lib / rfxswf.h
index 792ac14..d1473bd 100644 (file)
@@ -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);
@@ -255,6 +256,7 @@ int   swf_VerifyPassword(TAG * t, const char * password);
 
 // helper functions:
 
+SRECT swf_ClipRect(SRECT border, SRECT r);
 void swf_ExpandRect(SRECT*src, SPOINT add);
 void swf_ExpandRect2(SRECT*src, SRECT*add);
 void swf_ExpandRect3(SRECT*src, SPOINT center, int radius);
@@ -500,6 +502,7 @@ typedef struct _FONTUSAGE
 { int* chars;
   char is_reduced;
   int used_glyphs;
+  int glyphs_specified;
 } FONTUSAGE;
 
 #define FONT_STYLE_BOLD 1
@@ -513,8 +516,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;
@@ -795,6 +798,12 @@ RGBA swf_GetSWFBackgroundColor(SWF*swf);
 
 void swf_uncgi();  // same behaviour as Steven Grimm's uncgi-library
 
+// swfabc.c
+
+void* swf_ReadABC(TAG*tag);
+void swf_WriteABC(TAG*tag, void*code);
+void swf_AddButtonLinks(SWF*swf, char stop_each_frame);
+
 // swfaction.c
 
 typedef struct _ActionTAG
@@ -930,9 +939,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
@@ -1102,8 +1111,6 @@ FILTER*swf_GetFilter(TAG*tag);
 FILTER*swf_NewFilter(U8 type);
 void swf_DeleteFilter(FILTER*f);
 
-void AVM2_InsertStops(SWF*swf);
-
 #ifdef __cplusplus
 }
 #endif