Skip to content

Commit ff7cdee

Browse files
committed
C#: Add writing of sorted out enum/flag mappings
1 parent a228404 commit ff7cdee

3 files changed

Lines changed: 53 additions & 12 deletions

File tree

code/C#/DBDefsLib/DBDMWriter.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.Collections.Generic;
2+
using System.IO;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace DBDefsLib
7+
{
8+
public class DBDMWriter
9+
{
10+
public static void Save(List<Structs.MappingDefinition> mappingDefinitions, string filePath)
11+
{
12+
var sb = new StringBuilder();
13+
14+
var mappingDefsSorted = mappingDefinitions.OrderBy(md => md.meta.ToString()).ThenBy(md => md.tableName).ThenBy(md => md.columnName).ThenBy(md => md.arrIndex);
15+
16+
foreach (var def in mappingDefsSorted)
17+
{
18+
sb.Append($"{def.meta} {def.tableName}::{def.columnName}");
19+
20+
if (def.arrIndex.HasValue)
21+
sb.Append($"[{def.arrIndex.Value}]");
22+
23+
if (!string.IsNullOrEmpty(def.metaValue))
24+
sb.Append($" {def.metaValue}");
25+
26+
if (!string.IsNullOrEmpty(def.conditionalTable) && !string.IsNullOrEmpty(def.conditionalColumn) && !string.IsNullOrEmpty(def.conditionalValue))
27+
sb.Append($" {def.conditionalTable}::{def.conditionalColumn}={def.conditionalValue}");
28+
29+
if (!string.IsNullOrEmpty(def.comment))
30+
sb.Append($" // {def.comment}");
31+
32+
sb.AppendLine();
33+
}
34+
35+
File.WriteAllText(filePath, sb.ToString());
36+
}
37+
}
38+
}

code/C#/DBDefsValidator/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,9 @@ static void Main(string[] args)
257257

258258
// TODO: Conditional table/column validation
259259
}
260+
261+
if(rewrite)
262+
DBDMWriter.Save(mappings, Path.Combine(metaDirectory, "mapping.dbdm"));
260263
}
261264

262265
if (errorEncountered.Count != 0)

