* ShapeSetEnd now resets the bit count
authorkramm <kramm>
Mon, 22 Oct 2001 15:57:10 +0000 (15:57 +0000)
committerkramm <kramm>
Mon, 22 Oct 2001 15:57:10 +0000 (15:57 +0000)
* fixed ShapeSetLine function

lib/modules/swfshape.c

index c09f30d..d1366ff 100644 (file)
@@ -438,6 +438,7 @@ int ShapeSetAll(LPTAG t,LPSHAPE s,S32 x,S32 y,U16 line,U16 fill0,U16 fill1)
 int ShapeSetEnd(LPTAG t)\r
 { if (!t) return -1;\r
   SetBits(t,0,6);\r
+  ResetBitcount(t);\r
   return 0;\r
 }\r
 \r
@@ -446,10 +447,10 @@ int ShapeSetLine(LPTAG t,LPSHAPE s,S32 x,S32 y)
   if (!t) return -1;\r
   SetBits(t,3,2); // Straight Edge\r
 \r
-  if ((!s)||(s->px!=x)||(s->py!=y))\r
+  if ((!s)||((x!=0)&&(y!=0)))\r
   { b = CountBits(x,2);\r
     b = CountBits(y,b);\r
-    SetBits(t,b-2,4);\r
+    SetBits(t, b>=2 ? b-2 : 0, 4);\r
     SetBits(t,1,1);\r
     SetBits(t,x,b);\r
     SetBits(t,y,b);\r
@@ -460,16 +461,16 @@ int ShapeSetLine(LPTAG t,LPSHAPE s,S32 x,S32 y)
     return 0;\r
   }\r
 \r
-  if (s->px==x)\r
+  if (x==0)\r
   { b = CountBits(y,2);\r
-    SetBits(t,b-2,4);\r
+    SetBits(t, b>=2 ? b-2 : 0, 4);\r
     SetBits(t,1,2);\r
     SetBits(t,y,b);\r
     s->py += y;\r
   }\r
   else\r
   { b = CountBits(x,2);\r
-    SetBits(t,b-2,4);\r
+    SetBits(t, b>=2 ? b-2 : 0, 4);\r
     SetBits(t,0,2);\r
     SetBits(t,x,b);\r
     s->px += x;\r