Merge with default
This commit is contained in:
@@ -15,8 +15,14 @@ StepMania 5.0 ????????? | 20110???
|
|||||||
number of songs installed. Fixes issue 373. [AJ]
|
number of songs installed. Fixes issue 373. [AJ]
|
||||||
* [NotesAllSSC] Add the #CHARTNAME tag to the Steps. #DESCRIPTION is now for
|
* [NotesAllSSC] Add the #CHARTNAME tag to the Steps. #DESCRIPTION is now for
|
||||||
more detailed descriptions, or perhaps some short hand lingo. All files
|
more detailed descriptions, or perhaps some short hand lingo. All files
|
||||||
that used #DESCRIPTION will have their values copied to #CHARTNAME on
|
that used #DESCRIPTION will have their values moved to #CHARTNAME on
|
||||||
load. [Wolfman2000]
|
load. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Add a Steps Data menu for getting numerical step data on the
|
||||||
|
chart. This is a read only menu. Edit Steps Information contains writable
|
||||||
|
information. [Wolfman2000]
|
||||||
|
* [NotesAllSSC] Add the Steps version of #DISPLAYBPM. The Song version is
|
||||||
|
still there, so themes should not have to worry about breakage.
|
||||||
|
[Wolfman2000]
|
||||||
|
|
||||||
2011/07/06
|
2011/07/06
|
||||||
----------
|
----------
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
// begin
|
// begin
|
||||||
#NOTEDATA# // marks a new note data section
|
#NOTEDATA# // marks a new note data section
|
||||||
// information from #NOTES moved here
|
// information from #NOTES moved here
|
||||||
|
#CHARTNAME:;
|
||||||
#STEPSTYPE:;
|
#STEPSTYPE:;
|
||||||
#DESCRIPTION:;
|
#DESCRIPTION:;
|
||||||
#CHARTSTYLE:;
|
#CHARTSTYLE:;
|
||||||
@@ -63,6 +64,7 @@
|
|||||||
#FAKES:;
|
#FAKES:;
|
||||||
#LABELS:;
|
#LABELS:;
|
||||||
#ATTACKS:;
|
#ATTACKS:;
|
||||||
|
#DISPLAYBPM:;
|
||||||
|
|
||||||
// actual step data
|
// actual step data
|
||||||
#NOTES:;
|
#NOTES:;
|
||||||
|
|||||||
@@ -817,6 +817,7 @@ CoinsPerCredit=Coins Per Credit
|
|||||||
Connection=Connection
|
Connection=Connection
|
||||||
Convert pause to beats=Convert stop to beats
|
Convert pause to beats=Convert stop to beats
|
||||||
Convert delay to beats=Convert delay to beats
|
Convert delay to beats=Convert delay to beats
|
||||||
|
Convert selection to attack=Convert selection to Attack
|
||||||
Convert selection to pause=Convert selection to stop
|
Convert selection to pause=Convert selection to stop
|
||||||
Convert selection to delay=Convert selection to delay
|
Convert selection to delay=Convert selection to delay
|
||||||
Convert selection to warp=Convert selection to Warp Segment
|
Convert selection to warp=Convert selection to Warp Segment
|
||||||
@@ -878,6 +879,7 @@ Entry %d=Entry %d
|
|||||||
EventMode=Event Mode
|
EventMode=Event Mode
|
||||||
Exit=Exit
|
Exit=Exit
|
||||||
Fail=Fail
|
Fail=Fail
|
||||||
|
Fakes=Fakes
|
||||||
FastLoad=Fast\nLoad
|
FastLoad=Fast\nLoad
|
||||||
File1 Global BGAnimation=File1 Global BGAnimation
|
File1 Global BGAnimation=File1 Global BGAnimation
|
||||||
File1 Global Movie=File1 Global Movie
|
File1 Global Movie=File1 Global Movie
|
||||||
@@ -921,6 +923,7 @@ Key Joy Mappings=Config Key/Joy Mappings
|
|||||||
Language=Language
|
Language=Language
|
||||||
Last second hint=Last second hint
|
Last second hint=Last second hint
|
||||||
Layer=Layer
|
Layer=Layer
|
||||||
|
Lifts=Lifts
|
||||||
LifeDifficulty=Life Difficulty
|
LifeDifficulty=Life Difficulty
|
||||||
LifeType=Life Type
|
LifeType=Life Type
|
||||||
Low Meter=Low Meter
|
Low Meter=Low Meter
|
||||||
@@ -987,6 +990,7 @@ Rename=Rename
|
|||||||
Reset To Defaults=Reset Options To Default Values
|
Reset To Defaults=Reset Options To Default Values
|
||||||
Revert from disk=Revert from disk
|
Revert from disk=Revert from disk
|
||||||
Revert to last save=Revert from cache
|
Revert to last save=Revert from cache
|
||||||
|
Rolls=Rolls
|
||||||
Save=Save
|
Save=Save
|
||||||
SaveScores=Save Scores
|
SaveScores=Save Scores
|
||||||
SaveReplays=Save Replays
|
SaveReplays=Save Replays
|
||||||
@@ -1051,6 +1055,7 @@ Type=Type
|
|||||||
Turn=Turn
|
Turn=Turn
|
||||||
Undo=Undo
|
Undo=Undo
|
||||||
UseUnlockSystem=Unlock System
|
UseUnlockSystem=Unlock System
|
||||||
|
View steps data=View Steps Data
|
||||||
VisualDelaySeconds=Visual Delay
|
VisualDelaySeconds=Visual Delay
|
||||||
Voltage=Voltage
|
Voltage=Voltage
|
||||||
Vsync=Wait For Vsync
|
Vsync=Wait For Vsync
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ Branch = {
|
|||||||
if PROFILEMAN:GetNumLocalProfiles() >= 2 then
|
if PROFILEMAN:GetNumLocalProfiles() >= 2 then
|
||||||
return "ScreenSelectProfile";
|
return "ScreenSelectProfile";
|
||||||
else
|
else
|
||||||
return Branch.AfterSelectProfile();
|
return "ScreenProfileLoad";
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
OptionsEdit = function()
|
OptionsEdit = function()
|
||||||
@@ -79,7 +79,7 @@ Branch = {
|
|||||||
return "ScreenOptionsEdit";
|
return "ScreenOptionsEdit";
|
||||||
end,
|
end,
|
||||||
AfterProfileLoad = function()
|
AfterProfileLoad = function()
|
||||||
return "ScreenSelectProfile"
|
return Branch.AfterSelectProfile()
|
||||||
end,
|
end,
|
||||||
AfterSelectProfile = function()
|
AfterSelectProfile = function()
|
||||||
if ( THEME:GetMetric("Common","AutoSetStyle") == true ) then
|
if ( THEME:GetMetric("Common","AutoSetStyle") == true ) then
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
--[[
|
--[[
|
||||||
Custom Speed Mods v2.0 (for sm-ssc)
|
Custom Speed Mods v2.1 (for StepMania 5)
|
||||||
by AJ Kelly of KKI Labs ( http://kki.ajworld.net/ )
|
by AJ Kelly of KKI Labs ( http://kki.ajworld.net/ )
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
|
|
||||||
|
v2.1 (StepMania 5 Preview 2)
|
||||||
|
* Added support for m-Mods.
|
||||||
|
|
||||||
v2.0 (for sm-ssc)
|
v2.0 (for sm-ssc)
|
||||||
Giant rewrite of the speed mod parser.
|
Giant rewrite of the speed mod parser.
|
||||||
This rewrite comes with the following changes/features:
|
This rewrite comes with the following changes/features:
|
||||||
@@ -38,9 +41,6 @@ v1.2
|
|||||||
|
|
||||||
v1.1
|
v1.1
|
||||||
* Cleaned up code some, I think.
|
* Cleaned up code some, I think.
|
||||||
________________________________________________________________________________
|
|
||||||
anticipated future changes:
|
|
||||||
* M-Mod support (when sm-ssc integrates it)
|
|
||||||
]]
|
]]
|
||||||
|
|
||||||
-- ProfileDir(slot): gets the profile dir for slot,
|
-- ProfileDir(slot): gets the profile dir for slot,
|
||||||
@@ -150,7 +150,6 @@ local function SpeedModSort(tab)
|
|||||||
local xMods = {}
|
local xMods = {}
|
||||||
local mMods = {}
|
local mMods = {}
|
||||||
local cMods = {}
|
local cMods = {}
|
||||||
--local mMods = {}
|
|
||||||
|
|
||||||
-- convert to numbers so sorting works:
|
-- convert to numbers so sorting works:
|
||||||
for i=1,#tab do
|
for i=1,#tab do
|
||||||
@@ -160,7 +159,8 @@ local function SpeedModSort(tab)
|
|||||||
if string.find(tab[i],"C%d") then
|
if string.find(tab[i],"C%d") then
|
||||||
typ = cMods
|
typ = cMods
|
||||||
val = string.gsub(tab[i], "C", "")
|
val = string.gsub(tab[i], "C", "")
|
||||||
elseif string.find(tab[i],"m%d") then
|
-- support both cases because I want to hit people -freem
|
||||||
|
elseif string.find(tab[i],"m%d") or string.find(tab[i],"M%d") then
|
||||||
typ = mMods
|
typ = mMods
|
||||||
val = string.gsub(tab[i], "m", "")
|
val = string.gsub(tab[i], "m", "")
|
||||||
else
|
else
|
||||||
@@ -187,7 +187,6 @@ local function SpeedModSort(tab)
|
|||||||
for i=1,#mMods do
|
for i=1,#mMods do
|
||||||
table.insert(fin, "m"..mMods[i])
|
table.insert(fin, "m"..mMods[i])
|
||||||
end
|
end
|
||||||
--for i=1,#mMods do table.insert(fin, "M"..mMods[i]); end;
|
|
||||||
return fin
|
return fin
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -298,7 +297,7 @@ function SpeedMods()
|
|||||||
end
|
end
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
Copyright © 2008-2009 AJ Kelly/KKI Labs.
|
Copyright © 2008-2011 AJ Kelly/KKI Labs.
|
||||||
Use freely, so long this notice and the above documentation remains.
|
Use freely, so long this notice and the above documentation remains.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ function GetExtraColorThreshold()
|
|||||||
sGame = GAMESTATE:GetCurrentGame():GetName()
|
sGame = GAMESTATE:GetCurrentGame():GetName()
|
||||||
local Modes = {
|
local Modes = {
|
||||||
dance = 10,
|
dance = 10,
|
||||||
pump = 15,
|
pump = 21,
|
||||||
beat = 12,
|
beat = 12,
|
||||||
kb7 = 10,
|
kb7 = 10,
|
||||||
para = 10,
|
para = 10,
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ ScreenHeight=480
|
|||||||
AutoSetStyle=GetUserPrefB("UserPrefAutoSetStyle")
|
AutoSetStyle=GetUserPrefB("UserPrefAutoSetStyle")
|
||||||
|
|
||||||
# Default modifiers and noteskin.
|
# Default modifiers and noteskin.
|
||||||
DefaultModifiers="1.5x"
|
DefaultModifiers=""
|
||||||
DefaultNoteSkinName="default"
|
DefaultNoteSkinName="default"
|
||||||
|
|
||||||
# Difficulties to show. Useful for custom games where you want to hide these.
|
# Difficulties to show. Useful for custom games where you want to hide these.
|
||||||
@@ -3740,6 +3740,9 @@ Fallback="ScreenMiniMenu"
|
|||||||
[ScreenMiniMenuStepsInformation]
|
[ScreenMiniMenuStepsInformation]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
|
[ScreenMiniMenuStepsData]
|
||||||
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
[ScreenMiniMenuSongInformation]
|
[ScreenMiniMenuSongInformation]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
|
|||||||
+20
-1
@@ -465,9 +465,11 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach
|
|||||||
{
|
{
|
||||||
pNewNotes->SetChartName(sParams[1]);
|
pNewNotes->SetChartName(sParams[1]);
|
||||||
}
|
}
|
||||||
// TODO: Make this the else clause?
|
else
|
||||||
|
{
|
||||||
pNewNotes->SetDescription(sParams[1]);
|
pNewNotes->SetDescription(sParams[1]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
else if( sValueName=="DIFFICULTY" )
|
else if( sValueName=="DIFFICULTY" )
|
||||||
{
|
{
|
||||||
@@ -585,6 +587,23 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach
|
|||||||
{
|
{
|
||||||
stepsTiming.m_fBeat0OffsetInSeconds = StringToFloat( sParams[1] );
|
stepsTiming.m_fBeat0OffsetInSeconds = StringToFloat( sParams[1] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="DISPLAYBPM" )
|
||||||
|
{
|
||||||
|
// #DISPLAYBPM:[xxx][xxx:xxx]|[*];
|
||||||
|
if( sParams[1] == "*" )
|
||||||
|
pNewNotes->SetDisplayBPM(DISPLAY_BPM_RANDOM);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pNewNotes->SetDisplayBPM(DISPLAY_BPM_SPECIFIED);
|
||||||
|
float min = StringToFloat(sParams[1]);
|
||||||
|
pNewNotes->SetMinBPM(min);
|
||||||
|
if(sParams[2].empty())
|
||||||
|
pNewNotes->SetMaxBPM(min);
|
||||||
|
else
|
||||||
|
pNewNotes->SetMaxBPM(StringToFloat(sParams[2]));
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -335,6 +335,26 @@ static RString GetSSCNoteData( const Song &song, const Steps &in, bool bSavingCa
|
|||||||
Trim(attacks, ":"); // just in case something screwy happens.
|
Trim(attacks, ":"); // just in case something screwy happens.
|
||||||
lines.push_back( ssprintf( "#ATTACKS:%s;", attacks.c_str()));
|
lines.push_back( ssprintf( "#ATTACKS:%s;", attacks.c_str()));
|
||||||
|
|
||||||
|
switch( in.GetDisplayBPM() )
|
||||||
|
{
|
||||||
|
case DISPLAY_BPM_ACTUAL:
|
||||||
|
// write nothing
|
||||||
|
break;
|
||||||
|
case DISPLAY_BPM_SPECIFIED:
|
||||||
|
{
|
||||||
|
float small = in.GetMinBPM();
|
||||||
|
float big = in.GetMaxBPM();
|
||||||
|
if (small == big)
|
||||||
|
lines.push_back( ssprintf( "#DISPLAYBPM:%.6f;", small ) );
|
||||||
|
else
|
||||||
|
lines.push_back( ssprintf( "#DISPLAYBPM:%.6f:%.6f;", small, big ) );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DISPLAY_BPM_RANDOM:
|
||||||
|
lines.push_back( ssprintf( "#DISPLAYBPM:*;" ) );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
RString sNoteData;
|
RString sNoteData;
|
||||||
in.GetSMNoteData( sNoteData );
|
in.GetSMNoteData( sNoteData );
|
||||||
|
|
||||||
|
|||||||
+120
-29
@@ -63,6 +63,7 @@ AutoScreenMessage( SM_BackFromMainMenu );
|
|||||||
AutoScreenMessage( SM_BackFromAreaMenu );
|
AutoScreenMessage( SM_BackFromAreaMenu );
|
||||||
AutoScreenMessage( SM_BackFromAlterMenu );
|
AutoScreenMessage( SM_BackFromAlterMenu );
|
||||||
AutoScreenMessage( SM_BackFromStepsInformation );
|
AutoScreenMessage( SM_BackFromStepsInformation );
|
||||||
|
AutoScreenMessage( SM_BackFromStepsData );
|
||||||
AutoScreenMessage( SM_BackFromOptions );
|
AutoScreenMessage( SM_BackFromOptions );
|
||||||
AutoScreenMessage( SM_BackFromSongInformation );
|
AutoScreenMessage( SM_BackFromSongInformation );
|
||||||
AutoScreenMessage( SM_BackFromBGChange );
|
AutoScreenMessage( SM_BackFromBGChange );
|
||||||
@@ -521,12 +522,13 @@ static MenuDef g_MainMenu(
|
|||||||
MenuRowDef( ScreenEdit::play_selection, "Play selection", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::play_selection, "Play selection", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::set_selection_start, "Set selection start", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::set_selection_start, "Set selection start", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::set_selection_end, "Set selection end", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::set_selection_end, "Set selection end", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::edit_steps_information, "Edit steps information", true, EditMode_Practice, true, true, 0, NULL ),
|
|
||||||
MenuRowDef( ScreenEdit::revert_to_last_save, "Revert to last save", true, EditMode_Home, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::revert_to_last_save, "Revert to last save", true, EditMode_Home, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::revert_from_disk, "Revert from disk", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::revert_from_disk, "Revert from disk", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::options, "Editor options", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::options, "Editor options", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::edit_song_info, "Edit song info", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::edit_song_info, "Edit song info", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::edit_steps_information, "Edit steps information", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::edit_timing_data, "Edit Timing Data", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::edit_timing_data, "Edit Timing Data", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::view_steps_data, "View steps data", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::play_preview_music, "Play preview music", true, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::play_preview_music, "Play preview music", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::exit, "Exit Edit Mode", true, EditMode_Practice, true, true, 0, NULL )
|
MenuRowDef( ScreenEdit::exit, "Exit Edit Mode", true, EditMode_Practice, true, true, 0, NULL )
|
||||||
);
|
);
|
||||||
@@ -569,6 +571,8 @@ static MenuDef g_AlterMenu(
|
|||||||
EditMode_Full, true, true, 0, NULL ),
|
EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef(ScreenEdit::convert_to_fake, "Convert selection to fake", true,
|
MenuRowDef(ScreenEdit::convert_to_fake, "Convert selection to fake", true,
|
||||||
EditMode_Full, true, true, 0, NULL ),
|
EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef(ScreenEdit::convert_to_attack, "Convert selection to attack", true,
|
||||||
|
EditMode_Full, true, true, 0, NULL),
|
||||||
MenuRowDef(ScreenEdit::routine_invert_notes, "Invert notes' player", true,
|
MenuRowDef(ScreenEdit::routine_invert_notes, "Invert notes' player", true,
|
||||||
EditMode_Full, true, true, 0, NULL ),
|
EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef(ScreenEdit::routine_mirror_1_to_2, "Mirror Player 1 to 2", true,
|
MenuRowDef(ScreenEdit::routine_mirror_1_to_2, "Mirror Player 1 to 2", true,
|
||||||
@@ -600,17 +604,27 @@ static MenuDef g_StepsInformation(
|
|||||||
"ScreenMiniMenuStepsInformation",
|
"ScreenMiniMenuStepsInformation",
|
||||||
MenuRowDef( ScreenEdit::difficulty, "Difficulty", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::difficulty, "Difficulty", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::meter, "Meter", true, EditMode_Practice, true, false, 0, NULL ),
|
MenuRowDef( ScreenEdit::meter, "Meter", true, EditMode_Practice, true, false, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::predict_meter, "Predicted Meter", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::chartname, "Chart Name", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::chartname, "Chart Name", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::description, "Description", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::description, "Description", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::chartstyle, "Chart Style", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::chartstyle, "Chart Style", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::step_credit, "Step Author", true, EditMode_Practice, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::step_credit, "Step Author", true, EditMode_Practice, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::predict_meter, "Predicted Meter", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::step_display_bpm, "Display BPM", true, EditMode_Full, true, true, 0, "Actual", "Specified", "Random" ),
|
||||||
|
MenuRowDef( ScreenEdit::step_min_bpm, "Min BPM", true, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef( ScreenEdit::step_max_bpm, "Max BPM", true, EditMode_Full, true, true, 0, NULL )
|
||||||
|
);
|
||||||
|
|
||||||
|
static MenuDef g_StepsData(
|
||||||
|
"ScreenMiniMenuStepsData",
|
||||||
MenuRowDef( ScreenEdit::tap_notes, "Tap Steps", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::tap_notes, "Tap Steps", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::jumps, "Jumps", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::jumps, "Jumps", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::hands, "Hands", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::hands, "Hands", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::quads, "Quads", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::quads, "Quads", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::holds, "Holds", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::holds, "Holds", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::mines, "Mines", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::mines, "Mines", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef(ScreenEdit::rolls, "Rolls", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef(ScreenEdit::lifts, "Lifts", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
|
MenuRowDef(ScreenEdit::fakes, "Fakes", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::stream, "Stream", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::stream, "Stream", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::voltage, "Voltage", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::voltage, "Voltage", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
MenuRowDef( ScreenEdit::air, "Air", false, EditMode_Full, true, true, 0, NULL ),
|
MenuRowDef( ScreenEdit::air, "Air", false, EditMode_Full, true, true, 0, NULL ),
|
||||||
@@ -2931,6 +2945,12 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
{
|
{
|
||||||
HandleStepsInformationChoice( (StepsInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
HandleStepsInformationChoice( (StepsInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
||||||
}
|
}
|
||||||
|
else if (SM == SM_BackFromStepsData)
|
||||||
|
{
|
||||||
|
HandleStepsDataChoice((StepsDataChoice)ScreenMiniMenu::s_iLastRowCode,
|
||||||
|
ScreenMiniMenu::s_viLastAnswers);
|
||||||
|
}
|
||||||
|
|
||||||
else if( SM == SM_BackFromSongInformation )
|
else if( SM == SM_BackFromSongInformation )
|
||||||
{
|
{
|
||||||
HandleSongInformationChoice( (SongInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
HandleSongInformationChoice( (SongInformationChoice)ScreenMiniMenu::s_iLastRowCode, ScreenMiniMenu::s_viLastAnswers );
|
||||||
@@ -3494,11 +3514,23 @@ static void ChangeMinBPM( const RString &sNew )
|
|||||||
GAMESTATE->m_pCurSong->m_fSpecifiedBPMMin = StringToFloat( sNew );
|
GAMESTATE->m_pCurSong->m_fSpecifiedBPMMin = StringToFloat( sNew );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ChangeStepsMinBPM(const RString &sNew)
|
||||||
|
{
|
||||||
|
Steps *step = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
|
step->SetMinBPM(StringToFloat(sNew));
|
||||||
|
}
|
||||||
|
|
||||||
static void ChangeMaxBPM( const RString &sNew )
|
static void ChangeMaxBPM( const RString &sNew )
|
||||||
{
|
{
|
||||||
GAMESTATE->m_pCurSong->m_fSpecifiedBPMMax = StringToFloat( sNew );
|
GAMESTATE->m_pCurSong->m_fSpecifiedBPMMax = StringToFloat( sNew );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ChangeStepsMaxBPM(const RString &sNew)
|
||||||
|
{
|
||||||
|
Steps *step = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
|
step->SetMaxBPM(StringToFloat(sNew));
|
||||||
|
}
|
||||||
|
|
||||||
TimingData & ScreenEdit::GetAppropriateTiming() const
|
TimingData & ScreenEdit::GetAppropriateTiming() const
|
||||||
{
|
{
|
||||||
if( GAMESTATE->m_bIsUsingStepTiming )
|
if( GAMESTATE->m_bIsUsingStepTiming )
|
||||||
@@ -3655,7 +3687,6 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
/* XXX: If the difficulty is changed from EDIT, and pSteps->WasLoadedFromProfile()
|
/* XXX: If the difficulty is changed from EDIT, and pSteps->WasLoadedFromProfile()
|
||||||
* is true, we should warn that the steps will no longer be saved to the profile. */
|
* is true, we should warn that the steps will no longer be saved to the profile. */
|
||||||
Steps* pSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
Steps* pSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
float fMusicSeconds = m_pSoundMusic->GetLengthSeconds();
|
|
||||||
|
|
||||||
g_StepsInformation.rows[difficulty].choices.clear();
|
g_StepsInformation.rows[difficulty].choices.clear();
|
||||||
FOREACH_ENUM( Difficulty, dc )
|
FOREACH_ENUM( Difficulty, dc )
|
||||||
@@ -3675,20 +3706,32 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
g_StepsInformation.rows[chartstyle].SetOneUnthemedChoice( pSteps->GetChartStyle() );
|
g_StepsInformation.rows[chartstyle].SetOneUnthemedChoice( pSteps->GetChartStyle() );
|
||||||
g_StepsInformation.rows[step_credit].bEnabled = (EDIT_MODE.GetValue() >= EditMode_Full);
|
g_StepsInformation.rows[step_credit].bEnabled = (EDIT_MODE.GetValue() >= EditMode_Full);
|
||||||
g_StepsInformation.rows[step_credit].SetOneUnthemedChoice( pSteps->GetCredit() );
|
g_StepsInformation.rows[step_credit].SetOneUnthemedChoice( pSteps->GetCredit() );
|
||||||
g_StepsInformation.rows[tap_notes].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumTapNotes()) );
|
g_StepsInformation.rows[step_display_bpm].iDefaultChoice = pSteps->GetDisplayBPM();
|
||||||
g_StepsInformation.rows[jumps].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumJumps()) );
|
g_StepsInformation.rows[step_min_bpm].SetOneUnthemedChoice( ssprintf("%.6f", pSteps->GetMinBPM()));
|
||||||
g_StepsInformation.rows[hands].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumHands()) );
|
g_StepsInformation.rows[step_max_bpm].SetOneUnthemedChoice( ssprintf("%.6f", pSteps->GetMaxBPM()));
|
||||||
g_StepsInformation.rows[quads].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumQuads()) );
|
|
||||||
g_StepsInformation.rows[holds].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumHoldNotes()) );
|
|
||||||
g_StepsInformation.rows[mines].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumMines()) );
|
|
||||||
g_StepsInformation.rows[stream].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetStreamRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
|
||||||
g_StepsInformation.rows[voltage].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetVoltageRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
|
||||||
g_StepsInformation.rows[air].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetAirRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
|
||||||
g_StepsInformation.rows[freeze].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetFreezeRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
|
||||||
g_StepsInformation.rows[chaos].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetChaosRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
|
||||||
EditMiniMenu( &g_StepsInformation, SM_BackFromStepsInformation, SM_None );
|
EditMiniMenu( &g_StepsInformation, SM_BackFromStepsInformation, SM_None );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case view_steps_data:
|
||||||
|
{
|
||||||
|
float fMusicSeconds = m_pSoundMusic->GetLengthSeconds();
|
||||||
|
g_StepsData.rows[tap_notes].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumTapNotes()) );
|
||||||
|
g_StepsData.rows[jumps].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumJumps()) );
|
||||||
|
g_StepsData.rows[hands].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumHands()) );
|
||||||
|
g_StepsData.rows[quads].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumQuads()) );
|
||||||
|
g_StepsData.rows[holds].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumHoldNotes()) );
|
||||||
|
g_StepsData.rows[mines].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumMines()) );
|
||||||
|
g_StepsData.rows[rolls].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumRolls()) );
|
||||||
|
g_StepsData.rows[lifts].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumLifts()) );
|
||||||
|
g_StepsData.rows[fakes].SetOneUnthemedChoice( ssprintf("%d", m_NoteDataEdit.GetNumFakes()) );
|
||||||
|
g_StepsData.rows[stream].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetStreamRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
||||||
|
g_StepsData.rows[voltage].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetVoltageRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
||||||
|
g_StepsData.rows[air].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetAirRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
||||||
|
g_StepsData.rows[freeze].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetFreezeRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
||||||
|
g_StepsData.rows[chaos].SetOneUnthemedChoice( ssprintf("%.2f", NoteDataUtil::GetChaosRadarValue(m_NoteDataEdit,fMusicSeconds)) );
|
||||||
|
EditMiniMenu( &g_StepsData, SM_BackFromStepsData, SM_None );
|
||||||
|
break;
|
||||||
|
}
|
||||||
case save:
|
case save:
|
||||||
case save_on_exit:
|
case save_on_exit:
|
||||||
{
|
{
|
||||||
@@ -4073,6 +4116,29 @@ void ScreenEdit::HandleAlterMenuChoice(AlterMenuChoice c, const vector<int> &iAn
|
|||||||
SetDirty(true);
|
SetDirty(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case convert_to_attack:
|
||||||
|
{
|
||||||
|
float startBeat = NoteRowToBeat(m_NoteFieldEdit.m_iBeginMarker);
|
||||||
|
float endBeat = NoteRowToBeat(m_NoteFieldEdit.m_iEndMarker);
|
||||||
|
TimingData &timing = GetAppropriateTiming();
|
||||||
|
float &start = g_fLastInsertAttackPositionSeconds;
|
||||||
|
float &length = g_fLastInsertAttackDurationSeconds;
|
||||||
|
start = timing.GetElapsedTimeFromBeat(startBeat);
|
||||||
|
length = timing.GetElapsedTimeFromBeat(endBeat) - start;
|
||||||
|
|
||||||
|
AttackArray &attacks = GAMESTATE->m_bIsUsingStepTiming ?
|
||||||
|
m_pSteps->m_Attacks : m_pSong->m_Attacks;
|
||||||
|
int iAttack = FindAttackAtTime(attacks, start);
|
||||||
|
|
||||||
|
PlayerOptions po;
|
||||||
|
if (iAttack >= 0)
|
||||||
|
po.FromString(attacks[iAttack].sModifiers);
|
||||||
|
|
||||||
|
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.Assign( ModsLevel_Preferred, po );
|
||||||
|
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertStepAttackPlayerOptions );
|
||||||
|
SetDirty(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case convert_to_fake:
|
case convert_to_fake:
|
||||||
{
|
{
|
||||||
float startBeat = NoteRowToBeat(m_NoteFieldEdit.m_iBeginMarker);
|
float startBeat = NoteRowToBeat(m_NoteFieldEdit.m_iBeginMarker);
|
||||||
@@ -4264,16 +4330,24 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, const vector<int> &iAns
|
|||||||
CheckNumberOfNotesAndUndo();
|
CheckNumberOfNotesAndUndo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenEdit::HandleStepsDataChoice( StepsDataChoice c, const vector<int> &iAnswers )
|
||||||
|
{
|
||||||
|
return; // nothing is done with the choices. Yet.
|
||||||
|
}
|
||||||
|
|
||||||
static LocalizedString ENTER_NEW_DESCRIPTION( "ScreenEdit", "Enter a new description." );
|
static LocalizedString ENTER_NEW_DESCRIPTION( "ScreenEdit", "Enter a new description." );
|
||||||
static LocalizedString ENTER_NEW_CHART_NAME("ScreenEdit", "Enter a new chart name.");
|
static LocalizedString ENTER_NEW_CHART_NAME("ScreenEdit", "Enter a new chart name.");
|
||||||
static LocalizedString ENTER_NEW_CHART_STYLE( "ScreenEdit", "Enter a new chart style." );
|
static LocalizedString ENTER_NEW_CHART_STYLE( "ScreenEdit", "Enter a new chart style." );
|
||||||
static LocalizedString ENTER_NEW_STEP_AUTHOR( "ScreenEdit", "Enter the author who made this step pattern." );
|
static LocalizedString ENTER_NEW_STEP_AUTHOR( "ScreenEdit", "Enter the author who made this step pattern." );
|
||||||
static LocalizedString ENTER_NEW_METER( "ScreenEdit", "Enter a new meter." );
|
static LocalizedString ENTER_NEW_METER( "ScreenEdit", "Enter a new meter." );
|
||||||
|
static LocalizedString ENTER_MIN_BPM ("ScreenEdit","Enter a new min BPM.");
|
||||||
|
static LocalizedString ENTER_MAX_BPM ("ScreenEdit","Enter a new max BPM.");
|
||||||
void ScreenEdit::HandleStepsInformationChoice( StepsInformationChoice c, const vector<int> &iAnswers )
|
void ScreenEdit::HandleStepsInformationChoice( StepsInformationChoice c, const vector<int> &iAnswers )
|
||||||
{
|
{
|
||||||
Steps* pSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
Steps* pSteps = GAMESTATE->m_pCurSteps[PLAYER_1];
|
||||||
Difficulty dc = (Difficulty)iAnswers[difficulty];
|
Difficulty dc = (Difficulty)iAnswers[difficulty];
|
||||||
pSteps->SetDifficulty( dc );
|
pSteps->SetDifficulty( dc );
|
||||||
|
pSteps->SetDisplayBPM(static_cast<DisplayBPM>(iAnswers[step_display_bpm]));
|
||||||
|
|
||||||
switch( c )
|
switch( c )
|
||||||
{
|
{
|
||||||
@@ -4295,42 +4369,60 @@ void ScreenEdit::HandleStepsInformationChoice( StepsInformationChoice c, const v
|
|||||||
m_pSteps->GetDescription(),
|
m_pSteps->GetDescription(),
|
||||||
MAX_STEPS_DESCRIPTION_LENGTH,
|
MAX_STEPS_DESCRIPTION_LENGTH,
|
||||||
SongUtil::ValidateCurrentStepsDescription,
|
SongUtil::ValidateCurrentStepsDescription,
|
||||||
ChangeDescription,NULL);
|
ChangeDescription,
|
||||||
|
NULL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case chartstyle:
|
case chartstyle:
|
||||||
ScreenTextEntry::TextEntry(
|
{
|
||||||
SM_None,
|
ScreenTextEntry::TextEntry(SM_None,
|
||||||
ENTER_NEW_CHART_STYLE,
|
ENTER_NEW_CHART_STYLE,
|
||||||
m_pSteps->GetChartStyle(),
|
m_pSteps->GetChartStyle(),
|
||||||
255,
|
255,
|
||||||
NULL,
|
NULL,
|
||||||
ChangeChartStyle,
|
ChangeChartStyle,
|
||||||
NULL
|
NULL);
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case step_credit:
|
case step_credit:
|
||||||
ScreenTextEntry::TextEntry(
|
{
|
||||||
SM_None,
|
ScreenTextEntry::TextEntry(SM_None,
|
||||||
ENTER_NEW_STEP_AUTHOR,
|
ENTER_NEW_STEP_AUTHOR,
|
||||||
m_pSteps->GetCredit(),
|
m_pSteps->GetCredit(),
|
||||||
255,
|
255,
|
||||||
SongUtil::ValidateCurrentStepsCredit,
|
SongUtil::ValidateCurrentStepsCredit,
|
||||||
ChangeStepCredit,
|
ChangeStepCredit,
|
||||||
NULL
|
NULL);
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case meter:
|
case meter:
|
||||||
ScreenTextEntry::TextEntry(
|
{
|
||||||
SM_BackFromDifficultyMeterChange,
|
ScreenTextEntry::TextEntry(SM_BackFromDifficultyMeterChange,
|
||||||
ENTER_NEW_METER,
|
ENTER_NEW_METER,
|
||||||
ssprintf("%d", m_pSteps->GetMeter()),
|
ssprintf("%d", m_pSteps->GetMeter()),
|
||||||
4
|
4);
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case step_min_bpm:
|
||||||
|
{
|
||||||
|
ScreenTextEntry::TextEntry(SM_None, ENTER_MIN_BPM,
|
||||||
|
ssprintf("%.6f", pSteps->GetMinBPM()), 20,
|
||||||
|
ScreenTextEntry::FloatValidate,
|
||||||
|
ChangeStepsMinBPM, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case step_max_bpm:
|
||||||
|
{
|
||||||
|
ScreenTextEntry::TextEntry(SM_None, ENTER_MAX_BPM,
|
||||||
|
ssprintf("%.6f", pSteps->GetMaxBPM()), 20,
|
||||||
|
ScreenTextEntry::FloatValidate,
|
||||||
|
ChangeStepsMaxBPM, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
SetDirty(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static LocalizedString ENTER_MAIN_TITLE ("ScreenEdit","Enter a new main title.");
|
static LocalizedString ENTER_MAIN_TITLE ("ScreenEdit","Enter a new main title.");
|
||||||
@@ -4344,8 +4436,6 @@ static LocalizedString ENTER_ARTIST_TRANSLIT ("ScreenEdit","Enter a new artist
|
|||||||
static LocalizedString ENTER_LAST_SECOND_HINT ("ScreenEdit","Enter a new last second hint.");
|
static LocalizedString ENTER_LAST_SECOND_HINT ("ScreenEdit","Enter a new last second hint.");
|
||||||
static LocalizedString ENTER_PREVIEW_START ("ScreenEdit","Enter a new preview start.");
|
static LocalizedString ENTER_PREVIEW_START ("ScreenEdit","Enter a new preview start.");
|
||||||
static LocalizedString ENTER_PREVIEW_LENGTH ("ScreenEdit","Enter a new preview length.");
|
static LocalizedString ENTER_PREVIEW_LENGTH ("ScreenEdit","Enter a new preview length.");
|
||||||
static LocalizedString ENTER_MIN_BPM ("ScreenEdit","Enter a new min BPM.");
|
|
||||||
static LocalizedString ENTER_MAX_BPM ("ScreenEdit","Enter a new max BPM.");
|
|
||||||
void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers )
|
void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vector<int> &iAnswers )
|
||||||
{
|
{
|
||||||
Song* pSong = GAMESTATE->m_pCurSong;
|
Song* pSong = GAMESTATE->m_pCurSong;
|
||||||
@@ -4403,6 +4493,7 @@ void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vec
|
|||||||
ScreenTextEntry::FloatValidate, ChangeMaxBPM, NULL );
|
ScreenTextEntry::FloatValidate, ChangeMaxBPM, NULL );
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
SetDirty(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+16
-2
@@ -380,6 +380,7 @@ public:
|
|||||||
options, /**< Modify the PlayerOptions and SongOptions. */
|
options, /**< Modify the PlayerOptions and SongOptions. */
|
||||||
edit_song_info, /**< Edit some general information about the song. */
|
edit_song_info, /**< Edit some general information about the song. */
|
||||||
edit_timing_data, /**< Edit the chart's timing data. */
|
edit_timing_data, /**< Edit the chart's timing data. */
|
||||||
|
view_steps_data, /**< View step statistics. */
|
||||||
play_preview_music, /**< Play the song's preview music. */
|
play_preview_music, /**< Play the song's preview music. */
|
||||||
exit,
|
exit,
|
||||||
save_on_exit,
|
save_on_exit,
|
||||||
@@ -408,6 +409,7 @@ public:
|
|||||||
convert_to_delay, /**< Convert the range into a DelaySegment. */
|
convert_to_delay, /**< Convert the range into a DelaySegment. */
|
||||||
convert_to_warp, /**< Convert the range into a WarpSegment. */
|
convert_to_warp, /**< Convert the range into a WarpSegment. */
|
||||||
convert_to_fake, /**< Convert the range into a FakeSegment. */
|
convert_to_fake, /**< Convert the range into a FakeSegment. */
|
||||||
|
convert_to_attack, /**< Convert the range into an Attack. */
|
||||||
routine_invert_notes, /**< Switch which player hits the note. */
|
routine_invert_notes, /**< Switch which player hits the note. */
|
||||||
routine_mirror_1_to_2, /**< Mirror Player 1's notes for Player 2. */
|
routine_mirror_1_to_2, /**< Mirror Player 1's notes for Player 2. */
|
||||||
routine_mirror_2_to_1, /**< Mirror Player 2's notes for Player 1. */
|
routine_mirror_2_to_1, /**< Mirror Player 2's notes for Player 1. */
|
||||||
@@ -510,20 +512,32 @@ public:
|
|||||||
chartstyle, /**< How is this chart meant to be played? */
|
chartstyle, /**< How is this chart meant to be played? */
|
||||||
step_credit, /**< Who wrote this individual chart? */
|
step_credit, /**< Who wrote this individual chart? */
|
||||||
predict_meter, /**< What does the game think this chart's rating should be? */
|
predict_meter, /**< What does the game think this chart's rating should be? */
|
||||||
|
step_display_bpm,
|
||||||
|
step_min_bpm,
|
||||||
|
step_max_bpm,
|
||||||
|
NUM_STEPS_INFORMATION_CHOICES
|
||||||
|
};
|
||||||
|
void HandleStepsInformationChoice( StepsInformationChoice c, const vector<int> &iAnswers );
|
||||||
|
|
||||||
|
enum StepsDataChoice
|
||||||
|
{
|
||||||
tap_notes,
|
tap_notes,
|
||||||
jumps,
|
jumps,
|
||||||
hands,
|
hands,
|
||||||
quads,
|
quads,
|
||||||
holds,
|
holds,
|
||||||
mines,
|
mines,
|
||||||
|
rolls,
|
||||||
|
lifts,
|
||||||
|
fakes,
|
||||||
stream,
|
stream,
|
||||||
voltage,
|
voltage,
|
||||||
air,
|
air,
|
||||||
freeze,
|
freeze,
|
||||||
chaos,
|
chaos,
|
||||||
NUM_STEPS_INFORMATION_CHOICES
|
NUM_STEPS_DATA_CHOICES
|
||||||
};
|
};
|
||||||
void HandleStepsInformationChoice( StepsInformationChoice c, const vector<int> &iAnswers );
|
void HandleStepsDataChoice(StepsDataChoice c, const vector<int> &answers);
|
||||||
|
|
||||||
enum SongInformationChoice
|
enum SongInformationChoice
|
||||||
{
|
{
|
||||||
|
|||||||
+4
-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 = 188;
|
const int FILE_CACHE_VERSION = 189;
|
||||||
|
|
||||||
/** @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;
|
||||||
@@ -202,6 +202,9 @@ void Song::InitSteps(Steps *pSteps)
|
|||||||
pSteps->m_Timing = this->m_SongTiming;
|
pSteps->m_Timing = this->m_SongTiming;
|
||||||
pSteps->m_sAttackString = this->m_sAttackString;
|
pSteps->m_sAttackString = this->m_sAttackString;
|
||||||
pSteps->m_Attacks = this->m_Attacks;
|
pSteps->m_Attacks = this->m_Attacks;
|
||||||
|
pSteps->SetDisplayBPM(this->m_DisplayBPMType);
|
||||||
|
pSteps->SetMinBPM(this->m_fSpecifiedBPMMin);
|
||||||
|
pSteps->SetMaxBPM(this->m_fSpecifiedBPMMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Song::GetDisplayBpms( DisplayBpms &AddTo ) const
|
void Song::GetDisplayBpms( DisplayBpms &AddTo ) const
|
||||||
|
|||||||
+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.74f;
|
const static float STEPFILE_VERSION_NUMBER = 0.75f;
|
||||||
|
|
||||||
/** @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;
|
||||||
|
|||||||
Reference in New Issue
Block a user