aboutsummaryrefslogtreecommitdiff
path: root/Super Polarity/ScreenManager.cs
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2013-11-23 13:54:16 -0600
committerBen Beltran <ben@nsovocal.com>2013-11-23 13:54:16 -0600
commitb587e9d8e0cc5eb1edf972fd3b644704441e5289 (patch)
tree7ad7c006afa1d7101111d8b2418c8a96a824eafc /Super Polarity/ScreenManager.cs
parent097781e6ad3f7bb1c13c16ff7b6bb7219764fb29 (diff)
Protoshow sprint.
Diffstat (limited to 'Super Polarity/ScreenManager.cs')
-rw-r--r--Super Polarity/ScreenManager.cs17
1 files changed, 12 insertions, 5 deletions
diff --git a/Super Polarity/ScreenManager.cs b/Super Polarity/ScreenManager.cs
index 04c10a4..b88741b 100644
--- a/Super Polarity/ScreenManager.cs
+++ b/Super Polarity/ScreenManager.cs
@@ -19,12 +19,22 @@ namespace SuperPolarity
static public void Push(Screen screen)
{
+ if (Screens.Count > 0)
+ {
+ Screens.Peek().Active = false;
+ }
+
+ screen.LoadContent();
+ screen.Active = true;
Screens.Push(screen);
}
static public void Pop()
{
- Screens.Pop();
+ var screen = Screens.Pop();
+ screen.Active = false;
+ screen.CleanUp();
+ Screens.Peek().Active = true;
}
static public void Update(GameTime gameTime)
@@ -34,10 +44,7 @@ namespace SuperPolarity
static public void Draw(SpriteBatch spriteBatch)
{
- foreach (Screen screen in Screens)
- {
- screen.Draw(spriteBatch);
- }
+ Screens.Peek().Draw(spriteBatch);
}
internal static void SetGame(SuperPolarity game)