Improve out of bounds setstate error message. [shakesoda]
This commit is contained in:
+13
-6
@@ -706,10 +706,12 @@ int Sprite::GetNumStates() const
|
||||
|
||||
void Sprite::SetState( int iNewState )
|
||||
{
|
||||
// This assert will likely trigger if the "missing" theme element graphic
|
||||
// is loaded in place of a multi-frame sprite. We want to know about these
|
||||
// problems in debug builds, but they're not fatal.
|
||||
//
|
||||
/*
|
||||
* This assert will likely trigger if the "missing" theme element graphic
|
||||
* is loaded in place of a multi-frame sprite. We want to know about these
|
||||
* problems in debug builds, but they're not fatal.
|
||||
*/
|
||||
|
||||
// Never warn about setting state 0.
|
||||
if( iNewState != 0 && (iNewState < 0 || iNewState >= (int)m_States.size()) )
|
||||
{
|
||||
@@ -719,8 +721,13 @@ void Sprite::SetState( int iNewState )
|
||||
{
|
||||
RString sError;
|
||||
if( m_pTexture )
|
||||
sError = ssprintf("A Sprite '%s' (\"%s\") tried to set state index %d, but it has only %u states.",
|
||||
m_pTexture->GetID().filename.c_str(), this->m_sName.c_str(), iNewState, unsigned(m_States.size()));
|
||||
sError = ssprintf("A Sprite '%s' (\"%s\") tried to set state to frame %d, but it has only %u frames.",
|
||||
/*
|
||||
* Using the state directly tends to give you an error message like "tried to set frame 6 of 6"
|
||||
* which is very confusing if you don't know that one is 0-indexed and the other is 1-indexed.
|
||||
* - Colby
|
||||
*/
|
||||
m_pTexture->GetID().filename.c_str(), this->m_sName.c_str(), iNewState+1, unsigned(m_States.size()));
|
||||
else
|
||||
sError = ssprintf("A Sprite (\"%s\") tried to set state index %d, but no texture is loaded.",
|
||||
this->m_sName.c_str(), iNewState );
|
||||
|
||||
Reference in New Issue
Block a user