add support for compressed packages (zip); strip unnecessary SharpZipLib dll. req reference to WindowsBase for System.IO.Packaging support (apparently Mono has it)
This commit is contained in:
40
OpenRA.FileFormats/CompressedPackage.cs
Normal file
40
OpenRA.FileFormats/CompressedPackage.cs
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2010 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 LICENSE.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.IO.Packaging;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace OpenRA.FileFormats
|
||||||
|
{
|
||||||
|
public class CompressedPackage : IFolder
|
||||||
|
{
|
||||||
|
readonly uint[] hashes;
|
||||||
|
readonly Stream s;
|
||||||
|
readonly ZipPackage pkg;
|
||||||
|
|
||||||
|
public CompressedPackage(string filename)
|
||||||
|
{
|
||||||
|
s = FileSystem.Open(filename);
|
||||||
|
pkg = (ZipPackage)ZipPackage.Open(s, FileMode.Open);
|
||||||
|
hashes = pkg.GetParts()
|
||||||
|
.Select(p => PackageEntry.HashFilename(p.Uri.LocalPath)).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Stream GetContent(string filename)
|
||||||
|
{
|
||||||
|
return pkg.GetPart(new Uri(filename)).GetStream(FileMode.Open);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<uint> AllFileHashes() { return hashes; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -50,6 +50,9 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\thirdparty\Tao\Tao.Sdl.dll</HintPath>
|
<HintPath>..\thirdparty\Tao\Tao.Sdl.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="WindowsBase">
|
||||||
|
<RequiredTargetFramework>3.0</RequiredTargetFramework>
|
||||||
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Evaluator.cs" />
|
<Compile Include="Evaluator.cs" />
|
||||||
@@ -69,8 +72,6 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Thirdparty\Random.cs" />
|
<Compile Include="Thirdparty\Random.cs" />
|
||||||
<Compile Include="Session.cs" />
|
<Compile Include="Session.cs" />
|
||||||
<Compile Include="ShroudPaletteRemap.cs" />
|
|
||||||
<Compile Include="SingleColorRemap.cs" />
|
|
||||||
<Compile Include="Support\Log.cs" />
|
<Compile Include="Support\Log.cs" />
|
||||||
<Compile Include="Support\Stopwatch.cs" />
|
<Compile Include="Support\Stopwatch.cs" />
|
||||||
<Compile Include="Support\Timer.cs" />
|
<Compile Include="Support\Timer.cs" />
|
||||||
@@ -99,6 +100,7 @@
|
|||||||
<Compile Include="Map\MapStub.cs" />
|
<Compile Include="Map\MapStub.cs" />
|
||||||
<Compile Include="Map\SmudgeReference.cs" />
|
<Compile Include="Map\SmudgeReference.cs" />
|
||||||
<Compile Include="Map\PlayerReference.cs" />
|
<Compile Include="Map\PlayerReference.cs" />
|
||||||
|
<Compile Include="CompressedPackage.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ using System.Linq;
|
|||||||
|
|
||||||
namespace OpenRA.FileFormats
|
namespace OpenRA.FileFormats
|
||||||
{
|
{
|
||||||
|
// TODO: ship this out of here.
|
||||||
|
|
||||||
public class PlayerColorRemap : IPaletteRemap
|
public class PlayerColorRemap : IPaletteRemap
|
||||||
{
|
{
|
||||||
Dictionary<int, Color> remapColors;
|
Dictionary<int, Color> remapColors;
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2010 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 LICENSE.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System.Drawing;
|
|
||||||
|
|
||||||
namespace OpenRA.FileFormats
|
|
||||||
{
|
|
||||||
public class ShroudPaletteRemap : IPaletteRemap
|
|
||||||
{
|
|
||||||
bool isFog;
|
|
||||||
|
|
||||||
public ShroudPaletteRemap(bool isFog) { this.isFog = isFog; }
|
|
||||||
public Color GetRemappedColor(Color original, int index)
|
|
||||||
{
|
|
||||||
if (isFog)
|
|
||||||
return new[] {
|
|
||||||
Color.Transparent, Color.Green,
|
|
||||||
Color.Blue, Color.Yellow,
|
|
||||||
Color.FromArgb(128,0,0,0),
|
|
||||||
Color.FromArgb(128,0,0,0),
|
|
||||||
Color.FromArgb(128,0,0,0),
|
|
||||||
Color.FromArgb(64,0,0,0)}[index % 8];
|
|
||||||
else
|
|
||||||
return new[] {
|
|
||||||
Color.Transparent, Color.Green,
|
|
||||||
Color.Blue, Color.Yellow,
|
|
||||||
Color.Black,
|
|
||||||
Color.FromArgb(128,0,0,0),
|
|
||||||
Color.Transparent,
|
|
||||||
Color.Transparent}[index % 8];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2010 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 LICENSE.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System.Drawing;
|
|
||||||
|
|
||||||
namespace OpenRA.FileFormats
|
|
||||||
{
|
|
||||||
public class SingleColorRemap : IPaletteRemap
|
|
||||||
{
|
|
||||||
Color c;
|
|
||||||
public SingleColorRemap(Color c)
|
|
||||||
{
|
|
||||||
this.c = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Color GetRemappedColor(Color original, int index)
|
|
||||||
{
|
|
||||||
return original.A > 0 ? c : original;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -40,4 +40,18 @@ namespace OpenRA.Mods.RA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SingleColorRemap : IPaletteRemap
|
||||||
|
{
|
||||||
|
Color c;
|
||||||
|
public SingleColorRemap(Color c)
|
||||||
|
{
|
||||||
|
this.c = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color GetRemappedColor(Color original, int index)
|
||||||
|
{
|
||||||
|
return original.A > 0 ? c : original;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System.Drawing;
|
||||||
using OpenRA.FileFormats;
|
using OpenRA.FileFormats;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -30,4 +31,30 @@ namespace OpenRA.Mods.RA
|
|||||||
wr.AddPalette(info.Name, new Palette(pal, new ShroudPaletteRemap(info.IsFog)));
|
wr.AddPalette(info.Name, new Palette(pal, new ShroudPaletteRemap(info.IsFog)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ShroudPaletteRemap : IPaletteRemap
|
||||||
|
{
|
||||||
|
bool isFog;
|
||||||
|
|
||||||
|
public ShroudPaletteRemap(bool isFog) { this.isFog = isFog; }
|
||||||
|
public Color GetRemappedColor(Color original, int index)
|
||||||
|
{
|
||||||
|
if (isFog)
|
||||||
|
return new[] {
|
||||||
|
Color.Transparent, Color.Green,
|
||||||
|
Color.Blue, Color.Yellow,
|
||||||
|
Color.FromArgb(128,0,0,0),
|
||||||
|
Color.FromArgb(128,0,0,0),
|
||||||
|
Color.FromArgb(128,0,0,0),
|
||||||
|
Color.FromArgb(64,0,0,0)}[index % 8];
|
||||||
|
else
|
||||||
|
return new[] {
|
||||||
|
Color.Transparent, Color.Green,
|
||||||
|
Color.Blue, Color.Yellow,
|
||||||
|
Color.Black,
|
||||||
|
Color.FromArgb(128,0,0,0),
|
||||||
|
Color.Transparent,
|
||||||
|
Color.Transparent}[index % 8];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
thirdparty/ICSharpCode.SharpZipLib.dll
vendored
BIN
thirdparty/ICSharpCode.SharpZipLib.dll
vendored
Binary file not shown.
Reference in New Issue
Block a user