diff --git a/Dalamud/Game/ClientState/JobGauge/Enums/Song.cs b/Dalamud/Game/ClientState/JobGauge/Enums/Song.cs
index 25ecf66cc..b2440640e 100644
--- a/Dalamud/Game/ClientState/JobGauge/Enums/Song.cs
+++ b/Dalamud/Game/ClientState/JobGauge/Enums/Song.cs
@@ -13,16 +13,16 @@ namespace Dalamud.Game.ClientState.JobGauge.Enums
///
/// Mage's Ballad type.
///
- MAGE = 5,
+ MAGE = 1,
///
/// Army's Paeon type.
///
- ARMY = 10,
+ ARMY = 2,
///
/// The Wanderer's Minuet type.
///
- WANDERER = 15,
+ WANDERER = 3,
}
}
diff --git a/Dalamud/Game/ClientState/JobGauge/Types/BRDGauge.cs b/Dalamud/Game/ClientState/JobGauge/Types/BRDGauge.cs
index 09d98dcf1..006ee907b 100644
--- a/Dalamud/Game/ClientState/JobGauge/Types/BRDGauge.cs
+++ b/Dalamud/Game/ClientState/JobGauge/Types/BRDGauge.cs
@@ -1,6 +1,7 @@
using System;
using Dalamud.Game.ClientState.JobGauge.Enums;
+using FFXIVClientStructs.FFXIV.Client.Game.Gauge;
namespace Dalamud.Game.ClientState.JobGauge.Types
{
@@ -36,6 +37,60 @@ namespace Dalamud.Game.ClientState.JobGauge.Types
///
/// Gets the type of song that is active.
///
- public Song Song => (Song)this.Struct->Song;
+ public Song Song
+ {
+ get
+ {
+ if (this.Struct->SongFlags.HasFlag(SongFlags.WanderersMinuet))
+ return Song.WANDERER;
+
+ if (this.Struct->SongFlags.HasFlag(SongFlags.ArmysPaeon))
+ return Song.ARMY;
+
+ if (this.Struct->SongFlags.HasFlag(SongFlags.MagesBallad))
+ return Song.MAGE;
+
+ return Song.NONE;
+ }
+ }
+
+ ///
+ /// Gets the type of song that was last played.
+ ///
+ public Song LastSong
+ {
+ get
+ {
+ if (this.Struct->SongFlags.HasFlag(SongFlags.WanderersMinuetLastPlayed))
+ return Song.WANDERER;
+
+ if (this.Struct->SongFlags.HasFlag(SongFlags.ArmysPaeonLastPlayed))
+ return Song.ARMY;
+
+ if (this.Struct->SongFlags.HasFlag(SongFlags.MagesBalladLastPlayed))
+ return Song.MAGE;
+
+ return Song.NONE;
+ }
+ }
+
+ ///
+ /// Gets the song Coda that are currently active.
+ ///
+ ///
+ /// This will always return an array of size 3, inactive Coda are represented by .
+ ///
+ public Song[] Coda
+ {
+ get
+ {
+ return new[]
+ {
+ this.Struct->SongFlags.HasFlag(SongFlags.MagesBalladCoda) ? Song.MAGE : Song.NONE,
+ this.Struct->SongFlags.HasFlag(SongFlags.ArmysPaeonCoda) ? Song.ARMY : Song.NONE,
+ this.Struct->SongFlags.HasFlag(SongFlags.WanderersMinuetCoda) ? Song.WANDERER : Song.NONE,
+ };
+ }
+ }
}
}
diff --git a/lib/FFXIVClientStructs b/lib/FFXIVClientStructs
index f1c535062..648486952 160000
--- a/lib/FFXIVClientStructs
+++ b/lib/FFXIVClientStructs
@@ -1 +1 @@
-Subproject commit f1c535062c315b055b05c35f9f4b25fd960712ee
+Subproject commit 64848695224c25f5f459c42100a5ab75bf611d3f