static void chat_input_function (ui_object *obj, void *arg) { entity // Jabberwock 040213 Chat send after Enter *target; const char *text; text = get_ui_object_text (chat_input); if (text) { if (strlen (text) > 0) { set_ui_object_text (chat_current_text, get_ui_object_text (chat_input)); // Jabberwock 040213 Chat send after Enter target = get_local_entity_safe_ptr (get_ui_object_item_number (chat_send_button)); if (target) { send_text_message (get_pilot_entity (), target, MESSAGE_TEXT_PILOT_STRING, text); } // Jabberwock 040202 ends } } set_ui_object_drawable (chat_current_text, TRUE); set_ui_object_drawable (chat_input, FALSE); }
void display_options_page (options_pages page) { int loop; //set drawable state of pages depending on chosen page & hilite appropriate button for (loop = 0; loop < NUM_OPTIONS_PAGES; loop ++) { set_ui_object_drawable (options_page [loop], FALSE); if (page == loop) { set_ui_object_state (options_page_buttons [loop], UI_OBJECT_STATE_ON); reset_time_values (options_page[loop]); current_options_page = loop; set_ui_object_drawable (options_page [loop], TRUE); } else { set_ui_object_state (options_page_buttons [loop], UI_OBJECT_STATE_OFF); } } }
static void set_input_ui_object_state (ui_object *obj, int flag) { input_ui_object *input; input = obj->data; if (input->area.state != flag) { input->area.state = flag; if (flag) { set_ui_object_drawable (obj, TRUE); set_alpha_event_functions (input_entry, input_end, input_abort); input_object = obj; push_event (set_input_events, "input events"); } else { set_ui_object_drawable (obj, FALSE); set_ui_object_text (obj, ""); } set_ui_object_redraw (obj, TRUE); } }
static void notify_show_messages (ui_object *obj, void *arg) { build_chat_message_list (); set_ui_object_drawable (chat_target_list_area, FALSE); set_ui_object_drawable (chat_message_list_area, TRUE); }
static void free_flight_cancel_quit_campaign (event *ev) { set_ui_object_drawable (free_flight_dialog_area, FALSE); set_ui_object_drawable (free_flight_quit_campaign_area, FALSE); pop_event (quit_free_flight_set_events); }
void setup_free_flight_quit_campaign_dialog (void) { set_ui_object_drawable (free_flight_dialog_area, TRUE); set_ui_object_drawable (free_flight_quit_campaign_area, TRUE); push_event (quit_free_flight_set_events, "quit free flight events"); }
void notify_award_clicked_medal (ui_object *obj, void *arg) { player_log_type *player; int *medals, medal_number, graphic_number; player = get_current_player_log (); medals = player->side_log[player_log_current_side].medals; medal_number = graphic_number = get_ui_object_item_number (obj); // account for double graphics on last 2 medals if (graphic_number == 10) { graphic_number = 11; } else if (graphic_number == 11) { graphic_number = 13; } if (player_log_current_side == ENTITY_SIDE_RED_FORCE) { if (medals [medal_number] == 0) { set_ui_object_drawable (us_medal_objects [graphic_number], TRUE); medals [medal_number] = 1; } else { set_ui_object_drawable (us_medal_objects [graphic_number], FALSE); medals [medal_number] = 0; } } else { if (medals [medal_number] == 0) { set_ui_object_drawable (russian_medal_objects [graphic_number], TRUE); medals [medal_number] = 1; } else { set_ui_object_drawable (russian_medal_objects [graphic_number], FALSE); medals [medal_number] = 0; } } }
void initialise_main_free_flight_screen (void) { initialise_map_data (); initialise_free_flight_screen_map_page_objects (); initialise_free_flight_screen_info_objects (); set_ui_object_drawable (free_flight_dialog_area, FALSE); set_ui_object_drawable (free_flight_quit_campaign_area, FALSE); }
void initialise_campaign_screen_save_page_objects (void) { set_ui_object_drawable (save_filename_input, FALSE); set_ui_object_state (save_filename_input, UI_OBJECT_STATE_OFF); set_ui_object_text (save_filename_input, ""); set_ui_object_text (save_current_filename, ""); set_ui_object_drawable (save_current_filename, TRUE); }
void loading_function (ui_object *obj, void *arg) { switch (get_game_type ()) { case GAME_TYPE_DEMO: { initialise_demoload_graphic (obj); set_ui_object_drawable (loading_text, TRUE); break; } case GAME_TYPE_CAMPAIGN: case GAME_TYPE_SKIRMISH: case GAME_TYPE_FREE_FLIGHT: default: { set_ui_object_drawable (loading_text, FALSE); switch (global_options.gunship_type) { case GUNSHIP_TYPE_APACHE: { //set_ui_object_graphic (loading_screen, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_APACHE_LOADING_SCREEN)); break; } case GUNSHIP_TYPE_HAVOC: { //set_ui_object_graphic (loading_screen, (unsigned short int *) get_graphics_file_data (GRAPHICS_UI_HAVOC_LOADING_SCREEN)); break; } } break; } } }
void notify_advert_screen (ui_object *obj, void *arg) { /* time_t start_time, end_time; float elapsed_time; */ if ( get_ui_object_drawable ( obj ) ) { // // Setup screen graphics // blit_front_buffer_to_render_buffer (); if (advert_screen_graphic) { destroy_texture_graphic (advert_screen_graphic); advert_screen_graphic = NULL; } advert_screen_graphic = create_texture_graphic ("graphics\\ui\\cohokum\\advert.psd"); set_ui_object_texture_graphic (advert_screen, advert_screen_graphic); reset_time_values (advert_screen); } else { if (advert_screen_graphic) { destroy_texture_graphic (advert_screen_graphic); advert_screen_graphic = NULL; } } set_mouse_off (); set_ui_object_redraw (advert_screen, TRUE); ui_force_update (); Sleep (5000); set_mouse_on (); // push_ui_screen (main_screen); set_ui_object_drawable (advert_ok_button, TRUE); }
static void save_enter_filename_function (ui_object *obj, void *arg) { set_ui_object_text (save_filename_input, get_ui_object_text (save_current_filename)); set_ui_object_state (save_filename_input, UI_OBJECT_STATE_ON); set_ui_object_drawable (save_current_filename, FALSE); }
int pop_ui_menu (ui_object *this_stack) { ui_object *stack_head; // store menu to pop and unlink it and destroy it. stack_head = this_stack->stack_head; if (stack_head) { set_ui_object_drawable (stack_head, FALSE); stack_head = stack_head->stack_next; this_stack->stack_head = stack_head; if (stack_head) { stack_head->stack_prev = NULL; set_ui_object_drawable (stack_head, TRUE); } else { // empty stack return FALSE; } menu_stack_size --; } else { return FALSE; } return TRUE; }
void set_current_game_session (session_list_data_type *game_session) { current_game_session = game_session; if (game_session) { if (get_comms_model () == COMMS_MODEL_SERVER) { //set_ui_object_drawable (session_screen_next_button_mask, FALSE); set_ui_object_drawable (session_screen_next_bdrop, TRUE); set_ui_object_drawable (session_screen_next_button, TRUE); // 15JUN09 Casm setting map information for saved games notify_session_parameters (); if (game_session->type == SESSION_LIST_TYPE_RESTORE) { set_ui_object_drawable (session_briefing_overlay, TRUE); } } else if (get_comms_model () == COMMS_MODEL_CLIENT) { set_ui_object_drawable (session_briefing_overlay, TRUE); } } else { //set_ui_object_drawable (session_screen_next_button_mask, TRUE); notify_clear_all_session_parameters (); set_ui_object_drawable (session_screen_next_bdrop, FALSE); set_ui_object_drawable (session_screen_next_button, FALSE); set_ui_object_drawable (session_screen_continue_button, FALSE); // Jabberwock 031118 Server side settings set_ui_object_drawable (session_screen_continue_bdrop, FALSE); set_ui_object_drawable (session_briefing_overlay, FALSE); } }
void initialise_campaign_screen_base_page_objects (void) { page_map_dimensions.x = MID_MAP_X; page_map_dimensions.z = MID_MAP_Z; page_map_dimensions.size = 8.0 * KILOMETRE; page_map_dimensions.subject_entity = NULL; page_map_dimensions.selected_entity = NULL; clear_map_mouse_over_object (&page_map_dimensions); set_ui_object_item_number (page_3d_area, ENTITY_INDEX_DONT_CARE); set_ui_object_item_number (page_map_area, ENTITY_INDEX_DONT_CARE); set_ui_object_drawable (page_3d_area, FALSE); set_ui_object_drawable (page_map_area, TRUE); set_ui_object_state (page_map_toggle, UI_OBJECT_STATE_ON); }
static void notify_save_file_list (ui_object *obj, void *arg) { char *text; text = get_ui_object_text (obj); if (text) { if (strlen (text) > 0) { parse_filename (text, FILENAME_MAX_LENGTH); set_ui_object_text (save_current_filename, text); } } set_ui_object_drawable (save_current_filename, TRUE); set_ui_object_drawable (save_filename_input, FALSE); }
void filename_input_function ( ui_object *obj, void *arg ) { char *text; text = get_ui_object_text (save_filename_input); if (text) { if (strlen (text) > 0) { parse_filename (text, FILENAME_MAX_LENGTH); set_ui_object_text (save_current_filename, text); } } set_ui_object_drawable (save_current_filename, TRUE); set_ui_object_drawable (save_filename_input, FALSE); }
void set_pilot_entity (entity *en) { comms_data_flow_types store_data_flow; if (en) { debug_log ("PILOT: Setting pilot_entity to %s", get_local_entity_string (en, STRING_TYPE_PILOTS_NAME)); ASSERT (pilot_entity == NULL); ASSERT (get_local_entity_type (en) == ENTITY_TYPE_PILOT); pilot_entity = en; // turn on NEXT button now Pilot entity has arrived if (get_comms_model () == COMMS_MODEL_CLIENT) { set_display_gunship_buttons (FALSE, "ENGAGE"); // turn on only the gunship_next button set_ui_object_drawable (gunship_screen_next_button, TRUE); } //-- Werewolf else { // If we're the server, remember our player name. This will be sent out in the heartbeat packets. net_set_hostname( get_local_entity_string (en, STRING_TYPE_PILOTS_NAME) ); } //-- Werewolf } else if (pilot_entity) { debug_log ("PILOT: Setting pilot_entity to NULL"); ASSERT (pilot_entity); // // Program MUST be in TX mode otherwise clients pilot will not be destroyed on the server // store_data_flow = get_comms_data_flow (); set_comms_data_flow (COMMS_DATA_FLOW_TX); destroy_client_server_entity (pilot_entity); set_comms_data_flow (store_data_flow); pilot_entity = NULL; } }
static void update_save_page_objects (ui_object *obj, void *arg) { char *text; set_ui_object_drawable (page_back_button, get_campaign_history_valid ()); // // Only display save button if valid filename // set_ui_object_drawable (save_game_confirm_button, FALSE); text = get_ui_object_text (save_current_filename); if (text) { if (strlen (text) > 0) { set_ui_object_drawable (save_game_confirm_button, TRUE); } } }
void initialise_campaign_screen_chat_page_objects (void) { // // Set Window Mode // set_ui_object_drawable (chat_target_list_area, TRUE); set_ui_object_drawable (chat_message_list_area, FALSE); set_ui_object_state (chat_window_destination_button, UI_OBJECT_STATE_ON); // // Set Target to ALL // set_ui_object_item_number (chat_send_button, get_local_entity_safe_index (get_session_entity ())); // // Clear Text Input Area // set_ui_object_drawable (chat_input, FALSE); set_ui_object_text (chat_input, ""); set_ui_object_state (chat_input, UI_OBJECT_STATE_OFF); // // Clear Current Text Area // set_ui_object_text (chat_current_text, ""); set_ui_object_drawable (chat_current_text, TRUE); }
void set_medal_states (ui_object *medal_objects[]) { int *medals, i; player_log_type *player; player = get_current_player_log (); medals = player->side_log[player_log_current_side].medals; for (i = 1; i < (NUM_MEDAL_TYPES); i++) { if (medals [i]) { set_ui_object_drawable (medal_objects [i], TRUE); } else { set_ui_object_drawable (medal_objects [i], FALSE); } } // always draw medal backdrops for dist.service & medal of honour if (medals [MEDAL_DISTINGUISHED_SERVICE]) { set_ui_object_drawable (medal_objects [MEDAL_DISTINGUISHED_SERVICE + 2], FALSE); } else { set_ui_object_drawable (medal_objects [MEDAL_DISTINGUISHED_SERVICE + 2], TRUE); } if (medals [MEDAL_MEDAL_OF_HONOUR]) { set_ui_object_drawable (medal_objects [MEDAL_MEDAL_OF_HONOUR + 2], FALSE); } else { set_ui_object_drawable (medal_objects [MEDAL_MEDAL_OF_HONOUR + 2], TRUE); } }
static void update_base_page_objects (ui_object *obj, void *arg) { char s [128]; entity *base; entity_sub_types sub_type; base = get_local_entity_safe_ptr (get_ui_object_item_number (campaign_page [CAMPAIGN_PAGE_BASE])); ASSERT (base); sub_type = get_local_entity_int_value (base, INT_TYPE_ENTITY_SUB_TYPE); // // STATUS // { int status; status = get_local_entity_int_value (base, INT_TYPE_KEYSITE_USABLE_STATE); set_ui_object_text (base_page_status_box, get_trans ((char*) keysite_usable_state_names [status])); switch (status) { case KEYSITE_STATE_UNUSABLE: { set_ui_object_font_colour (base_page_status_box, ui_colour_red.r, ui_colour_red.g, ui_colour_red.b, ui_colour_red.a); break; } case KEYSITE_STATE_REPAIRING: { set_ui_object_font_colour (base_page_status_box, ui_colour_yellow.r, ui_colour_yellow.g, ui_colour_yellow.b, ui_colour_yellow.a); break; } default: { set_ui_object_font_colour (base_page_status_box, ui_colour_yellow.r, ui_colour_yellow.g, ui_colour_yellow.b, ui_colour_yellow.a); break; } } } // // Efficiency // { float efficiency; if (get_local_entity_float_value (base, FLOAT_TYPE_KEYSITE_MAXIMUM_STRENGTH) > 0.0) { efficiency = get_local_entity_float_value (base, FLOAT_TYPE_EFFICIENCY) * 100.0; sprintf (s, "%.0f%%", efficiency); } else { sprintf (s, "N/A", efficiency); } set_ui_object_text (base_page_efficiency_box, s); } // // Supplies // { float supplies; if (keysite_database [sub_type].report_ammo_level) { supplies = get_local_entity_float_value (base, FLOAT_TYPE_AMMO_SUPPLY_LEVEL); sprintf (s, "%.0f%%", supplies); set_ui_object_text (base_page_ammo_box, s); } else { set_ui_object_text (base_page_ammo_box, ""); } if (keysite_database [sub_type].report_fuel_level) { supplies = get_local_entity_float_value (base, FLOAT_TYPE_FUEL_SUPPLY_LEVEL); sprintf (s, "%.0f%%", supplies); set_ui_object_text (base_page_fuel_box, s); } else { set_ui_object_text (base_page_fuel_box, ""); } } // // Back Button // set_ui_object_drawable (page_back_button, get_campaign_history_valid ()); }
static void notify_page_show_3d (ui_object *obj, void *arg) { set_ui_object_drawable (page_3d_area, TRUE); set_ui_object_drawable (page_map_area, FALSE); }
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 (); }
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 }
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); } } }
static void update_weapon_loading_page_objects (ui_object *obj, void *arg) { set_ui_object_drawable (page_back_button, get_campaign_history_valid ()); }
void show_weapon_loading_page (entity *group, int force_update) { gunship_types type; int loop; entity *en, *pilot, *member; ui_object *new_item; ASSERT (group); // // Reconstruct List // if (force_update) { ui_object_destroy_list_items (page_member_list); set_ui_object_vslider_virtual_position (get_ui_object_vslider (page_member_area), 0.0); set_ui_object_item_number (page_member_list, ENTITY_INDEX_DONT_CARE); member = get_local_entity_first_child (group, LIST_TYPE_MEMBER); ASSERT (member); while (member) { sprintf (buffer, "1-%d %s", get_local_entity_int_value (member, INT_TYPE_GROUP_MEMBER_ID), get_local_entity_string (member, STRING_TYPE_SHORT_DISPLAY_NAME)); pilot = get_local_entity_first_child (member, LIST_TYPE_AIRCREW); if (pilot) { sprintf (buffer, "1-%d %s (%s)", get_local_entity_int_value (member, INT_TYPE_GROUP_MEMBER_ID), get_local_entity_string (member, STRING_TYPE_SHORT_DISPLAY_NAME), get_local_entity_string (pilot, STRING_TYPE_PILOTS_NAME)); } if (get_local_entity_int_value (member, INT_TYPE_GUNSHIP_TYPE) < NUM_GUNSHIP_TYPES) { new_item = add_to_pop_up_list (buffer, page_member_list, NULL, get_local_entity_safe_index (member), UI_FONT_ARIAL_14, ui_ingame_live_text_colour); set_ui_mouse_over_entity_function (new_item); set_ui_object_notify_on (new_item, NOTIFY_TYPE_BUTTON_DOWN); } else { new_item = add_to_pop_up_list (buffer, page_member_list, NULL, get_local_entity_safe_index (member), UI_FONT_ARIAL_14, ui_ingame_dead_text_colour); set_ui_object_notify_on (new_item, NOTIFY_TYPE_NONE); } if (member == get_gunship_entity ()) { set_ui_object_state (new_item, UI_OBJECT_STATE_ON); set_ui_object_item_number (page_member_list, get_local_entity_safe_index (member)); } member = get_local_entity_child_succ (member, LIST_TYPE_MEMBER); } resize_pop_up_list (page_member_list); } // // Show weapon loading page // for (loop = 0; loop < NUM_GUNSHIP_TYPES; loop ++) { set_ui_object_drawable (weapon_loading_page [loop], FALSE); set_ui_object_item_number (weapon_loading_page [loop], ENTITY_INDEX_DONT_CARE); } en = get_local_entity_safe_ptr (get_ui_object_item_number (page_member_list)); ASSERT (en); type = get_local_entity_int_value (en, INT_TYPE_GUNSHIP_TYPE); if (get_local_entity_int_value (en, INT_TYPE_GUNSHIP_TYPE) < NUM_GUNSHIP_TYPES) { weapon_loading_update_currently_selected_weapons (en); set_ui_object_drawable (weapon_loading_page [type], TRUE); set_ui_object_item_number (weapon_loading_page [type], get_local_entity_safe_index (en)); } // // Default payload list // rebuild_default_payload_list (en); display_campaign_page (CAMPAIGN_PAGE_WEAPON_LOADING, get_local_entity_safe_index (group), TRUE); }
void chat_enter_message_function (ui_object *obj, void *arg) { set_ui_object_state (chat_input, UI_OBJECT_STATE_ON); set_ui_object_drawable (chat_current_text, FALSE); }