From 16a056e6a542ebfc948b18470c43c5c329e336eb Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 10 Mar 2003 01:28:53 +0000 Subject: [PATCH] fixing glitches in SelectGroup --- .../ScreenSelectGroup explanation.png | Bin 3234 -> 2879 bytes stepmania/Themes/default/metrics.ini | 41 +++++++------ stepmania/src/Banner.cpp | 4 +- stepmania/src/MenuElements.cpp | 1 + stepmania/src/ScreenSelectDifficulty.cpp | 2 +- stepmania/src/ScreenSelectGroup.cpp | 57 ++++++++---------- stepmania/src/ScreenSelectGroup.h | 2 +- stepmania/src/StageDisplay.cpp | 29 --------- stepmania/src/StageDisplay.h | 30 --------- stepmania/src/ThemeManager.cpp | 2 + 10 files changed, 54 insertions(+), 114 deletions(-) delete mode 100644 stepmania/src/StageDisplay.cpp delete mode 100644 stepmania/src/StageDisplay.h diff --git a/stepmania/Themes/default/Graphics/ScreenSelectGroup explanation.png b/stepmania/Themes/default/Graphics/ScreenSelectGroup explanation.png index 81c0b5743579bf7865d502d99dd04abb46060de0..0fa3a84a0a70d3a1a4b18b69d43c3d75c377d3a5 100644 GIT binary patch delta 2836 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 SM_AllDoneChoosing, SLEEP_AFTER_CHOICE_SECONDS ); // nofify parent that we're finished + SCREENMAN->SendMessageToTopScreen( SM_AllDoneChoosing, SLEEP_AFTER_TWEEN_OFF_SECONDS ); // nofify parent that we're finished break; } } diff --git a/stepmania/src/ScreenSelectGroup.cpp b/stepmania/src/ScreenSelectGroup.cpp index 027b12b5ac..3cf6a951b2 100644 --- a/stepmania/src/ScreenSelectGroup.cpp +++ b/stepmania/src/ScreenSelectGroup.cpp @@ -25,25 +25,26 @@ #include -#define FRAME_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","FrameOnCommand") -#define FRAME_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","FrameOffCommand") -#define BANNER_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","BannerOnCommand") -#define BANNER_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","BannerOffCommand") -#define BANNER_WIDTH THEME->GetMetricF("ScreenSelectGroup","BannerWidth") -#define BANNER_HEIGHT THEME->GetMetricF("ScreenSelectGroup","BannerHeight") -#define NUMBER_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","NumberOnCommand") -#define NUMBER_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","NumberOffCommand") -#define EXPLANATION_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","ExplanationOnCommand") -#define EXPLANATION_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","ExplanationOffCommand") -#define CONTENTS_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","ContentsOnCommand") -#define CONTENTS_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","ContentsOffCommand") -#define MUSIC_LIST_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","MusicListOnCommand") -#define MUSIC_LIST_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","MusicListOffCommand") -#define GROUP_LIST_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","GroupListOnCommand") -#define GROUP_LIST_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","GroupListOnCommand") -#define HELP_TEXT THEME->GetMetric ("ScreenSelectGroup","HelpText") -#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectGroup","TimerSeconds") -#define NEXT_SCREEN THEME->GetMetric ("ScreenSelectGroup","NextScreen") +#define FRAME_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","FrameOnCommand") +#define FRAME_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","FrameOffCommand") +#define BANNER_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","BannerOnCommand") +#define BANNER_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","BannerOffCommand") +#define BANNER_WIDTH THEME->GetMetricF("ScreenSelectGroup","BannerWidth") +#define BANNER_HEIGHT THEME->GetMetricF("ScreenSelectGroup","BannerHeight") +#define NUMBER_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","NumberOnCommand") +#define NUMBER_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","NumberOffCommand") +#define EXPLANATION_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","ExplanationOnCommand") +#define EXPLANATION_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","ExplanationOffCommand") +#define CONTENTS_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","ContentsOnCommand") +#define CONTENTS_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","ContentsOffCommand") +#define MUSIC_LIST_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","MusicListOnCommand") +#define MUSIC_LIST_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","MusicListOffCommand") +#define GROUP_LIST_ON_COMMAND THEME->GetMetric ("ScreenSelectGroup","GroupListOnCommand") +#define GROUP_LIST_OFF_COMMAND THEME->GetMetric ("ScreenSelectGroup","GroupListOnCommand") +#define SLEEP_AFTER_TWEEN_OFF_SECONDS THEME->GetMetricF("ScreenSelectGroup","SleepAfterTweenOffSeconds") +#define HELP_TEXT THEME->GetMetric ("ScreenSelectGroup","HelpText") +#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectGroup","TimerSeconds") +#define NEXT_SCREEN THEME->GetMetric ("ScreenSelectGroup","NextScreen") ScreenSelectGroup::ScreenSelectGroup() @@ -123,31 +124,24 @@ ScreenSelectGroup::ScreenSelectGroup() m_bChosen = false; m_sprExplanation.Load( THEME->GetPathTo("Graphics","ScreenSelectGroup explanation") ); - m_sprExplanation.Command( EXPLANATION_ON_COMMAND ); this->AddChild( &m_sprExplanation ); // these guys get loaded SetSong and TweenToSong - m_Banner.SetXY( 640, 240 ); m_Banner.SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT ); this->AddChild( &m_Banner ); m_sprFrame.Load( THEME->GetPathTo("Graphics","ScreenSelectGroup frame") ); - m_sprFrame.Command( FRAME_ON_COMMAND ); this->AddChild( &m_sprFrame ); m_textNumber.LoadFromNumbers( THEME->GetPathTo("Numbers","ScreenSelectGroup numbers") ); - m_textNumber.Command( NUMBER_ON_COMMAND ); this->AddChild( &m_textNumber ); m_sprContents.Load( THEME->GetPathTo("Graphics","ScreenSelectGroup contents") ); - m_sprContents.Command( CONTENTS_ON_COMMAND ); this->AddChild( &m_sprContents ); - m_MusicList.Command( MUSIC_LIST_ON_COMMAND ); this->AddChild( &m_MusicList ); m_GroupList.Load( asGroupNames ); - m_GroupList.Command( GROUP_LIST_ON_COMMAND ); this->AddChild( &m_GroupList ); @@ -158,8 +152,8 @@ ScreenSelectGroup::ScreenSelectGroup() SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","ScreenSelectGroup music") ); - TweenOnScreen(); AfterChange(); + TweenOnScreen(); m_GroupList.SetSelection(0); } @@ -192,6 +186,9 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM ) { switch( SM ) { + case SM_BeginFadingOut: + m_Menu.StartTransitioning( SM_GoToNextScreen ); + break; case SM_MenuTimer: MenuStart(PLAYER_1); break; @@ -210,9 +207,7 @@ void ScreenSelectGroup::AfterChange() m_MusicList.SetGroupNo(sel); CString sSelectedGroupName = m_GroupList.GetSelectionName(); - - CString sGroupBannerPath; - if( sSelectedGroupName == GROUP_ALL_MUSIC ) + if( sSelectedGroupName == "ALL MUSIC" ) m_Banner.LoadAllMusic(); else m_Banner.LoadFromGroup( sSelectedGroupName ); @@ -272,7 +267,7 @@ void ScreenSelectGroup::MenuStart( PlayerNumber pn ) TweenOffScreen(); - m_Menu.StartTransitioning( SM_GoToNextScreen ); + this->SendScreenMessage( SM_BeginFadingOut, SLEEP_AFTER_TWEEN_OFF_SECONDS ); } void ScreenSelectGroup::MenuBack( PlayerNumber pn ) diff --git a/stepmania/src/ScreenSelectGroup.h b/stepmania/src/ScreenSelectGroup.h index 25cfc6c4c1..21abb6f506 100644 --- a/stepmania/src/ScreenSelectGroup.h +++ b/stepmania/src/ScreenSelectGroup.h @@ -46,7 +46,7 @@ private: Sprite m_sprExplanation; Sprite m_sprFrame; - FadingBanner m_Banner; + Banner m_Banner; BitmapText m_textNumber; Sprite m_sprContents; diff --git a/stepmania/src/StageDisplay.cpp b/stepmania/src/StageDisplay.cpp deleted file mode 100644 index 69527c7aa8..0000000000 --- a/stepmania/src/StageDisplay.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "global.h" -/* ------------------------------------------------------------------------------ - Class: StageDisplay - - Desc: See header. - - Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. - Chris Danford ------------------------------------------------------------------------------ -*/ - -#include "StageDisplay.h" -#include "GameState.h" -#include "ThemeManager.h" - - -StageDisplay::StageDisplay() -{ - LoadFromFont( THEME->GetPathTo("Fonts","Header2") ); - EnableShadow( false ); - Refresh(); -} - -void StageDisplay::Refresh() -{ - SetText( GAMESTATE->GetStageText() ); - SetDiffuse( GAMESTATE->GetStageColor() ); -} diff --git a/stepmania/src/StageDisplay.h b/stepmania/src/StageDisplay.h deleted file mode 100644 index d8ba086e37..0000000000 --- a/stepmania/src/StageDisplay.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef StageDisplay_H -#define StageDisplay_H -/* ------------------------------------------------------------------------------ - Class: StageDisplay - - Desc: Shows stage number - - Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. - Chris Danford ------------------------------------------------------------------------------ -*/ - -#include "Sprite.h" -#include "song.h" -#include "BitmapText.h" -#include "PrefsManager.h" - - -class StageDisplay : public BitmapText -{ -public: - StageDisplay(); - - void Refresh(); - -private: -}; - -#endif diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index c06f028170..d46e65bad8 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -284,6 +284,8 @@ try_metric_again: if( m_uHashForCurThemeMetrics != GetHashForFile(sCurMetricPath) || m_uHashForBaseThemeMetrics != GetHashForFile(sDefaultMetricPath) ) { + LOG->Warn( "Metrics file is out of date. Reloading..." ); + MessageBeep( MB_OK ); SwitchTheme(m_sCurThemeName); // force a reload of the metrics cache } }