Files
itgmania212121/stepmania/src/TextBanner.cpp
T

110 lines
2.8 KiB
C++
Raw Normal View History

#include "stdafx.h"
/*
-----------------------------------------------------------------------------
File: TextBanner.h
Desc: The song's TextBanner displayed in SelectSong.
2002-05-19 01:59:48 +00:00
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
-----------------------------------------------------------------------------
*/
#include "RageUtil.h"
#include "TextBanner.h"
2002-01-16 10:01:32 +00:00
#include "ThemeManager.h"
TextBanner::TextBanner()
{
2002-03-31 07:55:25 +00:00
m_textTitle.Load( THEME->GetPathTo(FONT_TEXT_BANNER) );
m_textSubTitle.Load( THEME->GetPathTo(FONT_TEXT_BANNER) );
m_textArtist.Load( THEME->GetPathTo(FONT_TEXT_BANNER) );
2002-01-16 10:01:32 +00:00
m_textTitle.SetX( -TEXT_BANNER_WIDTH/2 );
m_textSubTitle.SetX( -TEXT_BANNER_WIDTH/2 );
m_textArtist.SetX( -TEXT_BANNER_WIDTH/2 );
m_textTitle.SetHorizAlign( align_left );
m_textSubTitle.SetHorizAlign( align_left );
m_textArtist.SetHorizAlign( align_left );
2002-05-01 19:14:55 +00:00
m_textTitle.TurnShadowOff();
m_textSubTitle.TurnShadowOff();
m_textArtist.TurnShadowOff();
this->AddActor( &m_textTitle );
this->AddActor( &m_textSubTitle );
this->AddActor( &m_textArtist );
}
2002-02-05 05:33:33 +00:00
bool TextBanner::LoadFromSong( Song* pSong )
{
2002-02-05 05:33:33 +00:00
if( pSong == NULL )
{
m_textTitle.SetText( "" );
m_textSubTitle.SetText( "" );
m_textArtist.SetText( "" );
return true;
}
2002-06-29 11:59:09 +00:00
CString sMainTitle = pSong->m_sMainTitle;
CString sSubTitle = pSong->m_sSubTitle;
2002-04-28 20:42:32 +00:00
m_textTitle.SetText( sMainTitle );
m_textSubTitle.SetText( sSubTitle );
2002-06-29 11:59:09 +00:00
m_textArtist.SetText( "/" + pSong->m_sArtist );
2002-01-16 10:01:32 +00:00
float fTitleZoom, fSubTitleZoom, fArtistZoom;
if( sSubTitle == "" )
{
2002-04-28 20:42:32 +00:00
fTitleZoom = 1.0f;
2002-01-16 10:01:32 +00:00
fSubTitleZoom = 0.0f;
2002-04-28 20:42:32 +00:00
fArtistZoom = 0.6f;
2002-01-16 10:01:32 +00:00
}
else
{
2002-06-24 22:04:31 +00:00
fTitleZoom = 1.0f;
fSubTitleZoom = 0.5f;
2002-04-28 20:42:32 +00:00
fArtistZoom = 0.6f;
2002-01-16 10:01:32 +00:00
}
m_textTitle.SetZoom( fTitleZoom );
m_textSubTitle.SetZoom( fSubTitleZoom );
m_textArtist.SetZoom( fArtistZoom );
float fZoomedTitleWidth = m_textTitle.GetWidestLineWidthInSourcePixels() * fTitleZoom;
float fZoomedSubTitleWidth = m_textSubTitle.GetWidestLineWidthInSourcePixels() * fSubTitleZoom;
float fZoomedArtistWidth = m_textArtist.GetWidestLineWidthInSourcePixels() * fArtistZoom;
// check to see if any of the lines run over the edge of the banner
if( fZoomedTitleWidth > TEXT_BANNER_WIDTH )
m_textTitle.SetZoomX( TEXT_BANNER_WIDTH / m_textTitle.GetWidestLineWidthInSourcePixels() );
if( fZoomedSubTitleWidth > TEXT_BANNER_WIDTH )
m_textSubTitle.SetZoomX( TEXT_BANNER_WIDTH / m_textSubTitle.GetWidestLineWidthInSourcePixels() );
if( fZoomedArtistWidth > TEXT_BANNER_WIDTH )
m_textArtist.SetZoomX( TEXT_BANNER_WIDTH / m_textArtist.GetWidestLineWidthInSourcePixels() );
if( sSubTitle == "" )
{
2002-06-24 22:04:31 +00:00
m_textTitle.SetY( -8 );
2002-01-16 10:01:32 +00:00
m_textSubTitle.SetY( 0 );
2002-06-24 22:04:31 +00:00
m_textArtist.SetY( 8 );
2002-01-16 10:01:32 +00:00
}
else
{
m_textTitle.SetY( -10 );
2002-04-28 20:42:32 +00:00
m_textSubTitle.SetY( 0 );
2002-01-16 10:01:32 +00:00
m_textArtist.SetY( 10 );
}
return true;
}