feat: add GSE Saves

This commit is contained in:
Zamitto 2024-10-02 21:55:42 -03:00
parent beaa919c80
commit cadb9e8dff
4 changed files with 24 additions and 21 deletions

View file

@ -6,7 +6,7 @@ export const checkUnlockedAchievements = (
unlockedAchievements: any unlockedAchievements: any
): UnlockedAchievement[] => { ): UnlockedAchievement[] => {
if (type === Cracker.onlineFix) return onlineFixMerge(unlockedAchievements); if (type === Cracker.onlineFix) return onlineFixMerge(unlockedAchievements);
if (type === Cracker.goldberg) if (type === Cracker.goldberg || type === Cracker.goldberg2)
return goldbergUnlockedAchievements(unlockedAchievements); return goldbergUnlockedAchievements(unlockedAchievements);
if (type == Cracker.generic) return genericMerge(unlockedAchievements); if (type == Cracker.generic) return genericMerge(unlockedAchievements);
return defaultMerge(unlockedAchievements); return defaultMerge(unlockedAchievements);

View file

@ -9,6 +9,15 @@ import { Game } from "@main/entity";
const publicDir = path.join("C:", "Users", "Public", "Documents"); const publicDir = path.join("C:", "Users", "Public", "Documents");
const appData = app.getPath("appData"); const appData = app.getPath("appData");
const crackers = [
Cracker.codex,
Cracker.goldberg,
Cracker.goldberg2,
Cracker.rune,
Cracker.onlineFix,
Cracker.generic,
];
const addGame = ( const addGame = (
achievementFiles: Map<string, AchievementFile[]>, achievementFiles: Map<string, AchievementFile[]>,
achievementPath: string, achievementPath: string,
@ -39,14 +48,6 @@ const getObjectIdsInFolder = (path: string) => {
}; };
export const findSteamGameAchievementFiles = (game: Game) => { export const findSteamGameAchievementFiles = (game: Game) => {
const crackers = [
Cracker.codex,
Cracker.goldberg,
Cracker.rune,
Cracker.onlineFix,
Cracker.generic,
];
const achievementFiles: AchievementFile[] = []; const achievementFiles: AchievementFile[] = [];
for (const cracker of crackers) { for (const cracker of crackers) {
let achievementPath: string; let achievementPath: string;
@ -58,9 +59,9 @@ export const findSteamGameAchievementFiles = (game: Game) => {
} else if (cracker === Cracker.goldberg) { } else if (cracker === Cracker.goldberg) {
achievementPath = path.join(appData, "Goldberg SteamEmu Saves"); achievementPath = path.join(appData, "Goldberg SteamEmu Saves");
fileLocation = ["achievements.json"]; fileLocation = ["achievements.json"];
} else if (cracker === Cracker.generic) { } else if (cracker === Cracker.goldberg2) {
achievementPath = path.join(publicDir, Cracker.generic); achievementPath = path.join(appData, "GSE Saves");
fileLocation = ["user_stats.ini"]; fileLocation = ["achievements.json"];
} else { } else {
achievementPath = path.join(publicDir, "Steam", cracker); achievementPath = path.join(publicDir, "Steam", cracker);
fileLocation = ["achievements.ini"]; fileLocation = ["achievements.ini"];
@ -102,13 +103,6 @@ export const findAchievementFileInExecutableDirectory = (
export const findAllSteamGameAchievementFiles = () => { export const findAllSteamGameAchievementFiles = () => {
const gameAchievementFiles = new Map<string, AchievementFile[]>(); const gameAchievementFiles = new Map<string, AchievementFile[]>();
const crackers = [
Cracker.codex,
Cracker.goldberg,
Cracker.rune,
Cracker.onlineFix,
];
for (const cracker of crackers) { for (const cracker of crackers) {
let achievementPath: string; let achievementPath: string;
let fileLocation: string[]; let fileLocation: string[];
@ -116,6 +110,9 @@ export const findAllSteamGameAchievementFiles = () => {
if (cracker === Cracker.onlineFix) { if (cracker === Cracker.onlineFix) {
achievementPath = path.join(publicDir, Cracker.onlineFix); achievementPath = path.join(publicDir, Cracker.onlineFix);
fileLocation = ["Stats", "Achievements.ini"]; fileLocation = ["Stats", "Achievements.ini"];
} else if (cracker === Cracker.goldberg2) {
achievementPath = path.join(appData, "GSE Saves");
fileLocation = ["achievements.json"];
} else if (cracker === Cracker.goldberg) { } else if (cracker === Cracker.goldberg) {
achievementPath = path.join(appData, "Goldberg SteamEmu Saves"); achievementPath = path.join(appData, "Goldberg SteamEmu Saves");
fileLocation = ["achievements.json"]; fileLocation = ["achievements.json"];

View file

@ -52,7 +52,9 @@ export const mergeAchievements = async (
const newAchievements = achievements const newAchievements = achievements
.filter((achievement) => { .filter((achievement) => {
return !unlockedAchievements.some((localAchievement) => { return !unlockedAchievements.some((localAchievement) => {
return localAchievement.name === achievement.name.toUpperCase(); return (
localAchievement.name.toUpperCase() === achievement.name.toUpperCase()
);
}); });
}) })
.map((achievement) => { .map((achievement) => {
@ -67,7 +69,10 @@ export const mergeAchievements = async (
.map((achievement) => { .map((achievement) => {
return JSON.parse(localGameAchievement?.achievements || "[]").find( return JSON.parse(localGameAchievement?.achievements || "[]").find(
(steamAchievement) => { (steamAchievement) => {
return achievement.name === steamAchievement.name; return (
achievement.name.toUpperCase() ===
steamAchievement.name.toUpperCase()
);
} }
); );
}) })

View file

@ -29,5 +29,6 @@ export enum Cracker {
rune = "RUNE", rune = "RUNE",
onlineFix = "OnlineFix", onlineFix = "OnlineFix",
goldberg = "Goldberg", goldberg = "Goldberg",
goldberg2 = "Goldberg2",
generic = "Generic", generic = "Generic",
} }