Pump Theme Fixes/SM Extreme Fixes: Stretch on Fail caused the two colliding images to be too large.....
This commit is contained in:
@@ -32,6 +32,7 @@ Chris Danford
|
||||
#define SCROLLING_LIST_Y THEME->GetMetricI("ScreenSelectMode","ScrollingListY")
|
||||
#define GUIDE_X THEME->GetMetricF("ScreenSelectMode", "GuideX")
|
||||
#define GUIDE_Y THEME->GetMetricF("ScreenSelectMode", "GuideY")
|
||||
#define USECONFIRM THEME->GetMetricI("ScreenSelectMode","UseConfirm")
|
||||
|
||||
/************************************
|
||||
ScreenSelectMode (Constructor)
|
||||
@@ -40,11 +41,13 @@ Desc: Sets up the screen display
|
||||
|
||||
ScreenSelectMode::ScreenSelectMode() : ScreenSelect( "ScreenSelectMode" )
|
||||
{
|
||||
m_bSelected = false;
|
||||
m_ChoiceListFrame.Load( THEME->GetPathToG("ScreenSelectMode list frame"));
|
||||
m_ChoiceListFrame.SetXY( SCROLLING_LIST_X, SCROLLING_LIST_Y);
|
||||
this->AddChild( &m_ChoiceListFrame );
|
||||
|
||||
m_soundModeChange.Load( THEME->GetPathToS("ScreenSelectMode modechange"));
|
||||
m_soundConfirm.Load( THEME->GetPathToS("ScreenSelectMode modeconfirm"));
|
||||
unsigned i;
|
||||
for( i=0; i<m_aModeChoices.size(); i++ )
|
||||
{
|
||||
@@ -82,17 +85,28 @@ is terminated.
|
||||
************************************/
|
||||
ScreenSelectMode::~ScreenSelectMode()
|
||||
{
|
||||
m_ScrollingList.StopTweening();
|
||||
LOG->Trace( "ScreenSelectMode::~ScreenSelectMode()" );
|
||||
}
|
||||
|
||||
void ScreenSelectMode::MenuLeft( PlayerNumber pn )
|
||||
{
|
||||
if(m_bSelected && USECONFIRM == 1)
|
||||
{
|
||||
m_bSelected = false;
|
||||
m_ScrollingList.StopBouncing();
|
||||
}
|
||||
m_ScrollingList.Left();
|
||||
m_soundModeChange.Play();
|
||||
}
|
||||
|
||||
void ScreenSelectMode::MenuRight( PlayerNumber pn )
|
||||
{
|
||||
if(m_bSelected && USECONFIRM == 1)
|
||||
{
|
||||
m_bSelected = false;
|
||||
m_ScrollingList.StopBouncing();
|
||||
}
|
||||
m_ScrollingList.Right();
|
||||
m_soundModeChange.Play();
|
||||
}
|
||||
@@ -116,8 +130,8 @@ void ScreenSelectMode::UpdateSelectableChoices()
|
||||
if(
|
||||
(PREFSMAN->m_bJointPremium && INCLUDE_DOUBLE_IN_JP == 1 && ((GAMESTATE->GetNumSidesJoined() == 1 && mc.numSidesJoinedToPlay == 1) || (GAMESTATE->GetNumSidesJoined() == 2 && mc.numSidesJoinedToPlay == 2))) ||
|
||||
(PREFSMAN->m_bJointPremium && INCLUDE_DOUBLE_IN_JP == 0 &&
|
||||
((modename.substr(0, 6) == "DOUBLE" && GAMESTATE->GetNumSidesJoined() != 2 ) || GAMESTATE->GetNumSidesJoined() == 1 && mc.numSidesJoinedToPlay == 1) ||
|
||||
(modename.substr(0, 6) != "DOUBLE" && GAMESTATE->GetNumSidesJoined() == 2 && mc.numSidesJoinedToPlay == 2)) ||
|
||||
(((modename.substr(0, 6) == "DOUBLE" || modename.substr(0, 13) == "ARCADE-DOUBLE") && GAMESTATE->GetNumSidesJoined() != 2 ) || GAMESTATE->GetNumSidesJoined() == 1 && mc.numSidesJoinedToPlay == 1) ||
|
||||
((modename.substr(0, 6) != "DOUBLE" || modename.substr(0, 13) != "ARCADE-DOUBLE") && GAMESTATE->GetNumSidesJoined() == 2 && mc.numSidesJoinedToPlay == 2)) ||
|
||||
(!PREFSMAN->m_bJointPremium)
|
||||
)
|
||||
{
|
||||
@@ -134,6 +148,7 @@ void ScreenSelectMode::UpdateSelectableChoices()
|
||||
GraphicPaths.push_back(arrayLocations[i]);
|
||||
}
|
||||
}
|
||||
m_ScrollingList.SetSelection(0);
|
||||
m_ScrollingList.Unload();
|
||||
m_ScrollingList.Load(GraphicPaths);
|
||||
}
|
||||
@@ -141,7 +156,16 @@ void ScreenSelectMode::UpdateSelectableChoices()
|
||||
|
||||
void ScreenSelectMode::MenuStart( PlayerNumber pn )
|
||||
{
|
||||
if(!m_bSelected && USECONFIRM == 1)
|
||||
{
|
||||
m_soundConfirm.Play();
|
||||
m_ScrollingList.StartBouncing();
|
||||
m_bSelected = true;
|
||||
return;
|
||||
}
|
||||
SCREENMAN->PostMessageToTopScreen( SM_AllDoneChoosing, 0 );
|
||||
m_ScrollingList.BeginTweening(1.0f);
|
||||
m_ScrollingList.SetRotationZ(0.0f);
|
||||
}
|
||||
|
||||
int ScreenSelectMode::GetSelectionIndex( PlayerNumber pn )
|
||||
|
||||
@@ -37,6 +37,7 @@ protected:
|
||||
int m_iNumChoices;
|
||||
int m_iSelectableChoices[MAX_ELEMS];
|
||||
RageSound m_soundModeChange;
|
||||
RageSound m_soundConfirm;
|
||||
CStringArray arrayLocations;
|
||||
ScrollingList m_ScrollingList;
|
||||
Sprite m_ChoiceListFrame;
|
||||
@@ -44,4 +45,5 @@ protected:
|
||||
Sprite m_sprJoinMessage[NUM_PLAYERS];
|
||||
Sprite m_sprJoinFrame[NUM_PLAYERS];
|
||||
Sprite m_Guide;
|
||||
bool m_bSelected;
|
||||
};
|
||||
|
||||
@@ -63,6 +63,7 @@ ScrollingList::ScrollingList()
|
||||
m_iBounceDir=0;
|
||||
m_iBounceWait=0;
|
||||
m_RippleCSprite.SetXY(0,0);
|
||||
m_RippleSprite.SetXY(0,0);
|
||||
}
|
||||
|
||||
void ScrollingList::UseSpriteType(int NewSpriteType)
|
||||
@@ -96,7 +97,10 @@ void ScrollingList::StartBouncing()
|
||||
m_iBouncingState = 1;
|
||||
if(m_iSpriteType == SPRITE_TYPE_SPRITE)
|
||||
{
|
||||
|
||||
m_RippleSprite.Load( m_apSprites[m_iSelection]->GetTexturePath() );
|
||||
m_RippleSprite.SetXY( m_apSprites[m_iSelection]->GetX(), m_apSprites[m_iSelection]->GetY() );
|
||||
m_RippleSprite.SetZoom( 1.1f );
|
||||
m_RippleSprite.SetDiffuse( RageColor(1,1,1,0.5f));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -271,6 +275,55 @@ void ScrollingList::Update( float fDeltaTime )
|
||||
|
||||
if(m_iSpriteType == SPRITE_TYPE_SPRITE)
|
||||
{
|
||||
if(m_iBouncingState) // bouncing
|
||||
{
|
||||
if(m_fNextTween <= 0) // we're ready to update stuff
|
||||
{
|
||||
m_fNextTween = 0.1f; // reset the tween count
|
||||
if(m_apSprites[m_iSelection]->GetZoom() >= 1.2f && m_iBounceDir == 1) // if we're over biggest boundary
|
||||
{
|
||||
m_iBounceDir = 2; // next phase will be a wait
|
||||
m_apSprites[m_iSelection]->SetZoom( m_apSprites[m_iSelection]->GetZoom() - 0.25f); // make it smaller
|
||||
m_RippleSprite.SetZoom( m_RippleSprite.GetZoom() - 0.30f); // make the ripple smaller
|
||||
}
|
||||
else if(m_apSprites[m_iSelection]->GetZoom() <= 1.0f && m_iBounceDir == 0) // if we're over smallest boundary
|
||||
{
|
||||
m_iBounceDir = 1; // next phase will be making graphic bigger
|
||||
m_apSprites[m_iSelection]->SetZoom( m_apSprites[m_iSelection]->GetZoom() + 0.25f); // make it bigger
|
||||
m_RippleSprite.SetZoom( m_RippleSprite.GetZoom() + 0.30f); // make ripple bigger
|
||||
m_RippleSprite.SetDiffuse( RageColor(1,1,1,0.5f)); // make ripple appear semi transparent
|
||||
}
|
||||
else if(m_iBounceDir == 0 && m_apSprites[m_iSelection]->GetZoom() != 1.0f) // travelling smaller
|
||||
{
|
||||
m_apSprites[m_iSelection]->SetZoom( m_apSprites[m_iSelection]->GetZoom() - 0.25f); // make smaller
|
||||
m_RippleSprite.SetZoom( m_RippleSprite.GetZoom() - 0.30f); // make smaller
|
||||
}
|
||||
else if(m_iBounceDir == 1 && m_apSprites[m_iSelection]->GetZoom() != 1.2f) // travelling bigger
|
||||
{
|
||||
m_apSprites[m_iSelection]->SetZoom( m_apSprites[m_iSelection]->GetZoom() + 0.25f); // make bigger
|
||||
m_RippleSprite.SetZoom( m_RippleSprite.GetZoom() + 0.30f ); // make bigger
|
||||
}
|
||||
else if(m_iBounceDir == 2) // we're waiting before doing bounce processes again
|
||||
{
|
||||
if(m_iBounceWait == 0) // if we're at 0 from last time....
|
||||
m_iBounceWait = 3; // start wait at 3
|
||||
else
|
||||
m_iBounceWait--; // otherwise decrease by 1
|
||||
|
||||
if(m_iBounceWait == 2) // if we're one moment after start of wait
|
||||
m_RippleSprite.SetDiffuse( RageColor(1,1,1,0.0f)); // hide the ripple
|
||||
|
||||
if(m_iBounceWait == 0) // if we just turned to 0
|
||||
m_iBounceDir = 0; // go to the 'make smaller' stage. as we SHOULD already be pretty small, we should start increasing in size a couple phases on.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_fNextTween -= fDeltaTime; // update the tween time.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for( unsigned i=0; i<m_apSprites.size(); i++ )
|
||||
m_apSprites[i]->Update( fDeltaTime );
|
||||
}
|
||||
@@ -434,12 +487,17 @@ void ScrollingList::DrawPrimitives()
|
||||
}
|
||||
if(m_iSpriteType == SPRITE_TYPE_SPRITE)
|
||||
{
|
||||
if(m_iBouncingState)
|
||||
{
|
||||
m_RippleSprite.Draw();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_iBouncingState)
|
||||
{
|
||||
m_RippleCSprite.Draw();
|
||||
m_RippleSprite.Draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ protected:
|
||||
float m_fNextTween;
|
||||
|
||||
CroppedSprite m_RippleCSprite;
|
||||
Sprite m_RippleSprite;
|
||||
|
||||
vector<Sprite*> m_apSprites; // stores the list of elements (left to right)
|
||||
vector<CroppedSprite*> m_apCSprites; // stores the list of elements (left to right)
|
||||
|
||||
Reference in New Issue
Block a user