diff --git a/stepmania/src/RageTexture.cpp b/stepmania/src/RageTexture.cpp index 0071e34608..5768f48662 100644 --- a/stepmania/src/RageTexture.cpp +++ b/stepmania/src/RageTexture.cpp @@ -25,17 +25,25 @@ void RageTextureID::Init() bHotPinkColorKey = false; } -bool RageTextureID::equal(const RageTextureID &rhs) const +bool RageTextureID::operator<(const RageTextureID &rhs) const { - if(filename != rhs.filename) return false; - if(iMaxSize != rhs.iMaxSize) return false; - if(iMipMaps != rhs.iMipMaps) return false; - if(iAlphaBits != rhs.iAlphaBits) return false; - if(iColorDepth != rhs.iColorDepth) return false; - if(bDither != rhs.bDither) return false; - if(bStretch != rhs.bStretch) return false; - if(bHotPinkColorKey != rhs.bHotPinkColorKey) return false; - return true; + if(filename < rhs.filename) return true; + if(filename > rhs.filename) return false; + if(iMaxSize < rhs.iMaxSize) return true; + if(iMaxSize > rhs.iMaxSize) return false; + if(iMipMaps < rhs.iMipMaps) return true; + if(iMipMaps > rhs.iMipMaps) return false; + if(iAlphaBits < rhs.iAlphaBits) return true; + if(iAlphaBits > rhs.iAlphaBits) return false; + if(iColorDepth < rhs.iColorDepth) return true; + if(iColorDepth > rhs.iColorDepth) return false; + if(bDither < rhs.bDither) return true; + if(bDither > rhs.bDither) return false; + if(bStretch < rhs.bStretch) return true; + if(bStretch > rhs.bStretch) return false; + if(bHotPinkColorKey < rhs.bHotPinkColorKey) return true; + if(bHotPinkColorKey > rhs.bHotPinkColorKey) return false; + return false; } diff --git a/stepmania/src/RageTexture.h b/stepmania/src/RageTexture.h index 64c4decc3c..a10ece5a65 100644 --- a/stepmania/src/RageTexture.h +++ b/stepmania/src/RageTexture.h @@ -31,10 +31,7 @@ struct RageTextureID bool bStretch; bool bHotPinkColorKey; /* #FF00FF */ - /* Define an ordering so this can be used in a set<>. This defines a partial - * ordering; use equal() to see if they're equal. */ - bool operator< (const RageTextureID &rhs) const { return filename < rhs.filename; } - bool equal(const RageTextureID &rhs) const; + bool operator< (const RageTextureID &rhs) const; void Init(); diff --git a/stepmania/src/RageTextureManager.cpp b/stepmania/src/RageTextureManager.cpp index fd24682160..98f71bdd69 100644 --- a/stepmania/src/RageTextureManager.cpp +++ b/stepmania/src/RageTextureManager.cpp @@ -76,15 +76,9 @@ RageTexture* RageTextureManager::LoadTexture( RageTextureID ID ) std::map::iterator p = m_mapPathToTexture.find(ID); while(p != m_mapPathToTexture.end()) { - if(p->first.equal(ID)) { - /* Found the texture. Just increase the refcount and return it. */ - p->second->m_iRefCount++; - return p->second; - } - - /* short circuit */ - if(p->first.filename > ID.filename) break; - p++; + /* Found the texture. Just increase the refcount and return it. */ + p->second->m_iRefCount++; + return p->second; } // the texture is not already loaded. Load it.