Ejemplo n.º 1
0
void create_client_pilot (void)
{
	client_pilot_request_data
		pilot_data;

	ASSERT (get_comms_model () == COMMS_MODEL_CLIENT);

	//
	// pack required gunship data
	//

	strcpy (pilot_data.name, get_player_log_name (get_current_player_log ()));
	pilot_data.side = get_global_gunship_side ();
	pilot_data.rank = get_player_log_rank (get_global_gunship_side (), get_current_player_log ());
	pilot_data.sub_type = ENTITY_SUB_TYPE_PILOT_PILOT;
	pilot_data.unique_id = direct_play_get_player_id ();
	pilot_data.difficulty = get_global_difficulty_level ();

	//
	// Send request
	//

	send_packet (get_server_id (), PACKET_TYPE_CLIENT_PILOT_REQUEST, (unsigned char *) &pilot_data, sizeof (client_pilot_request_data), SEND_TYPE_PERSONAL);

	// turn off NEXT button while Pilot entity is being created client_server
	if (get_comms_model () == COMMS_MODEL_CLIENT)
	{

		set_display_gunship_buttons (FALSE, "ENGAGE");
	}
}
Ejemplo n.º 2
0
int award_aviator_wings (int side)
{
	player_log_type
		*player;

	int
		*medals,
		medal_type,
		award_medal;

	float
		hours;

	ASSERT ((side >= 0) && (side <= NUM_ENTITY_SIDES));

	award_medal = 1;

	player = get_current_player_log ();

	medals = player->side_log[side].medals;

	hours = get_player_log_flying_seconds (side, player) / ONE_HOUR;

	if (hours >= MEDAL_HOURS_TO_BECOME_MASTER_AVIATOR)
	{
		medal_type = MEDAL_MASTER_AVIATOR;
	}
	else if (hours >= MEDAL_HOURS_TO_BECOME_SENIOR_AVIATOR)
	{
		medal_type = MEDAL_SENIOR_AVIATOR;
	}
	else if (hours >= MEDAL_HOURS_TO_BECOME_ARMY_AVIATOR)
	{
		medal_type = MEDAL_ARMY_AVIATOR;
	}
	else
	{
		award_medal = 0;
	}

	// aviator badges only awarded once

	if (award_medal)
	{
		if (medals [medal_type])
		{
			return MEDAL_TYPE_NONE;
		}
		else
		{
			medals [medal_type] = 1;

			return medal_type;
		}
	}
	else
	{
		return MEDAL_TYPE_NONE;
	}
}
Ejemplo n.º 3
0
int award_player_rank (int side)
{
	player_log_type
		*player;

	int
		new_rank;

	ASSERT ((side >= 0) && (side <= NUM_ENTITY_SIDES));

	player = get_current_player_log ();

	new_rank = get_player_rank_from_points (player->side_log[side].experience);

	if (new_rank != player->side_log[side].rank)
	{
		player->side_log[side].rank = new_rank;

		return new_rank;
	}
	else
	{
		return PILOT_RANK_NONE;
	}
}
Ejemplo n.º 4
0
int award_valour_medal (int side, int points)
{

	player_log_type
		*player;

	player_medal_criteria
		*criteria;

	int
		*medals,
		award,
		i;

	medal_types
		medal_type;

	// find out which medal the mission points qualify the player for

	ASSERT ((side >= 0) && (side <= NUM_ENTITY_SIDES));

	i = award = 0;

	player = get_current_player_log ();

	medals = player->side_log[side].medals;

	criteria = valour_medal_award_criteria;

	medal_type = MEDAL_MEDAL_OF_HONOUR;

	while ((!award) && (i < NUMBER_OF_VALOUR_MEDALS))
	{
		if (points > criteria->points_req)
		{
			award = query_award_medal (player, medals, criteria, medal_type, side);
		}

		if (!award)
		{
			i++;

			criteria++;

			medal_type--;
		}
	}

	if (award)
	{
		medals [medal_type] += 1;

		return medal_type;
	}
	else
	{
		return MEDAL_TYPE_NONE;
	}
}
Ejemplo n.º 5
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;
		}
	}
}
Ejemplo n.º 6
0
int award_air_medal_medal (int side, int success)
{
	player_log_type
		*player;

	int
		*medals;

	ASSERT ((side >= 0) && (side <= NUM_ENTITY_SIDES));

	player = get_current_player_log ();

	medals = player->side_log[side].medals;

	if (success)
	{
		player->side_log [side].air_medal_counter++;

		if (player->side_log [side].air_medal_counter >= NUM_NEEDED_TO_AWARD_AIR_MEDAL)
		{
			medals [MEDAL_AIR_MEDAL] += 1;

			player->side_log [side].air_medal_counter = 0;

			#if DEBUG_MODULE

			debug_filtered_log ("Awarded Air Medal, reset counter");

			#endif

			return MEDAL_AIR_MEDAL;
		}
		else
		{
			#if DEBUG_MODULE

			debug_filtered_log ("Air Medal Not Awarded (count = %d)", player->side_log[side].air_medal_counter);

			#endif

			return MEDAL_TYPE_NONE;
		}
	}
	else
	{
		#if DEBUG_MODULE

		debug_filtered_log ("Air Medal Not Awarded: resetting	air_medal_counter");

		#endif

		player->side_log [side].air_medal_counter = 0;
	}

	return MEDAL_TYPE_NONE;
}
Ejemplo n.º 7
0
void create_server_pilot (void)
{
	entity
		*en;
		
	ASSERT (get_comms_model () == COMMS_MODEL_SERVER);

	en = create_new_pilot_entity
				(
					get_player_log_name (get_current_player_log ()),
					get_global_gunship_side (),
					get_player_log_rank (get_global_gunship_side (), get_current_player_log ()),
					ENTITY_SUB_TYPE_PILOT_PILOT,
					direct_play_get_player_id (),
					get_global_difficulty_level ()
				);

	set_pilot_entity (en);
}
Ejemplo n.º 8
0
int award_purple_heart_medal (int side)
{
	player_log_type
		*player;

	int
		*medals,
		damage;

	ASSERT ((side >= 0) && (side <= NUM_ENTITY_SIDES));

	player = get_current_player_log ();

	medals = player->side_log[side].medals;

	// get helicopter damage

	damage = get_dynamics_damage_type (DYNAMICS_DAMAGE_MAIN_ROTOR |
													DYNAMICS_DAMAGE_TAIL_ROTOR |
													DYNAMICS_DAMAGE_LEFT_ENGINE |
													DYNAMICS_DAMAGE_RIGHT_ENGINE |
													DYNAMICS_DAMAGE_LEFT_ENGINE_FIRE |
													DYNAMICS_DAMAGE_RIGHT_ENGINE_FIRE |
													DYNAMICS_DAMAGE_LOW_HYDRAULICS |
													DYNAMICS_DAMAGE_LOW_OIL_PRESSURE |
													DYNAMICS_DAMAGE_HIGH_OIL_PRESSURE |
													DYNAMICS_DAMAGE_STABILISER);

	if ((get_gunship_entity ()) && (get_local_entity_int_value (get_gunship_entity (), INT_TYPE_ALIVE)))
	{
		if (damage)
		{
			medals [MEDAL_PURPLE_HEART] += 1;

			#if DEBUG_MODULE

			debug_filtered_log ("Awarded Purple Heart Medal");

			#endif

			return MEDAL_PURPLE_HEART;
		}
	}

	#if DEBUG_MODULE

	debug_filtered_log ("Purple Heart Medal Not Awarded");

	#endif

	return MEDAL_TYPE_NONE;
}
Ejemplo n.º 9
0
void highlight_russian_medal_info (ui_object *obj, void *arg)
{

	player_log_type
		*player;

	char
		name_text [128],
		info_text [128];

	int
		medal_number,
		medal_count;

	player = get_current_player_log ();

	medal_number = get_ui_object_item_number (obj);

	medal_count = player->side_log [player_log_current_side].medals [medal_number];

	if (	(medal_number != MEDAL_MASTER_AVIATOR) &&
			(medal_number != MEDAL_SENIOR_AVIATOR) &&
			(medal_number != MEDAL_ARMY_AVIATOR) )
	{
		sprintf (name_text, "(%d) %s", medal_count, russian_medal_info_array [medal_number].name);
	}
	else
	{
		sprintf (name_text, "%s", russian_medal_info_array [medal_number].name);
	}

	sprintf (info_text, "%s", russian_medal_info_array [medal_number].info);

	if ((int) arg == BUTTON_STATE_DOWN)
	{
		set_ui_object_text (medals_text_name, name_text);

		set_ui_object_text (medals_text_info, info_text);
	}
	else
	{
		set_ui_object_text (medals_text_name, "");

		set_ui_object_text (medals_text_info, "");
	}

}
Ejemplo n.º 10
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);
	}
}
Ejemplo n.º 11
0
void award_campaign_medal (int side, int medal)
{

	player_log_type
		*player;

	int
		*medals;

	ASSERT ((side >= 0) && (side <= NUM_ENTITY_SIDES));

	player = get_current_player_log ();

	medals = player->side_log [side].medals;

	if ((medal > MEDAL_TYPE_NONE) && (medal <= MEDAL_TAIWAN))
	{
		medals [medal] += 1;
	}

	#if DEBUG_MEDALS

	// clear medals
	memset (medals, 0, sizeof (int) * (NUM_MEDAL_TYPES - 1));

	if (check_key (SDLK_F1))
	{
		medals [MEDAL_SAUDI] = 1;
	}

	if (check_key (SDLK_F2))
	{
		medals [MEDAL_LEBANON] = 1;
	}

	if (check_key (SDLK_F3))
	{
		medals [MEDAL_TAIWAN] = 1;
	}

	#endif
}
Ejemplo n.º 12
0
void recursive_check_campaign_files (const char *directory, session_list_data_type **list, const char *extension)
{

	session_list_types
		session_type;

	directory_file_list
		*warzone_file,
		*directory_listing;

	unsigned int
		i,
		upper;

	int
		value,
		valid_file,
		season;

	static char
		operator_ [64],
		variable [64],
		temp_warzone_name [128],
		*warzone_name,
		warzone_path [1024],
		directory_search_path [1024];

	//
	// First, go through any files in this directory.
	//

	sprintf (directory_search_path, "%s\\*.%s", directory, extension);

	// Jabberwock 0400201 Session filter revised

	//VJ 050123 small bug fix: check for lowercase AND uppercase
	if ((strstr(directory, "CAMP01") || strstr(directory, "camp01")) && command_line_session_filter)
	{
		sprintf(warzone_path, "%s\\*.chc", directory);

		warzone_file = get_first_directory_file(warzone_path);

		sprintf(temp_warzone_name, "%s", get_directory_file_filename (warzone_file));

	//  Vadim 051120, if chc filename has spaces, capitalize every word

		for (upper=1, i = 0; i < (strlen (temp_warzone_name) - 4); i++)
		{
			if (upper)
			{
				temp_warzone_name[i] = toupper (temp_warzone_name[i]);
				upper=0;
			}
			else if (isspace(temp_warzone_name[i])) {
					upper=1;
			}
			else
			{
				temp_warzone_name[i] = tolower (temp_warzone_name[i]);
			}
		}

		temp_warzone_name[i] = '\0';

		for (i = 0; i < (strlen (directory) - 7); i++)
		{
			warzone_path[i] = directory[i];
		}

		warzone_path[i] = '\0';


		add_session (temp_warzone_name, SESSION_LIST_TYPE_FILTER, 1, NULL, warzone_path, NULL, NULL, temp_warzone_name, list, NULL, SESSION_SEASON_INVALID);
	}


	directory_listing = get_first_directory_file (directory_search_path);

	// JB 030313 Enable running out of separate directories
	if (!directory_listing)
	{
		char fn[1024];
		fn[0] = 0;
		strcpy(fn, comanche_hokum_installation_path);
		strcat(fn, "\\common\\");
		strcat(fn, directory_search_path);

		directory_listing = get_first_directory_file ( fn );
	}

	if (directory_listing)
	{

		valid_file = TRUE;

		while (valid_file)
		{

			session_type = SESSION_LIST_TYPE_HOST;

			if (get_directory_file_type (directory_listing) == DIRECTORY_FILE_TYPE_FILE)
			{

				FILE
					*file_ptr;

				file_tags
					tag;

				int
					end_flag;

				static char
					*ptr,
					*last_ptr,
					path [1024],
					full_filename [1024],
					campaign_title [1024],
					campaign_directory [32],
					campaign_filename [1024];

				//
				// Add campaign file to list
				//

				sprintf (full_filename, "%s\\%s", directory, get_directory_file_filename (directory_listing));

				file_ptr = safe_fopen (full_filename, "r");

				end_flag = FALSE;

				warzone_name = NULL;

				season = SESSION_SEASON_INVALID;

				while (!end_flag)
				{

					tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG);

					switch (tag)
					{

						case FILE_TAG_WARZONE_NAME:
						{

							get_next_file_string (file_ptr, temp_warzone_name, sizeof (temp_warzone_name));

							warzone_name = temp_warzone_name;

							break;
						}

						case FILE_TAG_TITLE:
						{

							get_next_file_string (file_ptr, campaign_title, sizeof (campaign_title));

							//
							// Create data path, ie strip off the last directory name
							// N.B. valid data directories are in any directory below 'MAPS'.
							//

							strcpy (path, directory);

							ptr = strstr (path, "\\maps\\");

							ptr += strlen ("\\maps\\");

							while (ptr = strstr (ptr, "\\"))
							{

								ptr += strlen ("\\");

								last_ptr = ptr;
							}

							sprintf (campaign_directory, "%s", last_ptr);

							sprintf (campaign_filename, "%s", get_directory_file_filename (directory_listing));

							last_ptr -= strlen ("\\");

							*last_ptr = '\0';

							break;
						}

						case FILE_TAG_LANGUAGE_TEXT_START:
						{

							// skip script till correct language

							while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
							{

								#if (LANGUAGE == LANGUAGE_FRENCH)

								if (tag == FILE_TAG_LANGUAGE_FRENCH)
								{

									break;
								}
								#elif (LANGUAGE == LANGUAGE_GERMAN)

								if (tag == FILE_TAG_LANGUAGE_GERMAN)
								{

									break;
								}
								#elif (LANGUAGE == LANGUAGE_ITALIAN)

								if (tag == FILE_TAG_LANGUAGE_ITALIAN)
								{

									break;
								}
								#elif (LANGUAGE == LANGUAGE_SPANISH)

								if (tag == FILE_TAG_LANGUAGE_SPANISH)
								{

									break;
								}
								#else //LANGUAGE_ENGLISH

								if (tag == FILE_TAG_LANGUAGE_ENGLISH)
								{

									break;
								}
								#endif

								if (tag == FILE_TAG_LANGUAGE_TEXT_STOP)
								{

									break;
								}
							}

							break;
						}

						case FILE_TAG_LANGUAGE_TEXT_END:
						{

							// skip script till end of languages

							while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
							{

								if (tag == FILE_TAG_LANGUAGE_TEXT_STOP)
								{

									break;
								}
							}

							break;
						}

						case FILE_TAG_CAMPAIGN_DATA:
						{

							while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
							{

								if (tag == FILE_TAG_END)
								{

									break;
								}
							}

							break;
						}

						case FILE_TAG_SAVED_CAMPAIGN:
						{

							session_type = SESSION_LIST_TYPE_RESTORE;

							break;
						}

						case FILE_TAG_IF:
						{

							ASSERT (get_current_player_log ());

							get_next_file_word (file_ptr, variable, sizeof (variable));

							get_next_file_word (file_ptr, operator_, sizeof (operator_));

							value = get_next_file_int (file_ptr);

							if (!if_file_tag_variable (variable, operator_, value))
							{

								// skip script till endif

								while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
								{

									if ((tag == FILE_TAG_ENDIF) || (tag == FILE_TAG_END))
									{

										break;
									}
								}
							}

							break;
						}

						case FILE_TAG_ENDIF:
						{

							break;
						}

						case FILE_TAG_SEASON:
						{
							// 15JUN09 Casm retrieving season earlier
							season = get_next_file_int (file_ptr);

							break;
						}

						case FILE_TAG_CAMPAIGN_REQUIRES_APACHE_HAVOC:
						{
							debug_log("session filter: campaign_title %s", campaign_title);
							// VJ 050123 aphavoc install hack, do not close map if it exists but EEAH is not offcially installed
							if (!global_aphavoc_maps)
							{
								if (!get_global_apache_havoc_installed ())
								{

									end_flag = TRUE;

									debug_log ("SESSION: Campaign %s required Apache-Havoc to be installed", campaign_title);

									break;
								}
							}
						}

						case FILE_TAG_END:
						case FILE_TAG_UNKNOWN:
						{

							end_flag = TRUE;

							if ((!command_line_session_filter) || (strcmp(session_filter_value, "root") != 0))
							{
								// 15JUN09 Casm retrieving season earlier
								const char
									*title;
								// if host get the Translated campaign name
								// not hosted game so just use the name
								title = session_type == SESSION_LIST_TYPE_HOST ? get_trans (campaign_title) :  campaign_title;
								if (session_type == SESSION_LIST_TYPE_HOST || (session_type == SESSION_LIST_TYPE_MASTER) || (session_type == SESSION_LIST_TYPE_RESTORE))
								{
									add_session (title, session_type, 1, NULL, path, campaign_directory, campaign_filename, warzone_name, list, NULL, season);
								}
							}
							// Jabberwock 0400201 ends

							break;
						}
					}
				}

				fclose (file_ptr);
			}

			valid_file = get_next_directory_file (directory_listing);
		}

		destroy_directory_file_list (directory_listing);
	}

	//
	// Next, go through any directories, recursing into them.
	//

	sprintf (directory_search_path, "%s\\*", directory);

	directory_listing = get_first_directory_file (directory_search_path);

	// JB 030313 Enable running out of separate directories
	if (!directory_listing)
	{
		char fn[1024];
		fn[0] = 0;
		strcpy(fn, comanche_hokum_installation_path);
		strcat(fn, "\\common\\");
		strcat(fn, directory_search_path);

		directory_listing = get_first_directory_file ( fn );
	}

	if (directory_listing)
	{

		valid_file = TRUE;

		while (valid_file)
		{

			if (get_directory_file_type (directory_listing) == DIRECTORY_FILE_TYPE_DIRECTORY)
			{

				if ((strcmp (get_directory_file_filename (directory_listing), ".") != 0) &&
						(strcmp (get_directory_file_filename (directory_listing), "..") != 0))
				{

					char
						full_directory [1024];

					//
					// Create the full directory name
					//

					sprintf (full_directory, "%s\\%s", directory, get_directory_file_filename (directory_listing));

					//
					// Recurse into this directory
					//

					recursive_check_campaign_files (full_directory, list, extension);
				}
			}

			valid_file = get_next_directory_file (directory_listing);
		}

		destroy_directory_file_list (directory_listing);
	}
}
Ejemplo n.º 13
0
int combat_zone_read_text (void)
{

	ui_object
		*ui_line,
		*destroy_ui_line;

	int
		long_text_flag,
		value,
		line_count;

	FILE
		*file_ptr;

	char
		variable [64],
		operator_ [64],
		line [1024],
		filename [1024];

	file_tags
		tag;

	ui_line = get_ui_object_child (combat_zone_text_area);

	while (ui_line)
	{

		destroy_ui_line = ui_line;

		ui_line = get_ui_object_next (ui_line);

		destroy_ui_object (destroy_ui_line);
	}

	//
	//
	//

	line_count = 0;

	sprintf (filename, "%s\\%s\\%s", current_game_session->data_path, current_game_session->campaign_directory, current_game_session->campaign_filename);

	file_ptr = safe_fopen (filename, "r");

	long_text_flag = FALSE;

	while (TRUE)
	{

		tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG);

		switch (tag)
		{

			case FILE_TAG_LANGUAGE_TEXT_START:
			{

				get_next_file_word (file_ptr, operator_, sizeof (operator_));

				// skip script till correct language

				while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
				{

					#if (LANGUAGE == LANGUAGE_FRENCH)

					if (tag == FILE_TAG_LANGUAGE_FRENCH)
					{

						break;
					}
					#elif (LANGUAGE == LANGUAGE_GERMAN)

					if (tag == FILE_TAG_LANGUAGE_GERMAN)
					{

						break;
					}
					#elif (LANGUAGE == LANGUAGE_ITALIAN)

					if (tag == FILE_TAG_LANGUAGE_ITALIAN)
					{

						break;
					}
					#elif (LANGUAGE == LANGUAGE_SPANISH)

					if (tag == FILE_TAG_LANGUAGE_SPANISH)
					{

						break;
					}
					#else //LANGUAGE_ENGLISH

					if (tag == FILE_TAG_LANGUAGE_ENGLISH)
					{

						break;
					}
					#endif

					if (tag == FILE_TAG_LANGUAGE_TEXT_STOP)
					{

						break;
					}
				}

				break;
			}

			case FILE_TAG_LANGUAGE_TEXT_END:
			{

				get_next_file_word (file_ptr, operator_, sizeof (operator_));

				// skip script till end of languages

				while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
				{

					if (tag == FILE_TAG_LANGUAGE_TEXT_STOP)
					{

						break;
					}
				}

				break;
			}

			case FILE_TAG_LONG_TEXT_START:
			{

				long_text_flag = TRUE;

				while (TRUE)
				{

					get_next_file_string (file_ptr, line, sizeof (line));

					if (strcmp ((line + 1), application_tag_strings [FILE_TAG_TEXT_END]) == 0)
					{

						break;
					}

					create_ui_object
								(
									UI_TYPE_TEXT,
									UI_ATTR_PARENT (combat_zone_text_area),
									UI_ATTR_POSITION (10, (line_count + 1) * 12),
									UI_ATTR_TEXT (line),
									UI_ATTR_FONT_TYPE (UI_FONT_ARIAL_10),
									UI_ATTR_END
							  );

					line_count ++;
				}

				break;
			}

			case FILE_TAG_IF:
			{

				ASSERT (get_current_player_log ());
	
				get_next_file_word (file_ptr, variable, sizeof (variable));

				get_next_file_word (file_ptr, operator_, sizeof (operator_));

				value = get_next_file_int (file_ptr);

				if (!if_file_tag_variable (variable, operator_, value))
				{

					// skip script till endif

					while (tag = (file_tags) get_next_file_tag (file_ptr, application_tag_strings, FILE_TAG_APPLICATION_LAST_TAG))
					{

						if ((tag == FILE_TAG_ENDIF) || (tag == FILE_TAG_END))
						{

							break;
						}
					}
				}

				break;
			}

			case FILE_TAG_ENDIF:
			{

				break;
			}

			case FILE_TAG_END:
			{

				fclose (file_ptr);

				return long_text_flag;
			}
		}
	}

	return FALSE;
}