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:
@@ -5,10 +5,10 @@ fstorm: Firestorm Expansion Disc (English)
|
||||
Install/Language.dll: 4df87c1a2289da57dd14d0a7299546f37357fcca
|
||||
Install:
|
||||
# Firestorm expansion files:
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm:
|
||||
Name: fstorm
|
||||
Actions:
|
||||
ExtractMix: Install/expand01.mix
|
||||
ExtractMix@1: Install/expand01.mix
|
||||
^SupportDir|Content/ts/firestorm/m_emp.vxl: m_emp.vxl
|
||||
^SupportDir|Content/ts/firestorm/mwar_nod.vxl: mwar_nod.vxl
|
||||
^SupportDir|Content/ts/firestorm/djuggbar.vxl: djuggbar.vxl
|
||||
@@ -32,7 +32,7 @@ fstorm: Firestorm Expansion Disc (English)
|
||||
^SupportDir|Content/ts/firestorm/sounds01.mix: sounds01.mix
|
||||
^SupportDir|Content/ts/firestorm/isotemp.mix: isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/temperat.mix: temperat.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@2: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/blat01.tem: blat01.tem
|
||||
^SupportDir|Content/ts/firestorm/blat01a.tem: blat01a.tem
|
||||
^SupportDir|Content/ts/firestorm/blat02.tem: blat02.tem
|
||||
@@ -174,8 +174,8 @@ fstorm: Firestorm Expansion Disc (English)
|
||||
^SupportDir|Content/ts/firestorm/swamp07.tem: swamp07.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp08.tem: swamp08.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp09.tem: swamp09.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@3: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@4: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
^SupportDir|Content/ts/firestorm/fona01.tem: fona01.tem
|
||||
^SupportDir|Content/ts/firestorm/fona02.tem: fona02.tem
|
||||
^SupportDir|Content/ts/firestorm/fona03.tem: fona03.tem
|
||||
@@ -192,9 +192,9 @@ fstorm: Firestorm Expansion Disc (English)
|
||||
^SupportDir|Content/ts/firestorm/fona14.tem: fona14.tem
|
||||
^SupportDir|Content/ts/firestorm/fona15.tem: fona15.tem
|
||||
^SupportDir|Content/ts/firestorm/bigblue3.tem: bigblue3.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@5: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
# Firestorm expansion music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm-music:
|
||||
Name: fstorm-music
|
||||
Actions:
|
||||
Copy: .
|
||||
|
||||
@@ -14,7 +14,7 @@ tfd: C&C The First Decade (English)
|
||||
^SupportDir|Content/ts/tibsun.mix: Tiberian Sun\SUN\TIBSUN.MIX
|
||||
^SupportDir|Content/ts/expand01.mix: Tiberian Sun\SUN\expand01.mix
|
||||
# Base game files:
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun:
|
||||
Name: tibsun
|
||||
Actions:
|
||||
ExtractMix: ^SupportDir|Content/ts/tibsun.mix
|
||||
@@ -34,10 +34,10 @@ tfd: C&C The First Decade (English)
|
||||
^SupportDir|Content/ts/temperat.mix: temperat.mix
|
||||
Delete: ^SupportDir|Content/ts/tibsun.mix
|
||||
# Firestorm expansion files:
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm:
|
||||
Name: fstorm
|
||||
Actions:
|
||||
ExtractMix: ^SupportDir|Content/ts/expand01.mix
|
||||
ExtractMix@1: ^SupportDir|Content/ts/expand01.mix
|
||||
^SupportDir|Content/ts/firestorm/m_emp.vxl: m_emp.vxl
|
||||
^SupportDir|Content/ts/firestorm/mwar_nod.vxl: mwar_nod.vxl
|
||||
^SupportDir|Content/ts/firestorm/djuggbar.vxl: djuggbar.vxl
|
||||
@@ -61,8 +61,8 @@ tfd: C&C The First Decade (English)
|
||||
^SupportDir|Content/ts/firestorm/sounds01.mix: sounds01.mix
|
||||
^SupportDir|Content/ts/firestorm/isotemp.mix: isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/temperat.mix: temperat.mix
|
||||
Delete: ^SupportDir|Content/ts/expand01.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
Delete@2: ^SupportDir|Content/ts/expand01.mix
|
||||
ExtractMix@3: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/blat01.tem: blat01.tem
|
||||
^SupportDir|Content/ts/firestorm/blat01a.tem: blat01a.tem
|
||||
^SupportDir|Content/ts/firestorm/blat02.tem: blat02.tem
|
||||
@@ -204,8 +204,8 @@ tfd: C&C The First Decade (English)
|
||||
^SupportDir|Content/ts/firestorm/swamp07.tem: swamp07.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp08.tem: swamp08.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp09.tem: swamp09.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@4: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@5: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
^SupportDir|Content/ts/firestorm/fona01.tem: fona01.tem
|
||||
^SupportDir|Content/ts/firestorm/fona02.tem: fona02.tem
|
||||
^SupportDir|Content/ts/firestorm/fona03.tem: fona03.tem
|
||||
@@ -222,24 +222,24 @@ tfd: C&C The First Decade (English)
|
||||
^SupportDir|Content/ts/firestorm/fona14.tem: fona14.tem
|
||||
^SupportDir|Content/ts/firestorm/fona15.tem: fona15.tem
|
||||
^SupportDir|Content/ts/firestorm/bigblue3.tem: bigblue3.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@6: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
# Base game music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun-music:
|
||||
Name: tibsun-music
|
||||
Actions:
|
||||
ExtractIscab: data1.hdr
|
||||
Volumes:
|
||||
6: data6.cab
|
||||
7: data7.cab
|
||||
Extract:
|
||||
^SupportDir|Content/ts/scores.mix: Tiberian Sun\SUN\SCORES.MIX
|
||||
ExtractIscab: data1.hdr
|
||||
Volumes:
|
||||
6: data6.cab
|
||||
7: data7.cab
|
||||
Extract:
|
||||
^SupportDir|Content/ts/scores.mix: Tiberian Sun\SUN\SCORES.MIX
|
||||
# Firestorm expansion music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm-music:
|
||||
Name: fstorm-music
|
||||
Actions:
|
||||
ExtractIscab: data1.hdr
|
||||
Volumes:
|
||||
6: data6.cab
|
||||
7: data7.cab
|
||||
Extract:
|
||||
^SupportDir|Content/ts/firestorm/scores01.mix: Tiberian Sun\SUN\scores01.mix
|
||||
ExtractIscab: data1.hdr
|
||||
Volumes:
|
||||
6: data6.cab
|
||||
7: data7.cab
|
||||
Extract:
|
||||
^SupportDir|Content/ts/firestorm/scores01.mix: Tiberian Sun\SUN\scores01.mix
|
||||
|
||||
@@ -7,7 +7,7 @@ origin: C&C The Ultimate Collection (Origin version, English)
|
||||
GDFBinary_en_US.dll: 4bb56a449bd0003e7ae67625d90a11ae169319d6
|
||||
Install:
|
||||
# Base game files:
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun:
|
||||
Name: tibsun
|
||||
Actions:
|
||||
ExtractMix: TIBSUN.MIX
|
||||
@@ -26,10 +26,10 @@ origin: C&C The Ultimate Collection (Origin version, English)
|
||||
^SupportDir|Content/ts/tem.mix: tem.mix
|
||||
^SupportDir|Content/ts/temperat.mix: temperat.mix
|
||||
# Firestorm expansion files:
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm:
|
||||
Name: fstorm
|
||||
Actions:
|
||||
ExtractMix: expand01.mix
|
||||
ExtractMix@1: expand01.mix
|
||||
^SupportDir|Content/ts/firestorm/m_emp.vxl: m_emp.vxl
|
||||
^SupportDir|Content/ts/firestorm/mwar_nod.vxl: mwar_nod.vxl
|
||||
^SupportDir|Content/ts/firestorm/djuggbar.vxl: djuggbar.vxl
|
||||
@@ -53,7 +53,7 @@ origin: C&C The Ultimate Collection (Origin version, English)
|
||||
^SupportDir|Content/ts/firestorm/sounds01.mix: sounds01.mix
|
||||
^SupportDir|Content/ts/firestorm/isotemp.mix: isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/temperat.mix: temperat.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@2: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/blat01.tem: blat01.tem
|
||||
^SupportDir|Content/ts/firestorm/blat01a.tem: blat01a.tem
|
||||
^SupportDir|Content/ts/firestorm/blat02.tem: blat02.tem
|
||||
@@ -195,8 +195,8 @@ origin: C&C The Ultimate Collection (Origin version, English)
|
||||
^SupportDir|Content/ts/firestorm/swamp07.tem: swamp07.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp08.tem: swamp08.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp09.tem: swamp09.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@3: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@4: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
^SupportDir|Content/ts/firestorm/fona01.tem: fona01.tem
|
||||
^SupportDir|Content/ts/firestorm/fona02.tem: fona02.tem
|
||||
^SupportDir|Content/ts/firestorm/fona03.tem: fona03.tem
|
||||
@@ -213,15 +213,15 @@ origin: C&C The Ultimate Collection (Origin version, English)
|
||||
^SupportDir|Content/ts/firestorm/fona14.tem: fona14.tem
|
||||
^SupportDir|Content/ts/firestorm/fona15.tem: fona15.tem
|
||||
^SupportDir|Content/ts/firestorm/bigblue3.tem: bigblue3.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@5: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
# Base game music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun-music:
|
||||
Name: tibsun-music
|
||||
Actions:
|
||||
Copy: .
|
||||
^SupportDir|Content/ts/scores.mix: SCORES.MIX
|
||||
# Firestorm expansion music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm-music:
|
||||
Name: fstorm-music
|
||||
Actions:
|
||||
Copy: .
|
||||
|
||||
@@ -5,7 +5,7 @@ steam: C&C The Ultimate Collection (Steam version, English)
|
||||
TIBSUN.MIX: fd298ff16983f226c58136a5345b7d9bf2b5f2e9
|
||||
Install:
|
||||
# Base game files:
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun:
|
||||
Name: tibsun
|
||||
Actions:
|
||||
ExtractMix: TIBSUN.MIX
|
||||
@@ -24,10 +24,10 @@ steam: C&C The Ultimate Collection (Steam version, English)
|
||||
^SupportDir|Content/ts/tem.mix: tem.mix
|
||||
^SupportDir|Content/ts/temperat.mix: temperat.mix
|
||||
# Firestorm expansion files:
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm:
|
||||
Name: fstorm
|
||||
Actions:
|
||||
ExtractMix: expand01.mix
|
||||
ExtractMix@1: expand01.mix
|
||||
^SupportDir|Content/ts/firestorm/m_emp.vxl: m_emp.vxl
|
||||
^SupportDir|Content/ts/firestorm/mwar_nod.vxl: mwar_nod.vxl
|
||||
^SupportDir|Content/ts/firestorm/djuggbar.vxl: djuggbar.vxl
|
||||
@@ -51,7 +51,7 @@ steam: C&C The Ultimate Collection (Steam version, English)
|
||||
^SupportDir|Content/ts/firestorm/sounds01.mix: sounds01.mix
|
||||
^SupportDir|Content/ts/firestorm/isotemp.mix: isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/temperat.mix: temperat.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@2: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
^SupportDir|Content/ts/firestorm/blat01.tem: blat01.tem
|
||||
^SupportDir|Content/ts/firestorm/blat01a.tem: blat01a.tem
|
||||
^SupportDir|Content/ts/firestorm/blat02.tem: blat02.tem
|
||||
@@ -193,8 +193,8 @@ steam: C&C The Ultimate Collection (Steam version, English)
|
||||
^SupportDir|Content/ts/firestorm/swamp07.tem: swamp07.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp08.tem: swamp08.tem
|
||||
^SupportDir|Content/ts/firestorm/swamp09.tem: swamp09.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@3: ^SupportDir|Content/ts/firestorm/isotemp.mix
|
||||
ExtractMix@4: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
^SupportDir|Content/ts/firestorm/fona01.tem: fona01.tem
|
||||
^SupportDir|Content/ts/firestorm/fona02.tem: fona02.tem
|
||||
^SupportDir|Content/ts/firestorm/fona03.tem: fona03.tem
|
||||
@@ -211,15 +211,15 @@ steam: C&C The Ultimate Collection (Steam version, English)
|
||||
^SupportDir|Content/ts/firestorm/fona14.tem: fona14.tem
|
||||
^SupportDir|Content/ts/firestorm/fona15.tem: fona15.tem
|
||||
^SupportDir|Content/ts/firestorm/bigblue3.tem: bigblue3.tem
|
||||
Delete: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
Delete@5: ^SupportDir|Content/ts/firestorm/temperat.mix
|
||||
# Base game music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun-music:
|
||||
Name: tibsun-music
|
||||
Actions:
|
||||
Copy: .
|
||||
^SupportDir|Content/ts/scores.mix: SCORES.MIX
|
||||
# Firestorm expansion music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@fstorm-music:
|
||||
Name: fstorm-music
|
||||
Actions:
|
||||
Copy: .
|
||||
|
||||
@@ -5,7 +5,7 @@ tibsun: Tiberian Sun (GDI or Nod Disc, English)
|
||||
AUTOPLAY.WAV: 2dfce5d00f98b641849c29942b651f4e98d30e30
|
||||
Install:
|
||||
# Base game files:
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun:
|
||||
Name: tibsun
|
||||
Actions:
|
||||
ExtractMix: INSTALL/TIBSUN.MIX
|
||||
@@ -24,7 +24,7 @@ tibsun: Tiberian Sun (GDI or Nod Disc, English)
|
||||
^SupportDir|Content/ts/tem.mix: tem.mix
|
||||
^SupportDir|Content/ts/temperat.mix: temperat.mix
|
||||
# Base game music (optional):
|
||||
ContentPackage:
|
||||
ContentPackage@tibsun-music:
|
||||
Name: tibsun-music
|
||||
Actions:
|
||||
Copy: .
|
||||
|
||||
Reference in New Issue
Block a user