Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawSplash()

void Terraria.Main.DrawSplash ( GameTime gameTime)
inlineprotected

Definition at line 49370 of file Main.cs.

49371 {
49372 int num = 10000;
49373 base.GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.Black);
49374 base.Draw(gameTime);
49376 long num2 = splashTimer.ElapsedMilliseconds;
49377 if (musicVolume == 0f)
49378 {
49379 quickSplash = true;
49380 num2 = 999999L;
49381 num = 0;
49382 }
49383 if (Assets.PendingAssets == 0 && _musicLoaded && _artLoaded && Program.LoadedEverything)
49384 {
49385 _isAsyncLoadComplete = true;
49386 }
49387 spriteBatch.Begin();
49388 splashCounter++;
49390 byte b = 0;
49391 if (quickSplash)
49392 {
49393 if (splashCounter <= 75)
49394 {
49395 b = (byte)((float)splashCounter / 75f * 255f);
49396 }
49397 else if (splashCounter <= 125)
49398 {
49399 b = byte.MaxValue;
49400 }
49401 else if (splashCounter <= 200)
49402 {
49404 {
49405 splashCounter = 125;
49406 }
49407 b = (byte)((float)(75 - (splashCounter - 125)) / 75f * 255f);
49408 }
49409 else
49410 {
49413 showSplash = false;
49414 fadeCounter = 75;
49415 splashTimer.Stop();
49416 }
49417 }
49418 else
49419 {
49420 int num3 = 90;
49421 int num4 = 410;
49422 int num5 = 620;
49423 int num6 = 60;
49424 if (splashCounter >= num3)
49425 {
49426 if (splashCounter <= num4)
49427 {
49428 float num7 = (float)(splashCounter - num3) / (float)(num4 - num3);
49429 num7 *= num7 * num7 * num7;
49430 num7 *= 255f;
49431 b = (byte)num7;
49432 }
49433 else if (splashCounter <= num5)
49434 {
49435 b = byte.MaxValue;
49436 if (splashCounter >= num5 - num6)
49437 {
49438 b = (byte)((float)(num6 - (splashCounter - (num5 - num6))) / (float)num6 * 255f);
49439 }
49440 }
49441 else if (!_isAsyncLoadComplete)
49442 {
49443 b = 0;
49444 num = 1;
49445 }
49446 else
49447 {
49450 showSplash = false;
49451 fadeCounter = 120;
49452 splashTimer.Stop();
49453 }
49454 }
49455 }
49456 white = new Microsoft.Xna.Framework.Color(b, b, b, b);
49458 if (splashTextureLegoBack.Width() > 0 && splashTextureLegoBack.Height() > 0)
49459 {
49460 Vector2 vector = new Vector2((float)screenWidth / (float)splashTextureLegoBack.Width(), (float)screenHeight / (float)splashTextureLegoBack.Height());
49461 _ = splashTextureLegoBack.Size() / 2f;
49462 Vector2 position = new Vector2(screenWidth, screenHeight) / 2f;
49463 Vector2 scale = vector;
49464 if (scale.X > scale.Y)
49465 {
49466 scale.X = scale.Y;
49467 }
49468 else
49469 {
49470 scale.Y = scale.X;
49471 }
49473 if (scale2.X < scale2.Y)
49474 {
49475 scale2.X = scale2.Y;
49476 }
49477 else
49478 {
49479 scale2.Y = scale2.X;
49480 }
49481 spriteBatch.Draw(splashTextureLegoBack.Value, position, null, white, 0f, splashTextureLegoBack.Size() / 2f, scale2, SpriteEffects.None, 0f);
49482 spriteBatch.Draw(TextureAssets.SplashTextureLegoTree.Value, ScreenSize.ToVector2(), null, white, 0f, TextureAssets.SplashTextureLegoTree.Size(), scale, SpriteEffects.None, 0f);
49483 spriteBatch.Draw(TextureAssets.SplashTextureLegoFront.Value, position, null, white, 0f, TextureAssets.SplashTextureLegoFront.Size() / 2f, scale, SpriteEffects.None, 0f);
49484 }
49485 int num8 = 70;
49486 if (num == 1)
49487 {
49489 }
49490 else if (num2 > num)
49491 {
49493 }
49494 _splashFrameCount += 1f;
49495 if (_splashFrameCount >= (float)num8)
49496 {
49497 _splashFrameCount = 0f;
49498 }
49499 spriteBatch.End();
49500 }
static Asset< Texture2D > SplashTextureLegoFront
static Asset< Texture2D > SplashTextureLegoTree
static Asset< Texture2D > SplashTextureLegoBack
bool quickSplash
Definition Main.cs:2537
static SpriteBatch spriteBatch
Definition Main.cs:974
float _splashFrameCount
Definition Main.cs:2535
volatile bool _artLoaded
Definition Main.cs:215
void TickLoadProcess()
Definition Main.cs:10017
static int screenHeight
Definition Main.cs:1721
void Initialize_AlmostEverything()
Definition Main.cs:5969
static bool showSplash
Definition Main.cs:740
static Microsoft.Xna.Framework.Point ScreenSize
Definition Main.cs:2925
volatile bool _musicLoaded
Definition Main.cs:213
static int fadeCounter
Definition Main.cs:1380
int splashCounter
Definition Main.cs:2227
void DrawSplash_LoadingFlower(Microsoft.Xna.Framework.Color splashColor)
Definition Main.cs:49502
static int screenWidth
Definition Main.cs:1719
static Stopwatch splashTimer
Definition Main.cs:2289
static float musicVolume
Definition Main.cs:1421
static IAssetRepository Assets
Definition Main.cs:209
static bool _isAsyncLoadComplete
Definition Main.cs:738
static void PostContentLoadInitialize()
Definition Main.cs:10022

References Terraria.Main._artLoaded, Terraria.Main._isAsyncLoadComplete, Terraria.Main._musicLoaded, Terraria.Main._splashFrameCount, Terraria.Main.Assets, Microsoft.Xna.Framework.Color.Black, System.Collections.Generic.Dictionary< TKey, TValue >.Clear(), Terraria.Main.DrawSplash_LoadingFlower(), Terraria.Main.fadeCounter, Terraria.Main.Initialize_AlmostEverything(), System.L, Terraria.Program.LoadedEverything, Terraria.Main.musicVolume, Terraria.Main.PostContentLoadInitialize(), Terraria.Main.quickSplash, Terraria.Main.screenHeight, Terraria.Main.ScreenSize, Terraria.Main.screenWidth, Terraria.Main.showSplash, Terraria.Main.splashCounter, Terraria.GameContent.TextureAssets.SplashTextureLegoBack, Terraria.GameContent.TextureAssets.SplashTextureLegoFront, Terraria.GameContent.TextureAssets.SplashTextureLegoTree, Terraria.Main.splashTimer, Terraria.Main.spriteBatch, Terraria.Main.TickLoadProcess(), Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Main.DoDraw().