mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-24 16:02:54 +08:00
104 lines
2.9 KiB
C#
104 lines
2.9 KiB
C#
using CodeWalker.GameFiles;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace CodeWalker.Project.Panels
|
|
{
|
|
public partial class EditAudioFilePanel : ProjectPanel
|
|
{
|
|
public ProjectForm ProjectForm;
|
|
public RelFile CurrentFile { get; set; }
|
|
|
|
private bool populatingui = false;
|
|
|
|
|
|
public EditAudioFilePanel(ProjectForm owner)
|
|
{
|
|
ProjectForm = owner;
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SetFile(RelFile file)
|
|
{
|
|
CurrentFile = file;
|
|
Tag = file;
|
|
UpdateFormTitle();
|
|
UpdateUI();
|
|
}
|
|
|
|
private void UpdateFormTitle()
|
|
{
|
|
Text = CurrentFile?.Name ?? "";
|
|
}
|
|
|
|
private void UpdateUI()
|
|
{
|
|
if (CurrentFile == null)
|
|
{
|
|
populatingui = true;
|
|
FileTypeComboBox.Text = string.Empty;
|
|
UnkVersionUpDown.Value = 0;
|
|
FileLocationTextBox.Text = string.Empty;
|
|
ProjectPathTextBox.Text = string.Empty;
|
|
populatingui = false;
|
|
}
|
|
else
|
|
{
|
|
populatingui = true;
|
|
FileTypeComboBox.Text = CurrentFile.RelType.ToString();
|
|
UnkVersionUpDown.Value = CurrentFile.DataUnkVal;
|
|
var project = ProjectForm?.CurrentProjectFile;
|
|
FileLocationTextBox.Text = CurrentFile.RpfFileEntry?.Path ?? CurrentFile.FilePath;
|
|
ProjectPathTextBox.Text = (project != null) ? project.GetRelativePath(CurrentFile.FilePath) : CurrentFile.FilePath;
|
|
populatingui = false;
|
|
}
|
|
}
|
|
|
|
private void ProjectItemChanged()
|
|
{
|
|
if (CurrentFile != null)
|
|
{
|
|
ProjectForm.SetAudioFileHasChanged(true);
|
|
}
|
|
}
|
|
|
|
private void FileTypeComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (populatingui) return;
|
|
if (CurrentFile == null) return;
|
|
|
|
var type = RelDatFileType.Dat151;
|
|
if (Enum.TryParse(FileTypeComboBox.Text, out type))
|
|
{
|
|
if (CurrentFile.RelType != type)
|
|
{
|
|
CurrentFile.RelType = type;
|
|
|
|
ProjectItemChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void UnkVersionUpDown_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
if (populatingui) return;
|
|
if (CurrentFile == null) return;
|
|
|
|
byte unk = (byte)UnkVersionUpDown.Value;
|
|
if (CurrentFile.DataUnkVal != unk)
|
|
{
|
|
CurrentFile.DataUnkVal = unk;
|
|
|
|
ProjectItemChanged();
|
|
}
|
|
}
|
|
}
|
|
}
|