diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs
index 7d7721f0..f4dc9e6d 100644
--- a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs
+++ b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs
@@ -1429,6 +1429,38 @@ namespace StardewSymphonyRemastered.Framework.Menus
}
+ ///
+ /// Checks whether or not the currently selected song has already been added for the currently selected music pack.
+ ///
+ /// Whether or not the currently selected song has been added to the list of song triggers for the music pack.
+ public bool doesPackContainMusic()
+ {
+ if (this.currentMusicPackAlbum == null || this.currentSelectedSong == null) return false;
+ var info = (KeyValuePair)this.currentMusicPackAlbum.buttonFunctionality.leftClick.paramaters[0];
+ //Check for generic festival music.
+ if (this.drawMode == DrawMode.FestivalSelection)
+ {
+ var festivalSonglist = info.Value.songInformation.festivalSongs;
+ if (festivalSonglist == null) return false;
+ if (!festivalSonglist.Contains(info.Value.songInformation.getSongFromList(festivalSonglist, this.currentSelectedSong.name))) return false;
+ else return true;
+ }
+ //Check for generic event music.
+ if (this.drawMode == DrawMode.EventSelection)
+ {
+ var eventSonglist = info.Value.songInformation.festivalSongs;
+ if (eventSonglist == null) return false;
+ if (!eventSonglist.Contains(info.Value.songInformation.getSongFromList(eventSonglist, this.currentSelectedSong.name))) return false;
+ else return true;
+ }
+ //Check for seasonal music triggers.
+ var songList = info.Value.songInformation.getSongList(generateSongTriggerKeyFromSelection());
+ if (songList.Value == null) return false;
+ if (!songList.Value.Contains(info.Value.songInformation.getSongFromList(songList.Value, this.currentSelectedSong.name))) return false;
+ else return true;
+
+ }
+
///
/// Draws the menu and it's respective components depending on the drawmode that is currently set.
///
@@ -1684,8 +1716,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
this.currentMusicPackAlbum.draw(b);
this.currentSelectedSong.draw(b);
this.currentlySelectedOption.draw(b);
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
this.playButton.draw(b);
this.stopButton.draw(b);
@@ -1736,8 +1774,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
this.currentMusicPackAlbum.draw(b);
this.currentSelectedSong.draw(b);
this.currentlySelectedOption.draw(b);
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
this.playButton.draw(b);
this.stopButton.draw(b);
@@ -1788,8 +1832,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
this.currentMusicPackAlbum.draw(b);
this.currentSelectedSong.draw(b);
this.currentlySelectedOption.draw(b);
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
this.playButton.draw(b);
this.stopButton.draw(b);
@@ -1842,8 +1892,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
this.currentlySelectedEvent.draw(b);
this.playButton.draw(b);
this.stopButton.draw(b);
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
foreach (Button button in fancyButtons)
{
@@ -1870,8 +1926,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
this.currentlySelectedFestival.draw(b);
this.playButton.draw(b);
this.stopButton.draw(b);
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
foreach (Button button in fancyButtons)
{
@@ -1898,8 +1960,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
this.currentlySelectedMenu.draw(b);
this.playButton.draw(b);
this.stopButton.draw(b);
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
foreach (Button button in fancyButtons)
{
@@ -1919,8 +1987,14 @@ namespace StardewSymphonyRemastered.Framework.Menus
{
if (this.drawMode == DrawMode.WeatherSelection || this.drawMode == DrawMode.TimeSelection || this.drawMode == DrawMode.LocationSelection || this.drawMode == DrawMode.DaySelection || this.drawMode == DrawMode.NothingElseToDisplay)
{
- this.addButton.draw(b);
- this.deleteButton.draw(b);
+ if (!doesPackContainMusic())
+ {
+ this.addButton.draw(b);
+ }
+ else
+ {
+ this.deleteButton.draw(b);
+ }
}
this.playButton.draw(b);
this.stopButton.draw(b);