Changed preview length setting to occur when the special preview file is set in edit mode.
This commit is contained in:
@@ -1075,6 +1075,7 @@ bool SSCLoader::LoadEditFromMsd(const MsdFile &msd,
|
|||||||
|
|
||||||
StepsTagInfo reused_steps_info(&*this, pSong, sEditFilePath, false);
|
StepsTagInfo reused_steps_info(&*this, pSong, sEditFilePath, false);
|
||||||
reused_steps_info.for_load_edit= true;
|
reused_steps_info.for_load_edit= true;
|
||||||
|
reused_steps_info.timing= &stepsTiming;
|
||||||
|
|
||||||
for(unsigned int i = 0; i < msd.GetNumValues(); ++i)
|
for(unsigned int i = 0; i < msd.GetNumValues(); ++i)
|
||||||
{
|
{
|
||||||
@@ -1088,7 +1089,7 @@ bool SSCLoader::LoadEditFromMsd(const MsdFile &msd,
|
|||||||
reused_steps_info.params= &sParams;
|
reused_steps_info.params= &sParams;
|
||||||
steps_handler_map_t::iterator handler=
|
steps_handler_map_t::iterator handler=
|
||||||
parser_helper.steps_tag_handlers.find(sValueName);
|
parser_helper.steps_tag_handlers.find(sValueName);
|
||||||
if(handler != parser_helper.steps_tag_handlers.end())
|
if(pNewNotes != NULL && handler != parser_helper.steps_tag_handlers.end())
|
||||||
{
|
{
|
||||||
handler->second(reused_steps_info);
|
handler->second(reused_steps_info);
|
||||||
}
|
}
|
||||||
@@ -1180,6 +1181,7 @@ bool SSCLoader::LoadEditFromMsd(const MsdFile &msd,
|
|||||||
this->SetSongTitle(sParams[1]);
|
this->SetSongTitle(sParams[1]);
|
||||||
sSongFullTitle.Replace('\\', '/');
|
sSongFullTitle.Replace('\\', '/');
|
||||||
pSong = SONGMAN->FindSong(sSongFullTitle);
|
pSong = SONGMAN->FindSong(sSongFullTitle);
|
||||||
|
reused_steps_info.song= pSong;
|
||||||
if(pSong == NULL)
|
if(pSong == NULL)
|
||||||
{
|
{
|
||||||
LOG->UserLog("Edit file", sEditFilePath,
|
LOG->UserLog("Edit file", sEditFilePath,
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
#include "NotesWriterSM.h"
|
#include "NotesWriterSM.h"
|
||||||
#include "PrefsManager.h"
|
#include "PrefsManager.h"
|
||||||
#include "RageSoundManager.h"
|
#include "RageSoundManager.h"
|
||||||
|
#include "RageSoundReader_FileReader.h"
|
||||||
#include "RageInput.h"
|
#include "RageInput.h"
|
||||||
#include "RageLog.h"
|
#include "RageLog.h"
|
||||||
#include "ScreenDimensions.h"
|
#include "ScreenDimensions.h"
|
||||||
@@ -4457,7 +4458,25 @@ static void ChangeCredit( const RString &sNew )
|
|||||||
static void ChangePreview(const RString& sNew)
|
static void ChangePreview(const RString& sNew)
|
||||||
{
|
{
|
||||||
Song* pSong = GAMESTATE->m_pCurSong;
|
Song* pSong = GAMESTATE->m_pCurSong;
|
||||||
|
if(!sNew.empty())
|
||||||
|
{
|
||||||
|
RString error;
|
||||||
|
RageSoundReader* sample= RageSoundReader_FileReader::OpenFile(pSong->GetPreviewMusicPath(), error);
|
||||||
|
if(sample == NULL)
|
||||||
|
{
|
||||||
|
LOG->UserLog( "Preview file", pSong->GetPreviewMusicPath(), "couldn't be opened: %s", error.c_str() );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pSong->m_fMusicSampleLengthSeconds= sample->GetLength() / 1000.0f;
|
||||||
pSong->m_PreviewFile= sNew;
|
pSong->m_PreviewFile= sNew;
|
||||||
|
delete sample;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pSong->m_PreviewFile= sNew;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ChangeMainTitleTranslit( const RString &sNew )
|
static void ChangeMainTitleTranslit( const RString &sNew )
|
||||||
|
|||||||
@@ -627,22 +627,6 @@ void Song::TidyUpData( bool fromCache, bool /* duringCache */ )
|
|||||||
m_fMusicLengthSeconds);
|
m_fMusicLengthSeconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!m_PreviewFile.empty() && m_fMusicSampleStartSeconds == -1)
|
|
||||||
{
|
|
||||||
RString error;
|
|
||||||
RageSoundReader* sample= RageSoundReader_FileReader::OpenFile(GetPreviewMusicPath(), error);
|
|
||||||
if(sample == NULL)
|
|
||||||
{
|
|
||||||
LOG->UserLog( "Preview file", GetPreviewMusicPath(), "couldn't be opened: %s", error.c_str() );
|
|
||||||
m_PreviewFile= "";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_fMusicSampleLengthSeconds= sample->GetLength() / 1000.0f;
|
|
||||||
delete sample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_fMusicLengthSeconds < 0 )
|
if( m_fMusicLengthSeconds < 0 )
|
||||||
{
|
{
|
||||||
LOG->UserLog("Sound file",
|
LOG->UserLog("Sound file",
|
||||||
|
|||||||
Reference in New Issue
Block a user