This doesn't really need to be a deque. Note skin inheritance is

typically only one or two deep, and we only update these rarely.
(deque uses about 500 bytes minimum in linux)
This commit is contained in:
Glenn Maynard
2006-11-30 01:05:07 +00:00
parent d33755fd24
commit 9676f351d9
2 changed files with 6 additions and 7 deletions
+5 -5
View File
@@ -73,11 +73,11 @@ void NoteSkinManager::LoadNoteSkinData( const RString &sNoteSkinName, NoteSkinDa
/* Load global NoteSkin defaults */ /* Load global NoteSkin defaults */
data_out.metrics.ReadFile( GLOBAL_BASE_NOTESKIN_DIR+"metrics.ini" ); data_out.metrics.ReadFile( GLOBAL_BASE_NOTESKIN_DIR+"metrics.ini" );
data_out.vsDirSearchOrder.push_front( GLOBAL_BASE_NOTESKIN_DIR ); data_out.vsDirSearchOrder.insert( data_out.vsDirSearchOrder.begin(), GLOBAL_BASE_NOTESKIN_DIR );
/* Load game NoteSkin defaults */ /* Load game NoteSkin defaults */
data_out.metrics.ReadFile( GetNoteSkinDir(GAME_BASE_NOTESKIN_NAME)+"metrics.ini" ); data_out.metrics.ReadFile( GetNoteSkinDir(GAME_BASE_NOTESKIN_NAME)+"metrics.ini" );
data_out.vsDirSearchOrder.push_front( GetNoteSkinDir(GAME_BASE_NOTESKIN_NAME) ); data_out.vsDirSearchOrder.insert( data_out.vsDirSearchOrder.begin(), GetNoteSkinDir(GAME_BASE_NOTESKIN_NAME) );
/* Read the current NoteSkin and all of its fallbacks */ /* Read the current NoteSkin and all of its fallbacks */
LoadNoteSkinDataRecursive( sNoteSkinName, data_out ); LoadNoteSkinDataRecursive( sNoteSkinName, data_out );
@@ -100,7 +100,7 @@ void NoteSkinManager::LoadNoteSkinDataRecursive( const RString &sNoteSkinName, N
LoadNoteSkinDataRecursive( sFallback, data_out ); LoadNoteSkinDataRecursive( sFallback, data_out );
data_out.metrics.ReadFile( sDir+"metrics.ini" ); data_out.metrics.ReadFile( sDir+"metrics.ini" );
data_out.vsDirSearchOrder.push_front( sDir ); data_out.vsDirSearchOrder.insert( data_out.vsDirSearchOrder.begin(), sDir );
depth--; depth--;
} }
@@ -220,7 +220,7 @@ try_again:
const NoteSkinData &data = iter->second; const NoteSkinData &data = iter->second;
RString sPath; // fill this in below RString sPath; // fill this in below
FOREACHD_CONST( RString, data.vsDirSearchOrder, iter ) FOREACH_CONST( RString, data.vsDirSearchOrder, iter )
{ {
if( sButtonName.empty() ) if( sButtonName.empty() )
sPath = GetPathFromDirAndFile( *iter, sElement ); sPath = GetPathFromDirAndFile( *iter, sElement );
@@ -262,7 +262,7 @@ try_again:
GetFileContents( sPath, sNewFileName, true ); GetFileContents( sPath, sNewFileName, true );
RString sRealPath; RString sRealPath;
FOREACHD_CONST( RString, data.vsDirSearchOrder, iter ) FOREACH_CONST( RString, data.vsDirSearchOrder, iter )
{ {
sRealPath = GetPathFromDirAndFile( *iter, sNewFileName ); sRealPath = GetPathFromDirAndFile( *iter, sNewFileName );
if( !sRealPath.empty() ) if( !sRealPath.empty() )
+1 -2
View File
@@ -9,7 +9,6 @@
#include "IniFile.h" #include "IniFile.h"
#include "ThemeMetric.h" #include "ThemeMetric.h"
#include <map> #include <map>
#include <deque>
class Game; class Game;
@@ -51,7 +50,7 @@ protected:
IniFile metrics; IniFile metrics;
// When looking for an element, search these dirs from head to tail. // When looking for an element, search these dirs from head to tail.
deque<RString> vsDirSearchOrder; vector<RString> vsDirSearchOrder;
}; };
void LoadNoteSkinData( const RString &sNoteSkinName, NoteSkinData& data_out ); void LoadNoteSkinData( const RString &sNoteSkinName, NoteSkinData& data_out );
void LoadNoteSkinDataRecursive( const RString &sNoteSkinName, NoteSkinData& data_out ); void LoadNoteSkinDataRecursive( const RString &sNoteSkinName, NoteSkinData& data_out );