New branch: "notesLoaderSMA".
Prepare for allowing SMA files to be parsed. Unsure if a writer will be written.
This commit is contained in:
@@ -25,6 +25,8 @@
|
|||||||
1215D7A208C6559A00B87D8B /* ScreenGameplayNormal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1215D7A008C6559A00B87D8B /* ScreenGameplayNormal.cpp */; };
|
1215D7A208C6559A00B87D8B /* ScreenGameplayNormal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1215D7A008C6559A00B87D8B /* ScreenGameplayNormal.cpp */; };
|
||||||
2B30D6821315EA7E00044B68 /* MouseDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2B30D6801315EA7E00044B68 /* MouseDevice.cpp */; };
|
2B30D6821315EA7E00044B68 /* MouseDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2B30D6801315EA7E00044B68 /* MouseDevice.cpp */; };
|
||||||
2B30D6831315EA7E00044B68 /* MouseDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B30D6811315EA7E00044B68 /* MouseDevice.h */; };
|
2B30D6831315EA7E00044B68 /* MouseDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B30D6811315EA7E00044B68 /* MouseDevice.h */; };
|
||||||
|
2B76698B132FF71500586512 /* NotesLoaderSMA.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B766989132FF71500586512 /* NotesLoaderSMA.h */; };
|
||||||
|
2B76698C132FF71500586512 /* NotesLoaderSMA.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2B76698A132FF71500586512 /* NotesLoaderSMA.cpp */; };
|
||||||
2BA7925E1304F20D002BD8E1 /* NotesLoaderSSC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2BA7925A1304F20D002BD8E1 /* NotesLoaderSSC.cpp */; };
|
2BA7925E1304F20D002BD8E1 /* NotesLoaderSSC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2BA7925A1304F20D002BD8E1 /* NotesLoaderSSC.cpp */; };
|
||||||
2BA7925F1304F20D002BD8E1 /* NotesLoaderSSC.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BA7925B1304F20D002BD8E1 /* NotesLoaderSSC.h */; };
|
2BA7925F1304F20D002BD8E1 /* NotesLoaderSSC.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BA7925B1304F20D002BD8E1 /* NotesLoaderSSC.h */; };
|
||||||
2BA792601304F20D002BD8E1 /* NotesWriterSSC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2BA7925C1304F20D002BD8E1 /* NotesWriterSSC.cpp */; };
|
2BA792601304F20D002BD8E1 /* NotesWriterSSC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2BA7925C1304F20D002BD8E1 /* NotesWriterSSC.cpp */; };
|
||||||
@@ -1776,6 +1778,8 @@
|
|||||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
2B30D6801315EA7E00044B68 /* MouseDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseDevice.cpp; sourceTree = "<group>"; };
|
2B30D6801315EA7E00044B68 /* MouseDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseDevice.cpp; sourceTree = "<group>"; };
|
||||||
2B30D6811315EA7E00044B68 /* MouseDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseDevice.h; sourceTree = "<group>"; };
|
2B30D6811315EA7E00044B68 /* MouseDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseDevice.h; sourceTree = "<group>"; };
|
||||||
|
2B766989132FF71500586512 /* NotesLoaderSMA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NotesLoaderSMA.h; path = ../src/NotesLoaderSMA.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
2B76698A132FF71500586512 /* NotesLoaderSMA.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NotesLoaderSMA.cpp; path = ../src/NotesLoaderSMA.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
2BA7925A1304F20D002BD8E1 /* NotesLoaderSSC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NotesLoaderSSC.cpp; path = ../src/NotesLoaderSSC.cpp; sourceTree = SOURCE_ROOT; };
|
2BA7925A1304F20D002BD8E1 /* NotesLoaderSSC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NotesLoaderSSC.cpp; path = ../src/NotesLoaderSSC.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
2BA7925B1304F20D002BD8E1 /* NotesLoaderSSC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NotesLoaderSSC.h; path = ../src/NotesLoaderSSC.h; sourceTree = SOURCE_ROOT; };
|
2BA7925B1304F20D002BD8E1 /* NotesLoaderSSC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NotesLoaderSSC.h; path = ../src/NotesLoaderSSC.h; sourceTree = SOURCE_ROOT; };
|
||||||
2BA7925C1304F20D002BD8E1 /* NotesWriterSSC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NotesWriterSSC.cpp; path = ../src/NotesWriterSSC.cpp; sourceTree = SOURCE_ROOT; };
|
2BA7925C1304F20D002BD8E1 /* NotesWriterSSC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NotesWriterSSC.cpp; path = ../src/NotesWriterSSC.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -3154,6 +3158,7 @@
|
|||||||
AA6EFDC804770AF1005F316C /* DataStructures */,
|
AA6EFDC804770AF1005F316C /* DataStructures */,
|
||||||
AA6EFE5704770C7E005F316C /* FileTypes */,
|
AA6EFE5704770C7E005F316C /* FileTypes */,
|
||||||
AA6E00FE047711FF005F316C /* GlobalSingletons */,
|
AA6E00FE047711FF005F316C /* GlobalSingletons */,
|
||||||
|
2B766980132FF62B00586512 /* NoteParsing */,
|
||||||
29B97315FDCFA39411CA2CEA /* Other Source */,
|
29B97315FDCFA39411CA2CEA /* Other Source */,
|
||||||
AA8B6C7804AFD82B00D02EE9 /* pcre */,
|
AA8B6C7804AFD82B00D02EE9 /* pcre */,
|
||||||
AA6EFDBB04770A83005F316C /* Rage */,
|
AA6EFDBB04770A83005F316C /* Rage */,
|
||||||
@@ -3201,6 +3206,37 @@
|
|||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
2B766980132FF62B00586512 /* NoteParsing */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
AA6EFDED04770C79005F316C /* NotesLoader.cpp */,
|
||||||
|
AA6EFDEE04770C79005F316C /* NotesLoader.h */,
|
||||||
|
AA6EFDEF04770C79005F316C /* NotesLoaderBMS.cpp */,
|
||||||
|
AA6EFDF004770C79005F316C /* NotesLoaderBMS.h */,
|
||||||
|
AA6EFDF104770C79005F316C /* NotesLoaderDWI.cpp */,
|
||||||
|
AA6EFDF204770C79005F316C /* NotesLoaderDWI.h */,
|
||||||
|
AA6EFDF304770C79005F316C /* NotesLoaderKSF.cpp */,
|
||||||
|
AA6EFDF404770C79005F316C /* NotesLoaderKSF.h */,
|
||||||
|
3688B8510BD42DAA004186AD /* NotesLoaderMidi.cpp */,
|
||||||
|
3688B8520BD42DAA004186AD /* NotesLoaderMidi.h */,
|
||||||
|
EE2153A710A75BEE0074B01B /* NotesLoaderPMS.cpp */,
|
||||||
|
EE2153A810A75BEE0074B01B /* NotesLoaderPMS.h */,
|
||||||
|
AA6EFDF504770C79005F316C /* NotesLoaderSM.cpp */,
|
||||||
|
AA6EFDF604770C79005F316C /* NotesLoaderSM.h */,
|
||||||
|
2B76698A132FF71500586512 /* NotesLoaderSMA.cpp */,
|
||||||
|
2B766989132FF71500586512 /* NotesLoaderSMA.h */,
|
||||||
|
2BA7925A1304F20D002BD8E1 /* NotesLoaderSSC.cpp */,
|
||||||
|
2BA7925B1304F20D002BD8E1 /* NotesLoaderSSC.h */,
|
||||||
|
AA6EFDF704770C79005F316C /* NotesWriterDWI.cpp */,
|
||||||
|
AA6EFDF804770C79005F316C /* NotesWriterDWI.h */,
|
||||||
|
AA6EFDF904770C79005F316C /* NotesWriterSM.cpp */,
|
||||||
|
AA6EFDFA04770C79005F316C /* NotesWriterSM.h */,
|
||||||
|
2BA7925C1304F20D002BD8E1 /* NotesWriterSSC.cpp */,
|
||||||
|
2BA7925D1304F20D002BD8E1 /* NotesWriterSSC.h */,
|
||||||
|
);
|
||||||
|
name = NoteParsing;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
AA60E0BB067992D7008ADC41 /* Threads */ = {
|
AA60E0BB067992D7008ADC41 /* Threads */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -3776,28 +3812,6 @@
|
|||||||
AA4F38C104E2D0B700D02EE9 /* NoteDataUtil.h */,
|
AA4F38C104E2D0B700D02EE9 /* NoteDataUtil.h */,
|
||||||
AA6EFDE704770C79005F316C /* NoteDataWithScoring.cpp */,
|
AA6EFDE704770C79005F316C /* NoteDataWithScoring.cpp */,
|
||||||
AA6EFDE804770C79005F316C /* NoteDataWithScoring.h */,
|
AA6EFDE804770C79005F316C /* NoteDataWithScoring.h */,
|
||||||
AA6EFDED04770C79005F316C /* NotesLoader.cpp */,
|
|
||||||
AA6EFDEE04770C79005F316C /* NotesLoader.h */,
|
|
||||||
AA6EFDEF04770C79005F316C /* NotesLoaderBMS.cpp */,
|
|
||||||
AA6EFDF004770C79005F316C /* NotesLoaderBMS.h */,
|
|
||||||
AA6EFDF104770C79005F316C /* NotesLoaderDWI.cpp */,
|
|
||||||
AA6EFDF204770C79005F316C /* NotesLoaderDWI.h */,
|
|
||||||
AA6EFDF304770C79005F316C /* NotesLoaderKSF.cpp */,
|
|
||||||
AA6EFDF404770C79005F316C /* NotesLoaderKSF.h */,
|
|
||||||
3688B8510BD42DAA004186AD /* NotesLoaderMidi.cpp */,
|
|
||||||
3688B8520BD42DAA004186AD /* NotesLoaderMidi.h */,
|
|
||||||
EE2153A710A75BEE0074B01B /* NotesLoaderPMS.cpp */,
|
|
||||||
EE2153A810A75BEE0074B01B /* NotesLoaderPMS.h */,
|
|
||||||
AA6EFDF504770C79005F316C /* NotesLoaderSM.cpp */,
|
|
||||||
AA6EFDF604770C79005F316C /* NotesLoaderSM.h */,
|
|
||||||
2BA7925A1304F20D002BD8E1 /* NotesLoaderSSC.cpp */,
|
|
||||||
2BA7925B1304F20D002BD8E1 /* NotesLoaderSSC.h */,
|
|
||||||
AA6EFDF704770C79005F316C /* NotesWriterDWI.cpp */,
|
|
||||||
AA6EFDF804770C79005F316C /* NotesWriterDWI.h */,
|
|
||||||
AA6EFDF904770C79005F316C /* NotesWriterSM.cpp */,
|
|
||||||
AA6EFDFA04770C79005F316C /* NotesWriterSM.h */,
|
|
||||||
2BA7925C1304F20D002BD8E1 /* NotesWriterSSC.cpp */,
|
|
||||||
2BA7925D1304F20D002BD8E1 /* NotesWriterSSC.h */,
|
|
||||||
AA6EFDFB04770C79005F316C /* NoteTypes.cpp */,
|
AA6EFDFB04770C79005F316C /* NoteTypes.cpp */,
|
||||||
AA6EFDFC04770C79005F316C /* NoteTypes.h */,
|
AA6EFDFC04770C79005F316C /* NoteTypes.h */,
|
||||||
AA80C75707F20D6600C99272 /* OptionRowHandler.cpp */,
|
AA80C75707F20D6600C99272 /* OptionRowHandler.cpp */,
|
||||||
@@ -4935,6 +4949,7 @@
|
|||||||
2BA7925F1304F20D002BD8E1 /* NotesLoaderSSC.h in Headers */,
|
2BA7925F1304F20D002BD8E1 /* NotesLoaderSSC.h in Headers */,
|
||||||
2BA792611304F20D002BD8E1 /* NotesWriterSSC.h in Headers */,
|
2BA792611304F20D002BD8E1 /* NotesWriterSSC.h in Headers */,
|
||||||
2B30D6831315EA7E00044B68 /* MouseDevice.h in Headers */,
|
2B30D6831315EA7E00044B68 /* MouseDevice.h in Headers */,
|
||||||
|
2B76698B132FF71500586512 /* NotesLoaderSMA.h in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -6180,6 +6195,7 @@
|
|||||||
2BA7925E1304F20D002BD8E1 /* NotesLoaderSSC.cpp in Sources */,
|
2BA7925E1304F20D002BD8E1 /* NotesLoaderSSC.cpp in Sources */,
|
||||||
2BA792601304F20D002BD8E1 /* NotesWriterSSC.cpp in Sources */,
|
2BA792601304F20D002BD8E1 /* NotesWriterSSC.cpp in Sources */,
|
||||||
2B30D6821315EA7E00044B68 /* MouseDevice.cpp in Sources */,
|
2B30D6821315EA7E00044B68 /* MouseDevice.cpp in Sources */,
|
||||||
|
2B76698C132FF71500586512 /* NotesLoaderSMA.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "NotesLoaderSMA.h"
|
||||||
|
#include "BackgroundUtil.h"
|
||||||
|
#include "GameManager.h"
|
||||||
|
#include "MsdFile.h"
|
||||||
|
#include "NoteTypes.h"
|
||||||
|
#include "NotesLoaderSM.h" // may need this.
|
||||||
|
#include "PrefsManager.h"
|
||||||
|
#include "RageFileManager.h"
|
||||||
|
#include "RageLog.h"
|
||||||
|
#include "RageUtil.h"
|
||||||
|
#include "Song.h"
|
||||||
|
#include "SongManager.h"
|
||||||
|
#include "Steps.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
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @author Aldo Fregoso, Jason Felds (c) 2009-2011
|
||||||
|
* @section LICENSE
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||||
|
* whom the Software is furnished to do so, provided that the above
|
||||||
|
* copyright notice(s) and this permission notice appear in all copies of
|
||||||
|
* the Software and that both the above copyright notice(s) and this
|
||||||
|
* permission notice appear in supporting documentation.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||||
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||||
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||||
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
#ifndef NOTES_LOADER_SMA_H
|
||||||
|
#define NOTES_LOADER_SMA_H
|
||||||
|
|
||||||
|
#include "GameConstantsAndTypes.h"
|
||||||
|
|
||||||
|
class MsdFile;
|
||||||
|
class Song;
|
||||||
|
class Steps;
|
||||||
|
class TimingData;
|
||||||
|
|
||||||
|
/** @brief Reads a Song from a .SMA file. */
|
||||||
|
namespace SMALoader
|
||||||
|
{
|
||||||
|
void LoadFromSMTokens( RString sStepsType, RString sDescription,
|
||||||
|
RString sDifficulty, RString sMeter,
|
||||||
|
RString sMeterType, vector<RString> attackData,
|
||||||
|
RString sRadarValues, RString sNoteData,
|
||||||
|
RString sAttackData, Steps &out );
|
||||||
|
|
||||||
|
bool LoadFromDir( const RString &sPath, Song &out );
|
||||||
|
void TidyUpData( Song &song, bool bFromCache );
|
||||||
|
|
||||||
|
bool LoadFromSMFile( const RString &sPath, Song &out, bool bFromCache = false );
|
||||||
|
void GetApplicableFiles( const RString &sPath, vector<RString> &out );
|
||||||
|
bool LoadTimingFromFile( const RString &fn, TimingData &out );
|
||||||
|
void LoadTimingFromSMFile( const MsdFile &msd, TimingData &out );
|
||||||
|
bool LoadEditFromFile( RString sEditFilePath, ProfileSlot slot, bool bAddStepsToSong );
|
||||||
|
bool LoadEditFromBuffer( const RString &sBuffer, const RString &sEditFilePath, ProfileSlot slot );
|
||||||
|
bool LoadEditFromMsd( const MsdFile &msd, const RString &sEditFilePath, ProfileSlot slot, bool bAddStepsToSong );
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @author Aldo Fregoso, Jason Felds (c) 2009-2011
|
||||||
|
* @section LICENSE
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||||
|
* whom the Software is furnished to do so, provided that the above
|
||||||
|
* copyright notice(s) and this permission notice appear in all copies of
|
||||||
|
* the Software and that both the above copyright notice(s) and this
|
||||||
|
* permission notice appear in supporting documentation.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||||
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||||
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||||
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user