Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
		}
	}
}
Exemplo n.º 3
0
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);
	}
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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");
}
Exemplo n.º 7
0
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;
		}
	}
}
Exemplo n.º 8
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);
}
Exemplo n.º 9
0
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);
}
Exemplo n.º 10
0
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;
		}
	}
}
Exemplo n.º 11
0
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);
}
Exemplo n.º 12
0
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);
}
Exemplo n.º 13
0
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;
}
Exemplo n.º 14
0
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);
	}
}
Exemplo n.º 15
0
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);
}
Exemplo n.º 16
0
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);
}
Exemplo n.º 17
0
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);
}
Exemplo n.º 18
0
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;
	}
}
Exemplo n.º 19
0
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);
		}
	}
}
Exemplo n.º 20
0
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);
}
Exemplo n.º 21
0
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);
	}
}
Exemplo n.º 22
0
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 ());
}
Exemplo n.º 23
0
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);
}
Exemplo n.º 24
0
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 ();
}
Exemplo n.º 25
0
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
}
Exemplo n.º 26
0
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;
		}
	}
}
Exemplo n.º 27
0
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);
		}
	}
}
Exemplo n.º 28
0
static void update_weapon_loading_page_objects (ui_object *obj, void *arg)
{
	set_ui_object_drawable (page_back_button, get_campaign_history_valid ());
}
Exemplo n.º 29
0
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);
}
Exemplo n.º 30
0
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);
}