Added metrics for setting the screens Edit Mode uses for setting mods. Added functions for apply ModsLevel_Preferred to the other levels.
This commit is contained in:
@@ -8,7 +8,12 @@ ________________________________________________________________________________
|
|||||||
----------
|
----------
|
||||||
* [EditMode] Play whole song and play from current beat will now play until
|
* [EditMode] Play whole song and play from current beat will now play until
|
||||||
either the music or the notes end, whichever is greater. [kyzentun]
|
either the music or the notes end, whichever is greater. [kyzentun]
|
||||||
|
The screens used for setting the options used to play the screen and for
|
||||||
|
adding attacks can be set through the "OptionsScreen" and "SetModScreen"
|
||||||
|
metrics in the ScreenEdit section.
|
||||||
|
* [GameState] ApplyPreferredSongOptionsToOtherLevels function added. [kyzentun]
|
||||||
* [Player] "ComboBreakOnImmediateHoldLetGo" theme metric added. [sillybear]
|
* [Player] "ComboBreakOnImmediateHoldLetGo" theme metric added. [sillybear]
|
||||||
|
* [PlayerState] ApplyPreferredOptionsToOtherLevels function added. [kyzentun]
|
||||||
|
|
||||||
2014/12/03
|
2014/12/03
|
||||||
----------
|
----------
|
||||||
|
|||||||
@@ -748,6 +748,7 @@
|
|||||||
<Function name='AnyPlayerHasRankingFeats'/>
|
<Function name='AnyPlayerHasRankingFeats'/>
|
||||||
<Function name='ApplyGameCommand'/>
|
<Function name='ApplyGameCommand'/>
|
||||||
<Function name='ApplyPreferredModifiers'/>
|
<Function name='ApplyPreferredModifiers'/>
|
||||||
|
<Function name='ApplyPreferredSongOptionsToOtherLevels'/>
|
||||||
<Function name='ApplyStageModifiers'/>
|
<Function name='ApplyStageModifiers'/>
|
||||||
<Function name='ClearStageModifiersIllegalForCourse'/>
|
<Function name='ClearStageModifiersIllegalForCourse'/>
|
||||||
<Function name='CurrentOptionsDisqualifyPlayer'/>
|
<Function name='CurrentOptionsDisqualifyPlayer'/>
|
||||||
@@ -1162,6 +1163,7 @@
|
|||||||
<Function name='SetScore'/>
|
<Function name='SetScore'/>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='PlayerState'>
|
<Class name='PlayerState'>
|
||||||
|
<Function name='ApplyPreferredOptionsToOtherLevels'/>
|
||||||
<Function name='GetCurrentPlayerOptions'/>
|
<Function name='GetCurrentPlayerOptions'/>
|
||||||
<Function name='GetHealthState'/>
|
<Function name='GetHealthState'/>
|
||||||
<Function name='GetMultiPlayerNumber'/>
|
<Function name='GetMultiPlayerNumber'/>
|
||||||
|
|||||||
@@ -2257,6 +2257,9 @@ save yourself some time, copy this for undocumented things:
|
|||||||
<Function name='ApplyPreferredModifiers' return='void' arguments='PlayerNumber pn, string mods'>
|
<Function name='ApplyPreferredModifiers' return='void' arguments='PlayerNumber pn, string mods'>
|
||||||
Applies the specified modifiers for the specified player's preferred modifier set.
|
Applies the specified modifiers for the specified player's preferred modifier set.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ApplyPreferredSongOptionsToOtherLevels' return='void' arguments=''>
|
||||||
|
Applies the song options of ModsLevel_Preferred to the other ModsLevels.
|
||||||
|
</Function>
|
||||||
<Function name='ApplyStageModifiers' return='void' arguments='PlayerNumber pn, string mods'>
|
<Function name='ApplyStageModifiers' return='void' arguments='PlayerNumber pn, string mods'>
|
||||||
Applies the specified modifiers for the specified player for the current stage.
|
Applies the specified modifiers for the specified player for the current stage.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3369,6 +3372,9 @@ save yourself some time, copy this for undocumented things:
|
|||||||
</Function>
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='PlayerState'>
|
<Class name='PlayerState'>
|
||||||
|
<Function name='ApplyPreferredOptionsToOtherLevels' return='void' arguments=''>
|
||||||
|
Applies the player options of ModsLevel_Preferred to the other ModsLevels.
|
||||||
|
</Function>
|
||||||
<Function name='GetCurrentPlayerOptions' return='PlayerOptions' arguments='' >
|
<Function name='GetCurrentPlayerOptions' return='PlayerOptions' arguments='' >
|
||||||
Returns the current PlayerOptions for this PlayerState.
|
Returns the current PlayerOptions for this PlayerState.
|
||||||
</Function>
|
</Function>
|
||||||
|
|||||||
@@ -4007,6 +4007,9 @@ PlayRecordHelpX=SCREEN_LEFT+20
|
|||||||
PlayRecordHelpY=SCREEN_BOTTOM-20
|
PlayRecordHelpY=SCREEN_BOTTOM-20
|
||||||
PlayRecordHelpOnCommand=halign,0;valign,0;shadowlength,1
|
PlayRecordHelpOnCommand=halign,0;valign,0;shadowlength,1
|
||||||
|
|
||||||
|
SetModScreen="ScreenPlayerOptions"
|
||||||
|
OptionsScreen="ScreenEditOptions"
|
||||||
|
|
||||||
LoopOnChartEnd=true
|
LoopOnChartEnd=true
|
||||||
|
|
||||||
CurrentBeatFormat="%s:\n %.3f\n"
|
CurrentBeatFormat="%s:\n %.3f\n"
|
||||||
|
|||||||
@@ -2470,6 +2470,12 @@ public:
|
|||||||
lua_pushstring(L, so.GetString());
|
lua_pushstring(L, so.GetString());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
static int ApplyPreferredSongOptionsToOtherLevels(T* p, lua_State* L)
|
||||||
|
{
|
||||||
|
p->m_SongOptions.Assign(ModsLevel_Preferred,
|
||||||
|
p->m_SongOptions.Get(ModsLevel_Preferred));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
static int ApplyStageModifiers( T* p, lua_State *L )
|
static int ApplyStageModifiers( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
p->ApplyStageModifiers( Enum::Check<PlayerNumber>(L, 1), SArg(2) );
|
p->ApplyStageModifiers( Enum::Check<PlayerNumber>(L, 1), SArg(2) );
|
||||||
@@ -2862,6 +2868,7 @@ public:
|
|||||||
ADD_METHOD( GetSongOptions );
|
ADD_METHOD( GetSongOptions );
|
||||||
ADD_METHOD( GetSongOptionsObject );
|
ADD_METHOD( GetSongOptionsObject );
|
||||||
ADD_METHOD( GetDefaultSongOptions );
|
ADD_METHOD( GetDefaultSongOptions );
|
||||||
|
ADD_METHOD( ApplyPreferredSongOptionsToOtherLevels );
|
||||||
ADD_METHOD( ApplyPreferredModifiers );
|
ADD_METHOD( ApplyPreferredModifiers );
|
||||||
ADD_METHOD( ApplyStageModifiers );
|
ADD_METHOD( ApplyStageModifiers );
|
||||||
ADD_METHOD( ClearStageModifiersIllegalForCourse );
|
ADD_METHOD( ClearStageModifiersIllegalForCourse );
|
||||||
|
|||||||
@@ -213,6 +213,12 @@ const TimingData &PlayerState::GetDisplayedTiming() const
|
|||||||
class LunaPlayerState: public Luna<PlayerState>
|
class LunaPlayerState: public Luna<PlayerState>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
static int ApplyPreferredOptionsToOtherLevels(T* p, lua_State* L)
|
||||||
|
{
|
||||||
|
p->m_PlayerOptions.Assign(ModsLevel_Preferred,
|
||||||
|
p->m_PlayerOptions.Get(ModsLevel_Preferred));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
DEFINE_METHOD( GetPlayerNumber, m_PlayerNumber );
|
DEFINE_METHOD( GetPlayerNumber, m_PlayerNumber );
|
||||||
static int GetSongPosition( T* p, lua_State *L )
|
static int GetSongPosition( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
@@ -260,6 +266,7 @@ public:
|
|||||||
|
|
||||||
LunaPlayerState()
|
LunaPlayerState()
|
||||||
{
|
{
|
||||||
|
ADD_METHOD( ApplyPreferredOptionsToOtherLevels );
|
||||||
ADD_METHOD( GetPlayerNumber );
|
ADD_METHOD( GetPlayerNumber );
|
||||||
ADD_METHOD( GetMultiPlayerNumber );
|
ADD_METHOD( GetMultiPlayerNumber );
|
||||||
ADD_METHOD( GetPlayerController );
|
ADD_METHOD( GetPlayerController );
|
||||||
|
|||||||
+10
-7
@@ -59,6 +59,9 @@ const float RECORD_HOLD_SECONDS = 0.3f;
|
|||||||
#define PLAY_RECORD_HELP_TEXT THEME->GetString(m_sName,"PlayRecordHelpText")
|
#define PLAY_RECORD_HELP_TEXT THEME->GetString(m_sName,"PlayRecordHelpText")
|
||||||
#define EDIT_HELP_TEXT THEME->GetString(m_sName,"EditHelpText")
|
#define EDIT_HELP_TEXT THEME->GetString(m_sName,"EditHelpText")
|
||||||
|
|
||||||
|
#define SET_MOD_SCREEN THEME->GetMetric("ScreenEdit", "SetModScreen")
|
||||||
|
#define OPTIONS_SCREEN THEME->GetMetric("ScreenEdit", "OptionsScreen")
|
||||||
|
|
||||||
AutoScreenMessage( SM_UpdateTextInfo );
|
AutoScreenMessage( SM_UpdateTextInfo );
|
||||||
AutoScreenMessage( SM_BackFromMainMenu );
|
AutoScreenMessage( SM_BackFromMainMenu );
|
||||||
AutoScreenMessage( SM_BackFromAreaMenu );
|
AutoScreenMessage( SM_BackFromAreaMenu );
|
||||||
@@ -2722,7 +2725,7 @@ bool ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB )
|
|||||||
g_fLastInsertAttackPositionSeconds = start;
|
g_fLastInsertAttackPositionSeconds = start;
|
||||||
g_fLastInsertAttackDurationSeconds = end - start;
|
g_fLastInsertAttackDurationSeconds = end - start;
|
||||||
toEdit.Assign( ModsLevel_Stage, po );
|
toEdit.Assign( ModsLevel_Stage, po );
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertStepAttackPlayerOptions );
|
SCREENMAN->AddNewScreenToTop( SET_MOD_SCREEN, SM_BackFromInsertStepAttackPlayerOptions );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case EDIT_BUTTON_ADD_COURSE_MODS:
|
case EDIT_BUTTON_ADD_COURSE_MODS:
|
||||||
@@ -2758,7 +2761,7 @@ bool ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB )
|
|||||||
g_fLastInsertAttackPositionSeconds = fStart;
|
g_fLastInsertAttackPositionSeconds = fStart;
|
||||||
g_fLastInsertAttackDurationSeconds = fEnd - fStart;
|
g_fLastInsertAttackDurationSeconds = fEnd - fStart;
|
||||||
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.Assign( ModsLevel_Stage, po );
|
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.Assign( ModsLevel_Stage, po );
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertCourseAttackPlayerOptions );
|
SCREENMAN->AddNewScreenToTop( SET_MOD_SCREEN, SM_BackFromInsertCourseAttackPlayerOptions );
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -3739,7 +3742,7 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
int iDurationChoice = ScreenMiniMenu::s_viLastAnswers[0];
|
int iDurationChoice = ScreenMiniMenu::s_viLastAnswers[0];
|
||||||
g_fLastInsertAttackDurationSeconds = StringToFloat( g_InsertTapAttack.rows[0].choices[iDurationChoice] );
|
g_fLastInsertAttackDurationSeconds = StringToFloat( g_InsertTapAttack.rows[0].choices[iDurationChoice] );
|
||||||
|
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertTapAttackPlayerOptions );
|
SCREENMAN->AddNewScreenToTop( SET_MOD_SCREEN, SM_BackFromInsertTapAttackPlayerOptions );
|
||||||
}
|
}
|
||||||
else if( SM == SM_BackFromInsertTapAttackPlayerOptions )
|
else if( SM == SM_BackFromInsertTapAttackPlayerOptions )
|
||||||
{
|
{
|
||||||
@@ -3973,7 +3976,7 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
po.FromString(attacks[iAttack].sModifiers);
|
po.FromString(attacks[iAttack].sModifiers);
|
||||||
|
|
||||||
toEdit.Assign( ModsLevel_Preferred, po );
|
toEdit.Assign( ModsLevel_Preferred, po );
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertStepAttackPlayerOptions );
|
SCREENMAN->AddNewScreenToTop( SET_MOD_SCREEN, SM_BackFromInsertStepAttackPlayerOptions );
|
||||||
}
|
}
|
||||||
SetDirty(true);
|
SetDirty(true);
|
||||||
}
|
}
|
||||||
@@ -4003,7 +4006,7 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
po.FromString( ce.attacks[iAttack].sModifiers );
|
po.FromString( ce.attacks[iAttack].sModifiers );
|
||||||
|
|
||||||
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.Assign( ModsLevel_Preferred, po );
|
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions.Assign( ModsLevel_Preferred, po );
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertCourseAttackPlayerOptions );
|
SCREENMAN->AddNewScreenToTop( SET_MOD_SCREEN, SM_BackFromInsertCourseAttackPlayerOptions );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (SM == SM_BackFromInsertStepAttackPlayerOptions)
|
else if (SM == SM_BackFromInsertStepAttackPlayerOptions)
|
||||||
@@ -4646,7 +4649,7 @@ void ScreenEdit::HandleMainMenuChoice( MainMenuChoice c, const vector<int> &iAns
|
|||||||
ScreenPrompt::Prompt( SM_DoRevertFromDisk, REVERT_FROM_DISK.GetValue() + "\n\n" + DESTROY_ALL_UNSAVED_CHANGES.GetValue(), PROMPT_YES_NO, ANSWER_NO );
|
ScreenPrompt::Prompt( SM_DoRevertFromDisk, REVERT_FROM_DISK.GetValue() + "\n\n" + DESTROY_ALL_UNSAVED_CHANGES.GetValue(), PROMPT_YES_NO, ANSWER_NO );
|
||||||
break;
|
break;
|
||||||
case options:
|
case options:
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenEditOptions", SM_BackFromOptions );
|
SCREENMAN->AddNewScreenToTop( OPTIONS_SCREEN, SM_BackFromOptions );
|
||||||
break;
|
break;
|
||||||
case edit_song_info:
|
case edit_song_info:
|
||||||
{
|
{
|
||||||
@@ -5049,7 +5052,7 @@ void ScreenEdit::HandleAlterMenuChoice(AlterMenuChoice c, const vector<int> &iAn
|
|||||||
po.FromString(attacks[iAttack].sModifiers);
|
po.FromString(attacks[iAttack].sModifiers);
|
||||||
|
|
||||||
toEdit.Assign( ModsLevel_Preferred, po );
|
toEdit.Assign( ModsLevel_Preferred, po );
|
||||||
SCREENMAN->AddNewScreenToTop( "ScreenPlayerOptions", SM_BackFromInsertStepAttackPlayerOptions );
|
SCREENMAN->AddNewScreenToTop( SET_MOD_SCREEN, SM_BackFromInsertStepAttackPlayerOptions );
|
||||||
SetDirty(true);
|
SetDirty(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user