[notesloader] More abstracting.
This commit is contained in:
@@ -13,9 +13,6 @@
|
|||||||
#include "Attack.h"
|
#include "Attack.h"
|
||||||
#include "PrefsManager.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 )
|
bool SMLoader::LoadFromDir( const RString &sPath, Song &out )
|
||||||
{
|
{
|
||||||
vector<RString> aFileNames;
|
vector<RString> aFileNames;
|
||||||
@@ -23,13 +20,13 @@ bool SMLoader::LoadFromDir( const RString &sPath, Song &out )
|
|||||||
|
|
||||||
if( aFileNames.size() > 1 )
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT( aFileNames.size() == 1 );
|
ASSERT( aFileNames.size() == 1 );
|
||||||
//ASSERT( aFileNames.size() >= 1 );
|
|
||||||
|
|
||||||
return LoadFromSimfile( sPath + aFileNames[0], out );
|
return LoadFromSimfile( sPath + aFileNames[0], out );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -15,6 +15,9 @@ class TimingData;
|
|||||||
* This was brought in from StepMania 4's recent betas. */
|
* This was brought in from StepMania 4's recent betas. */
|
||||||
const float FAST_BPM_WARP = 9999999.f;
|
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. */
|
/** @brief Reads a Song from an .SM file. */
|
||||||
struct SMLoader
|
struct SMLoader
|
||||||
{
|
{
|
||||||
@@ -24,7 +27,13 @@ struct SMLoader
|
|||||||
|
|
||||||
virtual ~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.
|
* @brief Perform some cleanup on the loaded song.
|
||||||
* @param song a reference to the song that may need cleaning up.
|
* @param song a reference to the song that may need cleaning up.
|
||||||
|
|||||||
@@ -14,25 +14,6 @@
|
|||||||
#include "Steps.h"
|
#include "Steps.h"
|
||||||
#include "Attack.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 )
|
void SMALoader::ProcessMultipliers( TimingData &out, const int iRowsPerBeat, const RString sParam )
|
||||||
{
|
{
|
||||||
vector<RString> arrayMultiplierExpressions;
|
vector<RString> arrayMultiplierExpressions;
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ enum SMALoadingStates
|
|||||||
struct SMALoader : public SMLoader
|
struct SMALoader : public SMLoader
|
||||||
{
|
{
|
||||||
SMALoader() : SMLoader(".sma") {}
|
SMALoader() : SMLoader(".sma") {}
|
||||||
bool LoadFromDir( const RString &sPath, Song &out );
|
|
||||||
|
|
||||||
virtual bool LoadFromSimfile( const RString &sPath, Song &out, bool bFromCache = false );
|
virtual bool LoadFromSimfile( const RString &sPath, Song &out, bool bFromCache = false );
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,26 +14,6 @@
|
|||||||
#include "Attack.h"
|
#include "Attack.h"
|
||||||
#include "PrefsManager.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 )
|
void SSCLoader::ProcessWarps( TimingData &out, const RString sParam, const float fVersion )
|
||||||
{
|
{
|
||||||
vector<RString> arrayWarpExpressions;
|
vector<RString> arrayWarpExpressions;
|
||||||
|
|||||||
@@ -34,13 +34,6 @@ struct SSCLoader : public SMLoader
|
|||||||
{
|
{
|
||||||
SSCLoader() : SMLoader(".ssc") {}
|
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.
|
* @brief Attempt to load the specified ssc file.
|
||||||
* @param sPath a const reference to the path on the hard drive to check.
|
* @param sPath a const reference to the path on the hard drive to check.
|
||||||
|
|||||||
Reference in New Issue
Block a user