Remove duplicated Format2 implementation.

This commit is contained in:
Paul Chote
2013-12-02 19:56:30 +13:00
parent 4d12ea0941
commit c2413b63f7
3 changed files with 9 additions and 25 deletions

View File

@@ -12,25 +12,22 @@ namespace OpenRA.FileFormats
{ {
public static class Format2 public static class Format2
{ {
public static int DecodeInto(byte[] src, byte[] dest) public static void DecodeInto(byte[] src, byte[] dest, int destIndex)
{ {
FastByteReader r = new FastByteReader(src); var r = new FastByteReader(src);
int i = 0;
while (!r.Done()) while (!r.Done())
{ {
byte cmd = r.ReadByte(); var cmd = r.ReadByte();
if (cmd == 0) if (cmd == 0)
{ {
byte count = r.ReadByte(); var count = r.ReadByte();
while (count-- > 0) while (count-- > 0)
dest[i++] = 0; dest[destIndex++] = 0;
} }
else else
dest[i++] = cmd; dest[destIndex++] = cmd;
} }
return i;
} }
} }
} }

View File

@@ -73,10 +73,10 @@ namespace OpenRA.FileFormats
{ {
var tempData = new byte[dataSize]; var tempData = new byte[dataSize];
Format80.DecodeInto(imgData, tempData); Format80.DecodeInto(imgData, tempData);
Format2.DecodeInto(tempData, Data); Format2.DecodeInto(tempData, Data, 0);
} }
else else
Format2.DecodeInto(imgData, Data); Format2.DecodeInto(imgData, Data, 0);
// Lookup values in lookup table // Lookup values in lookup table
for (var j = 0; j < Data.Length; j++) for (var j = 0; j < Data.Length; j++)

View File

@@ -89,21 +89,8 @@ namespace OpenRA.FileFormats
for (var j = 0; j < f.Size.Height; j++) for (var j = 0; j < f.Size.Height; j++)
{ {
var k = j * f.Size.Width;
var length = stream.ReadUInt16() - 2; var length = stream.ReadUInt16() - 2;
while (length > 0) Format2.DecodeInto(stream.ReadBytes(length), f.Data, j * f.Size.Width);
{
var b = stream.ReadUInt8();
length--;
if (b == 0)
{
k += stream.ReadUInt8();
length--;
}
else
f.Data[k++] = b;
}
} }
} }
} }