Exemple #1
0
void initialise_apache_upfront_display (void)
{
	texture_screen = create_system_texture_screen (128, 128, TEXTURE_INDEX_AVCKPT_DISPLAY_UPFRONT, TEXTURE_TYPE_SINGLEALPHA);

	line1[0] = '\0';
	line2[0] = '\0';
	line3[0] = '\0';
	line4[0] = '\0';

	set_rgb_colour (text_colour, 0, 255, 0, 255);

	set_rgb_colour (clear_colour, 0, 255, 0, 0);
}
Exemple #2
0
void initialise_common_hud (void)
{
	display_hud_layout_grid = FALSE;

	hud_bob_up_overlay = FALSE;

	hud_bob_up_heading = 0.0;

	hud_bob_up_position.x = 0.0;
	hud_bob_up_position.y = 0.0;
	hud_bob_up_position.z = 0.0;

	hud_mode = HUD_MODE_NAVIGATION;

	set_rgb_colour (hud_colour_table[HUD_COL_WHITE],   255, 255, 240, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_RED],     255,  20,   0, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_AMBER],   255, 153,  18, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_GOLD],    255, 215,   0, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_GREEN],     0, 255, 127, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_CYAN],      0, 255, 255, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_BLUE],     30, 144, 255, 255);
	set_rgb_colour (hud_colour_table[HUD_COL_BLACK],     0,   0,   0, 255);

	hud_colour = hud_colour_table[get_global_hud_colour ()];
}
Exemple #3
0
void initialise_default_instrument_colours (void)
{
	set_rgb_colour (white_needle_colour_level1, 200, 200, 200, 0);
	set_rgb_colour (red_needle_colour_level1,   188,  58,  26, 0);
	set_rgb_colour (white_digit_colour_level1,  200, 200, 200, 0);
	set_rgb_colour (white_needle_colour_level2, 192,   0,   0, 0);
	set_rgb_colour (red_needle_colour_level2,   192,   0,   0, 0);
	set_rgb_colour (white_digit_colour_level2,  192,   0,   0, 0);
	set_rgb_colour (white_needle_colour_level3, 192,   0,   0, 0);
	set_rgb_colour (red_needle_colour_level3,   192,   0,   0, 0);
	set_rgb_colour (white_digit_colour_level3,  192,   0,   0, 0);
}
Exemple #4
0
static void initialise_hud_colours(void)
{
	set_rgb_colour(hind_hud_colours[0],   192, 255,128, 255);
	set_rgb_colour(hind_hud_colours[1],   128, 255, 48, 255);
	set_rgb_colour(hind_hud_colours[2],    48,  64, 16, 255);
	set_rgb_colour(hind_hud_colours[3],   255, 220, 64, 255);

	set_rgb_colour(backup_sight_colour,  255, 50, 0, 255);

	current_hud_colour = 0;
	hud_colour = hind_hud_colours[current_hud_colour];
	set_rgb_colour (clear_hud_colour, 255, 255, 255, 0);
}
Exemple #5
0
void draw_apache_altitude_counter(void)
{
	set_active_screen (altitude_counter_screen);

	if (lock_screen (altitude_counter_screen))
	{
		rgb_colour
			bg_colour;
			
		set_rgb_colour(bg_colour, 20, 20, 25, 255);
		set_block (0, 0, ALTITUDE_COUNTER_WIDTH - 1, ALTITUDE_COUNTER_HEIGHT - 1, bg_colour);

		draw_altitude_counter_digits();

		flush_screen_texture_graphics(altitude_counter_screen);
		unlock_screen (altitude_counter_screen);
	}

	set_active_screen (video_screen);
}
Exemple #6
0
static void draw_altitude_counter_digits(void)
{
	float
		x_org = 0.0,
		y_org = 0.0,
		x_min,
		y_min,
		x_max,
		y_max;

	rgb_colour
		fg_colour;

	int
		altitude = (int)(feet(current_flight_dynamics->barometric_altitude.value) / 100.0) % 100;

	char
		buffer[20];

	x_min = x_org;
	y_min = y_org;
	x_max = x_org + ALTITUDE_COUNTER_WIDTH - 0.001;
	y_max = y_org + ALTITUDE_COUNTER_HEIGHT - 0.001;

	set_viewport (x_min, y_min, x_max, y_max);

	set_rgb_colour(fg_colour, 180, 180, 180, 255);
	set_mono_font_colour(fg_colour);

	sprintf(buffer, "%02d", altitude);

	set_mono_font_type (MONO_FONT_TYPE_8X14);
	set_mono_font_position(13.0, 3.0);

	print_mono_font_string(buffer);
}
Exemple #7
0
void draw_hind_hud_on_texture (void)
{
	//
	// set active 3D environment now else 2D clipping will be affected
	//

	set_main_3d_full_screen_params (DISPLAY_3D_TINT_CLEAR, DISPLAY_3D_LIGHT_LEVEL_HIGH, DISPLAY_3D_NOISE_LEVEL_NONE);

	set_3d_active_environment (main_3d_env);

	////////////////////////////////////////
	//
	// set up HUD 2D environment
	//
	////////////////////////////////////////

	set_2d_active_environment (hud_env);

	//
	// window
	//

	set_2d_window (hud_env, HUD_WINDOW_X_MIN, HUD_WINDOW_Y_MIN, HUD_WINDOW_X_MAX, HUD_WINDOW_Y_MAX);

	if (hud_display_model)
	{
		// move HUD coordinate system with head movements to simulate the collimation effect (focus on infinity)
		float head_offset_x = 0.0, head_offset_y = 0.0, head_offset_z = 0.0;

		if (get_view_mode() == VIEW_MODE_COCKPIT_PANEL_SPECIAL_HAVOC_HUD)
		{
			if (custom_3d_models.arneh_mi24v_cockpit)
				get_hind_3d_cockpit_hud_view_position(&head_offset_x, &head_offset_y, &head_offset_z);
		}
		else
		{
			head_offset_x = -getViewpointOffsetX(head_offset_x);
			head_offset_y = -getViewpointOffsetY(head_offset_y);
			head_offset_z = -getViewpointOffsetY(head_offset_z);

			head_offset_x += wide_cockpit_position[WIDEVIEW_HIND_PILOT].c.x;
			head_offset_y += wide_cockpit_position[WIDEVIEW_HIND_PILOT].c.y;
			head_offset_z += wide_cockpit_position[WIDEVIEW_HIND_PILOT].c.z;
		}

		{
			// move texture UV coordinates to move and scale the texture
			unsigned i;
			for (i=0; i<num_texture_coordinates; i++)
			{
				float
					scale,
					u = hud_texture_uv_coordinates[i].u,
					v = hud_texture_uv_coordinates[i].v;

				// scale hud to keep same absolute size no matter distance to hud
				u -= 0.5;
				v -= 0.5;

				hud_distance = hud_position_z - head_offset_z;
				scale = hud_position_z / hud_distance;

				u *= scale;
				v *= scale;

				u += 0.5;
				v += 0.5;

				// then displace hud to keep it directly in front of pilot's position
				u -= (scale) * head_offset_x / hud_width;
				v += (scale) * (head_offset_y - hud_position_y) / hud_height;

				hud_display_model->surface_texture_points[i].u = u;
				hud_display_model->surface_texture_points[i].v = v;
			}
		}
	}

	//
	// viewport
	//

	draw_large_hud = FALSE;

	hud_viewport_size = HUD_VIEWPORT_SMALL_SIZE;
	hud_viewport_x_org = HUD_VIEWPORT_TEXTURE_X_ORG;
	hud_viewport_y_org = HUD_VIEWPORT_TEXTURE_Y_ORG;

	hud_viewport_x_min = hud_viewport_x_org - (hud_viewport_size * 0.5);
	hud_viewport_y_min = hud_viewport_y_org - (hud_viewport_size * 0.5);
	hud_viewport_x_max = hud_viewport_x_org + (hud_viewport_size * 0.5) - 0.001;
	hud_viewport_y_max = hud_viewport_y_org + (hud_viewport_size * 0.5) - 0.001;

	set_2d_viewport (hud_env, hud_viewport_x_min, hud_viewport_y_min, hud_viewport_x_max, hud_viewport_y_max);

	//
	// get screen co-ords (vitural cockpit texture - scaling only works near screen centre)
	//

	hud_screen_x_min = full_screen_x_mid - ((HUD_VIEWPORT_SMALL_SIZE / (640.0 * 2.0)) * full_screen_width);
	hud_screen_y_min = full_screen_y_mid - ((HUD_VIEWPORT_SMALL_SIZE / (480.0 * 2.0)) * full_screen_height);

	hud_screen_x_max = full_screen_x_mid + ((HUD_VIEWPORT_SMALL_SIZE / (640.0 * 2.0)) * full_screen_width) - 0.001;
	hud_screen_y_max = full_screen_y_mid + ((HUD_VIEWPORT_SMALL_SIZE / (480.0 * 2.0)) * full_screen_height) - 0.001;

	hud_screen_x_scale = 640.0 / full_screen_width;
	hud_screen_y_scale = 480.0 / full_screen_height;

	////////////////////////////////////////
	//
	// draw HUD
	//
	////////////////////////////////////////

	set_active_screen (hud_texture_screen);

	if (lock_screen (hud_texture_screen))
	{
		rgb_colour
			clear_hud_colour;

		if (backup_sight_active)
		{
			set_rgb_colour (clear_hud_colour, backup_sight_colour.r, backup_sight_colour.g, backup_sight_colour.b, 0);
		}
		else
		{
			set_rgb_colour (clear_hud_colour, hud_colour.r, hud_colour.g, hud_colour.b, 0);
		}

		set_block (0, 0, HUD_VIEWPORT_SMALL_SIZE - 1, HUD_VIEWPORT_SMALL_SIZE - 1, clear_hud_colour);


		if (electrical_system_active())
			if (backup_sight_active)
				draw_backup_sight();
			else if (!hind_damage.head_up_display)
			{
				set_mono_font_colour (hud_colour);

				draw_layout_grid ();

				if (hud_mode == HUD_MODE_WEAPON)
					draw_weapon_mode_hud (TRUE);
			}

		// last pixel must be transparent because it's repeated when texture doesn't fill entire polygon
		draw_line(0, 0, 0, HUD_VIEWPORT_SMALL_SIZE - 1, clear_hud_colour);
		draw_line(0, 0, HUD_VIEWPORT_SMALL_SIZE - 1, 0, clear_hud_colour);
		draw_line(0, HUD_VIEWPORT_SMALL_SIZE - 1, HUD_VIEWPORT_SMALL_SIZE - 1, HUD_VIEWPORT_SMALL_SIZE - 1, clear_hud_colour);
		draw_line(HUD_VIEWPORT_SMALL_SIZE - 1, 0, HUD_VIEWPORT_SMALL_SIZE - 1, HUD_VIEWPORT_SMALL_SIZE - 1, clear_hud_colour);

		flush_screen_texture_graphics (hud_texture_screen);

		unlock_screen (hud_texture_screen);
	}

	set_active_screen (video_screen);
}
Exemple #8
0
void initialise_graphics_colours ( void )
{

	set_rgb_colour (sys_col_black, 0, 0, 0, 255);
	set_rgb_colour (sys_col_blue, 0, 0, 255, 255);
	set_rgb_colour (sys_col_green, 0, 255, 0, 255);
	set_rgb_colour (sys_col_cyan, 0, 255, 255, 255);
	set_rgb_colour (sys_col_red, 255, 0, 0, 255);
	set_rgb_colour (sys_col_magenta, 255, 0, 255, 255);
	set_rgb_colour (sys_col_yellow, 255, 255, 0, 255);
	set_rgb_colour (sys_col_white, 255, 255, 255, 255);
	set_rgb_colour (sys_col_sky_blue, 135, 206, 235, 255);
	set_rgb_colour (sys_col_slate_grey, 112, 128, 144, 255);
	set_rgb_colour (sys_col_forest_green, 34, 139, 34, 255);
	set_rgb_colour (sys_col_ultramarine, 18, 0, 143, 255);
	set_rgb_colour (sys_col_seablue, 90, 130, 190, 255);
	set_rgb_colour (sys_col_aquamarine, 127, 255, 212, 255);
	set_rgb_colour (sys_col_gold, 255, 215, 0, 255);
	set_rgb_colour (sys_col_light_grey, 200, 200, 200, 255);
	set_rgb_colour (sys_col_light_red, 255, 150, 150, 255);
	set_rgb_colour (sys_col_dark_red, 150, 0, 0, 255);
	set_rgb_colour (sys_col_dark_green, 0, 150, 0, 255);
	set_rgb_colour (sys_col_dark_blue, 0, 0, 100, 255);
	set_rgb_colour (sys_col_medium_blue, 50, 50, 150, 255);
	set_rgb_colour (sys_col_medium_red, 255, 50, 50, 255);
	set_rgb_colour (sys_col_sandy_brown, 244, 164, 96, 255);
	set_rgb_colour (sys_col_amber, 255, 128, 0, 255);
	set_rgb_colour (sys_col_waypoint_route, 31, 0, 136, 255);
	set_rgb_colour (sys_col_red_force, 224, 27, 0, 255);
	set_rgb_colour (sys_col_blue_force, 41, 86, 255, 255);
}
Exemple #9
0
static void draw_map_display(void)
{
	float
		u,
		v,
		scale;

	entity
		*source;

	vec3d
		*source_position;

	source = get_gunship_entity ();
	source_position = get_local_entity_vec3d_ptr (source, VEC3D_TYPE_POSITION);

	map_centre_position = *source_position;

	scale = RADIUS / map_range;

	//
	// match ground radar origin
	//

	get_2d_float_screen_coordinates (0.0f, 0.0f, &u, &v);

	u -= mfd_viewport_x_min;
	v -= mfd_viewport_y_min;

	////////////////////////////////////////
	//
	//VJ 030423 TSD RENDER MOD
	//
	////////////////////////////////////////

	{
		draw_tsd_terrain_map (mfd_env, 0.0f, map_range, scale, source_position, 0.0f, TRUE);
		draw_tsd_contour_map (mfd_env, 0.0f, map_range, scale, source_position, 0.0f, TRUE, TRUE);
	}

	// grid and towns
	{
		rgb_colour grid_colour;

		set_rgb_colour(grid_colour, 96, 64, 0, 255);
		draw_tsd_map_grid(source_position, scale, grid_colour);

		set_mono_font_colour (MFD_COLOUR1);
		set_mono_font_type (MONO_FONT_TYPE_6X10);

		draw_tsd_map_towns(source_position, scale);
	}

	////////////////////////////////////////
	//
	// waypoint route
	//
	////////////////////////////////////////

	{
		entity
			*wp1,
			*wp2;

		vec3d
			wp1_rel_position,
			wp2_rel_position;

		rgb_colour waypoint_colour = MFD_COLOUR_RED;

		wp1 = get_local_entity_first_waypoint (source);

		if (wp1)
		{
			set_2d_viewport_origin (mfd_env, u, v);

			//
			// waypoint route
			//

			get_waypoint_display_position (source, wp1, &wp1_rel_position);

			wp1_rel_position.x = (wp1_rel_position.x - source_position->x) * scale;
			wp1_rel_position.z = (wp1_rel_position.z - source_position->z) * scale;

			wp2 = get_local_entity_child_succ (wp1, LIST_TYPE_WAYPOINT);

			while (wp2)
			{
				get_waypoint_display_position (source, wp2, &wp2_rel_position);

				wp2_rel_position.x = (wp2_rel_position.x - source_position->x) * scale;
				wp2_rel_position.z = (wp2_rel_position.z - source_position->z) * scale;

				draw_2d_half_thick_line (wp1_rel_position.x, wp1_rel_position.z, wp2_rel_position.x, wp2_rel_position.z, waypoint_colour);  // 2

				wp1 = wp2;

				wp1_rel_position = wp2_rel_position;

				wp2 = get_local_entity_child_succ (wp1, LIST_TYPE_WAYPOINT);
			}

			//
			// waypoint markers
			//

			set_mono_font_colour (MFD_COLOUR_RED);

			set_mono_font_type (MONO_FONT_TYPE_10X16);

			wp1 = get_local_entity_first_waypoint (source);

			while (wp1)
			{
				get_waypoint_display_position (source, wp1, &wp1_rel_position);

				wp1_rel_position.x = (wp1_rel_position.x - source_position->x) * scale;
				wp1_rel_position.z = (wp1_rel_position.z - source_position->z) * scale;

				draw_2d_circle(wp1_rel_position.x, wp1_rel_position.z, 0.008, waypoint_colour);

				set_2d_mono_font_position (wp1_rel_position.x, wp1_rel_position.z);
				set_mono_font_rel_position (-4.0, 8.0);

				print_mono_font_char (get_local_entity_char_value (wp1, CHAR_TYPE_TAG));

				wp1 = get_local_entity_child_succ (wp1, LIST_TYPE_WAYPOINT);
			}

			set_2d_viewport (mfd_env, mfd_viewport_x_min, mfd_viewport_y_min, mfd_viewport_x_max, mfd_viewport_y_max);
		}
	}

	////////////////////////////////////////
	//
	// aircraft datum symbol
	//
	////////////////////////////////////////

	// last pixel must be transparent because it's repeated when texture doesn't fill entire polygon
	draw_line(0, 0, 0, mfd_viewport_size - 1, clear_mfd_colour);
	draw_line(0, 0, mfd_viewport_size - 1, 0, clear_mfd_colour);
	draw_line(0, mfd_viewport_size - 1, mfd_viewport_size - 1, mfd_viewport_size - 1, clear_mfd_colour);
	draw_line(mfd_viewport_size - 1, 0, mfd_viewport_size - 1, mfd_viewport_size - 1, clear_mfd_colour);

	map_up_to_date = TRUE;
}
Exemple #10
0
static void initialize_colours(void)
{
	//VJ 030423 TSd render mod
	set_rgb_colour (MFD_COLOUR1,              40, 40,  40, 255);
	set_rgb_colour (MFD_COLOUR2,              0, 200,   0, 255);
	set_rgb_colour (MFD_COLOUR3,              0, 176,   0, 255);
	set_rgb_colour (MFD_COLOUR4,              0, 151,   0, 255);
	set_rgb_colour (MFD_COLOUR5,              0, 128,   0, 255);
	set_rgb_colour (MFD_EO_TEXT_COLOUR,      220,200,  56, 255);
	set_rgb_colour (MFD_CONTOUR_COLOUR,     110,  80,  60, 255);
	set_rgb_colour (MFD_RIVER_COLOUR,       150, 160, 225, 255);
	set_rgb_colour (MFD_ROAD_COLOUR,         50,  35,  25, 255);
	set_rgb_colour (MFD_BACKGROUND_COLOUR,  220, 220, 200, 255);
	set_rgb_colour (MFD_CLEAR_COLOUR,         0,   0,   0,   0);

	set_rgb_colour (MFD_COLOUR_BLUE,          60, 160, 255,  255);
	set_rgb_colour (MFD_COLOUR_DARK_BLUE,	   0,   0,  96,  255);
	set_rgb_colour (MFD_COLOUR_YELLOW,       230, 230,  40,  255);
	set_rgb_colour (MFD_COLOUR_DARK_YELLOW,  165, 165,  30,  255);
	set_rgb_colour (MFD_COLOUR_RED,          230,  50,  20,  255);
	set_rgb_colour (MFD_COLOUR_DARK_RED,	 148,  32,   0,  255);
	set_rgb_colour (MFD_COLOUR_CYAN,          60, 255, 230,  255);

	set_rgb_colour (clear_mfd_colour, 220, 220, 200, 255);

	Initialise_TSD_render_terrain();
	set_tsd_map_contour_colour(MFD_CONTOUR_COLOUR);
	set_tsd_map_river_colour(MFD_RIVER_COLOUR);
	set_tsd_map_road_colour(MFD_ROAD_COLOUR);
}
Exemple #11
0
void draw_hind_virtual_cockpit_ort_symbology(void)
{
	int
		mfd_screen_x_min, mfd_screen_y_min, mfd_screen_x_max, mfd_screen_y_max;

	rgb_colour
		background_colour,
		symbology_colour;

	set_3d_active_environment (main_3d_env);

	//
	// set up MFD 2D environment
	//

	set_2d_active_environment (mfd_env);
	set_2d_window (mfd_env, MFD_WINDOW_X_MIN, MFD_WINDOW_Y_MIN, MFD_WINDOW_X_MAX, MFD_WINDOW_Y_MAX);

	mfd_viewport_size = EO_VIEWPORT_SIZE;

	mfd_viewport_x_org = EO_VIEWPORT_SIZE * 0.5;
	mfd_viewport_y_org = EO_VIEWPORT_SIZE * 0.5;

	mfd_viewport_x_min = 0.0;
	mfd_viewport_y_min = 0.0;

	mfd_viewport_x_max = EO_VIEWPORT_SIZE - 0.001;
	mfd_viewport_y_max = EO_VIEWPORT_SIZE - 0.001;

	set_2d_viewport (mfd_env, mfd_viewport_x_min, mfd_viewport_y_min, mfd_viewport_x_max, mfd_viewport_y_max);

	mfd_screen_x_min = full_screen_x_mid - ((256.0 / (640.0 * 2.0)) * full_screen_width);
	mfd_screen_y_min = full_screen_y_mid - ((256.0 / (480.0 * 2.0)) * full_screen_height);

	mfd_screen_x_max = full_screen_x_mid + ((256.0 / (640.0 * 2.0)) * full_screen_width) - 0.001;
	mfd_screen_y_max = full_screen_y_mid + ((256.0 / (480.0 * 2.0)) * full_screen_height) - 0.001;

	i_translate_3d = mfd_screen_x_min;
	j_translate_3d = mfd_screen_y_min;

	i_scale_3d = 640.0 / full_screen_width;
	j_scale_3d = 480.0 / full_screen_height;

	symbology_colour = MFD_EO_TEXT_COLOUR;
	set_rgb_colour(background_colour, 255, 255, 255, 0);

	set_system_texture_screen (eo_texture_screen, TEXTURE_INDEX_AVCKPT_DISPLAY_RHS_MFD);

	draw_symbology_to_texture(
		eo_texture_screen,
		TEXTURE_INDEX_AVCKPT_DISPLAY_RHS_MFD,
		mfd_viewport_size,
		mfd_viewport_size,
		mfd_screen_x_min,
		mfd_screen_y_min,
		mfd_screen_x_max,
		mfd_screen_y_max,
		symbology_colour,
		background_colour,
		draw_hind_ort_symbology);
}