Skip to content

Commit 6273ceb

Browse files
committed
Generate serverside broadcast_text_duration from conversation data
1 parent 3907b80 commit 6273ceb

15 files changed

Lines changed: 277 additions & 0 deletions

WowPacketParser/DBC/DBC.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public static class DBC
1717
public static Storage<AchievementEntry> Achievement { get; set; }
1818
public static Storage<AnimationDataEntry> AnimationData { get; set; }
1919
public static Storage<BroadcastTextEntry> BroadcastText { get; set; }
20+
public static Storage<BroadcastTextDurationEntry> BroadcastTextDuration { get; set; }
21+
public static Storage<ConversationLineEntry> ConversationLine { get; set; }
2022
public static Storage<CreatureEntry> Creature { get; set; }
2123
public static Storage<CreatureDifficultyEntry> CreatureDifficulty { get; set; }
2224
public static Storage<CreatureFamilyEntry> CreatureFamily { get; set; }
@@ -199,6 +201,16 @@ await Task.WhenAll(Task.Run(() =>
199201
else
200202
Phases[phase.Value.PhaseGroupID].Add(phase.Value.PhaseID);
201203
}
204+
}), Task.Run(() =>
205+
{
206+
if (BroadcastTextDuration != null)
207+
foreach (var broadcastTextDuration in BroadcastTextDuration)
208+
{
209+
if (!BroadcastTextDurations.ContainsKey(broadcastTextDuration.Value.BroadcastTextID))
210+
BroadcastTextDurations.Add(broadcastTextDuration.Value.BroadcastTextID, [broadcastTextDuration.Value.Locale]);
211+
else
212+
BroadcastTextDurations[broadcastTextDuration.Value.BroadcastTextID].Add(broadcastTextDuration.Value.Locale);
213+
}
202214
}));
203215
}
204216

@@ -238,5 +250,6 @@ public static uint GetEmptyAnimStateID()
238250
public static readonly Dictionary<uint, FactionEntry> FactionStores = new Dictionary<uint, FactionEntry>();
239251
public static readonly Dictionary<Tuple<uint, uint>, SpellEffectEntry> SpellEffectStores = new Dictionary<Tuple<uint, uint>, SpellEffectEntry>();
240252
public static readonly Dictionary<int, List<ushort>> Phases = new Dictionary<int, List<ushort>>();
253+
public static readonly Dictionary<int, HashSet<int>> BroadcastTextDurations = new Dictionary<int, HashSet<int>>();
241254
}
242255
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.BattleForAzeroth
4+
{
5+
[DBFile("BroadcastTextDuration")]
6+
public sealed class BroadcastTextDurationEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public int Locale;
12+
public int DurationMS;
13+
}
14+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.BattleForAzeroth
4+
{
5+
[DBFile("ConversationLine")]
6+
public sealed class ConversationLineEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public uint SpellVisualKitID;
12+
public int AdditionalDuration;
13+
public ushort NextConversationLineID;
14+
public ushort AnimKitID;
15+
public byte SpeechType;
16+
public byte StartAnimation;
17+
public byte EndAnimation;
18+
}
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.Dragonflight
4+
{
5+
[DBFile("BroadcastTextDuration")]
6+
public sealed class BroadcastTextDurationEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public int Locale;
12+
public int DurationMS;
13+
}
14+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.Dragonflight
4+
{
5+
[DBFile("ConversationLine")]
6+
public sealed class ConversationLineEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public uint Unknown1020;
12+
public uint SpellVisualKitID;
13+
public int AdditionalDuration;
14+
public ushort NextConversationLineID;
15+
public ushort AnimKitID;
16+
public byte SpeechType;
17+
public byte StartAnimation;
18+
public byte EndAnimation;
19+
}
20+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.Legion
4+
{
5+
[DBFile("ConversationLine")]
6+
public sealed class ConversationLineEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public uint SpellVisualKitID;
12+
public int AdditionalDuration;
13+
public ushort NextConversationLineID;
14+
public ushort AnimKitID;
15+
public byte SpeechType;
16+
public byte StartAnimation;
17+
public byte EndAnimation;
18+
}
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.Shadowlands
4+
{
5+
[DBFile("BroadcastTextDuration")]
6+
public sealed class BroadcastTextDurationEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public int Locale;
12+
public int DurationMS;
13+
}
14+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.Shadowlands
4+
{
5+
[DBFile("ConversationLine")]
6+
public sealed class ConversationLineEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public uint SpellVisualKitID;
12+
public int AdditionalDuration;
13+
public ushort NextConversationLineID;
14+
public ushort AnimKitID;
15+
public byte SpeechType;
16+
public byte StartAnimation;
17+
public byte EndAnimation;
18+
}
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.TheWarWithin
4+
{
5+
[DBFile("BroadcastTextDuration")]
6+
public sealed class BroadcastTextDurationEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public int Locale;
11+
public int DurationMS;
12+
[NonInlineRelation(typeof(uint))]
13+
public int BroadcastTextID;
14+
}
15+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using DBFileReaderLib.Attributes;
2+
3+
namespace WowPacketParser.DBC.Structures.TheWarWithin
4+
{
5+
[DBFile("ConversationLine")]
6+
public sealed class ConversationLineEntry
7+
{
8+
[Index(true)]
9+
public uint ID;
10+
public uint BroadcastTextID;
11+
public uint Unknown1020;
12+
public uint SpellVisualKitID;
13+
public int AdditionalDuration;
14+
public ushort NextConversationLineID;
15+
public ushort AnimKitID;
16+
public byte SpeechType;
17+
public byte StartAnimation;
18+
public byte EndAnimation;
19+
}
20+
}

0 commit comments

Comments
 (0)