diff --git a/stepmania/src/BitmapText.cpp b/stepmania/src/BitmapText.cpp index a661f909ad..5022927e6a 100644 --- a/stepmania/src/BitmapText.cpp +++ b/stepmania/src/BitmapText.cpp @@ -63,6 +63,12 @@ BitmapText::~BitmapText() BitmapText::BitmapText( const BitmapText &cpy ): Actor( cpy ) +{ + m_pFont = NULL; + *this = cpy; +} + +BitmapText &BitmapText::operator =( const BitmapText &cpy ) { #define CPY(a) a = cpy.a CPY( m_sText ); @@ -76,10 +82,15 @@ BitmapText::BitmapText( const BitmapText &cpy ): CPY( m_pTextures ); #undef CPY + if( m_pFont ) + FONT->UnloadFont( m_pFont ); + if( cpy.m_pFont != NULL ) m_pFont = FONT->CopyFont( cpy.m_pFont ); else m_pFont = NULL; + + return *this; } void BitmapText::LoadFromNode( const CString& sDir, const XNode* pNode ) diff --git a/stepmania/src/BitmapText.h b/stepmania/src/BitmapText.h index f9f0c1717c..29ad58be9f 100644 --- a/stepmania/src/BitmapText.h +++ b/stepmania/src/BitmapText.h @@ -13,6 +13,7 @@ class BitmapText : public Actor public: BitmapText(); BitmapText( const BitmapText &cpy ); + BitmapText &operator =( const BitmapText &cpy ); virtual ~BitmapText(); virtual void LoadFromNode( const CString& sDir, const XNode* pNode );