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)
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;
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;
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);
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;
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)
{
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;
}
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;
// 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)