]> git.sur5r.net Git - cc65/commitdiff
Add anchor point support
authorkarri <karri@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 6 Nov 2012 06:24:50 +0000 (06:24 +0000)
committerkarri <karri@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 6 Nov 2012 06:24:50 +0000 (06:24 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5917 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/sp65/lynxsprite.c

index 3250c0e0b3195292a567d837cba2b69576a7aaa0..d1dff1284c0390c48002f4831ac5ff887139a494 100644 (file)
@@ -33,6 +33,8 @@
 
 
 
+#include <stdlib.h>
+
 /* common */
 #include "attrib.h"
 #include "print.h"
@@ -86,6 +88,32 @@ static enum Mode GetMode (const Collection* A)
 }
 
 
+static unsigned GetActionPointX (const Collection* A)
+/* Return the sprite mode from the attribute collection A */
+{
+    /* Check for a action point x attribute */
+    const char* ActionPointX = GetAttrVal (A, "ax");
+    if (ActionPointX) {
+        return atoi(ActionPointX);
+    } else {
+        return 0;
+    }
+}
+
+
+static unsigned GetActionPointY (const Collection* A)
+/* Return the sprite mode from the attribute collection A */
+{
+    /* Check for a action point y attribute */
+    const char* ActionPointY = GetAttrVal (A, "ay");
+    if (ActionPointY) {
+        return atoi(ActionPointY);
+    } else {
+        return 0;
+    }
+}
+
+
 static void encodeSprite(StrBuf *D, enum Mode M, char ColorBits, char ColorMask, char LineBuffer[512],
     int i, int LastOpaquePixel) {
 /*
@@ -218,9 +246,15 @@ StrBuf* GenLynxSprite (const Bitmap* B, const Collection* A)
     char ColorBits;
     char ColorMask;
 
-    /* Anchor point of the sprite */
-    OX = 0;
-    OY = 0;
+    /* Action point of the sprite */
+    OX = GetActionPointX (A);
+    OY = GetActionPointY (A);
+    if (OX >= GetBitmapWidth (B)) {
+        Error ("Action point X cannot be larger than bitmap width");
+    }
+    if (OY >= GetBitmapHeight (B)) {
+        Error ("Action point Y cannot be larger than bitmap height");
+    }
 
     /* Output the image properties */
     Print (stdout, 1, "Image is %ux%u with %u colors%s\n",