@@ -331,15 +331,15 @@ await Task.Run((Func<Task>)(async () =>
331
331
{
332
332
Signature = br . ReadInt32 ( ) ,
333
333
FileSize = br . ReadInt16 ( ) ,
334
- ColorSetDataSize = br . ReadUInt16 ( ) ,
335
- MaterialDataSize = br . ReadUInt16 ( ) ,
336
- TexturePathsDataSize = br . ReadUInt16 ( ) ,
337
- TextureCount = br . ReadByte ( ) ,
338
- MapCount = br . ReadByte ( ) ,
339
- ColorSetCount = br . ReadByte ( ) ,
340
- UnknownDataSize = br . ReadByte ( ) ,
341
- MTRLPath = mtrlPath
342
334
} ;
335
+ var colorSetDataSize = br . ReadUInt16 ( ) ;
336
+ xivMtrl . MaterialDataSize = br . ReadUInt16 ( ) ;
337
+ xivMtrl . TexturePathsDataSize = br . ReadUInt16 ( ) ;
338
+ xivMtrl . TextureCount = br . ReadByte ( ) ;
339
+ xivMtrl . MapCount = br . ReadByte ( ) ;
340
+ xivMtrl . ColorSetCount = br . ReadByte ( ) ;
341
+ xivMtrl . UnknownDataSize = br . ReadByte ( ) ;
342
+ xivMtrl . MTRLPath = mtrlPath ;
343
343
344
344
var pathSizeList = new List < int > ( ) ;
345
345
@@ -453,7 +453,7 @@ await Task.Run((Func<Task>)(async () =>
453
453
454
454
xivMtrl . ColorSetData = new List < Half > ( ) ;
455
455
xivMtrl . ColorSetExtraData = null ;
456
- if ( xivMtrl . ColorSetDataSize > 0 )
456
+ if ( colorSetDataSize > 0 )
457
457
{
458
458
// Color Data is always 512 (6 x 14 = 64 x 8bpp = 512)
459
459
var colorDataSize = 512 ;
@@ -464,7 +464,7 @@ await Task.Run((Func<Task>)(async () =>
464
464
}
465
465
466
466
// If the color set is 544 in length, it has an extra 32 bytes at the end
467
- if ( xivMtrl . ColorSetDataSize == 544 )
467
+ if ( colorSetDataSize == 544 )
468
468
{
469
469
xivMtrl . ColorSetExtraData = br . ReadBytes ( 32 ) ;
470
470
}
@@ -594,16 +594,14 @@ public Task<XivTex> MtrlToXivTex(XivMtrl xivMtrl, TexTypePath ttp)
594
594
/// <param name="race">The selected race for the item</param>
595
595
public void SaveColorSetExtraData ( IItem item , XivMtrl xivMtrl , DirectoryInfo saveDirectory , XivRace race )
596
596
{
597
- if ( xivMtrl . ColorSetExtraData != null )
598
- {
599
- var path = IOUtil . MakeItemSavePath ( item , saveDirectory , race ) ;
597
+ var toWrite = xivMtrl . ColorSetExtraData != null ? xivMtrl . ColorSetExtraData : new byte [ 32 ] ;
598
+ var path = IOUtil . MakeItemSavePath ( item , saveDirectory , race ) ;
600
599
601
- Directory . CreateDirectory ( path ) ;
600
+ Directory . CreateDirectory ( path ) ;
602
601
603
- var savePath = Path . Combine ( path , Path . GetFileNameWithoutExtension ( xivMtrl . MTRLPath ) + ".dat" ) ;
602
+ var savePath = Path . Combine ( path , Path . GetFileNameWithoutExtension ( xivMtrl . MTRLPath ) + ".dat" ) ;
604
603
605
- File . WriteAllBytes ( savePath , xivMtrl . ColorSetExtraData ) ;
606
- }
604
+ File . WriteAllBytes ( savePath , toWrite ) ;
607
605
}
608
606
609
607
@@ -757,6 +755,7 @@ public byte[] CreateMtrlFile(XivMtrl xivMtrl, IItem item)
757
755
// Write the actual string list (including padding).
758
756
mtrlBytes . AddRange ( stringListBytes ) ;
759
757
758
+ // Don't know what these (4) bytes do, but hey, whatever.
760
759
mtrlBytes . AddRange ( xivMtrl . Unknown2 ) ;
761
760
762
761
foreach ( var colorSetHalf in xivMtrl . ColorSetData )
0 commit comments