Files
itgmania212121/stepmania/src/TransitionOniFade.cpp
T

98 lines
2.4 KiB
C++

#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: TransitionOniFade
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "RageUtil.h"
#include "TransitionOniFade.h"
#include "GameConstantsAndTypes.h"
#include "PrefsManager.h"
#include "GameState.h"
TransitionOniFade::TransitionOniFade()
{
SetDiffuseColor( D3DXCOLOR(1,1,1,1) ); // white
m_quadBackground.StretchTo( CRect(SCREEN_LEFT, SCREEN_TOP, SCREEN_RIGHT, SCREEN_BOTTOM) );
m_quadStrip.StretchTo( CRect(SCREEN_LEFT, int(CENTER_Y-30), SCREEN_RIGHT, int(CENTER_Y+30)) );
m_textSongInfo.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
m_textSongInfo.TurnShadowOff();
m_textSongInfo.SetZoom( 0.5f );
m_textSongInfo.SetXY( CENTER_X, CENTER_Y );
}
TransitionOniFade::~TransitionOniFade()
{
}
void TransitionOniFade::DrawPrimitives()
{
if( m_TransitionState == opened )
return;
if( m_TransitionState == closed )
{
UpdateSongText();
}
m_quadBackground.SetDiffuseColor( D3DXCOLOR(1,1,1,SCALE(GetPercentageClosed(),0,1,-1,1)) );
m_quadBackground.Draw();
if( m_TransitionState == closed || m_TransitionState == opening_right )
{
m_quadStrip.SetDiffuseColor( D3DXCOLOR(0,0,0,SCALE(GetPercentageClosed(),0,1,0,2)) );
m_quadStrip.Draw();
m_textSongInfo.SetDiffuseColor( D3DXCOLOR(1,1,1,SCALE(GetPercentageClosed(),0,1,0,2)) );
m_textSongInfo.Draw();
}
}
void TransitionOniFade::OpenWipingRight( ScreenMessage send_when_done )
{
SetTransitionTime( 4 );
Transition::OpenWipingRight( send_when_done );
UpdateSongText();
}
void TransitionOniFade::OpenWipingLeft( ScreenMessage send_when_done )
{
SetTransitionTime( 4 );
Transition::OpenWipingLeft( send_when_done );
UpdateSongText();
}
void TransitionOniFade::CloseWipingRight(ScreenMessage send_when_done )
{
SetTransitionTime( 2 );
Transition::CloseWipingRight( send_when_done );
UpdateSongText();
}
void TransitionOniFade::CloseWipingLeft( ScreenMessage send_when_done )
{
SetTransitionTime( 2 );
Transition::CloseWipingLeft( send_when_done );
UpdateSongText();
}
void TransitionOniFade::UpdateSongText()
{
Song* pSong = GAMESTATE->m_pCurSong;
ASSERT( pSong );
m_textSongInfo.SetText( pSong->GetFullTitle() + "\n" + pSong->m_sArtist + "\n");
}