removed unused array for SDL key state
[rocksndiamonds.git] / src / anim.c
index b651ac6fc5cbe1e31556d82b2585415a6149a180..53435a97a71f660a6c5c62c904220ed3890f0fa3 100644 (file)
@@ -598,10 +598,15 @@ static void InitGlobalAnimControls(void)
          anim->has_base = TRUE;
        }
 
-       // force pointer-style animations to pass-through clicks
-       if (part->control_info.class == get_hash_from_key("pointer") &&
-           part->control_info.style == STYLE_DEFAULT)
+       // apply special settings to pointer-style animations
+       if (part->control_info.class == get_hash_from_string("pointer"))
+       {
+         // force pointer-style animations to be checked for clicks first
+         part->control_info.draw_order = 1000000;
+
+         // force pointer-style animations to pass-through clicks
          part->control_info.style |= STYLE_PASSTHROUGH;
+       }
       }
 
       if (anim->num_parts > 0 || anim->has_base)
@@ -982,7 +987,7 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
   boolean changed = FALSE;
 
   if (part->last_anim_status == global.anim_status &&
-      part->control_info.class != get_hash_from_key("pointer"))
+      part->control_info.class != get_hash_from_string("pointer"))
     return FALSE;
 
   part->last_anim_status = global.anim_status;
@@ -991,8 +996,8 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
 
   part->class_playfield_or_door = FALSE;
 
-  if (part->control_info.class == get_hash_from_key("window") ||
-      part->control_info.class == get_hash_from_key("border"))
+  if (part->control_info.class == get_hash_from_string("window") ||
+      part->control_info.class == get_hash_from_string("border"))
   {
     viewport_x = 0;
     viewport_y = 0;
@@ -1001,7 +1006,7 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
 
     part->drawing_stage = DRAW_GLOBAL_ANIM_STAGE_2;
   }
-  else if (part->control_info.class == get_hash_from_key("pointer"))
+  else if (part->control_info.class == get_hash_from_string("pointer"))
   {
     int mx = MIN(MAX(0, gfx.mouse_x), WIN_XSIZE - 1);
     int my = MIN(MAX(0, gfx.mouse_y), WIN_YSIZE - 1);
@@ -1022,7 +1027,7 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
     if (global.anim_status != GAME_MODE_LOADING)
       gfx.cursor_mode_override = CURSOR_NONE;
   }
-  else if (part->control_info.class == get_hash_from_key("door_1"))
+  else if (part->control_info.class == get_hash_from_string("door_1"))
   {
     viewport_x = DX;
     viewport_y = DY;
@@ -1031,7 +1036,7 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
 
     part->class_playfield_or_door = TRUE;
   }
-  else if (part->control_info.class == get_hash_from_key("door_2"))
+  else if (part->control_info.class == get_hash_from_string("door_2"))
   {
     if (part->mode_nr == GAME_MODE_EDITOR)
     {
@@ -1070,7 +1075,7 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part
     part->viewport_width  = viewport_width;
     part->viewport_height = viewport_height;
 
-    if (part->control_info.class != get_hash_from_key("pointer"))
+    if (part->control_info.class != get_hash_from_string("pointer"))
       changed = TRUE;
   }
 
@@ -1608,7 +1613,7 @@ static int HandleGlobalAnim_Part(struct GlobalAnimPartControlInfo *part,
       part->step_yoffset = 0;
     }
 
-    if (part->control_info.class != get_hash_from_key("pointer"))
+    if (part->control_info.class != get_hash_from_string("pointer"))
     {
       if (c->x != ARG_UNDEFINED_VALUE)
        part->x = c->x;
@@ -2071,7 +2076,7 @@ static boolean InitGlobalAnim_Clicked(int mx, int my, int clicked_event)
 
     // if request dialog is active, only handle pointer-style animations
     if (game.request_active &&
-       part->control_info.class != get_hash_from_key("pointer"))
+       part->control_info.class != get_hash_from_string("pointer"))
       continue;
 
     if (clicked_event == ANIM_CLICKED_RESET)