added O_BINARY
[swftools.git] / src / swfc.c
index 25e047d..db12bd7 100644 (file)
@@ -441,7 +441,7 @@ static void s_endSWF()
        swf->movieSize.ymax += 20;
     }
 
-    fi = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+    fi = open(filename, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644);
     if(fi<0) {
        syntaxerror("couldn't create output file %s", filename);
     }
@@ -619,7 +619,7 @@ void s_font(char*name, char*filename)
     int f;
     SWF swf;
     SWFFONT* font;
-    f = open(filename,O_RDONLY);
+    f = open(filename,O_RDONLY|O_BINARY);
     if (f<0) { 
        warning("Couldn't open file \"%s\": %s", filename, strerror(errno));
        font = (SWFFONT*)malloc(sizeof(SWFFONT));
@@ -712,7 +712,7 @@ void s_playsound(char*name, int loops, int nomultiple, int stop)
     memset(&info, 0, sizeof(info));
     info.stop = stop;
     info.loops = loops;
-    info.multiple = !nomultiple;
+    info.nomultiple = nomultiple;
     swf_SetSoundInfo(tag, &info);
 }
 
@@ -1332,8 +1332,13 @@ static int c_play(map_t*args)
     char*name = lu(args, "sound");
     char*loop = lu(args, "loop");
     char*nomultiple = lu(args, "nomultiple");
+    int nm = 0;
+    if(!strcmp(nomultiple, "nomultiple"))
+       nm = 1;
+    else
+       nm = parseInt(nomultiple);
 
-    s_playsound(name, parseInt(loop), parseInt(nomultiple), 0);
+    s_playsound(name, parseInt(loop), nm, 0);
     return 0;
 }