Allow the ra/cnc package dir to be overridden at launch-time.

This commit is contained in:
Paul Chote
2011-01-19 17:54:24 +13:00
committed by Paul Chote
parent 3c1f5e18f9
commit 108b90f192
4 changed files with 10 additions and 3 deletions

View File

@@ -19,6 +19,7 @@ namespace OpenRA.FileFormats
public static class FileSystem
{
static List<IFolder> mountedFolders = new List<IFolder>();
public static string SpecialPackageRoot = "";
static Cache<uint, List<IFolder>> allFiles = new Cache<uint, List<IFolder>>( _ => new List<IFolder>() );
@@ -74,6 +75,10 @@ namespace OpenRA.FileFormats
var optional = name.StartsWith("~");
if (optional) name = name.Substring(1);
// paths starting with $ are relative to SpecialPackageRoot
if (name.StartsWith("$"))
name = SpecialPackageRoot+name.Substring(1);
var a = (Action)(() => FileSystem.MountInner(OpenPackage(name)));
if (optional)

View File

@@ -219,6 +219,8 @@ namespace OpenRA
+ Path.DirectorySeparatorChar + "OpenRA";
SupportDir = args.GetValue("SupportDir", defaultSupport);
FileSystem.SpecialPackageRoot = args.GetValue("SpecialPackageRoot", "");
Settings = new Settings(SupportDir + "settings.yaml", args);
Settings.Save();

View File

@@ -9,7 +9,7 @@ Folders:
mods/cnc
mods/cnc/bits
mods/cnc/uibits
mods/cnc/packages
$mods/cnc/packages
Packages:
overrides.mix

View File

@@ -10,7 +10,7 @@ Folders:
mods/ra
mods/ra/bits
mods/ra/uibits
mods/ra/packages
$mods/ra/packages
Packages:
~main.mix