From e052ff78293859aa0a6ff07ffce2249728077152 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Thu, 23 Mar 2006 00:16:18 +0000 Subject: [PATCH] add FadingBanner to ScreenUnlockBrowse --- stepmania/src/Banner.cpp | 4 +-- stepmania/src/Banner.h | 4 +-- stepmania/src/FadingBanner.cpp | 6 +++++ stepmania/src/FadingBanner.h | 1 + stepmania/src/MessageManager.cpp | 1 + stepmania/src/MessageManager.h | 1 + stepmania/src/ScreenSelectMaster.cpp | 11 +++++++++ stepmania/src/ScreenSelectMaster.h | 1 + stepmania/src/ScreenUnlockBrowse.cpp | 37 ++++++++++++++++++++++++++++ stepmania/src/ScreenUnlockBrowse.h | 8 ++++++ 10 files changed, 70 insertions(+), 4 deletions(-) diff --git a/stepmania/src/Banner.cpp b/stepmania/src/Banner.cpp index 0311fc384a..e4aa38fac4 100644 --- a/stepmania/src/Banner.cpp +++ b/stepmania/src/Banner.cpp @@ -141,7 +141,7 @@ void Banner::LoadTABreakFromCharacter( Character* pCharacter ) } } -void Banner::LoadBannerFromUnlockEntry( UnlockEntry* pUE ) +void Banner::LoadBannerFromUnlockEntry( const UnlockEntry* pUE ) { if( pUE == NULL ) LoadFallback(); @@ -153,7 +153,7 @@ void Banner::LoadBannerFromUnlockEntry( UnlockEntry* pUE ) } } -void Banner::LoadBackgroundFromUnlockEntry( UnlockEntry* pUE ) +void Banner::LoadBackgroundFromUnlockEntry( const UnlockEntry* pUE ) { if( pUE == NULL ) LoadFallback(); diff --git a/stepmania/src/Banner.h b/stepmania/src/Banner.h index 83f12268f4..3a86cb1b70 100644 --- a/stepmania/src/Banner.h +++ b/stepmania/src/Banner.h @@ -29,8 +29,8 @@ public: void LoadCardFromCharacter( Character* pCharacter ); void LoadIconFromCharacter( Character* pCharacter ); void LoadTABreakFromCharacter( Character* pCharacter ); - void LoadBannerFromUnlockEntry( UnlockEntry* pUE ); - void LoadBackgroundFromUnlockEntry( UnlockEntry* pUE ); + void LoadBannerFromUnlockEntry( const UnlockEntry* pUE ); + void LoadBackgroundFromUnlockEntry( const UnlockEntry* pUE ); void LoadRoulette(); void LoadRandom(); void LoadFallback(); diff --git a/stepmania/src/FadingBanner.cpp b/stepmania/src/FadingBanner.cpp index d893cadb04..b6c298d305 100644 --- a/stepmania/src/FadingBanner.cpp +++ b/stepmania/src/FadingBanner.cpp @@ -208,6 +208,12 @@ void FadingBanner::LoadIconFromCharacter( Character* pCharacter ) m_Banner[m_iIndexLatest].LoadIconFromCharacter( pCharacter ); } +void FadingBanner::LoadBannerFromUnlockEntry( const UnlockEntry* pUE ) +{ + BeforeChange(); + m_Banner[m_iIndexLatest].LoadBannerFromUnlockEntry( pUE ); +} + void FadingBanner::LoadRoulette() { BeforeChange(); diff --git a/stepmania/src/FadingBanner.h b/stepmania/src/FadingBanner.h index 9718d159c9..5d308e332b 100644 --- a/stepmania/src/FadingBanner.h +++ b/stepmania/src/FadingBanner.h @@ -24,6 +24,7 @@ public: void LoadFromSongGroup( RString sSongGroup ); void LoadFromCourse( const Course* pCourse ); void LoadIconFromCharacter( Character* pCharacter ); + void LoadBannerFromUnlockEntry( const UnlockEntry* pUE ); void LoadRoulette(); void LoadRandom(); void LoadFallback(); diff --git a/stepmania/src/MessageManager.cpp b/stepmania/src/MessageManager.cpp index 57dd403753..56c2746456 100644 --- a/stepmania/src/MessageManager.cpp +++ b/stepmania/src/MessageManager.cpp @@ -49,6 +49,7 @@ static const char *MessageNames[] = { "MenuLeftP2", "MenuRightP1", "MenuRightP2", + "MenuSelectionChanged", "MadeChoiceP1", "MadeChoiceP2", "CoinInserted", diff --git a/stepmania/src/MessageManager.h b/stepmania/src/MessageManager.h index 54c40efb66..bc6c008d04 100644 --- a/stepmania/src/MessageManager.h +++ b/stepmania/src/MessageManager.h @@ -44,6 +44,7 @@ enum Message Message_MenuLeftP2, Message_MenuRightP1, Message_MenuRightP2, + Message_MenuSelectionChanged, Message_MadeChoiceP1, Message_MadeChoiceP2, Message_CoinInserted, diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index 140f5af406..7ed1040555 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -23,6 +23,13 @@ RString OPTION_ORDER_NAME( size_t dir ) { return "OptionOrder"+MenuDirToSt REGISTER_SCREEN_CLASS( ScreenSelectMaster ); +ScreenSelectMaster::ScreenSelectMaster() +{ + ZERO( m_iChoice ); + ZERO( m_bChosen ); + m_fLockInputSecs = 0; +} + void ScreenSelectMaster::Init() { SHOW_ICON.Load( m_sName, "ShowIcon" ); @@ -398,6 +405,7 @@ void ScreenSelectMaster::MenuLeft( const InputEventPlus &input ) m_TrackingRepeatingInput = input.MenuI; m_soundChange.Play(); MESSAGEMAN->Broadcast( (Message)(Message_MenuLeftP1+pn) ); + MESSAGEMAN->Broadcast( (Message)(Message_MenuSelectionChanged) ); } } @@ -420,6 +428,7 @@ void ScreenSelectMaster::MenuRight( const InputEventPlus &input ) m_TrackingRepeatingInput = input.MenuI; m_soundChange.Play(); MESSAGEMAN->Broadcast( (Message)(Message_MenuRightP1+pn) ); + MESSAGEMAN->Broadcast( (Message)(Message_MenuSelectionChanged) ); } } @@ -442,6 +451,7 @@ void ScreenSelectMaster::MenuUp( const InputEventPlus &input ) m_TrackingRepeatingInput = input.MenuI; m_soundChange.Play(); MESSAGEMAN->Broadcast( (Message)(Message_MenuUpP1+pn) ); + MESSAGEMAN->Broadcast( (Message)(Message_MenuSelectionChanged) ); } } @@ -464,6 +474,7 @@ void ScreenSelectMaster::MenuDown( const InputEventPlus &input ) m_TrackingRepeatingInput = input.MenuI; m_soundChange.Play(); MESSAGEMAN->Broadcast( (Message)(Message_MenuDownP1+pn) ); + MESSAGEMAN->Broadcast( (Message)(Message_MenuSelectionChanged) ); } } diff --git a/stepmania/src/ScreenSelectMaster.h b/stepmania/src/ScreenSelectMaster.h index fb3437f566..b121b98561 100644 --- a/stepmania/src/ScreenSelectMaster.h +++ b/stepmania/src/ScreenSelectMaster.h @@ -11,6 +11,7 @@ class ScreenSelectMaster : public ScreenSelect { public: + ScreenSelectMaster(); virtual void Init(); virtual void BeginScreen(); diff --git a/stepmania/src/ScreenUnlockBrowse.cpp b/stepmania/src/ScreenUnlockBrowse.cpp index 40802787c0..992c584ec3 100644 --- a/stepmania/src/ScreenUnlockBrowse.cpp +++ b/stepmania/src/ScreenUnlockBrowse.cpp @@ -21,6 +21,20 @@ void ScreenUnlockBrowse::Init() } ScreenSelectMaster::Init(); + + m_banner.SetName( "Banner" ); + this->AddChild( &m_banner ); + + this->SortByDrawOrder(); + + this->SubscribeToMessage( Message_MenuSelectionChanged ); +} + +void ScreenUnlockBrowse::BeginScreen() +{ + ScreenSelectMaster::BeginScreen(); + + HandleMessage( MessageToString(Message_MenuSelectionChanged) ); } void ScreenUnlockBrowse::MenuStart( PlayerNumber pn ) @@ -29,6 +43,29 @@ void ScreenUnlockBrowse::MenuStart( PlayerNumber pn ) this->PostScreenMessage( SM_BeginFadingOut, 0 ); } +void ScreenUnlockBrowse::TweenOnScreen() +{ + SET_XY_AND_ON_COMMAND( m_banner ); + ScreenSelectMaster::TweenOnScreen(); +} + +void ScreenUnlockBrowse::TweenOffScreen() +{ + OFF_COMMAND( m_banner ); + ScreenSelectMaster::TweenOffScreen(); +} + +void ScreenUnlockBrowse::HandleMessage( const RString& sMessage ) +{ + if( sMessage == MessageToString(Message_MenuSelectionChanged) ) + { + int iSelection = this->GetSelectionIndex(PLAYER_1); + const UnlockEntry &ue = UNLOCKMAN->m_UnlockEntries[ iSelection ]; + m_banner.LoadBannerFromUnlockEntry( &ue ); + } + + ScreenSelectMaster::HandleMessage( sMessage ); +} /* * (c) 2006 Chris Danford diff --git a/stepmania/src/ScreenUnlockBrowse.h b/stepmania/src/ScreenUnlockBrowse.h index 073f583bbc..17113f2eae 100644 --- a/stepmania/src/ScreenUnlockBrowse.h +++ b/stepmania/src/ScreenUnlockBrowse.h @@ -2,13 +2,21 @@ #define ScreenUnlockBrowse_H #include "ScreenSelectMaster.h" +#include "FadingBanner.h" class ScreenUnlockBrowse : public ScreenSelectMaster { public: virtual void Init(); + virtual void BeginScreen(); virtual void MenuStart( PlayerNumber pn ); + + virtual void TweenOnScreen(); + virtual void TweenOffScreen(); + virtual void HandleMessage( const RString& sMessage ); + protected: + FadingBanner m_banner; }; #endif