diff --git a/data/manifest.yaml b/data/manifest.yaml index 91a44d75..fee12cdb 100644 --- a/data/manifest.yaml +++ b/data/manifest.yaml @@ -104038,6 +104038,9 @@ Command & Conquer: - config when: - os: windows + id: + steamExtra: + - 24810 installDir: Command and Conquer 3 Tiberium Wars: {} launch: diff --git a/data/schema.strict.yaml b/data/schema.strict.yaml index 976c2122..dbafab46 100644 --- a/data/schema.strict.yaml +++ b/data/schema.strict.yaml @@ -110,3 +110,11 @@ additionalProperties: properties: flatpak: type: string + gogExtra: + type: array + items: + type: integer + steamExtra: + type: array + items: + type: integer diff --git a/data/schema.yaml b/data/schema.yaml index 71678fd9..06f50605 100644 --- a/data/schema.yaml +++ b/data/schema.yaml @@ -91,3 +91,11 @@ additionalProperties: properties: flatpak: type: string + gogExtra: + type: array + items: + type: integer + steamExtra: + type: array + items: + type: integer diff --git a/src/manifest.ts b/src/manifest.ts index cbcbfeba..59d63cf3 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -45,6 +45,8 @@ export interface Game { }; id?: { flatpak?: string, + gogExtra?: Array, + steamExtra?: Array, }; } @@ -82,15 +84,26 @@ function doLaunchPathsMatch(fromSteam: string | undefined, fromManifest: string } function integrateWikiData(game: Game, cache: WikiGameCache[""]): void { + game.id = {}; if (cache.steam !== undefined) { game.steam = { id: cache.steam }; } + if (cache.steamSide !== undefined) { + game.id.steamExtra = cache.steamSide; + } if (cache.gog !== undefined) { game.gog = { id: cache.gog }; } + if (cache.gogSide !== undefined) { + game.id.gogExtra = cache.gogSide; + } const info = parseTemplates(cache.templates ?? []); game.files = info.files; game.registry = info.registry; + + if (game.id.flatpak === undefined && game.id.gogExtra === undefined && game.id.steamExtra === undefined) { + delete game.id; + } } function integrateSteamData(game: Game, appInfo: SteamGameCache[""] | undefined): void {