adding in-game GUI gamefile extractor/converter

also fixing EOL for TilesetBuilder with monoDevelop
This commit is contained in:
Matthias Mailänder
2012-06-09 19:53:59 +02:00
parent ebf64f67cf
commit 4ed74c6cc0
22 changed files with 1446 additions and 1221 deletions

View File

@@ -59,30 +59,9 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="D2kLoadScreen.cs" />
<Compile Include="Render\RenderBuildingSeparateTurret.cs" />
<Compile Include="Widgets\Logic\D2kInstallFromCDLogic.cs" />
<Compile Include="Widgets\Logic\D2kInstallLogic.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
<Project>{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}</Project>
<Name>OpenRA.FileFormats</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj">
<Project>{0DFB103F-2962-400F-8C6D-E2C28CCBA633}</Project>
<Name>OpenRA.Game</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\OpenRA.Mods.RA\OpenRA.Mods.RA.csproj">
<Project>{4A8A43B5-A9EF-4ED0-99DD-4BAB10A0DB6E}</Project>
<Name>OpenRA.Mods.RA</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\OpenRA.Mods.Cnc\OpenRA.Mods.Cnc.csproj">
<Project>{2881135D-4D62-493E-8F83-5EEE92CCC6BE}</Project>
<Name>OpenRA.Mods.Cnc</Name>
<Private>False</Private>
</ProjectReference>
<Compile Include="Widgets\Logic\D2kExtractGameFilesLogic.cs" />
<Compile Include="Widgets\Logic\D2kInstallFromCDLogic.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
@@ -90,4 +69,22 @@
copy "$(TargetPath)" "$(SolutionDir)mods/d2k/"
cd "$(SolutionDir)"</PostBuildEvent>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.Utility\OpenRA.Utility.csproj">
<Project>{F33337BE-CB69-4B24-850F-07D23E408DDF}</Project>
<Name>OpenRA.Utility</Name>
</ProjectReference>
<ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj">
<Project>{0DFB103F-2962-400F-8C6D-E2C28CCBA633}</Project>
<Name>OpenRA.Game</Name>
</ProjectReference>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
<Project>{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}</Project>
<Name>OpenRA.FileFormats</Name>
</ProjectReference>
<ProjectReference Include="..\OpenRA.TilesetBuilder\OpenRA.TilesetBuilder.csproj">
<Project>{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}</Project>
<Name>OpenRA.TilesetBuilder</Name>
</ProjectReference>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.D2k", "OpenRA.Mods.D2k.csproj", "{C0B0465C-6BE2-409C-8770-3A9BF64C4344}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = OpenRA.Mods.D2k.csproj
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,48 @@
#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<TurretedInfo>, Requires<AttackBaseInfo>
{
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<int> MakeTurretFacingFunc(Actor self)
{
var turreted = self.Trait<Turreted>();
return () => turreted.turretFacing;
}
}
} */

View File

@@ -0,0 +1,488 @@
#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.IO;
using System.Linq;
using System.Threading;
using System.Diagnostics;
using OpenRA.FileFormats;
using OpenRA.FileFormats.Graphics;
using OpenRA.Widgets;
using OpenRA.Utility;
namespace OpenRA.Mods.D2k.Widgets.Logic
{
public class D2kExtractGameFilesLogic
{
Widget panel;
ProgressBarWidget progressBar;
LabelWidget statusLabel;
ButtonWidget retryButton, backButton;
Widget extractingContainer, copyFilesContainer;
[ObjectCreator.UseCtor]
public D2kExtractGameFilesLogic(Widget widget)
{
panel = widget.Get("EXTRACT_GAMEFILES_PANEL");
progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
backButton = panel.Get<ButtonWidget>("BACK_BUTTON");
backButton.OnClick = Ui.CloseWindow;
retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
retryButton.OnClick = Extract;
extractingContainer = panel.Get("EXTRACTING");
copyFilesContainer = panel.Get("COPY_FILES");
Extract();
}
void Extract()
{
backButton.IsDisabled = () => true;
retryButton.IsDisabled = () => true;
copyFilesContainer.IsVisible = () => false;
extractingContainer.IsVisible = () => true;
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 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
//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"},
// 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"},
// 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"},
// 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"},
// 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, "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")},
// "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")},
// 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")},
// 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")},
// 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")},
};
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"},
};
var onError = (Action<string>)(s => Game.RunAfterTick(() =>
{
statusLabel.GetText = () => "Error: "+s;
backButton.IsDisabled = () => false;
retryButton.IsDisabled = () => false;
}));
var t = new Thread( _ =>
{
try
{
for (int i = 0; i < ExtractGameFiles.Length; i++)
{
progressBar.Percentage = i*100/ExtractGameFiles.Count();
statusLabel.GetText = () => "Extracting...";
Utility.Command.ConvertR8ToPng(ExtractGameFiles[i]);
}
for (int i = 0; i < SHPsToCreate.Length; i++)
{
progressBar.Percentage = i*100/SHPsToCreate.Count();
statusLabel.GetText = () => "Converting...";
Utility.Command.ConvertPngToShp(SHPsToCreate[i]);
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");
File.Delete(Path.Combine(PathToImages, "BASE.tsx"));
Game.RunAfterTick(() =>
{
progressBar.Percentage = 100;
statusLabel.GetText = () => "Extraction and conversion complete.";
backButton.IsDisabled = () => false;
});
}
catch
{
onError("Installation failed");
}
}) { IsBackground = true };
t.Start();
}
}
}

