Skip to content

Commit

Permalink
Added option for No Palette Template in ClothingTable display (#67)
Browse files Browse the repository at this point in the history
* Added a 'None' option to PaletteTemplate display

* Clean up
  • Loading branch information
OptimShi authored May 13, 2022
1 parent a1855ff commit 29b266e
Showing 1 changed file with 27 additions and 20 deletions.
47 changes: 27 additions & 20 deletions ACViewer/View/ClothingTableList.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ public void OnClickClothingBase(ClothingTable clothing, uint fileID)
if (CurrentClothingItem.ClothingSubPalEffects.Count == 0)
return;

// Add 0 / Undefined PaletteTemplate. This will display the item with no PaletteTemplate/Shade. See 0x100002CE
PaletteTemplates.Items.Add(new ListBoxItem{ Content = "None", DataContext = (uint)0 });

foreach (var subPal in CurrentClothingItem.ClothingSubPalEffects.Keys.OrderBy(i => i))
{
// Set the DataContext so we can more easily reference it...
Expand Down Expand Up @@ -83,26 +86,29 @@ private void PaletteTemplates_OnClick(object sender, SelectionChangedEventArgs e
return;

uint palTemp = (uint)selectedItem.DataContext;
//uint palTemp = 0;
if (CurrentClothingItem.ClothingSubPalEffects.ContainsKey(palTemp) == false)
return;

int maxPals = 0;
for(var i = 0; i < CurrentClothingItem.ClothingSubPalEffects[palTemp].CloSubPalettes.Count; i++)
if (palTemp > 0)
{
var palSetID = CurrentClothingItem.ClothingSubPalEffects[palTemp].CloSubPalettes[i].PaletteSet;
var clothing = DatManager.PortalDat.ReadFromDat<PaletteSet>(palSetID);
if (clothing.PaletteList.Count > maxPals)
maxPals = clothing.PaletteList.Count;
//uint palTemp = 0;
if (CurrentClothingItem.ClothingSubPalEffects.ContainsKey(palTemp) == false)
return;

int maxPals = 0;
for (var i = 0; i < CurrentClothingItem.ClothingSubPalEffects[palTemp].CloSubPalettes.Count; i++)
{
var palSetID = CurrentClothingItem.ClothingSubPalEffects[palTemp].CloSubPalettes[i].PaletteSet;
var clothing = DatManager.PortalDat.ReadFromDat<PaletteSet>(palSetID);
if (clothing.PaletteList.Count > maxPals)
maxPals = clothing.PaletteList.Count;
}

if (maxPals > 1)
{
Shades.Maximum = maxPals - 1;
Shades.Visibility = Visibility.Visible;
Shades.IsEnabled = true;
MainWindow.Status.WriteLine($"Reading PaletteSets and found {maxPals} Shade options");
}
}

if (maxPals > 0)
{
Shades.Maximum = maxPals - 1;
Shades.IsEnabled = true;
MainWindow.Status.WriteLine($"Reading PaletteSets and found {maxPals} Shade options");
}

LoadModelWithClothingBase();
}

Expand All @@ -111,6 +117,7 @@ private void PaletteTemplates_OnClick(object sender, SelectionChangedEventArgs e
/// </summary>
private void ResetShadesSlider()
{
Shades.Visibility = Visibility.Hidden;
Shades.IsEnabled = false;
Shades.Value = 0;
Shades.Maximum = 1;
Expand All @@ -126,7 +133,7 @@ public void LoadModelWithClothingBase()

float shade = 0;

if (Shades.IsEnabled)
if (Shades.Visibility == Visibility.Visible)
{
shade = (float)(Shades.Value / Shades.Maximum);
if (float.IsNaN(shade))
Expand All @@ -144,7 +151,7 @@ public void LoadModelWithClothingBase()

private void Shades_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (Shades.IsEnabled == false)
if (Shades.Visibility == Visibility.Hidden)
return;

LoadModelWithClothingBase();
Expand Down

0 comments on commit 29b266e

Please sign in to comment.