Merge pull request #10703 from pchote/explicitpackages
Unify filesystem package syntax.
This commit is contained in:
@@ -21,6 +21,8 @@ namespace OpenRA.FileSystem
|
||||
{
|
||||
public IEnumerable<IReadOnlyPackage> MountedPackages { get { return mountedPackages.Keys; } }
|
||||
readonly Dictionary<IReadOnlyPackage, int> mountedPackages = new Dictionary<IReadOnlyPackage, int>();
|
||||
readonly Dictionary<string, IReadOnlyPackage> explicitMounts = new Dictionary<string, IReadOnlyPackage>();
|
||||
|
||||
Cache<string, List<IReadOnlyPackage>> fileIndex = new Cache<string, List<IReadOnlyPackage>>(_ => new List<IReadOnlyPackage>());
|
||||
|
||||
public IReadWritePackage CreatePackage(string filename, Dictionary<string, byte[]> content)
|
||||
@@ -54,7 +56,13 @@ namespace OpenRA.FileSystem
|
||||
if (filename.EndsWith(".hdr", StringComparison.InvariantCultureIgnoreCase))
|
||||
return new InstallShieldCABExtractor(this, filename);
|
||||
|
||||
return new Folder(filename);
|
||||
IReadOnlyPackage parent;
|
||||
string subPath = null;
|
||||
if (TryGetPackageContaining(filename, out parent, out subPath))
|
||||
if (parent is Folder)
|
||||
return new Folder(Path.Combine(((Folder)parent).Name, subPath));
|
||||
|
||||
return new Folder(Platform.ResolvePath(filename));
|
||||
}
|
||||
|
||||
public IReadWritePackage OpenWritablePackage(string filename)
|
||||
@@ -67,23 +75,27 @@ namespace OpenRA.FileSystem
|
||||
return new Folder(filename);
|
||||
}
|
||||
|
||||
public void Mount(string name)
|
||||
public void Mount(string name, string explicitName = null)
|
||||
{
|
||||
var optional = name.StartsWith("~");
|
||||
if (optional)
|
||||
name = name.Substring(1);
|
||||
|
||||
name = Platform.ResolvePath(name);
|
||||
var modPackage = name.StartsWith("$");
|
||||
if (modPackage)
|
||||
name = name.Substring(1);
|
||||
|
||||
Action a = () => Mount(OpenPackage(name));
|
||||
Action a = () => Mount(modPackage ? ModMetadata.AllMods[name].Package : OpenPackage(name), explicitName);
|
||||
if (optional)
|
||||
{
|
||||
try { a(); }
|
||||
catch { }
|
||||
}
|
||||
else
|
||||
a();
|
||||
}
|
||||
|
||||
public void Mount(IReadOnlyPackage package)
|
||||
public void Mount(IReadOnlyPackage package, string explicitName = null)
|
||||
{
|
||||
var mountCount = 0;
|
||||
if (mountedPackages.TryGetValue(package, out mountCount))
|
||||
@@ -101,6 +113,10 @@ namespace OpenRA.FileSystem
|
||||
{
|
||||
// Mounting the package for the first time
|
||||
mountedPackages.Add(package, 1);
|
||||
|
||||
if (explicitName != null)
|
||||
explicitMounts.Add(explicitName, package);
|
||||
|
||||
foreach (var filename in package.Contents)
|
||||
fileIndex[filename].Add(package);
|
||||
}
|
||||
@@ -118,6 +134,7 @@ namespace OpenRA.FileSystem
|
||||
packagesForFile.RemoveAll(p => p == package);
|
||||
|
||||
mountedPackages.Remove(package);
|
||||
explicitMounts.Remove(package.Name);
|
||||
package.Dispose();
|
||||
}
|
||||
else
|
||||
@@ -132,14 +149,15 @@ namespace OpenRA.FileSystem
|
||||
package.Dispose();
|
||||
|
||||
mountedPackages.Clear();
|
||||
explicitMounts.Clear();
|
||||
fileIndex = new Cache<string, List<IReadOnlyPackage>>(_ => new List<IReadOnlyPackage>());
|
||||
}
|
||||
|
||||
public void LoadFromManifest(Manifest manifest)
|
||||
{
|
||||
UnmountAll();
|
||||
foreach (var pkg in manifest.Packages)
|
||||
Mount(pkg);
|
||||
foreach (var kv in manifest.Packages)
|
||||
Mount(kv.Key, kv.Value);
|
||||
}
|
||||
|
||||
Stream GetFromCache(string filename)
|
||||
@@ -162,58 +180,64 @@ namespace OpenRA.FileSystem
|
||||
return s;
|
||||
}
|
||||
|
||||
public bool TryOpen(string name, out Stream s)
|
||||
public bool TryGetPackageContaining(string path, out IReadOnlyPackage package, out string filename)
|
||||
{
|
||||
var filename = name;
|
||||
var packageName = string.Empty;
|
||||
|
||||
// Used for faction specific packages; rule out false positive on Windows C:\ drive notation
|
||||
var explicitPackage = name.Contains(':') && !Directory.Exists(Path.GetDirectoryName(name));
|
||||
if (explicitPackage)
|
||||
var explicitSplit = path.IndexOf('|');
|
||||
if (explicitSplit > 0 && explicitMounts.TryGetValue(path.Substring(0, explicitSplit), out package))
|
||||
{
|
||||
var divide = name.Split(':');
|
||||
packageName = divide.First();
|
||||
filename = divide.Last();
|
||||
filename = path.Substring(explicitSplit + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check the cache for a quick lookup if the package name is unknown
|
||||
// TODO: This disables caching for explicit package requests
|
||||
if (filename.IndexOfAny(new[] { '/', '\\' }) == -1 && !explicitPackage)
|
||||
package = fileIndex[path].LastOrDefault(x => x.Contains(path));
|
||||
filename = path;
|
||||
|
||||
return package != null;
|
||||
}
|
||||
|
||||
public bool TryOpen(string filename, out Stream s)
|
||||
{
|
||||
var explicitSplit = filename.IndexOf('|');
|
||||
if (explicitSplit > 0)
|
||||
{
|
||||
s = GetFromCache(filename);
|
||||
if (s != null)
|
||||
return true;
|
||||
IReadOnlyPackage explicitPackage;
|
||||
if (explicitMounts.TryGetValue(filename.Substring(0, explicitSplit), out explicitPackage))
|
||||
{
|
||||
s = explicitPackage.GetStream(filename.Substring(explicitSplit + 1));
|
||||
if (s != null)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
s = GetFromCache(filename);
|
||||
if (s != null)
|
||||
return true;
|
||||
|
||||
// Ask each package individually
|
||||
IReadOnlyPackage package;
|
||||
if (explicitPackage && !string.IsNullOrEmpty(packageName))
|
||||
package = mountedPackages.Keys.LastOrDefault(x => x.Name == packageName);
|
||||
else
|
||||
package = mountedPackages.Keys.LastOrDefault(x => x.Contains(filename));
|
||||
|
||||
// TODO: This fallback can be removed once the filesystem cleanups are complete
|
||||
var package = mountedPackages.Keys.LastOrDefault(x => x.Contains(filename));
|
||||
if (package != null)
|
||||
{
|
||||
s = package.GetStream(filename);
|
||||
return true;
|
||||
return s != null;
|
||||
}
|
||||
|
||||
s = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool Exists(string name)
|
||||
public bool Exists(string filename)
|
||||
{
|
||||
var explicitPackage = name.Contains(':') && !Directory.Exists(Path.GetDirectoryName(name));
|
||||
if (explicitPackage)
|
||||
var explicitSplit = filename.IndexOf('|');
|
||||
if (explicitSplit > 0)
|
||||
{
|
||||
var divide = name.Split(':');
|
||||
var packageName = divide.First();
|
||||
var filename = divide.Last();
|
||||
return mountedPackages.Keys.Where(n => n.Name == packageName).Any(f => f.Contains(filename));
|
||||
IReadOnlyPackage explicitPackage;
|
||||
if (explicitMounts.TryGetValue(filename.Substring(0, explicitSplit), out explicitPackage))
|
||||
if (explicitPackage.Contains(filename.Substring(explicitSplit + 1)))
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return mountedPackages.Keys.Any(f => f.Contains(name));
|
||||
|
||||
return fileIndex.ContainsKey(filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,11 +35,12 @@ namespace OpenRA
|
||||
{
|
||||
public readonly ModMetadata Mod;
|
||||
public readonly string[]
|
||||
Packages, Rules, ServerTraits,
|
||||
Rules, ServerTraits,
|
||||
Sequences, VoxelSequences, Cursors, Chrome, Assemblies, ChromeLayout,
|
||||
Weapons, Voices, Notifications, Music, Translations, TileSets,
|
||||
ChromeMetrics, MapCompatibility, Missions;
|
||||
|
||||
public readonly IReadOnlyDictionary<string, string> Packages;
|
||||
public readonly IReadOnlyDictionary<string, string> MapFolders;
|
||||
public readonly MiniYaml LoadScreen;
|
||||
public readonly MiniYaml LobbyDefaults;
|
||||
@@ -69,23 +70,27 @@ namespace OpenRA
|
||||
Mod.Id = modId;
|
||||
|
||||
// TODO: Use fieldloader
|
||||
MapFolders = YamlDictionary(yaml, "MapFolders", true);
|
||||
Packages = YamlList(yaml, "Packages", true);
|
||||
Rules = YamlList(yaml, "Rules", true);
|
||||
Sequences = YamlList(yaml, "Sequences", true);
|
||||
VoxelSequences = YamlList(yaml, "VoxelSequences", true);
|
||||
Cursors = YamlList(yaml, "Cursors", true);
|
||||
Chrome = YamlList(yaml, "Chrome", true);
|
||||
Assemblies = YamlList(yaml, "Assemblies", true);
|
||||
ChromeLayout = YamlList(yaml, "ChromeLayout", true);
|
||||
Weapons = YamlList(yaml, "Weapons", true);
|
||||
Voices = YamlList(yaml, "Voices", true);
|
||||
Notifications = YamlList(yaml, "Notifications", true);
|
||||
Music = YamlList(yaml, "Music", true);
|
||||
Translations = YamlList(yaml, "Translations", true);
|
||||
TileSets = YamlList(yaml, "TileSets", true);
|
||||
ChromeMetrics = YamlList(yaml, "ChromeMetrics", true);
|
||||
Missions = YamlList(yaml, "Missions", true);
|
||||
MapFolders = YamlDictionary(yaml, "MapFolders");
|
||||
|
||||
MiniYaml packages;
|
||||
if (yaml.TryGetValue("Packages", out packages))
|
||||
Packages = packages.ToDictionary(x => x.Value).AsReadOnly();
|
||||
|
||||
Rules = YamlList(yaml, "Rules");
|
||||
Sequences = YamlList(yaml, "Sequences");
|
||||
VoxelSequences = YamlList(yaml, "VoxelSequences");
|
||||
Cursors = YamlList(yaml, "Cursors");
|
||||
Chrome = YamlList(yaml, "Chrome");
|
||||
Assemblies = YamlList(yaml, "Assemblies");
|
||||
ChromeLayout = YamlList(yaml, "ChromeLayout");
|
||||
Weapons = YamlList(yaml, "Weapons");
|
||||
Voices = YamlList(yaml, "Voices");
|
||||
Notifications = YamlList(yaml, "Notifications");
|
||||
Music = YamlList(yaml, "Music");
|
||||
Translations = YamlList(yaml, "Translations");
|
||||
TileSets = YamlList(yaml, "TileSets");
|
||||
ChromeMetrics = YamlList(yaml, "ChromeMetrics");
|
||||
Missions = YamlList(yaml, "Missions");
|
||||
|
||||
ServerTraits = YamlList(yaml, "ServerTraits");
|
||||
|
||||
@@ -96,10 +101,10 @@ namespace OpenRA
|
||||
throw new InvalidDataException("`LobbyDefaults` section is not defined.");
|
||||
|
||||
Fonts = yaml["Fonts"].ToDictionary(my =>
|
||||
{
|
||||
var nd = my.ToDictionary();
|
||||
return Pair.New(nd["Font"].Value, Exts.ParseIntegerInvariant(nd["Size"].Value));
|
||||
});
|
||||
{
|
||||
var nd = my.ToDictionary();
|
||||
return Pair.New(nd["Font"].Value, Exts.ParseIntegerInvariant(nd["Size"].Value));
|
||||
});
|
||||
|
||||
RequiresMods = yaml["RequiresMods"].ToDictionary(my => my.Value);
|
||||
|
||||
@@ -152,35 +157,15 @@ namespace OpenRA
|
||||
if (!yaml.ContainsKey(key))
|
||||
return new string[] { };
|
||||
|
||||
if (parsePaths)
|
||||
return yaml[key].Nodes.Select(node => Platform.ResolvePath(node.Key, node.Value.Value ?? string.Empty)).ToArray();
|
||||
|
||||
return yaml[key].ToDictionary().Keys.ToArray();
|
||||
}
|
||||
|
||||
static IReadOnlyDictionary<string, string> YamlDictionary(Dictionary<string, MiniYaml> yaml, string key, bool parsePaths = false)
|
||||
static IReadOnlyDictionary<string, string> YamlDictionary(Dictionary<string, MiniYaml> yaml, string key)
|
||||
{
|
||||
if (!yaml.ContainsKey(key))
|
||||
return new ReadOnlyDictionary<string, string>();
|
||||
|
||||
var inner = new Dictionary<string, string>();
|
||||
foreach (var node in yaml[key].Nodes)
|
||||
{
|
||||
var line = node.Key;
|
||||
if (node.Value.Value != null)
|
||||
line += ":" + node.Value.Value;
|
||||
|
||||
// '@' may be used in mod.yaml to indicate extra information (similar to trait @ tags).
|
||||
// Applies to MapFolders (to indicate System and User directories) and Packages (to indicate package annotation).
|
||||
if (line.Contains('@'))
|
||||
{
|
||||
var split = line.Split('@');
|
||||
inner.Add(parsePaths ? Platform.ResolvePath(split[0]) : split[0], split[1]);
|
||||
}
|
||||
else
|
||||
inner.Add(line, null);
|
||||
}
|
||||
|
||||
var inner = yaml[key].ToDictionary(my => my.Value);
|
||||
return new ReadOnlyDictionary<string, string>(inner);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using OpenRA.FileSystem;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
@@ -45,7 +46,8 @@ namespace OpenRA
|
||||
{
|
||||
// Expand the dictionary (dir path, dir type) to a dictionary of (map path, dir type)
|
||||
var mapPaths = modData.Manifest.MapFolders.SelectMany(kv =>
|
||||
FindMapsIn(kv.Key).ToDictionary(p => p, p => string.IsNullOrEmpty(kv.Value) ? MapClassification.Unknown : Enum<MapClassification>.Parse(kv.Value)));
|
||||
FindMapsIn(modData.ModFiles, kv.Key).ToDictionary(p => p, p => string.IsNullOrEmpty(kv.Value)
|
||||
? MapClassification.Unknown : Enum<MapClassification>.Parse(kv.Value)));
|
||||
|
||||
foreach (var path in mapPaths)
|
||||
{
|
||||
@@ -111,7 +113,7 @@ namespace OpenRA
|
||||
new Download(url, _ => { }, onInfoComplete);
|
||||
}
|
||||
|
||||
public static IEnumerable<string> FindMapsIn(string dir)
|
||||
public static IEnumerable<string> FindMapsIn(FileSystem.FileSystem context, string dir)
|
||||
{
|
||||
string[] noMaps = { };
|
||||
|
||||
@@ -119,9 +121,15 @@ namespace OpenRA
|
||||
if (dir.StartsWith("~"))
|
||||
dir = dir.Substring(1);
|
||||
|
||||
dir = Platform.ResolvePath(dir);
|
||||
|
||||
if (!Directory.Exists(dir))
|
||||
// HACK: We currently only support maps loaded from Folders
|
||||
// This is a temporary workaround that resolves the filesystem paths to a system directory
|
||||
IReadOnlyPackage package;
|
||||
string filename;
|
||||
if (context.TryGetPackageContaining(dir, out package, out filename))
|
||||
dir = Path.Combine(package.Name, filename);
|
||||
else if (Directory.Exists(Platform.ResolvePath(dir)))
|
||||
dir = Platform.ResolvePath(dir);
|
||||
else
|
||||
return noMaps;
|
||||
|
||||
var dirsWithMaps = Directory.GetDirectories(dir)
|
||||
|
||||
@@ -100,14 +100,6 @@ namespace OpenRA
|
||||
{
|
||||
path = path.TrimEnd(new char[] { ' ', '\t' });
|
||||
|
||||
// If the path contains ':', chances are it is a package path.
|
||||
// If it isn't, someone passed an already resolved path, which is wrong.
|
||||
if (path.IndexOf(":", StringComparison.Ordinal) > 1)
|
||||
{
|
||||
var split = path.Split(':');
|
||||
return ResolvePath(split[0], split[1]);
|
||||
}
|
||||
|
||||
// paths starting with ^ are relative to the support dir
|
||||
if (path.StartsWith("^"))
|
||||
path = SupportDir + path.Substring(1);
|
||||
@@ -119,16 +111,6 @@ namespace OpenRA
|
||||
return path;
|
||||
}
|
||||
|
||||
/// <summary>Replaces package names with full paths. Avoid using this for non-package paths.</summary>
|
||||
public static string ResolvePath(string package, string target)
|
||||
{
|
||||
// Resolve mod package paths.
|
||||
if (ModMetadata.AllMods.ContainsKey(package))
|
||||
package = ModMetadata.AllMods[package].Package.Name;
|
||||
|
||||
return ResolvePath(Path.Combine(package, target));
|
||||
}
|
||||
|
||||
/// <summary>Replace special character prefixes with full paths.</summary>
|
||||
public static string ResolvePath(params string[] path)
|
||||
{
|
||||
|
||||
@@ -12,6 +12,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using OpenRA.FileSystem;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
@@ -29,6 +30,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public SaveMapLogic(Widget widget, Action<string> onSave, Action onExit, Map map, List<MiniYamlNode> playerDefinitions, List<MiniYamlNode> actorDefinitions)
|
||||
{
|
||||
var modData = Game.ModData;
|
||||
var title = widget.Get<TextFieldWidget>("TITLE");
|
||||
title.Text = map.Title;
|
||||
|
||||
@@ -59,14 +61,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
Func<string, string> makeMapDirectory = dir =>
|
||||
{
|
||||
var f = Platform.UnresolvePath(dir);
|
||||
if (f.StartsWith("~"))
|
||||
f = f.Substring(1);
|
||||
if (dir.StartsWith("~"))
|
||||
dir = dir.Substring(1);
|
||||
|
||||
return f;
|
||||
IReadOnlyPackage package;
|
||||
string f;
|
||||
if (modData.ModFiles.TryGetPackageContaining(dir, out package, out f))
|
||||
dir = Path.Combine(package.Name, f);
|
||||
|
||||
return Platform.UnresolvePath(dir);
|
||||
};
|
||||
|
||||
var mapDirectories = Game.ModData.Manifest.MapFolders
|
||||
var mapDirectories = modData.Manifest.MapFolders
|
||||
.ToDictionary(kv => makeMapDirectory(kv.Key), kv => Enum<MapClassification>.Parse(kv.Value));
|
||||
|
||||
var directoryDropdown = widget.Get<DropDownButtonWidget>("DIRECTORY_DROPDOWN");
|
||||
@@ -147,7 +153,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (playerDefinitions != null)
|
||||
map.PlayerDefinitions = playerDefinitions;
|
||||
|
||||
map.RequiresMod = Game.ModData.Manifest.Mod.Id;
|
||||
map.RequiresMod = modData.Manifest.Mod.Id;
|
||||
|
||||
// Create the map directory if required
|
||||
Directory.CreateDirectory(Platform.ResolvePath(directoryDropdown.Text));
|
||||
@@ -156,13 +162,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
// Invalidate the old map metadata
|
||||
if (map.Uid != null && combinedPath == map.Path)
|
||||
Game.ModData.MapCache[map.Uid].Invalidate();
|
||||
modData.MapCache[map.Uid].Invalidate();
|
||||
|
||||
map.Save(combinedPath);
|
||||
|
||||
// Update the map cache so it can be loaded without restarting the game
|
||||
var classification = mapDirectories[directoryDropdown.Text];
|
||||
Game.ModData.MapCache[map.Uid].UpdateFromMap(map, classification);
|
||||
modData.MapCache[map.Uid].UpdateFromMap(map, classification);
|
||||
|
||||
Console.WriteLine("Saved current map at {0}", combinedPath);
|
||||
Ui.CloseWindow();
|
||||
|
||||
@@ -10,7 +10,8 @@ RequiresMods:
|
||||
Packages:
|
||||
~^Content/cnc
|
||||
.
|
||||
./mods/cnc
|
||||
$cnc: cnc
|
||||
./mods/common: common
|
||||
speech.mix
|
||||
conquer.mix
|
||||
sounds.mix
|
||||
@@ -24,122 +25,122 @@ Packages:
|
||||
~scores.mix
|
||||
~scores2.mix
|
||||
~transit.mix
|
||||
./mods/cnc/bits/snow.mix
|
||||
./mods/cnc/bits
|
||||
./mods/cnc/bits/jungle
|
||||
./mods/cnc/bits/desert
|
||||
./mods/cnc/bits/ss
|
||||
./mods/cnc/uibits
|
||||
cnc|bits/snow.mix
|
||||
cnc|bits
|
||||
cnc|bits/jungle
|
||||
cnc|bits/desert
|
||||
cnc|bits/ss
|
||||
cnc|uibits
|
||||
|
||||
MapFolders:
|
||||
./mods/cnc/maps@System
|
||||
~^maps/cnc/{DEV_VERSION}@User
|
||||
cnc|maps: System
|
||||
~^maps/cnc/{DEV_VERSION}: User
|
||||
|
||||
Rules:
|
||||
./mods/cnc/rules/misc.yaml
|
||||
./mods/cnc/rules/ai.yaml
|
||||
./mods/cnc/rules/player.yaml
|
||||
./mods/cnc/rules/world.yaml
|
||||
./mods/cnc/rules/palettes.yaml
|
||||
./mods/cnc/rules/defaults.yaml
|
||||
./mods/cnc/rules/structures.yaml
|
||||
./mods/cnc/rules/infantry.yaml
|
||||
./mods/cnc/rules/vehicles.yaml
|
||||
./mods/cnc/rules/trees.yaml
|
||||
./mods/cnc/rules/civilian.yaml
|
||||
./mods/cnc/rules/civilian-desert.yaml
|
||||
./mods/cnc/rules/tech.yaml
|
||||
./mods/cnc/rules/ships.yaml
|
||||
./mods/cnc/rules/aircraft.yaml
|
||||
./mods/cnc/rules/husks.yaml
|
||||
cnc|rules/misc.yaml
|
||||
cnc|rules/ai.yaml
|
||||
cnc|rules/player.yaml
|
||||
cnc|rules/world.yaml
|
||||
cnc|rules/palettes.yaml
|
||||
cnc|rules/defaults.yaml
|
||||
cnc|rules/structures.yaml
|
||||
cnc|rules/infantry.yaml
|
||||
cnc|rules/vehicles.yaml
|
||||
cnc|rules/trees.yaml
|
||||
cnc|rules/civilian.yaml
|
||||
cnc|rules/civilian-desert.yaml
|
||||
cnc|rules/tech.yaml
|
||||
cnc|rules/ships.yaml
|
||||
cnc|rules/aircraft.yaml
|
||||
cnc|rules/husks.yaml
|
||||
|
||||
Sequences:
|
||||
./mods/cnc/sequences/structures.yaml
|
||||
./mods/cnc/sequences/vehicles.yaml
|
||||
./mods/cnc/sequences/infantry.yaml
|
||||
./mods/cnc/sequences/aircraft.yaml
|
||||
./mods/cnc/sequences/decorations.yaml
|
||||
./mods/cnc/sequences/misc.yaml
|
||||
./mods/cnc/sequences/funpark.yaml
|
||||
./mods/cnc/sequences/civilian.yaml
|
||||
./mods/cnc/sequences/campaign.yaml
|
||||
cnc|sequences/structures.yaml
|
||||
cnc|sequences/vehicles.yaml
|
||||
cnc|sequences/infantry.yaml
|
||||
cnc|sequences/aircraft.yaml
|
||||
cnc|sequences/decorations.yaml
|
||||
cnc|sequences/misc.yaml
|
||||
cnc|sequences/funpark.yaml
|
||||
cnc|sequences/civilian.yaml
|
||||
cnc|sequences/campaign.yaml
|
||||
|
||||
TileSets:
|
||||
./mods/cnc/tilesets/desert.yaml
|
||||
./mods/cnc/tilesets/winter.yaml
|
||||
./mods/cnc/tilesets/snow.yaml
|
||||
./mods/cnc/tilesets/temperat.yaml
|
||||
./mods/cnc/tilesets/jungle.yaml
|
||||
cnc|tilesets/desert.yaml
|
||||
cnc|tilesets/winter.yaml
|
||||
cnc|tilesets/snow.yaml
|
||||
cnc|tilesets/temperat.yaml
|
||||
cnc|tilesets/jungle.yaml
|
||||
|
||||
Weapons:
|
||||
./mods/cnc/weapons/explosions.yaml
|
||||
./mods/cnc/weapons/largecaliber.yaml
|
||||
./mods/cnc/weapons/missiles.yaml
|
||||
./mods/cnc/weapons/other.yaml
|
||||
./mods/cnc/weapons/smallcaliber.yaml
|
||||
./mods/cnc/weapons/superweapons.yaml
|
||||
cnc|weapons/explosions.yaml
|
||||
cnc|weapons/largecaliber.yaml
|
||||
cnc|weapons/missiles.yaml
|
||||
cnc|weapons/other.yaml
|
||||
cnc|weapons/smallcaliber.yaml
|
||||
cnc|weapons/superweapons.yaml
|
||||
|
||||
Cursors:
|
||||
./mods/cnc/cursors.yaml
|
||||
cnc|cursors.yaml
|
||||
|
||||
Chrome:
|
||||
./mods/cnc/chrome.yaml
|
||||
cnc|chrome.yaml
|
||||
|
||||
Assemblies:
|
||||
./mods/common/OpenRA.Mods.Common.dll
|
||||
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||
common|OpenRA.Mods.Common.dll
|
||||
cnc|OpenRA.Mods.Cnc.dll
|
||||
|
||||
ChromeLayout:
|
||||
./mods/cnc/chrome/mainmenu.yaml
|
||||
./mods/cnc/chrome/multiplayer.yaml
|
||||
./mods/cnc/chrome/multiplayer-browser.yaml
|
||||
./mods/cnc/chrome/multiplayer-createserver.yaml
|
||||
./mods/cnc/chrome/multiplayer-directconnect.yaml
|
||||
./mods/cnc/chrome/multiplayer-globalchat.yaml
|
||||
./mods/cnc/chrome/lobby.yaml
|
||||
./mods/cnc/chrome/lobby-mappreview.yaml
|
||||
./mods/cnc/chrome/lobby-players.yaml
|
||||
./mods/cnc/chrome/lobby-options.yaml
|
||||
./mods/cnc/chrome/lobby-music.yaml
|
||||
./mods/cnc/chrome/lobby-kickdialogs.yaml
|
||||
./mods/cnc/chrome/lobby-globalchat.yaml
|
||||
./mods/cnc/chrome/connection.yaml
|
||||
./mods/cnc/chrome/color-picker.yaml
|
||||
./mods/cnc/chrome/mapchooser.yaml
|
||||
./mods/cnc/chrome/replaybrowser.yaml
|
||||
./mods/cnc/chrome/ingame.yaml
|
||||
./mods/cnc/chrome/ingame-chat.yaml
|
||||
./mods/cnc/chrome/ingame-menu.yaml
|
||||
./mods/cnc/chrome/ingame-debug.yaml
|
||||
./mods/cnc/chrome/ingame-info.yaml
|
||||
./mods/cnc/chrome/ingame-infobriefing.yaml
|
||||
./mods/cnc/chrome/ingame-infoscripterror.yaml
|
||||
./mods/cnc/chrome/ingame-infoobjectives.yaml
|
||||
./mods/cnc/chrome/ingame-infostats.yaml
|
||||
./mods/cnc/chrome/ingame-observerstats.yaml
|
||||
./mods/cnc/chrome/music.yaml
|
||||
./mods/cnc/chrome/settings.yaml
|
||||
./mods/cnc/chrome/credits.yaml
|
||||
./mods/cnc/chrome/dialogs.yaml
|
||||
./mods/cnc/chrome/tooltips.yaml
|
||||
./mods/cnc/chrome/assetbrowser.yaml
|
||||
./mods/cnc/chrome/missionbrowser.yaml
|
||||
./mods/cnc/chrome/editor.yaml
|
||||
cnc|chrome/mainmenu.yaml
|
||||
cnc|chrome/multiplayer.yaml
|
||||
cnc|chrome/multiplayer-browser.yaml
|
||||
cnc|chrome/multiplayer-createserver.yaml
|
||||
cnc|chrome/multiplayer-directconnect.yaml
|
||||
cnc|chrome/multiplayer-globalchat.yaml
|
||||
cnc|chrome/lobby.yaml
|
||||
cnc|chrome/lobby-mappreview.yaml
|
||||
cnc|chrome/lobby-players.yaml
|
||||
cnc|chrome/lobby-options.yaml
|
||||
cnc|chrome/lobby-music.yaml
|
||||
cnc|chrome/lobby-kickdialogs.yaml
|
||||
cnc|chrome/lobby-globalchat.yaml
|
||||
cnc|chrome/connection.yaml
|
||||
cnc|chrome/color-picker.yaml
|
||||
cnc|chrome/mapchooser.yaml
|
||||
cnc|chrome/replaybrowser.yaml
|
||||
cnc|chrome/ingame.yaml
|
||||
cnc|chrome/ingame-chat.yaml
|
||||
cnc|chrome/ingame-menu.yaml
|
||||
cnc|chrome/ingame-debug.yaml
|
||||
cnc|chrome/ingame-info.yaml
|
||||
cnc|chrome/ingame-infobriefing.yaml
|
||||
cnc|chrome/ingame-infoscripterror.yaml
|
||||
cnc|chrome/ingame-infoobjectives.yaml
|
||||
cnc|chrome/ingame-infostats.yaml
|
||||
cnc|chrome/ingame-observerstats.yaml
|
||||
cnc|chrome/music.yaml
|
||||
cnc|chrome/settings.yaml
|
||||
cnc|chrome/credits.yaml
|
||||
cnc|chrome/dialogs.yaml
|
||||
cnc|chrome/tooltips.yaml
|
||||
cnc|chrome/assetbrowser.yaml
|
||||
cnc|chrome/missionbrowser.yaml
|
||||
cnc|chrome/editor.yaml
|
||||
|
||||
Voices:
|
||||
./mods/cnc/audio/voices.yaml
|
||||
cnc|audio/voices.yaml
|
||||
|
||||
Notifications:
|
||||
./mods/cnc/audio/notifications.yaml
|
||||
cnc|audio/notifications.yaml
|
||||
|
||||
Music:
|
||||
./mods/cnc/audio/music.yaml
|
||||
cnc|audio/music.yaml
|
||||
|
||||
Translations:
|
||||
./mods/cnc/languages/english.yaml
|
||||
cnc|languages/english.yaml
|
||||
|
||||
LoadScreen: CncLoadScreen
|
||||
Image: ./mods/cnc/uibits/chrome.png
|
||||
Image: cnc|uibits/chrome.png
|
||||
Text: Loading
|
||||
|
||||
ContentInstaller:
|
||||
@@ -171,33 +172,33 @@ LobbyDefaults:
|
||||
TechLevel: Unrestricted
|
||||
|
||||
ChromeMetrics:
|
||||
./mods/common/metrics.yaml
|
||||
./mods/cnc/metrics.yaml
|
||||
common|metrics.yaml
|
||||
cnc|metrics.yaml
|
||||
|
||||
Fonts:
|
||||
Small:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:12
|
||||
Regular:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:14
|
||||
Bold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:14
|
||||
Title:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:32
|
||||
MediumBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:18
|
||||
BigBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:24
|
||||
Tiny:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:10
|
||||
TinyBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:10
|
||||
|
||||
Missions:
|
||||
|
||||
@@ -13,120 +13,124 @@ Packages:
|
||||
~^Content/d2k/Movies
|
||||
~^Content/d2k/Music
|
||||
.
|
||||
d2k:
|
||||
$d2k: d2k
|
||||
$ra: ra
|
||||
$cnc: cnc
|
||||
./mods/common: common
|
||||
|
||||
SOUND.RS
|
||||
d2k:bits
|
||||
d2k:bits/tex
|
||||
d2k:bits/xmas
|
||||
d2k:uibits
|
||||
d2k|bits
|
||||
d2k|bits/tex
|
||||
d2k|bits/xmas
|
||||
d2k|uibits
|
||||
|
||||
MapFolders:
|
||||
d2k:maps@System
|
||||
~^maps/d2k/{DEV_VERSION}@User
|
||||
d2k|maps: System
|
||||
~^maps/d2k/{DEV_VERSION}: User
|
||||
|
||||
Rules:
|
||||
d2k:rules/misc.yaml
|
||||
d2k:rules/ai.yaml
|
||||
d2k:rules/player.yaml
|
||||
d2k:rules/world.yaml
|
||||
d2k:rules/palettes.yaml
|
||||
d2k:rules/defaults.yaml
|
||||
d2k:rules/vehicles.yaml
|
||||
d2k:rules/starport.yaml
|
||||
d2k:rules/husks.yaml
|
||||
d2k:rules/structures.yaml
|
||||
d2k:rules/aircraft.yaml
|
||||
d2k:rules/infantry.yaml
|
||||
d2k:rules/arrakis.yaml
|
||||
d2k|rules/misc.yaml
|
||||
d2k|rules/ai.yaml
|
||||
d2k|rules/player.yaml
|
||||
d2k|rules/world.yaml
|
||||
d2k|rules/palettes.yaml
|
||||
d2k|rules/defaults.yaml
|
||||
d2k|rules/vehicles.yaml
|
||||
d2k|rules/starport.yaml
|
||||
d2k|rules/husks.yaml
|
||||
d2k|rules/structures.yaml
|
||||
d2k|rules/aircraft.yaml
|
||||
d2k|rules/infantry.yaml
|
||||
d2k|rules/arrakis.yaml
|
||||
|
||||
Sequences:
|
||||
d2k:sequences/aircraft.yaml
|
||||
d2k:sequences/vehicles.yaml
|
||||
d2k:sequences/infantry.yaml
|
||||
d2k:sequences/structures.yaml
|
||||
d2k:sequences/misc.yaml
|
||||
d2k|sequences/aircraft.yaml
|
||||
d2k|sequences/vehicles.yaml
|
||||
d2k|sequences/infantry.yaml
|
||||
d2k|sequences/structures.yaml
|
||||
d2k|sequences/misc.yaml
|
||||
|
||||
TileSets:
|
||||
d2k:tilesets/arrakis.yaml
|
||||
d2k|tilesets/arrakis.yaml
|
||||
|
||||
MapGrid:
|
||||
TileSize: 32,32
|
||||
Type: Rectangular
|
||||
|
||||
Cursors:
|
||||
d2k:cursors.yaml
|
||||
d2k|cursors.yaml
|
||||
|
||||
Chrome:
|
||||
d2k:chrome.yaml
|
||||
d2k|chrome.yaml
|
||||
|
||||
Assemblies:
|
||||
./mods/common/OpenRA.Mods.Common.dll
|
||||
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||
./mods/d2k/OpenRA.Mods.D2k.dll
|
||||
common|OpenRA.Mods.Common.dll
|
||||
cnc|OpenRA.Mods.Cnc.dll
|
||||
d2k|OpenRA.Mods.D2k.dll
|
||||
|
||||
ChromeLayout:
|
||||
d2k:chrome/ingame.yaml
|
||||
./mods/ra/chrome/ingame-chat.yaml
|
||||
./mods/ra/chrome/ingame-fmvplayer.yaml
|
||||
d2k:chrome/ingame-menu.yaml
|
||||
./mods/ra/chrome/ingame-info.yaml
|
||||
./mods/ra/chrome/ingame-infoscripterror.yaml
|
||||
./mods/ra/chrome/ingame-infobriefing.yaml
|
||||
./mods/ra/chrome/ingame-infoobjectives.yaml
|
||||
d2k:chrome/ingame-infostats.yaml
|
||||
d2k:chrome/ingame-observer.yaml
|
||||
./mods/ra/chrome/ingame-observerstats.yaml
|
||||
d2k:chrome/ingame-player.yaml
|
||||
./mods/ra/chrome/ingame-perf.yaml
|
||||
./mods/ra/chrome/ingame-debug.yaml
|
||||
d2k:chrome/mainmenu.yaml
|
||||
./mods/ra/chrome/settings.yaml
|
||||
./mods/ra/chrome/credits.yaml
|
||||
./mods/ra/chrome/lobby.yaml
|
||||
./mods/ra/chrome/lobby-mappreview.yaml
|
||||
d2k:chrome/lobby-players.yaml
|
||||
d2k:chrome/lobby-options.yaml
|
||||
./mods/ra/chrome/lobby-music.yaml
|
||||
./mods/ra/chrome/lobby-kickdialogs.yaml
|
||||
./mods/ra/chrome/lobby-globalchat.yaml
|
||||
d2k:chrome/color-picker.yaml
|
||||
./mods/ra/chrome/map-chooser.yaml
|
||||
./mods/ra/chrome/multiplayer.yaml
|
||||
./mods/ra/chrome/multiplayer-browser.yaml
|
||||
./mods/ra/chrome/multiplayer-createserver.yaml
|
||||
./mods/ra/chrome/multiplayer-directconnect.yaml
|
||||
./mods/ra/chrome/multiplayer-globalchat.yaml
|
||||
./mods/ra/chrome/connection.yaml
|
||||
d2k:chrome/dropdowns.yaml
|
||||
./mods/ra/chrome/musicplayer.yaml
|
||||
d2k:chrome/tooltips.yaml
|
||||
./mods/ra/chrome/assetbrowser.yaml
|
||||
d2k:chrome/missionbrowser.yaml
|
||||
./mods/ra/chrome/confirmation-dialogs.yaml
|
||||
./mods/ra/chrome/editor.yaml
|
||||
./mods/ra/chrome/replaybrowser.yaml
|
||||
d2k|chrome/ingame.yaml
|
||||
ra|chrome/ingame-chat.yaml
|
||||
ra|chrome/ingame-fmvplayer.yaml
|
||||
d2k|chrome/ingame-menu.yaml
|
||||
ra|chrome/ingame-info.yaml
|
||||
ra|chrome/ingame-infoscripterror.yaml
|
||||
ra|chrome/ingame-infobriefing.yaml
|
||||
ra|chrome/ingame-infoobjectives.yaml
|
||||
d2k|chrome/ingame-infostats.yaml
|
||||
d2k|chrome/ingame-observer.yaml
|
||||
ra|chrome/ingame-observerstats.yaml
|
||||
d2k|chrome/ingame-player.yaml
|
||||
ra|chrome/ingame-perf.yaml
|
||||
ra|chrome/ingame-debug.yaml
|
||||
d2k|chrome/mainmenu.yaml
|
||||
ra|chrome/settings.yaml
|
||||
ra|chrome/credits.yaml
|
||||
ra|chrome/lobby.yaml
|
||||
ra|chrome/lobby-mappreview.yaml
|
||||
d2k|chrome/lobby-players.yaml
|
||||
d2k|chrome/lobby-options.yaml
|
||||
ra|chrome/lobby-music.yaml
|
||||
ra|chrome/lobby-kickdialogs.yaml
|
||||
ra|chrome/lobby-globalchat.yaml
|
||||
d2k|chrome/color-picker.yaml
|
||||
ra|chrome/map-chooser.yaml
|
||||
ra|chrome/multiplayer.yaml
|
||||
ra|chrome/multiplayer-browser.yaml
|
||||
ra|chrome/multiplayer-createserver.yaml
|
||||
ra|chrome/multiplayer-directconnect.yaml
|
||||
ra|chrome/multiplayer-globalchat.yaml
|
||||
ra|chrome/connection.yaml
|
||||
d2k|chrome/dropdowns.yaml
|
||||
ra|chrome/musicplayer.yaml
|
||||
d2k|chrome/tooltips.yaml
|
||||
ra|chrome/assetbrowser.yaml
|
||||
d2k|chrome/missionbrowser.yaml
|
||||
ra|chrome/confirmation-dialogs.yaml
|
||||
ra|chrome/editor.yaml
|
||||
ra|chrome/replaybrowser.yaml
|
||||
|
||||
Weapons:
|
||||
d2k:weapons/debris.yaml
|
||||
d2k:weapons/smallguns.yaml
|
||||
d2k:weapons/largeguns.yaml
|
||||
d2k:weapons/missiles.yaml
|
||||
d2k:weapons/other.yaml
|
||||
d2k|weapons/debris.yaml
|
||||
d2k|weapons/smallguns.yaml
|
||||
d2k|weapons/largeguns.yaml
|
||||
d2k|weapons/missiles.yaml
|
||||
d2k|weapons/other.yaml
|
||||
|
||||
Voices:
|
||||
d2k:audio/voices.yaml
|
||||
d2k|audio/voices.yaml
|
||||
|
||||
Notifications:
|
||||
d2k:audio/notifications.yaml
|
||||
d2k|audio/notifications.yaml
|
||||
|
||||
Music:
|
||||
d2k:audio/music.yaml
|
||||
d2k|audio/music.yaml
|
||||
|
||||
Translations:
|
||||
d2k:languages/english.yaml
|
||||
d2k|languages/english.yaml
|
||||
|
||||
LoadScreen: LogoStripeLoadScreen
|
||||
Image: ./mods/d2k/uibits/loadscreen.png
|
||||
Image: d2k|uibits/loadscreen.png
|
||||
Text: Filling Crates..., Breeding Sandworms..., Fuelling carryalls..., Deploying harvesters..., Preparing 'thopters..., Summoning mentats...
|
||||
|
||||
ContentInstaller:
|
||||
@@ -161,37 +165,37 @@ LobbyDefaults:
|
||||
TechLevel: Unrestricted
|
||||
|
||||
ChromeMetrics:
|
||||
./mods/common/metrics.yaml
|
||||
d2k:metrics.yaml
|
||||
common|metrics.yaml
|
||||
d2k|metrics.yaml
|
||||
|
||||
Fonts:
|
||||
Regular:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:14
|
||||
Bold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:14
|
||||
Title:
|
||||
Font:./mods/d2k/Dune2k.ttf
|
||||
Font: d2k|Dune2k.ttf
|
||||
Size:32
|
||||
MediumBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:18
|
||||
BigBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:24
|
||||
Small:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:12
|
||||
Tiny:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:10
|
||||
TinyBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:10
|
||||
|
||||
Missions:
|
||||
d2k:missions.yaml
|
||||
d2k|missions.yaml
|
||||
|
||||
SupportsMapsFrom: d2k
|
||||
|
||||
|
||||
@@ -8,48 +8,49 @@ RequiresMods:
|
||||
|
||||
Packages:
|
||||
.
|
||||
./mods/modchooser
|
||||
./mods/modchooser: modchooser
|
||||
./mods/common: common
|
||||
|
||||
Cursors:
|
||||
./mods/modchooser/cursors.yaml
|
||||
modchooser|cursors.yaml
|
||||
|
||||
Chrome:
|
||||
./mods/modchooser/chrome.yaml
|
||||
modchooser|chrome.yaml
|
||||
|
||||
Assemblies:
|
||||
./mods/common/OpenRA.Mods.Common.dll
|
||||
common|OpenRA.Mods.Common.dll
|
||||
|
||||
ChromeLayout:
|
||||
./mods/modchooser/modchooser.yaml
|
||||
./mods/modchooser/install.yaml
|
||||
modchooser|modchooser.yaml
|
||||
modchooser|install.yaml
|
||||
|
||||
Notifications:
|
||||
./mods/modchooser/notifications.yaml
|
||||
modchooser|notifications.yaml
|
||||
|
||||
LoadScreen: ModChooserLoadScreen
|
||||
Image: ./mods/modchooser/chrome.png
|
||||
|
||||
ChromeMetrics:
|
||||
./mods/modchooser/metrics.yaml
|
||||
modchooser|metrics.yaml
|
||||
|
||||
Fonts:
|
||||
Regular:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:14
|
||||
Bold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:14
|
||||
BigBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:24
|
||||
MediumBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:18
|
||||
Tiny:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:10
|
||||
TinyBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:10
|
||||
|
||||
LobbyDefaults:
|
||||
|
||||
200
mods/ra/mod.yaml
200
mods/ra/mod.yaml
@@ -10,7 +10,9 @@ RequiresMods:
|
||||
Packages:
|
||||
~^Content/ra
|
||||
.
|
||||
./mods/ra
|
||||
$ra: ra
|
||||
$cnc: cnc
|
||||
./mods/common: common
|
||||
~main.mix
|
||||
redalert.mix
|
||||
conquer.mix
|
||||
@@ -26,121 +28,121 @@ Packages:
|
||||
~scores.mix
|
||||
~movies1.mix
|
||||
~movies2.mix
|
||||
./mods/ra/bits
|
||||
./mods/ra/bits/desert
|
||||
./mods/ra/uibits
|
||||
ra|bits
|
||||
ra|bits/desert
|
||||
ra|uibits
|
||||
|
||||
MapFolders:
|
||||
./mods/ra/maps@System
|
||||
~^maps/ra/{DEV_VERSION}@User
|
||||
ra|maps: System
|
||||
~^maps/ra/{DEV_VERSION}: User
|
||||
|
||||
Rules:
|
||||
./mods/ra/rules/misc.yaml
|
||||
./mods/ra/rules/ai.yaml
|
||||
./mods/ra/rules/player.yaml
|
||||
./mods/ra/rules/palettes.yaml
|
||||
./mods/ra/rules/world.yaml
|
||||
./mods/ra/rules/defaults.yaml
|
||||
./mods/ra/rules/vehicles.yaml
|
||||
./mods/ra/rules/husks.yaml
|
||||
./mods/ra/rules/structures.yaml
|
||||
./mods/ra/rules/infantry.yaml
|
||||
./mods/ra/rules/civilian.yaml
|
||||
./mods/ra/rules/decoration.yaml
|
||||
./mods/ra/rules/aircraft.yaml
|
||||
./mods/ra/rules/ships.yaml
|
||||
./mods/ra/rules/fakes.yaml
|
||||
ra|rules/misc.yaml
|
||||
ra|rules/ai.yaml
|
||||
ra|rules/player.yaml
|
||||
ra|rules/palettes.yaml
|
||||
ra|rules/world.yaml
|
||||
ra|rules/defaults.yaml
|
||||
ra|rules/vehicles.yaml
|
||||
ra|rules/husks.yaml
|
||||
ra|rules/structures.yaml
|
||||
ra|rules/infantry.yaml
|
||||
ra|rules/civilian.yaml
|
||||
ra|rules/decoration.yaml
|
||||
ra|rules/aircraft.yaml
|
||||
ra|rules/ships.yaml
|
||||
ra|rules/fakes.yaml
|
||||
|
||||
Sequences:
|
||||
./mods/ra/sequences/ships.yaml
|
||||
./mods/ra/sequences/vehicles.yaml
|
||||
./mods/ra/sequences/structures.yaml
|
||||
./mods/ra/sequences/infantry.yaml
|
||||
./mods/ra/sequences/aircraft.yaml
|
||||
./mods/ra/sequences/misc.yaml
|
||||
./mods/ra/sequences/decorations.yaml
|
||||
ra|sequences/ships.yaml
|
||||
ra|sequences/vehicles.yaml
|
||||
ra|sequences/structures.yaml
|
||||
ra|sequences/infantry.yaml
|
||||
ra|sequences/aircraft.yaml
|
||||
ra|sequences/misc.yaml
|
||||
ra|sequences/decorations.yaml
|
||||
|
||||
TileSets:
|
||||
./mods/ra/tilesets/snow.yaml
|
||||
./mods/ra/tilesets/interior.yaml
|
||||
./mods/ra/tilesets/temperat.yaml
|
||||
./mods/ra/tilesets/desert.yaml
|
||||
ra|tilesets/snow.yaml
|
||||
ra|tilesets/interior.yaml
|
||||
ra|tilesets/temperat.yaml
|
||||
ra|tilesets/desert.yaml
|
||||
|
||||
Cursors:
|
||||
./mods/ra/cursors.yaml
|
||||
ra|cursors.yaml
|
||||
|
||||
Chrome:
|
||||
./mods/ra/chrome.yaml
|
||||
ra|chrome.yaml
|
||||
|
||||
Assemblies:
|
||||
./mods/common/OpenRA.Mods.Common.dll
|
||||
./mods/ra/OpenRA.Mods.RA.dll
|
||||
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||
common|OpenRA.Mods.Common.dll
|
||||
ra|OpenRA.Mods.RA.dll
|
||||
cnc|OpenRA.Mods.Cnc.dll
|
||||
|
||||
ChromeLayout:
|
||||
./mods/ra/chrome/ingame.yaml
|
||||
./mods/ra/chrome/ingame-chat.yaml
|
||||
./mods/ra/chrome/ingame-fmvplayer.yaml
|
||||
./mods/ra/chrome/ingame-info.yaml
|
||||
./mods/ra/chrome/ingame-infoscripterror.yaml
|
||||
./mods/ra/chrome/ingame-infobriefing.yaml
|
||||
./mods/ra/chrome/ingame-infoobjectives.yaml
|
||||
./mods/ra/chrome/ingame-infostats.yaml
|
||||
./mods/ra/chrome/ingame-menu.yaml
|
||||
./mods/ra/chrome/ingame-observer.yaml
|
||||
./mods/ra/chrome/ingame-observerstats.yaml
|
||||
./mods/ra/chrome/ingame-player.yaml
|
||||
./mods/ra/chrome/ingame-perf.yaml
|
||||
./mods/ra/chrome/ingame-debug.yaml
|
||||
./mods/ra/chrome/mainmenu.yaml
|
||||
./mods/ra/chrome/settings.yaml
|
||||
./mods/ra/chrome/credits.yaml
|
||||
./mods/ra/chrome/lobby.yaml
|
||||
./mods/ra/chrome/lobby-mappreview.yaml
|
||||
./mods/ra/chrome/lobby-players.yaml
|
||||
./mods/ra/chrome/lobby-options.yaml
|
||||
./mods/ra/chrome/lobby-music.yaml
|
||||
./mods/ra/chrome/lobby-kickdialogs.yaml
|
||||
./mods/ra/chrome/lobby-globalchat.yaml
|
||||
./mods/ra/chrome/color-picker.yaml
|
||||
./mods/ra/chrome/map-chooser.yaml
|
||||
./mods/ra/chrome/multiplayer.yaml
|
||||
./mods/ra/chrome/multiplayer-browser.yaml
|
||||
./mods/ra/chrome/multiplayer-createserver.yaml
|
||||
./mods/ra/chrome/multiplayer-directconnect.yaml
|
||||
./mods/ra/chrome/multiplayer-globalchat.yaml
|
||||
./mods/ra/chrome/connection.yaml
|
||||
./mods/ra/chrome/replaybrowser.yaml
|
||||
./mods/ra/chrome/dropdowns.yaml
|
||||
./mods/ra/chrome/musicplayer.yaml
|
||||
./mods/ra/chrome/tooltips.yaml
|
||||
./mods/ra/chrome/assetbrowser.yaml
|
||||
./mods/ra/chrome/missionbrowser.yaml
|
||||
./mods/ra/chrome/confirmation-dialogs.yaml
|
||||
./mods/ra/chrome/editor.yaml
|
||||
ra|chrome/ingame.yaml
|
||||
ra|chrome/ingame-chat.yaml
|
||||
ra|chrome/ingame-fmvplayer.yaml
|
||||
ra|chrome/ingame-info.yaml
|
||||
ra|chrome/ingame-infoscripterror.yaml
|
||||
ra|chrome/ingame-infobriefing.yaml
|
||||
ra|chrome/ingame-infoobjectives.yaml
|
||||
ra|chrome/ingame-infostats.yaml
|
||||
ra|chrome/ingame-menu.yaml
|
||||
ra|chrome/ingame-observer.yaml
|
||||
ra|chrome/ingame-observerstats.yaml
|
||||
ra|chrome/ingame-player.yaml
|
||||
ra|chrome/ingame-perf.yaml
|
||||
ra|chrome/ingame-debug.yaml
|
||||
ra|chrome/mainmenu.yaml
|
||||
ra|chrome/settings.yaml
|
||||
ra|chrome/credits.yaml
|
||||
ra|chrome/lobby.yaml
|
||||
ra|chrome/lobby-mappreview.yaml
|
||||
ra|chrome/lobby-players.yaml
|
||||
ra|chrome/lobby-options.yaml
|
||||
ra|chrome/lobby-music.yaml
|
||||
ra|chrome/lobby-kickdialogs.yaml
|
||||
ra|chrome/lobby-globalchat.yaml
|
||||
ra|chrome/color-picker.yaml
|
||||
ra|chrome/map-chooser.yaml
|
||||
ra|chrome/multiplayer.yaml
|
||||
ra|chrome/multiplayer-browser.yaml
|
||||
ra|chrome/multiplayer-createserver.yaml
|
||||
ra|chrome/multiplayer-directconnect.yaml
|
||||
ra|chrome/multiplayer-globalchat.yaml
|
||||
ra|chrome/connection.yaml
|
||||
ra|chrome/replaybrowser.yaml
|
||||
ra|chrome/dropdowns.yaml
|
||||
ra|chrome/musicplayer.yaml
|
||||
ra|chrome/tooltips.yaml
|
||||
ra|chrome/assetbrowser.yaml
|
||||
ra|chrome/missionbrowser.yaml
|
||||
ra|chrome/confirmation-dialogs.yaml
|
||||
ra|chrome/editor.yaml
|
||||
|
||||
Weapons:
|
||||
./mods/ra/weapons/explosions.yaml
|
||||
./mods/ra/weapons/largecaliber.yaml
|
||||
./mods/ra/weapons/missiles.yaml
|
||||
./mods/ra/weapons/other.yaml
|
||||
./mods/ra/weapons/smallcaliber.yaml
|
||||
./mods/ra/weapons/superweapons.yaml
|
||||
ra|weapons/explosions.yaml
|
||||
ra|weapons/largecaliber.yaml
|
||||
ra|weapons/missiles.yaml
|
||||
ra|weapons/other.yaml
|
||||
ra|weapons/smallcaliber.yaml
|
||||
ra|weapons/superweapons.yaml
|
||||
|
||||
Voices:
|
||||
./mods/ra/audio/voices.yaml
|
||||
ra|audio/voices.yaml
|
||||
|
||||
Notifications:
|
||||
./mods/ra/audio/notifications.yaml
|
||||
ra|audio/notifications.yaml
|
||||
|
||||
Music:
|
||||
./mods/ra/audio/music.yaml
|
||||
ra|audio/music.yaml
|
||||
|
||||
Translations:
|
||||
./mods/ra/languages/english.yaml
|
||||
ra|languages/english.yaml
|
||||
|
||||
LoadScreen: LogoStripeLoadScreen
|
||||
Image: ./mods/ra/uibits/loadscreen.png
|
||||
Image: ra|uibits/loadscreen.png
|
||||
Text: Filling Crates..., Charging Capacitors..., Reticulating Splines..., Planting Trees..., Building Bridges..., Aging Empires..., Compiling EVA..., Constructing Pylons..., Activating Skynet..., Splitting Atoms...
|
||||
|
||||
ContentInstaller:
|
||||
@@ -173,37 +175,37 @@ LobbyDefaults:
|
||||
TechLevel: Unrestricted
|
||||
|
||||
ChromeMetrics:
|
||||
./mods/common/metrics.yaml
|
||||
./mods/ra/metrics.yaml
|
||||
common|metrics.yaml
|
||||
ra|metrics.yaml
|
||||
|
||||
Fonts:
|
||||
Regular:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:14
|
||||
Bold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:14
|
||||
Title:
|
||||
Font:./mods/ra/ZoodRangmah.ttf
|
||||
Font: ra|ZoodRangmah.ttf
|
||||
Size:48
|
||||
MediumBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:18
|
||||
BigBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:24
|
||||
Small:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:12
|
||||
Tiny:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:10
|
||||
TinyBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:10
|
||||
|
||||
Missions:
|
||||
./mods/ra/missions.yaml
|
||||
ra|missions.yaml
|
||||
|
||||
MapGrid:
|
||||
TileSize: 24,24
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Speech:
|
||||
Prefixes:
|
||||
gdi: speech01.mix:
|
||||
nod: speech02.mix:
|
||||
gdi: speech-gdi|
|
||||
nod: speech-nod|
|
||||
Notifications:
|
||||
AirUnitLost: 00-i074
|
||||
AirstrikeReady: 00-n160
|
||||
|
||||
235
mods/ts/mod.yaml
235
mods/ts/mod.yaml
@@ -10,7 +10,12 @@ RequiresMods:
|
||||
Packages:
|
||||
~^Content/ts
|
||||
.
|
||||
./mods/ts
|
||||
$ts: ts
|
||||
./mods/common: common
|
||||
$ra: ra
|
||||
$cnc: cnc
|
||||
$d2k: d2k
|
||||
|
||||
# Tiberian Sun
|
||||
~scores.mix
|
||||
~sidenc01.mix
|
||||
@@ -32,13 +37,13 @@ Packages:
|
||||
isosnow.mix
|
||||
isotemp.mix
|
||||
local.mix
|
||||
sidec01.mix
|
||||
sidec02.mix
|
||||
sidec01.mix: sidebar-gdi
|
||||
sidec02.mix: sidebar-nod
|
||||
sno.mix
|
||||
snow.mix
|
||||
sounds.mix
|
||||
speech01.mix # EVA
|
||||
speech02.mix # Cabal
|
||||
speech01.mix: speech-gdi
|
||||
speech02.mix: speech-nod
|
||||
tem.mix
|
||||
temperat.mix
|
||||
# Firestorm
|
||||
@@ -50,65 +55,65 @@ Packages:
|
||||
~e01vox01.mix
|
||||
~e01vox02.mix
|
||||
~ecache01.mix
|
||||
./mods/ts/bits
|
||||
./mods/ts/uibits
|
||||
ts|bits
|
||||
ts|uibits
|
||||
|
||||
MapFolders:
|
||||
./mods/ts/maps@System
|
||||
~^maps/ts/{DEV_VERSION}@User
|
||||
ts|maps: System
|
||||
~^maps/ts/{DEV_VERSION}: User
|
||||
|
||||
Rules:
|
||||
./mods/ts/rules/ai.yaml
|
||||
./mods/ts/rules/misc.yaml
|
||||
./mods/ts/rules/player.yaml
|
||||
./mods/ts/rules/world.yaml
|
||||
./mods/ts/rules/palettes.yaml
|
||||
./mods/ts/rules/defaults.yaml
|
||||
./mods/ts/rules/aircraft.yaml
|
||||
./mods/ts/rules/husks.yaml
|
||||
./mods/ts/rules/civilian-infantry.yaml
|
||||
./mods/ts/rules/civilian-structures.yaml
|
||||
./mods/ts/rules/civilian-vehicles.yaml
|
||||
./mods/ts/rules/gdi-infantry.yaml
|
||||
./mods/ts/rules/gdi-structures.yaml
|
||||
./mods/ts/rules/gdi-support.yaml
|
||||
./mods/ts/rules/gdi-vehicles.yaml
|
||||
./mods/ts/rules/nod-infantry.yaml
|
||||
./mods/ts/rules/nod-structures.yaml
|
||||
./mods/ts/rules/nod-support.yaml
|
||||
./mods/ts/rules/nod-vehicles.yaml
|
||||
./mods/ts/rules/shared-infantry.yaml
|
||||
./mods/ts/rules/shared-structures.yaml
|
||||
./mods/ts/rules/shared-support.yaml
|
||||
./mods/ts/rules/shared-vehicles.yaml
|
||||
./mods/ts/rules/trees.yaml
|
||||
ts|rules/ai.yaml
|
||||
ts|rules/misc.yaml
|
||||
ts|rules/player.yaml
|
||||
ts|rules/world.yaml
|
||||
ts|rules/palettes.yaml
|
||||
ts|rules/defaults.yaml
|
||||
ts|rules/aircraft.yaml
|
||||
ts|rules/husks.yaml
|
||||
ts|rules/civilian-infantry.yaml
|
||||
ts|rules/civilian-structures.yaml
|
||||
ts|rules/civilian-vehicles.yaml
|
||||
ts|rules/gdi-infantry.yaml
|
||||
ts|rules/gdi-structures.yaml
|
||||
ts|rules/gdi-support.yaml
|
||||
ts|rules/gdi-vehicles.yaml
|
||||
ts|rules/nod-infantry.yaml
|
||||
ts|rules/nod-structures.yaml
|
||||
ts|rules/nod-support.yaml
|
||||
ts|rules/nod-vehicles.yaml
|
||||
ts|rules/shared-infantry.yaml
|
||||
ts|rules/shared-structures.yaml
|
||||
ts|rules/shared-support.yaml
|
||||
ts|rules/shared-vehicles.yaml
|
||||
ts|rules/trees.yaml
|
||||
|
||||
Weapons:
|
||||
./mods/ts/weapons/bombsandgrenades.yaml
|
||||
./mods/ts/weapons/energyweapons.yaml
|
||||
./mods/ts/weapons/explosions.yaml
|
||||
./mods/ts/weapons/healweapons.yaml
|
||||
./mods/ts/weapons/largeguns.yaml
|
||||
./mods/ts/weapons/missiles.yaml
|
||||
./mods/ts/weapons/otherweapons.yaml
|
||||
./mods/ts/weapons/smallguns.yaml
|
||||
./mods/ts/weapons/superweapons.yaml
|
||||
ts|weapons/bombsandgrenades.yaml
|
||||
ts|weapons/energyweapons.yaml
|
||||
ts|weapons/explosions.yaml
|
||||
ts|weapons/healweapons.yaml
|
||||
ts|weapons/largeguns.yaml
|
||||
ts|weapons/missiles.yaml
|
||||
ts|weapons/otherweapons.yaml
|
||||
ts|weapons/smallguns.yaml
|
||||
ts|weapons/superweapons.yaml
|
||||
|
||||
Sequences:
|
||||
./mods/ts/sequences/aircraft.yaml
|
||||
./mods/ts/sequences/infantry.yaml
|
||||
./mods/ts/sequences/misc.yaml
|
||||
./mods/ts/sequences/civilian.yaml
|
||||
./mods/ts/sequences/structures.yaml
|
||||
./mods/ts/sequences/vehicles.yaml
|
||||
./mods/ts/sequences/trees.yaml
|
||||
ts|sequences/aircraft.yaml
|
||||
ts|sequences/infantry.yaml
|
||||
ts|sequences/misc.yaml
|
||||
ts|sequences/civilian.yaml
|
||||
ts|sequences/structures.yaml
|
||||
ts|sequences/vehicles.yaml
|
||||
ts|sequences/trees.yaml
|
||||
|
||||
VoxelSequences:
|
||||
./mods/ts/sequences/voxels.yaml
|
||||
ts|sequences/voxels.yaml
|
||||
|
||||
TileSets:
|
||||
./mods/ts/tilesets/temperate.yaml
|
||||
./mods/ts/tilesets/snow.yaml
|
||||
ts|tilesets/temperate.yaml
|
||||
ts|tilesets/snow.yaml
|
||||
|
||||
MapGrid:
|
||||
TileSize: 48,24
|
||||
@@ -118,75 +123,75 @@ MapGrid:
|
||||
SubCellDefaultIndex: 2
|
||||
|
||||
Cursors:
|
||||
./mods/ts/cursors.yaml
|
||||
ts|cursors.yaml
|
||||
|
||||
Chrome:
|
||||
./mods/ts/chrome.yaml
|
||||
ts|chrome.yaml
|
||||
|
||||
Assemblies:
|
||||
./mods/common/OpenRA.Mods.Common.dll
|
||||
./mods/ra/OpenRA.Mods.RA.dll
|
||||
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||
./mods/ts/OpenRA.Mods.TS.dll
|
||||
common|OpenRA.Mods.Common.dll
|
||||
ra|OpenRA.Mods.RA.dll
|
||||
cnc|OpenRA.Mods.Cnc.dll
|
||||
ts|OpenRA.Mods.TS.dll
|
||||
|
||||
ChromeLayout:
|
||||
./mods/ra/chrome/ingame.yaml
|
||||
./mods/ra/chrome/ingame-chat.yaml
|
||||
./mods/ra/chrome/ingame-fmvplayer.yaml
|
||||
./mods/ra/chrome/ingame-menu.yaml
|
||||
./mods/ts/chrome/ingame-info.yaml
|
||||
./mods/ra/chrome/ingame-infoscripterror.yaml
|
||||
./mods/ra/chrome/ingame-infobriefing.yaml
|
||||
./mods/ra/chrome/ingame-infoobjectives.yaml
|
||||
./mods/ra/chrome/ingame-infostats.yaml
|
||||
d2k:chrome/ingame-observer.yaml
|
||||
./mods/ts/chrome/ingame-observerstats.yaml
|
||||
./mods/ts/chrome/ingame-player.yaml
|
||||
./mods/ra/chrome/ingame-perf.yaml
|
||||
./mods/ts/chrome/ingame-debug.yaml
|
||||
./mods/ra/chrome/mainmenu.yaml
|
||||
./mods/ra/chrome/settings.yaml
|
||||
./mods/ra/chrome/credits.yaml
|
||||
./mods/ra/chrome/lobby.yaml
|
||||
./mods/ra/chrome/lobby-mappreview.yaml
|
||||
./mods/ra/chrome/lobby-players.yaml
|
||||
./mods/ra/chrome/lobby-options.yaml
|
||||
./mods/ra/chrome/lobby-music.yaml
|
||||
./mods/ra/chrome/lobby-kickdialogs.yaml
|
||||
./mods/ra/chrome/lobby-globalchat.yaml
|
||||
./mods/ts/chrome/color-picker.yaml
|
||||
./mods/ra/chrome/map-chooser.yaml
|
||||
./mods/ra/chrome/multiplayer.yaml
|
||||
./mods/ra/chrome/multiplayer-browser.yaml
|
||||
./mods/ra/chrome/multiplayer-createserver.yaml
|
||||
./mods/ra/chrome/multiplayer-directconnect.yaml
|
||||
./mods/ra/chrome/multiplayer-globalchat.yaml
|
||||
./mods/ra/chrome/connection.yaml
|
||||
./mods/ra/chrome/replaybrowser.yaml
|
||||
./mods/ts/chrome/dropdowns.yaml
|
||||
./mods/ra/chrome/musicplayer.yaml
|
||||
./mods/ra/chrome/tooltips.yaml
|
||||
./mods/ra/chrome/assetbrowser.yaml
|
||||
./mods/ra/chrome/missionbrowser.yaml
|
||||
./mods/ra/chrome/confirmation-dialogs.yaml
|
||||
./mods/ra/chrome/editor.yaml
|
||||
ra|chrome/ingame.yaml
|
||||
ra|chrome/ingame-chat.yaml
|
||||
ra|chrome/ingame-fmvplayer.yaml
|
||||
ra|chrome/ingame-menu.yaml
|
||||
ts|chrome/ingame-info.yaml
|
||||
ra|chrome/ingame-infoscripterror.yaml
|
||||
ra|chrome/ingame-infobriefing.yaml
|
||||
ra|chrome/ingame-infoobjectives.yaml
|
||||
ra|chrome/ingame-infostats.yaml
|
||||
d2k|chrome/ingame-observer.yaml
|
||||
ts|chrome/ingame-observerstats.yaml
|
||||
ts|chrome/ingame-player.yaml
|
||||
ra|chrome/ingame-perf.yaml
|
||||
ts|chrome/ingame-debug.yaml
|
||||
ra|chrome/mainmenu.yaml
|
||||
ra|chrome/settings.yaml
|
||||
ra|chrome/credits.yaml
|
||||
ra|chrome/lobby.yaml
|
||||
ra|chrome/lobby-mappreview.yaml
|
||||
ra|chrome/lobby-players.yaml
|
||||
ra|chrome/lobby-options.yaml
|
||||
ra|chrome/lobby-music.yaml
|
||||
ra|chrome/lobby-kickdialogs.yaml
|
||||
ra|chrome/lobby-globalchat.yaml
|
||||
ts|chrome/color-picker.yaml
|
||||
ra|chrome/map-chooser.yaml
|
||||
ra|chrome/multiplayer.yaml
|
||||
ra|chrome/multiplayer-browser.yaml
|
||||
ra|chrome/multiplayer-createserver.yaml
|
||||
ra|chrome/multiplayer-directconnect.yaml
|
||||
ra|chrome/multiplayer-globalchat.yaml
|
||||
ra|chrome/connection.yaml
|
||||
ra|chrome/replaybrowser.yaml
|
||||
ts|chrome/dropdowns.yaml
|
||||
ra|chrome/musicplayer.yaml
|
||||
ra|chrome/tooltips.yaml
|
||||
ra|chrome/assetbrowser.yaml
|
||||
ra|chrome/missionbrowser.yaml
|
||||
ra|chrome/confirmation-dialogs.yaml
|
||||
ra|chrome/editor.yaml
|
||||
|
||||
Voices:
|
||||
./mods/ts/audio/voices.yaml
|
||||
ts|audio/voices.yaml
|
||||
|
||||
Notifications:
|
||||
./mods/ts/audio/speech-generic.yaml
|
||||
./mods/ts/audio/speech-singleplayer.yaml
|
||||
./mods/ts/audio/sounds-generic.yaml
|
||||
ts|audio/speech-generic.yaml
|
||||
ts|audio/speech-singleplayer.yaml
|
||||
ts|audio/sounds-generic.yaml
|
||||
|
||||
Music:
|
||||
./mods/ts/audio/music.yaml
|
||||
ts|audio/music.yaml
|
||||
|
||||
Translations:
|
||||
./mods/ts/languages/english.yaml
|
||||
ts|languages/english.yaml
|
||||
|
||||
LoadScreen: LogoStripeLoadScreen
|
||||
Image: ./mods/ts/uibits/loadscreen.png
|
||||
Image: ts|uibits/loadscreen.png
|
||||
Text: Updating EVA installation..., Changing perspective...
|
||||
|
||||
ContentInstaller:
|
||||
@@ -218,33 +223,33 @@ LobbyDefaults:
|
||||
Fog: true
|
||||
|
||||
ChromeMetrics:
|
||||
./mods/common/metrics.yaml
|
||||
./mods/ts/metrics.yaml
|
||||
common|metrics.yaml
|
||||
ts|metrics.yaml
|
||||
|
||||
Fonts:
|
||||
Regular:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:14
|
||||
Bold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:14
|
||||
Title:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:32
|
||||
MediumBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:18
|
||||
BigBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:24
|
||||
Small:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:12
|
||||
Tiny:
|
||||
Font:./mods/common/FreeSans.ttf
|
||||
Font: common|FreeSans.ttf
|
||||
Size:10
|
||||
TinyBold:
|
||||
Font:./mods/common/FreeSansBold.ttf
|
||||
Font: common|FreeSansBold.ttf
|
||||
Size:10
|
||||
|
||||
SupportsMapsFrom: ts
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
Filename: anim.pal
|
||||
PaletteFromFile@sidebar:
|
||||
Name: sidebar
|
||||
Filename: sidec02.mix:sidebar.pal
|
||||
Filename: sidebar-nod|sidebar.pal
|
||||
PaletteFromPaletteWithAlpha@clock:
|
||||
Name: iconclock
|
||||
BasePalette: sidebar
|
||||
|
||||
@@ -66,7 +66,7 @@ e1.gdi:
|
||||
ShadowStart: 190
|
||||
die6: electro
|
||||
Length: *
|
||||
icon: sidec01.mix:e1icon
|
||||
icon: sidebar-gdi|e1icon
|
||||
|
||||
e1.nod:
|
||||
Defaults: e1
|
||||
@@ -136,7 +136,7 @@ e1.nod:
|
||||
ShadowStart: 190
|
||||
die6: electro
|
||||
Length: *
|
||||
icon: sidec02.mix:e1icon
|
||||
icon: sidebar-nod|e1icon
|
||||
|
||||
e2:
|
||||
Defaults:
|
||||
@@ -477,7 +477,7 @@ engineer.gdi:
|
||||
ShadowStart: 190
|
||||
die6: electro
|
||||
Length: *
|
||||
icon: sidec01.mix:engnicon
|
||||
icon: sidebar-gdi|engnicon
|
||||
|
||||
engineer.nod:
|
||||
Defaults: engineer
|
||||
@@ -539,7 +539,7 @@ engineer.nod:
|
||||
ShadowStart: 190
|
||||
die6: electro
|
||||
Length: *
|
||||
icon: sidec02.mix:engnicon
|
||||
icon: sidebar-nod|engnicon
|
||||
|
||||
umagon:
|
||||
Defaults:
|
||||
|
||||
@@ -912,7 +912,7 @@ napuls.gdi:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec01.mix:empicon
|
||||
icon: sidebar-gdi|empicon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -940,7 +940,7 @@ napuls.nod:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec02.mix:empicon
|
||||
icon: sidebar-nod|empicon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -1190,7 +1190,7 @@ proc.gdi:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec01.mix:reficon
|
||||
icon: sidebar-gdi|reficon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -1232,7 +1232,7 @@ proc.nod:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec02.mix:reficon
|
||||
icon: sidebar-nod|reficon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -1323,7 +1323,7 @@ gasilo.gdi:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec01.mix:siloicon
|
||||
icon: sidebar-gdi|siloicon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -1367,7 +1367,7 @@ gasilo.nod:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec02.mix:siloicon
|
||||
icon: sidebar-nod|siloicon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -1431,7 +1431,7 @@ gadept.gdi:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec01.mix:fixicon
|
||||
icon: sidebar-gdi|fixicon
|
||||
Offset: 0, 0
|
||||
UseTilesetCode: false
|
||||
|
||||
@@ -1495,7 +1495,7 @@ gadept.nod:
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
icon: sidec02.mix:fixicon
|
||||
icon: sidebar-nod|fixicon
|
||||
Offset: 76, 66
|
||||
UseTilesetCode: false
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@ mcv.gdi:
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
icon: sidec01.mix:mcvicon
|
||||
icon: sidebar-gdi|mcvicon
|
||||
|
||||
mcv.nod:
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
icon: sidec02.mix:mcvicon
|
||||
icon: sidebar-nod|mcvicon
|
||||
|
||||
apc:
|
||||
emp-overlay: emp_fx01
|
||||
@@ -22,7 +22,7 @@ harv.gdi:
|
||||
BlendMode: Additive
|
||||
harvest: harvestr
|
||||
Length: *
|
||||
icon: sidec01.mix:harvicon
|
||||
icon: sidebar-gdi|harvicon
|
||||
|
||||
harv.nod:
|
||||
emp-overlay: emp_fx01
|
||||
@@ -30,7 +30,7 @@ harv.nod:
|
||||
BlendMode: Additive
|
||||
harvest: harvestr
|
||||
Length: *
|
||||
icon: sidec02.mix:harvicon
|
||||
icon: sidebar-nod|harvicon
|
||||
|
||||
hvr:
|
||||
emp-overlay: emp_fx01
|
||||
@@ -56,7 +56,7 @@ lpst.gdi:
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
icon: sidec01.mix:lpsticon
|
||||
icon: sidebar-gdi|lpsticon
|
||||
|
||||
lpst.nod:
|
||||
idle: gadpsa
|
||||
@@ -69,7 +69,7 @@ lpst.nod:
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
icon: sidec02.mix:lpsticon
|
||||
icon: sidebar-nod|lpsticon
|
||||
|
||||
repair:
|
||||
emp-overlay: emp_fx01
|
||||
|
||||
Reference in New Issue
Block a user