diff --git a/src/main/services/achievements/check-unlocked-achievements.ts b/src/main/services/achievements/check-unlocked-achievements.ts index 1fa2c3f5..608ff5bd 100644 --- a/src/main/services/achievements/check-unlocked-achievements.ts +++ b/src/main/services/achievements/check-unlocked-achievements.ts @@ -6,7 +6,7 @@ export const checkUnlockedAchievements = ( unlockedAchievements: any ): UnlockedAchievement[] => { if (type === Cracker.onlineFix) return onlineFixMerge(unlockedAchievements); - if (type === Cracker.goldberg) + if (type === Cracker.goldberg || type === Cracker.goldberg2) return goldbergUnlockedAchievements(unlockedAchievements); if (type == Cracker.generic) return genericMerge(unlockedAchievements); return defaultMerge(unlockedAchievements); diff --git a/src/main/services/achievements/find-steam-game-achivement-files.ts b/src/main/services/achievements/find-steam-game-achivement-files.ts index 1f4a0a86..980f0ae8 100644 --- a/src/main/services/achievements/find-steam-game-achivement-files.ts +++ b/src/main/services/achievements/find-steam-game-achivement-files.ts @@ -9,6 +9,15 @@ import { Game } from "@main/entity"; const publicDir = path.join("C:", "Users", "Public", "Documents"); const appData = app.getPath("appData"); +const crackers = [ + Cracker.codex, + Cracker.goldberg, + Cracker.goldberg2, + Cracker.rune, + Cracker.onlineFix, + Cracker.generic, +]; + const addGame = ( achievementFiles: Map, achievementPath: string, @@ -39,14 +48,6 @@ const getObjectIdsInFolder = (path: string) => { }; export const findSteamGameAchievementFiles = (game: Game) => { - const crackers = [ - Cracker.codex, - Cracker.goldberg, - Cracker.rune, - Cracker.onlineFix, - Cracker.generic, - ]; - const achievementFiles: AchievementFile[] = []; for (const cracker of crackers) { let achievementPath: string; @@ -58,9 +59,9 @@ export const findSteamGameAchievementFiles = (game: Game) => { } else if (cracker === Cracker.goldberg) { achievementPath = path.join(appData, "Goldberg SteamEmu Saves"); fileLocation = ["achievements.json"]; - } else if (cracker === Cracker.generic) { - achievementPath = path.join(publicDir, Cracker.generic); - fileLocation = ["user_stats.ini"]; + } else if (cracker === Cracker.goldberg2) { + achievementPath = path.join(appData, "GSE Saves"); + fileLocation = ["achievements.json"]; } else { achievementPath = path.join(publicDir, "Steam", cracker); fileLocation = ["achievements.ini"]; @@ -102,13 +103,6 @@ export const findAchievementFileInExecutableDirectory = ( export const findAllSteamGameAchievementFiles = () => { const gameAchievementFiles = new Map(); - const crackers = [ - Cracker.codex, - Cracker.goldberg, - Cracker.rune, - Cracker.onlineFix, - ]; - for (const cracker of crackers) { let achievementPath: string; let fileLocation: string[]; @@ -116,6 +110,9 @@ export const findAllSteamGameAchievementFiles = () => { if (cracker === Cracker.onlineFix) { achievementPath = path.join(publicDir, Cracker.onlineFix); fileLocation = ["Stats", "Achievements.ini"]; + } else if (cracker === Cracker.goldberg2) { + achievementPath = path.join(appData, "GSE Saves"); + fileLocation = ["achievements.json"]; } else if (cracker === Cracker.goldberg) { achievementPath = path.join(appData, "Goldberg SteamEmu Saves"); fileLocation = ["achievements.json"]; diff --git a/src/main/services/achievements/merge-achievements.ts b/src/main/services/achievements/merge-achievements.ts index a5f3d369..0005598a 100644 --- a/src/main/services/achievements/merge-achievements.ts +++ b/src/main/services/achievements/merge-achievements.ts @@ -52,7 +52,9 @@ export const mergeAchievements = async ( const newAchievements = achievements .filter((achievement) => { return !unlockedAchievements.some((localAchievement) => { - return localAchievement.name === achievement.name.toUpperCase(); + return ( + localAchievement.name.toUpperCase() === achievement.name.toUpperCase() + ); }); }) .map((achievement) => { @@ -67,7 +69,10 @@ export const mergeAchievements = async ( .map((achievement) => { return JSON.parse(localGameAchievement?.achievements || "[]").find( (steamAchievement) => { - return achievement.name === steamAchievement.name; + return ( + achievement.name.toUpperCase() === + steamAchievement.name.toUpperCase() + ); } ); }) diff --git a/src/shared/constants.ts b/src/shared/constants.ts index 79f0e6bd..a92ea029 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -29,5 +29,6 @@ export enum Cracker { rune = "RUNE", onlineFix = "OnlineFix", goldberg = "Goldberg", + goldberg2 = "Goldberg2", generic = "Generic", }