From d412461f6f78fb694a9d3bcf04b8de5eb052462c Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 21 Apr 2003 03:08:02 +0000 Subject: [PATCH] fix dumb diagonal banners in BGAs --- stepmania/src/BGAnimationLayer.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/stepmania/src/BGAnimationLayer.cpp b/stepmania/src/BGAnimationLayer.cpp index 9e85c8e442..100edf43f3 100644 --- a/stepmania/src/BGAnimationLayer.cpp +++ b/stepmania/src/BGAnimationLayer.cpp @@ -23,7 +23,7 @@ #include "song.h" #include "ThemeManager.h" #include "ActorCollision.h" - +#include "CroppedSprite.h" @@ -434,6 +434,12 @@ void BGAnimationLayer::LoadFromAniLayerFile( CString sPath ) */ } +static Sprite *NewSprite(bool banner) +{ + if(banner) return new CroppedSprite; + return new Sprite; +} + void BGAnimationLayer::LoadFromIni( CString sAniDir, CString sLayer ) { @@ -448,6 +454,8 @@ void BGAnimationLayer::LoadFromIni( CString sAniDir, CString sLayer ) IniFile ini(sPathToIni); ini.ReadFile(); + bool IsBanner = false; + CString sFile; ini.GetValue( sLayer, "File", sFile ); @@ -468,6 +476,7 @@ void BGAnimationLayer::LoadFromIni( CString sAniDir, CString sLayer ) sPath = pSong->GetBannerPath(); else sPath = THEME->GetPathToG("Common fallback banner"); + IsBanner = true; } else if( sFile == "" ) { @@ -505,13 +514,13 @@ void BGAnimationLayer::LoadFromIni( CString sAniDir, CString sLayer ) switch( m_Type ) { case TYPE_SPRITE: - m_Sprites.push_back(new Sprite); + m_Sprites.push_back(NewSprite(IsBanner)); m_Sprites.back()->Load( sPath ); m_Sprites.back()->SetXY( CENTER_X, CENTER_Y ); break; case TYPE_STRETCH: { - m_Sprites.push_back(new Sprite); + m_Sprites.push_back(NewSprite(IsBanner)); RageTextureID ID(sPath); ID.bStretch = true; m_Sprites.back()->LoadBG( ID ); @@ -523,7 +532,7 @@ void BGAnimationLayer::LoadFromIni( CString sAniDir, CString sLayer ) { for( int i=0; iLoad( sPath ); m_Sprites.back()->SetXY( randomf(SCREEN_LEFT,SCREEN_RIGHT), randomf(SCREEN_TOP,SCREEN_BOTTOM) ); m_Sprites.back()->SetZoom( randomf(m_fZoomMin,m_fZoomMax) ); @@ -554,7 +563,7 @@ void BGAnimationLayer::LoadFromIni( CString sAniDir, CString sLayer ) unsigned NumSprites = m_iNumTilesWide * m_iNumTilesHigh; for( unsigned i=0; iLoad( ID ); m_Sprites.back()->EnableTextureWrapping( true ); // gets rid of some "cracks" m_Sprites.back()->SetZoom( randomf(m_fZoomMin,m_fZoomMax) );