/* mouse over slots - show tool tips */ static int mouseover_manufacture_slot_handler(window_info *win, int mx, int my) { int pos; int check_for_eye = 0; int help_line = 0; /* See if we're over a message - and offer clear help if so */ if (show_help_text && *inventory_item_string && (my > manufacture_menu_y_len-85) && my < (manufacture_menu_y_len-37)) { show_help((disable_double_click)?click_clear_str :double_click_clear_str, 0, win->len_y + 10 + SMALL_FONT_Y_LEN*help_line++); } /* see if we're over an item in the main category */ pos=get_mouse_pos_in_grid(mx, my, 12, 3, 0, 0, SLOT_SIZE, SLOT_SIZE); if (pos >= 0 && manufacture_list[pos].quantity > 0){ if (show_help_text) show_help(manu_add_str, 0, win->len_y + 10 + SMALL_FONT_Y_LEN*help_line++); check_for_eye = 1; } /* see if we're over an item from the "production pipe" */ pos=get_mouse_pos_in_grid(mx, my, NUM_MIX_SLOTS, 1, 5, manufacture_menu_y_len-37, SLOT_SIZE, SLOT_SIZE); if (pos >= 0) { if (manufacture_list[MIX_SLOT_OFFSET+pos].quantity > 0){ if (show_help_text) show_help(manu_remove_str, 0, win->len_y + 10 + SMALL_FONT_Y_LEN*help_line++); check_for_eye = 1; } else show_help(recipe_show_hide_str, 0, win->len_y + 10 + SMALL_FONT_Y_LEN*help_line++); } /*check recipe controls*/ if (pos<0 && show_help_text) recipe_controls_mouseover_handler(win, mx,my,&help_line); // show the recipe search help if (show_help_text && !recipes_shown && !disable_manuwin_keypress) show_help(recipe_find_str, 0, win->len_y + 10 + SMALL_FONT_Y_LEN*help_line++); /* if we're over an occupied slot and the eye cursor function is active, show the eye cursor */ if (check_for_eye){ if (action_mode == ACTION_LOOK){ elwin_mouse = CURSOR_EYE; return 1; } } return 0; }
/* mouse over slots - show tool tips */ int mouseover_manufacture_slot_handler(window_info *win, int mx, int my) { int pos; int check_for_eye = 0; /* See if we're over a message - and offer clear help if so */ if (show_help_text && *inventory_item_string && (my > manufacture_menu_y_len-85) && my < (manufacture_menu_y_len-37)) { show_help((disable_double_click)?click_clear_str :double_click_clear_str, 0, win->len_y+10); } /* see if we clicked on any item in the main category */ pos=get_mouse_pos_in_grid(mx, my, 12, 3, 0, 0, 33, 33); if (pos >= 0 && manufacture_list[pos].quantity > 0){ if (show_help_text) show_help(manu_add_str, 0, manufacture_menu_y_len+10); check_for_eye = 1; } /* see if we clicked on any item from the "production pipe" */ pos=get_mouse_pos_in_grid(mx, my, 6, 1, 5, manufacture_menu_y_len-37, 33, 33); if (pos >= 0 && manufacture_list[36+pos].quantity > 0){ if (show_help_text) show_help(manu_remove_str, 0, manufacture_menu_y_len+10); check_for_eye = 1; } /*check recipe controls*/ if (show_help_text) recipe_controls_mouseover_handler(mx,my); /* if we're over an occupied slot and the eye cursor function is active, show the eye cursor */ if (check_for_eye){ if (action_mode == ACTION_LOOK){ elwin_mouse = CURSOR_EYE; return 1; } } return 0; }
/* mouse over slots - show tool tips */ static int mouseover_manufacture_slot_handler(window_info *win, int mx, int my) { int pos; int check_for_eye = 0; int help_line = 0; const char *descp_str = NULL; /* Do nothing when mouse over title bar */ if (my<0) return 0; /* See if we're over a message - and offer clear help if so */ if (show_help_text && *inventory_item_string && (my > manufacture_menu_y_len-text_y_offset) && my < (manufacture_menu_y_len-recipe_y_offset)) { show_help((disable_double_click) ?click_clear_str :double_click_clear_str, 0, win->len_y + 10 + win->small_font_len_y*help_line++, win->current_scale); } /* see if we're over an item in the main category */ pos=get_mouse_pos_in_grid(mx, my, GRID_COLS, GRID_ROWS, 0, 0, SLOT_SIZE, SLOT_SIZE); if (pos >= 0 && manufacture_list[pos].quantity > 0){ if (show_help_text) show_help(manu_add_str, 0, win->len_y + 10 + win->small_font_len_y*help_line++, win->current_scale); if (show_item_desc_text && item_info_available() && (get_item_count(manufacture_list[pos].id, manufacture_list[pos].image_id) == 1)) descp_str = get_item_description(manufacture_list[pos].id, manufacture_list[pos].image_id); check_for_eye = 1; mouse_over_main_pos = pos; } /* see if we're over an item from the "production pipe" */ pos=get_mouse_pos_in_grid(mx, my, NUM_MIX_SLOTS, 1, pipeline_x, manufacture_menu_y_len-recipe_y_offset, SLOT_SIZE, SLOT_SIZE); if (pos >= 0) { if (manufacture_list[MIX_SLOT_OFFSET+pos].quantity > 0){ if (show_help_text) show_help(manu_remove_str, 0, win->len_y + 10 + win->small_font_len_y*help_line++, win->current_scale); check_for_eye = 1; mouse_over_pipe_pos = pos; } else if (pos != last_changed_slot) show_help(recipe_show_hide_str, 0, win->len_y + 10 + win->small_font_len_y*help_line++, win->current_scale); } /*check recipe controls*/ if (pos<0 && show_help_text) recipe_controls_mouseover_handler(win, mx,my,&help_line); // show the recipe search help if (show_help_text && !recipes_shown && !disable_manuwin_keypress) show_help(recipe_find_str, 0, win->len_y + 10 + win->small_font_len_y*help_line++, win->current_scale); /* if set, show the description last */ if (descp_str != NULL) show_help(descp_str, 0, win->len_y + 10 + win->small_font_len_y*help_line++, win->current_scale); /* if we're over an occupied slot and the eye cursor function is active, show the eye cursor */ if (check_for_eye){ if (action_mode == ACTION_LOOK){ elwin_mouse = CURSOR_EYE; return 1; } } return 0; }