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