added support for tiled level border graphics
authorHolger Schemel <info@artsoft.org>
Fri, 19 Nov 2021 08:55:52 +0000 (09:55 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 22 Jan 2022 16:58:27 +0000 (17:58 +0100)
src/tools.c

index e16a35ff097e77403277c32a0332220d99f0c679..08f2cc1e56d4ceb22df90824ce61fcd9433b2423 100644 (file)
@@ -1490,8 +1490,8 @@ int getGraphicAnimationFrameXY(int graphic, int lx, int ly)
     int ysize = MAX(1, g->anim_frames / xsize);
     int xoffset = g->anim_start_frame % xsize;
     int yoffset = g->anim_start_frame % ysize;
     int ysize = MAX(1, g->anim_frames / xsize);
     int xoffset = g->anim_start_frame % xsize;
     int yoffset = g->anim_start_frame % ysize;
-    int x = (lx + xoffset) % xsize;
-    int y = (ly + yoffset) % ysize;
+    int x = (lx + xoffset + xsize) % xsize;
+    int y = (ly + yoffset + ysize) % ysize;
     int sync_frame = y * xsize + x;
 
     return sync_frame % g->anim_frames;
     int sync_frame = y * xsize + x;
 
     return sync_frame % g->anim_frames;
@@ -2007,7 +2007,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   else // border element
   {
     graphic = el2img(element);
   else // border element
   {
     graphic = el2img(element);
-    frame = getGraphicAnimationFrame(graphic, -1);
+    frame = getGraphicAnimationFrameXY(graphic, lx, ly);
   }
 
   if (element == EL_EXPANDABLE_WALL)
   }
 
   if (element == EL_EXPANDABLE_WALL)