load Dune 2000 walls directly from DATA.R8

This commit is contained in:
Matthias Mailänder
2013-08-10 18:46:55 +02:00
parent 0dbee935e7
commit a7504b5dd9
5 changed files with 60 additions and 45 deletions

View File

@@ -30,6 +30,7 @@ namespace OpenRA.Graphics
public readonly int ZOffset;
public readonly int ShadowStart;
public readonly int ShadowZOffset;
public readonly int[] Frames;
public Sequence(string unit, string name, MiniYaml info)
{
@@ -39,7 +40,8 @@ namespace OpenRA.Graphics
var offset = float2.Zero;
var blendMode = BlendMode.Alpha;
Start = int.Parse(d["Start"].Value);
if (d.ContainsKey("Start"))
Start = int.Parse(d["Start"].Value);
if (d.ContainsKey("Offset"))
offset = FieldLoader.GetValue<float2>("Offset", d["Offset"].Value);
@@ -79,7 +81,10 @@ namespace OpenRA.Graphics
Tick = 40;
if (d.ContainsKey("Transpose"))
transpose = bool.Parse(d["Transpose"].Value);
transpose = bool.Parse(d["Transpose"].Value);
if (d.ContainsKey("Frames"))
Frames = Array.ConvertAll<string, int>(d["Frames"].Value.Split(','), int.Parse);
if (d.ContainsKey("ShadowStart"))
ShadowStart = int.Parse(d["ShadowStart"].Value);
@@ -136,9 +141,12 @@ namespace OpenRA.Graphics
if (reverseFacings)
f = (Facings - f) % Facings;
int i = transpose ? (frame % Length) * Facings + f :
var i = transpose ? (frame % Length) * Facings + f :
(f * Stride) + (frame % Length);
if (Frames != null)
return sprites[Frames[i]];
return sprites[start + i];
}
}