void notify_options_screen (ui_object *obj, void *arg) { if ( get_ui_object_drawable ( obj ) ) { // // Setup screen graphics // blit_front_buffer_to_render_buffer (); if (options_screen_graphic) { destroy_texture_graphic (options_screen_graphic); options_screen_graphic = NULL; } options_screen_graphic = create_texture_graphic ("graphics//ui//cohokum//setup.psd"); set_ui_object_texture_graphic (options_screen, options_screen_graphic); // reset_time_values (options_screen); // if called from within game - hide certain options if (get_current_game_session()) { set_ui_object_highlightable (options_page_buttons[OPTIONS_PAGE_MULTIPLAYER], FALSE); set_ui_object_font_colour_end (options_page_buttons[OPTIONS_PAGE_MULTIPLAYER], ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_drawable (ghost_multiplayer_option_button, TRUE); if (current_options_page == OPTIONS_PAGE_MULTIPLAYER) { current_options_page = OPTIONS_PAGE_GRAPHICS; } #if INGAME_SOUND_OPTIONS set_ui_object_drawable (options_page_buttons[OPTIONS_PAGE_SOUND], FALSE); set_ui_object_drawable (options_page_buttons[OPTIONS_PAGE_INGAME_SOUND], TRUE); if (current_options_page == OPTIONS_PAGE_SOUND) { current_options_page = OPTIONS_PAGE_INGAME_SOUND; } #else set_ui_object_drawable (options_page_buttons[OPTIONS_PAGE_INGAME_SOUND], FALSE); set_ui_object_highlightable (options_page_buttons[OPTIONS_PAGE_SOUND], FALSE); set_ui_object_font_colour_end (options_page_buttons[OPTIONS_PAGE_SOUND], ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_drawable (ghost_sound_option_button, TRUE); if (current_options_page == OPTIONS_PAGE_SOUND) { current_options_page = OPTIONS_PAGE_GRAPHICS; } #endif } else { set_ui_object_highlightable (options_page_buttons[OPTIONS_PAGE_MULTIPLAYER], TRUE); set_ui_object_font_colour_end (options_page_buttons[OPTIONS_PAGE_MULTIPLAYER], ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); set_ui_object_drawable (ghost_multiplayer_option_button, FALSE); #if INGAME_SOUND_OPTIONS set_ui_object_drawable (options_page_buttons[OPTIONS_PAGE_SOUND], TRUE); set_ui_object_drawable (options_page_buttons[OPTIONS_PAGE_INGAME_SOUND], FALSE); if (current_options_page == OPTIONS_PAGE_INGAME_SOUND) { current_options_page = OPTIONS_PAGE_SOUND; } #else set_ui_object_drawable (options_page_buttons[OPTIONS_PAGE_INGAME_SOUND], FALSE); set_ui_object_highlightable (options_page_buttons[OPTIONS_PAGE_SOUND], TRUE); set_ui_object_font_colour_end (options_page_buttons[OPTIONS_PAGE_SOUND], ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); set_ui_object_drawable (ghost_sound_option_button, FALSE); #endif } #if DEMO_VERSION set_ui_object_highlightable (options_page_buttons[OPTIONS_PAGE_MULTIPLAYER], FALSE); set_ui_object_font_colour_end (options_page_buttons[OPTIONS_PAGE_MULTIPLAYER], ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_drawable (ghost_multiplayer_option_button, TRUE); #endif //initialise the joystick devices initialise_joystick_selection (); //call most recently entered options page notify_options_page (current_options_page); // get pointer to current graphics card old_graphics_card_selection = get_card_selection_device (); old_graphics_card_automatic_selection = get_global_graphics_device_selection_automatic (); } else { if (options_screen_graphic) { destroy_texture_graphic (options_screen_graphic); options_screen_graphic = NULL; } } }
static void update_weapon_loading_gunship_page (ui_object *obj, void *arg) { entity *en; gunship_types gunship; weapon_loading_hardpoint_types hardpoint; int count, fixed, auw, weapon_type; float mass; ui_object *button_object; rgb_colour *col; ASSERT (obj); en = get_local_entity_safe_ptr (get_ui_object_item_number (obj)); ASSERT (en); gunship = get_local_entity_int_value (en, INT_TYPE_GUNSHIP_TYPE); ASSERT (gunship < NUM_GUNSHIP_TYPES); if (get_helicopter_allowed_to_rearm (en)) { fixed = FALSE; } else { fixed = TRUE; } // // Set button text // for (hardpoint = 0; hardpoint < NUM_WEAPON_LOADING_HARDPOINT_TYPES; hardpoint ++) { if (weapon_loading_button_list [gunship][hardpoint].valid) { button_object = weapon_loading_button_list [gunship][hardpoint].button_ptr; weapon_type = weapon_loading_get_current_hardpoint_weapon (gunship, hardpoint); // // Set Text // if (weapon_type != ENTITY_SUB_TYPE_WEAPON_NO_WEAPON) { count = get_weapon_loading_hardpoint_weapon_count (en, hardpoint, weapon_type); sprintf (buffer, "%dx %s", count, weapon_database [weapon_type].weapon_loading_list_name); } else { sprintf (buffer, "%s", weapon_database [weapon_type].weapon_loading_list_name); } set_ui_object_text (button_object, buffer); // // Set Button Attributes // if ((fixed) || (weapon_loading_get_valid_weapon_count (en, hardpoint) < 2)) { set_ui_object_notify_on (button_object, NOTIFY_TYPE_NONE); set_ui_object_highlightable (button_object, FALSE); col = &ui_ingame_dead_text_colour; set_ui_object_font_colour (button_object, col->r, col->g, col->b, col->a); } else { set_ui_object_notify_on (button_object, NOTIFY_TYPE_BUTTON_DOWN); set_ingame_ui_object_mouse_over_properties (button_object); } } } // // All-Up-Weight (player only) // if (en == get_gunship_entity ()) { mass = set_flight_dynamics_mass (); convert_float_to_int (mass, &auw); sprintf (buffer, "%s: %dkg", get_trans ("All Up Weight"), auw); set_ui_object_text (page_auw_text, buffer); } else { set_ui_object_text (page_auw_text, ""); } // // Fuel Page (player only) // if (en == get_gunship_entity ()) { sprintf (buffer, " %.0fkg", get_current_flight_dynamics_fuel_weight ()); set_ui_object_text (page_fuel_gauge, buffer); set_ui_object_drawable (page_fuel_text, TRUE); set_ui_object_drawable (page_fuel_gauge, TRUE); draw_weapon_loading_gauge (page_fuel_gauge, get_dynamics_normalised_fuel_value ()); } else { set_ui_object_drawable (page_fuel_text, FALSE); set_ui_object_drawable (page_fuel_gauge, FALSE); } // // Damage Page (player only) // set_ui_object_drawable (page_repairing_text, FALSE); set_ui_object_drawable (page_repairing_gauge, FALSE); if (en == get_gunship_entity ()) { int repair_index; float level, repair_time; if (current_flight_dynamics->repairing_damage != DYNAMICS_DAMAGE_NONE) { repair_index = get_dynamics_damage_currently_repairing_type (); repair_time = dynamics_damage_database [repair_index].repair_time; if (repair_time == 0.0) { level = 1.0; } else { level = 1.0 - (current_flight_dynamics->damage_repair_time / repair_time); level = bound (level, 0.0, 1.0); } sprintf (buffer, " %s", get_trans (dynamics_damage_database [repair_index].name)); set_ui_object_text (page_repairing_gauge, buffer); set_ui_object_drawable (page_repairing_text, TRUE); set_ui_object_drawable (page_repairing_gauge, TRUE); draw_weapon_loading_gauge (page_repairing_gauge, level); } } }
void ghost_ui_objects_for_modem (ui_object *obj, int flag) { int i; // activate ghosting if (flag == TRUE) { // disable common object items for (i = 0; i < NUM_OPTIONS_PAGES; i++) { set_ui_object_drawable (options_page_buttons [i], FALSE); } set_ui_object_drawable (option_page_ok_button, FALSE); // disable modem objects set_ui_object_highlightable (connection_type_button, FALSE); set_ui_object_font_colour_end (connection_type_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_highlightable (phone_number_text_obj, FALSE); set_ui_object_font_colour_end (phone_number_text_obj, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_highlightable (modem_type_button, FALSE); set_ui_object_font_colour_end (modem_type_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_highlightable (modem_answer_button, FALSE); set_ui_object_font_colour_end (modem_answer_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_highlightable (modem_dial_button, FALSE); set_ui_object_font_colour_end (modem_dial_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); // enable ghosting overlay set_ui_object_drawable (ghost_multiplayer_modem_area, TRUE); set_ui_object_drawable (ghost_multiplayer_modem_area2, TRUE); } // deactivate ghosting else { // enable common object items for (i = 0; i < NUM_OPTIONS_PAGES; i++) { set_ui_object_drawable (options_page_buttons [i], TRUE); } set_ui_object_drawable (option_page_ok_button, TRUE); // enable modem objects set_ui_object_highlightable (connection_type_button, TRUE); set_ui_object_font_colour_end (connection_type_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); set_ui_object_highlightable (phone_number_text_obj, TRUE); set_ui_object_font_colour_end (phone_number_text_obj, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); set_ui_object_highlightable (modem_type_button, TRUE); set_ui_object_font_colour_end (modem_type_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); set_ui_object_highlightable (modem_answer_button, TRUE); set_ui_object_font_colour_end (modem_answer_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); set_ui_object_highlightable (modem_dial_button, TRUE); set_ui_object_font_colour_end (modem_dial_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 255); // disable ghosting overlay set_ui_object_drawable (ghost_multiplayer_modem_area, FALSE); set_ui_object_drawable (ghost_multiplayer_modem_area2, FALSE); } // don't leave text selected if (obj) { set_toggle_button_off (obj); } // ui_force_update (); }
static void draw_chat_send_button (ui_object *obj, void *arg) { entity *current_target; rgb_colour *col; static const char *text; static char s [256]; sprintf (s, "%s: ", get_trans ("SEND TO")); current_target = get_local_entity_safe_ptr (get_ui_object_item_number (obj)); if (current_target) { switch (get_local_entity_type (current_target)) { case ENTITY_TYPE_SESSION: { strcat (s, get_trans ("CHAT_TARGET_ALL")); break; } case ENTITY_TYPE_FORCE: { strcat (s, get_local_entity_string (current_target, STRING_TYPE_FORCE_NAME)); break; } case ENTITY_TYPE_PILOT: { strcat (s, get_local_entity_string (current_target, STRING_TYPE_PILOTS_NAME)); break; } default: { current_target = NULL; build_chat_target_list (); break; } } } set_ui_object_text (obj, s); if (current_target) { text = get_ui_object_text (chat_current_text); if (text) { if (strlen (text) > 0) { set_ingame_ui_object_mouse_over_properties (obj); set_ui_object_notify_on (obj, NOTIFY_TYPE_BUTTON_DOWN); return; } } } set_ui_object_notify_on (obj, NOTIFY_TYPE_NONE); set_ui_object_highlightable (obj, FALSE); col = &ui_ingame_dead_text_colour; set_ui_object_font_colour (obj, col->r, col->g, col->b, col->a); }
void notify_main_screen (ui_object *obj, void *arg) { obj; arg; if ( get_ui_object_drawable ( obj ) ) { if ( main_screen_texture ) { destroy_texture_graphic ( main_screen_texture ); main_screen_texture = NULL; } main_screen_texture = create_texture_graphic ( "graphics//ui//cohokum//main.psd" ); set_ui_object_texture_graphic ( main_screen, main_screen_texture ); blit_front_buffer_to_render_buffer (); leave_mission (); ui_set_user_function (NULL); reset_time_values ( main_screen ); } else { if ( main_screen_texture ) { destroy_texture_graphic ( main_screen_texture ); main_screen_texture = NULL; } } #if DEMO_VERSION set_ui_object_highlightable (pilots_button, FALSE); set_ui_object_font_colour_end (pilots_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_notify_on (pilots_button, NOTIFY_TYPE_NONE); set_ui_object_drawable (ghost_pilots_button, TRUE); set_ui_object_highlightable (credits_button, FALSE); set_ui_object_font_colour_end (credits_button, ui_option_text_default_colour.r, ui_option_text_default_colour.g, ui_option_text_default_colour.b, 127); set_ui_object_drawable (ghost_credits_button, TRUE); set_ui_object_notify_on (credits_button, NOTIFY_TYPE_NONE); #endif }