[notesloader] More abstracting.

This commit is contained in:
Jason Felds
2011-06-09 21:41:56 -04:00
parent 1ec548442d
commit bb642827a8
6 changed files with 13 additions and 54 deletions
+3 -6
View File
@@ -13,9 +13,6 @@
#include "Attack.h"
#include "PrefsManager.h"
/** @brief The maximum file size for edits. */
const int MAX_EDIT_STEPS_SIZE_BYTES = 60*1024; // 60KB
bool SMLoader::LoadFromDir( const RString &sPath, Song &out )
{
vector<RString> aFileNames;
@@ -23,13 +20,13 @@ bool SMLoader::LoadFromDir( const RString &sPath, Song &out )
if( aFileNames.size() > 1 )
{
LOG->UserLog( "Song", sPath, "has more than one SM file. There can be only one (unless you are using TougaKiryuu's AnimeMix files somehow, which assume a different version of StepMania)!" );
// Need to break this up first.
RString tmp = "Song " + sPath + " has more than one";
LOG->UserLog(tmp, this->GetFileExtension(), "file. There can only be one!");
return false;
}
ASSERT( aFileNames.size() == 1 );
//ASSERT( aFileNames.size() >= 1 );
return LoadFromSimfile( sPath + aFileNames[0], out );
}
+10 -1
View File
@@ -15,6 +15,9 @@ class TimingData;
* This was brought in from StepMania 4's recent betas. */
const float FAST_BPM_WARP = 9999999.f;
/** @brief The maximum file size for edits. */
const int MAX_EDIT_STEPS_SIZE_BYTES = 60*1024; // 60KB
/** @brief Reads a Song from an .SM file. */
struct SMLoader
{
@@ -24,7 +27,13 @@ struct SMLoader
virtual ~SMLoader() {}
bool LoadFromDir( const RString &sPath, Song &out );
/**
* @brief Attempt to load a song from a specified path.
* @param sPath a const reference to the path on the hard drive to check.
* @param out a reference to the Song that will retrieve the song information.
* @return its success or failure.
*/
virtual bool LoadFromDir( const RString &sPath, Song &out );
/**
* @brief Perform some cleanup on the loaded song.
* @param song a reference to the song that may need cleaning up.
-19
View File
@@ -14,25 +14,6 @@
#include "Steps.h"
#include "Attack.h"
/**
* @brief A custom .edit file can only be so big before we have to reject it.
*/
const int MAX_EDIT_STEPS_SIZE_BYTES = 60*1024; // 60 KB
bool SMALoader::LoadFromDir( const RString &sPath, Song &out )
{
vector<RString> aFileNames;
GetApplicableFiles( sPath, aFileNames );
if( aFileNames.size() > 1 )
{
LOG->UserLog( "Song", sPath, "has more than one SMA file. Only one SMA file is allowed per song." );
return false;
}
ASSERT( aFileNames.size() == 1 );
return LoadFromSimfile( sPath + aFileNames[0], out );
}
void SMALoader::ProcessMultipliers( TimingData &out, const int iRowsPerBeat, const RString sParam )
{
vector<RString> arrayMultiplierExpressions;
-1
View File
@@ -24,7 +24,6 @@ enum SMALoadingStates
struct SMALoader : public SMLoader
{
SMALoader() : SMLoader(".sma") {}
bool LoadFromDir( const RString &sPath, Song &out );
virtual bool LoadFromSimfile( const RString &sPath, Song &out, bool bFromCache = false );
/**
-20
View File
@@ -14,26 +14,6 @@
#include "Attack.h"
#include "PrefsManager.h"
/**
* @brief A custom .edit file can only be so big before we have to reject it.
*/
const int MAX_EDIT_STEPS_SIZE_BYTES = 60*1024; // 60 KB
bool SSCLoader::LoadFromDir( const RString &sPath, Song &out )
{
vector<RString> aFileNames;
GetApplicableFiles( sPath, aFileNames );
if( aFileNames.size() > 1 )
{
LOG->UserLog( "Song", sPath, "has more than one SSC file. Only one SSC file is allowed per song." );
return false;
}
ASSERT( aFileNames.size() == 1 );
return LoadFromSimfile( sPath + aFileNames[0], out );
}
void SSCLoader::ProcessWarps( TimingData &out, const RString sParam, const float fVersion )
{
vector<RString> arrayWarpExpressions;
-7
View File
@@ -34,13 +34,6 @@ struct SSCLoader : public SMLoader
{
SSCLoader() : SMLoader(".ssc") {}
/**
* @brief Attempt to load a song from a specified path.
* @param sPath a const reference to the path on the hard drive to check.
* @param out a reference to the Song that will retrieve the song information.
* @return its success or failure.
*/
bool LoadFromDir( const RString &sPath, Song &out );
/**
* @brief Attempt to load the specified ssc file.
* @param sPath a const reference to the path on the hard drive to check.