Load assets using absolute paths. Fixes #6717.
This commit is contained in:
@@ -24,7 +24,7 @@ namespace OpenRA.CrashDialog
|
|||||||
[STAThread]
|
[STAThread]
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
settings = new Settings(Platform.SupportDir + "settings.yaml", new Arguments());
|
settings = new Settings(Platform.ResolvePath("^", "settings.yaml"), new Arguments());
|
||||||
|
|
||||||
var form = new Form
|
var form = new Form
|
||||||
{
|
{
|
||||||
@@ -95,7 +95,7 @@ namespace OpenRA.CrashDialog
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Process.Start(Platform.SupportDir + "Logs" + Path.DirectorySeparatorChar);
|
Process.Start(Platform.ResolvePath("^", "Logs"));
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,8 +27,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
public MapSelect(string currentMod)
|
public MapSelect(string currentMod)
|
||||||
{
|
{
|
||||||
MapFolderPath = new string[] { Platform.SupportDir, "maps", currentMod }
|
MapFolderPath = Platform.ResolvePath("^", "maps", currentMod);
|
||||||
.Aggregate(Path.Combine);
|
|
||||||
|
|
||||||
if (!Directory.Exists(MapFolderPath))
|
if (!Directory.Exists(MapFolderPath))
|
||||||
Directory.CreateDirectory(MapFolderPath);
|
Directory.CreateDirectory(MapFolderPath);
|
||||||
|
|||||||
@@ -104,20 +104,13 @@ namespace OpenRA.FileSystem
|
|||||||
return new Folder(filename, order);
|
return new Folder(filename, order);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Mount(string name)
|
public static void Mount(string name, string annotation = null)
|
||||||
{
|
|
||||||
Mount(name, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Mount(string name, string annotation)
|
|
||||||
{
|
{
|
||||||
var optional = name.StartsWith("~");
|
var optional = name.StartsWith("~");
|
||||||
if (optional)
|
if (optional)
|
||||||
name = name.Substring(1);
|
name = name.Substring(1);
|
||||||
|
|
||||||
// paths starting with ^ are relative to the support dir
|
name = Platform.ResolvePath(name);
|
||||||
if (name.StartsWith("^"))
|
|
||||||
name = Platform.SupportDir + name.Substring(1);
|
|
||||||
|
|
||||||
FolderPaths.Add(name);
|
FolderPaths.Add(name);
|
||||||
Action a = () => MountInner(OpenPackage(name, annotation, order++));
|
Action a = () => MountInner(OpenPackage(name, annotation, order++));
|
||||||
|
|||||||
@@ -180,9 +180,9 @@ namespace OpenRA
|
|||||||
|
|
||||||
AppDomain.CurrentDomain.AssemblyResolve += GlobalFileSystem.ResolveAssembly;
|
AppDomain.CurrentDomain.AssemblyResolve += GlobalFileSystem.ResolveAssembly;
|
||||||
|
|
||||||
Settings = new Settings(Platform.SupportDir + "settings.yaml", args);
|
Settings = new Settings(Platform.ResolvePath("^", "settings.yaml"), args);
|
||||||
|
|
||||||
Log.LogPath = Platform.SupportDir + "Logs" + Path.DirectorySeparatorChar;
|
Log.LogPath = Platform.ResolvePath("^", "Logs");
|
||||||
Log.AddChannel("perf", "perf.log");
|
Log.AddChannel("perf", "perf.log");
|
||||||
Log.AddChannel("debug", "debug.log");
|
Log.AddChannel("debug", "debug.log");
|
||||||
Log.AddChannel("sync", "syncreport.log");
|
Log.AddChannel("sync", "syncreport.log");
|
||||||
@@ -208,7 +208,7 @@ namespace OpenRA
|
|||||||
Log.Write("geoip", "DatabaseReader failed: {0}", e);
|
Log.Write("geoip", "DatabaseReader failed: {0}", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalFileSystem.Mount("."); // Needed to access shaders
|
GlobalFileSystem.Mount(Platform.GameDir); // Needed to access shaders
|
||||||
var renderers = new[] { Settings.Graphics.Renderer, "Sdl2", null };
|
var renderers = new[] { Settings.Graphics.Renderer, "Sdl2", null };
|
||||||
foreach (var r in renderers)
|
foreach (var r in renderers)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
public void InitializeFonts(Manifest m)
|
public void InitializeFonts(Manifest m)
|
||||||
{
|
{
|
||||||
Fonts = m.Fonts.ToDictionary(x => x.Key, x => new SpriteFont(x.Value.First, x.Value.Second));
|
Fonts = m.Fonts.ToDictionary(x => x.Key, x => new SpriteFont(Platform.ResolvePath(x.Value.First), x.Value.Second));
|
||||||
}
|
}
|
||||||
|
|
||||||
internal IGraphicsDevice Device { get { return device; } }
|
internal IGraphicsDevice Device { get { return device; } }
|
||||||
@@ -146,7 +146,7 @@ namespace OpenRA.Graphics
|
|||||||
var resolution = GetResolution(windowMode);
|
var resolution = GetResolution(windowMode);
|
||||||
|
|
||||||
var renderer = Game.Settings.Server.Dedicated ? "Null" : Game.Settings.Graphics.Renderer;
|
var renderer = Game.Settings.Server.Dedicated ? "Null" : Game.Settings.Graphics.Renderer;
|
||||||
var rendererPath = Path.GetFullPath("OpenRA.Renderer.{0}.dll".F(renderer));
|
var rendererPath = Platform.ResolvePath(".", "OpenRA.Renderer." + renderer + ".dll");
|
||||||
|
|
||||||
device = CreateDevice(Assembly.LoadFile(rendererPath), resolution.Width, resolution.Height, windowMode);
|
device = CreateDevice(Assembly.LoadFile(rendererPath), resolution.Width, resolution.Height, windowMode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@@ -55,35 +56,35 @@ namespace OpenRA
|
|||||||
|
|
||||||
public Manifest(string mod)
|
public Manifest(string mod)
|
||||||
{
|
{
|
||||||
var path = new[] { "mods", mod, "mod.yaml" }.Aggregate(Path.Combine);
|
var path = Platform.ResolvePath(".", "mods", mod, "mod.yaml");
|
||||||
var yaml = new MiniYaml(null, MiniYaml.FromFile(path)).ToDictionary();
|
var yaml = new MiniYaml(null, MiniYaml.FromFile(path)).ToDictionary();
|
||||||
|
|
||||||
Mod = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
|
Mod = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
|
||||||
Mod.Id = mod;
|
Mod.Id = mod;
|
||||||
|
|
||||||
// TODO: Use fieldloader
|
// TODO: Use fieldloader
|
||||||
Folders = YamlList(yaml, "Folders");
|
Folders = YamlList(yaml, "Folders", true);
|
||||||
MapFolders = YamlDictionary(yaml, "MapFolders");
|
MapFolders = YamlDictionary(yaml, "MapFolders", true);
|
||||||
Packages = YamlDictionary(yaml, "Packages");
|
Packages = YamlDictionary(yaml, "Packages", true);
|
||||||
Rules = YamlList(yaml, "Rules");
|
Rules = YamlList(yaml, "Rules", true);
|
||||||
ServerTraits = YamlList(yaml, "ServerTraits");
|
Sequences = YamlList(yaml, "Sequences", true);
|
||||||
Sequences = YamlList(yaml, "Sequences");
|
VoxelSequences = YamlList(yaml, "VoxelSequences", true);
|
||||||
VoxelSequences = YamlList(yaml, "VoxelSequences");
|
Cursors = YamlList(yaml, "Cursors", true);
|
||||||
Cursors = YamlList(yaml, "Cursors");
|
Chrome = YamlList(yaml, "Chrome", true);
|
||||||
Chrome = YamlList(yaml, "Chrome");
|
Assemblies = YamlList(yaml, "Assemblies", true);
|
||||||
Assemblies = YamlList(yaml, "Assemblies");
|
ChromeLayout = YamlList(yaml, "ChromeLayout", true);
|
||||||
ChromeLayout = YamlList(yaml, "ChromeLayout");
|
Weapons = YamlList(yaml, "Weapons", true);
|
||||||
Weapons = YamlList(yaml, "Weapons");
|
Voices = YamlList(yaml, "Voices", true);
|
||||||
Voices = YamlList(yaml, "Voices");
|
Notifications = YamlList(yaml, "Notifications", true);
|
||||||
Notifications = YamlList(yaml, "Notifications");
|
Music = YamlList(yaml, "Music", true);
|
||||||
Music = YamlList(yaml, "Music");
|
Movies = YamlList(yaml, "Movies", true);
|
||||||
Movies = YamlList(yaml, "Movies");
|
Translations = YamlList(yaml, "Translations", true);
|
||||||
Translations = YamlList(yaml, "Translations");
|
TileSets = YamlList(yaml, "TileSets", true);
|
||||||
TileSets = YamlList(yaml, "TileSets");
|
ChromeMetrics = YamlList(yaml, "ChromeMetrics", true);
|
||||||
ChromeMetrics = YamlList(yaml, "ChromeMetrics");
|
LuaScripts = YamlList(yaml, "LuaScripts", true);
|
||||||
LuaScripts = YamlList(yaml, "LuaScripts");
|
Missions = YamlList(yaml, "Missions", true);
|
||||||
Missions = YamlList(yaml, "Missions");
|
|
||||||
|
|
||||||
|
ServerTraits = YamlList(yaml, "ServerTraits");
|
||||||
LoadScreen = yaml["LoadScreen"];
|
LoadScreen = yaml["LoadScreen"];
|
||||||
LobbyDefaults = yaml["LobbyDefaults"];
|
LobbyDefaults = yaml["LobbyDefaults"];
|
||||||
|
|
||||||
@@ -134,20 +135,23 @@ namespace OpenRA
|
|||||||
SpriteFormats = FieldLoader.GetValue<string[]>("SpriteFormats", yaml["SpriteFormats"].Value);
|
SpriteFormats = FieldLoader.GetValue<string[]>("SpriteFormats", yaml["SpriteFormats"].Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static string[] YamlList(Dictionary<string, MiniYaml> yaml, string key)
|
static string[] YamlList(Dictionary<string, MiniYaml> yaml, string key, bool parsePaths = false)
|
||||||
{
|
{
|
||||||
if (!yaml.ContainsKey(key))
|
if (!yaml.ContainsKey(key))
|
||||||
return new string[] { };
|
return new string[] { };
|
||||||
|
|
||||||
return yaml[key].ToDictionary().Keys.ToArray();
|
var list = yaml[key].ToDictionary().Keys.ToArray();
|
||||||
|
return parsePaths ? list.Select(Platform.ResolvePath).ToArray() : list;
|
||||||
}
|
}
|
||||||
|
|
||||||
static IReadOnlyDictionary<string, string> YamlDictionary(Dictionary<string, MiniYaml> yaml, string key)
|
static IReadOnlyDictionary<string, string> YamlDictionary(Dictionary<string, MiniYaml> yaml, string key, bool parsePaths = false)
|
||||||
{
|
{
|
||||||
if (!yaml.ContainsKey(key))
|
if (!yaml.ContainsKey(key))
|
||||||
return new ReadOnlyDictionary<string, string>();
|
return new ReadOnlyDictionary<string, string>();
|
||||||
|
|
||||||
var inner = yaml[key].ToDictionary(my => my.Value);
|
Func<string, string> keySelector = parsePaths ? (Func<string, string>)Platform.ResolvePath : k => k;
|
||||||
|
var inner = yaml[key].ToDictionary(keySelector, my => my.Value);
|
||||||
|
|
||||||
return new ReadOnlyDictionary<string, string>(inner);
|
return new ReadOnlyDictionary<string, string>(inner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ namespace OpenRA
|
|||||||
if (dir.StartsWith("~"))
|
if (dir.StartsWith("~"))
|
||||||
dir = dir.Substring(1);
|
dir = dir.Substring(1);
|
||||||
|
|
||||||
// Paths starting with ^ are relative to the user directory
|
dir = Platform.ResolvePath(dir);
|
||||||
if (dir.StartsWith("^"))
|
|
||||||
dir = Platform.SupportDir + dir.Substring(1);
|
|
||||||
|
|
||||||
if (!Directory.Exists(dir))
|
if (!Directory.Exists(dir))
|
||||||
return noMaps;
|
return noMaps;
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ namespace OpenRA
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
Status = MapStatus.Downloading;
|
Status = MapStatus.Downloading;
|
||||||
var baseMapPath = new[] { Platform.SupportDir, "maps", Game.modData.Manifest.Mod.Id }.Aggregate(Path.Combine);
|
var baseMapPath = Platform.ResolvePath("^", "maps", Game.modData.Manifest.Mod.Id);
|
||||||
|
|
||||||
// Create the map directory if it doesn't exist
|
// Create the map directory if it doesn't exist
|
||||||
if (!Directory.Exists(baseMapPath))
|
if (!Directory.Exists(baseMapPath))
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
public class ModMetadata
|
public class ModMetadata
|
||||||
{
|
{
|
||||||
public static readonly Dictionary<string, ModMetadata> AllMods = ValidateMods(Directory.GetDirectories("mods").Select(x => x.Substring(5)).ToArray());
|
public static readonly Dictionary<string, ModMetadata> AllMods = ValidateMods();
|
||||||
|
|
||||||
public string Id;
|
public string Id;
|
||||||
public string Title;
|
public string Title;
|
||||||
@@ -24,12 +24,16 @@ namespace OpenRA
|
|||||||
public string Version;
|
public string Version;
|
||||||
public string Author;
|
public string Author;
|
||||||
|
|
||||||
public static Dictionary<string, ModMetadata> ValidateMods(string[] mods)
|
static Dictionary<string, ModMetadata> ValidateMods()
|
||||||
{
|
{
|
||||||
|
var basePath = Platform.ResolvePath(".", "mods");
|
||||||
|
var mods = Directory.GetDirectories(basePath)
|
||||||
|
.Select(x => x.Substring(basePath.Length + 1));
|
||||||
|
|
||||||
var ret = new Dictionary<string, ModMetadata>();
|
var ret = new Dictionary<string, ModMetadata>();
|
||||||
foreach (var m in mods)
|
foreach (var m in mods)
|
||||||
{
|
{
|
||||||
var yamlPath = new[] { "mods", m, "mod.yaml" }.Aggregate(Path.Combine);
|
var yamlPath = Platform.ResolvePath(".", "mods", m, "mod.yaml");
|
||||||
if (!File.Exists(yamlPath))
|
if (!File.Exists(yamlPath))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace OpenRA.Network
|
|||||||
{
|
{
|
||||||
var filename = chooseFilename();
|
var filename = chooseFilename();
|
||||||
var mod = Game.modData.Manifest.Mod;
|
var mod = Game.modData.Manifest.Mod;
|
||||||
var dir = new[] { Platform.SupportDir, "Replays", mod.Id, mod.Version }.Aggregate(Path.Combine);
|
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Version);
|
||||||
|
|
||||||
if (!Directory.Exists(dir))
|
if (!Directory.Exists(dir))
|
||||||
Directory.CreateDirectory(dir);
|
Directory.CreateDirectory(dir);
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace OpenRA
|
|||||||
// Namespaces from each mod assembly
|
// Namespaces from each mod assembly
|
||||||
foreach (var a in manifest.Assemblies)
|
foreach (var a in manifest.Assemblies)
|
||||||
{
|
{
|
||||||
var asm = Assembly.LoadFile(Path.GetFullPath(a));
|
var asm = Assembly.LoadFile(Platform.ResolvePath(a));
|
||||||
asms.AddRange(asm.GetNamespaces().Select(ns => Pair.New(asm, ns)));
|
asms.AddRange(asm.GetNamespaces().Select(ns => Pair.New(asm, ns)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,40 @@ namespace OpenRA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GameDir { get { return AppDomain.CurrentDomain.BaseDirectory; } }
|
||||||
|
|
||||||
|
/// <summary>Replace special character prefixes with full paths</summary>
|
||||||
|
public static string ResolvePath(string path)
|
||||||
|
{
|
||||||
|
// paths starting with ^ are relative to the support dir
|
||||||
|
if (path.StartsWith("^"))
|
||||||
|
path = SupportDir + path.Substring(1);
|
||||||
|
|
||||||
|
// paths starting with . are relative to the game dir
|
||||||
|
if (path.StartsWith("./") || path.StartsWith(".\\"))
|
||||||
|
path = GameDir + path.Substring(2);
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Replace special character prefixes with full paths</summary>
|
||||||
|
public static string ResolvePath(params string[] path)
|
||||||
|
{
|
||||||
|
return ResolvePath(path.Aggregate(Path.Combine));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Replace the full path prefix with the special notation characters ^ or .</summary>
|
||||||
|
public static string UnresolvePath(string path)
|
||||||
|
{
|
||||||
|
if (path.StartsWith(SupportDir))
|
||||||
|
path = "^" + path.Substring(SupportDir.Length);
|
||||||
|
|
||||||
|
if (path.StartsWith(GameDir))
|
||||||
|
path = "." + path.Substring(GameDir.Length);
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
public static void ShowFatalErrorDialog()
|
public static void ShowFatalErrorDialog()
|
||||||
{
|
{
|
||||||
var process = "OpenRA.CrashDialog.exe";
|
var process = "OpenRA.CrashDialog.exe";
|
||||||
|
|||||||
@@ -129,7 +129,8 @@ namespace OpenRA.Scripting
|
|||||||
.GetTypesImplementing<ScriptPlayerProperties>()
|
.GetTypesImplementing<ScriptPlayerProperties>()
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
runtime.DoBuffer(GlobalFileSystem.Open(Path.Combine("lua", "scriptwrapper.lua")).ReadAllText(), "scriptwrapper.lua").Dispose();
|
runtime.Globals["GameDir"] = Platform.GameDir;
|
||||||
|
runtime.DoBuffer(GlobalFileSystem.Open(Platform.ResolvePath(".", "lua", "scriptwrapper.lua")).ReadAllText(), "scriptwrapper.lua").Dispose();
|
||||||
tick = (LuaFunction)runtime.Globals["Tick"];
|
tick = (LuaFunction)runtime.Globals["Tick"];
|
||||||
|
|
||||||
// Register globals
|
// Register globals
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ namespace OpenRA.Server
|
|||||||
|
|
||||||
if (Settings.Dedicated)
|
if (Settings.Dedicated)
|
||||||
{
|
{
|
||||||
var motdFile = Path.Combine(Platform.SupportDir, "motd.txt");
|
var motdFile = Platform.ResolvePath("^", "motd.txt");
|
||||||
if (!File.Exists(motdFile))
|
if (!File.Exists(motdFile))
|
||||||
System.IO.File.WriteAllText(motdFile, "Welcome, have fun and good luck!");
|
System.IO.File.WriteAllText(motdFile, "Welcome, have fun and good luck!");
|
||||||
var motd = System.IO.File.ReadAllText(motdFile);
|
var motd = System.IO.File.ReadAllText(motdFile);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
public static class Log
|
public static class Log
|
||||||
{
|
{
|
||||||
static string LogPathPrefix = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + Path.DirectorySeparatorChar;
|
static string LogPathPrefix = ".";
|
||||||
public static readonly Dictionary<string, ChannelInfo> Channels = new Dictionary<string, ChannelInfo>();
|
public static readonly Dictionary<string, ChannelInfo> Channels = new Dictionary<string, ChannelInfo>();
|
||||||
|
|
||||||
public static string LogPath
|
public static string LogPath
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
static Dictionary<string, string> data = new Dictionary<string, string>();
|
static Dictionary<string, string> data = new Dictionary<string, string>();
|
||||||
|
|
||||||
public static void Initialize(string[] yaml)
|
public static void Initialize(IEnumerable<string> yaml)
|
||||||
{
|
{
|
||||||
data = new Dictionary<string, string>();
|
data = new Dictionary<string, string>();
|
||||||
var metrics = yaml.Select(y => MiniYaml.FromFile(y))
|
var metrics = yaml.Select(y => MiniYaml.FromFile(y))
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.Cnc
|
|||||||
r = Game.Renderer;
|
r = Game.Renderer;
|
||||||
if (r == null) return;
|
if (r == null) return;
|
||||||
|
|
||||||
var s = new Sheet(loadInfo["Image"]);
|
var s = new Sheet(Platform.ResolvePath(loadInfo["Image"]));
|
||||||
var res = r.Resolution;
|
var res = r.Resolution;
|
||||||
bounds = new Rectangle(0, 0, res.Width, res.Height);
|
bounds = new Rectangle(0, 0, res.Width, res.Height);
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
sourceDropdown.OnMouseDown = _ => ShowSourceDropdown(sourceDropdown);
|
sourceDropdown.OnMouseDown = _ => ShowSourceDropdown(sourceDropdown);
|
||||||
sourceDropdown.GetText = () =>
|
sourceDropdown.GetText = () =>
|
||||||
{
|
{
|
||||||
var name = assetSource != null ? assetSource.Name.Replace(Platform.SupportDir, "^") : "All Packages";
|
var name = assetSource != null ? Platform.UnresolvePath(assetSource.Name) : "All Packages";
|
||||||
if (name.Length > 15)
|
if (name.Length > 15)
|
||||||
name = "..." + name.Substring(name.Length - 15);
|
name = "..." + name.Substring(name.Length - 15);
|
||||||
|
|
||||||
@@ -324,7 +324,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||||
() => assetSource == source,
|
() => assetSource == source,
|
||||||
() => { assetSource = source; PopulateAssetList(); });
|
() => { assetSource = source; PopulateAssetList(); });
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => source != null ? source.Name.Replace(Platform.SupportDir, "^") : "All Packages";
|
item.Get<LabelWidget>("LABEL").GetText = () => source != null ? Platform.UnresolvePath(source.Name) : "All Packages";
|
||||||
return item;
|
return item;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var preview = new Bitmap(new[] { "mods", mod.Id, "preview.png" }.Aggregate(Path.Combine));
|
var preview = new Bitmap(Platform.ResolvePath(".", "mods", mod.Id, "preview.png"));
|
||||||
if (preview.Width != 296 || preview.Height != 196)
|
if (preview.Width != 296 || preview.Height != 196)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var logo = new Bitmap(new[] { "mods", mod.Id, "logo.png" }.Aggregate(Path.Combine));
|
var logo = new Bitmap(Platform.ResolvePath(".", "mods", mod.Id, "logo.png"));
|
||||||
if (logo.Width != 96 || logo.Height != 96)
|
if (logo.Width != 96 || logo.Height != 96)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
messages = info["Text"].Split(',');
|
messages = info["Text"].Split(',');
|
||||||
var s = new Sheet(info["Image"]);
|
var s = new Sheet(Platform.ResolvePath(info["Image"]));
|
||||||
logo = new Sprite(s, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha);
|
logo = new Sprite(s, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha);
|
||||||
stripe = new Sprite(s, new Rectangle(256, 0, 256, 256), TextureChannel.Alpha);
|
stripe = new Sprite(s, new Rectangle(256, 0, 256, 256), TextureChannel.Alpha);
|
||||||
stripeRect = new Rectangle(0, r.Resolution.Height / 2 - 128, r.Resolution.Width, 256);
|
stripeRect = new Rectangle(0, r.Resolution.Height / 2 - 128, r.Resolution.Width, 256);
|
||||||
|
|||||||
@@ -52,9 +52,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
|
|
||||||
var cancelButton = panel.Get<ButtonWidget>("CANCEL_BUTTON");
|
var cancelButton = panel.Get<ButtonWidget>("CANCEL_BUTTON");
|
||||||
|
|
||||||
var mirrorsFile = new string[] { Platform.SupportDir, "Content", Game.modData.Manifest.Mod.Id, "mirrors.txt" }.Aggregate(Path.Combine);
|
var mirrorsFile = Platform.ResolvePath("^", "Content", Game.modData.Manifest.Mod.Id, "mirrors.txt");
|
||||||
var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
|
var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
|
||||||
var dest = new string[] { Platform.SupportDir, "Content", Game.modData.Manifest.Mod.Id }.Aggregate(Path.Combine);
|
var dest = Platform.ResolvePath("^", "Content", Game.modData.Manifest.Mod.Id);
|
||||||
|
|
||||||
Action<DownloadProgressChangedEventArgs> onDownloadProgress = i =>
|
Action<DownloadProgressChangedEventArgs> onDownloadProgress = i =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
insertDiskContainer.IsVisible = () => false;
|
insertDiskContainer.IsVisible = () => false;
|
||||||
installingContainer.IsVisible = () => true;
|
installingContainer.IsVisible = () => true;
|
||||||
|
|
||||||
var dest = new string[] { Platform.SupportDir, "Content", Game.modData.Manifest.Mod.Id }.Aggregate(Path.Combine);
|
var dest = Platform.ResolvePath("^", "Content", Game.modData.Manifest.Mod.Id);
|
||||||
var copyFiles = Game.modData.Manifest.ContentInstaller.CopyFilesFromCD;
|
var copyFiles = Game.modData.Manifest.ContentInstaller.CopyFilesFromCD;
|
||||||
|
|
||||||
var packageToExtract = Game.modData.Manifest.ContentInstaller.PackageToExtractFromCD.Split(':');
|
var packageToExtract = Game.modData.Manifest.ContentInstaller.PackageToExtractFromCD.Split(':');
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
newsStatus = newsPanel.Get<LabelWidget>("NEWS_STATUS");
|
newsStatus = newsPanel.Get<LabelWidget>("NEWS_STATUS");
|
||||||
SetNewsStatus("Loading news");
|
SetNewsStatus("Loading news");
|
||||||
|
|
||||||
var cacheFile = Path.Combine(Platform.SupportDir, "news.yaml");
|
var cacheFile = Platform.ResolvePath("^", "news.yaml");
|
||||||
var currentNews = ParseNews(cacheFile);
|
var currentNews = ParseNews(cacheFile);
|
||||||
if (currentNews != null)
|
if (currentNews != null)
|
||||||
DisplayNews(currentNews);
|
DisplayNews(currentNews);
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
|
|
||||||
var yaml = new MiniYaml(null, Game.modData.Manifest.Missions.Select(MiniYaml.FromFile).Aggregate(MiniYaml.MergeLiberal)).ToDictionary();
|
var yaml = new MiniYaml(null, Game.modData.Manifest.Missions.Select(MiniYaml.FromFile).Aggregate(MiniYaml.MergeLiberal)).ToDictionary();
|
||||||
|
|
||||||
var missionMapPaths = yaml["Missions"].Nodes.Select(n => Path.GetFullPath(n.Key));
|
var missionMapPaths = yaml["Missions"].Nodes.Select(n => Platform.ResolvePath(n.Key));
|
||||||
|
|
||||||
var maps = Game.modData.MapCache
|
var maps = Game.modData.MapCache
|
||||||
.Where(p => p.Status == MapStatus.Available && missionMapPaths.Contains(Path.GetFullPath(p.Map.Path)))
|
.Where(p => p.Status == MapStatus.Available && missionMapPaths.Contains(Path.GetFullPath(p.Map.Path)))
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
var template = panel.Get<ScrollItemWidget>("REPLAY_TEMPLATE");
|
var template = panel.Get<ScrollItemWidget>("REPLAY_TEMPLATE");
|
||||||
|
|
||||||
var mod = Game.modData.Manifest.Mod;
|
var mod = Game.modData.Manifest.Mod;
|
||||||
var dir = new[] { Platform.SupportDir, "Replays", mod.Id, mod.Version }.Aggregate(Path.Combine);
|
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Version);
|
||||||
|
|
||||||
replayList.RemoveChildren();
|
replayList.RemoveChildren();
|
||||||
if (Directory.Exists(dir))
|
if (Directory.Exists(dir))
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ namespace OpenRA.TilesetBuilder
|
|||||||
|
|
||||||
public void Export(string outputDir)
|
public void Export(string outputDir)
|
||||||
{
|
{
|
||||||
var dir = Path.Combine(Path.GetDirectoryName(srcfile), Platform.SupportDir + outputDir);
|
var dir = Platform.ResolvePath("^", outputDir);
|
||||||
Directory.CreateDirectory(dir);
|
Directory.CreateDirectory(dir);
|
||||||
var tilesetName = txtTilesetName.Text;
|
var tilesetName = txtTilesetName.Text;
|
||||||
var tilesetID = txtID.Text;
|
var tilesetID = txtID.Text;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace OpenRA.Utility
|
|||||||
|
|
||||||
AppDomain.CurrentDomain.AssemblyResolve += GlobalFileSystem.ResolveAssembly;
|
AppDomain.CurrentDomain.AssemblyResolve += GlobalFileSystem.ResolveAssembly;
|
||||||
|
|
||||||
Log.LogPath = Platform.SupportDir + "Logs" + Path.DirectorySeparatorChar;
|
Log.LogPath = Platform.ResolvePath("^", "Logs");
|
||||||
Log.AddChannel("perf", null);
|
Log.AddChannel("perf", null);
|
||||||
|
|
||||||
var modName = args[0];
|
var modName = args[0];
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
environment = {}
|
environment = {}
|
||||||
|
|
||||||
-- Reset package path
|
-- Reset package path
|
||||||
package.path = "./lua/?.lua;./mods/common/lua/?.lua"
|
package.path = GameDir .. "/lua/?.lua"
|
||||||
|
|
||||||
-- Note: sandbox has been customized to remove math.random
|
-- Note: sandbox has been customized to remove math.random
|
||||||
local sandbox = require('sandbox')
|
local sandbox = require('sandbox')
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Missions:
|
Missions:
|
||||||
mods/cnc/maps/gdi01
|
./mods/cnc/maps/gdi01
|
||||||
mods/cnc/maps/gdi02
|
./mods/cnc/maps/gdi02
|
||||||
mods/cnc/maps/gdi03
|
./mods/cnc/maps/gdi03
|
||||||
mods/cnc/maps/gdi04a
|
./mods/cnc/maps/gdi04a
|
||||||
mods/cnc/maps/gdi04b
|
./mods/cnc/maps/gdi04b
|
||||||
mods/cnc/maps/gdi04c
|
./mods/cnc/maps/gdi04c
|
||||||
mods/cnc/maps/nod01
|
./mods/cnc/maps/nod01
|
||||||
mods/cnc/maps/nod03a
|
./mods/cnc/maps/nod03a
|
||||||
mods/cnc/maps/nod03b
|
./mods/cnc/maps/nod03b
|
||||||
|
|||||||
@@ -34,106 +34,106 @@ Packages:
|
|||||||
~transit.mix
|
~transit.mix
|
||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
mods/cnc/rules/misc.yaml
|
./mods/cnc/rules/misc.yaml
|
||||||
mods/cnc/rules/ai.yaml
|
./mods/cnc/rules/ai.yaml
|
||||||
mods/cnc/rules/player.yaml
|
./mods/cnc/rules/player.yaml
|
||||||
mods/cnc/rules/world.yaml
|
./mods/cnc/rules/world.yaml
|
||||||
mods/cnc/rules/defaults.yaml
|
./mods/cnc/rules/defaults.yaml
|
||||||
mods/cnc/rules/structures.yaml
|
./mods/cnc/rules/structures.yaml
|
||||||
mods/cnc/rules/infantry.yaml
|
./mods/cnc/rules/infantry.yaml
|
||||||
mods/cnc/rules/vehicles.yaml
|
./mods/cnc/rules/vehicles.yaml
|
||||||
mods/cnc/rules/trees.yaml
|
./mods/cnc/rules/trees.yaml
|
||||||
mods/cnc/rules/civilian.yaml
|
./mods/cnc/rules/civilian.yaml
|
||||||
mods/cnc/rules/civilian-desert.yaml
|
./mods/cnc/rules/civilian-desert.yaml
|
||||||
mods/cnc/rules/tech.yaml
|
./mods/cnc/rules/tech.yaml
|
||||||
mods/cnc/rules/ships.yaml
|
./mods/cnc/rules/ships.yaml
|
||||||
mods/cnc/rules/aircraft.yaml
|
./mods/cnc/rules/aircraft.yaml
|
||||||
mods/cnc/rules/husks.yaml
|
./mods/cnc/rules/husks.yaml
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
mods/cnc/sequences/structures.yaml
|
./mods/cnc/sequences/structures.yaml
|
||||||
mods/cnc/sequences/vehicles.yaml
|
./mods/cnc/sequences/vehicles.yaml
|
||||||
mods/cnc/sequences/infantry.yaml
|
./mods/cnc/sequences/infantry.yaml
|
||||||
mods/cnc/sequences/aircraft.yaml
|
./mods/cnc/sequences/aircraft.yaml
|
||||||
mods/cnc/sequences/decorations.yaml
|
./mods/cnc/sequences/decorations.yaml
|
||||||
mods/cnc/sequences/misc.yaml
|
./mods/cnc/sequences/misc.yaml
|
||||||
mods/cnc/sequences/funpark.yaml
|
./mods/cnc/sequences/funpark.yaml
|
||||||
mods/cnc/sequences/civilian.yaml
|
./mods/cnc/sequences/civilian.yaml
|
||||||
mods/cnc/sequences/campaign.yaml
|
./mods/cnc/sequences/campaign.yaml
|
||||||
|
|
||||||
Cursors:
|
Cursors:
|
||||||
mods/cnc/cursors.yaml
|
./mods/cnc/cursors.yaml
|
||||||
|
|
||||||
Chrome:
|
Chrome:
|
||||||
mods/cnc/chrome.yaml
|
./mods/cnc/chrome.yaml
|
||||||
|
|
||||||
Assemblies:
|
Assemblies:
|
||||||
mods/common/OpenRA.Mods.Common.dll
|
./mods/common/OpenRA.Mods.Common.dll
|
||||||
mods/ra/OpenRA.Mods.RA.dll
|
./mods/ra/OpenRA.Mods.RA.dll
|
||||||
mods/cnc/OpenRA.Mods.Cnc.dll
|
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||||
mods/d2k/OpenRA.Mods.D2k.dll
|
./mods/d2k/OpenRA.Mods.D2k.dll
|
||||||
|
|
||||||
ChromeLayout:
|
ChromeLayout:
|
||||||
mods/cnc/chrome/install.yaml
|
./mods/cnc/chrome/install.yaml
|
||||||
mods/cnc/chrome/mainmenu.yaml
|
./mods/cnc/chrome/mainmenu.yaml
|
||||||
mods/cnc/chrome/serverbrowser.yaml
|
./mods/cnc/chrome/serverbrowser.yaml
|
||||||
mods/cnc/chrome/createserver.yaml
|
./mods/cnc/chrome/createserver.yaml
|
||||||
mods/cnc/chrome/directconnect.yaml
|
./mods/cnc/chrome/directconnect.yaml
|
||||||
mods/cnc/chrome/lobby.yaml
|
./mods/cnc/chrome/lobby.yaml
|
||||||
mods/cnc/chrome/lobby-mappreview.yaml
|
./mods/cnc/chrome/lobby-mappreview.yaml
|
||||||
mods/cnc/chrome/lobby-playerbin.yaml
|
./mods/cnc/chrome/lobby-playerbin.yaml
|
||||||
mods/cnc/chrome/lobby-dialogs.yaml
|
./mods/cnc/chrome/lobby-dialogs.yaml
|
||||||
mods/cnc/chrome/connection.yaml
|
./mods/cnc/chrome/connection.yaml
|
||||||
mods/cnc/chrome/color-picker.yaml
|
./mods/cnc/chrome/color-picker.yaml
|
||||||
mods/cnc/chrome/mapchooser.yaml
|
./mods/cnc/chrome/mapchooser.yaml
|
||||||
mods/cnc/chrome/replaybrowser.yaml
|
./mods/cnc/chrome/replaybrowser.yaml
|
||||||
mods/cnc/chrome/ingame.yaml
|
./mods/cnc/chrome/ingame.yaml
|
||||||
mods/cnc/chrome/ingame-chat.yaml
|
./mods/cnc/chrome/ingame-chat.yaml
|
||||||
mods/cnc/chrome/ingame-menu.yaml
|
./mods/cnc/chrome/ingame-menu.yaml
|
||||||
mods/cnc/chrome/ingame-debug.yaml
|
./mods/cnc/chrome/ingame-debug.yaml
|
||||||
mods/cnc/chrome/ingame-info.yaml
|
./mods/cnc/chrome/ingame-info.yaml
|
||||||
mods/cnc/chrome/ingame-infobriefing.yaml
|
./mods/cnc/chrome/ingame-infobriefing.yaml
|
||||||
mods/cnc/chrome/ingame-infoobjectives.yaml
|
./mods/cnc/chrome/ingame-infoobjectives.yaml
|
||||||
mods/cnc/chrome/ingame-infostats.yaml
|
./mods/cnc/chrome/ingame-infostats.yaml
|
||||||
mods/cnc/chrome/ingame-leavemap.yaml
|
./mods/cnc/chrome/ingame-leavemap.yaml
|
||||||
mods/cnc/chrome/ingame-observerstats.yaml
|
./mods/cnc/chrome/ingame-observerstats.yaml
|
||||||
mods/cnc/chrome/music.yaml
|
./mods/cnc/chrome/music.yaml
|
||||||
mods/cnc/chrome/settings.yaml
|
./mods/cnc/chrome/settings.yaml
|
||||||
mods/cnc/chrome/credits.yaml
|
./mods/cnc/chrome/credits.yaml
|
||||||
mods/cnc/chrome/dialogs.yaml
|
./mods/cnc/chrome/dialogs.yaml
|
||||||
mods/cnc/chrome/tooltips.yaml
|
./mods/cnc/chrome/tooltips.yaml
|
||||||
mods/cnc/chrome/irc.yaml
|
./mods/cnc/chrome/irc.yaml
|
||||||
mods/cnc/chrome/assetbrowser.yaml
|
./mods/cnc/chrome/assetbrowser.yaml
|
||||||
mods/cnc/chrome/missionbrowser.yaml
|
./mods/cnc/chrome/missionbrowser.yaml
|
||||||
|
|
||||||
Weapons:
|
Weapons:
|
||||||
mods/cnc/weapons.yaml
|
./mods/cnc/weapons.yaml
|
||||||
|
|
||||||
Movies:
|
Movies:
|
||||||
mods/cnc/movies-gdi.yaml
|
./mods/cnc/movies-gdi.yaml
|
||||||
mods/cnc/movies-nod.yaml
|
./mods/cnc/movies-nod.yaml
|
||||||
|
|
||||||
Translations:
|
Translations:
|
||||||
mods/cnc/languages/english.yaml
|
./mods/cnc/languages/english.yaml
|
||||||
|
|
||||||
Voices:
|
Voices:
|
||||||
mods/cnc/voices.yaml
|
./mods/cnc/voices.yaml
|
||||||
|
|
||||||
Notifications:
|
Notifications:
|
||||||
mods/cnc/notifications.yaml
|
./mods/cnc/notifications.yaml
|
||||||
|
|
||||||
Music:
|
Music:
|
||||||
mods/cnc/music.yaml
|
./mods/cnc/music.yaml
|
||||||
|
|
||||||
TileSets:
|
TileSets:
|
||||||
mods/cnc/tilesets/desert.yaml
|
./mods/cnc/tilesets/desert.yaml
|
||||||
mods/cnc/tilesets/winter.yaml
|
./mods/cnc/tilesets/winter.yaml
|
||||||
mods/cnc/tilesets/snow.yaml
|
./mods/cnc/tilesets/snow.yaml
|
||||||
mods/cnc/tilesets/temperat.yaml
|
./mods/cnc/tilesets/temperat.yaml
|
||||||
mods/cnc/tilesets/jungle.yaml
|
./mods/cnc/tilesets/jungle.yaml
|
||||||
|
|
||||||
LoadScreen: CncLoadScreen
|
LoadScreen: CncLoadScreen
|
||||||
Image: mods/cnc/uibits/chrome.png
|
Image: ./mods/cnc/uibits/chrome.png
|
||||||
Text: Loading
|
Text: Loading
|
||||||
|
|
||||||
ContentInstaller:
|
ContentInstaller:
|
||||||
@@ -167,47 +167,47 @@ LobbyDefaults:
|
|||||||
TechLevel: Unrestricted
|
TechLevel: Unrestricted
|
||||||
|
|
||||||
ChromeMetrics:
|
ChromeMetrics:
|
||||||
mods/cnc/metrics.yaml
|
./mods/cnc/metrics.yaml
|
||||||
|
|
||||||
Fonts:
|
Fonts:
|
||||||
Regular:
|
Regular:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Bold:
|
Bold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Title:
|
Title:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:32
|
Size:32
|
||||||
MediumBold:
|
MediumBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:18
|
Size:18
|
||||||
BigBold:
|
BigBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:24
|
Size:24
|
||||||
Tiny:
|
Tiny:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:10
|
Size:10
|
||||||
TinyBold:
|
TinyBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:10
|
Size:10
|
||||||
|
|
||||||
LuaScripts:
|
LuaScripts:
|
||||||
mods/common/lua/utils.lua
|
./mods/common/lua/utils.lua
|
||||||
mods/common/lua/openra.lua
|
./mods/common/lua/openra.lua
|
||||||
mods/common/lua/map.lua
|
./mods/common/lua/map.lua
|
||||||
mods/common/lua/actor.lua
|
./mods/common/lua/actor.lua
|
||||||
mods/common/lua/team.lua
|
./mods/common/lua/team.lua
|
||||||
mods/common/lua/media.lua
|
./mods/common/lua/media.lua
|
||||||
mods/common/lua/mission.lua
|
./mods/common/lua/mission.lua
|
||||||
mods/common/lua/reinforcements.lua
|
./mods/common/lua/reinforcements.lua
|
||||||
mods/common/lua/supportpowers.lua
|
./mods/common/lua/supportpowers.lua
|
||||||
mods/common/lua/rules.lua
|
./mods/common/lua/rules.lua
|
||||||
mods/common/lua/production.lua
|
./mods/common/lua/production.lua
|
||||||
mods/common/lua/facing.lua
|
./mods/common/lua/facing.lua
|
||||||
|
|
||||||
Missions:
|
Missions:
|
||||||
mods/cnc/missions.yaml
|
./mods/cnc/missions.yaml
|
||||||
|
|
||||||
SupportsMapsFrom: cnc
|
SupportsMapsFrom: cnc
|
||||||
|
|
||||||
|
|||||||
@@ -24,100 +24,100 @@ Packages:
|
|||||||
SOUND.RS
|
SOUND.RS
|
||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
mods/d2k/rules/misc.yaml
|
./mods/d2k/rules/misc.yaml
|
||||||
mods/d2k/rules/ai.yaml
|
./mods/d2k/rules/ai.yaml
|
||||||
mods/d2k/rules/player.yaml
|
./mods/d2k/rules/player.yaml
|
||||||
mods/d2k/rules/world.yaml
|
./mods/d2k/rules/world.yaml
|
||||||
mods/d2k/rules/defaults.yaml
|
./mods/d2k/rules/defaults.yaml
|
||||||
mods/d2k/rules/vehicles.yaml
|
./mods/d2k/rules/vehicles.yaml
|
||||||
mods/d2k/rules/structures.yaml
|
./mods/d2k/rules/structures.yaml
|
||||||
mods/d2k/rules/aircraft.yaml
|
./mods/d2k/rules/aircraft.yaml
|
||||||
mods/d2k/rules/infantry.yaml
|
./mods/d2k/rules/infantry.yaml
|
||||||
mods/d2k/rules/atreides.yaml
|
./mods/d2k/rules/atreides.yaml
|
||||||
mods/d2k/rules/harkonnen.yaml
|
./mods/d2k/rules/harkonnen.yaml
|
||||||
mods/d2k/rules/ordos.yaml
|
./mods/d2k/rules/ordos.yaml
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
mods/d2k/sequences/aircraft.yaml
|
./mods/d2k/sequences/aircraft.yaml
|
||||||
mods/d2k/sequences/vehicles.yaml
|
./mods/d2k/sequences/vehicles.yaml
|
||||||
mods/d2k/sequences/infantry.yaml
|
./mods/d2k/sequences/infantry.yaml
|
||||||
mods/d2k/sequences/structures.yaml
|
./mods/d2k/sequences/structures.yaml
|
||||||
mods/d2k/sequences/misc.yaml
|
./mods/d2k/sequences/misc.yaml
|
||||||
|
|
||||||
Cursors:
|
Cursors:
|
||||||
mods/d2k/cursors.yaml
|
./mods/d2k/cursors.yaml
|
||||||
|
|
||||||
Chrome:
|
Chrome:
|
||||||
mods/d2k/chrome.yaml
|
./mods/d2k/chrome.yaml
|
||||||
|
|
||||||
Assemblies:
|
Assemblies:
|
||||||
mods/common/OpenRA.Mods.Common.dll
|
./mods/common/OpenRA.Mods.Common.dll
|
||||||
mods/ra/OpenRA.Mods.RA.dll
|
./mods/ra/OpenRA.Mods.RA.dll
|
||||||
mods/cnc/OpenRA.Mods.Cnc.dll
|
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||||
mods/d2k/OpenRA.Mods.D2k.dll
|
./mods/d2k/OpenRA.Mods.D2k.dll
|
||||||
|
|
||||||
ChromeLayout:
|
ChromeLayout:
|
||||||
mods/d2k/chrome/install.yaml
|
./mods/d2k/chrome/install.yaml
|
||||||
mods/d2k/chrome/ingame.yaml
|
./mods/d2k/chrome/ingame.yaml
|
||||||
mods/ra/chrome/ingame-chat.yaml
|
./mods/ra/chrome/ingame-chat.yaml
|
||||||
mods/ra/chrome/ingame-diplomacy.yaml
|
./mods/ra/chrome/ingame-diplomacy.yaml
|
||||||
mods/ra/chrome/ingame-fmvplayer.yaml
|
./mods/ra/chrome/ingame-fmvplayer.yaml
|
||||||
mods/d2k/chrome/ingame-menu.yaml
|
./mods/d2k/chrome/ingame-menu.yaml
|
||||||
mods/ra/chrome/ingame-info.yaml
|
./mods/ra/chrome/ingame-info.yaml
|
||||||
mods/ra/chrome/ingame-infobriefing.yaml
|
./mods/ra/chrome/ingame-infobriefing.yaml
|
||||||
mods/ra/chrome/ingame-infoobjectives.yaml
|
./mods/ra/chrome/ingame-infoobjectives.yaml
|
||||||
mods/ra/chrome/ingame-infostats.yaml
|
./mods/ra/chrome/ingame-infostats.yaml
|
||||||
mods/d2k/chrome/ingame-observer.yaml
|
./mods/d2k/chrome/ingame-observer.yaml
|
||||||
mods/ra/chrome/ingame-observerstats.yaml
|
./mods/ra/chrome/ingame-observerstats.yaml
|
||||||
mods/d2k/chrome/ingame-player.yaml
|
./mods/d2k/chrome/ingame-player.yaml
|
||||||
mods/ra/chrome/ingame-debug.yaml
|
./mods/ra/chrome/ingame-debug.yaml
|
||||||
mods/d2k/chrome/ingame-leavemap.yaml
|
./mods/d2k/chrome/ingame-leavemap.yaml
|
||||||
mods/d2k/chrome/mainmenu.yaml
|
./mods/d2k/chrome/mainmenu.yaml
|
||||||
mods/ra/chrome/settings.yaml
|
./mods/ra/chrome/settings.yaml
|
||||||
mods/ra/chrome/credits.yaml
|
./mods/ra/chrome/credits.yaml
|
||||||
mods/ra/chrome/lobby.yaml
|
./mods/ra/chrome/lobby.yaml
|
||||||
mods/ra/chrome/lobby-mappreview.yaml
|
./mods/ra/chrome/lobby-mappreview.yaml
|
||||||
mods/d2k/chrome/lobby-playerbin.yaml
|
./mods/d2k/chrome/lobby-playerbin.yaml
|
||||||
mods/ra/chrome/lobby-dialogs.yaml
|
./mods/ra/chrome/lobby-dialogs.yaml
|
||||||
mods/d2k/chrome/color-picker.yaml
|
./mods/d2k/chrome/color-picker.yaml
|
||||||
mods/ra/chrome/map-chooser.yaml
|
./mods/ra/chrome/map-chooser.yaml
|
||||||
mods/ra/chrome/create-server.yaml
|
./mods/ra/chrome/create-server.yaml
|
||||||
mods/ra/chrome/serverbrowser.yaml
|
./mods/ra/chrome/serverbrowser.yaml
|
||||||
mods/ra/chrome/connection.yaml
|
./mods/ra/chrome/connection.yaml
|
||||||
mods/ra/chrome/directconnect.yaml
|
./mods/ra/chrome/directconnect.yaml
|
||||||
mods/ra/chrome/replaybrowser.yaml
|
./mods/ra/chrome/replaybrowser.yaml
|
||||||
mods/d2k/chrome/dropdowns.yaml
|
./mods/d2k/chrome/dropdowns.yaml
|
||||||
mods/ra/chrome/musicplayer.yaml
|
./mods/ra/chrome/musicplayer.yaml
|
||||||
mods/d2k/chrome/tooltips.yaml
|
./mods/d2k/chrome/tooltips.yaml
|
||||||
mods/ra/chrome/assetbrowser.yaml
|
./mods/ra/chrome/assetbrowser.yaml
|
||||||
mods/ra/chrome/irc.yaml
|
./mods/ra/chrome/irc.yaml
|
||||||
mods/ra/chrome/missionbrowser.yaml
|
./mods/ra/chrome/missionbrowser.yaml
|
||||||
mods/ra/chrome/confirmation-dialogs.yaml
|
./mods/ra/chrome/confirmation-dialogs.yaml
|
||||||
|
|
||||||
Weapons:
|
Weapons:
|
||||||
mods/d2k/weapons.yaml
|
./mods/d2k/weapons.yaml
|
||||||
|
|
||||||
Voices:
|
Voices:
|
||||||
mods/d2k/voices.yaml
|
./mods/d2k/voices.yaml
|
||||||
|
|
||||||
Notifications:
|
Notifications:
|
||||||
mods/d2k/notifications.yaml
|
./mods/d2k/notifications.yaml
|
||||||
|
|
||||||
TileSets:
|
TileSets:
|
||||||
mods/d2k/tilesets/arrakis.yaml
|
./mods/d2k/tilesets/arrakis.yaml
|
||||||
|
|
||||||
TileSize: 32,32
|
TileSize: 32,32
|
||||||
|
|
||||||
Music:
|
Music:
|
||||||
mods/d2k/music.yaml
|
./mods/d2k/music.yaml
|
||||||
|
|
||||||
Movies:
|
Movies:
|
||||||
|
|
||||||
Translations:
|
Translations:
|
||||||
mods/d2k/languages/english.yaml
|
./mods/d2k/languages/english.yaml
|
||||||
|
|
||||||
LoadScreen: DefaultLoadScreen
|
LoadScreen: DefaultLoadScreen
|
||||||
Image: mods/d2k/uibits/loadscreen.png
|
Image: ./mods/d2k/uibits/loadscreen.png
|
||||||
Text: Filling Crates..., Breeding Sandworms...
|
Text: Filling Crates..., Breeding Sandworms...
|
||||||
|
|
||||||
ContentInstaller:
|
ContentInstaller:
|
||||||
@@ -148,44 +148,44 @@ LobbyDefaults:
|
|||||||
TechLevel: Unrestricted
|
TechLevel: Unrestricted
|
||||||
|
|
||||||
ChromeMetrics:
|
ChromeMetrics:
|
||||||
mods/d2k/metrics.yaml
|
./mods/d2k/metrics.yaml
|
||||||
|
|
||||||
Fonts:
|
Fonts:
|
||||||
Regular:
|
Regular:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Bold:
|
Bold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Title:
|
Title:
|
||||||
Font:mods/d2k/Dune2k.ttf
|
Font:./mods/d2k/Dune2k.ttf
|
||||||
Size:32
|
Size:32
|
||||||
MediumBold:
|
MediumBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:18
|
Size:18
|
||||||
BigBold:
|
BigBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:24
|
Size:24
|
||||||
Tiny:
|
Tiny:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:10
|
Size:10
|
||||||
TinyBold:
|
TinyBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:10
|
Size:10
|
||||||
|
|
||||||
LuaScripts:
|
LuaScripts:
|
||||||
mods/common/lua/utils.lua
|
./mods/common/lua/utils.lua
|
||||||
mods/common/lua/openra.lua
|
./mods/common/lua/openra.lua
|
||||||
mods/common/lua/map.lua
|
./mods/common/lua/map.lua
|
||||||
mods/common/lua/actor.lua
|
./mods/common/lua/actor.lua
|
||||||
mods/common/lua/team.lua
|
./mods/common/lua/team.lua
|
||||||
mods/common/lua/media.lua
|
./mods/common/lua/media.lua
|
||||||
mods/common/lua/mission.lua
|
./mods/common/lua/mission.lua
|
||||||
mods/common/lua/reinforcements.lua
|
./mods/common/lua/reinforcements.lua
|
||||||
mods/common/lua/supportpowers.lua
|
./mods/common/lua/supportpowers.lua
|
||||||
mods/common/lua/rules.lua
|
./mods/common/lua/rules.lua
|
||||||
mods/common/lua/production.lua
|
./mods/common/lua/production.lua
|
||||||
mods/common/lua/facing.lua
|
./mods/common/lua/facing.lua
|
||||||
|
|
||||||
SupportsMapsFrom: d2k
|
SupportsMapsFrom: d2k
|
||||||
|
|
||||||
|
|||||||
@@ -9,44 +9,44 @@ Folders:
|
|||||||
|
|
||||||
|
|
||||||
Cursors:
|
Cursors:
|
||||||
mods/modchooser/cursors.yaml
|
./mods/modchooser/cursors.yaml
|
||||||
|
|
||||||
Chrome:
|
Chrome:
|
||||||
mods/modchooser/chrome.yaml
|
./mods/modchooser/chrome.yaml
|
||||||
|
|
||||||
Assemblies:
|
Assemblies:
|
||||||
mods/common/OpenRA.Mods.Common.dll
|
./mods/common/OpenRA.Mods.Common.dll
|
||||||
|
|
||||||
ChromeLayout:
|
ChromeLayout:
|
||||||
mods/modchooser/modchooser.yaml
|
./mods/modchooser/modchooser.yaml
|
||||||
|
|
||||||
Notifications:
|
Notifications:
|
||||||
mods/modchooser/notifications.yaml
|
./mods/modchooser/notifications.yaml
|
||||||
|
|
||||||
LoadScreen: ModChooserLoadScreen
|
LoadScreen: ModChooserLoadScreen
|
||||||
Image: mods/modchooser/chrome.png
|
Image: mods/modchooser/chrome.png
|
||||||
|
|
||||||
ChromeMetrics:
|
ChromeMetrics:
|
||||||
mods/modchooser/metrics.yaml
|
./mods/modchooser/metrics.yaml
|
||||||
|
|
||||||
Fonts:
|
Fonts:
|
||||||
Regular:
|
Regular:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Bold:
|
Bold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:14
|
Size:14
|
||||||
BigBold:
|
BigBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:24
|
Size:24
|
||||||
MediumBold:
|
MediumBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:18
|
Size:18
|
||||||
Tiny:
|
Tiny:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:10
|
Size:10
|
||||||
TinyBold:
|
TinyBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:10
|
Size:10
|
||||||
|
|
||||||
LobbyDefaults:
|
LobbyDefaults:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Missions:
|
Missions:
|
||||||
mods/ra/maps/allies-01-classic
|
./mods/ra/maps/allies-01-classic
|
||||||
mods/ra/maps/allies-02-classic
|
./mods/ra/maps/allies-02-classic
|
||||||
mods/ra/maps/intervention
|
./mods/ra/maps/intervention
|
||||||
|
|||||||
190
mods/ra/mod.yaml
190
mods/ra/mod.yaml
@@ -34,106 +34,106 @@ Packages:
|
|||||||
~movies2.mix
|
~movies2.mix
|
||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
mods/ra/rules/misc.yaml
|
./mods/ra/rules/misc.yaml
|
||||||
mods/ra/rules/ai.yaml
|
./mods/ra/rules/ai.yaml
|
||||||
mods/ra/rules/player.yaml
|
./mods/ra/rules/player.yaml
|
||||||
mods/ra/rules/world.yaml
|
./mods/ra/rules/world.yaml
|
||||||
mods/ra/rules/defaults.yaml
|
./mods/ra/rules/defaults.yaml
|
||||||
mods/ra/rules/vehicles.yaml
|
./mods/ra/rules/vehicles.yaml
|
||||||
mods/ra/rules/husks.yaml
|
./mods/ra/rules/husks.yaml
|
||||||
mods/ra/rules/structures.yaml
|
./mods/ra/rules/structures.yaml
|
||||||
mods/ra/rules/infantry.yaml
|
./mods/ra/rules/infantry.yaml
|
||||||
mods/ra/rules/civilian.yaml
|
./mods/ra/rules/civilian.yaml
|
||||||
mods/ra/rules/decoration.yaml
|
./mods/ra/rules/decoration.yaml
|
||||||
mods/ra/rules/aircraft.yaml
|
./mods/ra/rules/aircraft.yaml
|
||||||
mods/ra/rules/ships.yaml
|
./mods/ra/rules/ships.yaml
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
mods/ra/sequences/ships.yaml
|
./mods/ra/sequences/ships.yaml
|
||||||
mods/ra/sequences/vehicles.yaml
|
./mods/ra/sequences/vehicles.yaml
|
||||||
mods/ra/sequences/structures.yaml
|
./mods/ra/sequences/structures.yaml
|
||||||
mods/ra/sequences/infantry.yaml
|
./mods/ra/sequences/infantry.yaml
|
||||||
mods/ra/sequences/aircraft.yaml
|
./mods/ra/sequences/aircraft.yaml
|
||||||
mods/ra/sequences/misc.yaml
|
./mods/ra/sequences/misc.yaml
|
||||||
mods/ra/sequences/decorations.yaml
|
./mods/ra/sequences/decorations.yaml
|
||||||
|
|
||||||
Cursors:
|
Cursors:
|
||||||
mods/ra/cursors.yaml
|
./mods/ra/cursors.yaml
|
||||||
|
|
||||||
Chrome:
|
Chrome:
|
||||||
mods/ra/chrome.yaml
|
./mods/ra/chrome.yaml
|
||||||
|
|
||||||
Assemblies:
|
Assemblies:
|
||||||
mods/common/OpenRA.Mods.Common.dll
|
./mods/common/OpenRA.Mods.Common.dll
|
||||||
mods/ra/OpenRA.Mods.RA.dll
|
./mods/ra/OpenRA.Mods.RA.dll
|
||||||
mods/cnc/OpenRA.Mods.Cnc.dll
|
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||||
mods/d2k/OpenRA.Mods.D2k.dll
|
./mods/d2k/OpenRA.Mods.D2k.dll
|
||||||
|
|
||||||
ChromeLayout:
|
ChromeLayout:
|
||||||
mods/ra/chrome/install.yaml
|
./mods/ra/chrome/install.yaml
|
||||||
mods/ra/chrome/ingame.yaml
|
./mods/ra/chrome/ingame.yaml
|
||||||
mods/ra/chrome/ingame-chat.yaml
|
./mods/ra/chrome/ingame-chat.yaml
|
||||||
mods/ra/chrome/ingame-diplomacy.yaml
|
./mods/ra/chrome/ingame-diplomacy.yaml
|
||||||
mods/ra/chrome/ingame-fmvplayer.yaml
|
./mods/ra/chrome/ingame-fmvplayer.yaml
|
||||||
mods/ra/chrome/ingame-info.yaml
|
./mods/ra/chrome/ingame-info.yaml
|
||||||
mods/ra/chrome/ingame-infobriefing.yaml
|
./mods/ra/chrome/ingame-infobriefing.yaml
|
||||||
mods/ra/chrome/ingame-infoobjectives.yaml
|
./mods/ra/chrome/ingame-infoobjectives.yaml
|
||||||
mods/ra/chrome/ingame-infostats.yaml
|
./mods/ra/chrome/ingame-infostats.yaml
|
||||||
mods/ra/chrome/ingame-leavemap.yaml
|
./mods/ra/chrome/ingame-leavemap.yaml
|
||||||
mods/ra/chrome/ingame-menu.yaml
|
./mods/ra/chrome/ingame-menu.yaml
|
||||||
mods/ra/chrome/ingame-observer.yaml
|
./mods/ra/chrome/ingame-observer.yaml
|
||||||
mods/ra/chrome/ingame-observerstats.yaml
|
./mods/ra/chrome/ingame-observerstats.yaml
|
||||||
mods/ra/chrome/ingame-player.yaml
|
./mods/ra/chrome/ingame-player.yaml
|
||||||
mods/ra/chrome/ingame-debug.yaml
|
./mods/ra/chrome/ingame-debug.yaml
|
||||||
mods/ra/chrome/mainmenu.yaml
|
./mods/ra/chrome/mainmenu.yaml
|
||||||
mods/ra/chrome/settings.yaml
|
./mods/ra/chrome/settings.yaml
|
||||||
mods/ra/chrome/credits.yaml
|
./mods/ra/chrome/credits.yaml
|
||||||
mods/ra/chrome/lobby.yaml
|
./mods/ra/chrome/lobby.yaml
|
||||||
mods/ra/chrome/lobby-mappreview.yaml
|
./mods/ra/chrome/lobby-mappreview.yaml
|
||||||
mods/ra/chrome/lobby-playerbin.yaml
|
./mods/ra/chrome/lobby-playerbin.yaml
|
||||||
mods/ra/chrome/lobby-dialogs.yaml
|
./mods/ra/chrome/lobby-dialogs.yaml
|
||||||
mods/ra/chrome/color-picker.yaml
|
./mods/ra/chrome/color-picker.yaml
|
||||||
mods/ra/chrome/map-chooser.yaml
|
./mods/ra/chrome/map-chooser.yaml
|
||||||
mods/ra/chrome/create-server.yaml
|
./mods/ra/chrome/create-server.yaml
|
||||||
mods/ra/chrome/serverbrowser.yaml
|
./mods/ra/chrome/serverbrowser.yaml
|
||||||
mods/ra/chrome/connection.yaml
|
./mods/ra/chrome/connection.yaml
|
||||||
mods/ra/chrome/directconnect.yaml
|
./mods/ra/chrome/directconnect.yaml
|
||||||
mods/ra/chrome/replaybrowser.yaml
|
./mods/ra/chrome/replaybrowser.yaml
|
||||||
mods/ra/chrome/dropdowns.yaml
|
./mods/ra/chrome/dropdowns.yaml
|
||||||
mods/ra/chrome/musicplayer.yaml
|
./mods/ra/chrome/musicplayer.yaml
|
||||||
mods/ra/chrome/tooltips.yaml
|
./mods/ra/chrome/tooltips.yaml
|
||||||
mods/ra/chrome/assetbrowser.yaml
|
./mods/ra/chrome/assetbrowser.yaml
|
||||||
mods/ra/chrome/irc.yaml
|
./mods/ra/chrome/irc.yaml
|
||||||
mods/ra/chrome/missionbrowser.yaml
|
./mods/ra/chrome/missionbrowser.yaml
|
||||||
mods/ra/chrome/confirmation-dialogs.yaml
|
./mods/ra/chrome/confirmation-dialogs.yaml
|
||||||
|
|
||||||
Weapons:
|
Weapons:
|
||||||
mods/ra/weapons.yaml
|
./mods/ra/weapons.yaml
|
||||||
|
|
||||||
Voices:
|
Voices:
|
||||||
mods/ra/voices.yaml
|
./mods/ra/voices.yaml
|
||||||
|
|
||||||
Notifications:
|
Notifications:
|
||||||
mods/ra/notifications.yaml
|
./mods/ra/notifications.yaml
|
||||||
|
|
||||||
TileSets:
|
TileSets:
|
||||||
mods/ra/tilesets/snow.yaml
|
./mods/ra/tilesets/snow.yaml
|
||||||
mods/ra/tilesets/interior.yaml
|
./mods/ra/tilesets/interior.yaml
|
||||||
mods/ra/tilesets/temperat.yaml
|
./mods/ra/tilesets/temperat.yaml
|
||||||
mods/ra/tilesets/desert.yaml
|
./mods/ra/tilesets/desert.yaml
|
||||||
|
|
||||||
Music:
|
Music:
|
||||||
mods/ra/music.yaml
|
./mods/ra/music.yaml
|
||||||
|
|
||||||
Movies:
|
Movies:
|
||||||
mods/ra/movies1.yaml
|
./mods/ra/movies1.yaml
|
||||||
mods/ra/movies2.yaml
|
./mods/ra/movies2.yaml
|
||||||
|
|
||||||
Translations:
|
Translations:
|
||||||
mods/ra/languages/english.yaml
|
./mods/ra/languages/english.yaml
|
||||||
|
|
||||||
LoadScreen: DefaultLoadScreen
|
LoadScreen: DefaultLoadScreen
|
||||||
Image: mods/ra/uibits/loadscreen.png
|
Image: ./mods/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...
|
Text: Filling Crates..., Charging Capacitors..., Reticulating Splines..., Planting Trees..., Building Bridges..., Aging Empires..., Compiling EVA..., Constructing Pylons..., Activating Skynet..., Splitting Atoms...
|
||||||
|
|
||||||
ContentInstaller:
|
ContentInstaller:
|
||||||
@@ -164,47 +164,47 @@ LobbyDefaults:
|
|||||||
TechLevel: Unrestricted
|
TechLevel: Unrestricted
|
||||||
|
|
||||||
ChromeMetrics:
|
ChromeMetrics:
|
||||||
mods/ra/metrics.yaml
|
./mods/ra/metrics.yaml
|
||||||
|
|
||||||
Fonts:
|
Fonts:
|
||||||
Regular:
|
Regular:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Bold:
|
Bold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Title:
|
Title:
|
||||||
Font:mods/ra/ZoodRangmah.ttf
|
Font:./mods/ra/ZoodRangmah.ttf
|
||||||
Size:48
|
Size:48
|
||||||
MediumBold:
|
MediumBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:18
|
Size:18
|
||||||
BigBold:
|
BigBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:24
|
Size:24
|
||||||
Tiny:
|
Tiny:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:10
|
Size:10
|
||||||
TinyBold:
|
TinyBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:10
|
Size:10
|
||||||
|
|
||||||
LuaScripts:
|
LuaScripts:
|
||||||
mods/common/lua/utils.lua
|
./mods/common/lua/utils.lua
|
||||||
mods/common/lua/openra.lua
|
./mods/common/lua/openra.lua
|
||||||
mods/common/lua/map.lua
|
./mods/common/lua/map.lua
|
||||||
mods/common/lua/actor.lua
|
./mods/common/lua/actor.lua
|
||||||
mods/common/lua/team.lua
|
./mods/common/lua/team.lua
|
||||||
mods/common/lua/media.lua
|
./mods/common/lua/media.lua
|
||||||
mods/common/lua/mission.lua
|
./mods/common/lua/mission.lua
|
||||||
mods/common/lua/reinforcements.lua
|
./mods/common/lua/reinforcements.lua
|
||||||
mods/common/lua/supportpowers.lua
|
./mods/common/lua/supportpowers.lua
|
||||||
mods/common/lua/rules.lua
|
./mods/common/lua/rules.lua
|
||||||
mods/common/lua/production.lua
|
./mods/common/lua/production.lua
|
||||||
mods/common/lua/facing.lua
|
./mods/common/lua/facing.lua
|
||||||
|
|
||||||
Missions:
|
Missions:
|
||||||
mods/ra/missions.yaml
|
./mods/ra/missions.yaml
|
||||||
|
|
||||||
SupportsMapsFrom: ra
|
SupportsMapsFrom: ra
|
||||||
|
|
||||||
|
|||||||
172
mods/ts/mod.yaml
172
mods/ts/mod.yaml
@@ -63,90 +63,90 @@ Packages:
|
|||||||
PackageContents:
|
PackageContents:
|
||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
mods/ts/rules/misc.yaml
|
./mods/ts/rules/misc.yaml
|
||||||
mods/ts/rules/ai.yaml
|
./mods/ts/rules/ai.yaml
|
||||||
mods/ts/rules/player.yaml
|
./mods/ts/rules/player.yaml
|
||||||
mods/ts/rules/world.yaml
|
./mods/ts/rules/world.yaml
|
||||||
mods/ts/rules/aircraft.yaml
|
./mods/ts/rules/aircraft.yaml
|
||||||
mods/ts/rules/defaults.yaml
|
./mods/ts/rules/defaults.yaml
|
||||||
mods/ts/rules/infantry.yaml
|
./mods/ts/rules/infantry.yaml
|
||||||
mods/ts/rules/structures.yaml
|
./mods/ts/rules/structures.yaml
|
||||||
mods/ts/rules/vehicles.yaml
|
./mods/ts/rules/vehicles.yaml
|
||||||
mods/ts/rules/trees.yaml
|
./mods/ts/rules/trees.yaml
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
mods/ts/sequences/aircraft.yaml
|
./mods/ts/sequences/aircraft.yaml
|
||||||
mods/ts/sequences/infantry.yaml
|
./mods/ts/sequences/infantry.yaml
|
||||||
mods/ts/sequences/misc.yaml
|
./mods/ts/sequences/misc.yaml
|
||||||
mods/ts/sequences/structures.yaml
|
./mods/ts/sequences/structures.yaml
|
||||||
mods/ts/sequences/vehicles.yaml
|
./mods/ts/sequences/vehicles.yaml
|
||||||
mods/ts/sequences/trees.yaml
|
./mods/ts/sequences/trees.yaml
|
||||||
|
|
||||||
VoxelSequences:
|
VoxelSequences:
|
||||||
mods/ts/sequences/voxels.yaml
|
./mods/ts/sequences/voxels.yaml
|
||||||
|
|
||||||
Cursors:
|
Cursors:
|
||||||
mods/ts/cursors.yaml
|
./mods/ts/cursors.yaml
|
||||||
|
|
||||||
Chrome:
|
Chrome:
|
||||||
mods/ts/chrome.yaml
|
./mods/ts/chrome.yaml
|
||||||
|
|
||||||
Assemblies:
|
Assemblies:
|
||||||
mods/common/OpenRA.Mods.Common.dll
|
./mods/common/OpenRA.Mods.Common.dll
|
||||||
mods/ra/OpenRA.Mods.RA.dll
|
./mods/ra/OpenRA.Mods.RA.dll
|
||||||
mods/d2k/OpenRA.Mods.D2k.dll
|
./mods/d2k/OpenRA.Mods.D2k.dll
|
||||||
mods/cnc/OpenRA.Mods.Cnc.dll
|
./mods/cnc/OpenRA.Mods.Cnc.dll
|
||||||
mods/ts/OpenRA.Mods.TS.dll
|
./mods/ts/OpenRA.Mods.TS.dll
|
||||||
|
|
||||||
ChromeLayout:
|
ChromeLayout:
|
||||||
mods/ts/chrome/install.yaml
|
./mods/ts/chrome/install.yaml
|
||||||
mods/ts/chrome/ingame.yaml
|
./mods/ts/chrome/ingame.yaml
|
||||||
mods/ra/chrome/ingame-chat.yaml
|
./mods/ra/chrome/ingame-chat.yaml
|
||||||
mods/ra/chrome/ingame-diplomacy.yaml
|
./mods/ra/chrome/ingame-diplomacy.yaml
|
||||||
mods/ra/chrome/ingame-fmvplayer.yaml
|
./mods/ra/chrome/ingame-fmvplayer.yaml
|
||||||
mods/ra/chrome/ingame-menu.yaml
|
./mods/ra/chrome/ingame-menu.yaml
|
||||||
mods/ra/chrome/ingame-info.yaml
|
./mods/ra/chrome/ingame-info.yaml
|
||||||
mods/ra/chrome/ingame-infobriefing.yaml
|
./mods/ra/chrome/ingame-infobriefing.yaml
|
||||||
mods/ra/chrome/ingame-infoobjectives.yaml
|
./mods/ra/chrome/ingame-infoobjectives.yaml
|
||||||
mods/ra/chrome/ingame-infostats.yaml
|
./mods/ra/chrome/ingame-infostats.yaml
|
||||||
mods/ra/chrome/ingame-observer.yaml
|
./mods/ra/chrome/ingame-observer.yaml
|
||||||
mods/ra/chrome/ingame-observerstats.yaml
|
./mods/ra/chrome/ingame-observerstats.yaml
|
||||||
mods/ts/chrome/ingame-player.yaml
|
./mods/ts/chrome/ingame-player.yaml
|
||||||
mods/ra/chrome/ingame-debug.yaml
|
./mods/ra/chrome/ingame-debug.yaml
|
||||||
mods/ra/chrome/ingame-leavemap.yaml
|
./mods/ra/chrome/ingame-leavemap.yaml
|
||||||
mods/ra/chrome/mainmenu.yaml
|
./mods/ra/chrome/mainmenu.yaml
|
||||||
mods/ra/chrome/settings.yaml
|
./mods/ra/chrome/settings.yaml
|
||||||
mods/ra/chrome/credits.yaml
|
./mods/ra/chrome/credits.yaml
|
||||||
mods/ra/chrome/lobby.yaml
|
./mods/ra/chrome/lobby.yaml
|
||||||
mods/ra/chrome/lobby-mappreview.yaml
|
./mods/ra/chrome/lobby-mappreview.yaml
|
||||||
mods/ra/chrome/lobby-playerbin.yaml
|
./mods/ra/chrome/lobby-playerbin.yaml
|
||||||
mods/ra/chrome/lobby-dialogs.yaml
|
./mods/ra/chrome/lobby-dialogs.yaml
|
||||||
mods/ts/chrome/color-picker.yaml
|
./mods/ts/chrome/color-picker.yaml
|
||||||
mods/ra/chrome/map-chooser.yaml
|
./mods/ra/chrome/map-chooser.yaml
|
||||||
mods/ra/chrome/create-server.yaml
|
./mods/ra/chrome/create-server.yaml
|
||||||
mods/ra/chrome/serverbrowser.yaml
|
./mods/ra/chrome/serverbrowser.yaml
|
||||||
mods/ra/chrome/connection.yaml
|
./mods/ra/chrome/connection.yaml
|
||||||
mods/ra/chrome/directconnect.yaml
|
./mods/ra/chrome/directconnect.yaml
|
||||||
mods/ra/chrome/replaybrowser.yaml
|
./mods/ra/chrome/replaybrowser.yaml
|
||||||
mods/ra/chrome/dropdowns.yaml
|
./mods/ra/chrome/dropdowns.yaml
|
||||||
mods/ra/chrome/musicplayer.yaml
|
./mods/ra/chrome/musicplayer.yaml
|
||||||
mods/ra/chrome/tooltips.yaml
|
./mods/ra/chrome/tooltips.yaml
|
||||||
mods/ra/chrome/assetbrowser.yaml
|
./mods/ra/chrome/assetbrowser.yaml
|
||||||
mods/ra/chrome/irc.yaml
|
./mods/ra/chrome/irc.yaml
|
||||||
mods/ra/chrome/missionbrowser.yaml
|
./mods/ra/chrome/missionbrowser.yaml
|
||||||
mods/ra/chrome/confirmation-dialogs.yaml
|
./mods/ra/chrome/confirmation-dialogs.yaml
|
||||||
|
|
||||||
Weapons:
|
Weapons:
|
||||||
mods/ts/weapons.yaml
|
./mods/ts/weapons.yaml
|
||||||
|
|
||||||
Voices:
|
Voices:
|
||||||
mods/ts/voices.yaml
|
./mods/ts/voices.yaml
|
||||||
|
|
||||||
Notifications:
|
Notifications:
|
||||||
mods/ts/notifications.yaml
|
./mods/ts/notifications.yaml
|
||||||
|
|
||||||
TileSets:
|
TileSets:
|
||||||
mods/ts/tilesets/temperat.yaml
|
./mods/ts/tilesets/temperat.yaml
|
||||||
|
|
||||||
TileSize: 48,24
|
TileSize: 48,24
|
||||||
TileShape: Diamond
|
TileShape: Diamond
|
||||||
@@ -155,15 +155,15 @@ SubCells:
|
|||||||
DefaultIndex: 2
|
DefaultIndex: 2
|
||||||
|
|
||||||
Music:
|
Music:
|
||||||
mods/ts/music.yaml
|
./mods/ts/music.yaml
|
||||||
|
|
||||||
Movies:
|
Movies:
|
||||||
|
|
||||||
Translations:
|
Translations:
|
||||||
mods/ts/languages/english.yaml
|
./mods/ts/languages/english.yaml
|
||||||
|
|
||||||
LoadScreen: DefaultLoadScreen
|
LoadScreen: DefaultLoadScreen
|
||||||
Image: mods/ts/uibits/loadscreen.png
|
Image: ./mods/ts/uibits/loadscreen.png
|
||||||
Text: Updating EVA installation..., Changing perspective...
|
Text: Updating EVA installation..., Changing perspective...
|
||||||
|
|
||||||
ContentInstaller:
|
ContentInstaller:
|
||||||
@@ -192,41 +192,41 @@ LobbyDefaults:
|
|||||||
Fog: true
|
Fog: true
|
||||||
|
|
||||||
ChromeMetrics:
|
ChromeMetrics:
|
||||||
mods/ts/metrics.yaml
|
./mods/ts/metrics.yaml
|
||||||
|
|
||||||
Fonts:
|
Fonts:
|
||||||
Regular:
|
Regular:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Bold:
|
Bold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:14
|
Size:14
|
||||||
Title:
|
Title:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:32
|
Size:32
|
||||||
BigBold:
|
BigBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:24
|
Size:24
|
||||||
Tiny:
|
Tiny:
|
||||||
Font:FreeSans.ttf
|
Font:./FreeSans.ttf
|
||||||
Size:10
|
Size:10
|
||||||
TinyBold:
|
TinyBold:
|
||||||
Font:FreeSansBold.ttf
|
Font:./FreeSansBold.ttf
|
||||||
Size:10
|
Size:10
|
||||||
|
|
||||||
LuaScripts:
|
LuaScripts:
|
||||||
mods/common/lua/utils.lua
|
./mods/common/lua/utils.lua
|
||||||
mods/common/lua/openra.lua
|
./mods/common/lua/openra.lua
|
||||||
mods/common/lua/map.lua
|
./mods/common/lua/map.lua
|
||||||
mods/common/lua/actor.lua
|
./mods/common/lua/actor.lua
|
||||||
mods/common/lua/team.lua
|
./mods/common/lua/team.lua
|
||||||
mods/common/lua/media.lua
|
./mods/common/lua/media.lua
|
||||||
mods/common/lua/mission.lua
|
./mods/common/lua/mission.lua
|
||||||
mods/common/lua/reinforcements.lua
|
./mods/common/lua/reinforcements.lua
|
||||||
mods/common/lua/supportpowers.lua
|
./mods/common/lua/supportpowers.lua
|
||||||
mods/common/lua/rules.lua
|
./mods/common/lua/rules.lua
|
||||||
mods/common/lua/production.lua
|
./mods/common/lua/production.lua
|
||||||
mods/common/lua/facing.lua
|
./mods/common/lua/facing.lua
|
||||||
|
|
||||||
SupportsMapsFrom: ts
|
SupportsMapsFrom: ts
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user