/// <summary> /// Performs the base level alteration to the CMP file, without going through .rgsp files. /// </summary> /// <param name="data"></param> /// <param name="index"></param> /// <param name="modlist"></param> /// <returns></returns> private static async Task SetScalingParameter(RacialGenderScalingParameter data, IndexFile index = null, ModList modlist = null) { var cmp = await GetCharaMakeParameterSet(false, index, modlist); cmp.SetScalingParameter(data); await SaveCharaMakeParameterSet(cmp, index, modlist); }
/// <summary> /// Applies a custom .rgsp file to the main Human.CMP file. /// </summary> /// <param name="filePath"></param> /// <param name="index"></param> /// <param name="modlist"></param> /// <returns></returns> internal static async Task ApplyRgspFile(string filePath, IndexFile index = null, ModList modlist = null) { var _dat = new Dat(XivCache.GameInfo.GameDirectory); var rgspData = await _dat.GetType2Data(filePath, false, index, modlist); var rgsp = new RacialGenderScalingParameter(rgspData); await SetScalingParameter(rgsp, index, modlist); }
/// <summary> /// Saves a racial scaling entry to file. /// </summary> /// <param name="rgsp"></param> /// <param name=""></param> /// <returns></returns> public static async Task SaveScalingParameter(RacialGenderScalingParameter rgsp, string sourceApplication, IndexFile index = null, ModList modlist = null) { // Write the .rgsp file and let the DAT functions handle applying it. var rgspFilePath = GetRgspPath(rgsp.Race, rgsp.Gender); var bytes = rgsp.GetBytes(); var dummyItem = new XivGenericItemModel(); dummyItem.Name = rgsp.Race.GetDisplayName() + " - " + rgsp.Gender.ToString(); dummyItem.SecondaryCategory = "Racial Scaling"; var _dat = new Dat(XivCache.GameInfo.GameDirectory); await _dat.ImportType2Data(bytes, rgspFilePath, sourceApplication, dummyItem, index, modlist); }
public async Task Init() { _data = await CMP.GetScalingParameter(Race, Gender); Title = "Racial Settings - " + Race.GetDisplayName() + " - " + Gender.ToString(); TitleBox.Content = "Racial Settings: " + Race.GetDisplayName() + " - " + Gender.ToString(); MinHeightBox.Text = _data.MinSize.ToString(); MaxHeightBox.Text = _data.MaxSize.ToString(); MinTailBox.Text = _data.MinTail.ToString(); MaxTailBox.Text = _data.MaxTail.ToString(); MinBustX.Text = _data.BustMinX.ToString(); MinBustY.Text = _data.BustMinY.ToString(); MinBustZ.Text = _data.BustMinZ.ToString(); MaxBustX.Text = _data.BustMaxX.ToString(); MaxBustY.Text = _data.BustMaxY.ToString(); MaxBustZ.Text = _data.BustMaxZ.ToString(); if (Gender != XivGender.Female) { MinBustXLabel.Visibility = Visibility.Collapsed; MinBustYLabel.Visibility = Visibility.Collapsed; MinBustZLabel.Visibility = Visibility.Collapsed; MaxBustXLabel.Visibility = Visibility.Collapsed; MaxBustYLabel.Visibility = Visibility.Collapsed; MaxBustZLabel.Visibility = Visibility.Collapsed; MinBustX.Visibility = Visibility.Collapsed; MinBustY.Visibility = Visibility.Collapsed; MinBustZ.Visibility = Visibility.Collapsed; MaxBustX.Visibility = Visibility.Collapsed; MaxBustY.Visibility = Visibility.Collapsed; MaxBustZ.Visibility = Visibility.Collapsed; } ShowDialog(); }
/// <summary> /// Applies a custom .rgsp file to the main Human.CMP file. /// </summary> /// <param name="data"></param> /// <param name="index"></param> /// <param name="modlist"></param> /// <returns></returns> internal static async Task ApplyRgspFile(byte[] data, IndexFile index = null, ModList modlist = null) { var rgsp = new RacialGenderScalingParameter(data); await SetScalingParameter(rgsp, index, modlist); }