View File

@@ -15,6 +15,7 @@ using System.Threading;
using OpenRA.FileFormats;
using OpenRA.FileFormats.Graphics;
using OpenRA.Widgets;
using OpenRA.Utility;
namespace OpenRA.Mods.D2k.Widgets.Logic
{
@@ -74,14 +75,16 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
insertDiskContainer.IsVisible = () => false;
installingContainer.IsVisible = () => true;
var dest = new string[] { Platform.SupportDir, "Content", "d2k" }.Aggregate(Path.Combine);
var copyFiles = new string[] { "music/ambush.aud" };
var dest = new string[] { Platform.SupportDir, "Content", "d2k", "Music" }.Aggregate(Path.Combine);
var copyFiles = new string[] { "music/ambush.aud", "music/arakatak.aud", "music/atregain.aud", "music/entordos.aud", "music/fightpwr.aud", "music/fremen.aud", "music/hark_bat.aud", "music/landsand.aud", "music/options.aud", "music/plotting.aud", "music/risehark.aud", "music/robotix.aud", "music/score.aud", "music/soldappr.aud", "music/spicesct.aud", "music/undercon.aud", "music/waitgame.aud" };
var extractPackage = "setup/setup.z";
var extractFiles = new string[] { "DATA.R8", "MOUSE.R8", "BLOXBASE.R8" };
// TODO: won't work yet:
//var extractPackage = "setup/setup.z";
//var extractFiles = new string[] { "DATA.R8", "MOUSE.R8", "BLOXBASE.R8", "BLOXBAT.R8", "BLOXBGBS.R8", "BLOXICE.R8", "BLOXTREE.R8", "BLOXWAST.R8" };
var installCounter = 0;
var installTotal = copyFiles.Count() + extractFiles.Count();
var installTotal = copyFiles.Count(); //+ extractFiles.Count();
var onProgress = (Action<string>)(s => Game.RunAfterTick(() =>
{
progressBar.Percentage = installCounter*100/installTotal;
@@ -104,13 +107,13 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
if (!InstallUtils.CopyFiles(source, copyFiles, dest, onProgress, onError))
return;
if (!InstallUtils.ExtractFromPackage(source, extractPackage, extractFiles, dest, onProgress, onError))
return;
//if (!InstallUtils.ExtractFromPackage(source, extractPackage, extractFiles, dest, onProgress, onError))
// return;
Game.RunAfterTick(() =>
{
Ui.CloseWindow();
Game.Exit();
statusLabel.GetText = () => "Music has been copied.";
backButton.IsDisabled = () => false;
});
}
catch

View File

@@ -26,9 +26,12 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
{ "installData", installData }
};
panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
panel.Get<ButtonWidget>("COPY_BUTTON").OnClick = () =>
Ui.OpenWindow("INSTALL_FROMCD_PANEL", args);
panel.Get<ButtonWidget>("EXTRACT_BUTTON").OnClick = () =>
Ui.OpenWindow("EXTRACT_GAMEFILES_PANEL", args);
panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
}
}

View File

