split chrome palette from Multi0's palette

This commit is contained in:
Chris Forbes
2009-12-23 21:16:47 +13:00
parent 34a88b3c2e
commit 8fa02ea6a3
3 changed files with 13 additions and 14 deletions

View File

@@ -264,7 +264,7 @@ namespace OpenRa.Game
var isBuildingThis = currentItem != null && currentItem.Item == item; var isBuildingThis = currentItem != null && currentItem.Item == item;
var isBuildingSomethingElse = currentItem != null && currentItem.Item != item; var isBuildingSomethingElse = currentItem != null && currentItem.Item != item;
buildPaletteRenderer.DrawSprite(sprites[item], drawPos, 0); buildPaletteRenderer.DrawSprite(sprites[item], drawPos, HardwarePalette.Chrome);
if (rect.Contains(lastMousePos.ToPoint())) if (rect.Contains(lastMousePos.ToPoint()))
{ {
@@ -279,7 +279,7 @@ namespace OpenRa.Game
{ {
clockAnimations[queueName].Tick(); clockAnimations[queueName].Tick();
buildPaletteRenderer.DrawSprite(clockAnimations[queueName].Image, buildPaletteRenderer.DrawSprite(clockAnimations[queueName].Image,
drawPos, 0); drawPos, HardwarePalette.Chrome);
var overlayPos = drawPos + new float2((64 - ready.Image.size.X) / 2, 2); var overlayPos = drawPos + new float2((64 - ready.Image.size.X) / 2, 2);
@@ -305,13 +305,13 @@ namespace OpenRa.Game
{ {
var rect = new Rectangle(origin.X + x * 64, origin.Y + 48 * y, 64, 48); var rect = new Rectangle(origin.X + x * 64, origin.Y + 48 * y, 64, 48);
var drawPos = Game.viewport.Location + new float2(rect.Location); var drawPos = Game.viewport.Location + new float2(rect.Location);
buildPaletteRenderer.DrawSprite(blank, drawPos, 0); buildPaletteRenderer.DrawSprite(blank, drawPos, HardwarePalette.Chrome);
buttons.Add(Pair.New(rect, (Action<bool>)(_ => { }))); buttons.Add(Pair.New(rect, (Action<bool>)(_ => { })));
if (++x == columns) { x = 0; y++; } if (++x == columns) { x = 0; y++; }
} }
foreach (var ob in overlayBits) foreach (var ob in overlayBits)
buildPaletteRenderer.DrawSprite(ob.First, ob.Second, 0); buildPaletteRenderer.DrawSprite(ob.First, ob.Second, HardwarePalette.Chrome);
buildPaletteRenderer.Flush(); buildPaletteRenderer.Flush();

View File

@@ -5,6 +5,10 @@ namespace OpenRa.Game.Graphics
{ {
class HardwarePalette : Sheet class HardwarePalette : Sheet
{ {
public const int Shadow = 8;
public const int Invuln = 9;
public const int Chrome = 10;
const int maxEntries = 16; const int maxEntries = 16;
int allocated = 0; int allocated = 0;
@@ -18,11 +22,8 @@ namespace OpenRa.Game.Graphics
AddPalette(new Palette(pal, new PaletteRemap(FileSystem.Open(remap + ".rem")))); AddPalette(new Palette(pal, new PaletteRemap(FileSystem.Open(remap + ".rem"))));
AddPalette(new Palette(pal, new PaletteRemap(Color.FromArgb(140, 0, 0, 0)))); AddPalette(new Palette(pal, new PaletteRemap(Color.FromArgb(140, 0, 0, 0))));
AddPalette(pal); // iron curtain. todo: remap!
//using (var bitmapCopy = new Bitmap(bitmap)) AddPalette(pal); // chrome (it's like gold, but we're not going to hax it in palettemods)
// for (int j = 0; j < maxEntries; j++)
// for (int i = 0; i < 7; i++)
// this[new Point(0x60 + i, j)] = bitmapCopy.GetPixel(0x60 + (rotate + i) % 7, j);
} }
int AddPalette(Palette p) int AddPalette(Palette p)

View File

@@ -197,7 +197,7 @@ namespace OpenRa.Game.Graphics
var pipImages = new Animation("pips"); var pipImages = new Animation("pips");
pipImages.PlayFetchIndex("groups", () => (int)group); pipImages.PlayFetchIndex("groups", () => (int)group);
pipImages.Tick(); pipImages.Tick();
spriteRenderer.DrawSprite(pipImages.Image, basePosition + new float2(-8, 1), 0); spriteRenderer.DrawSprite(pipImages.Image, basePosition + new float2(-8, 1), HardwarePalette.Chrome);
} }
void DrawPips(Actor selectedUnit, float2 basePosition) void DrawPips(Actor selectedUnit, float2 basePosition)
@@ -212,12 +212,11 @@ namespace OpenRa.Game.Graphics
{ {
var pipImages = new Animation("pips"); var pipImages = new Animation("pips");
pipImages.PlayRepeating(pipStrings[(int)pip]); pipImages.PlayRepeating(pipStrings[(int)pip]);
spriteRenderer.DrawSprite(pipImages.Image, pipxyBase + pipxyOffset, 0); spriteRenderer.DrawSprite(pipImages.Image, pipxyBase + pipxyOffset, HardwarePalette.Chrome);
pipxyOffset += new float2(4, 0); pipxyOffset += new float2(4, 0);
if (pipxyOffset.X+5 > selectedUnit.SelectedSize.X) if (pipxyOffset.X+5 > selectedUnit.SelectedSize.X)
{ {
//spriteRenderer.Flush();
pipxyOffset.X = 0; pipxyOffset.X = 0;
pipxyOffset.Y -= 4; pipxyOffset.Y -= 4;
} }
@@ -225,7 +224,6 @@ namespace OpenRa.Game.Graphics
// Increment row // Increment row
pipxyOffset.X = 0; pipxyOffset.X = 0;
pipxyOffset.Y -= 5; pipxyOffset.Y -= 5;
//spriteRenderer.Flush();
} }
} }
@@ -241,7 +239,7 @@ namespace OpenRa.Game.Graphics
{ {
var tagImages = new Animation("pips"); var tagImages = new Animation("pips");
tagImages.PlayRepeating(tagStrings[(int)tag]); tagImages.PlayRepeating(tagStrings[(int)tag]);
spriteRenderer.DrawSprite(tagImages.Image, tagxyBase + tagxyOffset, 0); spriteRenderer.DrawSprite(tagImages.Image, tagxyBase + tagxyOffset, HardwarePalette.Chrome);
// Increment row // Increment row
tagxyOffset.Y += 8; tagxyOffset.Y += 8;