Skip to content

Commit 7cb78b0

Browse files
committed
Merge remote-tracking branch 'org/develop' into develop
2 parents 2884787 + 10905dd commit 7cb78b0

File tree

8 files changed

+73
-18
lines changed

8 files changed

+73
-18
lines changed

xivModdingFramework/Items/Categories/Character.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ public async Task<List<string>> GetDecalPaths(XivDecalType type)
588588

589589
for (int i = 0; i < decalMax; i++)
590590
{
591-
var file = string.Format(XivStrings.EquipDecalFile, i);
591+
var file = string.Format(XivStrings.EquipDecalFile, i.ToString().PadLeft(3, '0'));
592592

593593
if (fileList.Contains(HashGenerator.GetHash(file)))
594594
{

xivModdingFramework/Items/Categories/UI.cs

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using System.Collections.Generic;
1818
using System.IO;
1919
using System.Text;
20+
using System.Linq;
2021
using System.Threading.Tasks;
2122
using xivModdingFramework.Cache;
2223
using xivModdingFramework.Exd.Enums;
@@ -190,7 +191,6 @@ public async Task<List<XivUi>> GetActionList()
190191
var actionCategoryExData = await _ex.ReadExData(XivEx.actioncategory);
191192

192193
var actionList = new List<XivUi>();
193-
194194
var actionNames = new List<string>();
195195

196196
await Task.Run(() => Parallel.ForEach(actionExData.Values, (action) =>
@@ -225,7 +225,8 @@ await Task.Run(() => Parallel.ForEach(actionExData.Values, (action) =>
225225
xivUi.IconNumber = iconNumber;
226226
}
227227

228-
if (xivUi.Name.Equals(string.Empty)) return;
228+
// The Cure icon is used as a placeholder so filter out all actions that aren't Cure but are using its icon as a placeholder
229+
if (xivUi.Name.Equals(string.Empty) || (!xivUi.Name.Equals("Cure") && xivUi.IconNumber == 405)) return;
229230
if (actionNames.Contains(xivUi.Name)) return;
230231

231232
var actionCategoryData = actionCategoryExData[actionCategory];
@@ -278,7 +279,8 @@ await Task.Run(() => Parallel.ForEach(generalActionExData.Values, (action) =>
278279

279280
var iconNumber = br.ReadUInt16();
280281

281-
if (iconNumber == 0) return;
282+
// Filter out any actions using placeholder icons
283+
if (iconNumber == 0 || iconNumber == 405) return;
282284

283285
br.BaseStream.Seek(20, SeekOrigin.Begin);
284286

@@ -288,6 +290,8 @@ await Task.Run(() => Parallel.ForEach(generalActionExData.Values, (action) =>
288290
xivUi.IconNumber = iconNumber;
289291
}
290292

293+
if (xivUi.Name.Equals(string.Empty)) return;
294+
291295
lock (actionLock)
292296
{
293297
actionNames.Add(xivUi.Name);
@@ -318,7 +322,8 @@ await Task.Run(() => Parallel.ForEach(buddyActionExData.Values, (action) =>
318322

319323
var iconNumber = br.ReadUInt16();
320324

321-
if (iconNumber == 0) return;
325+
// Filter out any actions using placeholder icons
326+
if (iconNumber == 0 || iconNumber == 405) return;
322327

323328
br.BaseStream.Seek(20, SeekOrigin.Begin);
324329

@@ -328,7 +333,7 @@ await Task.Run(() => Parallel.ForEach(buddyActionExData.Values, (action) =>
328333
xivUi.IconNumber = iconNumber;
329334
}
330335

331-
if (actionNames.Contains(xivUi.Name)) return;
336+
if (xivUi.Name.Equals(string.Empty)) return;
332337

333338
lock (actionLock)
334339
{
@@ -360,7 +365,8 @@ await Task.Run(() => Parallel.ForEach(companyActionExData.Values, (action) =>
360365

361366
var iconNumber = br.ReadUInt16();
362367

363-
if (iconNumber == 0) return;
368+
// Filter out any actions using placeholder icons
369+
if (iconNumber == 0 || iconNumber == 405) return;
364370

365371
br.BaseStream.Seek(20, SeekOrigin.Begin);
366372

@@ -370,7 +376,7 @@ await Task.Run(() => Parallel.ForEach(companyActionExData.Values, (action) =>
370376
xivUi.IconNumber = iconNumber;
371377
}
372378

373-
if (actionNames.Contains(xivUi.Name)) return;
379+
if (xivUi.Name.Equals(string.Empty)) return;
374380

375381
lock (actionLock)
376382
{
@@ -402,7 +408,8 @@ await Task.Run(() => Parallel.ForEach(craftActionExData.Values, (action) =>
402408

403409
var iconNumber = br.ReadUInt16();
404410

405-
if (iconNumber == 0) return;
411+
// Filter out any actions using placeholder icons
412+
if (iconNumber == 0 || iconNumber == 405) return;
406413

407414
br.BaseStream.Seek(60, SeekOrigin.Begin);
408415

@@ -412,7 +419,7 @@ await Task.Run(() => Parallel.ForEach(craftActionExData.Values, (action) =>
412419
xivUi.IconNumber = iconNumber;
413420
}
414421

415-
if (actionNames.Contains(xivUi.Name)) return;
422+
if (xivUi.Name.Equals(string.Empty)) return;
416423

417424
lock (actionLock)
418425
{
@@ -440,7 +447,8 @@ await Task.Run(() => Parallel.ForEach(eventActionExData.Values, (action) =>
440447

441448
var iconNumber = br.ReadUInt16();
442449

443-
if (iconNumber == 0) return;
450+
// Filter out any actions using placeholder icons
451+
if (iconNumber == 0 || iconNumber == 405) return;
444452

445453
br.BaseStream.Seek(16, SeekOrigin.Begin);
446454

@@ -452,7 +460,7 @@ await Task.Run(() => Parallel.ForEach(eventActionExData.Values, (action) =>
452460
xivUi.IconNumber = iconNumber;
453461
}
454462

455-
if (actionNames.Contains(xivUi.Name)) return;
463+
if (xivUi.Name.Equals(string.Empty)) return;
456464

457465
lock (actionLock)
458466
{
@@ -480,7 +488,8 @@ await Task.Run(() => Parallel.ForEach(emoteExData.Values, (action) =>
480488

481489
var iconNumber = br.ReadUInt16();
482490

483-
if (iconNumber == 0) return;
491+
// Filter out any actions using placeholder icons
492+
if (iconNumber == 0 || iconNumber == 405) return;
484493

485494
br.BaseStream.Seek(40, SeekOrigin.Begin);
486495

@@ -493,7 +502,7 @@ await Task.Run(() => Parallel.ForEach(emoteExData.Values, (action) =>
493502
xivUi.IconNumber = iconNumber;
494503
}
495504

496-
if (actionNames.Contains(xivUi.Name)) return;
505+
if (xivUi.Name.Equals(string.Empty)) return;
497506

498507
lock (actionLock)
499508
{
@@ -521,7 +530,8 @@ await Task.Run(() => Parallel.ForEach(markerExData.Values, (action) =>
521530

522531
var iconNumber = br.ReadUInt16();
523532

524-
if (iconNumber == 0) return;
533+
// Filter out any actions using placeholder icons
534+
if (iconNumber == 0 || iconNumber == 405) return;
525535

526536
var nameLength = action.Length - 6;
527537

@@ -531,7 +541,7 @@ await Task.Run(() => Parallel.ForEach(markerExData.Values, (action) =>
531541
xivUi.IconNumber = iconNumber;
532542
}
533543

534-
if (actionNames.Contains(xivUi.Name)) return;
544+
if (xivUi.Name.Equals(string.Empty)) return;
535545

536546
lock (actionLock)
537547
{
@@ -559,7 +569,8 @@ await Task.Run(() => Parallel.ForEach(fieldMarkerExData.Values, (action) =>
559569

560570
var iconNumber = br.ReadUInt16();
561571

562-
if (iconNumber == 0) return;
572+
// Filter out any actions using placeholder icons
573+
if (iconNumber == 0 || iconNumber == 405) return;
563574

564575
br.BaseStream.Seek(12, SeekOrigin.Begin);
565576

@@ -571,7 +582,7 @@ await Task.Run(() => Parallel.ForEach(fieldMarkerExData.Values, (action) =>
571582
xivUi.IconNumber = iconNumber;
572583
}
573584

574-
if (actionNames.Contains(xivUi.Name)) return;
585+
if (xivUi.Name.Equals(string.Empty)) return;
575586

576587
lock (actionLock)
577588
{
@@ -580,6 +591,8 @@ await Task.Run(() => Parallel.ForEach(fieldMarkerExData.Values, (action) =>
580591
}
581592
}));
582593

594+
// Remove any duplicates and return the sorted the list
595+
actionList = actionList.Distinct().ToList();
583596
actionList.Sort();
584597

585598
return actionList;
@@ -656,6 +669,8 @@ await Task.Run(() => Parallel.ForEach(statusExData.Values, (status) =>
656669
}
657670
}));
658671

672+
// Remove any duplicates and return the sorted the list
673+
statusList = statusList.Distinct().ToList();
659674
statusList.Sort();
660675

661676
return statusList;

xivModdingFramework/Items/DataContainers/XivUi.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,30 @@ public string GetModlistItemCategory()
9595
{
9696
return SecondaryCategory != null ? SecondaryCategory : XivStrings.UI;
9797
}
98+
9899
public int CompareTo(object obj)
99100
{
100101
return string.Compare(Name, ((XivUi)obj).Name, StringComparison.Ordinal);
101102
}
102103

104+
public override bool Equals(object obj)
105+
{
106+
try
107+
{
108+
XivUi other = (XivUi)obj;
109+
return (this.Name == other.Name && this.IconNumber == other.IconNumber);
110+
}
111+
catch
112+
{
113+
return false;
114+
}
115+
}
116+
117+
public override int GetHashCode()
118+
{
119+
return this.Name.GetHashCode() ^ this.IconNumber.GetHashCode();
120+
}
121+
103122

104123
public async Task<Dictionary<string, string>> GetTexPaths()
105124
{

xivModdingFramework/Resources/XivStrings.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

xivModdingFramework/Resources/XivStrings.de.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@
171171
<data name="Craft" xml:space="preserve">
172172
<value>Synthese</value>
173173
</data>
174+
<data name="Cure" xml:space="preserve">
175+
<value>Vita</value>
176+
</data>
174177
<data name="Detrimental" xml:space="preserve">
175178
<value>Schwächung</value>
176179
</data>

xivModdingFramework/Resources/XivStrings.fr.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@
171171
<data name="Craft" xml:space="preserve">
172172
<value>Artisanat</value>
173173
</data>
174+
<data name="Cure" xml:space="preserve">
175+
<value>Soin</value>
176+
</data>
174177
<data name="Detrimental" xml:space="preserve">
175178
<value>Fragilisation</value>
176179
</data>

xivModdingFramework/Resources/XivStrings.ja.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@
171171
<data name="Craft" xml:space="preserve">
172172
<value>製作</value>
173173
</data>
174+
<data name="Cure" xml:space="preserve">
175+
<value>ケアル</value>
176+
</data>
174177
<data name="Detrimental" xml:space="preserve">
175178
<value>弱体</value>
176179
</data>

xivModdingFramework/Resources/XivStrings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -942,4 +942,7 @@
942942
<data name="Viera_Veena" xml:space="preserve">
943943
<value>Viera - Veena</value>
944944
</data>
945+
<data name="Cure" xml:space="preserve">
946+
<value>Cure</value>
947+
</data>
945948
</root>

0 commit comments

Comments
 (0)