bool validate_click (void) { if (mwin >= 0) { if (mouse_y < wp[mwin].y_pos || mouse_y >= wp[mwin].y_pos + wp[mwin].y_size) return FALSE; if (mouse_x < wp[mwin].x_pos || mouse_x >= wp[mwin].x_pos + wp[mwin].x_size) return FALSE; } else { if (mouse_y < 1 || mouse_y > h_screen_height) return FALSE; if (mouse_x < 1 || mouse_x > h_screen_width) return FALSE; } hx_mouse_y = mouse_y; hx_mouse_x = mouse_x; if (h_version != V6) { hx_mouse_y = (hx_mouse_y - 1) / h_font_height + 1; hx_mouse_x = (hx_mouse_x - 1) / h_font_width + 1; } set_header_extension (HX_MOUSE_Y, hx_mouse_y); set_header_extension (HX_MOUSE_X, hx_mouse_x); return TRUE; }/* validate_click */
void Mem::restart_header(void) { zword screen_x_size; zword screen_y_size; zbyte font_x_size; zbyte font_y_size; int i; SET_BYTE(H_CONFIG, h_config); SET_WORD(H_FLAGS, h_flags); if (h_version >= V4) { SET_BYTE(H_INTERPRETER_NUMBER, h_interpreter_number); SET_BYTE(H_INTERPRETER_VERSION, h_interpreter_version); SET_BYTE(H_SCREEN_ROWS, h_screen_rows); SET_BYTE(H_SCREEN_COLS, h_screen_cols); } // It's less trouble to use font size 1x1 for V5 games, especially because of // a bug in the unreleased German version of "Zork 1" if (h_version != V6) { screen_x_size = (zword)h_screen_cols; screen_y_size = (zword)h_screen_rows; font_x_size = 1; font_y_size = 1; } else { screen_x_size = h_screen_width; screen_y_size = h_screen_height; font_x_size = h_font_width; font_y_size = h_font_height; } if (h_version >= V5) { SET_WORD(H_SCREEN_WIDTH, screen_x_size); SET_WORD(H_SCREEN_HEIGHT, screen_y_size); SET_BYTE(H_FONT_HEIGHT, font_y_size); SET_BYTE(H_FONT_WIDTH, font_x_size); SET_BYTE(H_DEFAULT_BACKGROUND, h_default_background); SET_BYTE(H_DEFAULT_FOREGROUND, h_default_foreground); } if (h_version == V6) for (i = 0; i < 8; i++) storeb((zword)(H_USER_NAME + i), h_user_name[i]); SET_BYTE(H_STANDARD_HIGH, h_standard_high); SET_BYTE(H_STANDARD_LOW, h_standard_low); set_header_extension(HX_FLAGS, hx_flags); set_header_extension(HX_FORE_COLOUR, hx_fore_colour); set_header_extension(HX_BACK_COLOUR, hx_back_colour); }