diff --git a/src/main/services/achievements/find-achivement-files.ts b/src/main/services/achievements/find-achivement-files.ts index dc43f827..9a2c70ff 100644 --- a/src/main/services/achievements/find-achivement-files.ts +++ b/src/main/services/achievements/find-achivement-files.ts @@ -56,6 +56,10 @@ const getPathFromCracker = (cracker: Cracker) => { folderPath: path.join(publicDocuments, "OnlineFix"), fileLocation: ["Stats", "Achievements.ini"], }, + { + folderPath: path.join(publicDocuments, "OnlineFix"), + fileLocation: ["Achievements.ini"], + }, ]; } diff --git a/src/main/services/achievements/parse-achievement-file.ts b/src/main/services/achievements/parse-achievement-file.ts index b2031989..9c875a3f 100644 --- a/src/main/services/achievements/parse-achievement-file.ts +++ b/src/main/services/achievements/parse-achievement-file.ts @@ -73,7 +73,12 @@ export const parseAchievementFile = ( const iniParse = (filePath: string) => { try { - const lines = readFileSync(filePath, "utf-8").split(/[\r\n]+/); + const fileContent = readFileSync(filePath, "utf-8"); + + const lines = + fileContent.charCodeAt(0) === 0xfeff + ? fileContent.slice(1).split(/[\r\n]+/) + : fileContent.split(/[\r\n]+/); let objectName = ""; const object: Record> = {}; @@ -117,6 +122,16 @@ const processOnlineFix = (unlockedAchievements: any): UnlockedAchievement[] => { name: achievement, unlockTime: unlockedAchievement.timestamp * 1000, }); + } else if (unlockedAchievement?.Achieved == "true") { + const unlockTime = unlockedAchievement.TimeUnlocked; + + parsedUnlockedAchievements.push({ + name: achievement, + unlockTime: + unlockTime.length === 7 + ? unlockTime * 1000 * 1000 + : unlockTime * 1000, + }); } }