diff --git a/OpenRA.Game/Graphics/CursorProvider.cs b/OpenRA.Game/Graphics/CursorProvider.cs index 66cb482862..d60f706dcf 100644 --- a/OpenRA.Game/Graphics/CursorProvider.cs +++ b/OpenRA.Game/Graphics/CursorProvider.cs @@ -27,7 +27,7 @@ namespace OpenRA.Graphics var sequences = new MiniYaml(null, sequenceFiles.Select(s => MiniYaml.FromFile(s)).Aggregate(MiniYaml.MergeLiberal)); foreach (var s in sequences.NodesDict["Palettes"].Nodes) - Game.modData.Palette.AddPalette(s.Key, new Palette(FileSystem.Open(s.Value.Value), false)); + Game.modData.Palette.AddPalette(s.Key, new Palette(FileSystem.Open(s.Value.Value), true)); foreach (var s in sequences.NodesDict["Cursors"].Nodes) LoadSequencesForCursor(s.Key, s.Value); diff --git a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj index 410ccb7fa8..eb480236de 100644 --- a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj +++ b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj @@ -58,10 +58,10 @@ - + @@ -86,5 +86,12 @@ cd "$(SolutionDir)" {1A8E50CC-EE32-4E57-8842-0C39C8EA7541} OpenRA.TilesetBuilder + + {4A8A43B5-A9EF-4ED0-99DD-4BAB10A0DB6E} + OpenRA.Mods.RA + + + + \ No newline at end of file diff --git a/OpenRA.Mods.D2k/Render/RenderBuildingSeparateTurret.cs b/OpenRA.Mods.D2k/Render/RenderBuildingSeparateTurret.cs deleted file mode 100644 index 9240f27bf2..0000000000 --- a/OpenRA.Mods.D2k/Render/RenderBuildingSeparateTurret.cs +++ /dev/null @@ -1,48 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2012 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. For more information, - * see COPYING. - */ -#endregion - -/*using System; -using OpenRA.Mods.RA.Buildings; -using OpenRA.Graphics; -using OpenRA.Traits; - -namespace OpenRA.Mods.RA.Render -{ - class RenderBuildingSeparateTurretInfo : RenderBuildingInfo, Requires, Requires - { - public override object Create(ActorInitializer init) { return new RenderBuildingSeparateTurret( init, this ); } - } - - class RenderBuildingSeparateTurret : RenderBuilding - { - public RenderBuildingSeparateTurret( ActorInitializer init, RenderBuildingInfo info ) - : base(init, info, MakeTurretFacingFunc(init.self)) - { - var turretAnim = new Animation(GetImage(self), () => turreted.turretFacing ); - turretAnim.Play( "turret" ); - - for( var i = 0; i < attack.Turrets.Count; i++ ) - { - var turret = attack.Turrets[i]; - anims.Add( "turret_{0}".F(i), - new AnimationWithOffset( turretAnim, - () => Combat.GetTurretPosition( self, facing, turret ), - null)); - } - } - - static Func MakeTurretFacingFunc(Actor self) - { - var turreted = self.Trait(); - return () => turreted.turretFacing; - } - - } -} */ diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs new file mode 100644 index 0000000000..c7bb742514 --- /dev/null +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs @@ -0,0 +1,111 @@ +#region Copyright & License Information +/* + * Copyright 2007-2012 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. For more information, + * see COPYING. + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Net; +using OpenRA.FileFormats; +using OpenRA.Widgets; + +namespace OpenRA.Mods.D2k.Widgets.Logic +{ + public class D2kDownloadPackagesLogic + { + Widget panel; + Dictionary installData; + ProgressBarWidget progressBar; + LabelWidget statusLabel; + //Action afterInstall; + + [ObjectCreator.UseCtor] + public D2kDownloadPackagesLogic(Widget widget, Dictionary installData, Action afterInstall) + { + this.installData = installData; + //this.afterInstall = afterInstall; + + panel = widget.Get("INSTALL_DOWNLOAD_PANEL"); + progressBar = panel.Get("PROGRESS_BAR"); + statusLabel = panel.Get("STATUS_LABEL"); + + ShowDownloadDialog(); + } + + void ShowDownloadDialog() + { + statusLabel.GetText = () => "Initializing..."; + progressBar.SetIndeterminate(true); + var retryButton = panel.Get("RETRY_BUTTON"); + retryButton.IsVisible = () => false; + + var cancelButton = panel.Get("CANCEL_BUTTON"); + + // Save the package to a temp file + var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + var dest = new string[] { Platform.SupportDir, "Content", Game.modData.Manifest.Mods[0] }.Aggregate(Path.Combine); + + Action onDownloadProgress = i => + { + if (progressBar.Indeterminate) + progressBar.SetIndeterminate(false); + + progressBar.Percentage = i.ProgressPercentage; + statusLabel.GetText = () => "Downloading {1}/{2} kB ({0}%)".F(i.ProgressPercentage, i.BytesReceived / 1024, i.TotalBytesToReceive / 1024); + }; + + Action onExtractProgress = s => + { + Game.RunAfterTick(() => statusLabel.GetText = () => s); + }; + + Action onError = s => + { + Game.RunAfterTick(() => + { + statusLabel.GetText = () => "Error: "+s; + retryButton.IsVisible = () => true; + }); + }; + + Action onDownloadComplete = (i, cancelled) => + { + if (i.Error != null) + { + onError(Download.FormatErrorMessage(i.Error)); + return; + } + else if (cancelled) + { + onError("Download cancelled"); + return; + } + + // Automatically extract + statusLabel.GetText = () => "Extracting..."; + progressBar.SetIndeterminate(true); + if (InstallUtils.ExtractZip(file, dest, onExtractProgress, onError)) + { + Game.RunAfterTick(() => + { + Ui.CloseWindow(); + //afterInstall(); + }); + } + }; + + var dl = new Download(installData["PackageURL"], file, onDownloadProgress, onDownloadComplete); + + cancelButton.OnClick = () => { dl.Cancel(); Ui.CloseWindow(); }; + retryButton.OnClick = () => { dl.Cancel(); ShowDownloadDialog(); }; + } + } +} diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs index 9a7ba02153..7f40854a1a 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs @@ -55,387 +55,402 @@ namespace OpenRA.Mods.D2k.Widgets.Logic var PathToDataR8 = Path.Combine(Platform.SupportDir, "Content/d2k/DATA.R8"); var PathToPalette = "mods/d2k/bits/d2k.pal"; - var PathToImages = Path.Combine(Platform.SupportDir, "Content/d2k/SHPs"); + var PathToSHPs = Path.Combine(Platform.SupportDir, "Content/d2k/SHPs"); + var PathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets"); var ExtractGameFiles = new string[][] - { - new string[] {"--r8", PathToDataR8, PathToPalette, "0", "2", Path.Combine(PathToImages, "overlay")}, - //new string[] {"--r8", PathToDataR8, PathToPalette, "40", "101", Path.Combine(PathToImages, "shadow")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "102", "105", Path.Combine(PathToImages, "crates")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "107", "109", Path.Combine(PathToImages, "spicebloom")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "114", "129", Path.Combine(PathToImages, "rockcrater1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "130", "145", Path.Combine(PathToImages, "rockcrater2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "146", "161", Path.Combine(PathToImages, "sandcrater1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "162", "177", Path.Combine(PathToImages, "sandcrater2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "206", "381", Path.Combine(PathToImages, "rifle"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToImages, "rifledeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "458", "693", Path.Combine(PathToImages, "rocket"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "694", "929", Path.Combine(PathToImages, "fremen"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "930", "1165", Path.Combine(PathToImages, "sardaukar"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1166", "1221", Path.Combine(PathToImages, "engineer"), "--infantry"}, // death animation 1342..1401 - new string[] {"--r8", PathToDataR8, PathToPalette, "1402", "1502", Path.Combine(PathToImages, "thumper"), "--infantry"}, // death animations 1543..1602 - new string[] {"--r8", PathToDataR8, PathToPalette, "1603", "1634", Path.Combine(PathToImages, "missile"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1635", "1666", Path.Combine(PathToImages, "trike"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1667", "1698", Path.Combine(PathToImages, "quad"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1699", "1730", Path.Combine(PathToImages, "harvester"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1731", "1762", Path.Combine(PathToImages, "combata"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1763", "1794", Path.Combine(PathToImages, "siege"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1795", "1826", Path.Combine(PathToImages, "dmcv"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1827", "1858", Path.Combine(PathToImages, "sonic"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1859", "1890", Path.Combine(PathToImages, "combataturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1891", "1922", Path.Combine(PathToImages, "siegeturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1923", "1954", Path.Combine(PathToImages, "carryall"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1955", "2050", Path.Combine(PathToImages, "orni"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2051", "2082", Path.Combine(PathToImages, "combath"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2083", "2114", Path.Combine(PathToImages, "devast"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2115", "2146", Path.Combine(PathToImages, "combathturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2147", "2148", Path.Combine(PathToImages, "deathhandmissile")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2245", "2284", Path.Combine(PathToImages, "saboteur"), "--infantry"}, //#death animations 2325..2388 + { new string[] {"--r8", PathToDataR8, PathToPalette, "0", "2", Path.Combine(PathToSHPs, "overlay")}, + //new string[] {"--r8", PathToDataR8, PathToPalette, "40", "101", Path.Combine(PathToSHPs, "shadow")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "102", "105", Path.Combine(PathToSHPs, "crates")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "107", "109", Path.Combine(PathToSHPs, "spicebloom")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "114", "129", Path.Combine(PathToSHPs, "rockcrater1")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "130", "145", Path.Combine(PathToSHPs, "rockcrater2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "146", "161", Path.Combine(PathToSHPs, "sandcrater1")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "162", "177", Path.Combine(PathToSHPs, "sandcrater2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "206", "381", Path.Combine(PathToSHPs, "rifle"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToSHPs, "rifledeath"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "458", "693", Path.Combine(PathToSHPs, "bazooka"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "694", "929", Path.Combine(PathToSHPs, "fremen"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "930", "1165", Path.Combine(PathToSHPs, "sardaukar"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1166", "1221", Path.Combine(PathToSHPs, "engineer"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1342", "1401", Path.Combine(PathToSHPs, "engineerdeath"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1402", "1502", Path.Combine(PathToSHPs, "thumper"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1543", "1602", Path.Combine(PathToSHPs, "thumperdeath"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1603", "1634", Path.Combine(PathToSHPs, "missiletank"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1635", "1666", Path.Combine(PathToSHPs, "trike"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1667", "1698", Path.Combine(PathToSHPs, "quad"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1699", "1730", Path.Combine(PathToSHPs, "harvester"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1731", "1762", Path.Combine(PathToSHPs, "combata"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1763", "1794", Path.Combine(PathToSHPs, "siegetank"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1795", "1826", Path.Combine(PathToSHPs, "dmcv"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1827", "1858", Path.Combine(PathToSHPs, "sonictank"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1859", "1890", Path.Combine(PathToSHPs, "combataturret"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1891", "1922", Path.Combine(PathToSHPs, "siegeturret"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1923", "1954", Path.Combine(PathToSHPs, "carryall"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1955", "2050", Path.Combine(PathToSHPs, "orni"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2051", "2082", Path.Combine(PathToSHPs, "combath"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2083", "2114", Path.Combine(PathToSHPs, "devast"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2115", "2146", Path.Combine(PathToSHPs, "combathturret"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2147", "2148", Path.Combine(PathToSHPs, "deathhandmissile")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2245", "2284", Path.Combine(PathToSHPs, "saboteur"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2325", "2388", Path.Combine(PathToSHPs, "saboteurdeath"), "--infantrydeath"}, //rifleinfantry repetitions? - new string[] {"--r8", PathToDataR8, PathToPalette, "2389", "2420", Path.Combine(PathToImages, "deviator"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2421", "2452", Path.Combine(PathToImages, "raider"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2453", "2484", Path.Combine(PathToImages, "combato"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2485", "2516", Path.Combine(PathToImages, "combatoturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2517", "2517", Path.Combine(PathToImages, "frigate"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2518", "2520", Path.Combine(PathToImages, "heavya"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2521", "2522", Path.Combine(PathToImages, "radara"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2523", "2524", Path.Combine(PathToImages, "pwra"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2525", "2526", Path.Combine(PathToImages, "barra"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2527", "2558", Path.Combine(PathToImages, "wall"), "--wall"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2559", "2560", Path.Combine(PathToImages, "conyarda"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2561", "2563", Path.Combine(PathToImages, "refa"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2564", "2565", Path.Combine(PathToImages, "hightecha"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2566", "2570", Path.Combine(PathToImages, "siloa"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2571", "2572", Path.Combine(PathToImages, "repaira"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2573", "2588", Path.Combine(PathToImages, "guntower"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2589", "2620", Path.Combine(PathToImages, "gunturret"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2621", "2636", Path.Combine(PathToImages, "rockettower"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2637", "2668", Path.Combine(PathToImages, "rocketturreta"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2669", "2670", Path.Combine(PathToImages, "researcha"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2671", "2672", Path.Combine(PathToImages, "starporta"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2673", "2675", Path.Combine(PathToImages, "lighta"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2676", "2677", Path.Combine(PathToImages, "palacea"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2678", "2680", Path.Combine(PathToImages, "heavyh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2681", "2682", Path.Combine(PathToImages, "radarh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2683", "2684", Path.Combine(PathToImages, "pwrh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2685", "2686", Path.Combine(PathToImages, "barrh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2389", "2420", Path.Combine(PathToSHPs, "deviatortank"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2421", "2452", Path.Combine(PathToSHPs, "raider"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2453", "2484", Path.Combine(PathToSHPs, "combato"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2485", "2516", Path.Combine(PathToSHPs, "combatoturret"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2517", "2517", Path.Combine(PathToSHPs, "frigate"), "--vehicle"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2518", "2520", Path.Combine(PathToSHPs, "heavya"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2521", "2522", Path.Combine(PathToSHPs, "radara"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2523", "2524", Path.Combine(PathToSHPs, "pwra"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2525", "2526", Path.Combine(PathToSHPs, "barra"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2527", "2558", Path.Combine(PathToSHPs, "wall"), "--wall"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2559", "2560", Path.Combine(PathToSHPs, "conyarda"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2561", "2563", Path.Combine(PathToSHPs, "refa"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2564", "2565", Path.Combine(PathToSHPs, "hightecha"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2566", "2570", Path.Combine(PathToSHPs, "siloa"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2571", "2572", Path.Combine(PathToSHPs, "repaira"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2573", "2588", Path.Combine(PathToSHPs, "guntower"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2589", "2620", Path.Combine(PathToSHPs, "gunturret"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2621", "2636", Path.Combine(PathToSHPs, "rockettower"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2637", "2668", Path.Combine(PathToSHPs, "rocketturreta"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2669", "2670", Path.Combine(PathToSHPs, "researcha"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2671", "2672", Path.Combine(PathToSHPs, "starporta"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2673", "2675", Path.Combine(PathToSHPs, "lighta"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2676", "2677", Path.Combine(PathToSHPs, "palacea"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2678", "2680", Path.Combine(PathToSHPs, "heavyh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2681", "2682", Path.Combine(PathToSHPs, "radarh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2683", "2684", Path.Combine(PathToSHPs, "pwrh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2685", "2686", Path.Combine(PathToSHPs, "barrh"), "--building"}, // identical wall - new string[] {"--r8", PathToDataR8, PathToPalette, "2719", "2720", Path.Combine(PathToImages, "conyardh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2721", "2723", Path.Combine(PathToImages, "refh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2724", "2725", Path.Combine(PathToImages, "hightechh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2726", "2730", Path.Combine(PathToImages, "siloh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2731", "2732", Path.Combine(PathToImages, "repairh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2719", "2720", Path.Combine(PathToSHPs, "conyardh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2721", "2723", Path.Combine(PathToSHPs, "refh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2724", "2725", Path.Combine(PathToSHPs, "hightechh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2726", "2730", Path.Combine(PathToSHPs, "siloh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2731", "2732", Path.Combine(PathToSHPs, "repairh"), "--building"}, // identical guntower - new string[] {"--r8", PathToDataR8, PathToPalette, "2749", "2780", Path.Combine(PathToImages, "gunturreth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2797", "2828", Path.Combine(PathToImages, "rocketturreth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2829", "2830", Path.Combine(PathToImages, "researchh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2831", "2832", Path.Combine(PathToImages, "starporth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2833", "2835", Path.Combine(PathToImages, "lighth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2836", "2837", Path.Combine(PathToImages, "palaceh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2838", "2840", Path.Combine(PathToImages, "heavyo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2841", "2842", Path.Combine(PathToImages, "radaro"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2843", "2844", Path.Combine(PathToImages, "pwro"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2845", "2846", Path.Combine(PathToImages, "barro"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2749", "2780", Path.Combine(PathToSHPs, "gunturreth"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2797", "2828", Path.Combine(PathToSHPs, "rocketturreth"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2829", "2830", Path.Combine(PathToSHPs, "researchh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2831", "2832", Path.Combine(PathToSHPs, "starporth"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2833", "2835", Path.Combine(PathToSHPs, "lighth"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2836", "2837", Path.Combine(PathToSHPs, "palaceh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2838", "2840", Path.Combine(PathToSHPs, "heavyo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2841", "2842", Path.Combine(PathToSHPs, "radaro"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2843", "2844", Path.Combine(PathToSHPs, "pwro"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2845", "2846", Path.Combine(PathToSHPs, "barro"), "--building"}, // identical wall - new string[] {"--r8", PathToDataR8, PathToPalette, "2879", "2880", Path.Combine(PathToImages, "conyardo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2881", "2883", Path.Combine(PathToImages, "refo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2884", "2885", Path.Combine(PathToImages, "hightecho"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2886", "2890", Path.Combine(PathToImages, "siloo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2891", "2892", Path.Combine(PathToImages, "repairo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2879", "2880", Path.Combine(PathToSHPs, "conyardo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2881", "2883", Path.Combine(PathToSHPs, "refo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2884", "2885", Path.Combine(PathToSHPs, "hightecho"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2886", "2890", Path.Combine(PathToSHPs, "siloo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2891", "2892", Path.Combine(PathToSHPs, "repairo"), "--building"}, // identical guntower - new string[] {"--r8", PathToDataR8, PathToPalette, "2909", "2940", Path.Combine(PathToImages, "gunturreto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2957", "2988", Path.Combine(PathToImages, "rocketturreto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2989", "2990", Path.Combine(PathToImages, "researcho"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2991", "2992", Path.Combine(PathToImages, "starporto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2993", "2995", Path.Combine(PathToImages, "lighto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2996", "2997", Path.Combine(PathToImages, "palaceo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToImages, "sandwormmouth")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToImages, "sandwormdust")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3586", "3600", Path.Combine(PathToImages, "wormsigns1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToImages, "wormsigns2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3611", "3615", Path.Combine(PathToImages, "wormsigns3")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3616", "3620", Path.Combine(PathToImages, "wormsigns4")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2909", "2940", Path.Combine(PathToSHPs, "gunturreto"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2957", "2988", Path.Combine(PathToSHPs, "rocketturreto"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2989", "2990", Path.Combine(PathToSHPs, "researcho"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2991", "2992", Path.Combine(PathToSHPs, "starporto"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2993", "2995", Path.Combine(PathToSHPs, "lighto"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2996", "2997", Path.Combine(PathToSHPs, "palaceo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3370", "3380", Path.Combine(PathToSHPs, "unload"), "--vehicle"}, + //explosions + new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "sandwormmouth")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "sandwormdust")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3586", "3600", Path.Combine(PathToSHPs, "wormsigns1")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToSHPs, "wormsigns2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3611", "3615", Path.Combine(PathToSHPs, "wormsigns3")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3616", "3620", Path.Combine(PathToSHPs, "wormsigns4")}, //new string[] {"--r8", PathToDataR8, PathToPalette, "3679", "3686", "sell"}, //explosions and muzzle flash - new string[] {"--r8", PathToDataR8, PathToPalette, "4011", "4011", Path.Combine(PathToImages, "rifleicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4012", "4012", Path.Combine(PathToImages, "bazookaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4013", "4013", Path.Combine(PathToImages, "engineericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4014", "4014", Path.Combine(PathToImages, "thumpericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4015", "4015", Path.Combine(PathToImages, "sadaukaricon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4016", "4016", Path.Combine(PathToImages, "trikeicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4017", "4017", Path.Combine(PathToImages, "raidericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4018", "4018", Path.Combine(PathToImages, "quadicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4019", "4019", Path.Combine(PathToImages, "harvestericon")}, // == 4044 - new string[] {"--r8", PathToDataR8, PathToPalette, "4020", "4020", Path.Combine(PathToImages, "combataicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4021", "4021", Path.Combine(PathToImages, "combathicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4022", "4022", Path.Combine(PathToImages, "combatoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4023", "4023", Path.Combine(PathToImages, "mcvicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4024", "4024", Path.Combine(PathToImages, "missileicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4025", "4025", Path.Combine(PathToImages, "deviatoricon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4026", "4026", Path.Combine(PathToImages, "siegeicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4027", "4027", Path.Combine(PathToImages, "sonicicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4028", "4028", Path.Combine(PathToImages, "devasticon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4029", "4029", Path.Combine(PathToImages, "carryallicon")}, // == 4030 - new string[] {"--r8", PathToDataR8, PathToPalette, "4031", "4031", Path.Combine(PathToImages, "orniicon")}, // == 4062 - new string[] {"--r8", PathToDataR8, PathToPalette, "4032", "4032", Path.Combine(PathToImages, "fremenicon")}, // == 4033 - new string[] {"--r8", PathToDataR8, PathToPalette, "4034", "4034", Path.Combine(PathToImages, "saboteuricon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4035", "4035", Path.Combine(PathToImages, "deathhandicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4011", "4011", Path.Combine(PathToSHPs, "rifleicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4012", "4012", Path.Combine(PathToSHPs, "bazookaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4013", "4013", Path.Combine(PathToSHPs, "engineericon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4014", "4014", Path.Combine(PathToSHPs, "thumpericon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4015", "4015", Path.Combine(PathToSHPs, "sardaukaricon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4016", "4016", Path.Combine(PathToSHPs, "trikeicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4017", "4017", Path.Combine(PathToSHPs, "raidericon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4018", "4018", Path.Combine(PathToSHPs, "quadicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4019", "4019", Path.Combine(PathToSHPs, "harvestericon")}, // == 4044 + new string[] {"--r8", PathToDataR8, PathToPalette, "4020", "4020", Path.Combine(PathToSHPs, "combataicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4021", "4021", Path.Combine(PathToSHPs, "combathicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4022", "4022", Path.Combine(PathToSHPs, "combatoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4023", "4023", Path.Combine(PathToSHPs, "mcvicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4024", "4024", Path.Combine(PathToSHPs, "missiletankicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4025", "4025", Path.Combine(PathToSHPs, "deviatortankicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4026", "4026", Path.Combine(PathToSHPs, "siegetankicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4027", "4027", Path.Combine(PathToSHPs, "sonictankicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4028", "4028", Path.Combine(PathToSHPs, "devasticon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4029", "4029", Path.Combine(PathToSHPs, "carryallicon")}, // == 4030 + new string[] {"--r8", PathToDataR8, PathToPalette, "4031", "4031", Path.Combine(PathToSHPs, "orniicon")}, // == 4062 + new string[] {"--r8", PathToDataR8, PathToPalette, "4032", "4032", Path.Combine(PathToSHPs, "fremenicon")}, // == 4033 + new string[] {"--r8", PathToDataR8, PathToPalette, "4034", "4034", Path.Combine(PathToSHPs, "saboteuricon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4035", "4035", Path.Combine(PathToSHPs, "deathhandicon")}, // "4036..4045 = repetitions - new string[] {"--r8", PathToDataR8, PathToPalette, "4046", "4046", Path.Combine(PathToImages, "conyardaicon")}, // == 4049 - new string[] {"--r8", PathToDataR8, PathToPalette, "4047", "4047", Path.Combine(PathToImages, "conyardhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4048", "4048", Path.Combine(PathToImages, "conyardoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4050", "4050", Path.Combine(PathToImages, "4plateicon")}, // == 4051..4052 - new string[] {"--r8", PathToDataR8, PathToPalette, "4053", "4053", Path.Combine(PathToImages, "6plateicon")}, // == 4054..4055 - new string[] {"--r8", PathToDataR8, PathToPalette, "4056", "4056", Path.Combine(PathToImages, "pwraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4057", "4057", Path.Combine(PathToImages, "pwrhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4058", "4058", Path.Combine(PathToImages, "pwroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4059", "4059", Path.Combine(PathToImages, "barraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4060", "4060", Path.Combine(PathToImages, "barrhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4061", "4061", Path.Combine(PathToImages, "barroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4063", "4063", Path.Combine(PathToImages, "wallicon")}, // == 4061..4062 - new string[] {"--r8", PathToDataR8, PathToPalette, "4066", "4066", Path.Combine(PathToImages, "refaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4067", "4067", Path.Combine(PathToImages, "refhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4068", "4068", Path.Combine(PathToImages, "refoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4069", "4069", Path.Combine(PathToImages, "turreticon")}, // == 4070..4071 - new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToImages, "radaraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToImages, "radaraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4073", "4073", Path.Combine(PathToImages, "radarhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4074", "4074", Path.Combine(PathToImages, "radaroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4075", "4075", Path.Combine(PathToImages, "rturreticon")}, // == 4076..4077 - new string[] {"--r8", PathToDataR8, PathToPalette, "4078", "4078", Path.Combine(PathToImages, "hightechaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4079", "4079", Path.Combine(PathToImages, "hightechhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4080", "4080", Path.Combine(PathToImages, "hightechoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4081", "4081", Path.Combine(PathToImages, "lightaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4082", "4082", Path.Combine(PathToImages, "lighthicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4083", "4083", Path.Combine(PathToImages, "lightoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4084", "4084", Path.Combine(PathToImages, "siloaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4085", "4085", Path.Combine(PathToImages, "silohicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4086", "4086", Path.Combine(PathToImages, "silooicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4087", "4087", Path.Combine(PathToImages, "heavyaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4088", "4088", Path.Combine(PathToImages, "heavyhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4089", "4089", Path.Combine(PathToImages, "heavyoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4046", "4046", Path.Combine(PathToSHPs, "conyardaicon")}, // == 4049 + new string[] {"--r8", PathToDataR8, PathToPalette, "4047", "4047", Path.Combine(PathToSHPs, "conyardhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4048", "4048", Path.Combine(PathToSHPs, "conyardoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4050", "4050", Path.Combine(PathToSHPs, "4plateicon")}, // == 4051..4052 + new string[] {"--r8", PathToDataR8, PathToPalette, "4053", "4053", Path.Combine(PathToSHPs, "6plateicon")}, // == 4054..4055 + new string[] {"--r8", PathToDataR8, PathToPalette, "4056", "4056", Path.Combine(PathToSHPs, "pwraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4057", "4057", Path.Combine(PathToSHPs, "pwrhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4058", "4058", Path.Combine(PathToSHPs, "pwroicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4059", "4059", Path.Combine(PathToSHPs, "barraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4060", "4060", Path.Combine(PathToSHPs, "barrhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4061", "4061", Path.Combine(PathToSHPs, "barroicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4063", "4063", Path.Combine(PathToSHPs, "wallicon")}, // == 4061..4062 + new string[] {"--r8", PathToDataR8, PathToPalette, "4066", "4066", Path.Combine(PathToSHPs, "refaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4067", "4067", Path.Combine(PathToSHPs, "refhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4068", "4068", Path.Combine(PathToSHPs, "refoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4069", "4069", Path.Combine(PathToSHPs, "turreticon")}, // == 4070..4071 + new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToSHPs, "radaraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToSHPs, "radaraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4073", "4073", Path.Combine(PathToSHPs, "radarhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4074", "4074", Path.Combine(PathToSHPs, "radaroicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4075", "4075", Path.Combine(PathToSHPs, "rturreticon")}, // == 4076..4077 + new string[] {"--r8", PathToDataR8, PathToPalette, "4078", "4078", Path.Combine(PathToSHPs, "hightechaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4079", "4079", Path.Combine(PathToSHPs, "hightechhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4080", "4080", Path.Combine(PathToSHPs, "hightechoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4081", "4081", Path.Combine(PathToSHPs, "lightaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4082", "4082", Path.Combine(PathToSHPs, "lighthicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4083", "4083", Path.Combine(PathToSHPs, "lightoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4084", "4084", Path.Combine(PathToSHPs, "siloaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4085", "4085", Path.Combine(PathToSHPs, "silohicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4086", "4086", Path.Combine(PathToSHPs, "silooicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4087", "4087", Path.Combine(PathToSHPs, "heavyaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4088", "4088", Path.Combine(PathToSHPs, "heavyhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4089", "4089", Path.Combine(PathToSHPs, "heavyoicon")}, // 4090 == orniicon // 4091 == heavyhicon - new string[] {"--r8", PathToDataR8, PathToPalette, "4092", "4092", Path.Combine(PathToImages, "starportaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4093", "4093", Path.Combine(PathToImages, "starporthicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4094", "4094", Path.Combine(PathToImages, "starportoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4092", "4092", Path.Combine(PathToSHPs, "starportaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4093", "4093", Path.Combine(PathToSHPs, "starporthicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4094", "4094", Path.Combine(PathToSHPs, "starportoicon")}, // 4095 = orniicon - new string[] {"--r8", PathToDataR8, PathToPalette, "4096", "4096", Path.Combine(PathToImages, "repairaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4097", "4097", Path.Combine(PathToImages, "repairhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4098", "4098", Path.Combine(PathToImages, "repairoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4099", "4099", Path.Combine(PathToImages, "researchaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4100", "4100", Path.Combine(PathToImages, "researchhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4101", "4101", Path.Combine(PathToImages, "researchoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4102", "4102", Path.Combine(PathToImages, "palaceaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4103", "4103", Path.Combine(PathToImages, "palacehicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4104", "4104", Path.Combine(PathToImages, "palaceoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4096", "4096", Path.Combine(PathToSHPs, "repairaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4097", "4097", Path.Combine(PathToSHPs, "repairhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4098", "4098", Path.Combine(PathToSHPs, "repairoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4099", "4099", Path.Combine(PathToSHPs, "researchaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4100", "4100", Path.Combine(PathToSHPs, "researchhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4101", "4101", Path.Combine(PathToSHPs, "researchoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4102", "4102", Path.Combine(PathToSHPs, "palaceaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4103", "4103", Path.Combine(PathToSHPs, "palacehicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4104", "4104", Path.Combine(PathToSHPs, "palaceoicon")}, // 4105 = orniicon // 4106..4107 = radaraicon // 4108 = conyardaicon - new string[] {"--r8", PathToDataR8, PathToPalette, "4109", "4150", Path.Combine(PathToImages, "conmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4151", "4174", Path.Combine(PathToImages, "wtrpmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4175", "4194", Path.Combine(PathToImages, "barramake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4231", "4253", Path.Combine(PathToImages, "refmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4254", "4273", Path.Combine(PathToImages, "radarmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4274", "4294", Path.Combine(PathToImages, "highmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4295", "4312", Path.Combine(PathToImages, "lightmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4313", "4327", Path.Combine(PathToImages, "silomake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4328", "4346", Path.Combine(PathToImages, "heavymake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4347", "4369", Path.Combine(PathToImages, "starportmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4370", "4390", Path.Combine(PathToImages, "repairmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4391", "4412", Path.Combine(PathToImages, "researchmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4413", "4435", Path.Combine(PathToImages, "palacemake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4436", "4449", Path.Combine(PathToImages, "cranea"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4450", "4463", Path.Combine(PathToImages, "craneh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4463", "4477", Path.Combine(PathToImages, "craneo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4760", "4819", Path.Combine(PathToImages, "windtrap_anim"), "--building"}, //? - new string[] {"--r8", PathToDataR8, PathToPalette, "4820", "4840", Path.Combine(PathToImages, "missile_launch"), "--building"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/MOUSE.R8"), PathToPalette, "0", "264", Path.Combine(PathToImages, "mouse"), "--transparent"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "0", "799", Path.Combine(PathToImages, "BASE"), "--tileset"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "748", "749", Path.Combine(PathToImages, "spice0")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4109", "4150", Path.Combine(PathToSHPs, "conmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4151", "4174", Path.Combine(PathToSHPs, "wtrpmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4175", "4194", Path.Combine(PathToSHPs, "barramake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4231", "4253", Path.Combine(PathToSHPs, "refmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4254", "4273", Path.Combine(PathToSHPs, "radarmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4274", "4294", Path.Combine(PathToSHPs, "highmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4295", "4312", Path.Combine(PathToSHPs, "lightmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4313", "4327", Path.Combine(PathToSHPs, "silomake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4328", "4346", Path.Combine(PathToSHPs, "heavymake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4347", "4369", Path.Combine(PathToSHPs, "starportmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4370", "4390", Path.Combine(PathToSHPs, "repairmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4391", "4412", Path.Combine(PathToSHPs, "researchmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4413", "4435", Path.Combine(PathToSHPs, "palacemake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4436", "4449", Path.Combine(PathToSHPs, "cranea"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4450", "4463", Path.Combine(PathToSHPs, "craneh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4463", "4477", Path.Combine(PathToSHPs, "craneo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4760", "4819", Path.Combine(PathToSHPs, "windtrap_anim"), "--building"}, //? + new string[] {"--r8", PathToDataR8, PathToPalette, "4820", "4840", Path.Combine(PathToSHPs, "missile_launch"), "--building"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/MOUSE.R8"), PathToPalette, "0", "264", Path.Combine(PathToSHPs, "mouse"), "--transparent"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BASE"), "--tileset"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "748", "749", Path.Combine(PathToSHPs, "spice0")}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBAT.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BAT"), "--tileset"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBGBS.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BGBS"), "--tileset"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXICE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "ICE"), "--tileset"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXTREE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "TREE"), "--tileset"}, + new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXWAST.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "WAST"), "--tileset"}, + //new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXXMAS.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "XMAS"), "--tileset"}, }; var SHPsToCreate = new string[][] { - new string[] {"--shp", Path.Combine(PathToImages, "overlay.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "crates.png"), "32"}, - //new string[] {"--shp", Path.Combine(PathToImages, "shadow.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "spicebloom.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "rockcrater1.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "rockcrater2.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "sandcrater1.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "sandcrater2.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "rifle.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rifledeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rocket.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "fremen.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "sardaukar.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "engineer.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "thumper.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "missile.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "trike.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "quad.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "harvester.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "combata.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "siege.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "dmcv.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "sonic.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "combataturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "siegeturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "carryall.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "orni.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "combath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "devast.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "combathturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "deathhandmissile.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToImages, "saboteur.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "deviator.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "raider.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "combato.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "combatoturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "frigate.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavya.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "radara.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "pwra.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "barra.png"), "80"}, - new string[] {"--shp", Path.Combine(PathToImages, "wall.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "conyarda.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "refa.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToImages, "hightecha.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "siloa.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "repaira.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "guntower.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "gunturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rockettower.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rocketturreta.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "researcha.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "starporta.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "lighta.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "palacea.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavyh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "radarh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "pwrh.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "barrh.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "conyardh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "refh.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToImages, "hightechh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "siloh.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "repairh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "gunturreth.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rocketturreth.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "researchh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "starporth.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "lighth.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "palaceh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavyo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "radaro.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "pwro.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "barro.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "conyardo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "refo.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToImages, "hightecho.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "siloo.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "repairo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "gunturreto.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rocketturreto.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "researcho.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "starporto.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "lighto.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "palaceo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "sandwormmouth.png"), "68"}, - new string[] {"--shp", Path.Combine(PathToImages, "sandwormdust.png"), "68"}, - new string[] {"--shp", Path.Combine(PathToImages, "wormsigns1.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToImages, "wormsigns2.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToImages, "wormsigns3.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToImages, "wormsigns4.png"), "16"}, - //new string[] {"--shp", Path.Combine(PathToImages, "sell.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "rifleicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "bazookaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "engineericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "thumpericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "sadaukaricon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "trikeicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "raidericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "quadicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "harvestericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "combataicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "combathicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "combatoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "mcvicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "missileicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "deviatoricon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "siegeicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "sonicicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "devasticon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "carryallicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "orniicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "fremenicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "saboteuricon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "deathhandicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "conyardaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "conyardhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "conyardoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "4plateicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "6plateicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "pwraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "pwrhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "pwroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "barraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "barrhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "barroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "wallicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "refaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "refhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "refoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "turreticon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "radaraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "radarhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "radaroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "rturreticon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "hightechaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "hightechhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "hightechoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "lightaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "lighthicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "lightoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "siloaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "silohicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "silooicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavyaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavyhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavyoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "starportaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "starporthicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "starportoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "repairaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "repairhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "repairoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "researchaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "researchhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "researchoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "palaceaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "palacehicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "palaceoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToImages, "conmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "wtrpmake.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToImages, "barramake.png"), "80"}, - new string[] {"--shp", Path.Combine(PathToImages, "refmake.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToImages, "radarmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "highmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "lightmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "silomake.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToImages, "heavymake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "starportmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "repairmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "researchmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "palacemake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "cranea.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "craneh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "craneo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "windtrap_anim.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "missile_launch.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToImages, "mouse.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToImages, "spice0.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "overlay.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "crates.png"), "32"}, + //new string[] {"--shp", Path.Combine(PathToSHPs, "shadow.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "spicebloom.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater1.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater2.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater1.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater2.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rifle.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rifledeath.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bazooka.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "fremen.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukar.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "engineer.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "engineerdeath.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "thumper.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "thumperdeath.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "missiletank.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "trike.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "quad.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "harvester.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combata.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siegetank.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "dmcv.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sonictank.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combataturret.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siegeturret.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "carryall.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "orni.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combath.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "devast.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combathturret.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "deathhandmissile.png"), "24"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "saboteur.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "saboteurdeath.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "deviatortank.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "raider.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combato.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combatoturret.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "frigate.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavya.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radara.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "pwra.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barra.png"), "80"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wall.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyarda.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refa.png"), "120"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "hightecha.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siloa.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repaira.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntower.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "gunturret.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettower.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreta.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researcha.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starporta.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lighta.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palacea.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radarh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "pwrh.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barrh.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyardh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refh.png"), "120"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "hightechh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siloh.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repairh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreth.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreth.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researchh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starporth.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lighth.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palaceh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radaro.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "pwro.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barro.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyardo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refo.png"), "120"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "hightecho.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siloo.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repairo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreto.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreto.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researcho.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starporto.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lighto.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palaceo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unload.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sandwormmouth.png"), "68"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sandwormdust.png"), "68"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns1.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns2.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns3.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns4.png"), "16"}, + //new string[] {"--shp", Path.Combine(PathToSHPs, "sell.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rifleicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bazookaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "engineericon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "thumpericon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukaricon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "trikeicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "raidericon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "quadicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "harvestericon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combataicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combathicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "combatoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "mcvicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "missiletankicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "deviatortankicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siegetankicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sonictankicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "devasticon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "carryallicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "orniicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "fremenicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "saboteuricon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "deathhandicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyardaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyardhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyardoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "4plateicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "6plateicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "pwraicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "pwrhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "pwroicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barraicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barrhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barroicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wallicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "turreticon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radaraicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radarhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radaroicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rturreticon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "hightechaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "hightechhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "hightechoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lightaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lighthicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lightoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "siloaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "silohicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "silooicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starportaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starporthicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starportoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repairaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repairhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repairoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researchaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researchhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researchoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palaceaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palacehicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palaceoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wtrpmake.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barramake.png"), "80"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "refmake.png"), "120"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "radarmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "highmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lightmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "silomake.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavymake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starportmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "repairmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researchmake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palacemake.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "cranea.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "craneh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "craneo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "windtrap_anim.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "missile_launch.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "mouse.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "spice0.png"), "32"}, }; var onError = (Action)(s => Game.RunAfterTick(() => @@ -464,10 +479,26 @@ namespace OpenRA.Mods.D2k.Widgets.Logic File.Delete(SHPsToCreate[i][1]); } - File.Delete(Path.Combine(PathToImages, "BASE.tsx")); - File.Copy("mods/d2k/tilesets/BASE.tsx", Path.Combine(PathToImages, "BASE.tsx")); - // this is ugly: a GUI will open and close immediately after some delay - Process.Start("OpenRA.TilesetBuilder.exe", Path.Combine(PathToImages, "BASE.png")+" 32 --export Content/d2k/Tilesets"); + statusLabel.GetText = () => "Building tilesets..."; + int c = 0; + string[] TilesetArray = new string[] { "BASE", "BAT", "BGBS", "ICE", "TREE", "WAST" }; + foreach (string set in TilesetArray) + { + progressBar.Percentage = c*100/TilesetArray.Count(); + File.Delete(Path.Combine(PathToTilesets, "{0}.tsx".F(set))); + File.Copy("mods/d2k/tilesets/{0}.tsx".F(set), Path.Combine(PathToTilesets, "{0}.tsx".F(set))); + // this is ugly: a GUI will open and close immediately after some delay + Process p = new Process(); + ProcessStartInfo TilesetBuilderProcessStartInfo = new ProcessStartInfo("OpenRA.TilesetBuilder.exe", Path.Combine(PathToTilesets, "{0}.png".F(set))+" 32 --export Content/d2k/Tilesets"); + p.StartInfo = TilesetBuilderProcessStartInfo; + p.Start(); + p.WaitForExit(); + File.Delete(Path.Combine(PathToTilesets, "{0}.tsx".F(set))); + File.Delete(Path.Combine(PathToTilesets, "{0}.png".F(set))); + File.Delete(Path.Combine(PathToTilesets, "{0}.yaml".F(set.ToLower()))); + File.Delete(Path.Combine(PathToTilesets, "{0}.pal".F(set.ToLower()))); + c++; + } Game.RunAfterTick(() => { diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs index f5249c58d6..b668c5824e 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs @@ -26,6 +26,9 @@ namespace OpenRA.Mods.D2k.Widgets.Logic { "installData", installData } }; + panel.Get("DOWNLOAD_BUTTON").OnClick = () => + Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); + panel.Get("COPY_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); diff --git a/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj b/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj index 0ff8da637f..c0f251cb15 100644 --- a/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj +++ b/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj @@ -9,7 +9,7 @@ WinExe Properties OpenRA.TilesetBuilder - OpenRA.TilesetBuilder2 + OpenRA.TilesetBuilder v3.5 512 tilesetbuilder_icon copy.ico @@ -18,7 +18,7 @@ true full false - . + .. DEBUG;TRACE prompt 4 @@ -29,7 +29,7 @@ pdbonly true - bin\Release\ + .. TRACE prompt 4 diff --git a/OpenRA.TilesetBuilder/Properties/Resources.Designer.cs b/OpenRA.TilesetBuilder/Properties/Resources.Designer.cs index 572bb22039..d3640899ac 100644 --- a/OpenRA.TilesetBuilder/Properties/Resources.Designer.cs +++ b/OpenRA.TilesetBuilder/Properties/Resources.Designer.cs @@ -44,7 +44,7 @@ namespace OpenRA.TilesetBuilder.Properties { if ((resourceMan == null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRA.TilesetBuilder2.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRA.TilesetBuilder.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/OpenRA.TilesetBuilder/defaults.yaml b/OpenRA.TilesetBuilder/defaults.yaml index 392eb73d53..52dc516596 100644 --- a/OpenRA.TilesetBuilder/defaults.yaml +++ b/OpenRA.TilesetBuilder/defaults.yaml @@ -3,6 +3,10 @@ Terrain: Type: Sand AcceptSmudge: True Color: 208, 192, 160 + TerrainType@Transition: + Type: Transition + AcceptSmudge: True + Color: 207, 166, 100 TerrainType@Rock: Type: Rock AcceptSmudge: True diff --git a/OpenRA.TilesetBuilder/frmBuilder.cs b/OpenRA.TilesetBuilder/frmBuilder.cs index c5914d443e..b9d6c5eabe 100644 --- a/OpenRA.TilesetBuilder/frmBuilder.cs +++ b/OpenRA.TilesetBuilder/frmBuilder.cs @@ -246,7 +246,7 @@ namespace OpenRA.TilesetBuilder string ExportTemplate(Template t, int n, string suffix, string dir) { var TileSize = size; - var filename = Path.Combine(dir, "t{0:00}{1}".F(n, suffix)); + var filename = Path.Combine(dir, "{0}{1:00}{2}".F(txtTilesetName.Text, n, suffix)); var totalTiles = t.Width * t.Height; var ms = new MemoryStream(); @@ -391,7 +391,7 @@ namespace OpenRA.TilesetBuilder var template = new TileTemplate() { Id = cur, - Image = "t{0:00}".F(cur), + Image = "{0}{1:00}".F(txtTilesetName.Text, cur), Size = new int2(tp.Width,tp.Height), }; diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index a354dad3cc..0f89cf2ea3 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -52,6 +52,8 @@ namespace OpenRA.Utility using (var destStream = File.Create(dest)) ShpWriter.Write(destStream, width, srcImage.Height, srcImage.ToFrames(width)); + + Console.WriteLine(dest+" saved"); } static IEnumerable ToFrames(this Bitmap bitmap, int width) diff --git a/mods/d2k/TODO b/mods/d2k/TODO index 5baf50f34b..f0abe4cb87 100644 --- a/mods/d2k/TODO +++ b/mods/d2k/TODO @@ -1,30 +1,27 @@ # make structures appear earlier when errecting from ground -# harvester harvest and unload frames missing (too few DATA.R8 frames in general) +# too few DATA.R8 frames? # carryalls should automatically transport harvesters (needs complex logic) # windtrap animations missing # outpost animations missing # construction yard crane animations missing # welding animation (factories) missing # chimney animation (refinery) missing +# harvester unload and harvest animation missing # add more spice tiles and make them fit # add game logic for concrete plates (use terrain overlay from bridges/ressources) # allow placing turrets on walls -# support separate turret sequence with RenderBuildingTurreted +# RenderBuildingTurreted does not support separate turret sequence # ornithocopter should flap (might need new RenderOrni code for proper animation) # R8 converter needs infantry frame resorter -# add trooper -# add engineer -# add fremen -# add saboteur -# add deathhand missile (nuke) -# add sandworm -# add thumper which really attracts sandworms +# add grenade thrower +# add sandworm (behave like a moving anti-vehicle mine) +# add thumper which deploys and really attracts sandworms # add neutral buildings: emperor palace, fremen siech, smugglers factory +# add deathhand missile (nuke) +# maybe add ornithocopter strikes (they are currently directly contrallable units with non-reloading machine guns as in Dune II) # allow upgrades # allow different EVA voices for each faction (currently Atreides only) -# add SOUND.TS .wav file extractor to RA.Utility.exe -# convert .wav to .aud or support .wav files for Dune 2000 sounds -# add muzzles and explosions with lightning (might need engine update) +# add muzzles and explosions (currently falls back to RA) # create a shellmap (currently just a blank placeholder) # rework chrome UI, dialoges, tabs # add sonic tank weapon (currently uses tesla) @@ -32,8 +29,11 @@ # allow frigate to deliver 5 units at once to starport # starport prices should vary # reinforcements have arrived is played twice when ordering via starport -# add shroud (Dune's 32x32 tiles differ completely from RA/CnC) -# black spots on buildings should be transparent +# fix shroud, currently falls back to 24x24 shadow from RA (Dune's 32x32 tiles differ completely from RA/CnC) +# black spots on buildings should be fading team colors # gamefile extraction (setup/setup.z) from CD fails # support patch 1.06 gamefiles: DATA.R8 has more frames and currently fails to extract, also featuring new terrain with white houses and new unit: grenade thrower -# mouse cursor has no transparency and is a little pixelish \ No newline at end of file +# mouse cursor has no transparency and is a little pixelish +# infantry-only areas (Rough) do not show the dark-green mouse cursor +# put TilesetBuilder.Export into OpenRA.Utility to call the functions directly when extracting game-files (instead of opening a GUI) +# replace RA sounds by Dune 2000 ones \ No newline at end of file diff --git a/mods/d2k/bits/20MMGUN1.aud b/mods/d2k/bits/20MMGUN1.aud new file mode 100644 index 0000000000..57d89870a6 Binary files /dev/null and b/mods/d2k/bits/20MMGUN1.aud differ diff --git a/mods/d2k/bits/BAZOOK1.aud b/mods/d2k/bits/BAZOOK1.aud new file mode 100644 index 0000000000..c5f8b2d7af Binary files /dev/null and b/mods/d2k/bits/BAZOOK1.aud differ diff --git a/mods/d2k/bits/BUILD1.aud b/mods/d2k/bits/BUILD1.aud new file mode 100644 index 0000000000..1ffaf74d24 Binary files /dev/null and b/mods/d2k/bits/BUILD1.aud differ diff --git a/mods/d2k/bits/BUTTON1.aud b/mods/d2k/bits/BUTTON1.aud new file mode 100644 index 0000000000..2f757201bd Binary files /dev/null and b/mods/d2k/bits/BUTTON1.aud differ diff --git a/mods/d2k/bits/CASHTIK1.aud b/mods/d2k/bits/CASHTIK1.aud new file mode 100644 index 0000000000..2e732c5cfd Binary files /dev/null and b/mods/d2k/bits/CASHTIK1.aud differ diff --git a/mods/d2k/bits/CHAT1.aud b/mods/d2k/bits/CHAT1.aud new file mode 100644 index 0000000000..8e31a6b93a Binary files /dev/null and b/mods/d2k/bits/CHAT1.aud differ diff --git a/mods/d2k/bits/CHUNG.aud b/mods/d2k/bits/CHUNG.aud new file mode 100644 index 0000000000..6030b7a69a Binary files /dev/null and b/mods/d2k/bits/CHUNG.aud differ diff --git a/mods/d2k/bits/CRUSH1.aud b/mods/d2k/bits/CRUSH1.aud new file mode 100644 index 0000000000..de0588ca00 Binary files /dev/null and b/mods/d2k/bits/CRUSH1.aud differ diff --git a/mods/d2k/bits/ENDLIST1.aud b/mods/d2k/bits/ENDLIST1.aud new file mode 100644 index 0000000000..0975c8fa7c Binary files /dev/null and b/mods/d2k/bits/ENDLIST1.aud differ diff --git a/mods/d2k/bits/EXPLHG1.aud b/mods/d2k/bits/EXPLHG1.aud new file mode 100644 index 0000000000..b28de774ec Binary files /dev/null and b/mods/d2k/bits/EXPLHG1.aud differ diff --git a/mods/d2k/bits/EXPLHG2.aud b/mods/d2k/bits/EXPLHG2.aud new file mode 100644 index 0000000000..fc278726d8 Binary files /dev/null and b/mods/d2k/bits/EXPLHG2.aud differ diff --git a/mods/d2k/bits/EXPLLG1.aud b/mods/d2k/bits/EXPLLG1.aud new file mode 100644 index 0000000000..58d8d1f954 Binary files /dev/null and b/mods/d2k/bits/EXPLLG1.aud differ diff --git a/mods/d2k/bits/EXPLLG2.aud b/mods/d2k/bits/EXPLLG2.aud new file mode 100644 index 0000000000..40cb1b8066 Binary files /dev/null and b/mods/d2k/bits/EXPLLG2.aud differ diff --git a/mods/d2k/bits/EXPLLG3.aud b/mods/d2k/bits/EXPLLG3.aud new file mode 100644 index 0000000000..aebdfacee9 Binary files /dev/null and b/mods/d2k/bits/EXPLLG3.aud differ diff --git a/mods/d2k/bits/EXPLLG4.aud b/mods/d2k/bits/EXPLLG4.aud new file mode 100644 index 0000000000..cc7328e5a1 Binary files /dev/null and b/mods/d2k/bits/EXPLLG4.aud differ diff --git a/mods/d2k/bits/EXPLLG5.aud b/mods/d2k/bits/EXPLLG5.aud new file mode 100644 index 0000000000..c1bad5ab8e Binary files /dev/null and b/mods/d2k/bits/EXPLLG5.aud differ diff --git a/mods/d2k/bits/EXPLMD1.aud b/mods/d2k/bits/EXPLMD1.aud new file mode 100644 index 0000000000..c9277b9fc5 Binary files /dev/null and b/mods/d2k/bits/EXPLMD1.aud differ diff --git a/mods/d2k/bits/EXPLMD2.aud b/mods/d2k/bits/EXPLMD2.aud new file mode 100644 index 0000000000..e9979338d8 Binary files /dev/null and b/mods/d2k/bits/EXPLMD2.aud differ diff --git a/mods/d2k/bits/EXPLMD3.aud b/mods/d2k/bits/EXPLMD3.aud new file mode 100644 index 0000000000..4cb432716f Binary files /dev/null and b/mods/d2k/bits/EXPLMD3.aud differ diff --git a/mods/d2k/bits/EXPLMD4.aud b/mods/d2k/bits/EXPLMD4.aud new file mode 100644 index 0000000000..ccd186c233 Binary files /dev/null and b/mods/d2k/bits/EXPLMD4.aud differ diff --git a/mods/d2k/bits/EXPLSML1.aud b/mods/d2k/bits/EXPLSML1.aud new file mode 100644 index 0000000000..78a3f11e56 Binary files /dev/null and b/mods/d2k/bits/EXPLSML1.aud differ diff --git a/mods/d2k/bits/EXPLSML2.aud b/mods/d2k/bits/EXPLSML2.aud new file mode 100644 index 0000000000..75ea176efa Binary files /dev/null and b/mods/d2k/bits/EXPLSML2.aud differ diff --git a/mods/d2k/bits/EXPLSML3.aud b/mods/d2k/bits/EXPLSML3.aud new file mode 100644 index 0000000000..df274356d3 Binary files /dev/null and b/mods/d2k/bits/EXPLSML3.aud differ diff --git a/mods/d2k/bits/EXPLSML4.aud b/mods/d2k/bits/EXPLSML4.aud new file mode 100644 index 0000000000..beabf1f601 Binary files /dev/null and b/mods/d2k/bits/EXPLSML4.aud differ diff --git a/mods/d2k/bits/FLAMER1.aud b/mods/d2k/bits/FLAMER1.aud new file mode 100644 index 0000000000..ec3134780d Binary files /dev/null and b/mods/d2k/bits/FLAMER1.aud differ diff --git a/mods/d2k/bits/FREMODD1.aud b/mods/d2k/bits/FREMODD1.aud new file mode 100644 index 0000000000..46f74118a4 Binary files /dev/null and b/mods/d2k/bits/FREMODD1.aud differ diff --git a/mods/d2k/bits/KILLGUY0.aud b/mods/d2k/bits/KILLGUY0.aud new file mode 100644 index 0000000000..e7790272bd Binary files /dev/null and b/mods/d2k/bits/KILLGUY0.aud differ diff --git a/mods/d2k/bits/KILLGUY1.aud b/mods/d2k/bits/KILLGUY1.aud new file mode 100644 index 0000000000..054e44bddc Binary files /dev/null and b/mods/d2k/bits/KILLGUY1.aud differ diff --git a/mods/d2k/bits/KILLGUY2.aud b/mods/d2k/bits/KILLGUY2.aud new file mode 100644 index 0000000000..38249b97e8 Binary files /dev/null and b/mods/d2k/bits/KILLGUY2.aud differ diff --git a/mods/d2k/bits/KILLGUY3.aud b/mods/d2k/bits/KILLGUY3.aud new file mode 100644 index 0000000000..1200e0bea3 Binary files /dev/null and b/mods/d2k/bits/KILLGUY3.aud differ diff --git a/mods/d2k/bits/KILLGUY4.aud b/mods/d2k/bits/KILLGUY4.aud new file mode 100644 index 0000000000..681e875d1e Binary files /dev/null and b/mods/d2k/bits/KILLGUY4.aud differ diff --git a/mods/d2k/bits/KILLGUY5.aud b/mods/d2k/bits/KILLGUY5.aud new file mode 100644 index 0000000000..e050334c60 Binary files /dev/null and b/mods/d2k/bits/KILLGUY5.aud differ diff --git a/mods/d2k/bits/KILLGUY6.aud b/mods/d2k/bits/KILLGUY6.aud new file mode 100644 index 0000000000..482f1b1187 Binary files /dev/null and b/mods/d2k/bits/KILLGUY6.aud differ diff --git a/mods/d2k/bits/KILLGUY7.aud b/mods/d2k/bits/KILLGUY7.aud new file mode 100644 index 0000000000..6388798acf Binary files /dev/null and b/mods/d2k/bits/KILLGUY7.aud differ diff --git a/mods/d2k/bits/KILLGUY8.aud b/mods/d2k/bits/KILLGUY8.aud new file mode 100644 index 0000000000..d1701d3167 Binary files /dev/null and b/mods/d2k/bits/KILLGUY8.aud differ diff --git a/mods/d2k/bits/KILLGUY9.aud b/mods/d2k/bits/KILLGUY9.aud new file mode 100644 index 0000000000..9602d1422e Binary files /dev/null and b/mods/d2k/bits/KILLGUY9.aud differ diff --git a/mods/d2k/bits/MEDTANK1.aud b/mods/d2k/bits/MEDTANK1.aud new file mode 100644 index 0000000000..55c146696d Binary files /dev/null and b/mods/d2k/bits/MEDTANK1.aud differ diff --git a/mods/d2k/bits/MGUN2.aud b/mods/d2k/bits/MGUN2.aud new file mode 100644 index 0000000000..ad00fce3ed Binary files /dev/null and b/mods/d2k/bits/MGUN2.aud differ diff --git a/mods/d2k/bits/MISSLE1.aud b/mods/d2k/bits/MISSLE1.aud new file mode 100644 index 0000000000..4a11e0293b Binary files /dev/null and b/mods/d2k/bits/MISSLE1.aud differ diff --git a/mods/d2k/bits/MORTAR1.aud b/mods/d2k/bits/MORTAR1.aud new file mode 100644 index 0000000000..d3b7774348 Binary files /dev/null and b/mods/d2k/bits/MORTAR1.aud differ diff --git a/mods/d2k/bits/MULTI1.aud b/mods/d2k/bits/MULTI1.aud new file mode 100644 index 0000000000..3a25384361 Binary files /dev/null and b/mods/d2k/bits/MULTI1.aud differ diff --git a/mods/d2k/bits/NAPALM1.aud b/mods/d2k/bits/NAPALM1.aud new file mode 100644 index 0000000000..5f793fe847 Binary files /dev/null and b/mods/d2k/bits/NAPALM1.aud differ diff --git a/mods/d2k/bits/POWRDN1.aud b/mods/d2k/bits/POWRDN1.aud new file mode 100644 index 0000000000..36318fc765 Binary files /dev/null and b/mods/d2k/bits/POWRDN1.aud differ diff --git a/mods/d2k/bits/POWRUP1.aud b/mods/d2k/bits/POWRUP1.aud new file mode 100644 index 0000000000..1b64775b99 Binary files /dev/null and b/mods/d2k/bits/POWRUP1.aud differ diff --git a/mods/d2k/bits/RADRON1.aud b/mods/d2k/bits/RADRON1.aud new file mode 100644 index 0000000000..701c44de25 Binary files /dev/null and b/mods/d2k/bits/RADRON1.aud differ diff --git a/mods/d2k/bits/ROCKET1.aud b/mods/d2k/bits/ROCKET1.aud new file mode 100644 index 0000000000..a4accf8b29 Binary files /dev/null and b/mods/d2k/bits/ROCKET1.aud differ diff --git a/mods/d2k/bits/SCORTIK1.aud b/mods/d2k/bits/SCORTIK1.aud new file mode 100644 index 0000000000..ae63753f10 Binary files /dev/null and b/mods/d2k/bits/SCORTIK1.aud differ diff --git a/mods/d2k/bits/SIDEBAR1.aud b/mods/d2k/bits/SIDEBAR1.aud new file mode 100644 index 0000000000..fb714626bc Binary files /dev/null and b/mods/d2k/bits/SIDEBAR1.aud differ diff --git a/mods/d2k/bits/SONIC1.aud b/mods/d2k/bits/SONIC1.aud new file mode 100644 index 0000000000..89b67d216c Binary files /dev/null and b/mods/d2k/bits/SONIC1.aud differ diff --git a/mods/d2k/bits/SONIC3.aud b/mods/d2k/bits/SONIC3.aud new file mode 100644 index 0000000000..5b1e6e7664 Binary files /dev/null and b/mods/d2k/bits/SONIC3.aud differ diff --git a/mods/d2k/bits/STEALTH1.aud b/mods/d2k/bits/STEALTH1.aud new file mode 100644 index 0000000000..98d18dd3a9 Binary files /dev/null and b/mods/d2k/bits/STEALTH1.aud differ diff --git a/mods/d2k/bits/STEALTH2.aud b/mods/d2k/bits/STEALTH2.aud new file mode 100644 index 0000000000..97589fdbbd Binary files /dev/null and b/mods/d2k/bits/STEALTH2.aud differ diff --git a/mods/d2k/bits/TANKHVY1.aud b/mods/d2k/bits/TANKHVY1.aud new file mode 100644 index 0000000000..313943cd34 Binary files /dev/null and b/mods/d2k/bits/TANKHVY1.aud differ diff --git a/mods/d2k/bits/THUMPER1.aud b/mods/d2k/bits/THUMPER1.aud new file mode 100644 index 0000000000..d9dedcef74 Binary files /dev/null and b/mods/d2k/bits/THUMPER1.aud differ diff --git a/mods/d2k/bits/TURRET1.aud b/mods/d2k/bits/TURRET1.aud new file mode 100644 index 0000000000..74266f6ad0 Binary files /dev/null and b/mods/d2k/bits/TURRET1.aud differ diff --git a/mods/d2k/bits/WORM.aud b/mods/d2k/bits/WORM.aud new file mode 100644 index 0000000000..0de1541e20 Binary files /dev/null and b/mods/d2k/bits/WORM.aud differ diff --git a/mods/d2k/bits/WRMSIGN1.aud b/mods/d2k/bits/WRMSIGN1.aud new file mode 100644 index 0000000000..654ba1a7cf Binary files /dev/null and b/mods/d2k/bits/WRMSIGN1.aud differ diff --git a/mods/d2k/bits/mouse.shp b/mods/d2k/bits/mouse.shp new file mode 100644 index 0000000000..e7d9d70a35 Binary files /dev/null and b/mods/d2k/bits/mouse.shp differ diff --git a/mods/d2k/chrome/gameinit.yaml b/mods/d2k/chrome/gameinit.yaml index 554d898d27..ef8dbde39c 100644 --- a/mods/d2k/chrome/gameinit.yaml +++ b/mods/d2k/chrome/gameinit.yaml @@ -3,7 +3,7 @@ Background@INSTALL_PANEL: X:(WINDOW_RIGHT - WIDTH)/2 Y:(WINDOW_BOTTOM - HEIGHT)/2 Width:600 - Height:300 + Height:350 Children: Label@TITLE: X:0 @@ -22,35 +22,42 @@ Background@INSTALL_PANEL: Align:Center Label@DESC2: X:0 - Y:70 + Y:90 Width:PARENT_RIGHT Height:25 Text:It requires the original Dune 2000 (and still some Red Alert) game content. Align:Center - Label@DESC4: - X:0 - Y:110 - Width:PARENT_RIGHT - Height:25 - Text:You need to copy "Dune 2000/Data/GAMESFX" folder and "Dune 2000/DATA/*.R8" files - Align:Center - Label@DESC5: + Label@DESC3: X:0 Y:130 Width:PARENT_RIGHT Height:25 - Text: from your local Dune 2000 installation to ~/.openra/Content/d2k/ (Linux) + Text:The easiest way is to simply click download to get already prepared files and restart. + Align:Center + Label@DESC4: + X:0 + Y:170 + Width:PARENT_RIGHT + Height:25 + Text:You can also copy "Dune 2000/Data/GAMESFX" folder and "Dune 2000/DATA/*.R8" files + Align:Center + Label@DESC5: + X:0 + Y:190 + Width:PARENT_RIGHT + Height:25 + Text: from your local Dune 2000 1.03 installation to ~/.openra/Content/d2k/ (Linux) Align:Center Label@DESC6: X:0 - Y:150 + Y:210 Width:PARENT_RIGHT Height:25 Text: or "My Documents/OpenRA/Content/d2k/" (Windows) and click "Extract Data". Align:Center Label@DESC7: X:0 - Y:190 + Y:250 Width:PARENT_RIGHT Height:25 Text: Put in your Dune 2000 CD and click "Copy Music" to (optionally) download the tracks. @@ -69,6 +76,13 @@ Background@INSTALL_PANEL: Height:25 Text:Copy Music Font:Bold + Button@DOWNLOAD_BUTTON: + X:PARENT_RIGHT - 560 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Download + Font:Bold Button@QUIT_BUTTON: X:PARENT_RIGHT - 140 Y:PARENT_BOTTOM - 45 @@ -77,6 +91,50 @@ Background@INSTALL_PANEL: Text:Quit Font:Bold +Background@INSTALL_DOWNLOAD_PANEL: + Logic:D2kDownloadPackagesLogic + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:500 + Height:160 + Children: + Label@TITLE: + X:0 + Y:20 + Width:PARENT_RIGHT + Height:25 + Text:Downloading Dune 2000 Content + Align:Center + Font:Bold + ProgressBar@PROGRESS_BAR: + X:50 + Y:55 + Width:PARENT_RIGHT - 100 + Height:25 + Label@STATUS_LABEL: + X:50 + Y:80 + Width:PARENT_RIGHT - 100 + Height:25 + Align:Left + Button@RETRY_BUTTON: + X:PARENT_RIGHT - 280 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Visible: false + Text:Retry + Font:Bold + Key:return + Button@CANCEL_BUTTON: + X:PARENT_RIGHT - 140 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Cancel + Font:Bold + Key:escape + Background@INSTALL_FROMCD_PANEL: Logic:D2kInstallFromCDLogic X:(WINDOW_RIGHT - WIDTH)/2 diff --git a/mods/d2k/chrome/lobby.yaml b/mods/d2k/chrome/lobby.yaml index d28680a9ee..95a5d3c7df 100644 --- a/mods/d2k/chrome/lobby.yaml +++ b/mods/d2k/chrome/lobby.yaml @@ -417,10 +417,10 @@ Background@COLOR_CHOOSER: Height:25 Text:Random Font:Bold - ShpImage@FACT: + ShpImage@CARRYALL: X:220 Y:10 - Image:fact + Image:carryall Palette:colorpicker Label@HUE_LABEL: X:0 diff --git a/mods/d2k/cursors.yaml b/mods/d2k/cursors.yaml index 81225c9004..35fdd6a91b 100644 --- a/mods/d2k/cursors.yaml +++ b/mods/d2k/cursors.yaml @@ -1,8 +1,9 @@ Palettes: - cursor: d2k.pal + cursor: cursor.pal + mouse: d2k.pal Cursors: - mouse: cursor + mouse: mouse scroll-t: start:112 x: 12 @@ -148,12 +149,12 @@ Cursors: start:104 c4: start:252 - length: 8 + length: 4 x: 12 y: 12 c4-minimap: start:252 - length: 8 + length: 4 x: 12 y: 12 guard: @@ -224,6 +225,16 @@ Cursors: length: 1 x: 12 y: 12 + goldwrench: + start:88 + length: 8 + x: 12 + y: 12 + goldwrench-blocked: + start:64 + length: 1 + x: 12 + y: 12 nopower: cursor powerdown-blocked: diff --git a/mods/d2k/maps/The Duell.oramap b/mods/d2k/maps/The Duell.oramap new file mode 100644 index 0000000000..eb69e93e6c Binary files /dev/null and b/mods/d2k/maps/The Duell.oramap differ diff --git a/mods/d2k/maps/blank.oramap b/mods/d2k/maps/blank.oramap index 00f4f2c9cd..ce8323f24f 100644 Binary files a/mods/d2k/maps/blank.oramap and b/mods/d2k/maps/blank.oramap differ diff --git a/mods/d2k/maps/test.oramap b/mods/d2k/maps/test.oramap index d48b2868a3..36d4aa47b6 100644 Binary files a/mods/d2k/maps/test.oramap and b/mods/d2k/maps/test.oramap differ diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml index 7bcdb907af..d4b5cbbcbe 100644 --- a/mods/d2k/mod.yaml +++ b/mods/d2k/mod.yaml @@ -81,7 +81,7 @@ Voices: mods/d2k/voices.yaml TileSets: - mods/d2k/tilesets/base.yaml + mods/d2k/tilesets/arrakis.yaml TileSize: 32 @@ -93,6 +93,7 @@ Movies: LoadScreen: D2kLoadScreen InstallerMenuWidget: INSTALL_PANEL TestFile: carryall.shp + PackageURL: http://open-ra.org/get-dependency.php?file=d2k-packages ServerTraits: LobbyCommands diff --git a/mods/d2k/rules/aircraft.yaml b/mods/d2k/rules/aircraft.yaml index cefba14f27..c7c40c1548 100644 --- a/mods/d2k/rules/aircraft.yaml +++ b/mods/d2k/rules/aircraft.yaml @@ -20,8 +20,8 @@ CARRYALL: Helicopter: InitialFacing: 0 ROT: 5 - Speed: 15 - LandableTerrainTypes: Sand, Rock, Spice, Dune + Speed: 20 + LandableTerrainTypes: Sand, Rock, Transition, Spice, Dune RepairBuildings: repaira,repairo,repairh RearmBuildings: hightecha RenderUnit: diff --git a/mods/d2k/rules/atreides.yaml b/mods/d2k/rules/atreides.yaml index c3d3a691c7..4b670ac1ef 100644 --- a/mods/d2k/rules/atreides.yaml +++ b/mods/d2k/rules/atreides.yaml @@ -99,7 +99,7 @@ MCVA: Facing: 10 IntoActor: conyarda Offset:-1,-1 - TransformSounds: + TransformSounds: BUILD1.aud NoTransformSounds: AI_DPLOY.AUD RenderUnit: Image: DMCV @@ -110,7 +110,7 @@ COMBATA: Prerequisites: heavya Owner: atreides -SONIC: +SONICTANK: Inherits: ^Vehicle Buildable: Queue: Vehicle @@ -136,4 +136,40 @@ SONIC: AttackFrontal: PrimaryWeapon: TTankZap PrimaryOffset: 0,0,0,-5 - AutoTarget: \ No newline at end of file + AutoTarget: + +FREMEN: + Inherits: ^Infantry + Valued: + Cost: 800 + Tooltip: + Name: Fremen + Description: Elite sniper infantry unit.\n Strong vs Infantry\n Weak vs Vehicles\n Special Ability: Invisible + Buildable: + Queue: Infantry + BuildPaletteOrder: 50 + Owner: atreides + Prerequisites: palacea + Selectable: + Bounds: 12,17,0,-6 +# Voice: CommandoVoice + Mobile: + Speed: 5 + Health: + HP: 200 + Passenger: + PipType: Red + RevealsShroud: + Range: 6 + AutoTarget: + ScanRadius: 5 + AttackFrontal: + PrimaryWeapon: Sniper + RenderInfantryProne: + -RenderInfantry: + TakeCover: + Cloak: + InitialDelay: 125 + CloakDelay: 125 + CloakSound: + UncloakSound: \ No newline at end of file diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index b2b510cc84..98f92e7b64 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -1,10 +1,11 @@ ^Vehicle: AppearsOnRadar: Mobile: - Crushes: crate + Crushes: crate, worm TerrainSpeeds: Sand: 80 Rock: 90 + Transition: 85 Concrete: 100 Spice: 70 SpiceBlobs: 70 @@ -34,10 +35,11 @@ ^Tank: AppearsOnRadar: Mobile: - Crushes: crate + Crushes: crate, worm TerrainSpeeds: Sand: 80 Rock: 90 + Transition: 85 Concrete: 100 Spice: 70 SpiceBlobs: 70 @@ -78,6 +80,7 @@ TerrainSpeeds: Sand: 80 Rock: 90 + Transition: 85 Concrete: 100 Spice: 70 SpiceBlobs: 70 diff --git a/mods/d2k/rules/harkonnen.yaml b/mods/d2k/rules/harkonnen.yaml index 95fecaaeb8..ac276902ce 100644 --- a/mods/d2k/rules/harkonnen.yaml +++ b/mods/d2k/rules/harkonnen.yaml @@ -143,4 +143,35 @@ DEVAST: EmptyWeapon: UnitExplodeSmall LeavesHusk: Selectable: - Bounds: 44,38,0,-4 \ No newline at end of file + Bounds: 44,38,0,-4 + +SARDAUKAR: + Inherits: ^Infantry + Buildable: + Queue: Infantry + BuildPaletteOrder: 110 + Prerequisites: palaceh + Owner: harkonnen + Valued: + Cost: 800 + Tooltip: + Name: Sardaukar + Description: Heavy infantry. + Selectable: +# Voice: TanyaVoice + Bounds: 12,17,0,-9 + Health: + HP: 150 + Mobile: + Speed: 5 + RevealsShroud: + Range: 6 + Passenger: + PipType: Red + TakeCover: + -RenderInfantry: + RenderInfantryProne: + AttackFrontal: + PrimaryWeapon: Vulcan + SecondaryWeapon: Dragon + PrimaryOffset: 0,0,0,-13 \ No newline at end of file diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml index 1ff67fed85..0e0f1955b3 100644 --- a/mods/d2k/rules/infantry.yaml +++ b/mods/d2k/rules/infantry.yaml @@ -7,7 +7,7 @@ RIFLE: Valued: Cost: 100 Tooltip: - Name: Rifle Infantry + Name: Rifleman Description: General-purpose infantry.\n Strong vs Infantry\n Weak vs Vehicles Selectable: Bounds: 12,17,0,0 @@ -19,4 +19,56 @@ RIFLE: PrimaryWeapon: M1Carbine TakeCover: -RenderInfantry: + RenderInfantryProne: + +ENGINEER: + Inherits: ^Infantry + Buildable: + Queue: Infantry + BuildPaletteOrder: 50 + Owner: atreides,harkonnen,ordos + Valued: + Cost: 500 + Tooltip: + Name: Engineer + Description: Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything + Selectable: +# Voice: EngineerVoice + Bounds: 12,17,0,-9 + Health: + HP: 25 + Mobile: + Speed: 4 + Passenger: + PipType: Yellow + EngineerRepair: + Captures: + TakeCover: + -AutoTarget: + AttackMove: + JustMove: true + +BAZOOKA: + Inherits: ^Infantry + Buildable: + Queue: Infantry + BuildPaletteOrder: 20 + Owner: atreides,harkonnen,ordos + Valued: + Cost: 300 + Tooltip: + Name: Trooper + Description: Anti-tank/Anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry + Selectable: + Bounds: 12,17,0,-9 + Health: + HP: 45 + Mobile: + Speed: 3 + AttackFrontal: + PrimaryWeapon: RedEye + SecondaryWeapon: Dragon + PrimaryOffset: 0,0,0,-13 + TakeCover: + -RenderInfantry: RenderInfantryProne: \ No newline at end of file diff --git a/mods/d2k/rules/ordos.yaml b/mods/d2k/rules/ordos.yaml index 84ae6604e3..a305f4bc63 100644 --- a/mods/d2k/rules/ordos.yaml +++ b/mods/d2k/rules/ordos.yaml @@ -141,7 +141,7 @@ RAIDER: SecondaryOffset: 0,0,0,-4 AutoTarget: -DEVIATOR: +DEVIATORTANK: Inherits: ^Tank Valued: Cost: 800 @@ -166,4 +166,36 @@ DEVIATOR: PrimaryWeapon: MammothTusk PrimaryLocalOffset: -7,2,0,0,25, 7,2,0,0,-25 PrimaryRecoil: 1 - AutoTarget: \ No newline at end of file + AutoTarget: + +SABOTEUR: + Inherits: ^Infantry + Buildable: + Queue: Infantry + BuildPaletteOrder: 110 + Prerequisites: palaceo + Owner: ordos + Valued: + Cost: 800 + Tooltip: + Name: Saboteur + Description: Sneaky infantry, armed with explosives.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: destroy buildings + Selectable: +# Voice: TanyaVoice + Bounds: 12,17,0,-9 + Health: + HP: 100 + Mobile: + Speed: 5 + RevealsShroud: + Range: 6 + C4Demolition: + C4Delay: 45 + Passenger: + PipType: Red + TakeCover: + -RenderInfantry: + RenderInfantryProne: + -AutoTarget: + AttackMove: + JustMove: true \ No newline at end of file diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index eb87a5a3b5..917399c021 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -374,7 +374,7 @@ WALL: Footprint: x BuildSounds: Adjacent: 7 - TerrainTypes: Clear,Road + TerrainTypes: Rock Health: HP: 500 Armor: @@ -423,7 +423,6 @@ GUNTOWER: RenderRangeCircle: -RenderBuilding: RenderBuildingTurreted: - Palette: d2k Turreted: ROT: 12 InitialFacing: 50 diff --git a/mods/d2k/rules/system.yaml b/mods/d2k/rules/system.yaml index bf2bff1e08..6c57bc451c 100644 --- a/mods/d2k/rules/system.yaml +++ b/mods/d2k/rules/system.yaml @@ -86,6 +86,8 @@ Player: powrh: 35% powro: 35% UnitsToBuild: + rifle: 30% + bazooka: 30% trike: 30% raider: 30% quad: 40% @@ -116,6 +118,7 @@ World: Maximum: 3 SpawnInterval: 120 WaterChance: 0 + ValidGround: Sand, Dune, Rock PaletteFromCurrentTileset: Name: terrain PaletteFromFile@d2k: @@ -172,6 +175,8 @@ World: Name: Ordos Race: ordos # BibLayer: +# BibTypes: bib2x2,bib3x2,bib3x3 +# BibWidths: 2,3,3 ResourceLayer: ResourceType@spice: ResourceType: 1 @@ -201,11 +206,11 @@ World: Faction: ordos #TODO: These are just the Atreides sounds. EvaAlerts: - RadarUp: - RadarDown: + RadarUp: POWRUP1.aud + RadarDown: POWRDN1.aud BuildingCannotPlaceAudio: AI_PLACE.AUD - CashTickUp: - CashTickDown: + CashTickUp: CASHTIK1.aud + CashTickDown:CASHTIK1.aud NewOptions: AI_NEWOP.AUD LowPower: AI_POWER.AUD SilosNeeded: AI_SILOS.AUD @@ -268,7 +273,6 @@ waypoint: SPICEBLOOM: RenderBuilding: - Palette: d2k Building: Footprint: x Dimensions: 1,1 @@ -283,4 +287,29 @@ SPICEBLOOM: SeedsResource: ResourceType: Spice RadarColorFromTerrain: - Terrain: Spice \ No newline at end of file + Terrain: Spice + +SANDWORM: + Inherits: ^Infantry + Buildable: + Owner: Creep + Valued: + Cost: 1000 + Tooltip: + Name: Sandworm + Description: Attracted by vibrations in the sand. Will eat units whole and has a large appetite. + Icon: sandwormdust + Health: + HP: 10000 + Mobile: + Speed: 5 + TerrainSpeeds: + Sand: 100 + Dune: 100 + AutoTarget: + AttackWander: + AttackLeap: + PrimaryWeapon: WormJaw + CanAttackGround: no + RenderInfantry: + BelowUnits: \ No newline at end of file diff --git a/mods/d2k/rules/vehicles.yaml b/mods/d2k/rules/vehicles.yaml index cce820b026..a3201d69b1 100644 --- a/mods/d2k/rules/vehicles.yaml +++ b/mods/d2k/rules/vehicles.yaml @@ -146,7 +146,7 @@ QUAD: Selectable: Bounds: 30,30 -SIEGE: +SIEGETANK: Inherits: ^Tank Buildable: Queue: Vehicle @@ -179,7 +179,7 @@ SIEGE: Chance: 75 AutoTarget: -MISSILE: +MISSILETANK: Inherits: ^Tank Valued: Cost: 800 diff --git a/mods/d2k/sequences.yaml b/mods/d2k/sequences.yaml index 7849bb732a..7b9f28e32e 100644 --- a/mods/d2k/sequences.yaml +++ b/mods/d2k/sequences.yaml @@ -55,9 +55,7 @@ quad: Start: 0 Facings: 32 - - -siege: +siegetank: idle: Start: 0 Facings: 32 @@ -65,12 +63,12 @@ siege: Start: 0 Facings: 32 -missile: +missiletank: idle: Start: 0 Facings: 32 -sonic: +sonictank: idle: Start: 0 Facings: 32 @@ -149,6 +147,202 @@ rifle: die5: rifledeath Start: 26 Length: 7 + die6: rifledeath + Start: 26 + Length: 7 + die-crushed: rifledeath + Start: 54 + Length: 22 + Tick: 1600 + +bazooka: + stand: + Start: 0 + Facings: 8 + stand2: + Start: 0 + Facings: 8 + stand3: + Start: 0 + Facings: 8 + run: + Start: 8 + Length: 6 + Facings: 8 + shoot: + Start: 56 + Length: 5 + Facings: 8 + prone-stand: + Start: 104 + Length: 1 + Facings: 8 + prone-run: + Start: 112 + Length: 3 + Facings: 8 + standup-0: + Start: 96 + Length: 1 + Facings: 8 + prone-shoot: + Start: 136 + Length: 5 + Facings: 8 + die1: rifledeath + Start: 0 + Length: 5 + die2: rifledeath + Start: 5 + Length: 7 + die3: rifledeath + Start: 12 + Length: 7 + die4: rifledeath + Start: 19 + Length: 7 + die5: rifledeath + Start: 26 + Length: 7 + die6: rifledeath + Start: 26 + Length: 7 + die-crushed: rifledeath + Start: 54 + Length: 22 + Tick: 1600 + +engineer: + stand: + Start: 0 + Facings: 8 + stand2: + Start: 0 + Facings: 8 + run: + Start: 8 + Length: 6 + Facings: 8 + die1: rifledeath + Start: 0 + Length: 5 + die2: rifledeath + Start: 5 + Length: 7 + die3: rifledeath + Start: 12 + Length: 7 + die4: rifledeath + Start: 19 + Length: 7 + die5: rifledeath + Start: 26 + Length: 7 + die6: rifledeath + Start: 26 + Length: 7 + die-crushed: rifledeath + Start: 54 + Length: 22 + Tick: 1600 + +fremen: + stand: + Start: 0 + Facings: 8 + stand2: + Start: 0 + Facings: 8 + run: + Start: 8 + Length: 6 + Facings: 8 + die1: rifledeath + Start: 0 + Length: 5 + die2: rifledeath + Start: 5 + Length: 7 + die3: rifledeath + Start: 12 + Length: 7 + die4: rifledeath + Start: 19 + Length: 7 + die5: rifledeath + Start: 26 + Length: 7 + die6: rifledeath + Start: 26 + Length: 7 + die-crushed: rifledeath + Start: 54 + Length: 22 + Tick: 1600 + +saboteur: + stand: + Start: 0 + Facings: 8 + stand2: + Start: 0 + Facings: 8 + run: + Start: 8 + Length: 4 + Facings: 8 + die1: rifledeath + Start: 0 + Length: 5 + die2: rifledeath + Start: 5 + Length: 7 + die3: rifledeath + Start: 12 + Length: 7 + die4: rifledeath + Start: 19 + Length: 7 + die5: rifledeath + Start: 26 + Length: 7 + die6: rifledeath + Start: 26 + Length: 7 + die-crushed: rifledeath + Start: 54 + Length: 22 + Tick: 1600 + +sardaukar: + stand: + Start: 0 + Facings: 8 + stand2: + Start: 0 + Facings: 8 + run: + Start: 8 + Length: 4 + Facings: 8 + die1: rifledeath + Start: 0 + Length: 5 + die2: rifledeath + Start: 5 + Length: 7 + die3: rifledeath + Start: 12 + Length: 7 + die4: rifledeath + Start: 19 + Length: 7 + die5: rifledeath + Start: 26 + Length: 7 + die6: rifledeath + Start: 26 + Length: 7 die-crushed: rifledeath Start: 54 Length: 22 @@ -662,7 +856,7 @@ raider: Start: 0 Facings: 32 -deviator: +deviatortank: idle: Start: 0 Facings: 32 @@ -882,6 +1076,10 @@ parach: Start: 5 Length: 11 +missile: + idle: + Start: 0 + Facings: 32 spicebloom: make: @@ -891,4 +1089,40 @@ spicebloom: Start: 2 Length: 1 idle: - Start: 2 \ No newline at end of file + Start: 2 + +sandworm: + stand: wormsigns2 + Start: 0 + Length: * + Tick: 150 + run: sandwormdust + Start: 0 + Facings: 4 + Length: 5 + Tick: 150 + die1: sandwormdust + Start: 0 + Length: 1 + die2: sandwormdust + Start: 0 + Length: 1 + die3: sandwormdust + Start: 0 + Length: 1 + die4: sandwormdust + Start: 0 + Length: 1 + die5: sandwormdust + Start: 0 + Length: 1 + die6: sandwormdust + Start: 0 + Length: 1 + die-crushed: sandwormdust + Start: 0 + Length: 1 + Tick: 1600 + wormattack: sandwormmouth + Start: 0 + Length: 15 \ No newline at end of file diff --git a/mods/d2k/tilesets/BASE.tsx b/mods/d2k/tilesets/BASE.tsx index d98790f9e0..65c0cfd19e 100644 --- a/mods/d2k/tilesets/BASE.tsx +++ b/mods/d2k/tilesets/BASE.tsx @@ -1,636 +1,686 @@  - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -984,18 +1034,6 @@ - - @@ -1179,23 +1217,6 @@ - - - @@ -1627,20 +1642,6 @@ - + + + + + + + + + + + + + \ No newline at end of file diff --git a/mods/d2k/tilesets/BAT.tsx b/mods/d2k/tilesets/BAT.tsx index 094b08bf14..d52b07fda1 100644 --- a/mods/d2k/tilesets/BAT.tsx +++ b/mods/d2k/tilesets/BAT.tsx @@ -1,581 +1,110 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -589,375 +118,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -