Added Sprite::NewBlankSprite for use by NoteSkinManager. Removed default texture loading from Sprite::Sprite. Should fix problems with white banners and garbage on videos.
This commit is contained in:
@@ -438,14 +438,14 @@ Actor *NoteSkinManager::LoadActor( const RString &sButton, const RString &sEleme
|
|||||||
if( !PushActorTemplate(L, sButton, sElement, bSpriteOnly) )
|
if( !PushActorTemplate(L, sButton, sElement, bSpriteOnly) )
|
||||||
{
|
{
|
||||||
// ActorUtil will warn about the error
|
// ActorUtil will warn about the error
|
||||||
return new Sprite;
|
return Sprite::NewBlankSprite();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto_ptr<XNode> pNode( XmlFileUtil::XNodeFromTable(L) );
|
auto_ptr<XNode> pNode( XmlFileUtil::XNodeFromTable(L) );
|
||||||
if( pNode.get() == NULL )
|
if( pNode.get() == NULL )
|
||||||
{
|
{
|
||||||
// XNode will warn about the error
|
// XNode will warn about the error
|
||||||
return new Sprite;
|
return Sprite::NewBlankSprite();
|
||||||
}
|
}
|
||||||
|
|
||||||
LUA->Release( L );
|
LUA->Release( L );
|
||||||
@@ -460,7 +460,7 @@ Actor *NoteSkinManager::LoadActor( const RString &sButton, const RString &sEleme
|
|||||||
{
|
{
|
||||||
LuaHelpers::ReportScriptErrorFmt("%s: %s %s must be a Sprite", m_sCurrentNoteSkin.c_str(), sButton.c_str(), sElement.c_str());
|
LuaHelpers::ReportScriptErrorFmt("%s: %s %s must be a Sprite", m_sCurrentNoteSkin.c_str(), sButton.c_str(), sElement.c_str());
|
||||||
delete pRet;
|
delete pRet;
|
||||||
return new Sprite;
|
return Sprite::NewBlankSprite();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+11
-3
@@ -32,11 +32,19 @@ Sprite::Sprite()
|
|||||||
|
|
||||||
m_fTexCoordVelocityX = 0;
|
m_fTexCoordVelocityX = 0;
|
||||||
m_fTexCoordVelocityY = 0;
|
m_fTexCoordVelocityY = 0;
|
||||||
|
|
||||||
// An uninitialized sprite should be valid to display. -Kyz
|
|
||||||
Load(TEXTUREMAN->GetDefaultTextureID());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NoteSkinManager needs a sprite with a texture set to return in cases where
|
||||||
|
// the noteskin doesn't return a valid actor. I would really prefer to make
|
||||||
|
// Sprite::Sprite load the default texture, but that causes problems for
|
||||||
|
// banners on ScreenSelectMusic and videos on ScreenGameplay. So rather than
|
||||||
|
// dig through either of those, NoteSkinManager uses this special function.
|
||||||
|
Sprite* Sprite::NewBlankSprite()
|
||||||
|
{
|
||||||
|
Sprite* news= new Sprite;
|
||||||
|
news->Load(TEXTUREMAN->GetDefaultTextureID());
|
||||||
|
return news;
|
||||||
|
}
|
||||||
|
|
||||||
Sprite::~Sprite()
|
Sprite::~Sprite()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ public:
|
|||||||
Sprite( const Sprite &cpy );
|
Sprite( const Sprite &cpy );
|
||||||
virtual ~Sprite();
|
virtual ~Sprite();
|
||||||
|
|
||||||
|
// See explanation in source.
|
||||||
|
static Sprite* NewBlankSprite();
|
||||||
|
|
||||||
virtual void InitState();
|
virtual void InitState();
|
||||||
|
|
||||||
void LoadFromNode( const XNode* pNode );
|
void LoadFromNode( const XNode* pNode );
|
||||||
|
|||||||
Reference in New Issue
Block a user