merge.
a bit more about autokeysounds: when I add this RageSoundReader_Extend, I'm not sure whether the "autokeysounds are delayed" bug will come back or not. Someone on Windows please test it.
This commit is contained in:
@@ -9,6 +9,9 @@ change to JSON, but it is unsure if this will be done.
|
|||||||
Implement .ssc at your own risk.
|
Implement .ssc at your own risk.
|
||||||
_______________________________________________________________________________
|
_______________________________________________________________________________
|
||||||
|
|
||||||
|
[v0.80] - Wolfman2000
|
||||||
|
* All timing tags are allowed regardless of timing.
|
||||||
|
|
||||||
[v0.79] - freem
|
[v0.79] - freem
|
||||||
* Back to three significant decimal places.
|
* Back to three significant decimal places.
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,11 @@ ________________________________________________________________________________
|
|||||||
StepMania 5.0 $next | 2011????
|
StepMania 5.0 $next | 2011????
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
2011/09/12
|
||||||
|
----------
|
||||||
|
* [NotesLoaderSSC/WriterSSC] Allow all timing tags regardless of what timing
|
||||||
|
is used. [Wolfman2000]
|
||||||
|
|
||||||
2011/09/11
|
2011/09/11
|
||||||
----------
|
----------
|
||||||
* [ScreenEvaluation] Added "evaluation full combo W1" and
|
* [ScreenEvaluation] Added "evaluation full combo W1" and
|
||||||
|
|||||||
@@ -209,6 +209,8 @@ function ShowStandardDecoration( MetricsName )
|
|||||||
return THEME:GetMetric(Var "LoadingScreen","Show"..MetricsName)
|
return THEME:GetMetric(Var "LoadingScreen","Show"..MetricsName)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--blank actor because these come in handy from time to time
|
||||||
|
NullActor = { Class="Actor", _Source="(null actor)" }
|
||||||
|
|
||||||
-- (c) 2006 Glenn Maynard
|
-- (c) 2006 Glenn Maynard
|
||||||
-- All rights reserved.
|
-- All rights reserved.
|
||||||
|
|||||||
+28
-40
@@ -946,33 +946,27 @@ void NoteField::DrawPrimitives()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( GAMESTATE->m_bIsUsingStepTiming )
|
// Tickcount text
|
||||||
|
for (i = 0; i < segs[SEGMENT_TICKCOUNT].size(); i++)
|
||||||
{
|
{
|
||||||
// Tickcount text
|
TickcountSegment *seg = static_cast<TickcountSegment *>(segs[SEGMENT_TICKCOUNT][i]);
|
||||||
for (i = 0; i < segs[SEGMENT_TICKCOUNT].size(); i++)
|
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
||||||
{
|
{
|
||||||
TickcountSegment *seg = static_cast<TickcountSegment *>(segs[SEGMENT_TICKCOUNT][i]);
|
float fBeat = seg->GetBeat();
|
||||||
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
if( IS_ON_SCREEN(fBeat) )
|
||||||
{
|
DrawTickcountText( fBeat, seg->GetTicks() );
|
||||||
float fBeat = seg->GetBeat();
|
|
||||||
if( IS_ON_SCREEN(fBeat) )
|
|
||||||
DrawTickcountText( fBeat, seg->GetTicks() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( GAMESTATE->m_bIsUsingStepTiming )
|
// Combo text
|
||||||
|
for (i = 0; i < segs[SEGMENT_COMBO].size(); i++)
|
||||||
{
|
{
|
||||||
// Combo text
|
ComboSegment *seg = static_cast<ComboSegment *>(segs[SEGMENT_COMBO][i]);
|
||||||
for (i = 0; i < segs[SEGMENT_COMBO].size(); i++)
|
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
||||||
{
|
{
|
||||||
ComboSegment *seg = static_cast<ComboSegment *>(segs[SEGMENT_COMBO][i]);
|
float fBeat = seg->GetBeat();
|
||||||
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
if( IS_ON_SCREEN(fBeat) )
|
||||||
{
|
DrawComboText( fBeat, seg->GetCombo(), seg->GetMissCombo() );
|
||||||
float fBeat = seg->GetBeat();
|
|
||||||
if( IS_ON_SCREEN(fBeat) )
|
|
||||||
DrawComboText( fBeat, seg->GetCombo(), seg->GetMissCombo() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -988,34 +982,28 @@ void NoteField::DrawPrimitives()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( GAMESTATE->m_bIsUsingStepTiming )
|
// Speed text
|
||||||
|
for (i = 0; i < segs[SEGMENT_SPEED].size(); i++)
|
||||||
{
|
{
|
||||||
// Speed text
|
SpeedSegment *seg = static_cast<SpeedSegment *>(segs[SEGMENT_SPEED][i]);
|
||||||
for (i = 0; i < segs[SEGMENT_SPEED].size(); i++)
|
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
||||||
{
|
{
|
||||||
SpeedSegment *seg = static_cast<SpeedSegment *>(segs[SEGMENT_SPEED][i]);
|
float fBeat = seg->GetBeat();
|
||||||
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
if( IS_ON_SCREEN(fBeat) )
|
||||||
{
|
DrawSpeedText(fBeat, seg->GetRatio(),
|
||||||
float fBeat = seg->GetBeat();
|
seg->GetDelay(), seg->GetUnit() );
|
||||||
if( IS_ON_SCREEN(fBeat) )
|
|
||||||
DrawSpeedText(fBeat, seg->GetRatio(),
|
|
||||||
seg->GetDelay(), seg->GetUnit() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fake text
|
// Fake text
|
||||||
if( GAMESTATE->m_bIsUsingStepTiming )
|
for (i = 0; i < segs[SEGMENT_FAKE].size(); i++)
|
||||||
{
|
{
|
||||||
for (i = 0; i < segs[SEGMENT_FAKE].size(); i++)
|
FakeSegment *seg = static_cast<FakeSegment *>(segs[SEGMENT_FAKE][i]);
|
||||||
|
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
||||||
{
|
{
|
||||||
FakeSegment *seg = static_cast<FakeSegment *>(segs[SEGMENT_FAKE][i]);
|
float fBeat = seg->GetBeat();
|
||||||
if( seg->GetRow() >= iFirstRowToDraw && seg->GetRow() <= iLastRowToDraw )
|
if( IS_ON_SCREEN(fBeat) )
|
||||||
{
|
DrawFakeText( fBeat, seg->GetLength() );
|
||||||
float fBeat = seg->GetBeat();
|
|
||||||
if( IS_ON_SCREEN(fBeat) )
|
|
||||||
DrawFakeText( fBeat, seg->GetLength() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -203,7 +203,6 @@ static void Deserialize( Song &out, const Json::Value &root )
|
|||||||
FOREACH( Steps*, vpSteps, iter )
|
FOREACH( Steps*, vpSteps, iter )
|
||||||
out.AddSteps( *iter );
|
out.AddSteps( *iter );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NotesLoaderJson::LoadFromJsonFile( const RString &sPath, Song &out )
|
bool NotesLoaderJson::LoadFromJsonFile( const RString &sPath, Song &out )
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
#include "NoteTypes.h"
|
#include "NoteTypes.h"
|
||||||
#include "NotesLoader.h"
|
#include "NotesLoader.h"
|
||||||
|
|
||||||
|
// XXX: this is mostly a copy of NotesLoaderBMS and should be consolidated there. -aj
|
||||||
|
|
||||||
typedef multimap<RString, RString> NameToData_t;
|
typedef multimap<RString, RString> NameToData_t;
|
||||||
typedef map<int, float> MeasureToTimeSig_t;
|
typedef map<int, float> MeasureToTimeSig_t;
|
||||||
|
|
||||||
|
|||||||
@@ -487,6 +487,18 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach
|
|||||||
{
|
{
|
||||||
ProcessCombos( out.m_SongTiming, sParams[1] );
|
ProcessCombos( out.m_SongTiming, sParams[1] );
|
||||||
}
|
}
|
||||||
|
else if (sValueName=="SPEEDS")
|
||||||
|
{
|
||||||
|
ProcessSpeeds(out.m_SongTiming, sParams[1]);
|
||||||
|
}
|
||||||
|
else if (sValueName=="SCROLLS")
|
||||||
|
{
|
||||||
|
ProcessScrolls(out.m_SongTiming, sParams[1]);
|
||||||
|
}
|
||||||
|
else if (sValueName=="FAKES")
|
||||||
|
{
|
||||||
|
ProcessFakes(out.m_SongTiming, sParams[1]);
|
||||||
|
}
|
||||||
|
|
||||||
/* The following are cache tags. Never fill their values
|
/* The following are cache tags. Never fill their values
|
||||||
* directly: only from the cached version. */
|
* directly: only from the cached version. */
|
||||||
|
|||||||
@@ -197,9 +197,8 @@ static void WriteTimingTags( RageFile &f, const TimingData &timing, bool bIsSong
|
|||||||
join(",\r\n", timing.ToVectorString(SEGMENT_SPEED)).c_str()));
|
join(",\r\n", timing.ToVectorString(SEGMENT_SPEED)).c_str()));
|
||||||
f.PutLine(ssprintf("#SCROLLS:%s;",
|
f.PutLine(ssprintf("#SCROLLS:%s;",
|
||||||
join(",\r\n", timing.ToVectorString(SEGMENT_SCROLL)).c_str()));
|
join(",\r\n", timing.ToVectorString(SEGMENT_SCROLL)).c_str()));
|
||||||
if (!bIsSong)
|
f.PutLine(ssprintf("#FAKES:%s;",
|
||||||
f.PutLine(ssprintf("#FAKES:%s;",
|
join(",\r\n", timing.ToVectorString(SEGMENT_FAKE)).c_str()));
|
||||||
join(",\r\n", timing.ToVectorString(SEGMENT_FAKE)).c_str()));
|
|
||||||
f.PutLine(ssprintf("#LABELS:%s;",
|
f.PutLine(ssprintf("#LABELS:%s;",
|
||||||
join(",\r\n", timing.ToVectorString(SEGMENT_LABEL)).c_str()));
|
join(",\r\n", timing.ToVectorString(SEGMENT_LABEL)).c_str()));
|
||||||
|
|
||||||
|
|||||||
+2
-7
@@ -3601,13 +3601,8 @@ void ScreenEdit::DisplayTimingMenu()
|
|||||||
g_TimingDataInformation.rows[scroll].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetScrollAtBeat( fBeat ) ) );
|
g_TimingDataInformation.rows[scroll].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetScrollAtBeat( fBeat ) ) );
|
||||||
g_TimingDataInformation.rows[fake].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetFakeAtBeat( fBeat ) ) );
|
g_TimingDataInformation.rows[fake].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetFakeAtBeat( fBeat ) ) );
|
||||||
|
|
||||||
g_TimingDataInformation.rows[tickcount].bEnabled = GAMESTATE->m_bIsUsingStepTiming;
|
g_TimingDataInformation.rows[speed_wait].bEnabled = bHasSpeedOnThisRow;
|
||||||
g_TimingDataInformation.rows[combo].bEnabled = GAMESTATE->m_bIsUsingStepTiming;
|
g_TimingDataInformation.rows[speed_mode].bEnabled = bHasSpeedOnThisRow;
|
||||||
g_TimingDataInformation.rows[speed_percent].bEnabled = GAMESTATE->m_bIsUsingStepTiming;
|
|
||||||
g_TimingDataInformation.rows[speed_wait].bEnabled = GAMESTATE->m_bIsUsingStepTiming && bHasSpeedOnThisRow;
|
|
||||||
g_TimingDataInformation.rows[speed_mode].bEnabled = GAMESTATE->m_bIsUsingStepTiming && bHasSpeedOnThisRow;
|
|
||||||
g_TimingDataInformation.rows[fake].bEnabled = GAMESTATE->m_bIsUsingStepTiming;
|
|
||||||
g_TimingDataInformation.rows[scroll].bEnabled = GAMESTATE->m_bIsUsingStepTiming;
|
|
||||||
|
|
||||||
EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation );
|
EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation );
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@
|
|||||||
* @brief The internal version of the cache for StepMania.
|
* @brief The internal version of the cache for StepMania.
|
||||||
*
|
*
|
||||||
* Increment this value to invalidate the current cache. */
|
* Increment this value to invalidate the current cache. */
|
||||||
const int FILE_CACHE_VERSION = 203;
|
const int FILE_CACHE_VERSION = 205;
|
||||||
|
|
||||||
/** @brief How long does a song sample last by default? */
|
/** @brief How long does a song sample last by default? */
|
||||||
const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;
|
const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ void FixupPath( RString &path, const RString &sSongPath );
|
|||||||
RString GetSongAssetPath( RString sPath, const RString &sSongPath );
|
RString GetSongAssetPath( RString sPath, const RString &sSongPath );
|
||||||
|
|
||||||
/** @brief The version of the .ssc file format. */
|
/** @brief The version of the .ssc file format. */
|
||||||
const static float STEPFILE_VERSION_NUMBER = 0.79f;
|
const static float STEPFILE_VERSION_NUMBER = 0.80f;
|
||||||
|
|
||||||
/** @brief How many edits for this song can each profile have? */
|
/** @brief How many edits for this song can each profile have? */
|
||||||
const int MAX_EDITS_PER_SONG_PER_PROFILE = 15;
|
const int MAX_EDITS_PER_SONG_PER_PROFILE = 15;
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ struct LabelSegment : public TimingSegment
|
|||||||
TimingSegmentType GetType() const { return SEGMENT_LABEL; }
|
TimingSegmentType GetType() const { return SEGMENT_LABEL; }
|
||||||
|
|
||||||
LabelSegment( int iStartRow = ROW_INVALID, const RString& sLabel = RString() ) :
|
LabelSegment( int iStartRow = ROW_INVALID, const RString& sLabel = RString() ) :
|
||||||
TimingSegment(), m_sLabel(sLabel) { }
|
TimingSegment(iStartRow), m_sLabel(sLabel) { }
|
||||||
|
|
||||||
LabelSegment(const LabelSegment &other) :
|
LabelSegment(const LabelSegment &other) :
|
||||||
TimingSegment( other.GetRow() ),
|
TimingSegment( other.GetRow() ),
|
||||||
|
|||||||
Reference in New Issue
Block a user