fixed bug with restarting pointer-style global animations when moving mouse
[rocksndiamonds.git] / src / anim.c
index 132ba13b4c490736c706b8cfe7310659107186d5..e603a9d38a0e3760e616a83f623db24c2aac39d1 100644 (file)
@@ -880,8 +880,8 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
     int mx = MIN(MAX(0, gfx.mouse_x), WIN_XSIZE - 1);
     int my = MIN(MAX(0, gfx.mouse_y), WIN_YSIZE - 1);
 
-    viewport_x = mx + part->control_info.x;
-    viewport_y = my + part->control_info.y;
+    viewport_x = mx - part->control_info.x;
+    viewport_y = my - part->control_info.y;
     viewport_width  = part->graphic_info.width;
     viewport_height = part->graphic_info.height;
 
@@ -933,7 +933,8 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
     part->viewport_width  = viewport_width;
     part->viewport_height = viewport_height;
 
-    changed = TRUE;
+    if (part->control_info.class != get_hash_from_key("pointer"))
+      changed = TRUE;
   }
 
   return changed;