diff --git a/OpenRA.FileFormats/Palette.cs b/OpenRA.FileFormats/Palette.cs
index f58ba580c9..a78e0413f8 100644
--- a/OpenRA.FileFormats/Palette.cs
+++ b/OpenRA.FileFormats/Palette.cs
@@ -33,7 +33,7 @@ namespace OpenRA.FileFormats
return colors[index];
}
- public Palette(Stream s)
+ public Palette(Stream s, bool remapTransparent)
{
using (BinaryReader reader = new BinaryReader(s))
{
@@ -46,9 +46,14 @@ namespace OpenRA.FileFormats
colors.Add(Color.FromArgb(r, g, b));
}
}
+
colors[0] = Color.FromArgb(0, 0, 0, 0);
- colors[3] = Color.FromArgb(178, 0, 0, 0);
- colors[4] = Color.FromArgb(140, 0, 0, 0);
+
+ if (remapTransparent)
+ {
+ colors[3] = Color.FromArgb(178, 0, 0, 0);
+ colors[4] = Color.FromArgb(140, 0, 0, 0);
+ }
}
public Palette(Palette p, IPaletteRemap r)
diff --git a/OpenRA.Game/Traits/World/PaletteFromFile.cs b/OpenRA.Game/Traits/World/PaletteFromFile.cs
index f4d1da0f3f..a71356c217 100644
--- a/OpenRA.Game/Traits/World/PaletteFromFile.cs
+++ b/OpenRA.Game/Traits/World/PaletteFromFile.cs
@@ -27,6 +27,7 @@ namespace OpenRA.Traits
public readonly string Name = null;
public readonly string Theater = null;
public readonly string Filename = null;
+ public readonly bool Transparent = true;
public object Create(Actor self) { return new PaletteFromFile(self, this); }
}
@@ -37,8 +38,8 @@ namespace OpenRA.Traits
if (info.Theater == null ||
info.Theater.ToLowerInvariant() == self.World.Map.Theater.ToLowerInvariant())
{
- //Log.Write("Loading palette {0} from file {1}", info.Name, info.Filename);
- self.World.WorldRenderer.AddPalette(info.Name, new Palette(FileSystem.Open(info.Filename)));
+ self.World.WorldRenderer.AddPalette(info.Name,
+ new Palette(FileSystem.Open(info.Filename), info.Transparent));
}
}
}
diff --git a/SequenceEditor/Program.cs b/SequenceEditor/Program.cs
index cdeb939037..b5b580e646 100644
--- a/SequenceEditor/Program.cs
+++ b/SequenceEditor/Program.cs
@@ -105,7 +105,7 @@ namespace SequenceEditor
Doc = new XmlDocument();
Doc.Load(XmlFilename);
- var tempPal = new Palette(FileSystem.Open(args[2]));
+ var tempPal = new Palette(FileSystem.Open(args[2]), true);
Pal = tempPal;
UnitName = GetTextForm.GetString("Unit to edit?", "e1");
diff --git a/mods/cnc/mouse2.shp b/mods/cnc/mouse2.shp
new file mode 100644
index 0000000000..e91597f7d8
Binary files /dev/null and b/mods/cnc/mouse2.shp differ
diff --git a/mods/cnc/sequences.xml b/mods/cnc/sequences.xml
index b725337e39..e4838a68f9 100644
--- a/mods/cnc/sequences.xml
+++ b/mods/cnc/sequences.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/mods/cnc/system.yaml b/mods/cnc/system.yaml
index 15e2619dca..a1db97ab6a 100644
--- a/mods/cnc/system.yaml
+++ b/mods/cnc/system.yaml
@@ -152,6 +152,7 @@ World:
PaletteFromFile@cursor:
Name: cursor
Filename: temperat.pal
+ Transparent: no
PaletteFromRGBA@shadow:
Name: shadow
R: 0