Skip to content

Commit

Permalink
Merge pull request #138 from Jeshibu/master
Browse files Browse the repository at this point in the history
Removed expensive calls from game menu item creation
  • Loading branch information
Lacro59 authored Sep 12, 2021
2 parents 164affd + 5f96c19 commit 0ea6615
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
36 changes: 36 additions & 0 deletions source/Services/SuccessStoryDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -755,6 +755,42 @@ public AchievementsGraphicsDataCount GetCountByDay(Guid? GameID = null, int limi
return new AchievementsGraphicsDataCount { Labels = GraphicsAchievementsLabels, Series = SourceAchievementsSeries };
}

public static bool GameCouldHaveAchievements(SuccessStorySettings settings, string GameSourceName, string GameName)
{
switch (GameSourceName.ToLower())
{
case "playstation":
return settings.EnablePsn;
case "steam":
return settings.EnableSteam;
case "gog":
return settings.EnableGog;
case "origin":
return settings.EnableOrigin;
case "xbox":
return settings.EnableXbox;
case "playnite":
case "hacked":
return settings.EnableLocal;
case "retroachievements":
return settings.EnableRetroAchievements;
case "rpcs3":
return settings.EnableRpcs3Achievements;
case "battle.net":
switch (GameName.ToLower())
{
case "overwatch":
return settings.EnableOverwatchAchievements;
case "starcraft 2":
case "starcraft ii":
return settings.EnableSc2Achievements;
}
break;
}

return false;
}


/// <summary>
///
Expand Down
6 changes: 3 additions & 3 deletions source/SuccessStory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -305,14 +305,14 @@ public override IEnumerable<GameMenuItem> GetGameMenuItems(GetGameMenuItemsArgs
string SourceName = PlayniteTools.GetSourceName(PlayniteApi, GameMenu);
string GameName = GameMenu.Name;
bool IsAddOrShowManual = SuccessStoryDatabase.IsAddOrShowManual(GameMenu, SourceName);
bool VerifToAddOrShow = SuccessStoryDatabase.VerifToAddOrShow(this, PlayniteApi, PluginSettings.Settings, this.GetPluginUserDataPath(), SourceName, GameName);
bool GameCouldHaveAchievements = SuccessStoryDatabase.GameCouldHaveAchievements(PluginSettings.Settings, SourceName, GameName);
GameAchievements gameAchievements = PluginDatabase.Get(GameMenu, true);

List<GameMenuItem> gameMenuItems = new List<GameMenuItem>();

if (!gameAchievements.IsIgnored)
{
if (VerifToAddOrShow || IsAddOrShowManual)
if (GameCouldHaveAchievements || IsAddOrShowManual)
{
if (!PluginSettings.Settings.EnableOneGameView || (PluginSettings.Settings.EnableOneGameView && gameAchievements.HasData))
{
Expand Down Expand Up @@ -451,7 +451,7 @@ public override IEnumerable<GameMenuItem> GetGameMenuItems(GetGameMenuItemsArgs
}
else
{
if (VerifToAddOrShow || IsAddOrShowManual)
if (GameCouldHaveAchievements || IsAddOrShowManual)
{
gameMenuItems.Add(new GameMenuItem
{
Expand Down

0 comments on commit 0ea6615

Please sign in to comment.