fix dumb diagonal banners in BGAs
This commit is contained in:
@@ -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; i<m_iNumParticles; i++ )
|
||||
{
|
||||
m_Sprites.push_back(new Sprite);
|
||||
m_Sprites.push_back(NewSprite(IsBanner));
|
||||
m_Sprites.back()->Load( 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; i<NumSprites; i++ )
|
||||
{
|
||||
m_Sprites.push_back(new Sprite);
|
||||
m_Sprites.push_back(NewSprite(IsBanner));
|
||||
m_Sprites.back()->Load( ID );
|
||||
m_Sprites.back()->EnableTextureWrapping( true ); // gets rid of some "cracks"
|
||||
m_Sprites.back()->SetZoom( randomf(m_fZoomMin,m_fZoomMax) );
|
||||
|
||||
Reference in New Issue
Block a user