Shift loadscreen into mods
This commit is contained in:
@@ -45,7 +45,7 @@ namespace OpenRA.Graphics
|
||||
|
||||
static void LoadSequencesForCursor(XmlElement eCursor)
|
||||
{
|
||||
Viewport.DrawLoadScreen();
|
||||
Game.modData.LoadScreen.Display();
|
||||
string cursorSrc = eCursor.GetAttribute("src");
|
||||
string palette = eCursor.GetAttribute("palette");
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace OpenRA.Graphics
|
||||
|
||||
static void LoadSequencesForUnit(XmlElement eUnit)
|
||||
{
|
||||
Viewport.DrawLoadScreen();
|
||||
Game.modData.LoadScreen.Display();
|
||||
string unitName = eUnit.GetAttribute("name");
|
||||
try {
|
||||
var sequences = eUnit.SelectNodes("./sequence").OfType<XmlElement>()
|
||||
|
||||
@@ -70,39 +70,6 @@ namespace OpenRA.Graphics
|
||||
Timer.Time( "endFrame: {0}" );
|
||||
}
|
||||
|
||||
static string[] loadComments = new[] { "Filling Crates...", "Charging Capacitors...", "Reticulating Splines...",
|
||||
"Planting Trees...", "Building Bridges...", "Aging Empires...",
|
||||
"Compiling EVA...", "Constructing Pylons...", "Activating Skynet...",
|
||||
"Splitting Atoms..."
|
||||
};
|
||||
static Stopwatch lastLoadScreen = new Stopwatch();
|
||||
public static void DrawLoadScreen()
|
||||
{
|
||||
// Update text at most every 0.5 seconds
|
||||
if (lastLoadScreen.ElapsedTime() < 0.5)
|
||||
return;
|
||||
|
||||
lastLoadScreen.Reset();
|
||||
|
||||
var r = Game.Renderer;
|
||||
var font = r.BoldFont;
|
||||
r.BeginFrame(float2.Zero);
|
||||
|
||||
// Hardcode layout for now
|
||||
WidgetUtils.FillRectWithSprite(new Rectangle(0, Renderer.Resolution.Height/2 - 64, Renderer.Resolution.Width, 128), ChromeProvider.GetImage("loadscreen", "stripe"));
|
||||
|
||||
var logo = ChromeProvider.GetImage("loadscreen","logo");
|
||||
var logoPos = new float2((Renderer.Resolution.Width - logo.size.X)/2,(Renderer.Resolution.Height - logo.size.Y)/2);
|
||||
r.RgbaSpriteRenderer.DrawSprite(logo, logoPos);
|
||||
|
||||
var text = loadComments.Random(Game.CosmeticRandom);
|
||||
var textSize = font.Measure(text);
|
||||
|
||||
font.DrawText(text, new float2(Renderer.Resolution.Width - textSize.X - 20, Renderer.Resolution.Height - textSize.Y - 20), Color.White);
|
||||
r.RgbaSpriteRenderer.Flush();
|
||||
r.EndFrame();
|
||||
}
|
||||
|
||||
public void RefreshPalette()
|
||||
{
|
||||
Game.world.WorldRenderer.palette.Update(
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace OpenRA
|
||||
public readonly SheetBuilder SheetBuilder;
|
||||
public readonly CursorSheetBuilder CursorSheetBuilder;
|
||||
public readonly Dictionary<string, MapStub> AvailableMaps;
|
||||
public ILoadScreen LoadScreen = null;
|
||||
|
||||
public ModData( params string[] mods )
|
||||
{
|
||||
@@ -31,9 +32,11 @@ namespace OpenRA
|
||||
FileSystem.LoadFromManifest( Manifest );
|
||||
ChromeProvider.Initialize( Manifest.Chrome );
|
||||
|
||||
Viewport.DrawLoadScreen();
|
||||
|
||||
ObjectCreator = new ObjectCreator( Manifest );
|
||||
|
||||
LoadScreen = ObjectCreator.CreateObject<ILoadScreen>(Manifest.LoadScreen);
|
||||
LoadScreen.Display();
|
||||
|
||||
SheetBuilder = new SheetBuilder( TextureChannel.Red );
|
||||
CursorSheetBuilder = new CursorSheetBuilder( this );
|
||||
AvailableMaps = FindMaps( mods );
|
||||
@@ -52,7 +55,7 @@ namespace OpenRA
|
||||
string cachedTheatre = null;
|
||||
public Map PrepareMap(string uid)
|
||||
{
|
||||
Viewport.DrawLoadScreen();
|
||||
LoadScreen.Display();
|
||||
|
||||
if (!AvailableMaps.ContainsKey(uid))
|
||||
throw new InvalidDataException("Invalid map uid: {0}".F(uid));
|
||||
@@ -75,4 +78,6 @@ namespace OpenRA
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
public interface ILoadScreen { void Display(); }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user