void notify_medals_screen_exit_button (ui_object *obj, void *arg) { obj; arg; if ((int) arg == BUTTON_STATE_DOWN) { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_SELECTED)); } else if ((int) arg == BUTTON_STATE_UP) { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_UNSELECTED)); set_ui_object_redraw (player_medals_screen, TRUE); pop_ui_screen (SCREEN_POP_ACTUAL); } else { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_UNSELECTED)); set_ui_object_redraw (player_medals_screen, TRUE); } set_ui_object_graphic_type (obj, UI_OBJECT_ALPHA_GRAPHIC); }
void notify_dedicated_server_quit_button (ui_object *obj, void *arg) { if ((int) arg == BUTTON_STATE_DOWN) { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_SELECTED)); set_ui_object_redraw (dedicated_server_screen, TRUE); } else if ((int) arg == BUTTON_STATE_UP) { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_UNSELECTED)); //deinitialise_base_system (); //setup_campaign_over_screen (get_local_force_entity (get_global_gunship_side ()), CAMPAIGN_CRITERIA_RESULT_SERVER_REJECTED); start_game_exit (GAME_EXIT_APACHE_HAVOC, FALSE); } else { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_UNSELECTED)); set_ui_object_redraw (dedicated_server_screen, TRUE); } //set_ui_object_graphic_type (obj, UI_OBJECT_ALPHA_GRAPHIC); }
void notify_main_screen_exit_button (ui_object *obj, void *arg) { if ((int) arg == BUTTON_STATE_DOWN) { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_SELECTED)); set_ui_object_redraw (main_screen, TRUE); } else if ((int) arg == BUTTON_STATE_UP) { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_UNSELECTED)); push_ui_screen ( exit_screen ); } else { set_ui_object_graphic (obj, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_PLANNER_BACK_BUTTON_UNSELECTED)); set_ui_object_redraw (main_screen, TRUE); } set_ui_object_graphic_type (obj, UI_OBJECT_ALPHA_GRAPHIC); }
void draw_default_indicator_lamps_3d (void) { unsigned char *sprite_data, *mask_data; int X_ORG; int Y_ORG; base_cockpit_graphics_file = GRAPHICS_COCKPITS_APACHE_LEVEL1_BASE; sprite_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES); mask_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES_MASK); //find out where the lamps are in 3d, tranform with pilot viewpoint, convert to pixels depending on resolution, use center of cockpit lock_screen (active_screen); X_ORG = 225; Y_ORG = 470; X_ORG = (int)((virtual_cockpit_inst3d->vp.x*0.4+0.5)*300); draw_lamp (default_lamps.indicator_lamp_1, X_ORG + 7, Y_ORG + 4, 7, 4, 19, 19, 0); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_2, X_ORG + 27, Y_ORG + 4, 27, 4, 18, 19, 13); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_3, X_ORG + 47, Y_ORG + 5, 47, 5, 18, 18, 25); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_4, X_ORG + 66, Y_ORG + 5, 66, 5, 18, 18, 38); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 86, Y_ORG + 5, 86, 5, 18, 18, 51); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_6, X_ORG + 106, Y_ORG + 5, 106, 5, 18, 18, 64); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_7, X_ORG + 125, Y_ORG + 5, 125, 5, 18, 18, 76); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_8, X_ORG + 144, Y_ORG + 5, 144, 5, 19, 18, 89); X_ORG += 20; draw_lamp (default_lamps.indicator_lamp_9, X_ORG + 164, Y_ORG + 4, 164, 4, 19, 19, 102); X_ORG = 164; Y_ORG = 408; draw_lamp (default_lamps.engine_1_fire , X_ORG + 10, Y_ORG + 12, 10, 102, 26, 27, 0); X_ORG += 27; draw_lamp (default_lamps.apu_fire , X_ORG + 42, Y_ORG + 12, 42, 102, 26, 27, 13); X_ORG += 27; draw_lamp (default_lamps.engine_2_fire , X_ORG + 75, Y_ORG + 12, 75, 102, 26, 27, 25); X_ORG = 72; Y_ORG = 375; draw_lamp (default_lamps.armament_lamp_1 , X_ORG + 9, Y_ORG + 7, 9, 327, 22, 23, 0); X_ORG += 23; draw_lamp (default_lamps.armament_lamp_2 , X_ORG + 31, Y_ORG + 7, 31, 327, 22, 23, 13); X_ORG = 305; Y_ORG = 283; draw_lamp (default_lamps.mfd_lamp_1 , X_ORG + 3, Y_ORG + 3, 3, 183, 24, 22, 0); Y_ORG += 23; draw_lamp (default_lamps.mfd_lamp_2 , X_ORG + 3, Y_ORG + 25, 3, 205, 24, 21, 13); unlock_screen (active_screen); }
void notify_combat_zone_screen (ui_object *obj, void *arg) { ASSERT ( get_valid_current_game_session () ); combat_zone_read_text (); if ( briefing_red_forces ) { set_ui_object_graphic ( combat_zone_screen, ( unsigned short int * ) get_graphics_file_data ( GRAPHICS_UI_HAVOC_CZONE_SCREEN ) ); } else { set_ui_object_graphic ( combat_zone_screen, ( unsigned short int * ) get_graphics_file_data ( GRAPHICS_UI_APACHE_CZONE_SCREEN ) ); } }
void initialise_main_screen (void) { ui_object *option_bdrop, *change_obj, *registered_to_message; float x1, y1, x2, y2; int i; ///////////////////////////////////////////////////////////////// // option area & button texture objects if (options_box_small) { destroy_texture_graphic (options_box_small); options_box_small = NULL; } options_box_small = create_texture_graphic ( "graphics//ui//cohokum//boxsmall.psd" ); if (options_box_medium) { destroy_texture_graphic (options_box_medium); options_box_medium = NULL; } options_box_medium = create_texture_graphic ( "graphics//ui//cohokum//boxmed.psd" ); if (options_box_large) { destroy_texture_graphic (options_box_large); options_box_large = NULL; } options_box_large = create_texture_graphic ( "graphics//ui//cohokum//boxlarge.psd" ); if (options_box_extra_large) { destroy_texture_graphic (options_box_extra_large); options_box_extra_large = NULL; } options_box_extra_large = create_texture_graphic ( "graphics//ui//cohokum//boxexlrg.psd" ); if (text_box_graphic) { destroy_texture_graphic (text_box_graphic); text_box_graphic = NULL; } text_box_graphic = create_texture_graphic ( "graphics//ui//cohokum//boxtext.psd" ); if (text_option_bdrop) { destroy_texture_graphic (text_option_bdrop); text_option_bdrop = NULL; } text_option_bdrop = create_texture_graphic ( "graphics//ui//cohokum//bstripe.psd" ); ///////////////////////////////////////////////////////////////// // List box graphics if (list_box_graphic) { destroy_texture_graphic (list_box_graphic); list_box_graphic = NULL; } list_box_graphic = create_texture_graphic ( "graphics//ui//cohokum//boxlist.psd" ); // initialise slider graphics frontend_slider_bdrop_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//sbcklist.psd" ); frontend_slider_bar_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//scrolblu.psd" ); frontend_slider_bar_highlighted_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//scrolwht.psd" ); frontend_slider_bar_selected_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//scrolyel.psd" ); frontend_slider_up_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//arrupblu.psd" ); frontend_slider_up_highlighted_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//arrupwht.psd" ); frontend_slider_up_selected_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//arrupyel.psd" ); frontend_slider_down_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//arrdwblu.psd" ); frontend_slider_down_highlighted_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//arrdwwht.psd" ); frontend_slider_down_selected_graphic = create_texture_graphic ( "graphics//ui//cohokum//map//arrdwyel.psd" ); ///////////////////////////////////////////////////////////////// // Main Screen & title text main_screen = create_ui_object ( UI_TYPE_SCREEN, UI_ATTR_VIRTUAL_POSITION (0, 0), UI_ATTR_VIRTUAL_SIZE (1.0, 1.0), UI_ATTR_COLOUR_START (255,255,255,64), UI_ATTR_COLOUR_END (255,255,255,255), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_NOTIFY_ON (NOTIFY_TYPE_BUTTON_EITHER), UI_ATTR_FUNCTION (notify_main_screen), UI_ATTR_END ); create_ui_object ( UI_TYPE_TEXT, UI_ATTR_PARENT (main_screen), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_VIRTUAL_POSITION (TITLE_TEXT_POSITION_X, TITLE_TEXT_POSITION_Y), UI_ATTR_VIRTUAL_SIZE (TITLE_TEXT_WIDTH, TITLE_TEXT_HEIGHT), UI_ATTR_TEXT (get_trans ("Main Screen")), UI_ATTR_FONT_TYPE (UI_FONT_IMPACT_22), UI_ATTR_TEXT_JUSTIFY (TEXT_JUSTIFY_LEFT_BOTTOM), UI_ATTR_FONT_COLOUR_START (ui_screen_title_text_colour.r, ui_screen_title_text_colour.g, ui_screen_title_text_colour.b, 0), UI_ATTR_FONT_COLOUR_END (ui_screen_title_text_colour.r, ui_screen_title_text_colour.g, ui_screen_title_text_colour.b, 255), UI_ATTR_HIGHLIGHTABLE (FALSE), UI_ATTR_CLEAR (TRUE), UI_ATTR_END ); ///////////////////////////////////////////////////////////////// // Security Message - text to be inserted is ideally <= 81 chars registered_to_message = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (0.05, 0.4), UI_ATTR_VIRTUAL_SIZE (0.9, 0.3), UI_ATTR_FONT_TYPE (UI_FONT_THICK_ITALIC_ARIAL_18), UI_ATTR_FONT_COLOUR_END (ui_screen_title_text_colour.r, ui_screen_title_text_colour.g, ui_screen_title_text_colour.b, 255), UI_ATTR_DRAWABLE (FALSE), UI_ATTR_CLEAR (TRUE), UI_ATTR_END ); ///////////////////////////////////////////////////////////////// // Buttons // Combat i = 0; option_bdrop = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (0.0, 0.0), UI_ATTR_VIRTUAL_SIZE (TEXT_OPTION_BDROP_WIDTH, TEXT_OPTION_BDROP_HEIGHT), UI_ATTR_COLOUR_START (0, 0, 0, 0), UI_ATTR_COLOUR_END (255, 255, 255, 255), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_TEXTURE_GRAPHIC (text_option_bdrop), UI_ATTR_END ); change_obj = create_ui_object ( UI_TYPE_BUTTON, UI_ATTR_PARENT (main_screen), UI_ATTR_POSITION_START (0.0, 0.329), UI_ATTR_POSITION_END (0.663, 0.329), UI_ATTR_VIRTUAL_SIZE (0.196, 0.033), UI_ATTR_TEXT (get_trans ("UI_COMBAT")), UI_ATTR_FONT_TYPE (UI_FONT_THICK_ARIAL_22), UI_ATTR_TEXT_JUSTIFY (TEXT_JUSTIFY_RIGHT_CENTRE), UI_ATTR_FUNCTION (notify_main_combat_missions_button), UI_ATTR_FONT_COLOUR_START (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 0), UI_ATTR_FONT_COLOUR_END (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_START (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 0), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_END (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 255), UI_ATTR_HIGHLIGHTABLE (TRUE), UI_ATTR_CLEAR (TRUE), UI_ATTR_TIME_LENGTH (200), UI_ATTR_OFFSET_TIME (500), UI_ATTR_END ); preprocess_translation_object_size (change_obj, NULL, NULL, 0, RESIZE_OPTION_FIXED_BUTTON); set_text_option_backdrop_object (option_bdrop, change_obj); // Pilots i++; option_bdrop = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (0.0, 0.0), UI_ATTR_VIRTUAL_SIZE (TEXT_OPTION_BDROP_WIDTH, TEXT_OPTION_BDROP_HEIGHT), UI_ATTR_COLOUR_START (255, 255, 255, 0), UI_ATTR_COLOUR_END (255, 255, 255, 255), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_TEXTURE_GRAPHIC (text_option_bdrop), UI_ATTR_END ); pilots_button = create_ui_object ( UI_TYPE_BUTTON, UI_ATTR_PARENT (main_screen), UI_ATTR_POSITION_START (0, 0.435), UI_ATTR_POSITION_END (0.785, 0.435), UI_ATTR_TIME_LENGTH (200), UI_ATTR_OFFSET_TIME (600), UI_ATTR_VIRTUAL_SIZE (0.155, 0.033), UI_ATTR_GRAPHIC (get_graphics_file_data (GRAPHICS_UI_APACHE_MAIN_SCREEN_PLAYER_BUTTON)), UI_ATTR_TEXT (get_trans ("UI_PILOTS")), UI_ATTR_FONT_TYPE (UI_FONT_THICK_ARIAL_22), UI_ATTR_TEXT_JUSTIFY (TEXT_JUSTIFY_RIGHT_CENTRE), UI_ATTR_FONT_COLOUR_START (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 0), UI_ATTR_FONT_COLOUR_END (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_START (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 0), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_END (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 255), UI_ATTR_FUNCTION (notify_main_select_player_button), UI_ATTR_HIGHLIGHTABLE (TRUE), UI_ATTR_CLEAR (TRUE), UI_ATTR_END ); preprocess_translation_object_size (pilots_button, NULL, NULL, 0, RESIZE_OPTION_FIXED_BUTTON); set_text_option_backdrop_object (option_bdrop, pilots_button); // ghost pilots button x1 = get_ui_object_virtual_x (pilots_button); x2 = get_ui_object_virtual_x_size (pilots_button); y1 = 0.435; y2 = 0.033; ghost_pilots_button = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (x1, y1), UI_ATTR_VIRTUAL_SIZE (x2, y2), UI_ATTR_CLEAR (TRUE), UI_ATTR_DRAWABLE (FALSE), UI_ATTR_END ); // Options i++; option_bdrop = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (0.0, 0.0), UI_ATTR_VIRTUAL_SIZE (TEXT_OPTION_BDROP_WIDTH, TEXT_OPTION_BDROP_HEIGHT), UI_ATTR_COLOUR_START (255, 255, 255, 0), UI_ATTR_COLOUR_END (255, 255, 255, 255), UI_ATTR_TEXTURE_GRAPHIC (text_option_bdrop), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_END ); change_obj = create_ui_object ( UI_TYPE_BUTTON, UI_ATTR_PARENT (main_screen), UI_ATTR_POSITION_START (0, 0.595), UI_ATTR_POSITION_END (0.735, 0.595), UI_ATTR_TIME_LENGTH (200), UI_ATTR_OFFSET_TIME (700), UI_ATTR_VIRTUAL_SIZE (0.185, 0.042), UI_ATTR_TEXT (get_trans ("Options Screen")), UI_ATTR_FONT_TYPE (UI_FONT_THICK_ARIAL_22), UI_ATTR_TEXT_JUSTIFY (TEXT_JUSTIFY_RIGHT_CENTRE), UI_ATTR_FUNCTION (notify_common_main_options_button), UI_ATTR_FONT_COLOUR_START (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 0), UI_ATTR_FONT_COLOUR_END (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_START (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 0), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_END (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 255), UI_ATTR_HIGHLIGHTABLE (TRUE), UI_ATTR_CLEAR (TRUE), UI_ATTR_END ); preprocess_translation_object_size (change_obj, NULL, NULL, 0, RESIZE_OPTION_FIXED_BUTTON); set_text_option_backdrop_object (option_bdrop, change_obj); // Credits i++; option_bdrop = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (0.0, 0.0), UI_ATTR_VIRTUAL_SIZE (TEXT_OPTION_BDROP_WIDTH, TEXT_OPTION_BDROP_HEIGHT), UI_ATTR_COLOUR_START (255, 255, 255, 0), UI_ATTR_COLOUR_END (255, 255, 255, 255), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_TEXTURE_GRAPHIC (text_option_bdrop), UI_ATTR_END ); credits_button = create_ui_object ( UI_TYPE_BUTTON, UI_ATTR_PARENT (main_screen), UI_ATTR_POSITION_START (0, 0.704), UI_ATTR_POSITION_END (0.637, 0.704), UI_ATTR_TIME_LENGTH (200), UI_ATTR_OFFSET_TIME (700), UI_ATTR_VIRTUAL_SIZE (0.185, 0.042), UI_ATTR_TEXT (get_trans ("Credits")), UI_ATTR_FONT_TYPE (UI_FONT_THICK_ARIAL_22), UI_ATTR_TEXT_JUSTIFY (TEXT_JUSTIFY_RIGHT_CENTRE), UI_ATTR_FUNCTION (notify_main_credits_button), UI_ATTR_FONT_COLOUR_START (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 0), UI_ATTR_FONT_COLOUR_END (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_START (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 0), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_END (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 255), UI_ATTR_HIGHLIGHTABLE (TRUE), UI_ATTR_CLEAR (TRUE), UI_ATTR_END ); preprocess_translation_object_size (credits_button, NULL, NULL, 0, RESIZE_OPTION_FIXED_BUTTON); set_text_option_backdrop_object (option_bdrop, credits_button); // ghost credits button x1 = get_ui_object_virtual_x (credits_button); x2 = get_ui_object_virtual_x_size (credits_button); y1 = 0.704; y2 = 0.042; ghost_credits_button = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (x1, y1), UI_ATTR_VIRTUAL_SIZE (x2, y2), UI_ATTR_CLEAR (TRUE), UI_ATTR_DRAWABLE (FALSE), UI_ATTR_END ); ///////////////////////////////////////////////////////////////// // Exit Button option_bdrop = create_ui_object ( UI_TYPE_AREA, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (0.0, 0.0), UI_ATTR_VIRTUAL_SIZE (TEXT_OPTION_BDROP_WIDTH, TEXT_OPTION_BDROP_HEIGHT), UI_ATTR_COLOUR_START (255, 255, 255, 0), UI_ATTR_COLOUR_END (255, 255, 255, 255), UI_ATTR_OFFSET_TIME (0), UI_ATTR_TIME_LENGTH (500), UI_ATTR_TEXTURE_GRAPHIC (text_option_bdrop), UI_ATTR_END ); change_obj = create_ui_object ( UI_TYPE_BUTTON, UI_ATTR_PARENT (main_screen), UI_ATTR_VIRTUAL_POSITION (OPTIONS_CANCEL_BUTTON_POS_X, OPTIONS_CANCEL_BUTTON_POS_Y), UI_ATTR_VIRTUAL_SIZE (OPTIONS_EXIT_BUTTON_X, OPTIONS_EXIT_BUTTON_Y), UI_ATTR_TEXT (get_trans("UI_EXIT")), UI_ATTR_NOTIFY_ON (NOTIFY_TYPE_BUTTON_UP), UI_ATTR_FUNCTION (notify_main_screen_exit_button), UI_ATTR_FONT_TYPE (UI_FONT_THICK_ITALIC_ARIAL_18), UI_ATTR_FONT_COLOUR (254, 124, 47, 255), UI_ATTR_TEXT_JUSTIFY (TEXT_JUSTIFY_LEFT_CENTRE), UI_ATTR_FONT_COLOUR_START (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 0), UI_ATTR_FONT_COLOUR_END (ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_START (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 0), UI_ATTR_HIGHLIGHTED_FONT_COLOUR_END (ui_option_text_hilite_colour.r, ui_option_text_hilite_colour.g, ui_option_text_hilite_colour.b, 255), UI_ATTR_HIGHLIGHTABLE (TRUE), UI_ATTR_CLEAR (TRUE), UI_ATTR_END ); set_text_option_backdrop_object (option_bdrop, change_obj); #ifndef COMMERCIAL if (check_cdrom_file_exists ("CONFIG.BIN")) { set_ui_object_text (registered_to_message, get_security_message ()), set_ui_object_drawable (registered_to_message, TRUE); } else { #ifdef INSTALL_FROM_CDROM debug_fatal ("Security Protection Failed"); #endif } #endif }
void draw_hind_cockpit (cockpit_panels panel) { //////////////////////////////////////// // // select cockpit graphics wrt time of day // //////////////////////////////////////// switch (get_local_entity_int_value (get_session_entity (), INT_TYPE_DAY_SEGMENT_TYPE)) { case DAY_SEGMENT_TYPE_DAWN: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL2_BASE; break; } case DAY_SEGMENT_TYPE_DAY: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL1_BASE; break; } case DAY_SEGMENT_TYPE_DUSK: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL2_BASE; break; } case DAY_SEGMENT_TYPE_NIGHT: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL3_BASE; break; } } #if DEMO_VERSION base_cockpit_graphics_file = GRAPHICS_COCKPITS_HAVOC_LEVEL1_BASE; #endif set_havoc_instrument_colours (); //////////////////////////////////////// // // draw overlaid instruments // //////////////////////////////////////// if (!get_global_draw_cockpit_graphics ()) { if (get_global_draw_overlaid_instruments ()) { if (panel != COCKPIT_PANEL_SPECIAL_HAVOC_TV) { draw_overlaid_hind_mfd (68.0, 412.0, 128.0); draw_overlaid_hind_threat_warning_display (int_full_screen_width - 64, int_full_screen_height - 84); } } } //////////////////////////////////////// // // draw cockpits // //////////////////////////////////////// switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { if (custom_3d_models.arneh_mi24v_cockpit) draw_hind_external_3d_cockpit(0, NULL); else { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U40_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U40_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U40_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { if (custom_3d_models.arneh_mi24v_cockpit) { draw_hind_external_3d_cockpit(0, NULL); draw_hind_internal_3d_cockpit(0); } else { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_COMPASS, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U20_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_U20_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_U20_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_LVL_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_L30_RLE), ix_640_480, iy_640_480); draw_havoc_g_meter (panel); draw_havoc_radar_altimeter (panel); draw_hind_weapons_management_panel_lamps (panel); draw_hind_master_caution_lamp (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_LVL_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_AHD_RLE), ix_640_480, iy_640_480); draw_havoc_g_meter (panel); draw_havoc_radar_altimeter (panel); draw_havoc_weapons_management_panel_lamps (panel); draw_hind_threat_warning_display (panel); draw_hind_master_caution_lamp (panel); draw_hind_warning_panel_lamps (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit (VIRTUAL_COCKPIT_HUD_GLASS); draw_hind_hud_on_cockpit (get_global_hud_enlarge ()); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_LVL_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_R30_RLE), ix_640_480, iy_640_480); draw_hind_status_panel_lamps (panel); draw_hind_threat_warning_display (panel); draw_hind_warning_panel_lamps (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY ); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_LVL_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_L60_RLE), ix_640_480, iy_640_480); draw_havoc_barometric_altimeter (panel); draw_hind_weapons_management_panel_lamps (panel); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_HSI | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_D20_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_L30_RLE), ix_640_480, iy_640_480); draw_havoc_barometric_altimeter (panel); draw_havoc_airspeed_indicator (panel); draw_havoc_main_rotor_rpm_indicator (panel); draw_havoc_g_meter (panel); draw_havoc_vertical_speed_indicator (panel); draw_havoc_clock (panel); draw_havoc_radar_altimeter (panel); draw_hind_weapons_management_panel_lamps (panel); draw_hind_master_caution_lamp (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY | VIRTUAL_COCKPIT_CRT_DISPLAY | VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_HSI | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_D20_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_AHD_RLE), ix_640_480, iy_640_480); draw_havoc_barometric_altimeter (panel); draw_havoc_airspeed_indicator (panel); draw_havoc_main_rotor_rpm_indicator (panel); draw_havoc_g_meter (panel); draw_havoc_engine_torque_indicator (panel); draw_havoc_engine_temperature_indicator (panel); draw_havoc_engine_rpm_indicator (panel); draw_havoc_engine_temperature_and_rpm_indicator_ticks (panel); draw_havoc_vertical_speed_indicator (panel); draw_havoc_clock (panel); draw_havoc_radar_altimeter (panel); draw_havoc_fuel_gauge (panel); draw_havoc_fixed_cockpit_hsi_waypoint_distance_digits (panel); draw_havoc_fixed_cockpit_hsi_waypoint_identifier (panel); draw_havoc_weapons_management_panel_lamps (panel); draw_havoc_status_panel_lamps (panel); draw_havoc_threat_warning_display (panel); draw_havoc_master_caution_lamp (panel); draw_havoc_warning_panel_lamps (panel); draw_havoc_radio_lamp (panel); draw_havoc_oil_gauges (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY | VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); draw_hind_mfd_on_cockpit (fx_640_480 + 354.0, fy_640_480 + 337.0, FALSE, FALSE); draw_hind_ekran_display_on_cockpit (fx_640_480 + 459.0, fy_640_480 + 310.0); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_CRT_MASK_D20_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_D20_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_R30_RLE), ix_640_480, iy_640_480); draw_havoc_engine_torque_indicator (panel); draw_havoc_engine_temperature_indicator (panel); draw_havoc_engine_rpm_indicator (panel); draw_havoc_engine_temperature_and_rpm_indicator_ticks (panel); draw_havoc_fuel_gauge (panel); draw_hind_status_panel_lamps (panel); draw_hind_threat_warning_display (panel); draw_hind_warning_panel_lamps (panel); draw_hind_radio_lamp (panel); draw_havoc_oil_gauges (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_HUD_GLASS | VIRTUAL_COCKPIT_HUD_DISPLAY | VIRTUAL_COCKPIT_CRT_DISPLAY | VIRTUAL_COCKPIT_EKRAN_DISPLAY ); } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_R60_RLE), ix_640_480, iy_640_480); draw_hind_status_panel_lamps (panel); draw_hind_radio_lamp (panel); draw_havoc_oil_gauges (panel); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_D20_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } else { draw_hind_hud_on_cockpit (TRUE); } draw_hind_hms (); break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_HAVOC_TV: //////////////////////////////////////// { if (lock_screen (active_screen)) { blit_rgb_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_CRT_RGB), ix_640_480, iy_640_480); unlock_screen (active_screen); } draw_hind_mfd_on_cockpit (fx_640_480 + 321.0, fy_640_480 + 229.0, TRUE, FALSE); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_CRT_MASK_CRT_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_HAVOC_HUD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_hind_external_virtual_cockpit ( VIRTUAL_COCKPIT_LARGE_HUD | VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_WIPER_HUD) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_HAVOC_HUD_RLE), ix_640_480, iy_640_480); draw_hind_threat_warning_display (panel); draw_hind_master_caution_lamp (panel); draw_hind_warning_panel_lamps (panel); unlock_screen (active_screen); } draw_hind_internal_virtual_cockpit ( VIRTUAL_COCKPIT_LARGE_HUD | VIRTUAL_COCKPIT_HUD_GLASS ); } draw_hind_hud_on_cockpit (TRUE); draw_hind_hms (); break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal ("Invalid cockpit panel = %d", panel); break; } } }
void draw_ah64a_cockpit (cockpit_panels panel) { //////////////////////////////////////// // // select cockpit graphics wrt time of day // //////////////////////////////////////// switch (get_local_entity_int_value (get_session_entity (), INT_TYPE_DAY_SEGMENT_TYPE)) { case DAY_SEGMENT_TYPE_DAWN: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_APACHE_LEVEL2_BASE; break; } case DAY_SEGMENT_TYPE_DAY: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_APACHE_LEVEL1_BASE; break; } case DAY_SEGMENT_TYPE_DUSK: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_APACHE_LEVEL2_BASE; break; } case DAY_SEGMENT_TYPE_NIGHT: { base_cockpit_graphics_file = GRAPHICS_COCKPITS_APACHE_LEVEL3_BASE; break; } } #if DEMO_VERSION base_cockpit_graphics_file = GRAPHICS_COCKPITS_APACHE_LEVEL1_BASE; #endif set_ah64a_instrument_colours (); //////////////////////////////////////// // // draw overlaid instruments // //////////////////////////////////////// if (!get_global_draw_cockpit_graphics ()) { if (get_global_draw_overlaid_instruments ()) { if ((panel != COCKPIT_PANEL_SPECIAL_APACHE_LHS_MFD) && (panel != COCKPIT_PANEL_SPECIAL_APACHE_RHS_MFD)) { draw_overlaid_ah64a_mfd (68.0, 412.0, 128.0, MFD_LOCATION_LHS); draw_overlaid_ah64a_mfd (572.0, 412.0, 128.0, MFD_LOCATION_RHS); } } } //////////////////////////////////////// // // draw cockpits // //////////////////////////////////////// switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP40_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U40_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_U20_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_U20_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_UP20_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_U20_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_L60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_LVL_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_L30_RLE), ix_640_480, iy_640_480); draw_ah64a_indicator_lamps (panel); draw_ah64a_fire_detector_lamps (panel); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_LVL_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_AHD_RLE), ix_640_480, iy_640_480); draw_ah64a_indicator_lamps (panel); draw_ah64a_fire_detector_lamps (panel); unlock_screen (active_screen); } draw_ah64a_upfront_display_on_cockpit (fx_640_480 + 338.0, fy_640_480 + 428.0); } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_LVL_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_R30_RLE), ix_640_480, iy_640_480); draw_ah64a_indicator_lamps (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_UPFRONT_DISPLAY ); } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_R60_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LVL_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_L90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_L60_RLE), ix_640_480, iy_640_480); draw_ah64a_fixed_cockpit_clock_hands (panel); draw_ah64a_armament_lamps (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_D20_L30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_L30_RLE), ix_640_480, iy_640_480); draw_ah64a_fixed_cockpit_clock_hands (panel); draw_ah64a_indicator_lamps (panel); draw_ah64a_fire_detector_lamps (panel); draw_ah64a_armament_lamps (panel); draw_ah64a_mfd_lamps (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_LHS_MFD_DISPLAY | VIRTUAL_COCKPIT_RHS_MFD_DISPLAY | VIRTUAL_COCKPIT_UPFRONT_DISPLAY | VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_MFD_MASK_D20_L30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_COMPASS, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_D20_AHD_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_AHD_RLE), ix_640_480, iy_640_480); draw_ah64a_fixed_cockpit_airspeed_indicator_needle (panel); draw_ah64a_fixed_cockpit_barometric_altimeter_digits (panel); draw_ah64a_fixed_cockpit_barometric_altimeter_needle (panel); draw_ah64a_fixed_cockpit_clock_hands (panel); draw_ah64a_indicator_lamps (panel); draw_ah64a_fire_detector_lamps (panel); draw_ah64a_armament_lamps (panel); draw_ah64a_mfd_lamps (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); draw_ah64a_upfront_display_on_cockpit (fx_640_480 + 334.0, fy_640_480 + 226.0); draw_ah64a_mfd_on_cockpit (fx_640_480 + 226.0, fy_640_480 + 367.0, FALSE, FALSE, MFD_LOCATION_LHS); draw_ah64a_mfd_on_cockpit (fx_640_480 + 414.0, fy_640_480 + 367.0, FALSE, FALSE, MFD_LOCATION_RHS); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_MFD_MASK_D20_AHD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT30: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RENDERED_WIPER | VIRTUAL_COCKPIT_MOVING_WIPER | VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_COMPASS, get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_WIPER_D20_R30_RLE) ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_R30_RLE), ix_640_480, iy_640_480); draw_ah64a_fixed_cockpit_airspeed_indicator_needle (panel); draw_ah64a_fixed_cockpit_barometric_altimeter_needle (panel); draw_ah64a_indicator_lamps (panel); draw_ah64a_mfd_lamps (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_LHS_MFD_DISPLAY | VIRTUAL_COCKPIT_RHS_MFD_DISPLAY | VIRTUAL_COCKPIT_UPFRONT_DISPLAY | VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_MFD_MASK_D20_R30_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT60: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR | VIRTUAL_COCKPIT_ADI | VIRTUAL_COCKPIT_COMPASS, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_R60_RLE), ix_640_480, iy_640_480); draw_ah64a_fixed_cockpit_airspeed_indicator_needle (panel); draw_ah64a_fixed_cockpit_barometric_altimeter_needle (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_INSTRUMENT_NEEDLES ); } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT90: //////////////////////////////////////// { if (get_global_draw_cockpit_graphics ()) { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_RAIN_EFFECT | VIRTUAL_COCKPIT_MAIN_ROTOR, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_D20_R90_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } } draw_ah64a_hud (); break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_APACHE_LHS_MFD: //////////////////////////////////////// { if (lock_screen (active_screen)) { blit_rgb_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_LHS_MFD_RGB), ix_640_480, iy_640_480); draw_ah64a_armament_lamps (panel); draw_ah64a_mfd_lamps (panel); unlock_screen (active_screen); } draw_ah64a_mfd_on_cockpit (fx_640_480 + 320.0, fy_640_480 + 235.0, TRUE, FALSE, MFD_LOCATION_LHS); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_MFD_MASK_LHS_MFD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_APACHE_RHS_MFD: //////////////////////////////////////// { draw_ah64a_external_virtual_cockpit ( VIRTUAL_COCKPIT_LARGE_ADI, NULL ); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_RHS_MFD_RLE), ix_640_480, iy_640_480); draw_ah64a_mfd_lamps (panel); unlock_screen (active_screen); } draw_ah64a_internal_virtual_cockpit ( VIRTUAL_COCKPIT_INSTRUMENT_LARGE_NEEDLES ); draw_ah64a_mfd_on_cockpit (fx_640_480 + 320.0, fy_640_480 + 235.0, TRUE, FALSE, MFD_LOCATION_RHS); if (lock_screen (active_screen)) { blit_rle_graphic (get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_MFD_MASK_RHS_MFD_RLE), ix_640_480, iy_640_480); unlock_screen (active_screen); } break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal ("Invalid cockpit panel = %d", panel); break; } } }
void brief_initialise_game (void) { //////////////////////////////////////// set_game_status (GAME_STATUS_UNINITIALISED); set_comms_model (COMMS_MODEL_SERVER); //////////////////////////////////////// //////////////////////////////////////// debug_watch ("Game status = %s", MT_STRING_PTR, &game_status_string); debug_watch ("Comms model = %s", MT_STRING_PTR, &comms_model_string); //////////////////////////////////////// //////////////////////////////////////// // // WARNING! INITIALISATION ORDER IS CRITICAL // // NOTE : MEMORY BLOCK SYSTEM CONSTRAINTS; // DO NOT USE REGISTER_EXIT_FUNCTION // FOR DEINITIALISATION. // //////////////////////////////////////// //////////////////////////////////////// // // INITIALISE GLOBAL OPTIONS // //////////////////////////////////////// debug_log ( "Initialising memory system" ); reset_safe_memory_counter (); reset_safe_memory_mapped_file_counter (); initialise_memory_block_system (); create_memory_block_configuration (memory_block_config, sizeof (memory_block_config) / sizeof (memory_block_configuration)); //////////////////////////////////////// // // INITIALISE GRAPHICS FILES // // NB. FIRST PASS CONVERSION ONLY // //////////////////////////////////////// debug_log ( "Installing graphics files" ); // // Check the graphics file format // { int red_mask, green_mask, blue_mask, alpha_mask; get_screen_pixel_format ( &red_mask, &green_mask, &blue_mask, &alpha_mask ); if ( ( red_mask != get_global_graphics_files_red_mask () ) || ( green_mask != get_global_graphics_files_green_mask () ) || ( blue_mask != get_global_graphics_files_blue_mask () ) || ( alpha_mask != get_global_graphics_files_alpha_mask () ) ) { set_global_graphics_files_red_mask ( red_mask ); set_global_graphics_files_green_mask ( green_mask ); set_global_graphics_files_blue_mask ( blue_mask ); set_global_graphics_files_alpha_mask ( alpha_mask ); set_global_graphics_files_wrong_format ( TRUE ); } } if ( (command_line_clean_graphics) || ( ( get_global_graphics_files_wrong_format () ) && ( !command_line_no_graphics_conversion ) ) ) { uninstall_graphics_files (); } if ((!get_global_graphics_files_installed ()) || command_line_new_graphics) { while (!install_graphics_files (GRAPHICS_CONVERSION_FIRST_PASS)); } debug_log ( "Opening graphics files" ); mopen_all_graphics_files (GRAPHICS_CONVERSION_FIRST_PASS); // // Reset the graphics file format change flag now // set_global_graphics_files_wrong_format ( FALSE ); debug_log ( "Installing event stack" ); initialise_event_stack (); debug_log ( "Installing ui" ); switch (command_line_run_mode) { /* case RUN_MODE_AITOOL: { push_event (aitool_events, "aitool events"); break; } */ case RUN_MODE_NORMAL: default: { push_event (ui_events, "ui events"); break; } } initialise_dinput_to_ascii_conversion_table (); debug_log ( "Initialising ui system" ); initialise_ui_system (2000); debug_log ( "Initialising ui font" ); // // Hack in to support all font resolutions // set_ui_font_resolution (get_global_3d_visual_screen_width (), get_global_3d_visual_screen_height ()); initialise_ui_font (); set_ui_font_type (UI_FONT_ARIAL_18); debug_log ( "Initialising ui objects" ); initialise_ui_objects (); debug_log ( "Initialising ui menus" ); //////////////////////////////////////// // // INITIALISE LANGUAGE DATABASE // //////////////////////////////////////// //ö initialise_language_database (); initialise_title_screen (); initialise_init_screen (); debug_log ( "Initialising ui mouseptr" ); initialise_mouse_pointer ((rgb_packed *) get_graphics_file_data (GRAPHICS_UI_COMMON_MOUSE_POINTER)); debug_log ( "Finished brief install" ); }
void draw_default_mfd_lamps (cockpit_panels panel) { unsigned char *sprite_data, *mask_data; sprite_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES); mask_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES_MASK); if (test_cockpit_instruments) { static float timer = 0.0; timer += get_delta_time (); default_lamps.mfd_lamp_1 = 0; default_lamps.mfd_lamp_2 = 0; if (timer < (ONE_SECOND * 1.0)) { } else if (timer < (ONE_SECOND * 2.0)) { default_lamps.mfd_lamp_1 = 1; } else if (timer < (ONE_SECOND * 3.0)) { default_lamps.mfd_lamp_2 = 1; } else if (timer < (ONE_SECOND * 4.0)) { default_lamps.mfd_lamp_1 = 1; default_lamps.mfd_lamp_2 = 1; } else { timer = 0.0; } } switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { #define X_ORG (577) #define Y_ORG (309) draw_lamp (default_lamps.mfd_lamp_1 , X_ORG + 11, Y_ORG + 7, 51, 187, 31, 29, 0); // (100% alpha) draw_lamp (default_lamps.mfd_lamp_2 , X_ORG + 7, Y_ORG + 30, 47, 210, 29, 30, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { #define X_ORG (305) #define Y_ORG (283) draw_lamp (default_lamps.mfd_lamp_1 , X_ORG + 3, Y_ORG + 3, 3, 183, 24, 22, 0); // (100% alpha) draw_lamp (default_lamps.mfd_lamp_2 , X_ORG + 3, Y_ORG + 25, 3, 205, 24, 21, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT30: //////////////////////////////////////// { #define X_ORG (17) #define Y_ORG (311) draw_lamp (default_lamps.mfd_lamp_1 , X_ORG + 3, Y_ORG + 3, 93, 183, 33, 31, 0); // (100% alpha) draw_lamp (default_lamps.mfd_lamp_2 , X_ORG + 8, Y_ORG + 27, 98, 207, 33, 31, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_APACHE_LHS_MFD: //////////////////////////////////////// { #define X_ORG (536) #define Y_ORG (9) draw_lamp (default_lamps.mfd_lamp_1 , X_ORG + 2, Y_ORG + 8, 142, 188, 63, 56, 0); // (100% alpha) draw_lamp (default_lamps.mfd_lamp_2 , X_ORG + 2, Y_ORG + 64, 142, 244, 63, 56, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_APACHE_RHS_MFD: //////////////////////////////////////// { #define X_ORG (35) #define Y_ORG (11) draw_lamp (default_lamps.mfd_lamp_1 , X_ORG + 4, Y_ORG + 8, 214, 188, 63, 56, 0); // (100% alpha) draw_lamp (default_lamps.mfd_lamp_2 , X_ORG + 4, Y_ORG + 64, 214, 244, 63, 56, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal (lamp_error); break; } } }
void draw_default_armament_lamps (cockpit_panels panel) { unsigned char *sprite_data, *mask_data; sprite_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES); mask_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES_MASK); if (test_cockpit_instruments) { static float timer = 0.0; timer += get_delta_time (); default_lamps.armament_lamp_1 = 0; default_lamps.armament_lamp_2 = 0; if (timer < (ONE_SECOND * 1.0)) { } else if (timer < (ONE_SECOND * 2.0)) { default_lamps.armament_lamp_1 = 1; } else if (timer < (ONE_SECOND * 3.0)) { default_lamps.armament_lamp_2 = 1; } else if (timer < (ONE_SECOND * 4.0)) { default_lamps.armament_lamp_1 = 1; default_lamps.armament_lamp_2 = 1; } else { timer = 0.0; } } switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT60: //////////////////////////////////////// { #define X_ORG (613) #define Y_ORG (395) draw_lamp (default_lamps.armament_lamp_1 , X_ORG + 4, Y_ORG + 8, 134, 328, 23, 31, 0); // (100% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { #define X_ORG (339) #define Y_ORG (347) draw_lamp (default_lamps.armament_lamp_1 , X_ORG + 4, Y_ORG + 6, 74, 325, 23, 25, 0); // (100% alpha) draw_lamp (default_lamps.armament_lamp_2 , X_ORG + 23, Y_ORG + 13, 93, 332, 23, 25, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { #define X_ORG (72) #define Y_ORG (375) draw_lamp (default_lamps.armament_lamp_1 , X_ORG + 9, Y_ORG + 7, 9, 327, 22, 23, 0); // (100% alpha) draw_lamp (default_lamps.armament_lamp_2 , X_ORG + 31, Y_ORG + 7, 31, 327, 22, 23, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_SPECIAL_APACHE_LHS_MFD: //////////////////////////////////////// { #define X_ORG (0) #define Y_ORG (277) draw_lamp (default_lamps.armament_lamp_2 , X_ORG + 4, Y_ORG + 4, 164, 324, 64, 59, 13); // (95% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal (lamp_error); break; } } }
void draw_default_fire_detector_lamps (cockpit_panels panel) { unsigned char *sprite_data, *mask_data; sprite_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES); mask_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES_MASK); if (test_cockpit_instruments) { static float timer = 0.0; timer += get_delta_time (); default_lamps.engine_1_fire = 0; default_lamps.apu_fire = 0; default_lamps.engine_2_fire = 0; if (timer < (ONE_SECOND * 1.0)) { } else if (timer < (ONE_SECOND * 2.0)) { default_lamps.engine_1_fire = 1; } else if (timer < (ONE_SECOND * 3.0)) { default_lamps.apu_fire = 1; } else if (timer < (ONE_SECOND * 4.0)) { default_lamps.engine_2_fire = 1; } else if (timer < (ONE_SECOND * 5.0)) { default_lamps.engine_1_fire = 1; default_lamps.apu_fire = 1; default_lamps.engine_2_fire = 1; } else { timer = 0.0; } } switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT30: //////////////////////////////////////// { #define X_ORG (461) #define Y_ORG (417) draw_lamp (default_lamps.engine_1_fire , X_ORG + 11, Y_ORG + 5, 371, 95, 26, 28, 0); // (100% alpha) draw_lamp (default_lamps.apu_fire , X_ORG + 45, Y_ORG + 10, 405, 100, 26, 29, 13); // (95% alpha) draw_lamp (default_lamps.engine_2_fire , X_ORG + 82, Y_ORG + 16, 442, 106, 26, 29, 25); // (90% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_AHEAD: //////////////////////////////////////// { #define X_ORG (164) #define Y_ORG (408) draw_lamp (default_lamps.engine_1_fire , X_ORG + 10, Y_ORG + 12, 10, 102, 26, 27, 0); // (100% alpha) draw_lamp (default_lamps.apu_fire , X_ORG + 42, Y_ORG + 12, 42, 102, 26, 27, 13); // (95% alpha) draw_lamp (default_lamps.engine_2_fire , X_ORG + 75, Y_ORG + 12, 75, 102, 26, 27, 25); // (90% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { #define X_ORG (446) #define Y_ORG (214) draw_lamp (default_lamps.engine_1_fire , X_ORG + 16, Y_ORG + 7, 256, 97, 26, 27, 0); // (100% alpha) draw_lamp (default_lamps.apu_fire , X_ORG + 48, Y_ORG + 12, 288, 102, 26, 27, 13); // (95% alpha) draw_lamp (default_lamps.engine_2_fire , X_ORG + 82, Y_ORG + 18, 322, 108, 26, 27, 25); // (90% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { #define X_ORG (172) #define Y_ORG (213) draw_lamp (default_lamps.engine_1_fire , X_ORG + 9, Y_ORG + 5, 129, 95, 26, 27, 0); // (100% alpha) draw_lamp (default_lamps.apu_fire , X_ORG + 40, Y_ORG + 5, 160, 95, 26, 27, 13); // (95% alpha) draw_lamp (default_lamps.engine_2_fire , X_ORG + 70, Y_ORG + 5, 190, 95, 26, 27, 25); // (90% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal (lamp_error); break; } } }
void draw_default_indicator_lamps (cockpit_panels panel) { unsigned char *sprite_data, *mask_data; sprite_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES); mask_data = get_graphics_file_data (base_cockpit_graphics_file + GRAPHICS_COCKPITS_APACHE_SPRITES_MASK); if (test_cockpit_instruments) { static float timer = 0.0; default_lamps.indicator_lamp_1 = 0; default_lamps.indicator_lamp_2 = 0; default_lamps.indicator_lamp_3 = 0; default_lamps.indicator_lamp_4 = 0; default_lamps.indicator_lamp_5 = 0; default_lamps.indicator_lamp_6 = 0; default_lamps.indicator_lamp_7 = 0; default_lamps.indicator_lamp_8 = 0; default_lamps.indicator_lamp_9 = 0; timer += get_delta_time (); if (timer < (ONE_SECOND * 1.0)) { } else if (timer < (ONE_SECOND * 2.0)) { default_lamps.indicator_lamp_1 = 1; } else if (timer < (ONE_SECOND * 3.0)) { default_lamps.indicator_lamp_2 = 1; } else if (timer < (ONE_SECOND * 4.0)) { default_lamps.indicator_lamp_3 = 1; } else if (timer < (ONE_SECOND * 5.0)) { default_lamps.indicator_lamp_4 = 1; } else if (timer < (ONE_SECOND * 6.0)) { default_lamps.indicator_lamp_5 = 1; } else if (timer < (ONE_SECOND * 7.0)) { default_lamps.indicator_lamp_6 = 1; } else if (timer < (ONE_SECOND * 8.0)) { default_lamps.indicator_lamp_7 = 1; } else if (timer < (ONE_SECOND * 9.0)) { default_lamps.indicator_lamp_8 = 1; } else if (timer < (ONE_SECOND * 10.0)) { default_lamps.indicator_lamp_9 = 1; } else if (timer < (ONE_SECOND * 11.0)) { default_lamps.indicator_lamp_1 = 1; default_lamps.indicator_lamp_2 = 1; default_lamps.indicator_lamp_3 = 1; default_lamps.indicator_lamp_4 = 1; default_lamps.indicator_lamp_5 = 1; default_lamps.indicator_lamp_6 = 1; default_lamps.indicator_lamp_7 = 1; default_lamps.indicator_lamp_8 = 1; default_lamps.indicator_lamp_9 = 1; } else { timer = 0.0; } } switch (panel) { //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_LEFT30: //////////////////////////////////////// { #define X_ORG (524) #define Y_ORG (378) draw_lamp (default_lamps.indicator_lamp_1, X_ORG + 9, Y_ORG + 5, 9, 45, 22, 21, 0); // (100% alpha) draw_lamp (default_lamps.indicator_lamp_2, X_ORG + 32, Y_ORG + 8, 32, 48, 22, 22, 13); // (95% alpha) draw_lamp (default_lamps.indicator_lamp_3, X_ORG + 55, Y_ORG + 11, 55, 51, 23, 22, 25); // (90% alpha) draw_lamp (default_lamps.indicator_lamp_4, X_ORG + 79, Y_ORG + 14, 79, 54, 24, 22, 38); // (85% alpha) draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 104, Y_ORG + 16, 104, 56, 12, 22, 51); // (80% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_AHEAD: //////////////////////////////////////// { #define X_ORG (225) #define Y_ORG (370) draw_lamp (default_lamps.indicator_lamp_1, X_ORG + 7, Y_ORG + 4, 7, 4, 19, 19, 0); // (100% alpha) draw_lamp (default_lamps.indicator_lamp_2, X_ORG + 27, Y_ORG + 4, 27, 4, 18, 19, 13); // (95% alpha) draw_lamp (default_lamps.indicator_lamp_3, X_ORG + 47, Y_ORG + 5, 47, 5, 18, 18, 25); // (90% alpha) draw_lamp (default_lamps.indicator_lamp_4, X_ORG + 66, Y_ORG + 5, 66, 5, 18, 18, 38); // (85% alpha) draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 86, Y_ORG + 5, 86, 5, 18, 18, 51); // (80% alpha) draw_lamp (default_lamps.indicator_lamp_6, X_ORG + 106, Y_ORG + 5, 106, 5, 18, 18, 64); // (75% alpha) draw_lamp (default_lamps.indicator_lamp_7, X_ORG + 125, Y_ORG + 5, 125, 5, 18, 18, 76); // (70% alpha) draw_lamp (default_lamps.indicator_lamp_8, X_ORG + 144, Y_ORG + 5, 144, 5, 19, 18, 89); // (65% alpha) draw_lamp (default_lamps.indicator_lamp_9, X_ORG + 164, Y_ORG + 4, 164, 4, 19, 19, 102); // (60% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_LEVEL_RIGHT30: //////////////////////////////////////// { #define X_ORG (0) #define Y_ORG (380) draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 0, Y_ORG + 14, 120, 54, 12, 22, 51); // (80% alpha) draw_lamp (default_lamps.indicator_lamp_6, X_ORG + 13, Y_ORG + 12, 133, 52, 24, 22, 64); // (75% alpha) draw_lamp (default_lamps.indicator_lamp_7, X_ORG + 38, Y_ORG + 8, 158, 48, 23, 23, 76); // (70% alpha) draw_lamp (default_lamps.indicator_lamp_8, X_ORG + 62, Y_ORG + 6, 182, 46, 22, 22, 89); // (65% alpha) draw_lamp (default_lamps.indicator_lamp_9, X_ORG + 85, Y_ORG + 3, 205, 43, 22, 21, 102); // (60% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_LEFT30: //////////////////////////////////////// { #define X_ORG (512) #define Y_ORG (174) draw_lamp (default_lamps.indicator_lamp_1, X_ORG + 13, Y_ORG + 12, 393, 12, 23, 20, 0); // (100% alpha) draw_lamp (default_lamps.indicator_lamp_2, X_ORG + 34, Y_ORG + 14, 414, 14, 24, 21, 13); // (95% alpha) draw_lamp (default_lamps.indicator_lamp_3, X_ORG + 56, Y_ORG + 17, 436, 17, 25, 21, 25); // (90% alpha) draw_lamp (default_lamps.indicator_lamp_4, X_ORG + 79, Y_ORG + 20, 459, 20, 25, 21, 38); // (85% alpha) draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 103, Y_ORG + 23, 483, 23, 25, 21, 51); // (80% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_AHEAD: //////////////////////////////////////// { #define X_ORG (229) #define Y_ORG (173) draw_lamp (default_lamps.indicator_lamp_1, X_ORG + 6, Y_ORG + 5, 196, 5, 18, 17, 0); // (100% alpha) draw_lamp (default_lamps.indicator_lamp_2, X_ORG + 25, Y_ORG + 5, 215, 5, 18, 17, 13); // (95% alpha) draw_lamp (default_lamps.indicator_lamp_3, X_ORG + 44, Y_ORG + 5, 234, 5, 18, 17, 25); // (90% alpha) draw_lamp (default_lamps.indicator_lamp_4, X_ORG + 63, Y_ORG + 5, 253, 5, 18, 17, 38); // (85% alpha) draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 82, Y_ORG + 5, 272, 5, 18, 17, 51); // (80% alpha) draw_lamp (default_lamps.indicator_lamp_6, X_ORG + 101, Y_ORG + 5, 291, 5, 18, 17, 64); // (75% alpha) draw_lamp (default_lamps.indicator_lamp_7, X_ORG + 120, Y_ORG + 5, 310, 5, 18, 17, 76); // (70% alpha) draw_lamp (default_lamps.indicator_lamp_8, X_ORG + 139, Y_ORG + 5, 329, 5, 18, 17, 89); // (65% alpha) draw_lamp (default_lamps.indicator_lamp_9, X_ORG + 158, Y_ORG + 5, 348, 5, 18, 17, 102); // (60% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// case COCKPIT_PANEL_DOWN20_RIGHT30: //////////////////////////////////////// { #define X_ORG (0) #define Y_ORG (177) draw_lamp (default_lamps.indicator_lamp_5, X_ORG + 0, Y_ORG + 20, 510, 20, 25, 21, 51); // (80% alpha) draw_lamp (default_lamps.indicator_lamp_6, X_ORG + 24, Y_ORG + 17, 534, 17, 25, 21, 64); // (75% alpha) draw_lamp (default_lamps.indicator_lamp_7, X_ORG + 48, Y_ORG + 14, 558, 14, 23, 21, 76); // (70% alpha) draw_lamp (default_lamps.indicator_lamp_8, X_ORG + 70, Y_ORG + 12, 580, 12, 24, 20, 89); // (65% alpha) draw_lamp (default_lamps.indicator_lamp_9, X_ORG + 92, Y_ORG + 8, 602, 8, 23, 21, 102); // (60% alpha) #undef X_ORG #undef Y_ORG break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal (lamp_error); break; } } }