From 550b4495a8509726ed6928cb1b8090efa57bc7f7 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Thu, 5 May 2011 16:17:41 +1200 Subject: [PATCH] Add a black&white palettemod --- OpenRA.Mods.RA/DesaturatedPaletteEffect.cs | 40 ++++++++++++++++++++++ OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 1 + mods/cnc/maps/shellmap/map.yaml | 1 + 3 files changed, 42 insertions(+) create mode 100644 OpenRA.Mods.RA/DesaturatedPaletteEffect.cs diff --git a/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs b/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs new file mode 100644 index 0000000000..c70bf6a48e --- /dev/null +++ b/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs @@ -0,0 +1,40 @@ +#region Copyright & License Information +/* + * Copyright 2007-2011 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.Collections.Generic; +using System.Drawing; +using OpenRA.FileFormats; +using OpenRA.Traits; + +namespace OpenRA.Mods.RA +{ + class DesaturatedPaletteEffectInfo : TraitInfo { } + + public class DesaturatedPaletteEffect : IPaletteModifier + { + // Doing this every frame is stupid + public void AdjustPalette(Dictionary palettes) + { + var excludePalettes = new List(){"cursor", "chrome", "colorpicker", "shroud", "fog"}; + foreach (var pal in palettes) + { + if (excludePalettes.Contains(pal.Key)) + continue; + + for (var x = 0; x < 256; x++) + { + var orig = pal.Value.GetColor(x); + var lum = (int)(255 * orig.GetBrightness()); + pal.Value.SetColor(x, Color.FromArgb(orig.A, lum, lum, lum)); + } + } + } + } +} diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 8e60a55100..7609213864 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -347,6 +347,7 @@ + diff --git a/mods/cnc/maps/shellmap/map.yaml b/mods/cnc/maps/shellmap/map.yaml index 269c9873bd..b75bbed2d1 100755 --- a/mods/cnc/maps/shellmap/map.yaml +++ b/mods/cnc/maps/shellmap/map.yaml @@ -1013,6 +1013,7 @@ Rules: -MPStartLocations: -CrateSpawner: CncShellmapScript: + DesaturatedPaletteEffect: LST: Mobile: Speed: 3