From 7a3336d50dd2f7785e42af76b5ed8e167edb2d47 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 12 Feb 2003 20:19:20 +0000 Subject: [PATCH] add StringWillUseAlternate --- stepmania/src/BitmapText.cpp | 24 ++++++++++++++++++------ stepmania/src/BitmapText.h | 2 ++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/stepmania/src/BitmapText.cpp b/stepmania/src/BitmapText.cpp index 54f6e84e64..05421e74b4 100644 --- a/stepmania/src/BitmapText.cpp +++ b/stepmania/src/BitmapText.cpp @@ -231,12 +231,8 @@ void BitmapText::SetText( CString sText, CString sAlternateText ) { ASSERT( m_pFont ); - if(sAlternateText.size()) - { - if(!m_pFont->FontCompleteForString(CStringToWstring(sText)) && - m_pFont->FontCompleteForString(CStringToWstring(sAlternateText))) - sText = sAlternateText; - } + if(StringWillUseAlternate(sText, sAlternateText)) + sText = sAlternateText; if(m_szText == sText) return; @@ -250,6 +246,22 @@ void BitmapText::SetText( CString sText, CString sAlternateText ) BuildChars(); } +bool BitmapText::StringWillUseAlternate(CString sText, CString sAlternateText) const +{ + ASSERT( m_pFont ); + + /* Can't use the alternate if there isn't one. */ + if(!sAlternateText.size()) return false; + + /* False if the alternate isn't needed. */ + if(m_pFont->FontCompleteForString(CStringToWstring(sText))) return false; + + /* False if the alternate is also incomplete. */ + if(!m_pFont->FontCompleteForString(CStringToWstring(sAlternateText))) return false; + + return true; +} + void BitmapText::CropToWidth( int iMaxWidthInSourcePixels ) { iMaxWidthInSourcePixels = max( 0, iMaxWidthInSourcePixels ); diff --git a/stepmania/src/BitmapText.h b/stepmania/src/BitmapText.h index 71023e79d0..da66a3359a 100644 --- a/stepmania/src/BitmapText.h +++ b/stepmania/src/BitmapText.h @@ -40,6 +40,8 @@ public: void SetVertAlign( VertAlign va ); CString GetText() const { return m_szText; } + /* Return true if the string 's' will use an alternate string, if available. */ + bool StringWillUseAlternate(CString sText, CString sAlternateText) const; public: Font* m_pFont;