mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
feat: add GSE Saves
This commit is contained in:
parent
beaa919c80
commit
cadb9e8dff
4 changed files with 24 additions and 21 deletions
|
@ -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);
|
||||||
|
|
|
@ -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"];
|
||||||
|
|
|
@ -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()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
|
|
|
@ -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",
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue