Fix mod content installers.

In 4312a4d3f4 MiniYaml merging was adjusted. One effect of this change was that duplicate keys in files that did not previously require merging was previously allowed, but was now an error. (Test case `TestMergeConflictsNoMerge`)

The installer files were relying on the previous behaviour to allow multiple `ContentPackage` keys. The above change caused a regression where attempting to manage mod content would crash due to now erroring on the duplicate keys.

We fix the issue by applying a unique ID suffix, as is a common pattern elsewhere in our yaml files, and teach InstallFromSourceLogic to recognise and strip it.
This commit is contained in:
RoosterDragon
2024-07-30 19:15:37 +01:00
committed by Gustas
parent ebaed9966b
commit 578a9fe457
22 changed files with 198 additions and 193 deletions

View File

@@ -4,7 +4,7 @@ d2k: Dune 2000 (English)
MUSIC/AMBUSH.AUD: bd5926a56a83bc0e49f96037e1f909014ac0772a
Install:
# Campaign briefings (optional):
ContentPackage:
ContentPackage@movies:
Name: movies
Actions:
Copy: MOVIES
@@ -51,7 +51,7 @@ d2k: Dune 2000 (English)
^SupportDir|Content/d2k/v3/Movies/G_PLNT_E.VQA: G_PLNT_E.VQA
^SupportDir|Content/d2k/v3/Movies/T_TITL_E.VQA: T_TITL_E.VQA
# Game music (optional):
ContentPackage:
ContentPackage@music:
Name: music
Actions:
Copy: MUSIC
@@ -73,7 +73,7 @@ d2k: Dune 2000 (English)
^SupportDir|Content/d2k/v3/Music/UNDERCON.AUD: UNDERCON.AUD
^SupportDir|Content/d2k/v3/Music/WAITGAME.AUD: WAITGAME.AUD
# Base game files:
ContentPackage:
ContentPackage@base:
Name: base
Actions:
ExtractBlast: SETUP/SETUP.Z

View File

@@ -7,7 +7,7 @@ gruntmods: Dune 2000: GruntMods Edition
Dune 2000/data/DATA.R16: 2471ef70e2ce5ab3514db14b9611a09f188127fa
Install:
# Game music (optional):
ContentPackage:
ContentPackage@music:
Name: music
Actions:
Copy: Dune 2000/data/Music
@@ -30,10 +30,10 @@ gruntmods: Dune 2000: GruntMods Edition
^SupportDir|Content/d2k/v3/Music/WAITGAME.AUD: WAITGAME.AUD
# TODO: DOES THIS NEED TO BE SEPARATED INTO TWO PACKAGES?
# Base game files + 1.06 Patch Content:
ContentPackage:
ContentPackage@patch:
Name: patch
Actions:
Copy: Dune 2000/data
Copy@1: Dune 2000/data
^SupportDir|Content/d2k/v3/BLOXBAT.R16: BLOXBAT.R16
^SupportDir|Content/d2k/v3/BLOXBASE.R16: BLOXBASE.R16
^SupportDir|Content/d2k/v3/BLOXBGBS.R16: BLOXBGBS.R16
@@ -43,9 +43,9 @@ gruntmods: Dune 2000: GruntMods Edition
^SupportDir|Content/d2k/v3/BLOXXMAS.R8: BLOXXMAS.R8
^SupportDir|Content/d2k/v3/DATA.R16: DATA.R16
^SupportDir|Content/d2k/v3/MOUSE.R16: MOUSE.R16
Copy: Dune 2000/data/bin
Copy@2: Dune 2000/data/bin
^SupportDir|Content/d2k/v3/PALETTE.BIN: PALETTE.BIN
Copy: Dune 2000/data/GAMESFX
Copy@3: Dune 2000/data/GAMESFX
^SupportDir|Content/d2k/v3/GAMESFX/A_ECONF2.AUD: A_ECONF2.AUD
^SupportDir|Content/d2k/v3/GAMESFX/A_ECONF1.AUD: A_ECONF1.AUD
^SupportDir|Content/d2k/v3/GAMESFX/A_ECONF3.AUD: A_ECONF3.AUD