From f501054f87d66b27b0ec62140421ded14577e97c Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Mon, 9 Jun 2008 20:11:23 +0100 Subject: [PATCH] Fading in and out of the options screen --- src/Options.cpp | 21 ++++++++++++++++++--- src/Options.hpp | 4 +++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/Options.cpp b/src/Options.cpp index 67aee27..d9d0703 100644 --- a/src/Options.cpp +++ b/src/Options.cpp @@ -18,21 +18,30 @@ #include "Options.hpp" #include "Menu.hpp" +const double Options::FADE_SPEED = 0.1; + Options::Options() : state(optFadeIn), - helpFont(LocateResource("Default_Font.ttf"), 14) + helpFont(LocateResource("Default_Font.ttf"), 14), + fadeAlpha(0.0) { } void Options::Load() { - + state = optFadeIn; + fadeAlpha = 0.0; } void Options::ProcessFadeIn() { - + fadeAlpha += FADE_SPEED; + + if (fadeAlpha >= 1.0) { + state = optMain; + fadeAlpha = 1.0; + } } void Options::ProcessMain() @@ -42,7 +51,13 @@ void Options::ProcessMain() void Options::ProcessFadeOut() { + fadeAlpha -= FADE_SPEED; + + if (fadeAlpha <= 0.0) { + fadeAlpha = 0.0; + ScreenManager::GetInstance().SelectScreen("MAIN MENU"); + } } void Options::Process() diff --git a/src/Options.hpp b/src/Options.hpp index 1a77aaf..1134efa 100644 --- a/src/Options.hpp +++ b/src/Options.hpp @@ -34,6 +34,8 @@ private: void ProcessFadeIn(); void ProcessMain(); void ProcessFadeOut(); + + static const double FADE_SPEED; enum OptionState { optFadeIn, optMain, optFadeOut @@ -41,7 +43,7 @@ private: OptionState state; Font helpFont; - + double fadeAlpha; }; #endif -- 2.39.2