meta/mapping.dbdm

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ ENUM ChrCustomization::ComponentSection[1] ComponentSection
4646
ENUM ChrCustomization::ComponentSection[2] ComponentSection
4747
ENUM ChrCustomization::UiCustomizationType UiCustomizationType
4848
ENUM ChrCustomizationGeoset::GeosetType GeosetType
49+
ENUM ChrCustomizationOption::ChrModelID ChrModelID // Not a real enum, but for ease
4950
ENUM ChrCustomizationReq::ReqType ChrCustomizationReqType
5051
ENUM ChrCustomizationSkinnedModel::GeosetType GeosetType
51-
ENUM ChrCustomizationOption::ChrModelID ChrModelID // Not a real enum, but for ease
5252
ENUM ChrRaceXChrModel::ChrModelID ChrModelID // Not a real enum, but for ease
5353
ENUM CriteriaTree::Operator CriteriaTreeOperator
5454
ENUM Difficulty::InstanceType MapTypes
@@ -69,9 +69,9 @@ ENUM Map::InstanceType MapTypes
6969
ENUM ModifierTree::Operator ModifierTreeOperator
7070
ENUM ModifierTree::Type CriteriaAdditionalCondition
7171
ENUM PlayerCondition::MinReputation[0] ReputationLevels
72+
ENUM SpellClassOptions::SpellClassSet SpellClassSet
7273
ENUM SpellEffect::Effect SpellEffect
7374
ENUM SpellEffect::EffectAura SpellEffectAura
74-
ENUM SpellLabel::LabelID SpellLabelName
7575
ENUM SpellEffect::EffectMiscValue[0] SpellModOp SpellEffect::EffectAura=107
7676
ENUM SpellEffect::EffectMiscValue[0] SpellModOp SpellEffect::EffectAura=108
7777
ENUM SpellEffect::EffectMiscValue[0] SpellModOp SpellEffect::EffectAura=218
@@ -80,6 +80,9 @@ ENUM SpellEffect::EffectMiscValue[0] PrimaryStats SpellEffect::EffectAura=29
8080
ENUM SpellEffect::EffectMiscValue[0] PrimaryStats SpellEffect::EffectAura=80
8181
ENUM SpellEffect::EffectMiscValue[0] PrimaryStats SpellEffect::EffectAura=137
8282
ENUM SpellEffect::EffectMiscValue[0] PrimaryStats SpellEffect::EffectAura=175
83+
ENUM SpellLabel::LabelID SpellLabelName
84+
ENUM SpellVisualKitEffect::EffectType SpellVisualKitEffectType
85+
ENUM UiMap::Type UiMapType
8386
ENUM UnitCondition::Op[0] UnitConditionOperator
8487
ENUM UnitCondition::Op[1] UnitConditionOperator
8588
ENUM UnitCondition::Op[2] UnitConditionOperator
@@ -88,9 +91,6 @@ ENUM UnitCondition::Op[4] UnitConditionOperator
8891
ENUM UnitCondition::Op[5] UnitConditionOperator
8992
ENUM UnitCondition::Op[6] UnitConditionOperator
9093
ENUM UnitCondition::Op[7] UnitConditionOperator
91-
ENUM SpellClassOptions::SpellClassSet SpellClassSet
92-
ENUM SpellVisualKitEffect::EffectType SpellVisualKitEffectType
93-
ENUM UiMap::Type UiMapType
9494
FLAGS Achievement::Flags AchievementFlags
9595
FLAGS AnimationData::Flags[0] AnimationDataFlags
9696
FLAGS AnimKitConfig::ConfigFlags AnimKitConfigFlags
@@ -258,13 +258,6 @@ FLAGS SpellInterrupts::InterruptFlags InterruptFlags
258258
FLAGS SpellItemEnchantment::Flags SpellItemEnchantmentFlags
259259
FLAGS SpellMisc::Attributes[0] SpellAttributes0
260260
FLAGS SpellMisc::Attributes[1] SpellAttributes1
261-
FLAGS SpellMisc::Attributes[10] SpellAttributes10
262-
FLAGS SpellMisc::Attributes[11] SpellAttributes11
263-
FLAGS SpellMisc::Attributes[12] SpellAttributes12
264-
FLAGS SpellMisc::Attributes[13] SpellAttributes13
265-
FLAGS SpellMisc::Attributes[14] SpellAttributes14
266-
FLAGS SpellMisc::Attributes[15] SpellAttributes15 // Some comment
267-
FLAGS SpellMisc::Attributes[16] SpellAttributes16
268261
FLAGS SpellMisc::Attributes[2] SpellAttributes2
269262
FLAGS SpellMisc::Attributes[3] SpellAttributes3
270263
FLAGS SpellMisc::Attributes[4] SpellAttributes4
@@ -273,6 +266,13 @@ FLAGS SpellMisc::Attributes[6] SpellAttributes6
273266
FLAGS SpellMisc::Attributes[7] SpellAttributes7
274267
FLAGS SpellMisc::Attributes[8] SpellAttributes8
275268
FLAGS SpellMisc::Attributes[9] SpellAttributes9
269+
FLAGS SpellMisc::Attributes[10] SpellAttributes10
270+
FLAGS SpellMisc::Attributes[11] SpellAttributes11
271+
FLAGS SpellMisc::Attributes[12] SpellAttributes12
272+
FLAGS SpellMisc::Attributes[13] SpellAttributes13
273+
FLAGS SpellMisc::Attributes[14] SpellAttributes14
274+
FLAGS SpellMisc::Attributes[15] SpellAttributes15 // Some comment
275+
FLAGS SpellMisc::Attributes[16] SpellAttributes16
276276
FLAGS SpellMisc::SchoolMask DamageClass
277277
FLAGS SpellShapeshiftForm::Flags SpellShapeshiftFormFlags
278278
FLAGS SpellTargetRestrictions::TargetCreatureType TargetCreatureType // Seeded from CreatureType.db2

0 commit comments

Comments
 (0)