Merge pull request #11771 from pchote/split-content-files
Rework mod enumeration and split content metadata into their own files.
This commit is contained in:
@@ -13,7 +13,6 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA.FileSystem
|
||||
@@ -34,9 +33,15 @@ namespace OpenRA.FileSystem
|
||||
|
||||
// Mod packages that should not be disposed
|
||||
readonly List<IReadOnlyPackage> modPackages = new List<IReadOnlyPackage>();
|
||||
readonly IReadOnlyDictionary<string, Manifest> installedMods;
|
||||
|
||||
Cache<string, List<IReadOnlyPackage>> fileIndex = new Cache<string, List<IReadOnlyPackage>>(_ => new List<IReadOnlyPackage>());
|
||||
|
||||
public FileSystem(IReadOnlyDictionary<string, Manifest> installedMods)
|
||||
{
|
||||
this.installedMods = installedMods;
|
||||
}
|
||||
|
||||
public IReadOnlyPackage OpenPackage(string filename)
|
||||
{
|
||||
if (filename.EndsWith(".mix", StringComparison.InvariantCultureIgnoreCase))
|
||||
@@ -108,9 +113,9 @@ namespace OpenRA.FileSystem
|
||||
{
|
||||
name = name.Substring(1);
|
||||
|
||||
ModMetadata mod;
|
||||
if (!ModMetadata.AllMods.TryGetValue(name, out mod))
|
||||
throw new InvalidOperationException("Could not load mod '{0}'. Available mods: {1}".F(name, ModMetadata.AllMods.Keys.JoinWith(", ")));
|
||||
Manifest mod;
|
||||
if (!installedMods.TryGetValue(name, out mod))
|
||||
throw new InvalidOperationException("Could not load mod '{0}'. Available mods: {1}".F(name, installedMods.Keys.JoinWith(", ")));
|
||||
|
||||
package = mod.Package;
|
||||
modPackages.Add(package);
|
||||
|
||||
@@ -21,6 +21,7 @@ using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using OpenRA.Chat;
|
||||
using OpenRA.FileSystem;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Primitives;
|
||||
@@ -35,6 +36,8 @@ namespace OpenRA
|
||||
public const int Timestep = 40;
|
||||
public const int TimestepJankThreshold = 250; // Don't catch up for delays larger than 250ms
|
||||
|
||||
public static InstalledMods Mods { get; private set; }
|
||||
|
||||
public static ModData ModData;
|
||||
public static Settings Settings;
|
||||
public static ICursor Cursor;
|
||||
@@ -243,6 +246,16 @@ namespace OpenRA
|
||||
{
|
||||
Console.WriteLine("Platform is {0}", Platform.CurrentPlatform);
|
||||
|
||||
// Special case handling of Game.Mod argument: if it matches a real filesystem path
|
||||
// then we use this to override the mod search path, and replace it with the mod id
|
||||
var modArgument = args.GetValue("Game.Mod", null);
|
||||
string customModPath = null;
|
||||
if (modArgument != null && (File.Exists(modArgument) || Directory.Exists(modArgument)))
|
||||
{
|
||||
customModPath = modArgument;
|
||||
args.ReplaceValue("Game.Mod", Path.GetFileNameWithoutExtension(modArgument));
|
||||
}
|
||||
|
||||
InitializeSettings(args);
|
||||
|
||||
Log.AddChannel("perf", "perf.log");
|
||||
@@ -302,22 +315,23 @@ namespace OpenRA
|
||||
|
||||
GlobalChat = new GlobalChat();
|
||||
|
||||
Mods = new InstalledMods(customModPath);
|
||||
Console.WriteLine("Available mods:");
|
||||
foreach (var mod in ModMetadata.AllMods)
|
||||
Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Title, mod.Value.Version);
|
||||
foreach (var mod in Mods)
|
||||
Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Metadata.Title, mod.Value.Metadata.Version);
|
||||
|
||||
InitializeMod(Settings.Game.Mod, args);
|
||||
}
|
||||
|
||||
public static bool IsModInstalled(string modId)
|
||||
{
|
||||
return ModMetadata.AllMods[modId].RequiresMods.All(IsModInstalled);
|
||||
return Mods.ContainsKey(modId) && Mods[modId].RequiresMods.All(IsModInstalled);
|
||||
}
|
||||
|
||||
public static bool IsModInstalled(KeyValuePair<string, string> mod)
|
||||
{
|
||||
return ModMetadata.AllMods.ContainsKey(mod.Key)
|
||||
&& ModMetadata.AllMods[mod.Key].Version == mod.Value
|
||||
return Mods.ContainsKey(mod.Key)
|
||||
&& Mods[mod.Key].Metadata.Version == mod.Value
|
||||
&& IsModInstalled(mod.Key);
|
||||
}
|
||||
|
||||
@@ -349,7 +363,7 @@ namespace OpenRA
|
||||
ModData = null;
|
||||
|
||||
// Fall back to default if the mod doesn't exist or has missing prerequisites.
|
||||
if (!ModMetadata.AllMods.ContainsKey(mod) || !IsModInstalled(mod))
|
||||
if (!IsModInstalled(mod))
|
||||
mod = new GameSettings().Mod;
|
||||
|
||||
Console.WriteLine("Loading mod: {0}", mod);
|
||||
@@ -357,18 +371,13 @@ namespace OpenRA
|
||||
|
||||
Sound.StopVideo();
|
||||
|
||||
ModData = new ModData(mod, true);
|
||||
ModData = new ModData(Mods[mod], Mods, true);
|
||||
|
||||
using (new PerfTimer("LoadMaps"))
|
||||
ModData.MapCache.LoadMaps();
|
||||
|
||||
var content = ModData.Manifest.Get<ModContent>();
|
||||
var isModContentInstalled = content.Packages
|
||||
.Where(p => p.Value.Required)
|
||||
.All(p => p.Value.TestFiles.All(f => File.Exists(Platform.ResolvePath(f))));
|
||||
|
||||
// Mod assets are missing!
|
||||
if (!isModContentInstalled)
|
||||
if (!ModData.LoadScreen.RequiredContentIsInstalled())
|
||||
{
|
||||
InitializeMod("modchooser", new Arguments());
|
||||
return;
|
||||
@@ -469,8 +478,8 @@ namespace OpenRA
|
||||
|
||||
ThreadPool.QueueUserWorkItem(_ =>
|
||||
{
|
||||
var mod = ModData.Manifest.Mod;
|
||||
var directory = Platform.ResolvePath("^", "Screenshots", mod.Id, mod.Version);
|
||||
var mod = ModData.Manifest.Metadata;
|
||||
var directory = Platform.ResolvePath("^", "Screenshots", ModData.Manifest.Id, mod.Version);
|
||||
Directory.CreateDirectory(directory);
|
||||
|
||||
var filename = TimestampedFilename(true);
|
||||
|
||||
@@ -9,8 +9,23 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA
|
||||
{
|
||||
public class Utility
|
||||
{
|
||||
public readonly ModData ModData;
|
||||
public readonly InstalledMods Mods;
|
||||
|
||||
public Utility(ModData modData, InstalledMods mods)
|
||||
{
|
||||
ModData = modData;
|
||||
Mods = mods;
|
||||
}
|
||||
}
|
||||
|
||||
[RequireExplicitImplementation]
|
||||
public interface IUtilityCommand
|
||||
{
|
||||
/// <summary>
|
||||
@@ -20,6 +35,6 @@ namespace OpenRA
|
||||
|
||||
bool ValidateArguments(string[] args);
|
||||
|
||||
void Run(ModData modData, string[] args);
|
||||
void Run(Utility utility, string[] args);
|
||||
}
|
||||
}
|
||||
|
||||
121
OpenRA.Game/InstalledMods.cs
Normal file
121
OpenRA.Game/InstalledMods.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version. For more
|
||||
* information, see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using OpenRA.FileSystem;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA
|
||||
{
|
||||
public class InstalledMods : IReadOnlyDictionary<string, Manifest>
|
||||
{
|
||||
readonly Dictionary<string, Manifest> mods;
|
||||
|
||||
public InstalledMods(string customModPath)
|
||||
{
|
||||
mods = GetInstalledMods(customModPath);
|
||||
}
|
||||
|
||||
static IEnumerable<Pair<string, string>> GetCandidateMods()
|
||||
{
|
||||
// Get mods that are in the game folder.
|
||||
var basePath = Platform.ResolvePath(Path.Combine(".", "mods"));
|
||||
var mods = Directory.GetDirectories(basePath)
|
||||
.Select(x => Pair.New(x.Substring(basePath.Length + 1), x))
|
||||
.ToList();
|
||||
|
||||
foreach (var m in Directory.GetFiles(basePath, "*.oramod"))
|
||||
mods.Add(Pair.New(Path.GetFileNameWithoutExtension(m), m));
|
||||
|
||||
// Get mods that are in the support folder.
|
||||
var supportPath = Platform.ResolvePath(Path.Combine("^", "mods"));
|
||||
if (!Directory.Exists(supportPath))
|
||||
return mods;
|
||||
|
||||
foreach (var pair in Directory.GetDirectories(supportPath).ToDictionary(x => x.Substring(supportPath.Length + 1)))
|
||||
mods.Add(Pair.New(pair.Key, pair.Value));
|
||||
|
||||
foreach (var m in Directory.GetFiles(supportPath, "*.oramod"))
|
||||
mods.Add(Pair.New(Path.GetFileNameWithoutExtension(m), m));
|
||||
|
||||
return mods;
|
||||
}
|
||||
|
||||
static Manifest LoadMod(string id, string path)
|
||||
{
|
||||
IReadOnlyPackage package = null;
|
||||
try
|
||||
{
|
||||
if (Directory.Exists(path))
|
||||
package = new Folder(path);
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var fileStream = File.OpenRead(path))
|
||||
package = new ZipFile(fileStream, path);
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new InvalidDataException(path + " is not a valid mod package");
|
||||
}
|
||||
}
|
||||
|
||||
if (!package.Contains("mod.yaml"))
|
||||
throw new InvalidDataException(path + " is not a valid mod package");
|
||||
|
||||
// Mods in the support directory and oramod packages (which are listed later
|
||||
// in the CandidateMods list) override mods in the main install.
|
||||
return new Manifest(id, package);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
if (package != null)
|
||||
package.Dispose();
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static Dictionary<string, Manifest> GetInstalledMods(string customModPath)
|
||||
{
|
||||
var ret = new Dictionary<string, Manifest>();
|
||||
var candidates = GetCandidateMods();
|
||||
if (customModPath != null)
|
||||
candidates = candidates.Append(Pair.New(Path.GetFileNameWithoutExtension(customModPath), customModPath));
|
||||
|
||||
foreach (var pair in candidates)
|
||||
{
|
||||
var mod = LoadMod(pair.First, pair.Second);
|
||||
|
||||
// Mods in the support directory and oramod packages (which are listed later
|
||||
// in the CandidateMods list) override mods in the main install.
|
||||
if (mod != null)
|
||||
ret[pair.First] = mod;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public Manifest this[string key] { get { return mods[key]; } }
|
||||
public int Count { get { return mods.Count; } }
|
||||
public ICollection<string> Keys { get { return mods.Keys; } }
|
||||
public ICollection<Manifest> Values { get { return mods.Values; } }
|
||||
public bool ContainsKey(string key) { return mods.ContainsKey(key); }
|
||||
public IEnumerator<KeyValuePair<string, Manifest>> GetEnumerator() { return mods.GetEnumerator(); }
|
||||
public bool TryGetValue(string key, out Manifest value) { return mods.TryGetValue(key, out value); }
|
||||
IEnumerator IEnumerable.GetEnumerator() { return mods.GetEnumerator(); }
|
||||
}
|
||||
}
|
||||
@@ -31,10 +31,21 @@ namespace OpenRA
|
||||
}
|
||||
}
|
||||
|
||||
public class ModMetadata
|
||||
{
|
||||
public string Title;
|
||||
public string Description;
|
||||
public string Version;
|
||||
public string Author;
|
||||
public bool Hidden;
|
||||
}
|
||||
|
||||
/// <summary> Describes what is to be loaded in order to run a mod. </summary>
|
||||
public class Manifest
|
||||
{
|
||||
public readonly ModMetadata Mod;
|
||||
public readonly string Id;
|
||||
public readonly IReadOnlyPackage Package;
|
||||
public readonly ModMetadata Metadata;
|
||||
public readonly string[]
|
||||
Rules, ServerTraits,
|
||||
Sequences, VoxelSequences, Cursors, Chrome, Assemblies, ChromeLayout,
|
||||
@@ -60,14 +71,15 @@ namespace OpenRA
|
||||
readonly TypeDictionary modules = new TypeDictionary();
|
||||
readonly Dictionary<string, MiniYaml> yaml;
|
||||
|
||||
public Manifest(string modId)
|
||||
{
|
||||
var package = ModMetadata.AllMods[modId].Package;
|
||||
bool customDataLoaded;
|
||||
|
||||
public Manifest(string modId, IReadOnlyPackage package)
|
||||
{
|
||||
Id = modId;
|
||||
Package = package;
|
||||
yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml"), "mod.yaml")).ToDictionary();
|
||||
|
||||
Mod = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
|
||||
Mod.Id = modId;
|
||||
Metadata = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
|
||||
|
||||
// TODO: Use fieldloader
|
||||
MapFolders = YamlDictionary(yaml, "MapFolders");
|
||||
@@ -106,7 +118,7 @@ namespace OpenRA
|
||||
RequiresMods = yaml["RequiresMods"].ToDictionary(my => my.Value);
|
||||
|
||||
// Allow inherited mods to import parent maps.
|
||||
var compat = new List<string> { Mod.Id };
|
||||
var compat = new List<string> { Id };
|
||||
|
||||
if (yaml.ContainsKey("SupportsMapsFrom"))
|
||||
compat.AddRange(yaml["SupportsMapsFrom"].Value.Split(',').Select(c => c.Trim()));
|
||||
@@ -147,6 +159,8 @@ namespace OpenRA
|
||||
|
||||
modules.Add(module);
|
||||
}
|
||||
|
||||
customDataLoaded = true;
|
||||
}
|
||||
|
||||
static string[] YamlList(Dictionary<string, MiniYaml> yaml, string key, bool parsePaths = false)
|
||||
@@ -171,8 +185,12 @@ namespace OpenRA
|
||||
return modules.Contains<T>();
|
||||
}
|
||||
|
||||
/// <summary>Load a cached IGlobalModData instance.</summary>
|
||||
public T Get<T>() where T : IGlobalModData
|
||||
{
|
||||
if (!customDataLoaded)
|
||||
throw new InvalidOperationException("Attempted to call Manifest.Get() before loading custom data!");
|
||||
|
||||
var module = modules.GetOrDefault<T>();
|
||||
|
||||
// Lazily create the default values if not explicitly defined.
|
||||
@@ -184,5 +202,36 @@ namespace OpenRA
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Load an uncached IGlobalModData instance directly from the manifest yaml.
|
||||
/// This should only be used by external mods that want to query data from this mod.
|
||||
/// </summary>
|
||||
public T Get<T>(ObjectCreator oc) where T : IGlobalModData
|
||||
{
|
||||
MiniYaml data;
|
||||
var t = typeof(T);
|
||||
if (!yaml.TryGetValue(t.Name, out data))
|
||||
{
|
||||
// Lazily create the default values if not explicitly defined.
|
||||
return (T)oc.CreateBasic(t);
|
||||
}
|
||||
|
||||
IGlobalModData module;
|
||||
var ctor = t.GetConstructor(new[] { typeof(MiniYaml) });
|
||||
if (ctor != null)
|
||||
{
|
||||
// Class has opted-in to DIY initialization
|
||||
module = (IGlobalModData)ctor.Invoke(new object[] { data.Value });
|
||||
}
|
||||
else
|
||||
{
|
||||
// Automatically load the child nodes using FieldLoader
|
||||
module = oc.CreateObject<IGlobalModData>(t.Name);
|
||||
FieldLoader.Load(module, data);
|
||||
}
|
||||
|
||||
return (T)module;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace OpenRA
|
||||
public ILoadScreen LoadScreen { get; private set; }
|
||||
public VoxelLoader VoxelLoader { get; private set; }
|
||||
public CursorProvider CursorProvider { get; private set; }
|
||||
public FS ModFiles = new FS();
|
||||
public FS ModFiles;
|
||||
public IReadOnlyFileSystem DefaultFileSystem { get { return ModFiles; } }
|
||||
|
||||
readonly Lazy<Ruleset> defaultRules;
|
||||
@@ -45,10 +45,14 @@ namespace OpenRA
|
||||
readonly Lazy<IReadOnlyDictionary<string, SequenceProvider>> defaultSequences;
|
||||
public IReadOnlyDictionary<string, SequenceProvider> DefaultSequences { get { return defaultSequences.Value; } }
|
||||
|
||||
public ModData(string mod, bool useLoadScreen = false)
|
||||
public ModData(Manifest mod, InstalledMods mods, bool useLoadScreen = false)
|
||||
{
|
||||
Languages = new string[0];
|
||||
Manifest = new Manifest(mod);
|
||||
|
||||
ModFiles = new FS(mods);
|
||||
|
||||
// Take a local copy of the manifest
|
||||
Manifest = new Manifest(mod.Id, mod.Package);
|
||||
ModFiles.LoadFromManifest(Manifest);
|
||||
|
||||
ObjectCreator = new ObjectCreator(Manifest, ModFiles);
|
||||
@@ -220,6 +224,7 @@ namespace OpenRA
|
||||
{
|
||||
void Init(ModData m, Dictionary<string, string> info);
|
||||
void Display();
|
||||
bool RequiredContentIsInstalled();
|
||||
void StartGame(Arguments args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version. For more
|
||||
* information, see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using OpenRA.FileSystem;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA
|
||||
{
|
||||
public class ModMetadata
|
||||
{
|
||||
public static readonly Dictionary<string, ModMetadata> AllMods = ValidateMods();
|
||||
|
||||
public string Id;
|
||||
public string Title;
|
||||
public string Description;
|
||||
public string Version;
|
||||
public string Author;
|
||||
public bool Hidden;
|
||||
|
||||
public Dictionary<string, string> RequiresMods;
|
||||
public ModContent ModContent;
|
||||
public IReadOnlyPackage Package;
|
||||
|
||||
static Dictionary<string, ModMetadata> ValidateMods()
|
||||
{
|
||||
var ret = new Dictionary<string, ModMetadata>();
|
||||
foreach (var pair in GetCandidateMods())
|
||||
{
|
||||
IReadOnlyPackage package = null;
|
||||
try
|
||||
{
|
||||
if (Directory.Exists(pair.Second))
|
||||
package = new Folder(pair.Second);
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var fileStream = File.OpenRead(pair.Second))
|
||||
package = new ZipFile(fileStream, pair.Second);
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new InvalidDataException(pair.Second + " is not a valid mod package");
|
||||
}
|
||||
}
|
||||
|
||||
if (!package.Contains("mod.yaml"))
|
||||
{
|
||||
package.Dispose();
|
||||
continue;
|
||||
}
|
||||
|
||||
var yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml"), "mod.yaml"));
|
||||
var nd = yaml.ToDictionary();
|
||||
if (!nd.ContainsKey("Metadata"))
|
||||
{
|
||||
package.Dispose();
|
||||
continue;
|
||||
}
|
||||
|
||||
var metadata = FieldLoader.Load<ModMetadata>(nd["Metadata"]);
|
||||
metadata.Id = pair.First;
|
||||
metadata.Package = package;
|
||||
|
||||
if (nd.ContainsKey("RequiresMods"))
|
||||
metadata.RequiresMods = nd["RequiresMods"].ToDictionary(my => my.Value);
|
||||
else
|
||||
metadata.RequiresMods = new Dictionary<string, string>();
|
||||
|
||||
if (nd.ContainsKey("ModContent"))
|
||||
metadata.ModContent = FieldLoader.Load<ModContent>(nd["ModContent"]);
|
||||
|
||||
// Mods in the support directory and oramod packages (which are listed later
|
||||
// in the CandidateMods list) override mods in the main install.
|
||||
ret[pair.First] = metadata;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (package != null)
|
||||
package.Dispose();
|
||||
Console.WriteLine("An exception occurred when trying to load ModMetadata for `{0}`:".F(pair.First));
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static IEnumerable<Pair<string, string>> GetCandidateMods()
|
||||
{
|
||||
// Get mods that are in the game folder.
|
||||
var basePath = Platform.ResolvePath(Path.Combine(".", "mods"));
|
||||
var mods = Directory.GetDirectories(basePath)
|
||||
.Select(x => Pair.New(x.Substring(basePath.Length + 1), x))
|
||||
.ToList();
|
||||
|
||||
foreach (var m in Directory.GetFiles(basePath, "*.oramod"))
|
||||
mods.Add(Pair.New(Path.GetFileNameWithoutExtension(m), m));
|
||||
|
||||
// Get mods that are in the support folder.
|
||||
var supportPath = Platform.ResolvePath(Path.Combine("^", "mods"));
|
||||
if (!Directory.Exists(supportPath))
|
||||
return mods;
|
||||
|
||||
foreach (var pair in Directory.GetDirectories(supportPath).ToDictionary(x => x.Substring(supportPath.Length + 1)))
|
||||
mods.Add(Pair.New(pair.Key, pair.Value));
|
||||
|
||||
foreach (var m in Directory.GetFiles(supportPath, "*.oramod"))
|
||||
mods.Add(Pair.New(Path.GetFileNameWithoutExtension(m), m));
|
||||
|
||||
return mods;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,14 +38,14 @@ namespace OpenRA.Network
|
||||
{
|
||||
FieldLoader.Load(this, yaml);
|
||||
|
||||
ModMetadata mod;
|
||||
Manifest mod;
|
||||
var modVersion = Mods.Split('@');
|
||||
if (modVersion.Length == 2 && ModMetadata.AllMods.TryGetValue(modVersion[0], out mod))
|
||||
if (modVersion.Length == 2 && Game.Mods.TryGetValue(modVersion[0], out mod))
|
||||
{
|
||||
ModId = modVersion[0];
|
||||
ModVersion = modVersion[1];
|
||||
ModLabel = "{0} ({1})".F(mod.Title, modVersion[1]);
|
||||
IsCompatible = Game.Settings.Debug.IgnoreVersionMismatch || ModVersion == mod.Version;
|
||||
ModLabel = "{0} ({1})".F(mod.Metadata.Title, modVersion[1]);
|
||||
IsCompatible = Game.Settings.Debug.IgnoreVersionMismatch || ModVersion == mod.Metadata.Version;
|
||||
}
|
||||
else
|
||||
ModLabel = "Unknown mod: {0}".F(Mods);
|
||||
|
||||
@@ -44,8 +44,8 @@ namespace OpenRA.Network
|
||||
void StartSavingReplay(byte[] initialContent)
|
||||
{
|
||||
var filename = chooseFilename();
|
||||
var mod = Game.ModData.Manifest.Mod;
|
||||
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Version);
|
||||
var mod = Game.ModData.Manifest;
|
||||
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Metadata.Version);
|
||||
|
||||
if (!Directory.Exists(dir))
|
||||
Directory.CreateDirectory(dir);
|
||||
|
||||
@@ -96,7 +96,7 @@ namespace OpenRA.Network
|
||||
{
|
||||
if (r.Frame == frame)
|
||||
{
|
||||
var mod = Game.ModData.Manifest.Mod;
|
||||
var mod = Game.ModData.Manifest.Metadata;
|
||||
Log.Write("sync", "Player: {0} ({1} {2} {3})", Game.Settings.Player.Name, Platform.CurrentPlatform, Environment.OSVersion, Platform.RuntimeVersion);
|
||||
Log.Write("sync", "Game ID: {0} (Mod: {1} at Version {2})", orderManager.LobbyInfo.GlobalSettings.GameUid, mod.Title, mod.Version);
|
||||
Log.Write("sync", "Sync for net frame {0} -------------", r.Frame);
|
||||
|
||||
@@ -132,13 +132,13 @@ namespace OpenRA.Network
|
||||
case "HandshakeRequest":
|
||||
{
|
||||
// Switch to the server's mod if we need and are able to
|
||||
var mod = Game.ModData.Manifest.Mod;
|
||||
var mod = Game.ModData.Manifest;
|
||||
var request = HandshakeRequest.Deserialize(order.TargetString);
|
||||
|
||||
ModMetadata serverMod;
|
||||
Manifest serverMod;
|
||||
if (request.Mod != mod.Id &&
|
||||
ModMetadata.AllMods.TryGetValue(request.Mod, out serverMod) &&
|
||||
serverMod.Version == request.Version)
|
||||
Game.Mods.TryGetValue(request.Mod, out serverMod) &&
|
||||
serverMod.Metadata.Version == request.Version)
|
||||
{
|
||||
var replay = orderManager.Connection as ReplayConnection;
|
||||
var launchCommand = replay != null ?
|
||||
@@ -170,7 +170,7 @@ namespace OpenRA.Network
|
||||
{
|
||||
Client = info,
|
||||
Mod = mod.Id,
|
||||
Version = mod.Version,
|
||||
Version = mod.Metadata.Version,
|
||||
Password = orderManager.Password
|
||||
};
|
||||
|
||||
|
||||
@@ -204,7 +204,6 @@
|
||||
<Compile Include="Traits\Player\FixedColorPalette.cs" />
|
||||
<Compile Include="Primitives\ReadOnlyDictionary.cs" />
|
||||
<Compile Include="Primitives\ReadOnlyList.cs" />
|
||||
<Compile Include="ModMetadata.cs" />
|
||||
<Compile Include="GameRules\Ruleset.cs" />
|
||||
<Compile Include="Support\MersenneTwister.cs" />
|
||||
<Compile Include="GameInformation.cs" />
|
||||
@@ -244,7 +243,7 @@
|
||||
<Compile Include="Traits\ActivityUtils.cs" />
|
||||
<Compile Include="FileSystem\ZipFolder.cs" />
|
||||
<Compile Include="Primitives\float3.cs" />
|
||||
<Compile Include="ModContent.cs" />
|
||||
<Compile Include="InstalledMods.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FileSystem\D2kSoundResources.cs" />
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace OpenRA.Server
|
||||
foreach (var t in serverTraits.WithInterface<INotifyServerStart>())
|
||||
t.ServerStarted(this);
|
||||
|
||||
Log.Write("server", "Initial mod: {0}", ModData.Manifest.Mod.Id);
|
||||
Log.Write("server", "Initial mod: {0}", ModData.Manifest.Id);
|
||||
Log.Write("server", "Initial map: {0}", LobbyInfo.GlobalSettings.Map);
|
||||
|
||||
var timeout = serverTraits.WithInterface<ITick>().Min(t => t.TickTimeout);
|
||||
@@ -262,8 +262,8 @@ namespace OpenRA.Server
|
||||
// Dispatch a handshake order
|
||||
var request = new HandshakeRequest
|
||||
{
|
||||
Mod = ModData.Manifest.Mod.Id,
|
||||
Version = ModData.Manifest.Mod.Version,
|
||||
Mod = ModData.Manifest.Id,
|
||||
Version = ModData.Manifest.Metadata.Version,
|
||||
Map = LobbyInfo.GlobalSettings.Map
|
||||
};
|
||||
|
||||
@@ -327,7 +327,7 @@ namespace OpenRA.Server
|
||||
else
|
||||
client.Color = HSLColor.FromRGB(255, 255, 255);
|
||||
|
||||
if (ModData.Manifest.Mod.Id != handshake.Mod)
|
||||
if (ModData.Manifest.Id != handshake.Mod)
|
||||
{
|
||||
Log.Write("server", "Rejected connection from {0}; mods do not match.",
|
||||
newConn.Socket.RemoteEndPoint);
|
||||
@@ -337,7 +337,7 @@ namespace OpenRA.Server
|
||||
return;
|
||||
}
|
||||
|
||||
if (ModData.Manifest.Mod.Version != handshake.Version && !LobbyInfo.GlobalSettings.AllowVersionMismatch)
|
||||
if (ModData.Manifest.Metadata.Version != handshake.Version && !LobbyInfo.GlobalSettings.AllowVersionMismatch)
|
||||
{
|
||||
Log.Write("server", "Rejected connection from {0}; Not running the same version.",
|
||||
newConn.Socket.RemoteEndPoint);
|
||||
|
||||
@@ -35,5 +35,6 @@ namespace OpenRA
|
||||
|
||||
public bool Contains(string key) { return args.ContainsKey(key); }
|
||||
public string GetValue(string key, string defaultValue) { return Contains(key) ? args[key] : defaultValue; }
|
||||
public void ReplaceValue(string key, string value) { args[key] = value; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace OpenRA
|
||||
|
||||
if (Game.ModData != null)
|
||||
{
|
||||
var mod = Game.ModData.Manifest.Mod;
|
||||
var mod = Game.ModData.Manifest.Metadata;
|
||||
Log.Write("exception", "{0} Mod at Version {1}", mod.Title, mod.Version);
|
||||
}
|
||||
|
||||
|
||||
@@ -176,8 +176,8 @@ namespace OpenRA
|
||||
|
||||
gameInfo = new GameInformation
|
||||
{
|
||||
Mod = Game.ModData.Manifest.Mod.Id,
|
||||
Version = Game.ModData.Manifest.Mod.Version,
|
||||
Mod = Game.ModData.Manifest.Id,
|
||||
Version = Game.ModData.Manifest.Metadata.Version,
|
||||
|
||||
MapUid = Map.Uid,
|
||||
MapTitle = Map.Title
|
||||
|
||||
@@ -36,6 +36,8 @@ namespace OpenRA.Mods.Cnc
|
||||
|
||||
public override void Init(ModData modData, Dictionary<string, string> info)
|
||||
{
|
||||
base.Init(modData, info);
|
||||
|
||||
loadInfo = info;
|
||||
|
||||
// Avoid standard loading mechanisms so we
|
||||
@@ -68,7 +70,7 @@ namespace OpenRA.Mods.Cnc
|
||||
brightBlock = new Sprite(sheet, new Rectangle(320, 0, 16, 35), TextureChannel.Alpha);
|
||||
dimBlock = new Sprite(sheet, new Rectangle(336, 0, 16, 35), TextureChannel.Alpha);
|
||||
|
||||
versionText = modData.Manifest.Mod.Version;
|
||||
versionText = modData.Manifest.Metadata.Version;
|
||||
}
|
||||
|
||||
bool setup;
|
||||
|
||||
@@ -24,13 +24,11 @@ namespace OpenRA.Mods.Cnc.UtilityCommands
|
||||
// NOTE: 64x64 map size is a C&C95 engine limitation
|
||||
public ImportTiberianDawnLegacyMapCommand() : base(64) { }
|
||||
|
||||
public string Name { get { return "--import-td-map"; } }
|
||||
string IUtilityCommand.Name { get { return "--import-td-map"; } }
|
||||
bool IUtilityCommand.ValidateArguments(string[] args) { return ValidateArguments(args); }
|
||||
|
||||
[Desc("FILENAME", "Convert a legacy Tiberian Dawn INI/MPR map to the OpenRA format.")]
|
||||
public override void Run(ModData modData, string[] args)
|
||||
{
|
||||
base.Run(modData, args);
|
||||
}
|
||||
void IUtilityCommand.Run(Utility utility, string[] args) { Run(utility, args); }
|
||||
|
||||
public override void ValidateMapFormat(int format)
|
||||
{
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using OpenRA.FileFormats;
|
||||
using OpenRA.Mods.Common.Widgets.Logic;
|
||||
using OpenRA.Widgets;
|
||||
@@ -21,8 +22,12 @@ namespace OpenRA.Mods.Common.LoadScreens
|
||||
public class BlankLoadScreen : ILoadScreen
|
||||
{
|
||||
public LaunchArguments Launch;
|
||||
ModData modData;
|
||||
|
||||
public virtual void Init(ModData m, Dictionary<string, string> info) { }
|
||||
public virtual void Init(ModData modData, Dictionary<string, string> info)
|
||||
{
|
||||
this.modData = modData;
|
||||
}
|
||||
|
||||
public virtual void Display()
|
||||
{
|
||||
@@ -79,7 +84,7 @@ namespace OpenRA.Mods.Common.LoadScreens
|
||||
if (replayMeta != null)
|
||||
{
|
||||
var mod = replayMeta.GameInfo.Mod;
|
||||
if (mod != null && mod != Game.ModData.Manifest.Mod.Id && ModMetadata.AllMods.ContainsKey(mod))
|
||||
if (mod != null && mod != Game.ModData.Manifest.Id && Game.Mods.ContainsKey(mod))
|
||||
Game.InitializeMod(mod, args);
|
||||
}
|
||||
|
||||
@@ -97,5 +102,13 @@ namespace OpenRA.Mods.Common.LoadScreens
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
public bool RequiredContentIsInstalled()
|
||||
{
|
||||
var content = modData.Manifest.Get<ModContent>();
|
||||
return content.Packages
|
||||
.Where(p => p.Value.Required)
|
||||
.All(p => p.Value.TestFiles.All(f => File.Exists(Platform.ResolvePath(f))));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,8 @@ namespace OpenRA.Mods.Common.LoadScreens
|
||||
|
||||
public override void Init(ModData modData, Dictionary<string, string> info)
|
||||
{
|
||||
base.Init(modData, info);
|
||||
|
||||
// Avoid standard loading mechanisms so we
|
||||
// can display the loadscreen as early as possible
|
||||
r = Game.Renderer;
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
@@ -58,5 +57,10 @@ namespace OpenRA.Mods.Common.LoadScreens
|
||||
if (sprite != null)
|
||||
sprite.Sheet.Dispose();
|
||||
}
|
||||
|
||||
public bool RequiredContentIsInstalled()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,31 +95,21 @@ namespace OpenRA
|
||||
}
|
||||
|
||||
[FieldLoader.LoadUsing("LoadDownloads")]
|
||||
public readonly Dictionary<string, ModDownload> Downloads;
|
||||
public readonly string[] Downloads = { };
|
||||
|
||||
static object LoadDownloads(MiniYaml yaml)
|
||||
{
|
||||
var downloads = new Dictionary<string, ModDownload>();
|
||||
var downloadNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Downloads");
|
||||
if (downloadNode != null)
|
||||
foreach (var node in downloadNode.Value.Nodes)
|
||||
downloads.Add(node.Key, new ModDownload(node.Value));
|
||||
|
||||
return downloads;
|
||||
return downloadNode != null ? downloadNode.Value.Nodes.Select(n => n.Key).ToArray() : new string[0];
|
||||
}
|
||||
|
||||
[FieldLoader.LoadUsing("LoadSources")]
|
||||
public readonly Dictionary<string, ModSource> Sources;
|
||||
public readonly string[] Sources = { };
|
||||
|
||||
static object LoadSources(MiniYaml yaml)
|
||||
{
|
||||
var sources = new Dictionary<string, ModSource>();
|
||||
var sourceNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Sources");
|
||||
if (sourceNode != null)
|
||||
foreach (var node in sourceNode.Value.Nodes)
|
||||
sources.Add(node.Key, new ModSource(node.Value));
|
||||
|
||||
return sources;
|
||||
return sourceNode != null ? sourceNode.Value.Nodes.Select(n => n.Key).ToArray() : new string[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -778,6 +778,7 @@
|
||||
<Compile Include="Activities\Air\FlyCircleTimed.cs" />
|
||||
<Compile Include="UtilityCommands\ListInstallShieldCabContentsCommand.cs" />
|
||||
<Compile Include="FileFormats\InstallShieldCABCompression.cs" />
|
||||
<Compile Include="ModContent.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
lastPing = Game.RunTime;
|
||||
isBusy = true;
|
||||
|
||||
var mod = server.ModData.Manifest.Mod;
|
||||
var mod = server.ModData.Manifest;
|
||||
|
||||
// important to grab these on the main server thread, not in the worker we're about to spawn -- they may be modified
|
||||
// by the main thread as clients join and leave.
|
||||
@@ -79,7 +79,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
(int)server.State,
|
||||
numPlayers,
|
||||
numBots,
|
||||
"{0}@{1}".F(mod.Id, mod.Version),
|
||||
"{0}@{1}".F(mod.Id, mod.Metadata.Version),
|
||||
server.LobbyInfo.GlobalSettings.Map,
|
||||
numSlots,
|
||||
numSpectators,
|
||||
|
||||
@@ -17,22 +17,22 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class CheckCodeStyle : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--check-code-style"; } }
|
||||
string IUtilityCommand.Name { get { return "--check-code-style"; } }
|
||||
int violationCount;
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("DIRECTORY", "Check the *.cs source code files in a directory for code style violations.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var relativePath = args[1];
|
||||
var projectPath = Path.GetFullPath(relativePath);
|
||||
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
var console = new StyleCopConsole(null, false, null, null, true);
|
||||
var project = new CodeProject(0, projectPath, new Configuration(null));
|
||||
|
||||
@@ -28,9 +28,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
int violationCount;
|
||||
|
||||
[Desc("Check for explicit interface implementation violations in all assemblies referenced by the specified mod.")]
|
||||
void IUtilityCommand.Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var types = modData.ObjectCreator.GetTypes();
|
||||
var types = utility.ModData.ObjectCreator.GetTypes();
|
||||
|
||||
foreach (var implementingType in types.Where(t => !t.IsInterface))
|
||||
{
|
||||
|
||||
@@ -17,18 +17,18 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class CheckSquenceSprites : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--check-sequence-sprites"; } }
|
||||
string IUtilityCommand.Name { get { return "--check-sequence-sprites"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("Check the sequence definitions for missing sprite files.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var failed = false;
|
||||
modData.SpriteSequenceLoader.OnMissingSpriteError = s => { Console.WriteLine("\t" + s); failed = true; };
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class CheckYaml : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--check-yaml"; } }
|
||||
string IUtilityCommand.Name { get { return "--check-yaml"; } }
|
||||
|
||||
static int errors = 0;
|
||||
|
||||
@@ -34,16 +34,16 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
Console.WriteLine("OpenRA.Utility(1,1): Warning: {0}", e);
|
||||
}
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("[MAPFILE]", "Check a mod or map for certain yaml errors.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
var maps = new List<Map>();
|
||||
if (args.Length < 2)
|
||||
{
|
||||
Console.WriteLine("Testing mod: {0}".F(modData.Manifest.Mod.Title));
|
||||
Console.WriteLine("Testing mod: {0}".F(modData.Manifest.Metadata.Title));
|
||||
|
||||
// Run all rule checks on the default mod rules.
|
||||
CheckRules(modData, modData.DefaultRules);
|
||||
|
||||
@@ -23,15 +23,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ConvertPngToShpCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--shp"; } }
|
||||
string IUtilityCommand.Name { get { return "--shp"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("PNGFILE [PNGFILE ...]", "Combine a list of PNG images into a SHP")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var inputFiles = GlobArgs(args).OrderBy(a => a).ToList();
|
||||
var dest = inputFiles[0].Split('-').First() + ".shp";
|
||||
|
||||
@@ -21,19 +21,19 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ConvertSpriteToPngCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--png"; } }
|
||||
string IUtilityCommand.Name { get { return "--png"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 3;
|
||||
}
|
||||
|
||||
[Desc("SPRITEFILE PALETTE [--noshadow] [--nopadding]",
|
||||
"Convert a shp/tmp/R8 to a series of PNGs, optionally removing shadow")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var src = args[1];
|
||||
var shadowIndex = new int[] { };
|
||||
|
||||
@@ -16,15 +16,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class CreateManPage : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--man-page"; } }
|
||||
string IUtilityCommand.Name { get { return "--man-page"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("Create a man page in troff format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
Console.WriteLine(".TH OPENRA 6");
|
||||
Console.WriteLine(".SH NAME");
|
||||
|
||||
@@ -17,21 +17,21 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ExtractFilesCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--extract"; } }
|
||||
string IUtilityCommand.Name { get { return "--extract"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("Extract files from mod packages to the current directory")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var files = args.Skip(1);
|
||||
|
||||
foreach (var f in files)
|
||||
{
|
||||
var src = modData.DefaultFileSystem.Open(f);
|
||||
var src = utility.ModData.DefaultFileSystem.Open(f);
|
||||
if (src == null)
|
||||
throw new InvalidOperationException("File not found: {0}".F(f));
|
||||
var data = src.ReadAllBytes();
|
||||
|
||||
@@ -18,20 +18,20 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ExtractLanguageStringsCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--extract-language-strings"; } }
|
||||
string IUtilityCommand.Name { get { return "--extract-language-strings"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("Extract translatable strings that are not yet localized and update chrome layout.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var types = Game.ModData.ObjectCreator.GetTypes();
|
||||
var types = modData.ObjectCreator.GetTypes();
|
||||
var translatableFields = types.SelectMany(t => t.GetFields())
|
||||
.Where(f => f.HasAttribute<TranslateAttribute>()).Distinct();
|
||||
|
||||
|
||||
@@ -18,20 +18,20 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ExtractLuaDocsCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--lua-docs"; } }
|
||||
string IUtilityCommand.Name { get { return "--lua-docs"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("Generate Lua API documentation in MarkDown format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
Console.WriteLine("This is an automatically generated listing of the new Lua map scripting API, generated for {0} of OpenRA.", Game.ModData.Manifest.Mod.Version);
|
||||
Console.WriteLine("This is an automatically generated listing of the new Lua map scripting API, generated for {0} of OpenRA.", Game.ModData.Manifest.Metadata.Version);
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("OpenRA allows custom maps and missions to be scripted using Lua 5.1.\n" +
|
||||
"These scripts run in a sandbox that prevents access to unsafe functions (e.g. OS or file access), " +
|
||||
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
Console.WriteLine("For a basic guide about map scripts see the [`Map Scripting` wiki page](https://github.com/OpenRA/OpenRA/wiki/Map-scripting).");
|
||||
Console.WriteLine();
|
||||
|
||||
var tables = Game.ModData.ObjectCreator.GetTypesImplementing<ScriptGlobal>()
|
||||
var tables = utility.ModData.ObjectCreator.GetTypesImplementing<ScriptGlobal>()
|
||||
.OrderBy(t => t.Name);
|
||||
|
||||
Console.WriteLine("<h3>Global Tables</h3>");
|
||||
@@ -77,7 +77,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
Console.WriteLine("<h3>Actor Properties / Commands</h3>");
|
||||
|
||||
var actorCategories = Game.ModData.ObjectCreator.GetTypesImplementing<ScriptActorProperties>().SelectMany(cg =>
|
||||
var actorCategories = utility.ModData.ObjectCreator.GetTypesImplementing<ScriptActorProperties>().SelectMany(cg =>
|
||||
{
|
||||
var catAttr = cg.GetCustomAttributes<ScriptPropertyGroupAttribute>(false).FirstOrDefault();
|
||||
var category = catAttr != null ? catAttr.Category : "Unsorted";
|
||||
@@ -122,7 +122,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
Console.WriteLine("<h3>Player Properties / Commands</h3>");
|
||||
|
||||
var playerCategories = Game.ModData.ObjectCreator.GetTypesImplementing<ScriptPlayerProperties>().SelectMany(cg =>
|
||||
var playerCategories = utility.ModData.ObjectCreator.GetTypesImplementing<ScriptPlayerProperties>().SelectMany(cg =>
|
||||
{
|
||||
var catAttr = cg.GetCustomAttributes<ScriptPropertyGroupAttribute>(false).FirstOrDefault();
|
||||
var category = catAttr != null ? catAttr.Category : "Unsorted";
|
||||
|
||||
@@ -50,9 +50,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("MAPFILE", "Merge custom map rules into a form suitable for including in map.yaml.")]
|
||||
void IUtilityCommand.Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var map = new Map(modData, modData.ModFiles.OpenPackage(args[1], new Folder(".")));
|
||||
MergeAndPrint(map, "Rules", map.RuleDefinitions);
|
||||
|
||||
@@ -16,21 +16,21 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ExtractSettingsDocsCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--settings-docs"; } }
|
||||
string IUtilityCommand.Name { get { return "--settings-docs"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("Generate settings documentation in markdown format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
Console.WriteLine(
|
||||
"This documentation is aimed at server administrators. It displays all settings with default values and description. " +
|
||||
"Please do not edit it directly, but add new `[Desc(\"String\")]` tags to the source code. This file has been " +
|
||||
"automatically generated for version {0} of OpenRA.", Game.ModData.Manifest.Mod.Version);
|
||||
"automatically generated for version {0} of OpenRA.", utility.ModData.Manifest.Metadata.Version);
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("All settings can be changed by starting the game via a command-line parameter like `Game.Mod=ra`.");
|
||||
Console.WriteLine();
|
||||
|
||||
@@ -20,23 +20,23 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ExtractTraitDocsCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--docs"; } }
|
||||
string IUtilityCommand.Name { get { return "--docs"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
[Desc("Generate trait documentation in MarkDown format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
Console.WriteLine(
|
||||
"This documentation is aimed at modders. It displays all traits with default values and developer commentary. " +
|
||||
"Please do not edit it directly, but add new `[Desc(\"String\")]` tags to the source code. This file has been " +
|
||||
"automatically generated for version {0} of OpenRA.", Game.ModData.Manifest.Mod.Version);
|
||||
"automatically generated for version {0} of OpenRA.", utility.ModData.Manifest.Metadata.Version);
|
||||
Console.WriteLine();
|
||||
|
||||
var toc = new StringBuilder();
|
||||
|
||||
@@ -20,18 +20,18 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class FixClassicTilesets : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--fix-classic-tilesets"; } }
|
||||
string IUtilityCommand.Name { get { return "--fix-classic-tilesets"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("EXTENSIONS", "Fixes missing template tile definitions and adds filename extensions.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var imageField = typeof(TerrainTemplateInfo).GetField("Image");
|
||||
var pickAnyField = typeof(TerrainTemplateInfo).GetField("PickAny");
|
||||
|
||||
@@ -16,17 +16,17 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class GetMapHashCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--map-hash"; } }
|
||||
string IUtilityCommand.Name { get { return "--map-hash"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("MAPFILE", "Generate hash of specified oramap file.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
using (var package = modData.ModFiles.OpenPackage(args[1], new Folder(".")))
|
||||
using (var package = utility.ModData.ModFiles.OpenPackage(args[1], new Folder(".")))
|
||||
Console.WriteLine(Map.ComputeUID(package));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,18 +38,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
bool singlePlayer;
|
||||
int spawnCount;
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
protected bool ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("FILENAME", "Convert a legacy INI/MPR map to the OpenRA format.")]
|
||||
public virtual void Run(ModData modData, string[] args)
|
||||
protected void Run(Utility utility, string[] args)
|
||||
{
|
||||
ModData = modData;
|
||||
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = ModData = utility.ModData;
|
||||
|
||||
var filename = args[1];
|
||||
using (var stream = File.OpenRead(filename))
|
||||
@@ -68,16 +65,16 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
// The original game isn't case sensitive, but we are.
|
||||
var tileset = GetTileset(mapSection).ToUpperInvariant();
|
||||
if (!modData.DefaultTileSets.ContainsKey(tileset))
|
||||
if (!ModData.DefaultTileSets.ContainsKey(tileset))
|
||||
throw new InvalidDataException("Unknown tileset {0}".F(tileset));
|
||||
|
||||
Map = new Map(modData, modData.DefaultTileSets[tileset], MapSize, MapSize)
|
||||
Map = new Map(ModData, ModData.DefaultTileSets[tileset], MapSize, MapSize)
|
||||
{
|
||||
Title = basic.GetValue("Name", Path.GetFileNameWithoutExtension(filename)),
|
||||
Author = "Westwood Studios",
|
||||
};
|
||||
|
||||
Map.RequiresMod = modData.Manifest.Mod.Id;
|
||||
Map.RequiresMod = ModData.Manifest.Id;
|
||||
|
||||
SetBounds(Map, mapSection);
|
||||
|
||||
|
||||
@@ -19,15 +19,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ListInstallShieldCabContentsCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--list-installshield-cab"; } }
|
||||
string IUtilityCommand.Name { get { return "--list-installshield-cab"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length == 2;
|
||||
}
|
||||
|
||||
[Desc("DATA.HDR", "Lists the filenames contained within an Installshield CAB volume set")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
using (var file = File.OpenRead(args[1]))
|
||||
{
|
||||
|
||||
@@ -11,27 +11,26 @@
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using OpenRA.FileSystem;
|
||||
|
||||
namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ListInstallShieldContents : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--list-installshield"; } }
|
||||
string IUtilityCommand.Name { get { return "--list-installshield"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length == 2;
|
||||
}
|
||||
|
||||
[Desc("ARCHIVE.Z", "Lists the content ranges for a InstallShield V3 file")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var filename = Path.GetFileName(args[1]);
|
||||
var path = Path.GetDirectoryName(args[1]);
|
||||
|
||||
var fs = new OpenRA.FileSystem.FileSystem();
|
||||
var fs = new FileSystem.FileSystem(utility.Mods);
|
||||
fs.Mount(path, "parent");
|
||||
var package = new InstallShieldPackage(fs, "parent|" + filename);
|
||||
|
||||
|
||||
@@ -17,15 +17,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ListMSCabContentsCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--list-mscab"; } }
|
||||
string IUtilityCommand.Name { get { return "--list-mscab"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length == 2;
|
||||
}
|
||||
|
||||
[Desc("ARCHIVE.CAB", "Lists the filenames contained within a MSCAB file")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var package = new MSCabCompression(File.OpenRead(args[1]));
|
||||
foreach (var file in package.Contents)
|
||||
|
||||
@@ -18,23 +18,23 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ListMixContents : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--list-mix"; } }
|
||||
string IUtilityCommand.Name { get { return "--list-mix"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length == 2;
|
||||
}
|
||||
|
||||
[Desc("ARCHIVE.MIX", "Lists the content ranges for a mix file")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var filename = Path.GetFileName(args[1]);
|
||||
var path = Path.GetDirectoryName(args[1]);
|
||||
|
||||
var fs = new OpenRA.FileSystem.FileSystem();
|
||||
var fs = new FileSystem.FileSystem(utility.Mods);
|
||||
|
||||
// Needed to access the global mix database
|
||||
fs.LoadFromManifest(modData.Manifest);
|
||||
fs.LoadFromManifest(utility.ModData.Manifest);
|
||||
|
||||
fs.Mount(path, "parent");
|
||||
var package = new MixFile(fs, "parent|" + filename);
|
||||
|
||||
@@ -15,16 +15,17 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("ACTOR-TYPE [PATH/TO/MAP]", "Display the finalized, merged MiniYaml tree for the given actor type. Input values are case-sensitive.")]
|
||||
void IUtilityCommand.Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var actorType = args[1];
|
||||
string mapPath = null;
|
||||
|
||||
Map map = null;
|
||||
if (args.Length == 3)
|
||||
{
|
||||
try
|
||||
{
|
||||
mapPath = args[2];
|
||||
@@ -35,6 +36,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
Console.WriteLine("Could not load map '{0}'.", mapPath);
|
||||
Environment.Exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
var fs = map ?? modData.DefaultFileSystem;
|
||||
var topLevelNodes = MiniYaml.Load(fs, modData.Manifest.Rules, map == null ? null : map.RuleDefinitions);
|
||||
|
||||
@@ -22,15 +22,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class RemapShpCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--remap"; } }
|
||||
string IUtilityCommand.Name { get { return "--remap"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 5;
|
||||
}
|
||||
|
||||
[Desc("SRCMOD:PAL DESTMOD:PAL SRCSHP DESTSHP", "Remap SHPs to another palette")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var remap = new Dictionary<int, int>();
|
||||
|
||||
@@ -39,14 +39,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
remap[i] = i;
|
||||
|
||||
var srcMod = args[1].Split(':')[0];
|
||||
var srcModData = new ModData(srcMod);
|
||||
var srcModData = new ModData(utility.Mods[srcMod], utility.Mods);
|
||||
Game.ModData = srcModData;
|
||||
|
||||
var srcPaletteInfo = srcModData.DefaultRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
|
||||
var srcRemapIndex = srcPaletteInfo.RemapIndex;
|
||||
|
||||
var destMod = args[2].Split(':')[0];
|
||||
var destModData = new ModData(destMod);
|
||||
var destModData = new ModData(utility.Mods[destMod], utility.Mods);
|
||||
Game.ModData = destModData;
|
||||
var destPaletteInfo = destModData.DefaultRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
|
||||
var destRemapIndex = destPaletteInfo.RemapIndex;
|
||||
|
||||
@@ -17,15 +17,15 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class ReplayMetadataCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--replay-metadata"; } }
|
||||
string IUtilityCommand.Name { get { return "--replay-metadata"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
[Desc("REPLAYFILE", "Print the game metadata from a replay file.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
var replay = ReplayMetadata.Read(args[1]);
|
||||
if (replay == null)
|
||||
|
||||
@@ -18,14 +18,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
public class ResizeMapCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--resize-map"; } }
|
||||
string IUtilityCommand.Name { get { return "--resize-map"; } }
|
||||
|
||||
int width;
|
||||
int height;
|
||||
|
||||
Map map;
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
if (args.Length < 4)
|
||||
return false;
|
||||
@@ -46,9 +46,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("MAPFILE", "WIDTH", "HEIGHT", "Resize the map at the bottom corners.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
map = new Map(modData, modData.ModFiles.OpenPackage(args[1], new Folder(".")));
|
||||
Console.WriteLine("Resizing map {0} from {1} to {2},{3}", map.Title, map.MapSize, width, height);
|
||||
map.Resize(width, height);
|
||||
|
||||
@@ -15,11 +15,11 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class Rgba2Hex : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--rgba2hex"; } }
|
||||
string IUtilityCommand.Name { get { return "--rgba2hex"; } }
|
||||
|
||||
static readonly char[] Comma = new char[] { ',' };
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
if (args.Length <= 1)
|
||||
return PrintUsage();
|
||||
@@ -74,7 +74,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("Convert r,g,b[,a] triples/quads into hex colors")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
for (int i = 1; i < args.Length;)
|
||||
{
|
||||
@@ -104,11 +104,11 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
class Argb2Hex : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--argb2hex"; } }
|
||||
string IUtilityCommand.Name { get { return "--argb2hex"; } }
|
||||
|
||||
static readonly char[] Comma = new char[] { ',' };
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
if (args.Length <= 1)
|
||||
return PrintUsage();
|
||||
@@ -180,7 +180,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("Convert a,r,g,b legacy colors into hex colors")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
for (int i = 1; i < args.Length;)
|
||||
{
|
||||
|
||||
@@ -19,9 +19,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class UpgradeMapCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--upgrade-map"; } }
|
||||
string IUtilityCommand.Name { get { return "--upgrade-map"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 3;
|
||||
}
|
||||
@@ -75,10 +75,10 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("MAP", "CURRENTENGINE", "Upgrade map rules to the latest engine version.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
// HACK: We know that maps can only be oramap or folders, which are ReadWrite
|
||||
var package = modData.ModFiles.OpenPackage(args[1], new Folder(".")) as IReadWritePackage;
|
||||
|
||||
@@ -19,9 +19,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
class UpgradeModCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--upgrade-mod"; } }
|
||||
string IUtilityCommand.Name { get { return "--upgrade-mod"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
@@ -53,10 +53,10 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
[Desc("CURRENTENGINE", "Upgrade mod rules to the latest engine version.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
modData.MapCache.LoadMaps();
|
||||
|
||||
var engineDate = Exts.ParseIntegerInvariant(args[1]);
|
||||
|
||||
@@ -346,7 +346,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
if (engineVersion < 20160730 && modData.Manifest.Mod.Id == "d2k" && depth == 2)
|
||||
if (engineVersion < 20160730 && modData.Manifest.Id == "d2k" && depth == 2)
|
||||
{
|
||||
if (node.Key == "Start")
|
||||
node.Value.Value = RemapD2k106Sequence(FieldLoader.GetValue<int>("", node.Value.Value)).ToString();
|
||||
@@ -416,7 +416,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
// Fix RA building footprints to not use _ when it's not necessary
|
||||
if (engineVersion < 20160619 && modData.Manifest.Mod.Id == "ra" && depth == 1)
|
||||
if (engineVersion < 20160619 && modData.Manifest.Id == "ra" && depth == 1)
|
||||
{
|
||||
var buildings = new List<string>() { "tsla", "gap", "agun", "apwr", "fapw" };
|
||||
if (buildings.Contains(parent.Value.Value) && node.Key == "Location")
|
||||
@@ -424,7 +424,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
|
||||
// Fix TD building footprints to not use _ when it's not necessary
|
||||
if (engineVersion < 20160619 && modData.Manifest.Mod.Id == "cnc" && depth == 1)
|
||||
if (engineVersion < 20160619 && modData.Manifest.Id == "cnc" && depth == 1)
|
||||
{
|
||||
var buildings = new List<string>() { "atwr", "obli", "tmpl", "weap", "hand" };
|
||||
if (buildings.Contains(parent.Value.Value) && node.Key == "Location")
|
||||
|
||||
@@ -170,7 +170,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (playerDefinitions != null)
|
||||
map.PlayerDefinitions = playerDefinitions;
|
||||
|
||||
map.RequiresMod = modData.Manifest.Mod.Id;
|
||||
map.RequiresMod = modData.Manifest.Id;
|
||||
|
||||
var combinedPath = Platform.ResolvePath(Path.Combine(selectedDirectory.Folder.Name, filename.Text + fileTypes[fileType].Extension));
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (mpe != null)
|
||||
mpe.Fade(mpe.Info.MenuEffect);
|
||||
|
||||
menu.Get<LabelWidget>("VERSION_LABEL").Text = modData.Manifest.Mod.Version;
|
||||
menu.Get<LabelWidget>("VERSION_LABEL").Text = modData.Manifest.Metadata.Version;
|
||||
|
||||
var hideMenu = false;
|
||||
menu.Get("MENU_BUTTONS").IsVisible = () => !hideMenu;
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
enum Mode { Progress, Message, List }
|
||||
|
||||
readonly ModContent content;
|
||||
readonly Dictionary<string, ModContent.ModSource> sources;
|
||||
|
||||
readonly Widget panel;
|
||||
readonly LabelWidget titleLabel;
|
||||
@@ -54,9 +55,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
Mode visible = Mode.Progress;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public InstallFromDiscLogic(Widget widget, ModContent content, Action afterInstall)
|
||||
public InstallFromDiscLogic(Widget widget, ModContent content, Dictionary<string, ModContent.ModSource> sources, Action afterInstall)
|
||||
{
|
||||
this.content = content;
|
||||
this.sources = sources;
|
||||
|
||||
Log.AddChannel("install", "install.log");
|
||||
|
||||
@@ -106,7 +108,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
.Where(v => v.DriveType == DriveType.CDRom && v.IsReady)
|
||||
.Select(v => v.RootDirectory.FullName);
|
||||
|
||||
foreach (var kv in content.Sources)
|
||||
foreach (var kv in sources)
|
||||
{
|
||||
message = "Searching for " + kv.Value.Title;
|
||||
|
||||
@@ -131,12 +133,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
}
|
||||
}
|
||||
|
||||
var sources = content.Packages.Values
|
||||
var missingSources = content.Packages.Values
|
||||
.Where(p => !p.IsInstalled())
|
||||
.SelectMany(p => p.Sources)
|
||||
.Select(d => content.Sources[d]);
|
||||
.Select(d => sources[d]);
|
||||
|
||||
var discs = sources
|
||||
var discs = missingSources
|
||||
.Where(s => s.Type == ModContent.SourceType.Disc)
|
||||
.Select(s => s.Title)
|
||||
.Distinct();
|
||||
@@ -148,7 +150,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
if (Platform.CurrentPlatform == PlatformType.Windows)
|
||||
{
|
||||
var installations = sources
|
||||
var installations = missingSources
|
||||
.Where(s => s.Type == ModContent.SourceType.Install)
|
||||
.Select(s => s.Title)
|
||||
.Distinct();
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
var panel = widget.Get("INSTALL_MOD_PANEL");
|
||||
|
||||
var mods = ModMetadata.AllMods[modId].RequiresMods.Where(m => !Game.IsModInstalled(m)).Select(m => "{0} ({1})".F(m.Key, m.Value));
|
||||
var mods = Game.Mods[modId].RequiresMods.Where(m => !Game.IsModInstalled(m)).Select(m => "{0} ({1})".F(m.Key, m.Value));
|
||||
var text = string.Join(", ", mods);
|
||||
panel.Get<LabelWidget>("MOD_LIST").Text = text;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
@@ -21,14 +21,32 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
readonly ModContent content;
|
||||
readonly ScrollPanelWidget scrollPanel;
|
||||
readonly Widget template;
|
||||
|
||||
readonly Dictionary<string, ModContent.ModSource> sources = new Dictionary<string, ModContent.ModSource>();
|
||||
readonly Dictionary<string, ModContent.ModDownload> downloads = new Dictionary<string, ModContent.ModDownload>();
|
||||
|
||||
bool discAvailable;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public ModContentLogic(Widget widget, string modId, Action onCancel)
|
||||
public ModContentLogic(Widget widget, Manifest mod, ModContent content, Action onCancel)
|
||||
{
|
||||
this.content = content;
|
||||
|
||||
var panel = widget.Get("CONTENT_PANEL");
|
||||
|
||||
content = ModMetadata.AllMods[modId].ModContent;
|
||||
var modFileSystem = new FileSystem.FileSystem(Game.Mods);
|
||||
modFileSystem.LoadFromManifest(mod);
|
||||
|
||||
var sourceYaml = MiniYaml.Load(modFileSystem, content.Sources, null);
|
||||
foreach (var s in sourceYaml)
|
||||
sources.Add(s.Key, new ModContent.ModSource(s.Value));
|
||||
|
||||
var downloadYaml = MiniYaml.Load(modFileSystem, content.Downloads, null);
|
||||
foreach (var d in downloadYaml)
|
||||
downloads.Add(d.Key, new ModContent.ModDownload(d.Value));
|
||||
|
||||
modFileSystem.UnmountAll();
|
||||
|
||||
scrollPanel = panel.Get<ScrollPanelWidget>("PACKAGES");
|
||||
template = scrollPanel.Get<ContainerWidget>("PACKAGE_TEMPLATE");
|
||||
|
||||
@@ -56,6 +74,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
discButton.OnClick = () => Ui.OpenWindow("DISC_INSTALL_PANEL", new WidgetArgs
|
||||
{
|
||||
{ "afterInstall", () => { } },
|
||||
{ "sources", sources },
|
||||
{ "content", content }
|
||||
});
|
||||
|
||||
@@ -87,9 +106,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
requiredWidget.IsVisible = () => p.Value.Required;
|
||||
|
||||
var sourceWidget = container.Get<ImageWidget>("DISC");
|
||||
var sources = p.Value.Sources.Select(s => content.Sources[s].Title).Distinct();
|
||||
var sourceList = sources.JoinWith("\n");
|
||||
var isSourceAvailable = sources.Any();
|
||||
var sourceTitles = p.Value.Sources.Select(s => sources[s].Title).Distinct();
|
||||
var sourceList = sourceTitles.JoinWith("\n");
|
||||
var isSourceAvailable = sourceTitles.Any();
|
||||
sourceWidget.GetTooltipText = () => sourceList;
|
||||
sourceWidget.IsVisible = () => isSourceAvailable;
|
||||
|
||||
@@ -100,10 +119,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
if (downloadEnabled)
|
||||
{
|
||||
var download = content.Downloads[p.Value.Download];
|
||||
var widgetArgs = new WidgetArgs
|
||||
{
|
||||
{ "download", download },
|
||||
{ "download", downloads[p.Value.Download] },
|
||||
{ "onSuccess", () => { } }
|
||||
};
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
@@ -17,13 +18,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
public class ModContentPromptLogic : ChromeLogic
|
||||
{
|
||||
[ObjectCreator.UseCtor]
|
||||
public ModContentPromptLogic(Widget widget, string modId, Action continueLoading)
|
||||
public ModContentPromptLogic(Widget widget, Manifest mod, ModContent content, Action continueLoading)
|
||||
{
|
||||
var panel = widget.Get("CONTENT_PROMPT_PANEL");
|
||||
|
||||
var mod = ModMetadata.AllMods[modId];
|
||||
var content = ModMetadata.AllMods[modId].ModContent;
|
||||
|
||||
var headerTemplate = panel.Get<LabelWidget>("HEADER_TEMPLATE");
|
||||
var headerLines = !string.IsNullOrEmpty(content.InstallPromptMessage) ? content.InstallPromptMessage.Replace("\\n", "\n").Split('\n') : new string[0];
|
||||
var headerHeight = 0;
|
||||
@@ -46,7 +44,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
Ui.OpenWindow("CONTENT_PANEL", new WidgetArgs
|
||||
{
|
||||
{ "modId", modId },
|
||||
{ "mod", mod },
|
||||
{ "content", content },
|
||||
{ "onCancel", Ui.CloseWindow }
|
||||
});
|
||||
};
|
||||
@@ -56,9 +55,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
quickButton.Bounds.Y += headerHeight;
|
||||
quickButton.OnClick = () =>
|
||||
{
|
||||
var modFileSystem = new FileSystem.FileSystem(Game.Mods);
|
||||
modFileSystem.LoadFromManifest(mod);
|
||||
var downloadYaml = MiniYaml.Load(modFileSystem, content.Downloads, null);
|
||||
modFileSystem.UnmountAll();
|
||||
|
||||
var download = downloadYaml.FirstOrDefault(n => n.Key == content.QuickDownload);
|
||||
if (download == null)
|
||||
throw new InvalidOperationException("Mod QuickDownload `{0}` definition not found.".F(content.QuickDownload));
|
||||
|
||||
Ui.OpenWindow("PACKAGE_DOWNLOAD_PANEL", new WidgetArgs
|
||||
{
|
||||
{ "download", content.Downloads[content.QuickDownload] },
|
||||
{ "download", new ModContent.ModDownload(download.Value) },
|
||||
{ "onSuccess", continueLoading }
|
||||
});
|
||||
};
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
public MainMenuLogic(Widget widget, World world, ModData modData)
|
||||
{
|
||||
rootMenu = widget;
|
||||
rootMenu.Get<LabelWidget>("VERSION_LABEL").Text = modData.Manifest.Mod.Version;
|
||||
rootMenu.Get<LabelWidget>("VERSION_LABEL").Text = modData.Manifest.Metadata.Version;
|
||||
|
||||
// Menu buttons
|
||||
var mainMenu = widget.Get("MAIN_MENU");
|
||||
@@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
// so we can't do this inside the input handler.
|
||||
Game.RunAfterTick(() =>
|
||||
{
|
||||
Game.Settings.Game.PreviousMod = modData.Manifest.Mod.Id;
|
||||
Game.Settings.Game.PreviousMod = modData.Manifest.Id;
|
||||
Game.InitializeMod("modchooser", null);
|
||||
});
|
||||
};
|
||||
@@ -283,9 +283,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
// Send the mod and engine version to support version-filtered news (update prompts)
|
||||
var newsURL = Game.Settings.Game.NewsUrl + "?version={0}&mod={1}&modversion={2}".F(
|
||||
Uri.EscapeUriString(ModMetadata.AllMods["modchooser"].Version),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Mod.Id),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Mod.Version));
|
||||
Uri.EscapeUriString(Game.Mods["modchooser"].Metadata.Version),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Id),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Metadata.Version));
|
||||
|
||||
// Append system profile data if the player has opted in
|
||||
if (Game.Settings.Debug.SendSystemInformation)
|
||||
|
||||
@@ -24,32 +24,39 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
readonly Widget modList;
|
||||
readonly ButtonWidget modTemplate;
|
||||
readonly ModMetadata[] allMods;
|
||||
readonly Manifest[] allMods;
|
||||
readonly Dictionary<string, Sprite> previews = new Dictionary<string, Sprite>();
|
||||
readonly Dictionary<string, Sprite> logos = new Dictionary<string, Sprite>();
|
||||
readonly Cache<Manifest, ModContent> content = new Cache<Manifest, ModContent>(LoadModContent);
|
||||
|
||||
readonly Widget modChooserPanel;
|
||||
readonly ButtonWidget loadButton;
|
||||
readonly SheetBuilder sheetBuilder;
|
||||
ModMetadata selectedMod;
|
||||
Manifest selectedMod;
|
||||
string selectedAuthor;
|
||||
string selectedDescription;
|
||||
int modOffset = 0;
|
||||
|
||||
static ModContent LoadModContent(Manifest mod)
|
||||
{
|
||||
return mod.Get<ModContent>(Game.ModData.ObjectCreator);
|
||||
}
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public ModBrowserLogic(Widget widget, ModData modData)
|
||||
{
|
||||
modChooserPanel = widget;
|
||||
loadButton = modChooserPanel.Get<ButtonWidget>("LOAD_BUTTON");
|
||||
loadButton.OnClick = () => LoadMod(selectedMod);
|
||||
loadButton.IsDisabled = () => selectedMod.Id == modData.Manifest.Mod.Id;
|
||||
loadButton.IsDisabled = () => selectedMod.Id == modData.Manifest.Id;
|
||||
|
||||
var contentButton = modChooserPanel.Get<ButtonWidget>("CONFIGURE_BUTTON");
|
||||
contentButton.IsDisabled = () => selectedMod.ModContent == null;
|
||||
contentButton.OnClick = () =>
|
||||
{
|
||||
var widgetArgs = new WidgetArgs
|
||||
{
|
||||
{ "modId", selectedMod.Id },
|
||||
{ "mod", selectedMod },
|
||||
{ "content", content[selectedMod] },
|
||||
{ "onCancel", () => { } }
|
||||
};
|
||||
|
||||
@@ -62,9 +69,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
modTemplate = modList.Get<ButtonWidget>("MOD_TEMPLATE");
|
||||
|
||||
modChooserPanel.Get<LabelWidget>("MOD_DESC").GetText = () => selectedDescription;
|
||||
modChooserPanel.Get<LabelWidget>("MOD_TITLE").GetText = () => selectedMod.Title;
|
||||
modChooserPanel.Get<LabelWidget>("MOD_TITLE").GetText = () => selectedMod.Metadata.Title;
|
||||
modChooserPanel.Get<LabelWidget>("MOD_AUTHOR").GetText = () => selectedAuthor;
|
||||
modChooserPanel.Get<LabelWidget>("MOD_VERSION").GetText = () => selectedMod.Version;
|
||||
modChooserPanel.Get<LabelWidget>("MOD_VERSION").GetText = () => selectedMod.Metadata.Version;
|
||||
|
||||
var prevMod = modChooserPanel.Get<ButtonWidget>("PREV_MOD");
|
||||
prevMod.OnClick = () => { modOffset -= 1; RebuildModList(); };
|
||||
@@ -82,8 +89,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
};
|
||||
|
||||
sheetBuilder = new SheetBuilder(SheetType.BGRA);
|
||||
allMods = ModMetadata.AllMods.Values.Where(m => !m.Hidden)
|
||||
.OrderBy(m => m.Title)
|
||||
allMods = Game.Mods.Values.Where(m => !m.Metadata.Hidden)
|
||||
.OrderBy(m => m.Metadata.Title)
|
||||
.ToArray();
|
||||
|
||||
// Load preview images, and eat any errors
|
||||
@@ -91,7 +98,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var stream = ModMetadata.AllMods[mod.Id].Package.GetStream("preview.png"))
|
||||
using (var stream = mod.Package.GetStream("preview.png"))
|
||||
using (var preview = new Bitmap(stream))
|
||||
if (preview.Width == 296 && preview.Height == 196)
|
||||
previews.Add(mod.Id, sheetBuilder.Add(preview));
|
||||
@@ -100,7 +107,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
try
|
||||
{
|
||||
using (var stream = ModMetadata.AllMods[mod.Id].Package.GetStream("logo.png"))
|
||||
using (var stream = mod.Package.GetStream("logo.png"))
|
||||
using (var logo = new Bitmap(stream))
|
||||
if (logo.Width == 96 && logo.Height == 96)
|
||||
logos.Add(mod.Id, sheetBuilder.Add(logo));
|
||||
@@ -108,9 +115,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
catch (Exception) { }
|
||||
}
|
||||
|
||||
ModMetadata initialMod;
|
||||
ModMetadata.AllMods.TryGetValue(Game.Settings.Game.PreviousMod, out initialMod);
|
||||
SelectMod(initialMod != null && initialMod.Id != "modchooser" ? initialMod : ModMetadata.AllMods["ra"]);
|
||||
Manifest initialMod;
|
||||
Game.Mods.TryGetValue(Game.Settings.Game.PreviousMod, out initialMod);
|
||||
SelectMod(initialMod != null && initialMod.Id != "modchooser" ? initialMod : Game.Mods["ra"]);
|
||||
|
||||
RebuildModList();
|
||||
}
|
||||
@@ -146,7 +153,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
SelectMod(mod);
|
||||
};
|
||||
|
||||
item.TooltipText = mod.Title;
|
||||
item.TooltipText = mod.Metadata.Title;
|
||||
|
||||
if (j < 9)
|
||||
item.Key = new Hotkey((Keycode)((int)Keycode.NUMBER_1 + j), Modifiers.None);
|
||||
@@ -160,23 +167,25 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
}
|
||||
}
|
||||
|
||||
void SelectMod(ModMetadata mod)
|
||||
void SelectMod(Manifest mod)
|
||||
{
|
||||
selectedMod = mod;
|
||||
selectedAuthor = "By " + (mod.Author ?? "unknown author");
|
||||
selectedDescription = (mod.Description ?? "").Replace("\\n", "\n");
|
||||
selectedAuthor = "By " + (mod.Metadata.Author ?? "unknown author");
|
||||
selectedDescription = (mod.Metadata.Description ?? "").Replace("\\n", "\n");
|
||||
var selectedIndex = Array.IndexOf(allMods, mod);
|
||||
if (selectedIndex - modOffset > 4)
|
||||
modOffset = selectedIndex - 4;
|
||||
}
|
||||
|
||||
void LoadMod(ModMetadata mod)
|
||||
void LoadMod(Manifest mod)
|
||||
{
|
||||
if (!Game.IsModInstalled(mod.Id))
|
||||
var modId = mod.Id;
|
||||
if (!Game.IsModInstalled(modId))
|
||||
{
|
||||
var widgetArgs = new WidgetArgs
|
||||
{
|
||||
{ "modId", mod.Id }
|
||||
{ "mod", selectedMod },
|
||||
{ "content", content[selectedMod] },
|
||||
};
|
||||
|
||||
Ui.OpenWindow("INSTALL_MOD_PANEL", widgetArgs);
|
||||
@@ -188,8 +197,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
var widgetArgs = new WidgetArgs
|
||||
{
|
||||
{ "continueLoading", () =>
|
||||
Game.RunAfterTick(() => Game.InitializeMod(mod.Id, new Arguments())) },
|
||||
{ "modId", mod.Id }
|
||||
Game.RunAfterTick(() => Game.InitializeMod(modId, new Arguments())) },
|
||||
{ "mod", selectedMod },
|
||||
{ "content", content[selectedMod] },
|
||||
};
|
||||
|
||||
Ui.OpenWindow("CONTENT_PROMPT_PANEL", widgetArgs);
|
||||
@@ -201,13 +211,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
Ui.CloseWindow();
|
||||
sheetBuilder.Dispose();
|
||||
Game.InitializeMod(mod.Id, null);
|
||||
Game.InitializeMod(modId, null);
|
||||
});
|
||||
}
|
||||
|
||||
static bool IsModInstalled(ModMetadata mod)
|
||||
bool IsModInstalled(Manifest mod)
|
||||
{
|
||||
return mod.ModContent.Packages
|
||||
return content[mod].Packages
|
||||
.Where(p => p.Value.Required)
|
||||
.All(p => p.Value.TestFiles.All(f => File.Exists(Platform.ResolvePath(f))));
|
||||
}
|
||||
|
||||
@@ -316,9 +316,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
};
|
||||
|
||||
var queryURL = Game.Settings.Server.MasterServer + "games?version={0}&mod={1}&modversion={2}".F(
|
||||
Uri.EscapeUriString(ModMetadata.AllMods["modchooser"].Version),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Mod.Id),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Mod.Version));
|
||||
Uri.EscapeUriString(Game.Mods["modchooser"].Metadata.Version),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Id),
|
||||
Uri.EscapeUriString(Game.ModData.Manifest.Metadata.Version));
|
||||
|
||||
currentQuery = new Download(queryURL, _ => { }, onComplete);
|
||||
}
|
||||
@@ -330,7 +330,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
return 0;
|
||||
|
||||
// Games for the current mod+version are sorted first
|
||||
if (testEntry.ModId == modData.Manifest.Mod.Id)
|
||||
if (testEntry.ModId == modData.Manifest.Id)
|
||||
return 2;
|
||||
|
||||
// Followed by games for different mods that are joinable
|
||||
|
||||
@@ -59,8 +59,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
replayList = panel.Get<ScrollPanelWidget>("REPLAY_LIST");
|
||||
var template = panel.Get<ScrollItemWidget>("REPLAY_TEMPLATE");
|
||||
|
||||
var mod = modData.Manifest.Mod;
|
||||
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Version);
|
||||
var mod = modData.Manifest;
|
||||
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Metadata.Version);
|
||||
|
||||
if (Directory.Exists(dir))
|
||||
ThreadPool.QueueUserWorkItem(_ => LoadReplays(dir, template));
|
||||
|
||||
@@ -34,10 +34,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (mod == null)
|
||||
return IncompatibleReplayDialog("unknown mod", mod, onCancel);
|
||||
|
||||
var allMods = ModMetadata.AllMods;
|
||||
if (!allMods.ContainsKey(mod))
|
||||
if (!Game.Mods.ContainsKey(mod))
|
||||
return IncompatibleReplayDialog("unavailable mod", mod, onCancel);
|
||||
else if (allMods[mod].Version != version)
|
||||
|
||||
if (Game.Mods[mod].Metadata.Version != version)
|
||||
return IncompatibleReplayDialog("incompatible version", version, onCancel);
|
||||
|
||||
if (replayMeta.GameInfo.MapPreview.Status != MapStatus.Available)
|
||||
|
||||
@@ -17,21 +17,21 @@ namespace OpenRA.Mods.D2k.UtilityCommands
|
||||
{
|
||||
class ImportD2kMapCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--import-d2k-map"; } }
|
||||
string IUtilityCommand.Name { get { return "--import-d2k-map"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 3;
|
||||
}
|
||||
|
||||
[Desc("FILENAME", "TILESET", "Convert a legacy Dune 2000 MAP file to the OpenRA format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
var rules = Ruleset.LoadDefaultsForTileSet(modData, "ARRAKIS");
|
||||
var map = D2kMapImporter.Import(args[1], modData.Manifest.Mod.Id, args[2], rules);
|
||||
var rules = Ruleset.LoadDefaultsForTileSet(utility.ModData, "ARRAKIS");
|
||||
var map = D2kMapImporter.Import(args[1], utility.ModData.Manifest.Id, args[2], rules);
|
||||
|
||||
if (map == null)
|
||||
return;
|
||||
|
||||
@@ -25,13 +25,11 @@ namespace OpenRA.Mods.RA.UtilityCommands
|
||||
// TODO: 128x128 is probably not true for "mega maps" from the expansions.
|
||||
public ImportRedAlertLegacyMapCommand() : base(128) { }
|
||||
|
||||
public string Name { get { return "--import-ra-map"; } }
|
||||
string IUtilityCommand.Name { get { return "--import-ra-map"; } }
|
||||
bool IUtilityCommand.ValidateArguments(string[] args) { return ValidateArguments(args); }
|
||||
|
||||
[Desc("FILENAME", "Convert a legacy Red Alert INI/MPR map to the OpenRA format.")]
|
||||
public override void Run(ModData modData, string[] args)
|
||||
{
|
||||
base.Run(modData, args);
|
||||
}
|
||||
void IUtilityCommand.Run(Utility utility, string[] args) { Run(utility, args); }
|
||||
|
||||
public override void ValidateMapFormat(int format)
|
||||
{
|
||||
|
||||
@@ -149,10 +149,10 @@ namespace OpenRA.Mods.TS.UtilityCommands
|
||||
};
|
||||
|
||||
[Desc("FILENAME", "Convert a Tiberian Sun map to the OpenRA format.")]
|
||||
void IUtilityCommand.Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
var filename = args[1];
|
||||
var file = new IniFile(File.Open(args[1], FileMode.Open));
|
||||
@@ -163,12 +163,12 @@ namespace OpenRA.Mods.TS.UtilityCommands
|
||||
var iniBounds = mapSection.GetValue("LocalSize", "0, 0, 0, 0").Split(',').Select(int.Parse).ToArray();
|
||||
var size = new Size(iniSize[2], 2 * iniSize[3]);
|
||||
|
||||
var map = new Map(Game.ModData, modData.DefaultTileSets[tileset], size.Width, size.Height)
|
||||
var map = new Map(Game.ModData, utility.ModData.DefaultTileSets[tileset], size.Width, size.Height)
|
||||
{
|
||||
Title = basic.GetValue("Name", Path.GetFileNameWithoutExtension(filename)),
|
||||
Author = "Westwood Studios",
|
||||
Bounds = new Rectangle(iniBounds[0], iniBounds[1], iniBounds[2], 2 * iniBounds[3] + 2 * iniBounds[1]),
|
||||
RequiresMod = modData.Manifest.Mod.Id
|
||||
RequiresMod = utility.ModData.Manifest.Id
|
||||
};
|
||||
|
||||
var fullSize = new int2(iniSize[2], iniSize[3]);
|
||||
|
||||
@@ -20,21 +20,21 @@ namespace OpenRA.Mods.TS.UtilityCommands
|
||||
{
|
||||
class LegacyRulesImporter : IUtilityCommand
|
||||
{
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 3;
|
||||
}
|
||||
|
||||
public string Name { get { return "--rules-import"; } }
|
||||
string IUtilityCommand.Name { get { return "--rules-import"; } }
|
||||
|
||||
IniFile rulesIni;
|
||||
IniFile artIni;
|
||||
|
||||
[Desc("RULES.INI", "ART.INI", "Convert ART.INI and RULES.INI to the OpenRA rules definition format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
rulesIni = new IniFile(File.Open(args[1], FileMode.Open));
|
||||
artIni = new IniFile(File.Open(args[2], FileMode.Open));
|
||||
|
||||
@@ -19,21 +19,21 @@ namespace OpenRA.Mods.TS.UtilityCommands
|
||||
{
|
||||
class ImportLegacySequenceCommand : IUtilityCommand
|
||||
{
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 2;
|
||||
}
|
||||
|
||||
public string Name { get { return "--sequence-import"; } }
|
||||
string IUtilityCommand.Name { get { return "--sequence-import"; } }
|
||||
|
||||
IniFile file;
|
||||
MapGrid grid;
|
||||
|
||||
[Desc("FILENAME", "Convert ART.INI to the OpenRA sequence definition format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData = utility.ModData;
|
||||
|
||||
grid = Game.ModData.Manifest.Get<MapGrid>();
|
||||
|
||||
|
||||
@@ -20,22 +20,22 @@ namespace OpenRA.Mods.TS.UtilityCommands
|
||||
{
|
||||
class ImportLegacyTilesetCommand : IUtilityCommand
|
||||
{
|
||||
public string Name { get { return "--tileset-import"; } }
|
||||
string IUtilityCommand.Name { get { return "--tileset-import"; } }
|
||||
|
||||
public bool ValidateArguments(string[] args)
|
||||
bool IUtilityCommand.ValidateArguments(string[] args)
|
||||
{
|
||||
return args.Length >= 3;
|
||||
}
|
||||
|
||||
[Desc("FILENAME", "TEMPLATEEXTENSION", "[TILESETNAME]", "Convert a legacy tileset to the OpenRA format.")]
|
||||
public void Run(ModData modData, string[] args)
|
||||
void IUtilityCommand.Run(Utility utility, string[] args)
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
var modData = Game.ModData = utility.ModData;
|
||||
|
||||
var file = new IniFile(File.Open(args[1], FileMode.Open));
|
||||
var extension = args[2];
|
||||
var tileSize = modData.Manifest.Get<MapGrid>().TileSize;
|
||||
var tileSize = utility.ModData.Manifest.Get<MapGrid>().TileSize;
|
||||
|
||||
var templateIndex = 0;
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using OpenRA.Support;
|
||||
@@ -20,19 +21,32 @@ namespace OpenRA.Server
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
var arguments = new Arguments(args);
|
||||
Log.AddChannel("debug", "dedicated-debug.log");
|
||||
Log.AddChannel("perf", "dedicated-perf.log");
|
||||
Log.AddChannel("server", "dedicated-server.log");
|
||||
Log.AddChannel("nat", "dedicated-nat.log");
|
||||
|
||||
// Special case handling of Game.Mod argument: if it matches a real filesystem path
|
||||
// then we use this to override the mod search path, and replace it with the mod id
|
||||
var modArgument = arguments.GetValue("Game.Mod", null);
|
||||
string customModPath = null;
|
||||
if (modArgument != null && (File.Exists(modArgument) || Directory.Exists(modArgument)))
|
||||
{
|
||||
customModPath = modArgument;
|
||||
arguments.ReplaceValue("Game.Mod", Path.GetFileNameWithoutExtension(modArgument));
|
||||
}
|
||||
|
||||
// HACK: The engine code assumes that Game.Settings is set.
|
||||
// This isn't nearly as bad as ModData, but is still not very nice.
|
||||
Game.InitializeSettings(new Arguments(args));
|
||||
Game.InitializeSettings(arguments);
|
||||
var settings = Game.Settings.Server;
|
||||
|
||||
// HACK: The engine code *still* assumes that Game.ModData is set
|
||||
var mod = Game.Settings.Game.Mod;
|
||||
var modData = Game.ModData = new ModData(mod, false);
|
||||
var mods = new InstalledMods(customModPath);
|
||||
|
||||
// HACK: The engine code *still* assumes that Game.ModData is set
|
||||
var modData = Game.ModData = new ModData(mods[mod], mods);
|
||||
modData.MapCache.LoadMaps();
|
||||
|
||||
settings.Map = modData.MapCache.ChooseInitialMap(settings.Map, new MersenneTwister());
|
||||
|
||||
@@ -11,11 +11,14 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace OpenRA.Utility
|
||||
namespace OpenRA
|
||||
{
|
||||
using UtilityActions = Dictionary<string, KeyValuePair<Action<Utility, string[]>, Func<string[], bool>>>;
|
||||
|
||||
[Serializable]
|
||||
public class NoSuchCommandException : Exception
|
||||
{
|
||||
@@ -37,36 +40,46 @@ namespace OpenRA.Utility
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
{
|
||||
PrintUsage(null);
|
||||
return;
|
||||
}
|
||||
|
||||
Log.AddChannel("perf", null);
|
||||
Log.AddChannel("debug", null);
|
||||
|
||||
var modName = args[0];
|
||||
if (!ModMetadata.AllMods.Keys.Contains(modName))
|
||||
Game.InitializeSettings(Arguments.Empty);
|
||||
|
||||
if (args.Length == 0)
|
||||
{
|
||||
PrintUsage(null);
|
||||
PrintUsage(new InstalledMods(null), null);
|
||||
return;
|
||||
}
|
||||
|
||||
Game.InitializeSettings(Arguments.Empty);
|
||||
var modData = new ModData(modName);
|
||||
var modId = args[0];
|
||||
string customModPath = null;
|
||||
if (File.Exists(modId) || Directory.Exists(modId))
|
||||
{
|
||||
customModPath = modId;
|
||||
modId = Path.GetFileNameWithoutExtension(modId);
|
||||
}
|
||||
|
||||
var mods = new InstalledMods(customModPath);
|
||||
if (!mods.Keys.Contains(modId))
|
||||
{
|
||||
PrintUsage(mods, null);
|
||||
return;
|
||||
}
|
||||
|
||||
var modData = new ModData(mods[modId], mods);
|
||||
var utility = new Utility(modData, mods);
|
||||
args = args.Skip(1).ToArray();
|
||||
var actions = new Dictionary<string, KeyValuePair<Action<ModData, string[]>, Func<string[], bool>>>();
|
||||
var actions = new UtilityActions();
|
||||
foreach (var commandType in modData.ObjectCreator.GetTypesImplementing<IUtilityCommand>())
|
||||
{
|
||||
var command = (IUtilityCommand)Activator.CreateInstance(commandType);
|
||||
var kvp = new KeyValuePair<Action<ModData, string[]>, Func<string[], bool>>(command.Run, command.ValidateArguments);
|
||||
var kvp = new KeyValuePair<Action<Utility, string[]>, Func<string[], bool>>(command.Run, command.ValidateArguments);
|
||||
actions.Add(command.Name, kvp);
|
||||
}
|
||||
|
||||
if (args.Length == 0)
|
||||
{
|
||||
PrintUsage(actions);
|
||||
PrintUsage(mods, actions);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -81,7 +94,7 @@ namespace OpenRA.Utility
|
||||
|
||||
if (validateActionArgs.Invoke(args))
|
||||
{
|
||||
action.Invoke(modData, args);
|
||||
action.Invoke(utility, args);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -105,10 +118,10 @@ namespace OpenRA.Utility
|
||||
}
|
||||
}
|
||||
|
||||
static void PrintUsage(IDictionary<string, KeyValuePair<Action<ModData, string[]>, Func<string[], bool>>> actions)
|
||||
static void PrintUsage(InstalledMods mods, UtilityActions actions)
|
||||
{
|
||||
Console.WriteLine("Run `OpenRA.Utility.exe [MOD]` to see a list of available commands.");
|
||||
Console.WriteLine("The available mods are: " + string.Join(", ", ModMetadata.AllMods.Keys));
|
||||
Console.WriteLine("The available mods are: " + string.Join(", ", mods.Keys));
|
||||
Console.WriteLine();
|
||||
|
||||
if (actions == null)
|
||||
@@ -122,7 +135,7 @@ namespace OpenRA.Utility
|
||||
}
|
||||
}
|
||||
|
||||
static void GetActionUsage(string key, Action<ModData, string[]> action)
|
||||
static void GetActionUsage(string key, Action<Utility, string[]> action)
|
||||
{
|
||||
var descParts = action.Method.GetCustomAttributes<DescAttribute>(true)
|
||||
.SelectMany(d => d.Lines).ToArray();
|
||||
|
||||
14
mods/cnc/installer/covertops.yaml
Normal file
14
mods/cnc/installer/covertops.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
covertops: Covert Operations Expansion (English)
|
||||
IDFiles:
|
||||
GAME/GAME.DAT: be5a6c4c0a581da09e8f34a3bbf7bd17e525085c
|
||||
CONQUER.MIX: 713b53fa4c188ca9619c6bbeadbfc86513704266
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/scores-covertops.mix: SCORES.MIX
|
||||
covertops-linux: Covert Operations Expansion (English)
|
||||
IDFiles:
|
||||
game/game.dat: be5a6c4c0a581da09e8f34a3bbf7bd17e525085c
|
||||
conquer.mix: 713b53fa4c188ca9619c6bbeadbfc86513704266
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/scores-covertops.mix: scores.mix
|
||||
16
mods/cnc/installer/downloads.yaml
Normal file
16
mods/cnc/installer/downloads.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
basefiles: Base Freeware Content
|
||||
MirrorList: http://www.openra.net/packages/cnc-mirrors.txt
|
||||
Extract:
|
||||
^Content/cnc/conquer.mix: conquer.mix
|
||||
^Content/cnc/desert.mix: desert.mix
|
||||
^Content/cnc/general.mix: general.mix
|
||||
^Content/cnc/sounds.mix: sounds.mix
|
||||
^Content/cnc/speech.mix: speech.mix
|
||||
^Content/cnc/temperat.mix: temperat.mix
|
||||
^Content/cnc/tempicnh.mix: tempicnh.mix
|
||||
^Content/cnc/transit.mix: transit.mix
|
||||
^Content/cnc/winter.mix: winter.mix
|
||||
music: Freeware Music
|
||||
MirrorList: http://www.openra.net/packages/cnc-music-mirrors.txt
|
||||
Extract:
|
||||
^Content/cnc/scores.mix: scores.mix
|
||||
336
mods/cnc/installer/firstdecade.yaml
Normal file
336
mods/cnc/installer/firstdecade.yaml
Normal file
@@ -0,0 +1,336 @@
|
||||
tfd: C&C The First Decade (English)
|
||||
IDFiles:
|
||||
data1.hdr: bef3a08c3fc1b1caf28ca0dbb97c1f900005930e
|
||||
data1.cab: 12ad6113a6890a1b4d5651a75378c963eaf513b9
|
||||
Install:
|
||||
extract-iscab: data1.hdr
|
||||
Volumes:
|
||||
2: data2.cab
|
||||
3: data3.cab
|
||||
Extract:
|
||||
^Content/cnc/conquer.mix: CnC\\CONQUER.MIX
|
||||
^Content/cnc/desert.mix: CnC\\DESERT.MIX
|
||||
^Content/cnc/general.mix: CnC\\GENERAL.MIX
|
||||
^Content/cnc/scores.mix: CnC\\SCORES.MIX
|
||||
^Content/cnc/sounds.mix: CnC\\SOUNDS.MIX
|
||||
^Content/cnc/temperat.mix: CnC\\TEMPERAT.MIX
|
||||
^Content/cnc/winter.mix: CnC\\WINTER.MIX
|
||||
^Content/cnc/speech.mix: CnC\\SPEECH.MIX
|
||||
^Content/cnc/tempicnh.mix: CnC\\TEMPICNH.MIX
|
||||
^Content/cnc/transit.mix: CnC\\TRANSIT.MIX
|
||||
^Content/cnc/scores-covertops.mix: CnC\covert\SCORES.MIX
|
||||
^Content/cnc/movies.mix: CnC\\MOVIES.MIX
|
||||
extract-raw: ^Content/cnc/movies.mix
|
||||
^Content/cnc/movies/airstrk.vqa:
|
||||
Offset: 1266
|
||||
Length: 4444442
|
||||
^Content/cnc/movies/akira.vqa:
|
||||
Offset: 4445708
|
||||
Length: 7803444
|
||||
^Content/cnc/movies/bkground.vqa:
|
||||
Offset: 12249152
|
||||
Length: 15267052
|
||||
^Content/cnc/movies/burdet1.vqa:
|
||||
Offset: 27516204
|
||||
Length: 10410614
|
||||
^Content/cnc/movies/burdet2.vqa:
|
||||
Offset: 37926818
|
||||
Length: 2062190
|
||||
^Content/cnc/movies/gdi4a.vqa:
|
||||
Offset: 39989008
|
||||
Length: 4450582
|
||||
^Content/cnc/movies/gdi4b.vqa:
|
||||
Offset: 44439590
|
||||
Length: 6603530
|
||||
^Content/cnc/movies/gdifina.vqa:
|
||||
Offset: 51043120
|
||||
Length: 12888650
|
||||
^Content/cnc/movies/gdifinb.vqa:
|
||||
Offset: 63931770
|
||||
Length: 17769978
|
||||
^Content/cnc/movies/nod7a.vqa:
|
||||
Offset: 81701748
|
||||
Length: 4740470
|
||||
^Content/cnc/movies/nod7b.vqa:
|
||||
Offset: 86442218
|
||||
Length: 4671402
|
||||
^Content/cnc/movies/visor.vqa:
|
||||
Offset: 91113620
|
||||
Length: 4407162
|
||||
^Content/cnc/movies/turtkill.vqa:
|
||||
Offset: 95520782
|
||||
Length: 3323444
|
||||
^Content/cnc/movies/trtkil_d.vqa:
|
||||
Offset: 98844226
|
||||
Length: 3511836
|
||||
^Content/cnc/movies/trailer.vqa:
|
||||
Offset: 102356062
|
||||
Length: 23163930
|
||||
^Content/cnc/movies/tiberfx.vqa:
|
||||
Offset: 125519992
|
||||
Length: 8735102
|
||||
^Content/cnc/movies/tbrinfo3.vqa:
|
||||
Offset: 134255094
|
||||
Length: 14972046
|
||||
^Content/cnc/movies/tbrinfo2.vqa:
|
||||
Offset: 149227140
|
||||
Length: 16195290
|
||||
^Content/cnc/movies/tbrinfo1.vqa:
|
||||
Offset: 165422430
|
||||
Length: 23479052
|
||||
^Content/cnc/movies/tankkill.vqa:
|
||||
Offset: 188901482
|
||||
Length: 3298978
|
||||
^Content/cnc/movies/tankgo.vqa:
|
||||
Offset: 192200460
|
||||
Length: 1403876
|
||||
^Content/cnc/movies/sundial.vqa:
|
||||
Offset: 193604336
|
||||
Length: 3653636
|
||||
^Content/cnc/movies/stealth.vqa:
|
||||
Offset: 197257972
|
||||
Length: 4521860
|
||||
^Content/cnc/movies/spycrash.vqa:
|
||||
Offset: 201779832
|
||||
Length: 1886288
|
||||
^Content/cnc/movies/sethpre.vqa:
|
||||
Offset: 203666120
|
||||
Length: 10914610
|
||||
^Content/cnc/movies/seige.vqa:
|
||||
Offset: 214580730
|
||||
Length: 2705978
|
||||
^Content/cnc/movies/samsite.vqa:
|
||||
Offset: 217286708
|
||||
Length: 1410418
|
||||
^Content/cnc/movies/samdie.vqa:
|
||||
Offset: 218697126
|
||||
Length: 3741942
|
||||
^Content/cnc/movies/sabotage.vqa:
|
||||
Offset: 222439068
|
||||
Length: 1386202
|
||||
^Content/cnc/movies/retro.vqa:
|
||||
Offset: 223825270
|
||||
Length: 6434382
|
||||
^Content/cnc/movies/refint.vqa:
|
||||
Offset: 230259652
|
||||
Length: 5090040
|
||||
^Content/cnc/movies/podium.vqa:
|
||||
Offset: 235349692
|
||||
Length: 2790664
|
||||
^Content/cnc/movies/planecra.vqa:
|
||||
Offset: 238140356
|
||||
Length: 5085426
|
||||
^Content/cnc/movies/pintle.vqa:
|
||||
Offset: 243225782
|
||||
Length: 2757536
|
||||
^Content/cnc/movies/paratrop.vqa:
|
||||
Offset: 245983318
|
||||
Length: 3180272
|
||||
^Content/cnc/movies/obel.vqa:
|
||||
Offset: 249163590
|
||||
Length: 3851370
|
||||
^Content/cnc/movies/nuke.vqa:
|
||||
Offset: 253014960
|
||||
Length: 3126662
|
||||
^Content/cnc/movies/nodsweep.vqa:
|
||||
Offset: 256141622
|
||||
Length: 3642174
|
||||
^Content/cnc/movies/nodlose.vqa:
|
||||
Offset: 259783796
|
||||
Length: 5148924
|
||||
^Content/cnc/movies/nodflees.vqa:
|
||||
Offset: 264932720
|
||||
Length: 3056426
|
||||
^Content/cnc/movies/nodfinal.vqa:
|
||||
Offset: 267989146
|
||||
Length: 23326586
|
||||
^Content/cnc/movies/nodend4.vqa:
|
||||
Offset: 291315732
|
||||
Length: 25535232
|
||||
^Content/cnc/movies/nodend3.vqa:
|
||||
Offset: 316850964
|
||||
Length: 25725824
|
||||
^Content/cnc/movies/nodend2.vqa:
|
||||
Offset: 342576788
|
||||
Length: 27214048
|
||||
^Content/cnc/movies/nodend1.vqa:
|
||||
Offset: 369790836
|
||||
Length: 27172272
|
||||
^Content/cnc/movies/nod9.vqa:
|
||||
Offset: 396963108
|
||||
Length: 9357980
|
||||
^Content/cnc/movies/nod8.vqa:
|
||||
Offset: 406321088
|
||||
Length: 11597940
|
||||
^Content/cnc/movies/nod6.vqa:
|
||||
Offset: 417919028
|
||||
Length: 5007744
|
||||
^Content/cnc/movies/nod5.vqa:
|
||||
Offset: 422926772
|
||||
Length: 6641700
|
||||
^Content/cnc/movies/nod4b.vqa:
|
||||
Offset: 429568472
|
||||
Length: 3867618
|
||||
^Content/cnc/movies/nod4a.vqa:
|
||||
Offset: 433436090
|
||||
Length: 3838924
|
||||
^Content/cnc/movies/nod3.vqa:
|
||||
Offset: 437275014
|
||||
Length: 3603314
|
||||
^Content/cnc/movies/nod2.vqa:
|
||||
Offset: 440878328
|
||||
Length: 7200720
|
||||
^Content/cnc/movies/nod1pre.vqa:
|
||||
Offset: 448079048
|
||||
Length: 395720
|
||||
^Content/cnc/movies/nod13.vqa:
|
||||
Offset: 448474768
|
||||
Length: 2746626
|
||||
^Content/cnc/movies/nod12.vqa:
|
||||
Offset: 451221394
|
||||
Length: 6576562
|
||||
^Content/cnc/movies/nod11.vqa:
|
||||
Offset: 457797956
|
||||
Length: 4629270
|
||||
^Content/cnc/movies/nod10b.vqa:
|
||||
Offset: 462427226
|
||||
Length: 6386444
|
||||
^Content/cnc/movies/nod10a.vqa:
|
||||
Offset: 468813670
|
||||
Length: 7205632
|
||||
^Content/cnc/movies/nod1.vqa:
|
||||
Offset: 476019302
|
||||
Length: 4663258
|
||||
^Content/cnc/movies/nitejump.vqa:
|
||||
Offset: 480682560
|
||||
Length: 3702838
|
||||
^Content/cnc/movies/napalm.vqa:
|
||||
Offset: 484385398
|
||||
Length: 4004146
|
||||
^Content/cnc/movies/logo.vqa:
|
||||
Offset: 488389544
|
||||
Length: 3562630
|
||||
^Content/cnc/movies/landing.vqa:
|
||||
Offset: 491952174
|
||||
Length: 1617094
|
||||
^Content/cnc/movies/kanepre.vqa:
|
||||
Offset: 493569268
|
||||
Length: 17220712
|
||||
^Content/cnc/movies/intro2.vqa:
|
||||
Offset: 510789980
|
||||
Length: 21058732
|
||||
^Content/cnc/movies/insites.vqa:
|
||||
Offset: 531848712
|
||||
Length: 460482
|
||||
^Content/cnc/movies/hellvaly.vqa:
|
||||
Offset: 532309194
|
||||
Length: 6658950
|
||||
^Content/cnc/movies/gunboat.vqa:
|
||||
Offset: 538968144
|
||||
Length: 3203706
|
||||
^Content/cnc/movies/generic.vqa:
|
||||
Offset: 542171850
|
||||
Length: 1452820
|
||||
^Content/cnc/movies/gdilose.vqa:
|
||||
Offset: 543624670
|
||||
Length: 2097912
|
||||
^Content/cnc/movies/gdiend2.vqa:
|
||||
Offset: 545722582
|
||||
Length: 25242946
|
||||
^Content/cnc/movies/gdiend1.vqa:
|
||||
Offset: 570965528
|
||||
Length: 25311636
|
||||
^Content/cnc/movies/gdi9.vqa:
|
||||
Offset: 596277164
|
||||
Length: 11806994
|
||||
^Content/cnc/movies/gdi8b.vqa:
|
||||
Offset: 608084158
|
||||
Length: 5324410
|
||||
^Content/cnc/movies/gdi8a.vqa:
|
||||
Offset: 613408568
|
||||
Length: 4672548
|
||||
^Content/cnc/movies/gdi7.vqa:
|
||||
Offset: 618081116
|
||||
Length: 4241952
|
||||
^Content/cnc/movies/gdi6.vqa:
|
||||
Offset: 622323068
|
||||
Length: 3959650
|
||||
^Content/cnc/movies/gdi5.vqa:
|
||||
Offset: 626282718
|
||||
Length: 3818244
|
||||
^Content/cnc/movies/gdi3lose.vqa:
|
||||
Offset: 630100962
|
||||
Length: 2265770
|
||||
^Content/cnc/movies/gdi3.vqa:
|
||||
Offset: 632366732
|
||||
Length: 5443848
|
||||
^Content/cnc/movies/gdi2.vqa:
|
||||
Offset: 637810580
|
||||
Length: 7883500
|
||||
^Content/cnc/movies/gdi15.vqa:
|
||||
Offset: 645694080
|
||||
Length: 11684610
|
||||
^Content/cnc/movies/gdi14.vqa:
|
||||
Offset: 657378690
|
||||
Length: 5282770
|
||||
^Content/cnc/movies/gdi13.vqa:
|
||||
Offset: 662661460
|
||||
Length: 6900914
|
||||
^Content/cnc/movies/gdi12.vqa:
|
||||
Offset: 669562374
|
||||
Length: 3669404
|
||||
^Content/cnc/movies/gdi11.vqa:
|
||||
Offset: 673231778
|
||||
Length: 5895754
|
||||
^Content/cnc/movies/gdi10.vqa:
|
||||
Offset: 679127532
|
||||
Length: 5761514
|
||||
^Content/cnc/movies/gdi1.vqa:
|
||||
Offset: 684889046
|
||||
Length: 6341298
|
||||
^Content/cnc/movies/gameover.vqa:
|
||||
Offset: 691230344
|
||||
Length: 2087322
|
||||
^Content/cnc/movies/forestkl.vqa:
|
||||
Offset: 693317666
|
||||
Length: 1500986
|
||||
^Content/cnc/movies/flyy.vqa:
|
||||
Offset: 694818652
|
||||
Length: 1373532
|
||||
^Content/cnc/movies/flag.vqa:
|
||||
Offset: 696192184
|
||||
Length: 4308680
|
||||
^Content/cnc/movies/dino.vqa:
|
||||
Offset: 700500864
|
||||
Length: 1347896
|
||||
^Content/cnc/movies/dessweep.vqa:
|
||||
Offset: 701848760
|
||||
Length: 3563646
|
||||
^Content/cnc/movies/desolat.vqa:
|
||||
Offset: 705412406
|
||||
Length: 8385122
|
||||
^Content/cnc/movies/deskill.vqa:
|
||||
Offset: 713797528
|
||||
Length: 1483634
|
||||
^Content/cnc/movies/desflees.vqa:
|
||||
Offset: 715281162
|
||||
Length: 2698426
|
||||
^Content/cnc/movies/consyard.vqa:
|
||||
Offset: 717979588
|
||||
Length: 7864652
|
||||
^Content/cnc/movies/cc2tease.vqa:
|
||||
Offset: 725844240
|
||||
Length: 12506712
|
||||
^Content/cnc/movies/bombflee.vqa:
|
||||
Offset: 738350952
|
||||
Length: 2859726
|
||||
^Content/cnc/movies/bombaway.vqa:
|
||||
Offset: 741210678
|
||||
Length: 5579588
|
||||
^Content/cnc/movies/bcanyon.vqa:
|
||||
Offset: 746790266
|
||||
Length: 5172288
|
||||
^Content/cnc/movies/banner.vqa:
|
||||
Offset: 751962554
|
||||
Length: 2229408
|
||||
delete: ^Content/cnc/movies.mix
|
||||
438
mods/cnc/installer/gdi95.yaml
Normal file
438
mods/cnc/installer/gdi95.yaml
Normal file
@@ -0,0 +1,438 @@
|
||||
gdi95: C&C Gold (GDI Disc, English)
|
||||
IDFiles:
|
||||
DISK.WAV: 8bef9a6687c0fe0afd57c6561df58fa6e64f145d
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/conquer.mix: CONQUER.MIX
|
||||
^Content/cnc/desert.mix: DESERT.MIX
|
||||
^Content/cnc/general.mix: GENERAL.MIX
|
||||
^Content/cnc/scores.mix: SCORES.MIX
|
||||
^Content/cnc/sounds.mix: SOUNDS.MIX
|
||||
^Content/cnc/temperat.mix: TEMPERAT.MIX
|
||||
^Content/cnc/winter.mix: WINTER.MIX
|
||||
extract-blast: INSTALL/SETUP.Z
|
||||
^Content/cnc/speech.mix:
|
||||
Offset: 10203213
|
||||
Length: 603293
|
||||
^Content/cnc/tempicnh.mix:
|
||||
Offset: 10925941
|
||||
Length: 119096
|
||||
^Content/cnc/transit.mix:
|
||||
Offset: 11078017
|
||||
Length: 3724462
|
||||
extract-raw: MOVIES.MIX
|
||||
^Content/cnc/movies/visor.vqa:
|
||||
Offset: 786
|
||||
Length: 4407162
|
||||
^Content/cnc/movies/turtkill.vqa:
|
||||
Offset: 4407948
|
||||
Length: 3323444
|
||||
^Content/cnc/movies/trailer.vqa:
|
||||
Offset: 7731392
|
||||
Length: 23163930
|
||||
^Content/cnc/movies/tbrinfo3.vqa:
|
||||
Offset: 30895322
|
||||
Length: 14972046
|
||||
^Content/cnc/movies/tbrinfo2.vqa:
|
||||
Offset: 45867368
|
||||
Length: 16195290
|
||||
^Content/cnc/movies/tbrinfo1.vqa:
|
||||
Offset: 62062658
|
||||
Length: 23479052
|
||||
^Content/cnc/movies/seige.vqa:
|
||||
Offset: 85541710
|
||||
Length: 2705978
|
||||
^Content/cnc/movies/samsite.vqa:
|
||||
Offset: 88247688
|
||||
Length: 1410418
|
||||
^Content/cnc/movies/samdie.vqa:
|
||||
Offset: 89658106
|
||||
Length: 3741942
|
||||
^Content/cnc/movies/sabotage.vqa:
|
||||
Offset: 93400048
|
||||
Length: 1386202
|
||||
^Content/cnc/movies/retro.vqa:
|
||||
Offset: 94786250
|
||||
Length: 6434382
|
||||
^Content/cnc/movies/podium.vqa:
|
||||
Offset: 101220632
|
||||
Length: 2790664
|
||||
^Content/cnc/movies/planecra.vqa:
|
||||
Offset: 104011296
|
||||
Length: 5085426
|
||||
^Content/cnc/movies/pintle.vqa:
|
||||
Offset: 109096722
|
||||
Length: 2757536
|
||||
^Content/cnc/movies/paratrop.vqa:
|
||||
Offset: 111854258
|
||||
Length: 3180272
|
||||
^Content/cnc/movies/nodsweep.vqa:
|
||||
Offset: 115034530
|
||||
Length: 3642174
|
||||
^Content/cnc/movies/nodlose.vqa:
|
||||
Offset: 118676704
|
||||
Length: 5148924
|
||||
^Content/cnc/movies/nodflees.vqa:
|
||||
Offset: 123825628
|
||||
Length: 3056426
|
||||
^Content/cnc/movies/nod1.vqa:
|
||||
Offset: 126882054
|
||||
Length: 4663258
|
||||
^Content/cnc/movies/nitejump.vqa:
|
||||
Offset: 131545312
|
||||
Length: 3702838
|
||||
^Content/cnc/movies/napalm.vqa:
|
||||
Offset: 135248150
|
||||
Length: 4004146
|
||||
^Content/cnc/movies/logo.vqa:
|
||||
Offset: 139252296
|
||||
Length: 3562630
|
||||
^Content/cnc/movies/landing.vqa:
|
||||
Offset: 142814926
|
||||
Length: 1617094
|
||||
^Content/cnc/movies/intro2.vqa:
|
||||
Offset: 144432020
|
||||
Length: 21058732
|
||||
^Content/cnc/movies/hellvaly.vqa:
|
||||
Offset: 165490752
|
||||
Length: 6658950
|
||||
^Content/cnc/movies/gunboat.vqa:
|
||||
Offset: 172149702
|
||||
Length: 3203706
|
||||
^Content/cnc/movies/generic.vqa:
|
||||
Offset: 175353408
|
||||
Length: 1452820
|
||||
^Content/cnc/movies/gdilose.vqa:
|
||||
Offset: 176806228
|
||||
Length: 2097912
|
||||
^Content/cnc/movies/gdifinb.vqa:
|
||||
Offset: 178904140
|
||||
Length: 17769978
|
||||
^Content/cnc/movies/gdifina.vqa:
|
||||
Offset: 196674118
|
||||
Length: 12888650
|
||||
^Content/cnc/movies/gdiend2.vqa:
|
||||
Offset: 209562768
|
||||
Length: 25242946
|
||||
^Content/cnc/movies/gdiend1.vqa:
|
||||
Offset: 234805714
|
||||
Length: 25311636
|
||||
^Content/cnc/movies/gdi9.vqa:
|
||||
Offset: 260117350
|
||||
Length: 11806994
|
||||
^Content/cnc/movies/gdi8b.vqa:
|
||||
Offset: 271924344
|
||||
Length: 5324410
|
||||
^Content/cnc/movies/gdi8a.vqa:
|
||||
Offset: 277248754
|
||||
Length: 4672548
|
||||
^Content/cnc/movies/gdi7.vqa:
|
||||
Offset: 281921302
|
||||
Length: 4241952
|
||||
^Content/cnc/movies/gdi6.vqa:
|
||||
Offset: 286163254
|
||||
Length: 3959650
|
||||
^Content/cnc/movies/gdi5.vqa:
|
||||
Offset: 290122904
|
||||
Length: 3818244
|
||||
^Content/cnc/movies/gdi4b.vqa:
|
||||
Offset: 293941148
|
||||
Length: 6603530
|
||||
^Content/cnc/movies/gdi4a.vqa:
|
||||
Offset: 300544678
|
||||
Length: 4450582
|
||||
^Content/cnc/movies/gdi3lose.vqa:
|
||||
Offset: 304995260
|
||||
Length: 2265770
|
||||
^Content/cnc/movies/gdi3.vqa:
|
||||
Offset: 307261030
|
||||
Length: 5443848
|
||||
^Content/cnc/movies/gdi2.vqa:
|
||||
Offset: 312704878
|
||||
Length: 7883500
|
||||
^Content/cnc/movies/gdi15.vqa:
|
||||
Offset: 320588378
|
||||
Length: 11684610
|
||||
^Content/cnc/movies/gdi14.vqa:
|
||||
Offset: 332272988
|
||||
Length: 5282770
|
||||
^Content/cnc/movies/gdi13.vqa:
|
||||
Offset: 337555758
|
||||
Length: 6900914
|
||||
^Content/cnc/movies/gdi12.vqa:
|
||||
Offset: 344456672
|
||||
Length: 3669404
|
||||
^Content/cnc/movies/gdi11.vqa:
|
||||
Offset: 348126076
|
||||
Length: 5895754
|
||||
^Content/cnc/movies/gdi10.vqa:
|
||||
Offset: 354021830
|
||||
Length: 5761514
|
||||
^Content/cnc/movies/gdi1.vqa:
|
||||
Offset: 359783344
|
||||
Length: 6341298
|
||||
^Content/cnc/movies/gameover.vqa:
|
||||
Offset: 366124642
|
||||
Length: 2087322
|
||||
^Content/cnc/movies/forestkl.vqa:
|
||||
Offset: 368211964
|
||||
Length: 1500986
|
||||
^Content/cnc/movies/flyy.vqa:
|
||||
Offset: 369712950
|
||||
Length: 1373532
|
||||
^Content/cnc/movies/flag.vqa:
|
||||
Offset: 371086482
|
||||
Length: 4308680
|
||||
^Content/cnc/movies/dino.vqa:
|
||||
Offset: 375395162
|
||||
Length: 1347896
|
||||
^Content/cnc/movies/desolat.vqa:
|
||||
Offset: 376743058
|
||||
Length: 8385122
|
||||
^Content/cnc/movies/consyard.vqa:
|
||||
Offset: 385128180
|
||||
Length: 7864652
|
||||
^Content/cnc/movies/cc2tease.vqa:
|
||||
Offset: 392992832
|
||||
Length: 12506712
|
||||
^Content/cnc/movies/burdet2.vqa:
|
||||
Offset: 405499544
|
||||
Length: 2062190
|
||||
^Content/cnc/movies/burdet1.vqa:
|
||||
Offset: 407561734
|
||||
Length: 10410614
|
||||
^Content/cnc/movies/bombflee.vqa:
|
||||
Offset: 417972348
|
||||
Length: 2859726
|
||||
^Content/cnc/movies/bombaway.vqa:
|
||||
Offset: 420832074
|
||||
Length: 5579588
|
||||
^Content/cnc/movies/bkground.vqa:
|
||||
Offset: 426411662
|
||||
Length: 15267052
|
||||
^Content/cnc/movies/bcanyon.vqa:
|
||||
Offset: 441678714
|
||||
Length: 5172288
|
||||
^Content/cnc/movies/banner.vqa:
|
||||
Offset: 446851002
|
||||
Length: 2229408
|
||||
gdi95-linux: C&C Gold (GDI Disc, English)
|
||||
IDFiles:
|
||||
disk.wav: 8bef9a6687c0fe0afd57c6561df58fa6e64f145d
|
||||
conquer.mix: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/conquer.mix: conquer.mix
|
||||
^Content/cnc/desert.mix: desert.mix
|
||||
^Content/cnc/general.mix: general.mix
|
||||
^Content/cnc/scores.mix: scores.mix
|
||||
^Content/cnc/sounds.mix: sounds.mix
|
||||
^Content/cnc/temperat.mix: temperat.mix
|
||||
^Content/cnc/winter.mix: winter.mix
|
||||
extract-blast: install/setup.z
|
||||
^Content/cnc/speech.mix:
|
||||
Offset: 10203213
|
||||
Length: 603293
|
||||
^Content/cnc/tempicnh.mix:
|
||||
Offset: 10925941
|
||||
Length: 119096
|
||||
^Content/cnc/transit.mix:
|
||||
Offset: 11078017
|
||||
Length: 3724462
|
||||
extract-raw: movies.mix
|
||||
^Content/cnc/movies/visor.vqa:
|
||||
Offset: 786
|
||||
Length: 4407162
|
||||
^Content/cnc/movies/turtkill.vqa:
|
||||
Offset: 4407948
|
||||
Length: 3323444
|
||||
^Content/cnc/movies/trailer.vqa:
|
||||
Offset: 7731392
|
||||
Length: 23163930
|
||||
^Content/cnc/movies/tbrinfo3.vqa:
|
||||
Offset: 30895322
|
||||
Length: 14972046
|
||||
^Content/cnc/movies/tbrinfo2.vqa:
|
||||
Offset: 45867368
|
||||
Length: 16195290
|
||||
^Content/cnc/movies/tbrinfo1.vqa:
|
||||
Offset: 62062658
|
||||
Length: 23479052
|
||||
^Content/cnc/movies/seige.vqa:
|
||||
Offset: 85541710
|
||||
Length: 2705978
|
||||
^Content/cnc/movies/samsite.vqa:
|
||||
Offset: 88247688
|
||||
Length: 1410418
|
||||
^Content/cnc/movies/samdie.vqa:
|
||||
Offset: 89658106
|
||||
Length: 3741942
|
||||
^Content/cnc/movies/sabotage.vqa:
|
||||
Offset: 93400048
|
||||
Length: 1386202
|
||||
^Content/cnc/movies/retro.vqa:
|
||||
Offset: 94786250
|
||||
Length: 6434382
|
||||
^Content/cnc/movies/podium.vqa:
|
||||
Offset: 101220632
|
||||
Length: 2790664
|
||||
^Content/cnc/movies/planecra.vqa:
|
||||
Offset: 104011296
|
||||
Length: 5085426
|
||||
^Content/cnc/movies/pintle.vqa:
|
||||
Offset: 109096722
|
||||
Length: 2757536
|
||||
^Content/cnc/movies/paratrop.vqa:
|
||||
Offset: 111854258
|
||||
Length: 3180272
|
||||
^Content/cnc/movies/nodsweep.vqa:
|
||||
Offset: 115034530
|
||||
Length: 3642174
|
||||
^Content/cnc/movies/nodlose.vqa:
|
||||
Offset: 118676704
|
||||
Length: 5148924
|
||||
^Content/cnc/movies/nodflees.vqa:
|
||||
Offset: 123825628
|
||||
Length: 3056426
|
||||
^Content/cnc/movies/nod1.vqa:
|
||||
Offset: 126882054
|
||||
Length: 4663258
|
||||
^Content/cnc/movies/nitejump.vqa:
|
||||
Offset: 131545312
|
||||
Length: 3702838
|
||||
^Content/cnc/movies/napalm.vqa:
|
||||
Offset: 135248150
|
||||
Length: 4004146
|
||||
^Content/cnc/movies/logo.vqa:
|
||||
Offset: 139252296
|
||||
Length: 3562630
|
||||
^Content/cnc/movies/landing.vqa:
|
||||
Offset: 142814926
|
||||
Length: 1617094
|
||||
^Content/cnc/movies/intro2.vqa:
|
||||
Offset: 144432020
|
||||
Length: 21058732
|
||||
^Content/cnc/movies/hellvaly.vqa:
|
||||
Offset: 165490752
|
||||
Length: 6658950
|
||||
^Content/cnc/movies/gunboat.vqa:
|
||||
Offset: 172149702
|
||||
Length: 3203706
|
||||
^Content/cnc/movies/generic.vqa:
|
||||
Offset: 175353408
|
||||
Length: 1452820
|
||||
^Content/cnc/movies/gdilose.vqa:
|
||||
Offset: 176806228
|
||||
Length: 2097912
|
||||
^Content/cnc/movies/gdifinb.vqa:
|
||||
Offset: 178904140
|
||||
Length: 17769978
|
||||
^Content/cnc/movies/gdifina.vqa:
|
||||
Offset: 196674118
|
||||
Length: 12888650
|
||||
^Content/cnc/movies/gdiend2.vqa:
|
||||
Offset: 209562768
|
||||
Length: 25242946
|
||||
^Content/cnc/movies/gdiend1.vqa:
|
||||
Offset: 234805714
|
||||
Length: 25311636
|
||||
^Content/cnc/movies/gdi9.vqa:
|
||||
Offset: 260117350
|
||||
Length: 11806994
|
||||
^Content/cnc/movies/gdi8b.vqa:
|
||||
Offset: 271924344
|
||||
Length: 5324410
|
||||
^Content/cnc/movies/gdi8a.vqa:
|
||||
Offset: 277248754
|
||||
Length: 4672548
|
||||
^Content/cnc/movies/gdi7.vqa:
|
||||
Offset: 281921302
|
||||
Length: 4241952
|
||||
^Content/cnc/movies/gdi6.vqa:
|
||||
Offset: 286163254
|
||||
Length: 3959650
|
||||
^Content/cnc/movies/gdi5.vqa:
|
||||
Offset: 290122904
|
||||
Length: 3818244
|
||||
^Content/cnc/movies/gdi4b.vqa:
|
||||
Offset: 293941148
|
||||
Length: 6603530
|
||||
^Content/cnc/movies/gdi4a.vqa:
|
||||
Offset: 300544678
|
||||
Length: 4450582
|
||||
^Content/cnc/movies/gdi3lose.vqa:
|
||||
Offset: 304995260
|
||||
Length: 2265770
|
||||
^Content/cnc/movies/gdi3.vqa:
|
||||
Offset: 307261030
|
||||
Length: 5443848
|
||||
^Content/cnc/movies/gdi2.vqa:
|
||||
Offset: 312704878
|
||||
Length: 7883500
|
||||
^Content/cnc/movies/gdi15.vqa:
|
||||
Offset: 320588378
|
||||
Length: 11684610
|
||||
^Content/cnc/movies/gdi14.vqa:
|
||||
Offset: 332272988
|
||||
Length: 5282770
|
||||
^Content/cnc/movies/gdi13.vqa:
|
||||
Offset: 337555758
|
||||
Length: 6900914
|
||||
^Content/cnc/movies/gdi12.vqa:
|
||||
Offset: 344456672
|
||||
Length: 3669404
|
||||
^Content/cnc/movies/gdi11.vqa:
|
||||
Offset: 348126076
|
||||
Length: 5895754
|
||||
^Content/cnc/movies/gdi10.vqa:
|
||||
Offset: 354021830
|
||||
Length: 5761514
|
||||
^Content/cnc/movies/gdi1.vqa:
|
||||
Offset: 359783344
|
||||
Length: 6341298
|
||||
^Content/cnc/movies/gameover.vqa:
|
||||
Offset: 366124642
|
||||
Length: 2087322
|
||||
^Content/cnc/movies/forestkl.vqa:
|
||||
Offset: 368211964
|
||||
Length: 1500986
|
||||
^Content/cnc/movies/flyy.vqa:
|
||||
Offset: 369712950
|
||||
Length: 1373532
|
||||
^Content/cnc/movies/flag.vqa:
|
||||
Offset: 371086482
|
||||
Length: 4308680
|
||||
^Content/cnc/movies/dino.vqa:
|
||||
Offset: 375395162
|
||||
Length: 1347896
|
||||
^Content/cnc/movies/desolat.vqa:
|
||||
Offset: 376743058
|
||||
Length: 8385122
|
||||
^Content/cnc/movies/consyard.vqa:
|
||||
Offset: 385128180
|
||||
Length: 7864652
|
||||
^Content/cnc/movies/cc2tease.vqa:
|
||||
Offset: 392992832
|
||||
Length: 12506712
|
||||
^Content/cnc/movies/burdet2.vqa:
|
||||
Offset: 405499544
|
||||
Length: 2062190
|
||||
^Content/cnc/movies/burdet1.vqa:
|
||||
Offset: 407561734
|
||||
Length: 10410614
|
||||
^Content/cnc/movies/bombflee.vqa:
|
||||
Offset: 417972348
|
||||
Length: 2859726
|
||||
^Content/cnc/movies/bombaway.vqa:
|
||||
Offset: 420832074
|
||||
Length: 5579588
|
||||
^Content/cnc/movies/bkground.vqa:
|
||||
Offset: 426411662
|
||||
Length: 15267052
|
||||
^Content/cnc/movies/bcanyon.vqa:
|
||||
Offset: 441678714
|
||||
Length: 5172288
|
||||
^Content/cnc/movies/banner.vqa:
|
||||
Offset: 446851002
|
||||
Length: 2229408
|
||||
414
mods/cnc/installer/nod95.yaml
Normal file
414
mods/cnc/installer/nod95.yaml
Normal file
@@ -0,0 +1,414 @@
|
||||
nod95: C&C Gold (Nod Disc, English)
|
||||
IDFiles:
|
||||
DISK.WAV: 83a0235525afa5cd6096f2967e3eae032996e38c
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/conquer.mix: CONQUER.MIX
|
||||
^Content/cnc/desert.mix: DESERT.MIX
|
||||
^Content/cnc/general.mix: GENERAL.MIX
|
||||
^Content/cnc/scores.mix: SCORES.MIX
|
||||
^Content/cnc/sounds.mix: SOUNDS.MIX
|
||||
^Content/cnc/temperat.mix: TEMPERAT.MIX
|
||||
^Content/cnc/winter.mix: WINTER.MIX
|
||||
extract-blast: INSTALL/SETUP.Z
|
||||
^Content/cnc/speech.mix:
|
||||
Offset: 10203213
|
||||
Length: 603293
|
||||
^Content/cnc/tempicnh.mix:
|
||||
Offset: 10925941
|
||||
Length: 119096
|
||||
^Content/cnc/transit.mix:
|
||||
Offset: 11078017
|
||||
Length: 3724462
|
||||
extract-raw: MOVIES.MIX
|
||||
^Content/cnc/movies/visor.vqa:
|
||||
Offset: 738
|
||||
Length: 4407162
|
||||
^Content/cnc/movies/trtkil_d.vqa:
|
||||
Offset: 4407900
|
||||
Length: 3511836
|
||||
^Content/cnc/movies/trailer.vqa:
|
||||
Offset: 7919736
|
||||
Length: 23163930
|
||||
^Content/cnc/movies/tiberfx.vqa:
|
||||
Offset: 31083666
|
||||
Length: 8735102
|
||||
^Content/cnc/movies/tankkill.vqa:
|
||||
Offset: 39818768
|
||||
Length: 3298978
|
||||
^Content/cnc/movies/tankgo.vqa:
|
||||
Offset: 43117746
|
||||
Length: 1403876
|
||||
^Content/cnc/movies/sundial.vqa:
|
||||
Offset: 44521622
|
||||
Length: 3653636
|
||||
^Content/cnc/movies/stealth.vqa:
|
||||
Offset: 48175258
|
||||
Length: 4521860
|
||||
^Content/cnc/movies/spycrash.vqa:
|
||||
Offset: 52697118
|
||||
Length: 1886288
|
||||
^Content/cnc/movies/sethpre.vqa:
|
||||
Offset: 54583406
|
||||
Length: 10914610
|
||||
^Content/cnc/movies/seige.vqa:
|
||||
Offset: 65498016
|
||||
Length: 2705978
|
||||
^Content/cnc/movies/samsite.vqa:
|
||||
Offset: 68203994
|
||||
Length: 1410418
|
||||
^Content/cnc/movies/retro.vqa:
|
||||
Offset: 69614412
|
||||
Length: 6434382
|
||||
^Content/cnc/movies/refint.vqa:
|
||||
Offset: 76048794
|
||||
Length: 5090040
|
||||
^Content/cnc/movies/obel.vqa:
|
||||
Offset: 81138834
|
||||
Length: 3851370
|
||||
^Content/cnc/movies/nuke.vqa:
|
||||
Offset: 84990204
|
||||
Length: 3126662
|
||||
^Content/cnc/movies/nodlose.vqa:
|
||||
Offset: 88116866
|
||||
Length: 5148924
|
||||
^Content/cnc/movies/nodfinal.vqa:
|
||||
Offset: 93265790
|
||||
Length: 23326586
|
||||
^Content/cnc/movies/nodend4.vqa:
|
||||
Offset: 116592376
|
||||
Length: 25535232
|
||||
^Content/cnc/movies/nodend3.vqa:
|
||||
Offset: 142127608
|
||||
Length: 25725824
|
||||
^Content/cnc/movies/nodend2.vqa:
|
||||
Offset: 167853432
|
||||
Length: 27214048
|
||||
^Content/cnc/movies/nodend1.vqa:
|
||||
Offset: 195067480
|
||||
Length: 27172272
|
||||
^Content/cnc/movies/nod9.vqa:
|
||||
Offset: 222239752
|
||||
Length: 9357980
|
||||
^Content/cnc/movies/nod8.vqa:
|
||||
Offset: 231597732
|
||||
Length: 11597940
|
||||
^Content/cnc/movies/nod7b.vqa:
|
||||
Offset: 243195672
|
||||
Length: 4671402
|
||||
^Content/cnc/movies/nod7a.vqa:
|
||||
Offset: 247867074
|
||||
Length: 4740470
|
||||
^Content/cnc/movies/nod6.vqa:
|
||||
Offset: 252607544
|
||||
Length: 5007744
|
||||
^Content/cnc/movies/nod5.vqa:
|
||||
Offset: 257615288
|
||||
Length: 6641700
|
||||
^Content/cnc/movies/nod4b.vqa:
|
||||
Offset: 264256988
|
||||
Length: 3867618
|
||||
^Content/cnc/movies/nod4a.vqa:
|
||||
Offset: 268124606
|
||||
Length: 3838924
|
||||
^Content/cnc/movies/nod3.vqa:
|
||||
Offset: 271963530
|
||||
Length: 3603314
|
||||
^Content/cnc/movies/nod2.vqa:
|
||||
Offset: 275566844
|
||||
Length: 7200720
|
||||
^Content/cnc/movies/nod1pre.vqa:
|
||||
Offset: 282767564
|
||||
Length: 395720
|
||||
^Content/cnc/movies/nod13.vqa:
|
||||
Offset: 283163284
|
||||
Length: 2746626
|
||||
^Content/cnc/movies/nod12.vqa:
|
||||
Offset: 285909910
|
||||
Length: 6576562
|
||||
^Content/cnc/movies/nod11.vqa:
|
||||
Offset: 292486472
|
||||
Length: 4629270
|
||||
^Content/cnc/movies/nod10b.vqa:
|
||||
Offset: 297115742
|
||||
Length: 6386444
|
||||
^Content/cnc/movies/nod10a.vqa:
|
||||
Offset: 303502186
|
||||
Length: 7205632
|
||||
^Content/cnc/movies/nod1.vqa:
|
||||
Offset: 310707818
|
||||
Length: 4663258
|
||||
^Content/cnc/movies/logo.vqa:
|
||||
Offset: 315371076
|
||||
Length: 3562630
|
||||
^Content/cnc/movies/landing.vqa:
|
||||
Offset: 318933706
|
||||
Length: 1617094
|
||||
^Content/cnc/movies/kanepre.vqa:
|
||||
Offset: 320550800
|
||||
Length: 17220712
|
||||
^Content/cnc/movies/intro2.vqa:
|
||||
Offset: 337771512
|
||||
Length: 21058732
|
||||
^Content/cnc/movies/insites.vqa:
|
||||
Offset: 358830244
|
||||
Length: 460482
|
||||
^Content/cnc/movies/generic.vqa:
|
||||
Offset: 359290726
|
||||
Length: 1452820
|
||||
^Content/cnc/movies/gdi1.vqa:
|
||||
Offset: 360743546
|
||||
Length: 6341298
|
||||
^Content/cnc/movies/gameover.vqa:
|
||||
Offset: 367084844
|
||||
Length: 2087322
|
||||
^Content/cnc/movies/forestkl.vqa:
|
||||
Offset: 369172166
|
||||
Length: 1500986
|
||||
^Content/cnc/movies/flag.vqa:
|
||||
Offset: 370673152
|
||||
Length: 4308680
|
||||
^Content/cnc/movies/dino.vqa:
|
||||
Offset: 374981832
|
||||
Length: 1347896
|
||||
^Content/cnc/movies/dessweep.vqa:
|
||||
Offset: 376329728
|
||||
Length: 3563646
|
||||
^Content/cnc/movies/deskill.vqa:
|
||||
Offset: 379893374
|
||||
Length: 1483634
|
||||
^Content/cnc/movies/desflees.vqa:
|
||||
Offset: 381377008
|
||||
Length: 2698426
|
||||
^Content/cnc/movies/consyard.vqa:
|
||||
Offset: 384075434
|
||||
Length: 7864652
|
||||
^Content/cnc/movies/cc2tease.vqa:
|
||||
Offset: 391940086
|
||||
Length: 12506712
|
||||
^Content/cnc/movies/bombflee.vqa:
|
||||
Offset: 404446798
|
||||
Length: 2859726
|
||||
^Content/cnc/movies/bombaway.vqa:
|
||||
Offset: 407306524
|
||||
Length: 5579588
|
||||
^Content/cnc/movies/bcanyon.vqa:
|
||||
Offset: 412886112
|
||||
Length: 5172288
|
||||
^Content/cnc/movies/banner.vqa:
|
||||
Offset: 418058400
|
||||
Length: 2229408
|
||||
^Content/cnc/movies/akira.vqa:
|
||||
Offset: 420287808
|
||||
Length: 7803444
|
||||
^Content/cnc/movies/airstrk.vqa:
|
||||
Offset: 428091252
|
||||
Length: 4444442
|
||||
nod95-linux: C&C Gold (Nod Disc, English)
|
||||
IDFiles:
|
||||
disk.wav: 83a0235525afa5cd6096f2967e3eae032996e38c
|
||||
conquer.mix: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/conquer.mix: conquer.mix
|
||||
^Content/cnc/desert.mix: desert.mix
|
||||
^Content/cnc/general.mix: general.mix
|
||||
^Content/cnc/scores.mix: scores.mix
|
||||
^Content/cnc/sounds.mix: sounds.mix
|
||||
^Content/cnc/temperat.mix: temperat.mix
|
||||
^Content/cnc/winter.mix: winter.mix
|
||||
extract-blast: install/setup.z
|
||||
^Content/cnc/speech.mix:
|
||||
Offset: 10203213
|
||||
Length: 603293
|
||||
^Content/cnc/tempicnh.mix:
|
||||
Offset: 10925941
|
||||
Length: 119096
|
||||
^Content/cnc/transit.mix:
|
||||
Offset: 11078017
|
||||
Length: 3724462
|
||||
extract-raw: movies.mix
|
||||
^Content/cnc/movies/visor.vqa:
|
||||
Offset: 738
|
||||
Length: 4407162
|
||||
^Content/cnc/movies/trtkil_d.vqa:
|
||||
Offset: 4407900
|
||||
Length: 3511836
|
||||
^Content/cnc/movies/trailer.vqa:
|
||||
Offset: 7919736
|
||||
Length: 23163930
|
||||
^Content/cnc/movies/tiberfx.vqa:
|
||||
Offset: 31083666
|
||||
Length: 8735102
|
||||
^Content/cnc/movies/tankkill.vqa:
|
||||
Offset: 39818768
|
||||
Length: 3298978
|
||||
^Content/cnc/movies/tankgo.vqa:
|
||||
Offset: 43117746
|
||||
Length: 1403876
|
||||
^Content/cnc/movies/sundial.vqa:
|
||||
Offset: 44521622
|
||||
Length: 3653636
|
||||
^Content/cnc/movies/stealth.vqa:
|
||||
Offset: 48175258
|
||||
Length: 4521860
|
||||
^Content/cnc/movies/spycrash.vqa:
|
||||
Offset: 52697118
|
||||
Length: 1886288
|
||||
^Content/cnc/movies/sethpre.vqa:
|
||||
Offset: 54583406
|
||||
Length: 10914610
|
||||
^Content/cnc/movies/seige.vqa:
|
||||
Offset: 65498016
|
||||
Length: 2705978
|
||||
^Content/cnc/movies/samsite.vqa:
|
||||
Offset: 68203994
|
||||
Length: 1410418
|
||||
^Content/cnc/movies/retro.vqa:
|
||||
Offset: 69614412
|
||||
Length: 6434382
|
||||
^Content/cnc/movies/refint.vqa:
|
||||
Offset: 76048794
|
||||
Length: 5090040
|
||||
^Content/cnc/movies/obel.vqa:
|
||||
Offset: 81138834
|
||||
Length: 3851370
|
||||
^Content/cnc/movies/nuke.vqa:
|
||||
Offset: 84990204
|
||||
Length: 3126662
|
||||
^Content/cnc/movies/nodlose.vqa:
|
||||
Offset: 88116866
|
||||
Length: 5148924
|
||||
^Content/cnc/movies/nodfinal.vqa:
|
||||
Offset: 93265790
|
||||
Length: 23326586
|
||||
^Content/cnc/movies/nodend4.vqa:
|
||||
Offset: 116592376
|
||||
Length: 25535232
|
||||
^Content/cnc/movies/nodend3.vqa:
|
||||
Offset: 142127608
|
||||
Length: 25725824
|
||||
^Content/cnc/movies/nodend2.vqa:
|
||||
Offset: 167853432
|
||||
Length: 27214048
|
||||
^Content/cnc/movies/nodend1.vqa:
|
||||
Offset: 195067480
|
||||
Length: 27172272
|
||||
^Content/cnc/movies/nod9.vqa:
|
||||
Offset: 222239752
|
||||
Length: 9357980
|
||||
^Content/cnc/movies/nod8.vqa:
|
||||
Offset: 231597732
|
||||
Length: 11597940
|
||||
^Content/cnc/movies/nod7b.vqa:
|
||||
Offset: 243195672
|
||||
Length: 4671402
|
||||
^Content/cnc/movies/nod7a.vqa:
|
||||
Offset: 247867074
|
||||
Length: 4740470
|
||||
^Content/cnc/movies/nod6.vqa:
|
||||
Offset: 252607544
|
||||
Length: 5007744
|
||||
^Content/cnc/movies/nod5.vqa:
|
||||
Offset: 257615288
|
||||
Length: 6641700
|
||||
^Content/cnc/movies/nod4b.vqa:
|
||||
Offset: 264256988
|
||||
Length: 3867618
|
||||
^Content/cnc/movies/nod4a.vqa:
|
||||
Offset: 268124606
|
||||
Length: 3838924
|
||||
^Content/cnc/movies/nod3.vqa:
|
||||
Offset: 271963530
|
||||
Length: 3603314
|
||||
^Content/cnc/movies/nod2.vqa:
|
||||
Offset: 275566844
|
||||
Length: 7200720
|
||||
^Content/cnc/movies/nod1pre.vqa:
|
||||
Offset: 282767564
|
||||
Length: 395720
|
||||
^Content/cnc/movies/nod13.vqa:
|
||||
Offset: 283163284
|
||||
Length: 2746626
|
||||
^Content/cnc/movies/nod12.vqa:
|
||||
Offset: 285909910
|
||||
Length: 6576562
|
||||
^Content/cnc/movies/nod11.vqa:
|
||||
Offset: 292486472
|
||||
Length: 4629270
|
||||
^Content/cnc/movies/nod10b.vqa:
|
||||
Offset: 297115742
|
||||
Length: 6386444
|
||||
^Content/cnc/movies/nod10a.vqa:
|
||||
Offset: 303502186
|
||||
Length: 7205632
|
||||
^Content/cnc/movies/nod1.vqa:
|
||||
Offset: 310707818
|
||||
Length: 4663258
|
||||
^Content/cnc/movies/logo.vqa:
|
||||
Offset: 315371076
|
||||
Length: 3562630
|
||||
^Content/cnc/movies/landing.vqa:
|
||||
Offset: 318933706
|
||||
Length: 1617094
|
||||
^Content/cnc/movies/kanepre.vqa:
|
||||
Offset: 320550800
|
||||
Length: 17220712
|
||||
^Content/cnc/movies/intro2.vqa:
|
||||
Offset: 337771512
|
||||
Length: 21058732
|
||||
^Content/cnc/movies/insites.vqa:
|
||||
Offset: 358830244
|
||||
Length: 460482
|
||||
^Content/cnc/movies/generic.vqa:
|
||||
Offset: 359290726
|
||||
Length: 1452820
|
||||
^Content/cnc/movies/gdi1.vqa:
|
||||
Offset: 360743546
|
||||
Length: 6341298
|
||||
^Content/cnc/movies/gameover.vqa:
|
||||
Offset: 367084844
|
||||
Length: 2087322
|
||||
^Content/cnc/movies/forestkl.vqa:
|
||||
Offset: 369172166
|
||||
Length: 1500986
|
||||
^Content/cnc/movies/flag.vqa:
|
||||
Offset: 370673152
|
||||
Length: 4308680
|
||||
^Content/cnc/movies/dino.vqa:
|
||||
Offset: 374981832
|
||||
Length: 1347896
|
||||
^Content/cnc/movies/dessweep.vqa:
|
||||
Offset: 376329728
|
||||
Length: 3563646
|
||||
^Content/cnc/movies/deskill.vqa:
|
||||
Offset: 379893374
|
||||
Length: 1483634
|
||||
^Content/cnc/movies/desflees.vqa:
|
||||
Offset: 381377008
|
||||
Length: 2698426
|
||||
^Content/cnc/movies/consyard.vqa:
|
||||
Offset: 384075434
|
||||
Length: 7864652
|
||||
^Content/cnc/movies/cc2tease.vqa:
|
||||
Offset: 391940086
|
||||
Length: 12506712
|
||||
^Content/cnc/movies/bombflee.vqa:
|
||||
Offset: 404446798
|
||||
Length: 2859726
|
||||
^Content/cnc/movies/bombaway.vqa:
|
||||
Offset: 407306524
|
||||
Length: 5579588
|
||||
^Content/cnc/movies/bcanyon.vqa:
|
||||
Offset: 412886112
|
||||
Length: 5172288
|
||||
^Content/cnc/movies/banner.vqa:
|
||||
Offset: 418058400
|
||||
Length: 2229408
|
||||
^Content/cnc/movies/akira.vqa:
|
||||
Offset: 420287808
|
||||
Length: 7803444
|
||||
^Content/cnc/movies/airstrk.vqa:
|
||||
Offset: 428091252
|
||||
Length: 4444442
|
||||
333
mods/cnc/installer/origin.yaml
Normal file
333
mods/cnc/installer/origin.yaml
Normal file
@@ -0,0 +1,333 @@
|
||||
origin: C&C The Ultimate Collection (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\CNC and The Covert Operations
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
CNC95Launcher.exe: 1d711adf09ac08738b2599b3092a1b448169b32a
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/cnc/conquer.mix: CONQUER.MIX
|
||||
^Content/cnc/desert.mix: DESERT.MIX
|
||||
^Content/cnc/general.mix: GENERAL.MIX
|
||||
^Content/cnc/scores.mix: SCORES.MIX
|
||||
^Content/cnc/sounds.mix: SOUNDS.MIX
|
||||
^Content/cnc/temperat.mix: TEMPERAT.MIX
|
||||
^Content/cnc/winter.mix: WINTER.MIX
|
||||
^Content/cnc/speech.mix: SPEECH.MIX
|
||||
^Content/cnc/tempicnh.mix: TEMPICNH.MIX
|
||||
^Content/cnc/transit.mix: TRANSIT.MIX
|
||||
^Content/cnc/scores-covertops.mix: covert/SCORES.MIX
|
||||
extract-raw: movies.mix
|
||||
^Content/cnc/movies/akira.vqa:
|
||||
Offset: 4445708
|
||||
Length: 7803444
|
||||
^Content/cnc/movies/bkground.vqa:
|
||||
Offset: 12249152
|
||||
Length: 15267052
|
||||
^Content/cnc/movies/burdet1.vqa:
|
||||
Offset: 27516204
|
||||
Length: 10410614
|
||||
^Content/cnc/movies/burdet2.vqa:
|
||||
Offset: 37926818
|
||||
Length: 2062190
|
||||
^Content/cnc/movies/gdi4a.vqa:
|
||||
Offset: 39989008
|
||||
Length: 4450582
|
||||
^Content/cnc/movies/gdi4b.vqa:
|
||||
Offset: 44439590
|
||||
Length: 6603530
|
||||
^Content/cnc/movies/gdifina.vqa:
|
||||
Offset: 51043120
|
||||
Length: 12888650
|
||||
^Content/cnc/movies/gdifinb.vqa:
|
||||
Offset: 63931770
|
||||
Length: 17769978
|
||||
^Content/cnc/movies/nod7a.vqa:
|
||||
Offset: 81701748
|
||||
Length: 4740470
|
||||
^Content/cnc/movies/nod7b.vqa:
|
||||
Offset: 86442218
|
||||
Length: 4671402
|
||||
^Content/cnc/movies/visor.vqa:
|
||||
Offset: 91113620
|
||||
Length: 4407162
|
||||
^Content/cnc/movies/turtkill.vqa:
|
||||
Offset: 95520782
|
||||
Length: 3323444
|
||||
^Content/cnc/movies/trtkil_d.vqa:
|
||||
Offset: 98844226
|
||||
Length: 3511836
|
||||
^Content/cnc/movies/trailer.vqa:
|
||||
Offset: 102356062
|
||||
Length: 23163930
|
||||
^Content/cnc/movies/tiberfx.vqa:
|
||||
Offset: 125519992
|
||||
Length: 8735102
|
||||
^Content/cnc/movies/tbrinfo3.vqa:
|
||||
Offset: 134255094
|
||||
Length: 14972046
|
||||
^Content/cnc/movies/tbrinfo2.vqa:
|
||||
Offset: 149227140
|
||||
Length: 16195290
|
||||
^Content/cnc/movies/tbrinfo1.vqa:
|
||||
Offset: 165422430
|
||||
Length: 23479052
|
||||
^Content/cnc/movies/tankkill.vqa:
|
||||
Offset: 188901482
|
||||
Length: 3298978
|
||||
^Content/cnc/movies/tankgo.vqa:
|
||||
Offset: 192200460
|
||||
Length: 1403876
|
||||
^Content/cnc/movies/sundial.vqa:
|
||||
Offset: 193604336
|
||||
Length: 3653636
|
||||
^Content/cnc/movies/stealth.vqa:
|
||||
Offset: 197257972
|
||||
Length: 4521860
|
||||
^Content/cnc/movies/spycrash.vqa:
|
||||
Offset: 201779832
|
||||
Length: 1886288
|
||||
^Content/cnc/movies/sethpre.vqa:
|
||||
Offset: 203666120
|
||||
Length: 10914610
|
||||
^Content/cnc/movies/seige.vqa:
|
||||
Offset: 214580730
|
||||
Length: 2705978
|
||||
^Content/cnc/movies/samsite.vqa:
|
||||
Offset: 217286708
|
||||
Length: 1410418
|
||||
^Content/cnc/movies/samdie.vqa:
|
||||
Offset: 218697126
|
||||
Length: 3741942
|
||||
^Content/cnc/movies/sabotage.vqa:
|
||||
Offset: 222439068
|
||||
Length: 1386202
|
||||
^Content/cnc/movies/retro.vqa:
|
||||
Offset: 223825270
|
||||
Length: 6434382
|
||||
^Content/cnc/movies/refint.vqa:
|
||||
Offset: 230259652
|
||||
Length: 5090040
|
||||
^Content/cnc/movies/podium.vqa:
|
||||
Offset: 235349692
|
||||
Length: 2790664
|
||||
^Content/cnc/movies/planecra.vqa:
|
||||
Offset: 238140356
|
||||
Length: 5085426
|
||||
^Content/cnc/movies/pintle.vqa:
|
||||
Offset: 243225782
|
||||
Length: 2757536
|
||||
^Content/cnc/movies/paratrop.vqa:
|
||||
Offset: 245983318
|
||||
Length: 3180272
|
||||
^Content/cnc/movies/obel.vqa:
|
||||
Offset: 249163590
|
||||
Length: 3851370
|
||||
^Content/cnc/movies/nuke.vqa:
|
||||
Offset: 253014960
|
||||
Length: 3126662
|
||||
^Content/cnc/movies/nodsweep.vqa:
|
||||
Offset: 256141622
|
||||
Length: 3642174
|
||||
^Content/cnc/movies/nodlose.vqa:
|
||||
Offset: 259783796
|
||||
Length: 5148924
|
||||
^Content/cnc/movies/nodflees.vqa:
|
||||
Offset: 264932720
|
||||
Length: 3056426
|
||||
^Content/cnc/movies/nodfinal.vqa:
|
||||
Offset: 267989146
|
||||
Length: 23326586
|
||||
^Content/cnc/movies/nod9.vqa:
|
||||
Offset: 396963108
|
||||
Length: 9357980
|
||||
^Content/cnc/movies/nod8.vqa:
|
||||
Offset: 406321088
|
||||
Length: 11597940
|
||||
^Content/cnc/movies/nod6.vqa:
|
||||
Offset: 417919028
|
||||
Length: 5007744
|
||||
^Content/cnc/movies/nod5.vqa:
|
||||
Offset: 422926772
|
||||
Length: 6641700
|
||||
^Content/cnc/movies/nod4b.vqa:
|
||||
Offset: 429568472
|
||||
Length: 3867618
|
||||
^Content/cnc/movies/nod4a.vqa:
|
||||
Offset: 433436090
|
||||
Length: 3838924
|
||||
^Content/cnc/movies/nod3.vqa:
|
||||
Offset: 437275014
|
||||
Length: 3603314
|
||||
^Content/cnc/movies/nod2.vqa:
|
||||
Offset: 440878328
|
||||
Length: 7200720
|
||||
^Content/cnc/movies/nod1pre.vqa:
|
||||
Offset: 448079048
|
||||
Length: 395720
|
||||
^Content/cnc/movies/nod13.vqa:
|
||||
Offset: 448474768
|
||||
Length: 2746626
|
||||
^Content/cnc/movies/nod12.vqa:
|
||||
Offset: 451221394
|
||||
Length: 6576562
|
||||
^Content/cnc/movies/nod11.vqa:
|
||||
Offset: 457797956
|
||||
Length: 4629270
|
||||
^Content/cnc/movies/nod10b.vqa:
|
||||
Offset: 462427226
|
||||
Length: 6386444
|
||||
^Content/cnc/movies/nod10a.vqa:
|
||||
Offset: 468813670
|
||||
Length: 7205632
|
||||
^Content/cnc/movies/nod1.vqa:
|
||||
Offset: 476019302
|
||||
Length: 4663258
|
||||
^Content/cnc/movies/nitejump.vqa:
|
||||
Offset: 480682560
|
||||
Length: 3702838
|
||||
^Content/cnc/movies/napalm.vqa:
|
||||
Offset: 484385398
|
||||
Length: 4004146
|
||||
^Content/cnc/movies/logo.vqa:
|
||||
Offset: 488389544
|
||||
Length: 3562630
|
||||
^Content/cnc/movies/landing.vqa:
|
||||
Offset: 491952174
|
||||
Length: 1617094
|
||||
^Content/cnc/movies/kanepre.vqa:
|
||||
Offset: 493569268
|
||||
Length: 17220712
|
||||
^Content/cnc/movies/intro2.vqa:
|
||||
Offset: 510789980
|
||||
Length: 21058732
|
||||
^Content/cnc/movies/insites.vqa:
|
||||
Offset: 531848712
|
||||
Length: 460482
|
||||
^Content/cnc/movies/hellvaly.vqa:
|
||||
Offset: 532309194
|
||||
Length: 6658950
|
||||
^Content/cnc/movies/gunboat.vqa:
|
||||
Offset: 538968144
|
||||
Length: 3203706
|
||||
^Content/cnc/movies/generic.vqa:
|
||||
Offset: 542171850
|
||||
Length: 1452820
|
||||
^Content/cnc/movies/gdilose.vqa:
|
||||
Offset: 543624670
|
||||
Length: 2097912
|
||||
^Content/cnc/movies/gdiend2.vqa:
|
||||
Offset: 545722582
|
||||
Length: 25242946
|
||||
^Content/cnc/movies/gdiend1.vqa:
|
||||
Offset: 570965528
|
||||
Length: 25311636
|
||||
^Content/cnc/movies/gdi9.vqa:
|
||||
Offset: 596277164
|
||||
Length: 11806994
|
||||
^Content/cnc/movies/gdi8b.vqa:
|
||||
Offset: 608084158
|
||||
Length: 5324410
|
||||
^Content/cnc/movies/gdi8a.vqa:
|
||||
Offset: 613408568
|
||||
Length: 4672548
|
||||
^Content/cnc/movies/gdi7.vqa:
|
||||
Offset: 618081116
|
||||
Length: 4241952
|
||||
^Content/cnc/movies/gdi6.vqa:
|
||||
Offset: 622323068
|
||||
Length: 3959650
|
||||
^Content/cnc/movies/gdi5.vqa:
|
||||
Offset: 626282718
|
||||
Length: 3818244
|
||||
^Content/cnc/movies/gdi3lose.vqa:
|
||||
Offset: 630100962
|
||||
Length: 2265770
|
||||
^Content/cnc/movies/gdi3.vqa:
|
||||
Offset: 632366732
|
||||
Length: 5443848
|
||||
^Content/cnc/movies/gdi2.vqa:
|
||||
Offset: 637810580
|
||||
Length: 7883500
|
||||
^Content/cnc/movies/gdi15.vqa:
|
||||
Offset: 645694080
|
||||
Length: 11684610
|
||||
^Content/cnc/movies/gdi14.vqa:
|
||||
Offset: 657378690
|
||||
Length: 5282770
|
||||
^Content/cnc/movies/gdi13.vqa:
|
||||
Offset: 662661460
|
||||
Length: 6900914
|
||||
^Content/cnc/movies/gdi12.vqa:
|
||||
Offset: 669562374
|
||||
Length: 3669404
|
||||
^Content/cnc/movies/gdi11.vqa:
|
||||
Offset: 673231778
|
||||
Length: 5895754
|
||||
^Content/cnc/movies/gdi10.vqa:
|
||||
Offset: 679127532
|
||||
Length: 5761514
|
||||
^Content/cnc/movies/gdi1.vqa:
|
||||
Offset: 684889046
|
||||
Length: 6341298
|
||||
^Content/cnc/movies/gameover.vqa:
|
||||
Offset: 691230344
|
||||
Length: 2087322
|
||||
^Content/cnc/movies/forestkl.vqa:
|
||||
Offset: 693317666
|
||||
Length: 1500986
|
||||
^Content/cnc/movies/flyy.vqa:
|
||||
Offset: 694818652
|
||||
Length: 1373532
|
||||
^Content/cnc/movies/flag.vqa:
|
||||
Offset: 696192184
|
||||
Length: 4308680
|
||||
^Content/cnc/movies/dino.vqa:
|
||||
Offset: 700500864
|
||||
Length: 1347896
|
||||
^Content/cnc/movies/dessweep.vqa:
|
||||
Offset: 701848760
|
||||
Length: 3563646
|
||||
^Content/cnc/movies/desolat.vqa:
|
||||
Offset: 705412406
|
||||
Length: 8385122
|
||||
^Content/cnc/movies/deskill.vqa:
|
||||
Offset: 713797528
|
||||
Length: 1483634
|
||||
^Content/cnc/movies/desflees.vqa:
|
||||
Offset: 715281162
|
||||
Length: 2698426
|
||||
^Content/cnc/movies/consyard.vqa:
|
||||
Offset: 717979588
|
||||
Length: 7864652
|
||||
^Content/cnc/movies/cc2tease.vqa:
|
||||
Offset: 725844240
|
||||
Length: 12506712
|
||||
^Content/cnc/movies/bombflee.vqa:
|
||||
Offset: 738350952
|
||||
Length: 2859726
|
||||
^Content/cnc/movies/bombaway.vqa:
|
||||
Offset: 741210678
|
||||
Length: 5579588
|
||||
^Content/cnc/movies/bcanyon.vqa:
|
||||
Offset: 746790266
|
||||
Length: 5172288
|
||||
^Content/cnc/movies/banner.vqa:
|
||||
Offset: 751962554
|
||||
Length: 2229408
|
||||
^Content/cnc/movies/airstrk.vqa:
|
||||
Offset: 754191962
|
||||
Length: 4444442
|
||||
^Content/cnc/movies/nodend1.vqa:
|
||||
Offset: 758637638
|
||||
Length: 24708735
|
||||
^Content/cnc/movies/nodend2.vqa:
|
||||
Offset: 783346373
|
||||
Length: 24700467
|
||||
^Content/cnc/movies/nodend3.vqa:
|
||||
Offset: 808046840
|
||||
Length: 23323681
|
||||
^Content/cnc/movies/nodend4.vqa:
|
||||
Offset: 831370521
|
||||
Length: 23346753
|
||||
1557
mods/cnc/mod.yaml
1557
mods/cnc/mod.yaml
File diff suppressed because it is too large
Load Diff
1712
mods/d2k/installer/d2k.yaml
Normal file
1712
mods/d2k/installer/d2k.yaml
Normal file
File diff suppressed because it is too large
Load Diff
539
mods/d2k/installer/downloads.yaml
Normal file
539
mods/d2k/installer/downloads.yaml
Normal file
@@ -0,0 +1,539 @@
|
||||
quickinstall: Quick Install Package
|
||||
MirrorList: http://www.openra.net/packages/d2k-quickinstall-mirrors.txt
|
||||
Extract:
|
||||
^Content/d2k/v2/BLOXBASE.R8: v2/BLOXBASE.R8
|
||||
^Content/d2k/v2/BLOXBAT.R8: v2/BLOXBAT.R8
|
||||
^Content/d2k/v2/BLOXBGBS.R8: v2/BLOXBGBS.R8
|
||||
^Content/d2k/v2/BLOXICE.R8: v2/BLOXICE.R8
|
||||
^Content/d2k/v2/BLOXTREE.R8: v2/BLOXTREE.R8
|
||||
^Content/d2k/v2/BLOXWAST.R8: v2/BLOXWAST.R8
|
||||
^Content/d2k/v2/FONT.BIN: v2/FONT.BIN
|
||||
^Content/d2k/v2/FONTCOL.FNT: v2/FONTCOL.FNT
|
||||
^Content/d2k/v2/FONTCOL.FPL: v2/FONTCOL.FPL
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF1.AUD: v2/GAMESFX/A_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF2.AUD: v2/GAMESFX/A_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF3.AUD: v2/GAMESFX/A_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL1.AUD: v2/GAMESFX/A_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL2.AUD: v2/GAMESFX/A_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL3.AUD: v2/GAMESFX/A_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF1.AUD: v2/GAMESFX/A_FCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF2.AUD: v2/GAMESFX/A_FCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF3.AUD: v2/GAMESFX/A_FCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF4.AUD: v2/GAMESFX/A_FCONF4.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL1.AUD: v2/GAMESFX/A_FSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL2.AUD: v2/GAMESFX/A_FSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL3.AUD: v2/GAMESFX/A_FSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL4.AUD: v2/GAMESFX/A_FSEL4.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF1.AUD: v2/GAMESFX/A_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF2.AUD: v2/GAMESFX/A_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF3.AUD: v2/GAMESFX/A_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL1.AUD: v2/GAMESFX/A_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL2.AUD: v2/GAMESFX/A_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL3.AUD: v2/GAMESFX/A_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF1.AUD: v2/GAMESFX/A_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF2.AUD: v2/GAMESFX/A_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF3.AUD: v2/GAMESFX/A_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL1.AUD: v2/GAMESFX/A_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL2.AUD: v2/GAMESFX/A_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL3.AUD: v2/GAMESFX/A_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_1MIN.AUD: v2/GAMESFX/AI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_2MIN.AUD: v2/GAMESFX/AI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_3MIN.AUD: v2/GAMESFX/AI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_4MIN.AUD: v2/GAMESFX/AI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_5MIN.AUD: v2/GAMESFX/AI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ABORT.AUD: v2/GAMESFX/AI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ATACK.AUD: v2/GAMESFX/AI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BDRDY.AUD: v2/GAMESFX/AI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BLOST.AUD: v2/GAMESFX/AI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BUILD.AUD: v2/GAMESFX/AI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_CANCL.AUD: v2/GAMESFX/AI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_CAPT.AUD: v2/GAMESFX/AI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_DHRDY.AUD: v2/GAMESFX/AI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_DPLOY.AUD: v2/GAMESFX/AI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ENEMY.AUD: v2/GAMESFX/AI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GANEW.AUD: v2/GAMESFX/AI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GLOAD.AUD: v2/GAMESFX/AI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GSAVE.AUD: v2/GAMESFX/AI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GUARD.AUD: v2/GAMESFX/AI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_HATTK.AUD: v2/GAMESFX/AI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_HOLD.AUD: v2/GAMESFX/AI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_LAUNC.AUD: v2/GAMESFX/AI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1A.AUD: v2/GAMESFX/AI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1B.AUD: v2/GAMESFX/AI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1C.AUD: v2/GAMESFX/AI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2A.AUD: v2/GAMESFX/AI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2B.AUD: v2/GAMESFX/AI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2C.AUD: v2/GAMESFX/AI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP3A.AUD: v2/GAMESFX/AI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP4A.AUD: v2/GAMESFX/AI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP5A.AUD: v2/GAMESFX/AI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP6A.AUD: v2/GAMESFX/AI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP7A.AUD: v2/GAMESFX/AI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP8A.AUD: v2/GAMESFX/AI_MAP8A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP9A.AUD: v2/GAMESFX/AI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MEND.AUD: v2/GAMESFX/AI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MFAIL.AUD: v2/GAMESFX/AI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MONEY.AUD: v2/GAMESFX/AI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MWIN.AUD: v2/GAMESFX/AI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_NEWOP.AUD: v2/GAMESFX/AI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_NROOM.AUD: v2/GAMESFX/AI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ORDER.AUD: v2/GAMESFX/AI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PLACE.AUD: v2/GAMESFX/AI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_POWER.AUD: v2/GAMESFX/AI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PREP.AUD: v2/GAMESFX/AI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PRMRY.AUD: v2/GAMESFX/AI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_REINF.AUD: v2/GAMESFX/AI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_RUN.AUD: v2/GAMESFX/AI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SELL.AUD: v2/GAMESFX/AI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SILOS.AUD: v2/GAMESFX/AI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SPORT.AUD: v2/GAMESFX/AI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_TRAIN.AUD: v2/GAMESFX/AI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ULOST.AUD: v2/GAMESFX/AI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UNRDY.AUD: v2/GAMESFX/AI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UPGOP.AUD: v2/GAMESFX/AI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UPGRD.AUD: v2/GAMESFX/AI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_WATTK.AUD: v2/GAMESFX/AI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_WSIGN.AUD: v2/GAMESFX/AI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF1.AUD: v2/GAMESFX/G_SCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF2.AUD: v2/GAMESFX/G_SCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF3.AUD: v2/GAMESFX/G_SCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL1.AUD: v2/GAMESFX/G_SSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL2.AUD: v2/GAMESFX/G_SSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL3.AUD: v2/GAMESFX/G_SSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF1.AUD: v2/GAMESFX/H_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF2.AUD: v2/GAMESFX/H_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF3.AUD: v2/GAMESFX/H_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL1.AUD: v2/GAMESFX/H_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL2.AUD: v2/GAMESFX/H_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL3.AUD: v2/GAMESFX/H_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF1.AUD: v2/GAMESFX/H_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF2.AUD: v2/GAMESFX/H_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF3.AUD: v2/GAMESFX/H_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL1.AUD: v2/GAMESFX/H_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL2.AUD: v2/GAMESFX/H_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL3.AUD: v2/GAMESFX/H_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF1.AUD: v2/GAMESFX/H_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF2.AUD: v2/GAMESFX/H_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF3.AUD: v2/GAMESFX/H_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL1.AUD: v2/GAMESFX/H_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL2.AUD: v2/GAMESFX/H_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL3.AUD: v2/GAMESFX/H_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_1MIN.AUD: v2/GAMESFX/HI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_2MIN.AUD: v2/GAMESFX/HI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_3MIN.AUD: v2/GAMESFX/HI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_4MIN.AUD: v2/GAMESFX/HI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_5MIN.AUD: v2/GAMESFX/HI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ABORT.AUD: v2/GAMESFX/HI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ATACK.AUD: v2/GAMESFX/HI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BDRDY.AUD: v2/GAMESFX/HI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BLOST.AUD: v2/GAMESFX/HI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BUILD.AUD: v2/GAMESFX/HI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_CANCL.AUD: v2/GAMESFX/HI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_CAPT.AUD: v2/GAMESFX/HI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_DHRDY.AUD: v2/GAMESFX/HI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_DPLOY.AUD: v2/GAMESFX/HI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ENEMY.AUD: v2/GAMESFX/HI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GANEW.AUD: v2/GAMESFX/HI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GLOAD.AUD: v2/GAMESFX/HI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GSAVE.AUD: v2/GAMESFX/HI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GUARD.AUD: v2/GAMESFX/HI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_HATTK.AUD: v2/GAMESFX/HI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_HOLD.AUD: v2/GAMESFX/HI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_LAUNC.AUD: v2/GAMESFX/HI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1A.AUD: v2/GAMESFX/HI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1B.AUD: v2/GAMESFX/HI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1C.AUD: v2/GAMESFX/HI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2A.AUD: v2/GAMESFX/HI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2B.AUD: v2/GAMESFX/HI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2C.AUD: v2/GAMESFX/HI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP3A.AUD: v2/GAMESFX/HI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP3B.AUD: v2/GAMESFX/HI_MAP3B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP4A.AUD: v2/GAMESFX/HI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP4B.AUD: v2/GAMESFX/HI_MAP4B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP5A.AUD: v2/GAMESFX/HI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP6A.AUD: v2/GAMESFX/HI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP6B.AUD: v2/GAMESFX/HI_MAP6B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP7A.AUD: v2/GAMESFX/HI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP9.AUD: v2/GAMESFX/HI_MAP9.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP9A.AUD: v2/GAMESFX/HI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MEND.AUD: v2/GAMESFX/HI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MFAIL.AUD: v2/GAMESFX/HI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MONEY.AUD: v2/GAMESFX/HI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MWIN.AUD: v2/GAMESFX/HI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_NEWOP.AUD: v2/GAMESFX/HI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_NROOM.AUD: v2/GAMESFX/HI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ORDER.AUD: v2/GAMESFX/HI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PLACE.AUD: v2/GAMESFX/HI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_POWER.AUD: v2/GAMESFX/HI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PREP.AUD: v2/GAMESFX/HI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PRMRY.AUD: v2/GAMESFX/HI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_REINF.AUD: v2/GAMESFX/HI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_RUN.AUD: v2/GAMESFX/HI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SELL.AUD: v2/GAMESFX/HI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SILOS.AUD: v2/GAMESFX/HI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SPORT.AUD: v2/GAMESFX/HI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_TRAIN.AUD: v2/GAMESFX/HI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ULOST.AUD: v2/GAMESFX/HI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UNRDY.AUD: v2/GAMESFX/HI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UPGOP.AUD: v2/GAMESFX/HI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UPGRD.AUD: v2/GAMESFX/HI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_WATTK.AUD: v2/GAMESFX/HI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_WSIGN.AUD: v2/GAMESFX/HI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF1.AUD: v2/GAMESFX/O_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF2.AUD: v2/GAMESFX/O_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF3.AUD: v2/GAMESFX/O_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL1.AUD: v2/GAMESFX/O_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL2.AUD: v2/GAMESFX/O_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL3.AUD: v2/GAMESFX/O_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF1.AUD: v2/GAMESFX/O_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF2.AUD: v2/GAMESFX/O_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF3.AUD: v2/GAMESFX/O_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL1.AUD: v2/GAMESFX/O_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL2.AUD: v2/GAMESFX/O_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL3.AUD: v2/GAMESFX/O_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF1.AUD: v2/GAMESFX/O_SCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF2.AUD: v2/GAMESFX/O_SCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF3.AUD: v2/GAMESFX/O_SCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL1.AUD: v2/GAMESFX/O_SSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL2.AUD: v2/GAMESFX/O_SSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL3.AUD: v2/GAMESFX/O_SSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF1.AUD: v2/GAMESFX/O_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF2.AUD: v2/GAMESFX/O_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF3.AUD: v2/GAMESFX/O_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL1.AUD: v2/GAMESFX/O_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL2.AUD: v2/GAMESFX/O_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL3.AUD: v2/GAMESFX/O_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_1MIN.AUD: v2/GAMESFX/OI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_2MIN.AUD: v2/GAMESFX/OI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_3MIN.AUD: v2/GAMESFX/OI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_4MIN.AUD: v2/GAMESFX/OI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_5MIN.AUD: v2/GAMESFX/OI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ABORT.AUD: v2/GAMESFX/OI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ATACK.AUD: v2/GAMESFX/OI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BDRDY.AUD: v2/GAMESFX/OI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BLOST.AUD: v2/GAMESFX/OI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BUILD.AUD: v2/GAMESFX/OI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_CANCL.AUD: v2/GAMESFX/OI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_CAPT.AUD: v2/GAMESFX/OI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_DHRDY.AUD: v2/GAMESFX/OI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_DPLOY.AUD: v2/GAMESFX/OI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ENEMY.AUD: v2/GAMESFX/OI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GANEW.AUD: v2/GAMESFX/OI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GLOAD.AUD: v2/GAMESFX/OI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GSAVE.AUD: v2/GAMESFX/OI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GUARD.AUD: v2/GAMESFX/OI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_HATTK.AUD: v2/GAMESFX/OI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_HOLD.AUD: v2/GAMESFX/OI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_LAUNC.AUD: v2/GAMESFX/OI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1A.AUD: v2/GAMESFX/OI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1B.AUD: v2/GAMESFX/OI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1C.AUD: v2/GAMESFX/OI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2A.AUD: v2/GAMESFX/OI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2B.AUD: v2/GAMESFX/OI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2C.AUD: v2/GAMESFX/OI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP3A.AUD: v2/GAMESFX/OI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP4A.AUD: v2/GAMESFX/OI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP5A.AUD: v2/GAMESFX/OI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP6A.AUD: v2/GAMESFX/OI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP7A.AUD: v2/GAMESFX/OI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP8A.AUD: v2/GAMESFX/OI_MAP8A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP9A.AUD: v2/GAMESFX/OI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MEND.AUD: v2/GAMESFX/OI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MFAIL.AUD: v2/GAMESFX/OI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MONEY.AUD: v2/GAMESFX/OI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MWIN.AUD: v2/GAMESFX/OI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_NEWOP.AUD: v2/GAMESFX/OI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_NROOM.AUD: v2/GAMESFX/OI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ORDER.AUD: v2/GAMESFX/OI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PLACE.AUD: v2/GAMESFX/OI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_POWER.AUD: v2/GAMESFX/OI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PREP.AUD: v2/GAMESFX/OI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PRMRY.AUD: v2/GAMESFX/OI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_REINF.AUD: v2/GAMESFX/OI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_RUN.AUD: v2/GAMESFX/OI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SELL.AUD: v2/GAMESFX/OI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SILOS.AUD: v2/GAMESFX/OI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SPORT.AUD: v2/GAMESFX/OI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_TRAIN.AUD: v2/GAMESFX/OI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ULOST.AUD: v2/GAMESFX/OI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UNRDY.AUD: v2/GAMESFX/OI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UPGOP.AUD: v2/GAMESFX/OI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UPGRD.AUD: v2/GAMESFX/OI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_WATTK.AUD: v2/GAMESFX/OI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_WSIGN.AUD: v2/GAMESFX/OI_WSIGN.AUD
|
||||
^Content/d2k/v2/MOUSE.R8: v2/MOUSE.R8
|
||||
^Content/d2k/v2/PALETTE.BIN: v2/PALETTE.BIN
|
||||
^Content/d2k/v2/SOUND.RS: v2/SOUND.RS
|
||||
^Content/d2k/v2/BLOXXMAS.R8: v2/BLOXXMAS.R8
|
||||
^Content/d2k/v2/DATA.R8: v2/DATA.R8
|
||||
basefiles: Base Content
|
||||
MirrorList: http://www.openra.net/packages/d2k-base-mirrors.txt
|
||||
Extract:
|
||||
^Content/d2k/v2/BLOXBASE.R8: v2/BLOXBASE.R8
|
||||
^Content/d2k/v2/BLOXBAT.R8: v2/BLOXBAT.R8
|
||||
^Content/d2k/v2/BLOXBGBS.R8: v2/BLOXBGBS.R8
|
||||
^Content/d2k/v2/BLOXICE.R8: v2/BLOXICE.R8
|
||||
^Content/d2k/v2/BLOXTREE.R8: v2/BLOXTREE.R8
|
||||
^Content/d2k/v2/BLOXWAST.R8: v2/BLOXWAST.R8
|
||||
^Content/d2k/v2/FONT.BIN: v2/FONT.BIN
|
||||
^Content/d2k/v2/FONTCOL.FNT: v2/FONTCOL.FNT
|
||||
^Content/d2k/v2/FONTCOL.FPL: v2/FONTCOL.FPL
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF1.AUD: v2/GAMESFX/A_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF2.AUD: v2/GAMESFX/A_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF3.AUD: v2/GAMESFX/A_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL1.AUD: v2/GAMESFX/A_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL2.AUD: v2/GAMESFX/A_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL3.AUD: v2/GAMESFX/A_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF1.AUD: v2/GAMESFX/A_FCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF2.AUD: v2/GAMESFX/A_FCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF3.AUD: v2/GAMESFX/A_FCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF4.AUD: v2/GAMESFX/A_FCONF4.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL1.AUD: v2/GAMESFX/A_FSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL2.AUD: v2/GAMESFX/A_FSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL3.AUD: v2/GAMESFX/A_FSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL4.AUD: v2/GAMESFX/A_FSEL4.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF1.AUD: v2/GAMESFX/A_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF2.AUD: v2/GAMESFX/A_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF3.AUD: v2/GAMESFX/A_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL1.AUD: v2/GAMESFX/A_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL2.AUD: v2/GAMESFX/A_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL3.AUD: v2/GAMESFX/A_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF1.AUD: v2/GAMESFX/A_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF2.AUD: v2/GAMESFX/A_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF3.AUD: v2/GAMESFX/A_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL1.AUD: v2/GAMESFX/A_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL2.AUD: v2/GAMESFX/A_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL3.AUD: v2/GAMESFX/A_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_1MIN.AUD: v2/GAMESFX/AI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_2MIN.AUD: v2/GAMESFX/AI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_3MIN.AUD: v2/GAMESFX/AI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_4MIN.AUD: v2/GAMESFX/AI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_5MIN.AUD: v2/GAMESFX/AI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ABORT.AUD: v2/GAMESFX/AI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ATACK.AUD: v2/GAMESFX/AI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BDRDY.AUD: v2/GAMESFX/AI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BLOST.AUD: v2/GAMESFX/AI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BUILD.AUD: v2/GAMESFX/AI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_CANCL.AUD: v2/GAMESFX/AI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_CAPT.AUD: v2/GAMESFX/AI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_DHRDY.AUD: v2/GAMESFX/AI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_DPLOY.AUD: v2/GAMESFX/AI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ENEMY.AUD: v2/GAMESFX/AI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GANEW.AUD: v2/GAMESFX/AI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GLOAD.AUD: v2/GAMESFX/AI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GSAVE.AUD: v2/GAMESFX/AI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GUARD.AUD: v2/GAMESFX/AI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_HATTK.AUD: v2/GAMESFX/AI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_HOLD.AUD: v2/GAMESFX/AI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_LAUNC.AUD: v2/GAMESFX/AI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1A.AUD: v2/GAMESFX/AI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1B.AUD: v2/GAMESFX/AI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1C.AUD: v2/GAMESFX/AI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2A.AUD: v2/GAMESFX/AI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2B.AUD: v2/GAMESFX/AI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2C.AUD: v2/GAMESFX/AI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP3A.AUD: v2/GAMESFX/AI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP4A.AUD: v2/GAMESFX/AI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP5A.AUD: v2/GAMESFX/AI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP6A.AUD: v2/GAMESFX/AI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP7A.AUD: v2/GAMESFX/AI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP8A.AUD: v2/GAMESFX/AI_MAP8A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP9A.AUD: v2/GAMESFX/AI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MEND.AUD: v2/GAMESFX/AI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MFAIL.AUD: v2/GAMESFX/AI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MONEY.AUD: v2/GAMESFX/AI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MWIN.AUD: v2/GAMESFX/AI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_NEWOP.AUD: v2/GAMESFX/AI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_NROOM.AUD: v2/GAMESFX/AI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ORDER.AUD: v2/GAMESFX/AI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PLACE.AUD: v2/GAMESFX/AI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_POWER.AUD: v2/GAMESFX/AI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PREP.AUD: v2/GAMESFX/AI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PRMRY.AUD: v2/GAMESFX/AI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_REINF.AUD: v2/GAMESFX/AI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_RUN.AUD: v2/GAMESFX/AI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SELL.AUD: v2/GAMESFX/AI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SILOS.AUD: v2/GAMESFX/AI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SPORT.AUD: v2/GAMESFX/AI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_TRAIN.AUD: v2/GAMESFX/AI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ULOST.AUD: v2/GAMESFX/AI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UNRDY.AUD: v2/GAMESFX/AI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UPGOP.AUD: v2/GAMESFX/AI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UPGRD.AUD: v2/GAMESFX/AI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_WATTK.AUD: v2/GAMESFX/AI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_WSIGN.AUD: v2/GAMESFX/AI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF1.AUD: v2/GAMESFX/G_SCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF2.AUD: v2/GAMESFX/G_SCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF3.AUD: v2/GAMESFX/G_SCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL1.AUD: v2/GAMESFX/G_SSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL2.AUD: v2/GAMESFX/G_SSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL3.AUD: v2/GAMESFX/G_SSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF1.AUD: v2/GAMESFX/H_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF2.AUD: v2/GAMESFX/H_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF3.AUD: v2/GAMESFX/H_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL1.AUD: v2/GAMESFX/H_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL2.AUD: v2/GAMESFX/H_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL3.AUD: v2/GAMESFX/H_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF1.AUD: v2/GAMESFX/H_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF2.AUD: v2/GAMESFX/H_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF3.AUD: v2/GAMESFX/H_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL1.AUD: v2/GAMESFX/H_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL2.AUD: v2/GAMESFX/H_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL3.AUD: v2/GAMESFX/H_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF1.AUD: v2/GAMESFX/H_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF2.AUD: v2/GAMESFX/H_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF3.AUD: v2/GAMESFX/H_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL1.AUD: v2/GAMESFX/H_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL2.AUD: v2/GAMESFX/H_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL3.AUD: v2/GAMESFX/H_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_1MIN.AUD: v2/GAMESFX/HI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_2MIN.AUD: v2/GAMESFX/HI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_3MIN.AUD: v2/GAMESFX/HI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_4MIN.AUD: v2/GAMESFX/HI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_5MIN.AUD: v2/GAMESFX/HI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ABORT.AUD: v2/GAMESFX/HI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ATACK.AUD: v2/GAMESFX/HI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BDRDY.AUD: v2/GAMESFX/HI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BLOST.AUD: v2/GAMESFX/HI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BUILD.AUD: v2/GAMESFX/HI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_CANCL.AUD: v2/GAMESFX/HI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_CAPT.AUD: v2/GAMESFX/HI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_DHRDY.AUD: v2/GAMESFX/HI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_DPLOY.AUD: v2/GAMESFX/HI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ENEMY.AUD: v2/GAMESFX/HI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GANEW.AUD: v2/GAMESFX/HI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GLOAD.AUD: v2/GAMESFX/HI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GSAVE.AUD: v2/GAMESFX/HI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GUARD.AUD: v2/GAMESFX/HI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_HATTK.AUD: v2/GAMESFX/HI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_HOLD.AUD: v2/GAMESFX/HI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_LAUNC.AUD: v2/GAMESFX/HI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1A.AUD: v2/GAMESFX/HI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1B.AUD: v2/GAMESFX/HI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1C.AUD: v2/GAMESFX/HI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2A.AUD: v2/GAMESFX/HI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2B.AUD: v2/GAMESFX/HI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2C.AUD: v2/GAMESFX/HI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP3A.AUD: v2/GAMESFX/HI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP3B.AUD: v2/GAMESFX/HI_MAP3B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP4A.AUD: v2/GAMESFX/HI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP4B.AUD: v2/GAMESFX/HI_MAP4B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP5A.AUD: v2/GAMESFX/HI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP6A.AUD: v2/GAMESFX/HI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP6B.AUD: v2/GAMESFX/HI_MAP6B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP7A.AUD: v2/GAMESFX/HI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP9.AUD: v2/GAMESFX/HI_MAP9.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP9A.AUD: v2/GAMESFX/HI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MEND.AUD: v2/GAMESFX/HI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MFAIL.AUD: v2/GAMESFX/HI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MONEY.AUD: v2/GAMESFX/HI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MWIN.AUD: v2/GAMESFX/HI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_NEWOP.AUD: v2/GAMESFX/HI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_NROOM.AUD: v2/GAMESFX/HI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ORDER.AUD: v2/GAMESFX/HI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PLACE.AUD: v2/GAMESFX/HI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_POWER.AUD: v2/GAMESFX/HI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PREP.AUD: v2/GAMESFX/HI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PRMRY.AUD: v2/GAMESFX/HI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_REINF.AUD: v2/GAMESFX/HI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_RUN.AUD: v2/GAMESFX/HI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SELL.AUD: v2/GAMESFX/HI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SILOS.AUD: v2/GAMESFX/HI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SPORT.AUD: v2/GAMESFX/HI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_TRAIN.AUD: v2/GAMESFX/HI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ULOST.AUD: v2/GAMESFX/HI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UNRDY.AUD: v2/GAMESFX/HI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UPGOP.AUD: v2/GAMESFX/HI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UPGRD.AUD: v2/GAMESFX/HI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_WATTK.AUD: v2/GAMESFX/HI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_WSIGN.AUD: v2/GAMESFX/HI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF1.AUD: v2/GAMESFX/O_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF2.AUD: v2/GAMESFX/O_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF3.AUD: v2/GAMESFX/O_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL1.AUD: v2/GAMESFX/O_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL2.AUD: v2/GAMESFX/O_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL3.AUD: v2/GAMESFX/O_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF1.AUD: v2/GAMESFX/O_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF2.AUD: v2/GAMESFX/O_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF3.AUD: v2/GAMESFX/O_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL1.AUD: v2/GAMESFX/O_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL2.AUD: v2/GAMESFX/O_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL3.AUD: v2/GAMESFX/O_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF1.AUD: v2/GAMESFX/O_SCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF2.AUD: v2/GAMESFX/O_SCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF3.AUD: v2/GAMESFX/O_SCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL1.AUD: v2/GAMESFX/O_SSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL2.AUD: v2/GAMESFX/O_SSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL3.AUD: v2/GAMESFX/O_SSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF1.AUD: v2/GAMESFX/O_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF2.AUD: v2/GAMESFX/O_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF3.AUD: v2/GAMESFX/O_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL1.AUD: v2/GAMESFX/O_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL2.AUD: v2/GAMESFX/O_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL3.AUD: v2/GAMESFX/O_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_1MIN.AUD: v2/GAMESFX/OI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_2MIN.AUD: v2/GAMESFX/OI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_3MIN.AUD: v2/GAMESFX/OI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_4MIN.AUD: v2/GAMESFX/OI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_5MIN.AUD: v2/GAMESFX/OI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ABORT.AUD: v2/GAMESFX/OI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ATACK.AUD: v2/GAMESFX/OI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BDRDY.AUD: v2/GAMESFX/OI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BLOST.AUD: v2/GAMESFX/OI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BUILD.AUD: v2/GAMESFX/OI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_CANCL.AUD: v2/GAMESFX/OI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_CAPT.AUD: v2/GAMESFX/OI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_DHRDY.AUD: v2/GAMESFX/OI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_DPLOY.AUD: v2/GAMESFX/OI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ENEMY.AUD: v2/GAMESFX/OI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GANEW.AUD: v2/GAMESFX/OI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GLOAD.AUD: v2/GAMESFX/OI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GSAVE.AUD: v2/GAMESFX/OI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GUARD.AUD: v2/GAMESFX/OI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_HATTK.AUD: v2/GAMESFX/OI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_HOLD.AUD: v2/GAMESFX/OI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_LAUNC.AUD: v2/GAMESFX/OI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1A.AUD: v2/GAMESFX/OI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1B.AUD: v2/GAMESFX/OI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1C.AUD: v2/GAMESFX/OI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2A.AUD: v2/GAMESFX/OI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2B.AUD: v2/GAMESFX/OI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2C.AUD: v2/GAMESFX/OI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP3A.AUD: v2/GAMESFX/OI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP4A.AUD: v2/GAMESFX/OI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP5A.AUD: v2/GAMESFX/OI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP6A.AUD: v2/GAMESFX/OI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP7A.AUD: v2/GAMESFX/OI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP8A.AUD: v2/GAMESFX/OI_MAP8A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP9A.AUD: v2/GAMESFX/OI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MEND.AUD: v2/GAMESFX/OI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MFAIL.AUD: v2/GAMESFX/OI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MONEY.AUD: v2/GAMESFX/OI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MWIN.AUD: v2/GAMESFX/OI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_NEWOP.AUD: v2/GAMESFX/OI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_NROOM.AUD: v2/GAMESFX/OI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ORDER.AUD: v2/GAMESFX/OI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PLACE.AUD: v2/GAMESFX/OI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_POWER.AUD: v2/GAMESFX/OI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PREP.AUD: v2/GAMESFX/OI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PRMRY.AUD: v2/GAMESFX/OI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_REINF.AUD: v2/GAMESFX/OI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_RUN.AUD: v2/GAMESFX/OI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SELL.AUD: v2/GAMESFX/OI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SILOS.AUD: v2/GAMESFX/OI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SPORT.AUD: v2/GAMESFX/OI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_TRAIN.AUD: v2/GAMESFX/OI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ULOST.AUD: v2/GAMESFX/OI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UNRDY.AUD: v2/GAMESFX/OI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UPGOP.AUD: v2/GAMESFX/OI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UPGRD.AUD: v2/GAMESFX/OI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_WATTK.AUD: v2/GAMESFX/OI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_WSIGN.AUD: v2/GAMESFX/OI_WSIGN.AUD
|
||||
^Content/d2k/v2/MOUSE.R8: v2/MOUSE.R8
|
||||
^Content/d2k/v2/PALETTE.BIN: v2/PALETTE.BIN
|
||||
^Content/d2k/v2/SOUND.RS: v2/SOUND.RS
|
||||
patch106: Patch 1.06 Content
|
||||
MirrorList: http://www.openra.net/packages/d2k-patch106-mirrors.txt
|
||||
Extract:
|
||||
^Content/d2k/v2/BLOXXMAS.R8: v2/BLOXXMAS.R8
|
||||
^Content/d2k/v2/DATA.R8: v2/DATA.R8
|
||||
294
mods/d2k/installer/gruntmods.yaml
Normal file
294
mods/d2k/installer/gruntmods.yaml
Normal file
@@ -0,0 +1,294 @@
|
||||
|
||||
gruntmods: Dune 2000: GruntMods Edition
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Dune 2000: Gruntmods Edition
|
||||
IDFiles:
|
||||
Dune 2000/data/BLOXXMAS.R8: afc818feda44f5873e3af07bd2191573ba9965db
|
||||
Dune 2000/data/DATA.R8: 2b229cf4be47104a6214237039a55329f6c45bc9
|
||||
Install:
|
||||
copy: Dune 2000/data/Music
|
||||
^Content/d2k/v2/Music/AMBUSH.AUD: AMBUSH.AUD
|
||||
^Content/d2k/v2/Music/ARAKATAK.AUD: ARAKATAK.AUD
|
||||
^Content/d2k/v2/Music/ATREGAIN.AUD: ATREGAIN.AUD
|
||||
^Content/d2k/v2/Music/ENTORDOS.AUD: ENTORDOS.AUD
|
||||
^Content/d2k/v2/Music/FIGHTPWR.AUD: FIGHTPWR.AUD
|
||||
^Content/d2k/v2/Music/FREMEN.AUD: FREMEN.AUD
|
||||
^Content/d2k/v2/Music/HARK_BAT.AUD: HARK_BAT.AUD
|
||||
^Content/d2k/v2/Music/LANDSAND.AUD: LANDSAND.AUD
|
||||
^Content/d2k/v2/Music/OPTIONS.AUD: OPTIONS.AUD
|
||||
^Content/d2k/v2/Music/PLOTTING.AUD: PLOTTING.AUD
|
||||
^Content/d2k/v2/Music/RISEHARK.AUD: RISEHARK.AUD
|
||||
^Content/d2k/v2/Music/ROBOTIX.AUD: ROBOTIX.AUD
|
||||
^Content/d2k/v2/Music/SCORE.AUD: SCORE.AUD
|
||||
^Content/d2k/v2/Music/SOLDAPPR.AUD: SOLDAPPR.AUD
|
||||
^Content/d2k/v2/Music/SPICESCT.AUD: SPICESCT.AUD
|
||||
^Content/d2k/v2/Music/UNDERCON.AUD: UNDERCON.AUD
|
||||
^Content/d2k/v2/Music/WAITGAME.A: WAITGAME.AUD
|
||||
copy: Dune 2000/data
|
||||
^Content/d2k/v2/BLOXBAT.R8: BLOXBAT.R8
|
||||
^Content/d2k/v2/BLOXBASE.R8: BLOXBASE.R8
|
||||
^Content/d2k/v2/BLOXBGBS.R8: BLOXBGBS.R8
|
||||
^Content/d2k/v2/BLOXICE.R8: BLOXICE.R8
|
||||
^Content/d2k/v2/BLOXTREE.R8: BLOXTREE.R8
|
||||
^Content/d2k/v2/BLOXWAST.R8: BLOXWAST.R8
|
||||
^Content/d2k/v2/BLOXXMAS.R8: BLOXXMAS.R8
|
||||
^Content/d2k/v2/DATA.R8: DATA.R8
|
||||
^Content/d2k/v2/MOUSE.R8: MOUSE.R8
|
||||
^Content/d2k/v2/FONTCOL.FNT: FONTCOL.FNT
|
||||
^Content/d2k/v2/FONTCOL.FPL: FONTCOL.FPL
|
||||
copy: Dune 2000/data/bin
|
||||
^Content/d2k/v2/PALETTE.BIN: PALETTE.BIN
|
||||
^Content/d2k/v2/FONT.BIN: FONT.BIN
|
||||
copy: Dune 2000/data/GAMESFX
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF2.AUD: A_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF1.AUD: A_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ECONF3.AUD: A_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL1.AUD: A_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL2.AUD: A_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ESEL3.AUD: A_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF1.AUD: A_FCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF2.AUD: A_FCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF3.AUD: A_FCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ENEMY.AUD: OI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_POWER.AUD: AI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PREP.AUD: AI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PRMRY.AUD: AI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_REINF.AUD: AI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GANEW.AUD: AI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SPORT.AUD: HI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GSAVE.AUD: OI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GUARD.AUD: OI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP3B.AUD: HI_MAP3B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP4A.AUD: HI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP5A.AUD: HI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP6A.AUD: HI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF3.AUD: O_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF3.AUD: O_SCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL1.AUD: O_SSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL2.AUD: O_SSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SSEL3.AUD: O_SSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF1.AUD: O_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF2.AUD: O_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VCONF3.AUD: O_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MWIN.AUD: OI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF1.AUD: O_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ECONF2.AUD: O_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_NROOM.AUD: OI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL1.AUD: O_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL2.AUD: O_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ESEL3.AUD: O_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF1.AUD: O_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF2.AUD: O_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ICONF3.AUD: O_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP4B.AUD: HI_MAP4B.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL2.AUD: O_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BLOST.AUD: HI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BUILD.AUD: HI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP6B.AUD: HI_MAP6B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP7A.AUD: HI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP9.AUD: HI_MAP9.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL3.AUD: A_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_1MIN.AUD: AI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_2MIN.AUD: AI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_3MIN.AUD: AI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL1.AUD: O_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_RUN.AUD: HI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL1.AUD: A_FSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL2.AUD: A_FSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL3.AUD: A_FSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FSEL4.AUD: A_FSEL4.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP8A.AUD: OI_MAP8A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP9A.AUD: OI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MEND.AUD: OI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MFAIL.AUD: OI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_4MIN.AUD: AI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_CANCL.AUD: AI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ULOST.AUD: OI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UNRDY.AUD: OI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL3.AUD: O_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_1MIN.AUD: OI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP7A.AUD: OI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_TRAIN.AUD: HI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ULOST.AUD: HI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UNRDY.AUD: HI_UNRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2A.AUD: OI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_REINF.AUD: HI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2C.AUD: OI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP3A.AUD: OI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP4A.AUD: OI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SPORT.AUD: OI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UPGOP.AUD: OI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_UPGRD.AUD: OI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_WATTK.AUD: OI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MONEY.AUD: AI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SELL.AUD: AI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_NEWOP.AUD: HI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_5MIN.AUD: AI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_HATTK.AUD: OI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL2.AUD: H_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1B.AUD: OI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1C.AUD: OI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GSAVE.AUD: AI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GUARD.AUD: AI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_HATTK.AUD: AI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_HOLD.AUD: AI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UPGOP.AUD: HI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_UPGRD.AUD: HI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP2B.AUD: OI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_WSIGN.AUD: HI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_HATTK.AUD: HI_HATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF2.AUD: O_SCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_HOLD.AUD: HI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL2.AUD: A_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ATACK.AUD: AI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BDRDY.AUD: AI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BLOST.AUD: AI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_BUILD.AUD: AI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GLOAD.AUD: HI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_CAPT.AUD: AI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_DHRDY.AUD: AI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_DPLOY.AUD: AI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ENEMY.AUD: AI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF1.AUD: A_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PLACE.AUD: HI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_POWER.AUD: HI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PREP.AUD: HI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_PRMRY.AUD: HI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MONEY.AUD: OI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL1.AUD: O_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_NEWOP.AUD: OI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF3.AUD: A_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VSEL1.AUD: A_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PLACE.AUD: OI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_POWER.AUD: OI_POWER.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PREP.AUD: OI_PREP.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_PRMRY.AUD: OI_PRMRY.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_REINF.AUD: OI_REINF.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_RUN.AUD: OI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_CAPT.AUD: OI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF1.AUD: H_ECONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_VSEL2.AUD: O_VSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL3.AUD: H_VSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_1MIN.AUD: HI_1MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_2MIN.AUD: HI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_3MIN.AUD: HI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_4MIN.AUD: HI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_5MIN.AUD: HI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ABORT.AUD: HI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ATACK.AUD: HI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_NROOM.AUD: HI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SILOS.AUD: OI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_FCONF4.AUD: A_FCONF4.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP5A.AUD: OI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP6A.AUD: OI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_CANCL.AUD: HI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_CAPT.AUD: HI_CAPT.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_DHRDY.AUD: HI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_DPLOY.AUD: HI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ENEMY.AUD: HI_ENEMY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GANEW.AUD: HI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_DHRDY.AUD: OI_DHRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GSAVE.AUD: HI_GSAVE.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_GUARD.AUD: HI_GUARD.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VSEL1.AUD: H_VSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ORDER.AUD: OI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF1.AUD: G_SCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF2.AUD: G_SCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SCONF3.AUD: G_SCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL1.AUD: G_SSEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL2.AUD: G_SSEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/G_SSEL3.AUD: G_SSEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_SELL.AUD: OI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF2.AUD: H_ECONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ECONF3.AUD: H_ECONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL1.AUD: H_ESEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL2.AUD: H_ESEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2C.AUD: AI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP3A.AUD: AI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP4A.AUD: AI_MAP4A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP5A.AUD: AI_MAP5A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP6A.AUD: AI_MAP6A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_BDRDY.AUD: HI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP8A.AUD: AI_MAP8A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP9A.AUD: AI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MEND.AUD: AI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MFAIL.AUD: AI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_GLOAD.AUD: AI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP9A.AUD: HI_MAP9A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MEND.AUD: HI_MEND.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MFAIL.AUD: HI_MFAIL.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MONEY.AUD: HI_MONEY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MWIN.AUD: HI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_WATTK.AUD: HI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1A.AUD: AI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1B.AUD: AI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP1C.AUD: AI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2A.AUD: AI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ABORT.AUD: AI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ESEL3.AUD: H_ESEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SILOS.AUD: AI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_SPORT.AUD: AI_SPORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_TRAIN.AUD: AI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ULOST.AUD: AI_ULOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP7A.AUD: AI_MAP7A.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UPGOP.AUD: AI_UPGOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UPGRD.AUD: AI_UPGRD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_WATTK.AUD: AI_WATTK.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_WSIGN.AUD: AI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MAP2B.AUD: AI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF1.AUD: A_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF2.AUD: A_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ICONF3.AUD: A_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL1.AUD: A_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_CANCL.AUD: OI_CANCL.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL2.AUD: H_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL3.AUD: H_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF1.AUD: H_VCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF2.AUD: H_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_VCONF3.AUD: H_VCONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_TRAIN.AUD: OI_TRAIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_ORDER.AUD: HI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_WSIGN.AUD: OI_WSIGN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BLOST.AUD: OI_BLOST.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BUILD.AUD: OI_BUILD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_LAUNC.AUD: AI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL3.AUD: A_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_VCONF2.AUD: A_VCONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_HOLD.AUD: OI_HOLD.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_LAUNC.AUD: OI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_MAP1A.AUD: OI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_LAUNC.AUD: HI_LAUNC.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF1.AUD: H_ICONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF2.AUD: H_ICONF2.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ICONF3.AUD: H_ICONF3.AUD
|
||||
^Content/d2k/v2/GAMESFX/H_ISEL1.AUD: H_ISEL1.AUD
|
||||
^Content/d2k/v2/GAMESFX/A_ISEL2.AUD: A_ISEL2.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_RUN.AUD: AI_RUN.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SILOS.AUD: HI_SILOS.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1A.AUD: HI_MAP1A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1B.AUD: HI_MAP1B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP1C.AUD: HI_MAP1C.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2A.AUD: HI_MAP2A.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2B.AUD: HI_MAP2B.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP2C.AUD: HI_MAP2C.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_MAP3A.AUD: HI_MAP3A.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_ISEL3.AUD: O_ISEL3.AUD
|
||||
^Content/d2k/v2/GAMESFX/O_SCONF1.AUD: O_SCONF1.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_2MIN.AUD: OI_2MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_3MIN.AUD: OI_3MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_4MIN.AUD: OI_4MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_5MIN.AUD: OI_5MIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ABORT.AUD: OI_ABORT.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_ATACK.AUD: OI_ATACK.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_BDRDY.AUD: OI_BDRDY.AUD
|
||||
^Content/d2k/v2/GAMESFX/HI_SELL.AUD: HI_SELL.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_DPLOY.AUD: OI_DPLOY.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_PLACE.AUD: AI_PLACE.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GANEW.AUD: OI_GANEW.AUD
|
||||
^Content/d2k/v2/GAMESFX/OI_GLOAD.AUD: OI_GLOAD.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_MWIN.AUD: AI_MWIN.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_NEWOP.AUD: AI_NEWOP.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_NROOM.AUD: AI_NROOM.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_ORDER.AUD: AI_ORDER.AUD
|
||||
^Content/d2k/v2/GAMESFX/AI_UNRDY.AUD: AI_UNRDY.AUD
|
||||
^Content/d2k/v2/SOUND.RS: SOUND.RS
|
||||
2548
mods/d2k/mod.yaml
2548
mods/d2k/mod.yaml
File diff suppressed because it is too large
Load Diff
230
mods/ra/installer/aftermath.yaml
Normal file
230
mods/ra/installer/aftermath.yaml
Normal file
@@ -0,0 +1,230 @@
|
||||
aftermath: Aftermath Expansion Disc (English)
|
||||
IDFiles:
|
||||
README.TXT: 9902fb74c019df1b76ff5634e68f0371d790b5e0
|
||||
SETUP/INSTALL/PATCH.RTP: 5bce93f834f9322ddaa7233242e5b6c7fea0bf17
|
||||
Install:
|
||||
extract-raw: SETUP/INSTALL/PATCH.RTP
|
||||
^Content/ra/v2/expand/expand2.mix:
|
||||
Offset: 4712984
|
||||
Length: 469922
|
||||
^Content/ra/v2/expand/hires1.mix:
|
||||
Offset: 5182981
|
||||
Length: 90264
|
||||
^Content/ra/v2/expand/lores1.mix:
|
||||
Offset: 5273320
|
||||
Length: 57076
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/expand/await.aud:
|
||||
Offset: 158698809
|
||||
Length: 2972788
|
||||
^Content/ra/v2/expand/bog.aud:
|
||||
Offset: 244351833
|
||||
Length: 2386955
|
||||
^Content/ra/v2/expand/float_v2.aud:
|
||||
Offset: 246738788
|
||||
Length: 3090115
|
||||
^Content/ra/v2/expand/gloom.aud:
|
||||
Offset: 249828903
|
||||
Length: 2662851
|
||||
^Content/ra/v2/expand/grndwire.aud:
|
||||
Offset: 252491754
|
||||
Length: 2573611
|
||||
^Content/ra/v2/expand/rpt.aud:
|
||||
Offset: 255065365
|
||||
Length: 3092259
|
||||
^Content/ra/v2/expand/search.aud:
|
||||
Offset: 258157624
|
||||
Length: 3104091
|
||||
^Content/ra/v2/expand/traction.aud:
|
||||
Offset: 261261715
|
||||
Length: 2668003
|
||||
^Content/ra/v2/expand/wastelnd.aud:
|
||||
Offset: 263929718
|
||||
Length: 2721563
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 267714446
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 267959424
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 268105462
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 268128553
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 268142772
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 268160983
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 268175298
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 268184997
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 268193216
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 268203091
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 268216662
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 268231433
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 268361344
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 268381126
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 268413174
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 268438509
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 268445223
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 268455897
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 268462611
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 268527415
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 268564948
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 268578471
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 268589251
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 268608163
|
||||
Length: 9073
|
||||
aftermath-linux: Aftermath Expansion Disc (English)
|
||||
IDFiles:
|
||||
readme.txt: 9902fb74c019df1b76ff5634e68f0371d790b5e0
|
||||
setup/install/patch.rtp: 5bce93f834f9322ddaa7233242e5b6c7fea0bf17
|
||||
Install:
|
||||
extract-raw: SETUP/INSTALL/PATCH.RTP
|
||||
^Content/ra/v2/expand/expand2.mix:
|
||||
Offset: 4712984
|
||||
Length: 469922
|
||||
^Content/ra/v2/expand/hires1.mix:
|
||||
Offset: 5182981
|
||||
Length: 90264
|
||||
^Content/ra/v2/expand/lores1.mix:
|
||||
Offset: 5273320
|
||||
Length: 57076
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/expand/await.aud:
|
||||
Offset: 158698809
|
||||
Length: 2972788
|
||||
^Content/ra/v2/expand/bog.aud:
|
||||
Offset: 244351833
|
||||
Length: 2386955
|
||||
^Content/ra/v2/expand/float_v2.aud:
|
||||
Offset: 246738788
|
||||
Length: 3090115
|
||||
^Content/ra/v2/expand/gloom.aud:
|
||||
Offset: 249828903
|
||||
Length: 2662851
|
||||
^Content/ra/v2/expand/grndwire.aud:
|
||||
Offset: 252491754
|
||||
Length: 2573611
|
||||
^Content/ra/v2/expand/rpt.aud:
|
||||
Offset: 255065365
|
||||
Length: 3092259
|
||||
^Content/ra/v2/expand/search.aud:
|
||||
Offset: 258157624
|
||||
Length: 3104091
|
||||
^Content/ra/v2/expand/traction.aud:
|
||||
Offset: 261261715
|
||||
Length: 2668003
|
||||
^Content/ra/v2/expand/wastelnd.aud:
|
||||
Offset: 263929718
|
||||
Length: 2721563
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 267714446
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 267959424
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 268105462
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 268128553
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 268142772
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 268160983
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 268175298
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 268184997
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 268193216
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 268203091
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 268216662
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 268231433
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 268361344
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 268381126
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 268413174
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 268438509
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 268445223
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 268455897
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 268462611
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 268527415
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 268564948
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 268578471
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 268589251
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 268608163
|
||||
Length: 9073
|
||||
92
mods/ra/installer/allies95.yaml
Normal file
92
mods/ra/installer/allies95.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
allied: Red Alert 95 (Allied Disc, English)
|
||||
IDFiles:
|
||||
eahelp.GID: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5
|
||||
INSTALL/REDALERT.MIX: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: INSTALL/REDALERT.MIX
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 17419617
|
||||
Length: 369362336
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 386781953
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 450953313
|
||||
Length: 1030861
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 451984174
|
||||
Length: 1006778
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 452990952
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 453257029
|
||||
Length: 309406
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 453566435
|
||||
Length: 1038859
|
||||
allied-linux: Red Alert 95 (Allied Disc, English)
|
||||
IDFiles:
|
||||
eahelp.gid: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5
|
||||
install/redalert.mix: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: install/redalert.mix
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 17419617
|
||||
Length: 369362336
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 386781953
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 450953313
|
||||
Length: 1030861
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 451984174
|
||||
Length: 1006778
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 452990952
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 453257029
|
||||
Length: 309406
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 453566435
|
||||
Length: 1038859
|
||||
12
mods/ra/installer/cnc95.yaml
Normal file
12
mods/ra/installer/cnc95.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
cnc95: C&C Gold (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/cnc/desert.mix: DESERT.MIX
|
||||
cnc95-linux: C&C Gold (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
conquer.mix: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/cnc/desert.mix: desert.mix
|
||||
60
mods/ra/installer/counterstrike.yaml
Normal file
60
mods/ra/installer/counterstrike.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
counterstrike: Counterstrike Expansion Disc (English)
|
||||
IDFiles:
|
||||
README.TXT: 0efe8087383f0b159a9633f891fb5f53c6097cd4
|
||||
SETUP/INSTALL/CSTRIKE.RTP: fae8ba82db71574f6ecd8fb4ff4026fcb65d2adc
|
||||
Install:
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/expand/2nd_hand.aud:
|
||||
Offset: 209070947
|
||||
Length: 3070092
|
||||
^Content/ra/v2/expand/araziod.aud:
|
||||
Offset: 212141039
|
||||
Length: 2941132
|
||||
^Content/ra/v2/expand/backstab.aud:
|
||||
Offset: 215082171
|
||||
Length: 3178252
|
||||
^Content/ra/v2/expand/chaos2.aud:
|
||||
Offset: 218260423
|
||||
Length: 2860068
|
||||
^Content/ra/v2/expand/shut_it.aud:
|
||||
Offset: 221120491
|
||||
Length: 2991979
|
||||
^Content/ra/v2/expand/twinmix1.aud:
|
||||
Offset: 224112470
|
||||
Length: 2536972
|
||||
^Content/ra/v2/expand/under3.aud:
|
||||
Offset: 226649442
|
||||
Length: 2812788
|
||||
^Content/ra/v2/expand/vr2.aud:
|
||||
Offset: 229462230
|
||||
Length: 2920396
|
||||
counterstrike-linux: Counterstrike Expansion Disc (English)
|
||||
IDFiles:
|
||||
readme.txt: 0efe8087383f0b159a9633f891fb5f53c6097cd4
|
||||
setup/install/cstrike.rtp: fae8ba82db71574f6ecd8fb4ff4026fcb65d2adc
|
||||
Install:
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/expand/2nd_hand.aud:
|
||||
Offset: 209070947
|
||||
Length: 3070092
|
||||
^Content/ra/v2/expand/araziod.aud:
|
||||
Offset: 212141039
|
||||
Length: 2941132
|
||||
^Content/ra/v2/expand/backstab.aud:
|
||||
Offset: 215082171
|
||||
Length: 3178252
|
||||
^Content/ra/v2/expand/chaos2.aud:
|
||||
Offset: 218260423
|
||||
Length: 2860068
|
||||
^Content/ra/v2/expand/shut_it.aud:
|
||||
Offset: 221120491
|
||||
Length: 2991979
|
||||
^Content/ra/v2/expand/twinmix1.aud:
|
||||
Offset: 224112470
|
||||
Length: 2536972
|
||||
^Content/ra/v2/expand/under3.aud:
|
||||
Offset: 226649442
|
||||
Length: 2812788
|
||||
^Content/ra/v2/expand/vr2.aud:
|
||||
Offset: 229462230
|
||||
Length: 2920396
|
||||
94
mods/ra/installer/downloads.yaml
Normal file
94
mods/ra/installer/downloads.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
quickinstall: Quick Install Package
|
||||
MirrorList: http://www.openra.net/packages/ra-quickinstall-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/allies.mix: allies.mix
|
||||
^Content/ra/v2/conquer.mix: conquer.mix
|
||||
^Content/ra/v2/hires.mix: hires.mix
|
||||
^Content/ra/v2/interior.mix: interior.mix
|
||||
^Content/ra/v2/local.mix: local.mix
|
||||
^Content/ra/v2/lores.mix: lores.mix
|
||||
^Content/ra/v2/russian.mix: russian.mix
|
||||
^Content/ra/v2/snow.mix: snow.mix
|
||||
^Content/ra/v2/sounds.mix: sounds.mix
|
||||
^Content/ra/v2/speech.mix: speech.mix
|
||||
^Content/ra/v2/temperat.mix: temperat.mix
|
||||
^Content/ra/v2/expand/chrotnk1.aud: expand/chrotnk1.aud
|
||||
^Content/ra/v2/expand/expand2.mix: expand/expand2.mix
|
||||
^Content/ra/v2/expand/fixit1.aud: expand/fixit1.aud
|
||||
^Content/ra/v2/expand/hires1.mix: expand/hires1.mix
|
||||
^Content/ra/v2/expand/jburn1.aud: expand/jburn1.aud
|
||||
^Content/ra/v2/expand/jchrge1.aud: expand/jchrge1.aud
|
||||
^Content/ra/v2/expand/jcrisp1.aud: expand/jcrisp1.aud
|
||||
^Content/ra/v2/expand/jdance1.aud: expand/jdance1.aud
|
||||
^Content/ra/v2/expand/jjuice1.aud: expand/jjuice1.aud
|
||||
^Content/ra/v2/expand/jjump1.aud: expand/jjump1.aud
|
||||
^Content/ra/v2/expand/jlight1.aud: expand/jlight1.aud
|
||||
^Content/ra/v2/expand/jpower1.aud: expand/jpower1.aud
|
||||
^Content/ra/v2/expand/jshock1.aud: expand/jshock1.aud
|
||||
^Content/ra/v2/expand/jyes1.aud: expand/jyes1.aud
|
||||
^Content/ra/v2/expand/lores1.mix: expand/lores1.mix
|
||||
^Content/ra/v2/expand/madchrg2.aud: expand/madchrg2.aud
|
||||
^Content/ra/v2/expand/madexplo.aud: expand/madexplo.aud
|
||||
^Content/ra/v2/expand/mboss1.aud: expand/mboss1.aud
|
||||
^Content/ra/v2/expand/mhear1.aud: expand/mhear1.aud
|
||||
^Content/ra/v2/expand/mhotdig1.aud: expand/mhotdig1.aud
|
||||
^Content/ra/v2/expand/mhowdy1.aud: expand/mhowdy1.aud
|
||||
^Content/ra/v2/expand/mhuh1.aud: expand/mhuh1.aud
|
||||
^Content/ra/v2/expand/mlaff1.aud: expand/mlaff1.aud
|
||||
^Content/ra/v2/expand/mrise1.aud: expand/mrise1.aud
|
||||
^Content/ra/v2/expand/mwrench1.aud: expand/mwrench1.aud
|
||||
^Content/ra/v2/expand/myeehaw1.aud: expand/myeehaw1.aud
|
||||
^Content/ra/v2/expand/myes1.aud: expand/myes1.aud
|
||||
^Content/ra/v2/cnc/desert.mix: cnc/desert.mix
|
||||
basefiles: Base Freeware Content
|
||||
MirrorList: http://www.openra.net/packages/ra-base-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/allies.mix: allies.mix
|
||||
^Content/ra/v2/conquer.mix: conquer.mix
|
||||
^Content/ra/v2/hires.mix: hires.mix
|
||||
^Content/ra/v2/interior.mix: interior.mix
|
||||
^Content/ra/v2/local.mix: local.mix
|
||||
^Content/ra/v2/lores.mix: lores.mix
|
||||
^Content/ra/v2/russian.mix: russian.mix
|
||||
^Content/ra/v2/snow.mix: snow.mix
|
||||
^Content/ra/v2/sounds.mix: sounds.mix
|
||||
^Content/ra/v2/speech.mix: speech.mix
|
||||
^Content/ra/v2/temperat.mix: temperat.mix
|
||||
aftermath: Aftermath Expansion Files
|
||||
MirrorList: http://www.openra.net/packages/ra-aftermath-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/expand/chrotnk1.aud: expand/chrotnk1.aud
|
||||
^Content/ra/v2/expand/expand2.mix: expand/expand2.mix
|
||||
^Content/ra/v2/expand/fixit1.aud: expand/fixit1.aud
|
||||
^Content/ra/v2/expand/hires1.mix: expand/hires1.mix
|
||||
^Content/ra/v2/expand/jburn1.aud: expand/jburn1.aud
|
||||
^Content/ra/v2/expand/jchrge1.aud: expand/jchrge1.aud
|
||||
^Content/ra/v2/expand/jcrisp1.aud: expand/jcrisp1.aud
|
||||
^Content/ra/v2/expand/jdance1.aud: expand/jdance1.aud
|
||||
^Content/ra/v2/expand/jjuice1.aud: expand/jjuice1.aud
|
||||
^Content/ra/v2/expand/jjump1.aud: expand/jjump1.aud
|
||||
^Content/ra/v2/expand/jlight1.aud: expand/jlight1.aud
|
||||
^Content/ra/v2/expand/jpower1.aud: expand/jpower1.aud
|
||||
^Content/ra/v2/expand/jshock1.aud: expand/jshock1.aud
|
||||
^Content/ra/v2/expand/jyes1.aud: expand/jyes1.aud
|
||||
^Content/ra/v2/expand/lores1.mix: expand/lores1.mix
|
||||
^Content/ra/v2/expand/madchrg2.aud: expand/madchrg2.aud
|
||||
^Content/ra/v2/expand/madexplo.aud: expand/madexplo.aud
|
||||
^Content/ra/v2/expand/mboss1.aud: expand/mboss1.aud
|
||||
^Content/ra/v2/expand/mhear1.aud: expand/mhear1.aud
|
||||
^Content/ra/v2/expand/mhotdig1.aud: expand/mhotdig1.aud
|
||||
^Content/ra/v2/expand/mhowdy1.aud: expand/mhowdy1.aud
|
||||
^Content/ra/v2/expand/mhuh1.aud: expand/mhuh1.aud
|
||||
^Content/ra/v2/expand/mlaff1.aud: expand/mlaff1.aud
|
||||
^Content/ra/v2/expand/mrise1.aud: expand/mrise1.aud
|
||||
^Content/ra/v2/expand/mwrench1.aud: expand/mwrench1.aud
|
||||
^Content/ra/v2/expand/myeehaw1.aud: expand/myeehaw1.aud
|
||||
^Content/ra/v2/expand/myes1.aud: expand/myes1.aud
|
||||
cncdesert: C&C Desert Tileset
|
||||
MirrorList: http://www.openra.net/packages/ra-cncdesert-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/cnc/desert.mix: cnc/desert.mix
|
||||
music: Freeware Music
|
||||
MirrorList: http://www.openra.net/packages/ra-scores-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/scores.mix: scores.mix
|
||||
136
mods/ra/installer/firstdecade.yaml
Normal file
136
mods/ra/installer/firstdecade.yaml
Normal file
@@ -0,0 +1,136 @@
|
||||
tfd: C&C The First Decade (English)
|
||||
IDFiles:
|
||||
data1.hdr: bef3a08c3fc1b1caf28ca0dbb97c1f900005930e
|
||||
data1.cab: 12ad6113a6890a1b4d5651a75378c963eaf513b9
|
||||
Install:
|
||||
extract-iscab: data1.hdr
|
||||
Volumes:
|
||||
2: data2.cab
|
||||
3: data3.cab
|
||||
4: data4.cab
|
||||
5: data5.cab
|
||||
Extract:
|
||||
^Content/ra/v2/main.mix: Red Alert\\MAIN.MIX
|
||||
^Content/ra/v2/redalert.mix: Red Alert\\REDALERT.MIX
|
||||
^Content/ra/v2/expand/hires1.mix: Red Alert\\HIRES1.MIX
|
||||
^Content/ra/v2/expand/lores1.mix: Red Alert\\LORES1.MIX
|
||||
^Content/ra/v2/expand/expand2.mix: Red Alert\\EXPAND2.MIX
|
||||
^Content/ra/v2/cnc/desert.mix: CnC\\DESERT.MIX
|
||||
extract-raw: ^Content/ra/v2/redalert.mix
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
delete: ^Content/ra/v2/redalert.mix
|
||||
extract-raw: ^Content/ra/v2/main.mix
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 417051805
|
||||
Length: 404691306
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 821743111
|
||||
Length: 249490
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 840028549
|
||||
Length: 2192279
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 842220828
|
||||
Length: 319181
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 842540009
|
||||
Length: 1043672
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 843583681
|
||||
Length: 1385637
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 844969318
|
||||
Length: 1035716
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 846005034
|
||||
Length: 67742203
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 913747237
|
||||
Length: 274732
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 914022190
|
||||
Length: 417051731
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 843615985
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 843860963
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 844007001
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 844030092
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 844044311
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 844062522
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 844076837
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 844086536
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 844094755
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 844104630
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 844118201
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 844132972
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 844262883
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 844282665
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 844314713
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 844340048
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 844346762
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 844357436
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 844364150
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 844428954
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 844466487
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 844480010
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 844490790
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 844509702
|
||||
Length: 9073
|
||||
delete: ^Content/ra/v2/main.mix
|
||||
155
mods/ra/installer/origin.yaml
Normal file
155
mods/ra/installer/origin.yaml
Normal file
@@ -0,0 +1,155 @@
|
||||
ra-origin: C&C The Ultimate Collection (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\Command and Conquer Red Alert
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
RA95Launcher.exe: 22bf7a1f9f1c2498823e3216541e6012f291c2c0
|
||||
REDALERT.MIX: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/expand/2nd_hand.aud: 2nd_hand.aud
|
||||
^Content/ra/v2/expand/araziod.aud: araziod.aud
|
||||
^Content/ra/v2/expand/await.aud: await.aud
|
||||
^Content/ra/v2/expand/backstab.aud: backstab.aud
|
||||
^Content/ra/v2/expand/bog.aud: bog.aud
|
||||
^Content/ra/v2/expand/chaos2.aud: chaos2.aud
|
||||
^Content/ra/v2/expand/float_v2.aud: float_v2.aud
|
||||
^Content/ra/v2/expand/gloom.aud: gloom.aud
|
||||
^Content/ra/v2/expand/grndwire.aud: grndwire.aud
|
||||
^Content/ra/v2/expand/rpt.aud: rpt.aud
|
||||
^Content/ra/v2/expand/search.aud: search.aud
|
||||
^Content/ra/v2/expand/shut_it.aud: shut_it.aud
|
||||
^Content/ra/v2/expand/traction.aud: traction.aud
|
||||
^Content/ra/v2/expand/twinmix1.aud: twinmix1.aud
|
||||
^Content/ra/v2/expand/under3.aud: under3.aud
|
||||
^Content/ra/v2/expand/vr2.aud: vr2.aud
|
||||
^Content/ra/v2/expand/wastelnd.aud: wastelnd.aud
|
||||
^Content/ra/v2/expand/expand2.mix: EXPAND2.MIX
|
||||
^Content/ra/v2/expand/hires1.mix: HIRES1.MIX
|
||||
^Content/ra/v2/expand/lores1.mix: LORES1.MIX
|
||||
extract-raw: REDALERT.MIX
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 417051805
|
||||
Length: 404691306
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 821743111
|
||||
Length: 249490
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 840028549
|
||||
Length: 2192279
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 842220828
|
||||
Length: 319181
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 842540009
|
||||
Length: 1043672
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 843583681
|
||||
Length: 1385637
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 844969318
|
||||
Length: 1035716
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 846005034
|
||||
Length: 67742203
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 913747237
|
||||
Length: 274732
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 914022190
|
||||
Length: 417051731
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 843615985
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 843860963
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 844007001
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 844030092
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 844044311
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 844062522
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 844076837
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 844086536
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 844094755
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 844104630
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 844118201
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 844132972
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 844262883
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 844282665
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 844314713
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 844340048
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 844346762
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 844357436
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 844364150
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 844428954
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 844466487
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 844480010
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 844490790
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 844509702
|
||||
Length: 9073
|
||||
cnc-origin: Command & Conquer (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\CNC and The Covert Operations
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
CNC95Launcher.exe: 1d711adf09ac08738b2599b3092a1b448169b32a
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/cnc/desert.mix: DESERT.MIX
|
||||
92
mods/ra/installer/soviet95.yaml
Normal file
92
mods/ra/installer/soviet95.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
soviet: Red Alert 95 (Soviet Disc, English)
|
||||
IDFiles:
|
||||
automenu.apm: bb61132a492bfb37069a0139f95671da3655d916
|
||||
INSTALL/REDALERT.MIX: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: INSTALL/REDALERT.MIX
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 17419617
|
||||
Length: 415334456
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 432754073
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 496925433
|
||||
Length: 1030861
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 497956294
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 498222371
|
||||
Length: 309406
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 498531777
|
||||
Length: 1006778
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 499538555
|
||||
Length: 1038859
|
||||
soviet-linux: Red Alert 95 (Soviet Disc, English)
|
||||
IDFiles:
|
||||
automenu.apm: bb61132a492bfb37069a0139f95671da3655d916
|
||||
install/redalert.mix: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: install/redalert.mix
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 17419617
|
||||
Length: 415334456
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 432754073
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 496925433
|
||||
Length: 1030861
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 497956294
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 498222371
|
||||
Length: 309406
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 498531777
|
||||
Length: 1006778
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 499538555
|
||||
Length: 1038859
|
||||
879
mods/ra/mod.yaml
879
mods/ra/mod.yaml
@@ -263,875 +263,12 @@ ModContent:
|
||||
TestFiles: ^Content/ra/v2/expand/await.aud, ^Content/ra/v2/expand/bog.aud, ^Content/ra/v2/expand/float_v2.aud, ^Content/ra/v2/expand/gloom.aud, ^Content/ra/v2/expand/grndwire.aud, ^Content/ra/v2/expand/rpt.aud, ^Content/ra/v2/expand/search.aud, ^Content/ra/v2/expand/traction.aud, ^Content/ra/v2/expand/wastelnd.aud
|
||||
Sources: aftermath, aftermath-linux, ra-origin
|
||||
Downloads:
|
||||
quickinstall: Quick Install Package
|
||||
MirrorList: http://www.openra.net/packages/ra-quickinstall-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/allies.mix: allies.mix
|
||||
^Content/ra/v2/conquer.mix: conquer.mix
|
||||
^Content/ra/v2/hires.mix: hires.mix
|
||||
^Content/ra/v2/interior.mix: interior.mix
|
||||
^Content/ra/v2/local.mix: local.mix
|
||||
^Content/ra/v2/lores.mix: lores.mix
|
||||
^Content/ra/v2/russian.mix: russian.mix
|
||||
^Content/ra/v2/snow.mix: snow.mix
|
||||
^Content/ra/v2/sounds.mix: sounds.mix
|
||||
^Content/ra/v2/speech.mix: speech.mix
|
||||
^Content/ra/v2/temperat.mix: temperat.mix
|
||||
^Content/ra/v2/expand/chrotnk1.aud: expand/chrotnk1.aud
|
||||
^Content/ra/v2/expand/expand2.mix: expand/expand2.mix
|
||||
^Content/ra/v2/expand/fixit1.aud: expand/fixit1.aud
|
||||
^Content/ra/v2/expand/hires1.mix: expand/hires1.mix
|
||||
^Content/ra/v2/expand/jburn1.aud: expand/jburn1.aud
|
||||
^Content/ra/v2/expand/jchrge1.aud: expand/jchrge1.aud
|
||||
^Content/ra/v2/expand/jcrisp1.aud: expand/jcrisp1.aud
|
||||
^Content/ra/v2/expand/jdance1.aud: expand/jdance1.aud
|
||||
^Content/ra/v2/expand/jjuice1.aud: expand/jjuice1.aud
|
||||
^Content/ra/v2/expand/jjump1.aud: expand/jjump1.aud
|
||||
^Content/ra/v2/expand/jlight1.aud: expand/jlight1.aud
|
||||
^Content/ra/v2/expand/jpower1.aud: expand/jpower1.aud
|
||||
^Content/ra/v2/expand/jshock1.aud: expand/jshock1.aud
|
||||
^Content/ra/v2/expand/jyes1.aud: expand/jyes1.aud
|
||||
^Content/ra/v2/expand/lores1.mix: expand/lores1.mix
|
||||
^Content/ra/v2/expand/madchrg2.aud: expand/madchrg2.aud
|
||||
^Content/ra/v2/expand/madexplo.aud: expand/madexplo.aud
|
||||
^Content/ra/v2/expand/mboss1.aud: expand/mboss1.aud
|
||||
^Content/ra/v2/expand/mhear1.aud: expand/mhear1.aud
|
||||
^Content/ra/v2/expand/mhotdig1.aud: expand/mhotdig1.aud
|
||||
^Content/ra/v2/expand/mhowdy1.aud: expand/mhowdy1.aud
|
||||
^Content/ra/v2/expand/mhuh1.aud: expand/mhuh1.aud
|
||||
^Content/ra/v2/expand/mlaff1.aud: expand/mlaff1.aud
|
||||
^Content/ra/v2/expand/mrise1.aud: expand/mrise1.aud
|
||||
^Content/ra/v2/expand/mwrench1.aud: expand/mwrench1.aud
|
||||
^Content/ra/v2/expand/myeehaw1.aud: expand/myeehaw1.aud
|
||||
^Content/ra/v2/expand/myes1.aud: expand/myes1.aud
|
||||
^Content/ra/v2/cnc/desert.mix: cnc/desert.mix
|
||||
basefiles: Base Freeware Content
|
||||
MirrorList: http://www.openra.net/packages/ra-base-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/allies.mix: allies.mix
|
||||
^Content/ra/v2/conquer.mix: conquer.mix
|
||||
^Content/ra/v2/hires.mix: hires.mix
|
||||
^Content/ra/v2/interior.mix: interior.mix
|
||||
^Content/ra/v2/local.mix: local.mix
|
||||
^Content/ra/v2/lores.mix: lores.mix
|
||||
^Content/ra/v2/russian.mix: russian.mix
|
||||
^Content/ra/v2/snow.mix: snow.mix
|
||||
^Content/ra/v2/sounds.mix: sounds.mix
|
||||
^Content/ra/v2/speech.mix: speech.mix
|
||||
^Content/ra/v2/temperat.mix: temperat.mix
|
||||
aftermath: Aftermath Expansion Files
|
||||
MirrorList: http://www.openra.net/packages/ra-aftermath-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/expand/chrotnk1.aud: expand/chrotnk1.aud
|
||||
^Content/ra/v2/expand/expand2.mix: expand/expand2.mix
|
||||
^Content/ra/v2/expand/fixit1.aud: expand/fixit1.aud
|
||||
^Content/ra/v2/expand/hires1.mix: expand/hires1.mix
|
||||
^Content/ra/v2/expand/jburn1.aud: expand/jburn1.aud
|
||||
^Content/ra/v2/expand/jchrge1.aud: expand/jchrge1.aud
|
||||
^Content/ra/v2/expand/jcrisp1.aud: expand/jcrisp1.aud
|
||||
^Content/ra/v2/expand/jdance1.aud: expand/jdance1.aud
|
||||
^Content/ra/v2/expand/jjuice1.aud: expand/jjuice1.aud
|
||||
^Content/ra/v2/expand/jjump1.aud: expand/jjump1.aud
|
||||
^Content/ra/v2/expand/jlight1.aud: expand/jlight1.aud
|
||||
^Content/ra/v2/expand/jpower1.aud: expand/jpower1.aud
|
||||
^Content/ra/v2/expand/jshock1.aud: expand/jshock1.aud
|
||||
^Content/ra/v2/expand/jyes1.aud: expand/jyes1.aud
|
||||
^Content/ra/v2/expand/lores1.mix: expand/lores1.mix
|
||||
^Content/ra/v2/expand/madchrg2.aud: expand/madchrg2.aud
|
||||
^Content/ra/v2/expand/madexplo.aud: expand/madexplo.aud
|
||||
^Content/ra/v2/expand/mboss1.aud: expand/mboss1.aud
|
||||
^Content/ra/v2/expand/mhear1.aud: expand/mhear1.aud
|
||||
^Content/ra/v2/expand/mhotdig1.aud: expand/mhotdig1.aud
|
||||
^Content/ra/v2/expand/mhowdy1.aud: expand/mhowdy1.aud
|
||||
^Content/ra/v2/expand/mhuh1.aud: expand/mhuh1.aud
|
||||
^Content/ra/v2/expand/mlaff1.aud: expand/mlaff1.aud
|
||||
^Content/ra/v2/expand/mrise1.aud: expand/mrise1.aud
|
||||
^Content/ra/v2/expand/mwrench1.aud: expand/mwrench1.aud
|
||||
^Content/ra/v2/expand/myeehaw1.aud: expand/myeehaw1.aud
|
||||
^Content/ra/v2/expand/myes1.aud: expand/myes1.aud
|
||||
cncdesert: C&C Desert Tileset
|
||||
MirrorList: http://www.openra.net/packages/ra-cncdesert-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/cnc/desert.mix: cnc/desert.mix
|
||||
music: Freeware Music
|
||||
MirrorList: http://www.openra.net/packages/ra-scores-mirrors.txt
|
||||
Extract:
|
||||
^Content/ra/v2/scores.mix: scores.mix
|
||||
ra|installer/downloads.yaml
|
||||
Sources:
|
||||
allied: Red Alert 95 (Allied Disc, English)
|
||||
IDFiles:
|
||||
eahelp.GID: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5
|
||||
INSTALL/REDALERT.MIX: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: INSTALL/REDALERT.MIX
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 17419617
|
||||
Length: 369362336
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 386781953
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 450953313
|
||||
Length: 1030861
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 451984174
|
||||
Length: 1006778
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 452990952
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 453257029
|
||||
Length: 309406
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 453566435
|
||||
Length: 1038859
|
||||
allied-linux: Red Alert 95 (Allied Disc, English)
|
||||
IDFiles:
|
||||
eahelp.gid: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5
|
||||
install/redalert.mix: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: install/redalert.mix
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 17419617
|
||||
Length: 369362336
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 386781953
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 450953313
|
||||
Length: 1030861
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 451984174
|
||||
Length: 1006778
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 452990952
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 453257029
|
||||
Length: 309406
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 453566435
|
||||
Length: 1038859
|
||||
soviet: Red Alert 95 (Soviet Disc, English)
|
||||
IDFiles:
|
||||
automenu.apm: bb61132a492bfb37069a0139f95671da3655d916
|
||||
INSTALL/REDALERT.MIX: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: INSTALL/REDALERT.MIX
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 17419617
|
||||
Length: 415334456
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 432754073
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 496925433
|
||||
Length: 1030861
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 497956294
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 498222371
|
||||
Length: 309406
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 498531777
|
||||
Length: 1006778
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 499538555
|
||||
Length: 1038859
|
||||
soviet-linux: Red Alert 95 (Soviet Disc, English)
|
||||
IDFiles:
|
||||
automenu.apm: bb61132a492bfb37069a0139f95671da3655d916
|
||||
install/redalert.mix: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
extract-raw: install/redalert.mix
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 236
|
||||
Length: 2177047
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 17172192
|
||||
Length: 247425
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 17419617
|
||||
Length: 415334456
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 432754073
|
||||
Length: 64171360
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 496925433
|
||||
Length: 1030861
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 497956294
|
||||
Length: 266077
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 498222371
|
||||
Length: 309406
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 498531777
|
||||
Length: 1006778
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 499538555
|
||||
Length: 1038859
|
||||
counterstrike: Counterstrike Expansion Disc (English)
|
||||
IDFiles:
|
||||
README.TXT: 0efe8087383f0b159a9633f891fb5f53c6097cd4
|
||||
SETUP/INSTALL/CSTRIKE.RTP: fae8ba82db71574f6ecd8fb4ff4026fcb65d2adc
|
||||
Install:
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/expand/2nd_hand.aud:
|
||||
Offset: 209070947
|
||||
Length: 3070092
|
||||
^Content/ra/v2/expand/araziod.aud:
|
||||
Offset: 212141039
|
||||
Length: 2941132
|
||||
^Content/ra/v2/expand/backstab.aud:
|
||||
Offset: 215082171
|
||||
Length: 3178252
|
||||
^Content/ra/v2/expand/chaos2.aud:
|
||||
Offset: 218260423
|
||||
Length: 2860068
|
||||
^Content/ra/v2/expand/shut_it.aud:
|
||||
Offset: 221120491
|
||||
Length: 2991979
|
||||
^Content/ra/v2/expand/twinmix1.aud:
|
||||
Offset: 224112470
|
||||
Length: 2536972
|
||||
^Content/ra/v2/expand/under3.aud:
|
||||
Offset: 226649442
|
||||
Length: 2812788
|
||||
^Content/ra/v2/expand/vr2.aud:
|
||||
Offset: 229462230
|
||||
Length: 2920396
|
||||
counterstrike-linux: Counterstrike Expansion Disc (English)
|
||||
IDFiles:
|
||||
readme.txt: 0efe8087383f0b159a9633f891fb5f53c6097cd4
|
||||
setup/install/cstrike.rtp: fae8ba82db71574f6ecd8fb4ff4026fcb65d2adc
|
||||
Install:
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/expand/2nd_hand.aud:
|
||||
Offset: 209070947
|
||||
Length: 3070092
|
||||
^Content/ra/v2/expand/araziod.aud:
|
||||
Offset: 212141039
|
||||
Length: 2941132
|
||||
^Content/ra/v2/expand/backstab.aud:
|
||||
Offset: 215082171
|
||||
Length: 3178252
|
||||
^Content/ra/v2/expand/chaos2.aud:
|
||||
Offset: 218260423
|
||||
Length: 2860068
|
||||
^Content/ra/v2/expand/shut_it.aud:
|
||||
Offset: 221120491
|
||||
Length: 2991979
|
||||
^Content/ra/v2/expand/twinmix1.aud:
|
||||
Offset: 224112470
|
||||
Length: 2536972
|
||||
^Content/ra/v2/expand/under3.aud:
|
||||
Offset: 226649442
|
||||
Length: 2812788
|
||||
^Content/ra/v2/expand/vr2.aud:
|
||||
Offset: 229462230
|
||||
Length: 2920396
|
||||
aftermath: Aftermath Expansion Disc (English)
|
||||
IDFiles:
|
||||
README.TXT: 9902fb74c019df1b76ff5634e68f0371d790b5e0
|
||||
SETUP/INSTALL/PATCH.RTP: 5bce93f834f9322ddaa7233242e5b6c7fea0bf17
|
||||
Install:
|
||||
extract-raw: SETUP/INSTALL/PATCH.RTP
|
||||
^Content/ra/v2/expand/expand2.mix:
|
||||
Offset: 4712984
|
||||
Length: 469922
|
||||
^Content/ra/v2/expand/hires1.mix:
|
||||
Offset: 5182981
|
||||
Length: 90264
|
||||
^Content/ra/v2/expand/lores1.mix:
|
||||
Offset: 5273320
|
||||
Length: 57076
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/expand/await.aud:
|
||||
Offset: 158698809
|
||||
Length: 2972788
|
||||
^Content/ra/v2/expand/bog.aud:
|
||||
Offset: 244351833
|
||||
Length: 2386955
|
||||
^Content/ra/v2/expand/float_v2.aud:
|
||||
Offset: 246738788
|
||||
Length: 3090115
|
||||
^Content/ra/v2/expand/gloom.aud:
|
||||
Offset: 249828903
|
||||
Length: 2662851
|
||||
^Content/ra/v2/expand/grndwire.aud:
|
||||
Offset: 252491754
|
||||
Length: 2573611
|
||||
^Content/ra/v2/expand/rpt.aud:
|
||||
Offset: 255065365
|
||||
Length: 3092259
|
||||
^Content/ra/v2/expand/search.aud:
|
||||
Offset: 258157624
|
||||
Length: 3104091
|
||||
^Content/ra/v2/expand/traction.aud:
|
||||
Offset: 261261715
|
||||
Length: 2668003
|
||||
^Content/ra/v2/expand/wastelnd.aud:
|
||||
Offset: 263929718
|
||||
Length: 2721563
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 267714446
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 267959424
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 268105462
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 268128553
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 268142772
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 268160983
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 268175298
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 268184997
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 268193216
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 268203091
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 268216662
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 268231433
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 268361344
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 268381126
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 268413174
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 268438509
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 268445223
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 268455897
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 268462611
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 268527415
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 268564948
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 268578471
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 268589251
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 268608163
|
||||
Length: 9073
|
||||
aftermath-linux: Aftermath Expansion Disc (English)
|
||||
IDFiles:
|
||||
readme.txt: 9902fb74c019df1b76ff5634e68f0371d790b5e0
|
||||
setup/install/patch.rtp: 5bce93f834f9322ddaa7233242e5b6c7fea0bf17
|
||||
Install:
|
||||
extract-raw: SETUP/INSTALL/PATCH.RTP
|
||||
^Content/ra/v2/expand/expand2.mix:
|
||||
Offset: 4712984
|
||||
Length: 469922
|
||||
^Content/ra/v2/expand/hires1.mix:
|
||||
Offset: 5182981
|
||||
Length: 90264
|
||||
^Content/ra/v2/expand/lores1.mix:
|
||||
Offset: 5273320
|
||||
Length: 57076
|
||||
extract-raw: main.mix
|
||||
^Content/ra/v2/expand/await.aud:
|
||||
Offset: 158698809
|
||||
Length: 2972788
|
||||
^Content/ra/v2/expand/bog.aud:
|
||||
Offset: 244351833
|
||||
Length: 2386955
|
||||
^Content/ra/v2/expand/float_v2.aud:
|
||||
Offset: 246738788
|
||||
Length: 3090115
|
||||
^Content/ra/v2/expand/gloom.aud:
|
||||
Offset: 249828903
|
||||
Length: 2662851
|
||||
^Content/ra/v2/expand/grndwire.aud:
|
||||
Offset: 252491754
|
||||
Length: 2573611
|
||||
^Content/ra/v2/expand/rpt.aud:
|
||||
Offset: 255065365
|
||||
Length: 3092259
|
||||
^Content/ra/v2/expand/search.aud:
|
||||
Offset: 258157624
|
||||
Length: 3104091
|
||||
^Content/ra/v2/expand/traction.aud:
|
||||
Offset: 261261715
|
||||
Length: 2668003
|
||||
^Content/ra/v2/expand/wastelnd.aud:
|
||||
Offset: 263929718
|
||||
Length: 2721563
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 267714446
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 267959424
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 268105462
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 268128553
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 268142772
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 268160983
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 268175298
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 268184997
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 268193216
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 268203091
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 268216662
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 268231433
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 268361344
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 268381126
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 268413174
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 268438509
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 268445223
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 268455897
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 268462611
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 268527415
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 268564948
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 268578471
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 268589251
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 268608163
|
||||
Length: 9073
|
||||
tfd: C&C The First Decade (English)
|
||||
IDFiles:
|
||||
data1.hdr: bef3a08c3fc1b1caf28ca0dbb97c1f900005930e
|
||||
data1.cab: 12ad6113a6890a1b4d5651a75378c963eaf513b9
|
||||
Install:
|
||||
extract-iscab: data1.hdr
|
||||
Volumes:
|
||||
2: data2.cab
|
||||
3: data3.cab
|
||||
4: data4.cab
|
||||
5: data5.cab
|
||||
Extract:
|
||||
^Content/ra/v2/main.mix: Red Alert\\MAIN.MIX
|
||||
^Content/ra/v2/redalert.mix: Red Alert\\REDALERT.MIX
|
||||
^Content/ra/v2/expand/hires1.mix: Red Alert\\HIRES1.MIX
|
||||
^Content/ra/v2/expand/lores1.mix: Red Alert\\LORES1.MIX
|
||||
^Content/ra/v2/expand/expand2.mix: Red Alert\\EXPAND2.MIX
|
||||
^Content/ra/v2/cnc/desert.mix: CnC\\DESERT.MIX
|
||||
extract-raw: ^Content/ra/v2/redalert.mix
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
delete: ^Content/ra/v2/redalert.mix
|
||||
extract-raw: ^Content/ra/v2/main.mix
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 417051805
|
||||
Length: 404691306
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 821743111
|
||||
Length: 249490
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 840028549
|
||||
Length: 2192279
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 842220828
|
||||
Length: 319181
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 842540009
|
||||
Length: 1043672
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 843583681
|
||||
Length: 1385637
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 844969318
|
||||
Length: 1035716
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 846005034
|
||||
Length: 67742203
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 913747237
|
||||
Length: 274732
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 914022190
|
||||
Length: 417051731
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 843615985
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 843860963
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 844007001
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 844030092
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 844044311
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 844062522
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 844076837
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 844086536
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 844094755
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 844104630
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 844118201
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 844132972
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 844262883
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 844282665
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 844314713
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 844340048
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 844346762
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 844357436
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 844364150
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 844428954
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 844466487
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 844480010
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 844490790
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 844509702
|
||||
Length: 9073
|
||||
delete: ^Content/ra/v2/main.mix
|
||||
ra-origin: C&C The Ultimate Collection (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\Command and Conquer Red Alert
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
RA95Launcher.exe: 22bf7a1f9f1c2498823e3216541e6012f291c2c0
|
||||
REDALERT.MIX: 0e58f4b54f44f6cd29fecf8cf379d33cf2d4caef
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/expand/2nd_hand.aud: 2nd_hand.aud
|
||||
^Content/ra/v2/expand/araziod.aud: araziod.aud
|
||||
^Content/ra/v2/expand/await.aud: await.aud
|
||||
^Content/ra/v2/expand/backstab.aud: backstab.aud
|
||||
^Content/ra/v2/expand/bog.aud: bog.aud
|
||||
^Content/ra/v2/expand/chaos2.aud: chaos2.aud
|
||||
^Content/ra/v2/expand/float_v2.aud: float_v2.aud
|
||||
^Content/ra/v2/expand/gloom.aud: gloom.aud
|
||||
^Content/ra/v2/expand/grndwire.aud: grndwire.aud
|
||||
^Content/ra/v2/expand/rpt.aud: rpt.aud
|
||||
^Content/ra/v2/expand/search.aud: search.aud
|
||||
^Content/ra/v2/expand/shut_it.aud: shut_it.aud
|
||||
^Content/ra/v2/expand/traction.aud: traction.aud
|
||||
^Content/ra/v2/expand/twinmix1.aud: twinmix1.aud
|
||||
^Content/ra/v2/expand/under3.aud: under3.aud
|
||||
^Content/ra/v2/expand/vr2.aud: vr2.aud
|
||||
^Content/ra/v2/expand/wastelnd.aud: wastelnd.aud
|
||||
^Content/ra/v2/expand/expand2.mix: EXPAND2.MIX
|
||||
^Content/ra/v2/expand/hires1.mix: HIRES1.MIX
|
||||
^Content/ra/v2/expand/lores1.mix: LORES1.MIX
|
||||
extract-raw: REDALERT.MIX
|
||||
^Content/ra/v2/hires.mix:
|
||||
Offset: 650612
|
||||
Length: 5817417
|
||||
^Content/ra/v2/local.mix:
|
||||
Offset: 6468029
|
||||
Length: 3829837
|
||||
^Content/ra/v2/lores.mix:
|
||||
Offset: 10297866
|
||||
Length: 754800
|
||||
^Content/ra/v2/speech.mix:
|
||||
Offset: 23042864
|
||||
Length: 2003464
|
||||
extract-raw: MAIN.MIX
|
||||
^Content/ra/v2/movies1.mix:
|
||||
Offset: 417051805
|
||||
Length: 404691306
|
||||
^Content/ra/v2/interior.mix:
|
||||
Offset: 821743111
|
||||
Length: 249490
|
||||
^Content/ra/v2/conquer.mix:
|
||||
Offset: 840028549
|
||||
Length: 2192279
|
||||
^Content/ra/v2/allies.mix:
|
||||
Offset: 842220828
|
||||
Length: 319181
|
||||
^Content/ra/v2/temperat.mix:
|
||||
Offset: 842540009
|
||||
Length: 1043672
|
||||
^Content/ra/v2/sounds.mix:
|
||||
Offset: 843583681
|
||||
Length: 1385637
|
||||
^Content/ra/v2/snow.mix:
|
||||
Offset: 844969318
|
||||
Length: 1035716
|
||||
^Content/ra/v2/scores.mix:
|
||||
Offset: 846005034
|
||||
Length: 67742203
|
||||
^Content/ra/v2/russian.mix:
|
||||
Offset: 913747237
|
||||
Length: 274732
|
||||
^Content/ra/v2/movies2.mix:
|
||||
Offset: 914022190
|
||||
Length: 417051731
|
||||
^Content/ra/v2/expand/chrotnk1.aud:
|
||||
Offset: 843615985
|
||||
Length: 22900
|
||||
^Content/ra/v2/expand/fixit1.aud:
|
||||
Offset: 843860963
|
||||
Length: 10707
|
||||
^Content/ra/v2/expand/jburn1.aud:
|
||||
Offset: 844007001
|
||||
Length: 23091
|
||||
^Content/ra/v2/expand/jchrge1.aud:
|
||||
Offset: 844030092
|
||||
Length: 14219
|
||||
^Content/ra/v2/expand/jcrisp1.aud:
|
||||
Offset: 844044311
|
||||
Length: 18211
|
||||
^Content/ra/v2/expand/jdance1.aud:
|
||||
Offset: 844062522
|
||||
Length: 14315
|
||||
^Content/ra/v2/expand/jjuice1.aud:
|
||||
Offset: 844076837
|
||||
Length: 9699
|
||||
^Content/ra/v2/expand/jjump1.aud:
|
||||
Offset: 844086536
|
||||
Length: 8219
|
||||
^Content/ra/v2/expand/jlight1.aud:
|
||||
Offset: 844094755
|
||||
Length: 9875
|
||||
^Content/ra/v2/expand/jpower1.aud:
|
||||
Offset: 844104630
|
||||
Length: 13571
|
||||
^Content/ra/v2/expand/jshock1.aud:
|
||||
Offset: 844118201
|
||||
Length: 14771
|
||||
^Content/ra/v2/expand/jyes1.aud:
|
||||
Offset: 844132972
|
||||
Length: 13795
|
||||
^Content/ra/v2/expand/madchrg2.aud:
|
||||
Offset: 844262883
|
||||
Length: 19782
|
||||
^Content/ra/v2/expand/madexplo.aud:
|
||||
Offset: 844282665
|
||||
Length: 26572
|
||||
^Content/ra/v2/expand/mboss1.aud:
|
||||
Offset: 844314713
|
||||
Length: 20147
|
||||
^Content/ra/v2/expand/mhear1.aud:
|
||||
Offset: 844340048
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhotdig1.aud:
|
||||
Offset: 844346762
|
||||
Length: 10674
|
||||
^Content/ra/v2/expand/mhowdy1.aud:
|
||||
Offset: 844357436
|
||||
Length: 6714
|
||||
^Content/ra/v2/expand/mhuh1.aud:
|
||||
Offset: 844364150
|
||||
Length: 4117
|
||||
^Content/ra/v2/expand/mlaff1.aud:
|
||||
Offset: 844428954
|
||||
Length: 24133
|
||||
^Content/ra/v2/expand/mrise1.aud:
|
||||
Offset: 844466487
|
||||
Length: 13523
|
||||
^Content/ra/v2/expand/mwrench1.aud:
|
||||
Offset: 844480010
|
||||
Length: 10780
|
||||
^Content/ra/v2/expand/myeehaw1.aud:
|
||||
Offset: 844490790
|
||||
Length: 18912
|
||||
^Content/ra/v2/expand/myes1.aud:
|
||||
Offset: 844509702
|
||||
Length: 9073
|
||||
cnc-origin: Command & Conquer (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\CNC and The Covert Operations
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
CNC95Launcher.exe: 1d711adf09ac08738b2599b3092a1b448169b32a
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/cnc/desert.mix: DESERT.MIX
|
||||
cnc95: C&C Gold (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
CONQUER.MIX: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/cnc/desert.mix: DESERT.MIX
|
||||
cnc95-linux: C&C Gold (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
conquer.mix: 833e02a09aae694659eb312d3838367f681d1b30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ra/v2/cnc/desert.mix: desert.mix
|
||||
ra|installer/aftermath.yaml
|
||||
ra|installer/allies95.yaml
|
||||
ra|installer/cnc95.yaml
|
||||
ra|installer/counterstrike.yaml
|
||||
ra|installer/firstdecade.yaml
|
||||
ra|installer/origin.yaml
|
||||
ra|installer/soviet95.yaml
|
||||
|
||||
21
mods/ts/installer/downloads.yaml
Normal file
21
mods/ts/installer/downloads.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
basefiles: Base Freeware Content
|
||||
MirrorList: http://www.openra.net/packages/ts-mirrors.txt
|
||||
Extract:
|
||||
^Content/ts/cache.mix: cache.mix
|
||||
^Content/ts/conquer.mix: conquer.mix
|
||||
^Content/ts/isosnow.mix: isosnow.mix
|
||||
^Content/ts/isotemp.mix: isotemp.mix
|
||||
^Content/ts/local.mix: local.mix
|
||||
^Content/ts/sidec01.mix: sidec01.mix
|
||||
^Content/ts/sidec02.mix: sidec02.mix
|
||||
^Content/ts/sno.mix: sno.mix
|
||||
^Content/ts/snow.mix: snow.mix
|
||||
^Content/ts/sounds.mix: sounds.mix
|
||||
^Content/ts/speech01.mix: speech01.mix
|
||||
^Content/ts/speech02.mix: speech02.mix
|
||||
^Content/ts/tem.mix: tem.mix
|
||||
^Content/ts/temperat.mix: temperat.mix
|
||||
music: Freeware Music
|
||||
MirrorList: http://www.openra.net/packages/ts-music-mirrors.txt
|
||||
Extract:
|
||||
^Content/ts/scores.mix: scores.mix
|
||||
56
mods/ts/installer/firstdecade.yaml
Normal file
56
mods/ts/installer/firstdecade.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
tfd: C&C The First Decade (English)
|
||||
IDFiles:
|
||||
data1.hdr: bef3a08c3fc1b1caf28ca0dbb97c1f900005930e
|
||||
data1.cab: 12ad6113a6890a1b4d5651a75378c963eaf513b9
|
||||
Install:
|
||||
extract-iscab: data1.hdr
|
||||
Volumes:
|
||||
6: data6.cab
|
||||
7: data7.cab
|
||||
Extract:
|
||||
^Content/ts/scores.mix: Tiberian Sun\SUN\SCORES.MIX
|
||||
^Content/ts/tibsun.mix: Tiberian Sun\SUN\TIBSUN.MIX
|
||||
extract-raw: ^Content/ts/tibsun.mix
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
delete: ^Content/ts/tibsun.mix
|
||||
53
mods/ts/installer/origin.yaml
Normal file
53
mods/ts/installer/origin.yaml
Normal file
@@ -0,0 +1,53 @@
|
||||
origin: C&C The Ultimate Collection (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\Command and Conquer Tiberian Sun
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
TSLauncher.exe: 0b3e8dfd7cb701868eccef3ba3717a1ced802707
|
||||
GDFBinary_en_US.dll: 4bb56a449bd0003e7ae67625d90a11ae169319d6
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ts/scores.mix: SCORES.MIX
|
||||
extract-raw: TIBSUN.MIX
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
100
mods/ts/installer/tibsun.yaml
Normal file
100
mods/ts/installer/tibsun.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
tibsun: Tiberan Sun (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
README.TXT: 45745c4a0c888317ec900208a426472779c42bf7
|
||||
AUTOPLAY.WAV: 2dfce5d00f98b641849c29942b651f4e98d30e30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ts/scores.mix: SCORES.MIX
|
||||
extract-raw: INSTALL/TIBSUN.MIX
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
tibsun-linux: Tiberan Sun (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
readme.txt: 45745c4a0c888317ec900208a426472779c42bf7
|
||||
autoplay.wav: 2dfce5d00f98b641849c29942b651f4e98d30e30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ts/scores.mix: scores.mix
|
||||
extract-raw: install/tibsun.mix
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
235
mods/ts/mod.yaml
235
mods/ts/mod.yaml
@@ -273,234 +273,9 @@ ModContent:
|
||||
Sources: tibsun, tibsun-linux, tfd, origin
|
||||
Download: music
|
||||
Downloads:
|
||||
basefiles: Base Freeware Content
|
||||
MirrorList: http://www.openra.net/packages/ts-mirrors.txt
|
||||
Extract:
|
||||
^Content/ts/cache.mix: cache.mix
|
||||
^Content/ts/conquer.mix: conquer.mix
|
||||
^Content/ts/isosnow.mix: isosnow.mix
|
||||
^Content/ts/isotemp.mix: isotemp.mix
|
||||
^Content/ts/local.mix: local.mix
|
||||
^Content/ts/sidec01.mix: sidec01.mix
|
||||
^Content/ts/sidec02.mix: sidec02.mix
|
||||
^Content/ts/sno.mix: sno.mix
|
||||
^Content/ts/snow.mix: snow.mix
|
||||
^Content/ts/sounds.mix: sounds.mix
|
||||
^Content/ts/speech01.mix: speech01.mix
|
||||
^Content/ts/speech02.mix: speech02.mix
|
||||
^Content/ts/tem.mix: tem.mix
|
||||
^Content/ts/temperat.mix: temperat.mix
|
||||
music: Freeware Music
|
||||
MirrorList: http://www.openra.net/packages/ts-music-mirrors.txt
|
||||
Extract:
|
||||
^Content/ts/scores.mix: scores.mix
|
||||
ts|installer/downloads.yaml
|
||||
Sources:
|
||||
tibsun: Tiberan Sun (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
README.TXT: 45745c4a0c888317ec900208a426472779c42bf7
|
||||
AUTOPLAY.WAV: 2dfce5d00f98b641849c29942b651f4e98d30e30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ts/scores.mix: SCORES.MIX
|
||||
extract-raw: INSTALL/TIBSUN.MIX
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
tibsun-linux: Tiberan Sun (GDI or Nod Disc, English)
|
||||
IDFiles:
|
||||
readme.txt: 45745c4a0c888317ec900208a426472779c42bf7
|
||||
autoplay.wav: 2dfce5d00f98b641849c29942b651f4e98d30e30
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ts/scores.mix: scores.mix
|
||||
extract-raw: install/tibsun.mix
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
tfd: C&C The First Decade (English)
|
||||
IDFiles:
|
||||
data1.hdr: bef3a08c3fc1b1caf28ca0dbb97c1f900005930e
|
||||
data1.cab: 12ad6113a6890a1b4d5651a75378c963eaf513b9
|
||||
Install:
|
||||
extract-iscab: data1.hdr
|
||||
Volumes:
|
||||
6: data6.cab
|
||||
7: data7.cab
|
||||
Extract:
|
||||
^Content/ts/scores.mix: Tiberian Sun\SUN\SCORES.MIX
|
||||
^Content/ts/tibsun.mix: Tiberian Sun\SUN\TIBSUN.MIX
|
||||
extract-raw: ^Content/ts/tibsun.mix
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
delete: ^Content/ts/tibsun.mix
|
||||
origin: C&C The Ultimate Collection (Origin version, English)
|
||||
Type: Install
|
||||
RegistryKey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\EA Games\Command and Conquer Tiberian Sun
|
||||
RegistryValue: Install Dir
|
||||
IDFiles:
|
||||
TSLauncher.exe: 0b3e8dfd7cb701868eccef3ba3717a1ced802707
|
||||
GDFBinary_en_US.dll: 4bb56a449bd0003e7ae67625d90a11ae169319d6
|
||||
Install:
|
||||
copy: .
|
||||
^Content/ts/scores.mix: SCORES.MIX
|
||||
extract-raw: TIBSUN.MIX
|
||||
^Content/ts/cache.mix:
|
||||
Offset: 300
|
||||
Length: 169176
|
||||
^Content/ts/conquer.mix:
|
||||
Offset: 169484
|
||||
Length: 5700088
|
||||
^Content/ts/isosnow.mix:
|
||||
Offset: 5869580
|
||||
Length: 7624750
|
||||
^Content/ts/isotemp.mix:
|
||||
Offset: 13494332
|
||||
Length: 8617646
|
||||
^Content/ts/local.mix:
|
||||
Offset: 22111980
|
||||
Length: 18044736
|
||||
^Content/ts/sidec01.mix:
|
||||
Offset: 40156716
|
||||
Length: 998476
|
||||
^Content/ts/sidec02.mix:
|
||||
Offset: 41155196
|
||||
Length: 1039996
|
||||
^Content/ts/snow.mix:
|
||||
Offset: 56104508
|
||||
Length: 2087806
|
||||
^Content/ts/sno.mix:
|
||||
Offset: 58192316
|
||||
Length: 7826
|
||||
^Content/ts/sounds.mix:
|
||||
Offset: 58200156
|
||||
Length: 3224136
|
||||
^Content/ts/speech01.mix:
|
||||
Offset: 61424300
|
||||
Length: 6028236
|
||||
^Content/ts/speech02.mix:
|
||||
Offset: 67452540
|
||||
Length: 5596628
|
||||
^Content/ts/tem.mix:
|
||||
Offset: 73049180
|
||||
Length: 7746
|
||||
^Content/ts/temperat.mix:
|
||||
Offset: 73056940
|
||||
Length: 2037606
|
||||
ts|installer/downloads.yaml
|
||||
ts|installer/firstdecade.yaml
|
||||
ts|installer/origin.yaml
|
||||
ts|installer/tibsun.yaml
|
||||
|
||||
Reference in New Issue
Block a user