コード例 #1
0
ファイル: ca_base.c プロジェクト: DexterWard/comanche
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);
}
コード例 #2
0
ファイル: ca_chat.c プロジェクト: Comanche93/eech
void campaign_screen_update_chat_page_pilot (entity *en)
{
	entity
		*current_target;
		
	current_target = get_local_entity_safe_ptr (get_ui_object_item_number (chat_send_button));
	
	if (current_target == en)
	{
		set_ui_object_item_number (chat_send_button, get_local_entity_safe_index (get_session_entity ()));
	}

	build_chat_target_list ();
}
コード例 #3
0
ファイル: ca_chat.c プロジェクト: Comanche93/eech
void notify_target_list (ui_object *obj, void *arg)
{
	int
		index;
		
	index = get_ui_object_item_number (obj);

	if (index != ENTITY_INDEX_DONT_CARE)
	{
		set_ui_object_item_number (chat_send_button, index);

		build_chat_target_list ();
	}
}
コード例 #4
0
ファイル: ca_base.c プロジェクト: DexterWard/comanche
static int response_to_base_destroyed (campaign_screen_messages message, entity *sender)
{
    if (get_local_entity_safe_index (sender) == get_ui_object_item_number (campaign_page [CAMPAIGN_PAGE_BASE]))
    {
        if (get_ui_object_drawable (campaign_page [CAMPAIGN_PAGE_BASE]))
        {
            //
            // Not sure yet.... For now display the map page
            //

            show_map_page ();
        }

        set_ui_object_item_number (campaign_page [CAMPAIGN_PAGE_BASE], ENTITY_INDEX_DONT_CARE);
    }

    return TRUE;
}
コード例 #5
0
ファイル: ca_wload.c プロジェクト: DexterWard/comanche
static void notify_member_list (ui_object *obj, void *arg)
{
	int
		index;

	entity
		*en,
		*group;

	index = get_ui_object_item_number (obj);

	en = get_local_entity_safe_ptr (index);

	ASSERT (en);

	set_ui_object_item_number (page_member_list, index);

	group = get_local_entity_parent (en, LIST_TYPE_MEMBER);

	ASSERT (group);

	show_weapon_loading_page (group, FALSE);
}
コード例 #6
0
ファイル: ca_chat.c プロジェクト: Comanche93/eech
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);
}
コード例 #7
0
ファイル: ca_base.c プロジェクト: DexterWard/comanche
void show_base_page (entity *base, int force_update)
{
    entity
    *previous;

    vec3d
    *pos;

    int
    x, z;

    char
    s [128];

    ASSERT (base);

    ASSERT (get_local_entity_type (base) == ENTITY_TYPE_KEYSITE);

    if (force_update)
    {
        previous = NULL;
    }
    else
    {
        previous = get_local_entity_safe_ptr (get_ui_object_item_number (campaign_page [CAMPAIGN_PAGE_BASE]));
    }

    pos = get_local_entity_vec3d_ptr (base, VEC3D_TYPE_POSITION);

    ASSERT (pos);

    //
    // NAME
    //

    set_ui_object_text (base_page_title, get_local_entity_string (base, STRING_TYPE_KEYSITE_NAME));

    //
    // TYPE
    //

    set_ui_object_text (base_page_type_box, get_trans (get_local_entity_string (base, STRING_TYPE_FULL_NAME)));

    //
    // LOCATION
    //

    get_x_sector (x, pos->x);
    get_z_sector (z, pos->z);

    sprintf (s, "[%03d, %03d]", x, z);

    set_ui_object_text (base_page_sector_box, s);

    //
    // 3D WINDOW
    //

    set_ui_object_item_number (page_3d_area, get_local_entity_index (base));

    if (base != previous)
    {
        page_3d_heading = 0.0;
        page_3d_pitch = (PI * 0.25);
        page_3d_distance = max (50.0, get_local_entity_float_value (base, FLOAT_TYPE_RECON_DISTANCE));
    }

    //
    // 2D MAP
    //

    set_ui_object_item_number (page_map_area, get_local_entity_index (base));

    if (base != previous)
    {
        page_map_dimensions.x = pos->x;
        page_map_dimensions.z = pos->z;

        page_map_dimensions.subject_entity = base;
    }

    //

    display_campaign_page (CAMPAIGN_PAGE_BASE, get_local_entity_index (base), TRUE);
}
コード例 #8
0
ファイル: ca_wload.c プロジェクト: DexterWard/comanche
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);
}