Added SetStepsForEditMode lua function.
This commit is contained in:
+54
-1
@@ -2918,6 +2918,59 @@ public:
|
|||||||
COMMON_RETURN_SELF;
|
COMMON_RETURN_SELF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int SetStepsForEditMode(T* p, lua_State *L)
|
||||||
|
{
|
||||||
|
// Arg forms:
|
||||||
|
// 1. Edit existing steps:
|
||||||
|
// song, steps
|
||||||
|
// 2. Create new steps to edit:
|
||||||
|
// song, nil, stepstype, difficulty
|
||||||
|
// 3. Copy steps to new difficulty to edit:
|
||||||
|
// song, steps, stepstype, difficulty
|
||||||
|
Song* song= Luna<Song>::check(L, 1);
|
||||||
|
Steps* steps= NULL;
|
||||||
|
if(!lua_isnil(L, 2))
|
||||||
|
{
|
||||||
|
steps= Luna<Steps>::check(L, 2);
|
||||||
|
}
|
||||||
|
// Form 1.
|
||||||
|
if(steps != NULL && lua_gettop(L) == 2)
|
||||||
|
{
|
||||||
|
p->m_pCurSong.Set(song);
|
||||||
|
p->m_pCurSteps[PLAYER_1].Set(steps);
|
||||||
|
p->SetCurrentStyle(GAMEMAN->GetEditorStyleForStepsType(
|
||||||
|
steps->m_StepsType), PLAYER_INVALID);
|
||||||
|
p->m_pCurCourse.Set(NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
StepsType stype= Enum::Check<StepsType>(L, 3);
|
||||||
|
Difficulty diff= Enum::Check<Difficulty>(L, 4);
|
||||||
|
Steps* new_steps= song->CreateSteps();
|
||||||
|
RString edit_name;
|
||||||
|
// Form 2.
|
||||||
|
if(steps == NULL)
|
||||||
|
{
|
||||||
|
new_steps->CreateBlank(stype);
|
||||||
|
new_steps->SetMeter(1);
|
||||||
|
edit_name= "";
|
||||||
|
}
|
||||||
|
// Form 3.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new_steps->CopyFrom(steps, stype, song->m_fMusicLengthSeconds);
|
||||||
|
edit_name= steps->GetDescription();
|
||||||
|
}
|
||||||
|
SongUtil::MakeUniqueEditDescription(song, stype, edit_name);
|
||||||
|
steps->SetDescription(edit_name);
|
||||||
|
song->AddSteps(new_steps);
|
||||||
|
p->m_pCurSong.Set(song);
|
||||||
|
p->m_pCurSteps[PLAYER_1].Set(steps);
|
||||||
|
p->SetCurrentStyle(GAMEMAN->GetEditorStyleForStepsType(
|
||||||
|
steps->m_StepsType), PLAYER_INVALID);
|
||||||
|
p->m_pCurCourse.Set(NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
LunaGameState()
|
LunaGameState()
|
||||||
{
|
{
|
||||||
ADD_METHOD( IsPlayerEnabled );
|
ADD_METHOD( IsPlayerEnabled );
|
||||||
@@ -3000,7 +3053,6 @@ public:
|
|||||||
ADD_METHOD( IsWinner );
|
ADD_METHOD( IsWinner );
|
||||||
ADD_METHOD( IsDraw );
|
ADD_METHOD( IsDraw );
|
||||||
ADD_METHOD( GetCurrentGame );
|
ADD_METHOD( GetCurrentGame );
|
||||||
//ADD_METHOD( SetCurrentGame );
|
|
||||||
ADD_METHOD( GetEditCourseEntryIndex );
|
ADD_METHOD( GetEditCourseEntryIndex );
|
||||||
ADD_METHOD( GetEditLocalProfileID );
|
ADD_METHOD( GetEditLocalProfileID );
|
||||||
ADD_METHOD( GetEditLocalProfile );
|
ADD_METHOD( GetEditLocalProfile );
|
||||||
@@ -3042,6 +3094,7 @@ public:
|
|||||||
ADD_METHOD( StoreRankingName );
|
ADD_METHOD( StoreRankingName );
|
||||||
ADD_METHOD( SetCurrentStyle );
|
ADD_METHOD( SetCurrentStyle );
|
||||||
ADD_METHOD( SetCurrentPlayMode );
|
ADD_METHOD( SetCurrentPlayMode );
|
||||||
|
ADD_METHOD( SetStepsForEditMode );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user