Allow maps/mods to properly disable fog or shroud (or both).
This commit is contained in:
@@ -15,11 +15,17 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public enum ShroudPaletteType { Shroud, Fog, Combined };
|
||||
|
||||
[Desc("Adds the hard-coded shroud palette to the game")]
|
||||
class ShroudPaletteInfo : ITraitInfo
|
||||
{
|
||||
[Desc("internal palette name")]
|
||||
[Desc("Internal palette name")]
|
||||
public readonly string Name = "shroud";
|
||||
|
||||
[Desc("Palette type")]
|
||||
public readonly ShroudPaletteType Type = ShroudPaletteType.Combined;
|
||||
|
||||
public object Create(ActorInitializer init) { return new ShroudPalette(this); }
|
||||
}
|
||||
|
||||
@@ -31,16 +37,37 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public void InitPalette(WorldRenderer wr)
|
||||
{
|
||||
var c = new[] {
|
||||
Color.Transparent, Color.Green,
|
||||
Color.Blue, Color.Yellow,
|
||||
Color.Black,
|
||||
Color.FromArgb(128,0,0,0),
|
||||
Color.Transparent,
|
||||
Color.Transparent
|
||||
};
|
||||
var c = info.Type == ShroudPaletteType.Shroud ? Shroud :
|
||||
info.Type == ShroudPaletteType.Fog ? Fog : Combined;
|
||||
|
||||
wr.AddPalette(info.Name, new Palette(Exts.MakeArray(256, i => (uint)c[i % 8].ToArgb())), false);
|
||||
}
|
||||
|
||||
static Color[] Shroud = new[] {
|
||||
Color.Transparent, Color.Green,
|
||||
Color.Blue, Color.Yellow,
|
||||
Color.Black,
|
||||
Color.FromArgb(128,0,0,0),
|
||||
Color.Transparent,
|
||||
Color.Transparent
|
||||
};
|
||||
|
||||
static Color[] Fog = 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)
|
||||
};
|
||||
|
||||
static Color[] Combined = new[] {
|
||||
Color.Transparent, Color.Green,
|
||||
Color.Blue, Color.Yellow,
|
||||
Color.Black,
|
||||
Color.FromArgb(192,0,0,0),
|
||||
Color.FromArgb(128,0,0,0),
|
||||
Color.FromArgb(64,0,0,0)
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user