@@ -8,7 +8,7 @@
<ProjectGuid>{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OpenRA.TilesetBuilder2</RootNamespace>
<RootNamespace>OpenRA.TilesetBuilder</RootNamespace>
<AssemblyName>OpenRA.TilesetBuilder2</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
@@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\</OutputPath>
<OutputPath>.</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -21,7 +21,7 @@ using OpenRA.GameRules;
namespace OpenRA.Utility
{
static class Command
public static class Command
{
public static void Settings(string[] args)
{

View File

@@ -19,7 +19,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Renderer.Cg", "OpenR
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Editor", "OpenRA.Editor\OpenRA.Editor.csproj", "{00038B75-405B-44F5-8691-BD2546DBE224}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.TilesetBuilder", "OpenRA.TilesetBuilder\OpenRA.TilesetBuilder.csproj", "{56B1073B-AE14-499A-BB98-43A8DE9A39CA}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.TilesetBuilder", "OpenRA.TilesetBuilder\OpenRA.TilesetBuilder.csproj", "{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RALint", "RALint\RALint.csproj", "{F9FA4D9F-2302-470A-8A07-6E37F488C124}"
EndProject
@@ -31,6 +31,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Renderer.Gl", "OpenR
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Renderer.SdlCommon", "OpenRA.Renderer.SdlCommon\OpenRA.Renderer.SdlCommon.csproj", "{52FD9F0B-B209-4ED7-8A32-AC8033363263}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.D2k", "OpenRA.Mods.D2k\OpenRA.Mods.D2k.csproj", "{C0B0465C-6BE2-409C-8770-3A9BF64C4344}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -62,14 +64,14 @@ Global
{0DFB103F-2962-400F-8C6D-E2C28CCBA633}.Release|Any CPU.ActiveCfg = Release|x86
{0DFB103F-2962-400F-8C6D-E2C28CCBA633}.Release|Mixed Platforms.ActiveCfg = Release|x86
{0DFB103F-2962-400F-8C6D-E2C28CCBA633}.Release|Mixed Platforms.Build.0 = Release|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Mixed Platforms.Build.0 = Debug|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Any CPU.Build.0 = Release|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Mixed Platforms.ActiveCfg = Release|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Mixed Platforms.Build.0 = Release|x86
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Release|Any CPU.Build.0 = Release|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -94,14 +96,6 @@ Global
{52FD9F0B-B209-4ED7-8A32-AC8033363263}.Release|Any CPU.Build.0 = Release|Any CPU
{52FD9F0B-B209-4ED7-8A32-AC8033363263}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{52FD9F0B-B209-4ED7-8A32-AC8033363263}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Release|Any CPU.Build.0 = Release|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{56B1073B-AE14-499A-BB98-43A8DE9A39CA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{67CF1A10-C5F6-48FA-B1A7-FE83BE4CE2CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67CF1A10-C5F6-48FA-B1A7-FE83BE4CE2CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67CF1A10-C5F6-48FA-B1A7-FE83BE4CE2CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -118,6 +112,14 @@ Global
{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}.Release|Any CPU.Build.0 = Release|Any CPU
{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Release|Any CPU.Build.0 = Release|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C0B0465C-6BE2-409C-8770-3A9BF64C4344}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E9C01A96-C3E2-4772-825B-A740AC513D31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9C01A96-C3E2-4772-825B-A740AC513D31}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9C01A96-C3E2-4772-825B-A740AC513D31}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -142,6 +144,14 @@ Global
{F9FA4D9F-2302-470A-8A07-6E37F488C124}.Release|Any CPU.Build.0 = Release|Any CPU
{F9FA4D9F-2302-470A-8A07-6E37F488C124}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{F9FA4D9F-2302-470A-8A07-6E37F488C124}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Debug|Mixed Platforms.Build.0 = Debug|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Any CPU.Build.0 = Release|Any CPU
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Mixed Platforms.ActiveCfg = Release|x86
{230F65CE-A6DE-4235-8B38-13A3D606C7F7}.Release|Mixed Platforms.Build.0 = Release|x86
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = OpenRA.Game\OpenRA.Game.csproj

View File

@@ -37,3 +37,5 @@
# add shroud (Dune's 32x32 tiles differ completely from RA/CnC)
# black spots on buildings should be transparent
# 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

View File

@@ -25,49 +25,49 @@ Background@INSTALL_PANEL:
Y:70
Width:PARENT_RIGHT
Height:25
Text:It requires the original Dune 2000 (and still some Red Alert game) content.
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", "Dune 2000/DATA/DATA.R8"
Text:You need to copy "Dune 2000/Data/GAMESFX" folder and "Dune 2000/DATA/*.R8" files
Align:Center
Label@DESC5:
X:0
Y:130
Width:PARENT_RIGHT
Height:25
Text:and "Dune 2000/DATA/MOUSE.R8" from your local Dune 2000 installation
Text: from your local Dune 2000 installation to ~/.openra/Content/d2k/ (Linux)
Align:Center
Label@DESC6:
X:0
Y:150
Width:PARENT_RIGHT
Height:25
Text:to ~/.openra/Content/d2k/ and run the bash script ripD2kGameFiles.sh
Text: or "My Documents/OpenRA/Content/d2k/" (Windows) and click "Extract Data".
Align:Center
Label@DESC7:
X:0
Y:170
Width:PARENT_RIGHT
Height:25
Text:to convert the content. In the future this GUI should do this
Align:Center
Label@DESC8:
X:0
Y:190
Width:PARENT_RIGHT
Height:25
Text:automatically using your Dune 2000 CD (won't work yet).
Text: Put in your Dune 2000 CD and click "Copy Music" to (optionally) download the tracks.
Align:Center
Button@INSTALL_BUTTON:
Button@EXTRACT_BUTTON:
X:PARENT_RIGHT - 280
Y:PARENT_BOTTOM - 45
Width:100
Height:25
Text:Extract Data
Font:Bold
Button@COPY_BUTTON:
X:PARENT_RIGHT - 420
Y:PARENT_BOTTOM - 45
Width:150
Width:90
Height:25
Text:Use CD (broken)
Text:Copy Music
Font:Bold
Button@QUIT_BUTTON:
X:PARENT_RIGHT - 140
@@ -89,7 +89,7 @@ Background@INSTALL_FROMCD_PANEL:
Y:20
Width:PARENT_RIGHT
Height:25
Text:Installing from CD
Text:Installing (Music) from CD
Align:Center
Font:Bold
Container@INSTALLING:
@@ -138,6 +138,71 @@ Background@INSTALL_FROMCD_PANEL:
Y:PARENT_BOTTOM - 45
Width:120
Height:25
Text:Cancel
Text:Back
Font:Bold
Key:escape
Background@EXTRACT_GAMEFILES_PANEL:
Logic:D2kExtractGameFilesLogic
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:Extracting and Converting Dune 2000 Gamefiles
Align:Center
Font:Bold
Container@EXTRACTING:
Width:PARENT_RIGHT
Height:PARENT_BOTTOM
Visible: false
Children:
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
Container@COPY_FILES:
Width:PARENT_RIGHT
Height:PARENT_BOTTOM
Visible: false
Children:
Label@INFO:
Y:50
Width:PARENT_RIGHT
Height:25
Text:Gamefiles not not found.
Align:Center
Label@INFO2:
Y:70
Width:PARENT_RIGHT
Height:25
Text:Please copy the Data/*.R8 files from your Dune 2000 installation to OpenRAs Content/d2k directory then click Retry.
Align:Center
Button@RETRY_BUTTON:
X:PARENT_RIGHT - 280
Y:PARENT_BOTTOM - 45
Width:120
Height:25
Text:Retry
Font:Bold
Key:return
Button@BACK_BUTTON:
X:PARENT_RIGHT - 140
Y:PARENT_BOTTOM - 45
Width:120
Height:25
Text:Back
Font:Bold
Key:escape

View File

@@ -92,7 +92,7 @@ Movies:
LoadScreen: D2kLoadScreen
InstallerMenuWidget: INSTALL_PANEL
TestFile: DATA.R8
TestFile: carryall.shp
ServerTraits:
LobbyCommands

0
mono Normal file
View File

View File

@@ -1,411 +0,0 @@
#!/bin/bash
R8="$HOME/.openra/Content/d2k/DATA.R8"
PAL="mods/d2k/bits/d2k.pal"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 2 "overlay"
mono OpenRA.Utility.exe --shp overlay.png 32
#mono OpenRA.Utility.exe --r8 $R8 $PAL 40 101 "shadow"
#mono OpenRA.Utility.exe --shp shadow.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 102 105 "crates"
mono OpenRA.Utility.exe --shp crates.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 107 109 "spicebloom"
mono OpenRA.Utility.exe --shp spicebloom.png 32
# stars, arrow-up
mono OpenRA.Utility.exe --r8 $R8 $PAL 114 129 "rockcrater1"
mono OpenRA.Utility.exe --shp rockcrater1.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 130 145 "rockcrater2"
mono OpenRA.Utility.exe --shp rockcrater2.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 146 161 "sandcrater1"
mono OpenRA.Utility.exe --shp sandcrater1.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 162 177 "sandcrater2"
mono OpenRA.Utility.exe --shp sandcrater2.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 206 381 "rifle" --infantry
mono OpenRA.Utility.exe --shp rifle.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 382 457 "rifledeath" --infantrydeath
mono OpenRA.Utility.exe --shp rifledeath.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 458 693 "rocket" --infantry
mono OpenRA.Utility.exe --shp rocket.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 694 929 "fremen" --infantry
mono OpenRA.Utility.exe --shp fremen.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 930 1165 "sardaukar" --infantry
mono OpenRA.Utility.exe --shp sardaukar.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1166 1221 "engineer" --infantry # death animation 1342..1401
mono OpenRA.Utility.exe --shp engineer.png 48
#rifleinfantry repetitions?
mono OpenRA.Utility.exe --r8 $R8 $PAL 1402 1502 "thumper" --infantry #death animations 1543..1602
mono OpenRA.Utility.exe --shp thumper.png 48
#rifleinfantry repetitions?
mono OpenRA.Utility.exe --r8 $R8 $PAL 1603 1634 "missile" --vehicle
mono OpenRA.Utility.exe --shp missile.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1635 1666 "trike" --vehicle
mono OpenRA.Utility.exe --shp trike.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 1667 1698 "quad" --vehicle
mono OpenRA.Utility.exe --shp quad.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 1699 1730 "harvester" --vehicle
mono OpenRA.Utility.exe --shp harvester.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1731 1762 "combata" --vehicle
mono OpenRA.Utility.exe --shp combata.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1763 1794 "siege" --vehicle
mono OpenRA.Utility.exe --shp siege.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1795 1826 "dmcv" --vehicle
mono OpenRA.Utility.exe --shp dmcv.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1827 1858 "sonic" --vehicle
mono OpenRA.Utility.exe --shp sonic.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1859 1890 "combataturret" --vehicle
mono OpenRA.Utility.exe --shp combataturret.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1891 1922 "siegeturret" --vehicle
mono OpenRA.Utility.exe --shp siegeturret.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 1923 1954 "carryall" --vehicle
mono OpenRA.Utility.exe --shp carryall.png 64
mono OpenRA.Utility.exe --r8 $R8 $PAL 1955 2050 "orni" --vehicle
mono OpenRA.Utility.exe --shp orni.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2051 2082 "combath" --vehicle
mono OpenRA.Utility.exe --shp combath.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2083 2114 "devast" --vehicle
mono OpenRA.Utility.exe --shp devast.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2115 2146 "combathturret" --vehicle
mono OpenRA.Utility.exe --shp combathturret.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2147 2148 "deathhandmissile"
mono OpenRA.Utility.exe --shp deathhandmissile.png 24
#rifleinfantry repetitions?
mono OpenRA.Utility.exe --r8 $R8 $PAL 2245 2284 "saboteur" --infantry #death animations 2325..2388
mono OpenRA.Utility.exe --shp saboteur.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2389 2420 "deviator" --vehicle
mono OpenRA.Utility.exe --shp deviator.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2421 2452 "raider" --vehicle
mono OpenRA.Utility.exe --shp raider.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 2453 2484 "combato" --vehicle
mono OpenRA.Utility.exe --shp combato.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2485 2516 "combatoturret" --vehicle
mono OpenRA.Utility.exe --shp combatoturret.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2517 2517 "frigate" --vehicle
mono OpenRA.Utility.exe --shp frigate.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2518 2520 "heavya" --building #2518 is only the gate
mono OpenRA.Utility.exe --shp heavya.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2521 2522 "radara" --building
mono OpenRA.Utility.exe --shp radara.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2523 2524 "pwra" --building
mono OpenRA.Utility.exe --shp pwra.png 64
mono OpenRA.Utility.exe --r8 $R8 $PAL 2525 2526 "barra" --building
mono OpenRA.Utility.exe --shp barra.png 80
mono OpenRA.Utility.exe --r8 $R8 $PAL 2527 2558 "wall" --wall
mono OpenRA.Utility.exe --shp wall.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 2559 2560 "conyarda" --building
mono OpenRA.Utility.exe --shp conyarda.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2561 2563 "refa" --building # 2561 is fassade, 2562 is silo top, 2563 is silo top broken
mono OpenRA.Utility.exe --shp refa.png 120
mono OpenRA.Utility.exe --r8 $R8 $PAL 2564 2565 "hightecha" --building
mono OpenRA.Utility.exe --shp hightecha.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2566 2570 "siloa" --building
mono OpenRA.Utility.exe --shp siloa.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 2571 2572 "repaira" --building
mono OpenRA.Utility.exe --shp repaira.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2573 2588 "guntower" --building
mono OpenRA.Utility.exe --shp guntower.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2589 2620 "gunturret" --building
mono OpenRA.Utility.exe --shp gunturret.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2621 2636 "rockettower" --building
mono OpenRA.Utility.exe --shp rockettower.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2637 2668 "rocketturreta" --building
mono OpenRA.Utility.exe --shp rocketturreta.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2669 2670 "researcha" --building
mono OpenRA.Utility.exe --shp researcha.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2671 2672 "starporta" --building
mono OpenRA.Utility.exe --shp starporta.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2673 2675 "lighta" --building
mono OpenRA.Utility.exe --shp lighta.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2676 2677 "palacea" --building
mono OpenRA.Utility.exe --shp palacea.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2678 2680 "heavyh" --building
mono OpenRA.Utility.exe --shp heavyh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2681 2682 "radarh" --building
mono OpenRA.Utility.exe --shp radarh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2683 2684 "pwrh" --building
mono OpenRA.Utility.exe --shp pwrh.png 64
mono OpenRA.Utility.exe --r8 $R8 $PAL 2685 2686 "barrh" --building
mono OpenRA.Utility.exe --shp barrh.png 64
# identical wall
mono OpenRA.Utility.exe --r8 $R8 $PAL 2719 2720 "conyardh" --building
mono OpenRA.Utility.exe --shp conyardh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2721 2723 "refh" --building
mono OpenRA.Utility.exe --shp refh.png 120
mono OpenRA.Utility.exe --r8 $R8 $PAL 2724 2725 "hightechh" --building
mono OpenRA.Utility.exe --shp hightechh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2726 2730 "siloh" --building
mono OpenRA.Utility.exe --shp siloh.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 2731 2732 "repairh" --building
mono OpenRA.Utility.exe --shp repairh.png 96
#identical guntower
mono OpenRA.Utility.exe --r8 $R8 $PAL 2749 2780 "gunturreth" --building
mono OpenRA.Utility.exe --shp gunturreth.png 48
#identical rockettower
mono OpenRA.Utility.exe --r8 $R8 $PAL 2797 2828 "rocketturreth" --building
mono OpenRA.Utility.exe --shp rocketturreth.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2829 2830 "researchh" --building
mono OpenRA.Utility.exe --shp researchh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2831 2832 "starporth" --building
mono OpenRA.Utility.exe --shp starporth.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2833 2835 "lighth" --building
mono OpenRA.Utility.exe --shp lighth.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2836 2837 "palaceh" --building
mono OpenRA.Utility.exe --shp palaceh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2838 2840 "heavyo" --building
mono OpenRA.Utility.exe --shp heavyo.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2841 2842 "radaro" --building
mono OpenRA.Utility.exe --shp radaro.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2843 2844 "pwro" --building
mono OpenRA.Utility.exe --shp pwro.png 64
mono OpenRA.Utility.exe --r8 $R8 $PAL 2845 2846 "barro" --building
mono OpenRA.Utility.exe --shp barro.png 64
# identical wall
mono OpenRA.Utility.exe --r8 $R8 $PAL 2879 2880 "conyardo" --building
mono OpenRA.Utility.exe --shp conyardo.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2881 2883 "refo" --building
mono OpenRA.Utility.exe --shp refo.png 120
mono OpenRA.Utility.exe --r8 $R8 $PAL 2884 2885 "hightecho" --building
mono OpenRA.Utility.exe --shp hightecho.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2886 2890 "siloo" --building
mono OpenRA.Utility.exe --shp siloo.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 2891 2892 "repairo" --building
mono OpenRA.Utility.exe --shp repairo.png 96
#identical guntower
mono OpenRA.Utility.exe --r8 $R8 $PAL 2909 2940 "gunturreto" --building
mono OpenRA.Utility.exe --shp gunturreto.png 48
#identical rockettower
mono OpenRA.Utility.exe --r8 $R8 $PAL 2957 2988 "rocketturreto" --building
mono OpenRA.Utility.exe --shp rocketturreto.png 48
mono OpenRA.Utility.exe --r8 $R8 $PAL 2989 2990 "researcho" --building
mono OpenRA.Utility.exe --shp researcho.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2991 2992 "starporto" --building
mono OpenRA.Utility.exe --shp starporto.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2993 2995 "lighto" --building
mono OpenRA.Utility.exe --shp lighto.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 2996 2997 "palaceo" --building
mono OpenRA.Utility.exe --shp palaceo.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 3549 3564 "sandwormmouth"
mono OpenRA.Utility.exe --shp sandwormmouth.png 68
mono OpenRA.Utility.exe --r8 $R8 $PAL 3565 3585 "sandwormdust"
mono OpenRA.Utility.exe --shp sandwormdust.png 68
mono OpenRA.Utility.exe --r8 $R8 $PAL 3586 3600 "wormsigns1"
mono OpenRA.Utility.exe --shp wormsigns1.png 16
mono OpenRA.Utility.exe --r8 $R8 $PAL 3601 3610 "wormsigns2"
mono OpenRA.Utility.exe --shp wormsigns2.png 16
mono OpenRA.Utility.exe --r8 $R8 $PAL 3611 3615 "wormsigns3"
mono OpenRA.Utility.exe --shp wormsigns3.png 16
mono OpenRA.Utility.exe --r8 $R8 $PAL 3616 3620 "wormsigns4"
mono OpenRA.Utility.exe --shp wormsigns4.png 16
mono OpenRA.Utility.exe --r8 $R8 $PAL 3679 3686 "sell"
mono OpenRA.Utility.exe --shp sell.png 48
#explosions and muzzle flash
mono OpenRA.Utility.exe --r8 $R8 $PAL 4011 4011 "rifleicon"
mono OpenRA.Utility.exe --shp rifleicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4012 4012 "bazookaicon"
mono OpenRA.Utility.exe --shp bazookaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4013 4013 "engineericon"
mono OpenRA.Utility.exe --shp engineericon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4014 4014 "thumpericon"
mono OpenRA.Utility.exe --shp thumpericon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4015 4015 "sadaukaricon"
mono OpenRA.Utility.exe --shp sadaukaricon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4016 4016 "trikeicon"
mono OpenRA.Utility.exe --shp trikeicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4017 4017 "raidericon"
mono OpenRA.Utility.exe --shp raidericon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4018 4018 "quadicon"
mono OpenRA.Utility.exe --shp quadicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4019 4019 "harvestericon" # = 4044
mono OpenRA.Utility.exe --shp harvestericon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4020 4020 "combataicon"
mono OpenRA.Utility.exe --shp combataicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4021 4021 "combathicon"
mono OpenRA.Utility.exe --shp combathicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4022 4022 "combatoicon"
mono OpenRA.Utility.exe --shp combatoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4023 4023 "mcvicon"
mono OpenRA.Utility.exe --shp mcvicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4024 4024 "missileicon"
mono OpenRA.Utility.exe --shp missileicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4025 4025 "deviatoricon"
mono OpenRA.Utility.exe --shp deviatoricon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4026 4026 "siegeicon"
mono OpenRA.Utility.exe --shp siegeicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4027 4027 "sonicicon"
mono OpenRA.Utility.exe --shp sonicicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4028 4028 "devasticon"
mono OpenRA.Utility.exe --shp devasticon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4029 4029 "carryallicon" # = 4030
mono OpenRA.Utility.exe --shp carryallicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4031 4031 "orniicon" # = 4062
mono OpenRA.Utility.exe --shp orniicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4032 4032 "fremenicon" # = 4033
mono OpenRA.Utility.exe --shp fremenicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4034 4034 "saboteuricon"
mono OpenRA.Utility.exe --shp saboteuricon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4035 4035 "deathhandicon"
mono OpenRA.Utility.exe --shp deathhandicon.png 60
# 4036..4045 = repetitions
mono OpenRA.Utility.exe --r8 $R8 $PAL 4046 4046 "conyardaicon" # = 4049
mono OpenRA.Utility.exe --shp conyardaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4047 4047 "conyardhicon"
mono OpenRA.Utility.exe --shp conyardhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4048 4048 "conyardoicon"
mono OpenRA.Utility.exe --shp conyardoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4050 4050 "4plateicon" # = 4051..4052
mono OpenRA.Utility.exe --shp 4plateicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4053 4053 "6plateicon" # = 4054..4055
mono OpenRA.Utility.exe --shp 6plateicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4056 4056 "pwraicon"
mono OpenRA.Utility.exe --shp pwraicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4057 4057 "pwrhicon"
mono OpenRA.Utility.exe --shp pwrhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4058 4058 "pwroicon"
mono OpenRA.Utility.exe --shp pwroicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4059 4059 "barraicon"
mono OpenRA.Utility.exe --shp barraicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4060 4060 "barrhicon"
mono OpenRA.Utility.exe --shp barrhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4061 4061 "barroicon"
mono OpenRA.Utility.exe --shp barroicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4063 4063 "wallicon" # = 4061..4062
mono OpenRA.Utility.exe --shp wallicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4066 4066 "refaicon"
mono OpenRA.Utility.exe --shp refaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4067 4067 "refhicon"
mono OpenRA.Utility.exe --shp refhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4068 4068 "refoicon"
mono OpenRA.Utility.exe --shp refoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4069 4069 "turreticon" # = 4070..4071
mono OpenRA.Utility.exe --shp turreticon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4072 4072 "radaraicon"
mono OpenRA.Utility.exe --shp radaraicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4073 4073 "radarhicon"
mono OpenRA.Utility.exe --shp radarhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4074 4074 "radaroicon"
mono OpenRA.Utility.exe --shp radaroicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4075 4075 "rturreticon" # = 4076..4077
mono OpenRA.Utility.exe --shp rturreticon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4078 4078 "hightechaicon"
mono OpenRA.Utility.exe --shp hightechaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4079 4079 "hightechhicon"
mono OpenRA.Utility.exe --shp hightechhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4080 4080 "hightechoicon"
mono OpenRA.Utility.exe --shp hightechoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4081 4081 "lightaicon"
mono OpenRA.Utility.exe --shp lightaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4082 4082 "lighthicon"
mono OpenRA.Utility.exe --shp lighthicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4083 4083 "lightoicon"
mono OpenRA.Utility.exe --shp lightoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4084 4084 "siloaicon"
mono OpenRA.Utility.exe --shp siloaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4085 4085 "silohicon"
mono OpenRA.Utility.exe --shp silohicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4086 4086 "silooicon"
mono OpenRA.Utility.exe --shp silooicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4087 4087 "heavyaicon"
mono OpenRA.Utility.exe --shp heavyaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4088 4088 "heavyhicon"
mono OpenRA.Utility.exe --shp heavyhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4089 4089 "heavyoicon"
mono OpenRA.Utility.exe --shp heavyoicon.png 60
# 4090 = orniicon
# 4091 = heavyhicon
mono OpenRA.Utility.exe --r8 $R8 $PAL 4092 4092 "starportaicon"
mono OpenRA.Utility.exe --shp starportaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4093 4093 "starporthicon"
mono OpenRA.Utility.exe --shp starporthicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4094 4094 "starportoicon"
mono OpenRA.Utility.exe --shp starportoicon.png 60
# 4095 = orniicon
mono OpenRA.Utility.exe --r8 $R8 $PAL 4096 4096 "repairaicon"
mono OpenRA.Utility.exe --shp repairaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4097 4097 "repairhicon"
mono OpenRA.Utility.exe --shp repairhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4098 4098 "repairoicon"
mono OpenRA.Utility.exe --shp repairoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4099 4099 "researchaicon"
mono OpenRA.Utility.exe --shp researchaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4100 4100 "researchhicon"
mono OpenRA.Utility.exe --shp researchhicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4101 4101 "researchoicon"
mono OpenRA.Utility.exe --shp researchoicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4102 4102 "palaceaicon"
mono OpenRA.Utility.exe --shp palaceaicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4103 4103 "palacehicon"
mono OpenRA.Utility.exe --shp palacehicon.png 60
mono OpenRA.Utility.exe --r8 $R8 $PAL 4104 4104 "palaceoicon"
mono OpenRA.Utility.exe --shp palaceoicon.png 60
# 4105 = orniicon
# 4106..4107 = radaraicon
# 4108 = conyardaicon
mono OpenRA.Utility.exe --r8 $R8 $PAL 4109 4150 "conmake" --building
mono OpenRA.Utility.exe --shp conmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4151 4174 "wtrpmake" --building
mono OpenRA.Utility.exe --shp wtrpmake.png 64
mono OpenRA.Utility.exe --r8 $R8 $PAL 4175 4194 "barramake" --building
mono OpenRA.Utility.exe --shp barramake.png 80
mono OpenRA.Utility.exe --r8 $R8 $PAL 4231 4253 "refmake" --building
mono OpenRA.Utility.exe --shp refmake.png 120
mono OpenRA.Utility.exe --r8 $R8 $PAL 4254 4273 "radarmake" --building
mono OpenRA.Utility.exe --shp radarmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4274 4294 "highmake" --building
mono OpenRA.Utility.exe --shp highmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4295 4312 "lightmake" --building
mono OpenRA.Utility.exe --shp lightmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4313 4327 "silomake" --building
mono OpenRA.Utility.exe --shp silomake.png 32
mono OpenRA.Utility.exe --r8 $R8 $PAL 4328 4346 "heavymake" --building
mono OpenRA.Utility.exe --shp heavymake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4347 4369 "starportmake" --building
mono OpenRA.Utility.exe --shp starportmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4370 4390 "repairmake" --building
mono OpenRA.Utility.exe --shp repairmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4391 4412 "researchmake" --building
mono OpenRA.Utility.exe --shp researchmake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4413 4435 "palacemake" --building
mono OpenRA.Utility.exe --shp palacemake.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4436 4449 "cranea" --building
mono OpenRA.Utility.exe --shp cranea.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4450 4463 "craneh" --building
mono OpenRA.Utility.exe --shp craneh.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4463 4477 "craneo" --building
mono OpenRA.Utility.exe --shp craneo.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4760 4819 "windtrap_anim" --building #?
mono OpenRA.Utility.exe --shp windtrap_anim.png 96
mono OpenRA.Utility.exe --r8 $R8 $PAL 4820 4840 "missile_launch"
mono OpenRA.Utility.exe --shp missile_launch.png 96
R8="$HOME/.openra/Content/d2k/MOUSE.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 264 "mouse" --transparent
mono OpenRA.Utility.exe --shp mouse.png 48
R8="$HOME/.openra/Content/d2k/BLOXBASE.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 799 "BASE" --tileset
mono OpenRA.Utility.exe --r8 $R8 $PAL 748 749 "spice0"
mono OpenRA.Utility.exe --shp spice0.png 32
mono OpenRA.TilesetBuilder.exe "BASE.png" 32 --export "Content/d2k/Tilesets"
R8="$HOME/.openra/Content/d2k/BLOXBAT.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 799 "BAT" --tileset
mono OpenRA.TilesetBuilder.exe "BAT.png" 32 --export "Content/d2k/Tilesets"
R8="$HOME/.openra/Content/d2k/BLOXBGBS.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 799 "BGBS" --tileset
mono OpenRA.TilesetBuilder.exe "BGBS.png" 32 --export "Content/d2k/Tilesets"
R8="$HOME/.openra/Content/d2k/BLOXICE.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 799 "ICE" --tileset
mono OpenRA.TilesetBuilder.exe "ICE.png" 32 --export "Content/d2k/Tilesets"
R8="$HOME/.openra/Content/d2k/BLOXTREE.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 799 "TREE" --tileset
mono OpenRA.TilesetBuilder.exe "TREE.png" 32 --export "Content/d2k/Tilesets"
R8="$HOME/.openra/Content/d2k/BLOXWAST.R8"
mono OpenRA.Utility.exe --r8 $R8 $PAL 0 799 "XWAST" --tileset
mono OpenRA.TilesetBuilder.exe "XWAST.png" 32 --export "Content/d2k/Tilesets"
mv *.shp $HOME/.openra/Content/d2k/SHPs