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:
@@ -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() )
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
Reference in New Issue
Block a user