Пример #1
0
		private void RefreshFiles()
		{
			if (_resourceLoader == null)
			{
				return;
			}

			_resourceLoader.ClearTextureCache();
			_mainPanel._listFiles.Items.Clear();

			var index = _mainPanel._comboResourceType.SelectedIndex;

			if (_typeEntries == null)
			{
				_typeEntries = new List<DirEntry>();
				foreach (var pair in _resourceLoader.Entries)
				{
					foreach (var entry in pair.Value)
					{
						var add = index == 0 && entry.Name.EndsWith("_DS") ||
							index == 1 && (entry.Name.EndsWith("_X2") || entry.Name.EndsWith("_X3")) ||
							(index == 2 && entry.Name.EndsWith("_CH") && !entry.Name.StartsWith("CH")) ||
							(index == 3 && entry.Name.EndsWith("_CH") && entry.Name.StartsWith("CH")) ||
							(index == 4 && entry.Name.EndsWith("_SN"));

						if (add)
						{
							if (index == 4)
							{
								// Skip empty scenarios
								var scenario = _resourceLoader.LoadScenario(entry);
								if (!scenario.HasTalk)
								{
									continue;
								}
							}

							_typeEntries.Add(entry);
						}
					}
				}

				// Sort
				_typeEntries = (from DirEntry a in _typeEntries orderby a.Name select a).ToList();
			}

			if (!string.IsNullOrEmpty(_mainPanel._textFilter.Text))
			{
				Debug.WriteLine(_mainPanel._textFilter.Text);
			}

			// Add to listbox
			foreach (var a in _typeEntries)
			{
				if (!string.IsNullOrEmpty(_mainPanel._textFilter.Text))
				{
					var name = Path.GetFileNameWithoutExtension(a.Name);
					if (name.IndexOf(_mainPanel._textFilter.Text, StringComparison.InvariantCultureIgnoreCase) == -1)
					{
						continue;
					}
				}

				_mainPanel._listFiles.Items.Add(new ListItem
				{
					Text = a.Name,
					Tag = a
				});
			}

/*			if (index == 4)
			{
				int? idx = null;
				for (var i = 0; i < _mainPanel._listFiles.Items.Count; ++i)
				{
					if (_mainPanel._listFiles.Items[i].Text.Contains("R2412"))
					{
						idx = i;
						break;
					}
				}

				if (idx != null)
				{
					_mainPanel._listFiles.SelectedIndex = idx.Value;
				}
			}*/
		}