Allow setting and getting beat bar status per NoteField from Lua

This commit is contained in:
tertu marybig
2024-02-15 14:37:56 -06:00
committed by teejusb
parent c4d63052e2
commit acf8be530d
3 changed files with 46 additions and 9 deletions
+26 -1
View File
@@ -46,6 +46,7 @@ NoteField::NoteField()
m_pNoteData = nullptr;
m_pCurDisplay = nullptr;
m_drawing_board_primitive= false;
m_bShowBeatBars = SHOW_BEAT_BARS;
m_textMeasureNumber.LoadFromFont( THEME->GetPathF("NoteField","MeasureNumber") );
m_textMeasureNumber.SetZoom( 1.0f );
@@ -96,6 +97,16 @@ void NoteField::Unload()
memset( m_pDisplays, 0, sizeof(m_pDisplays) );
}
void NoteField::SetBeatBars(bool active)
{
m_bShowBeatBars = active;
}
bool NoteField::GetBeatBars()
{
return m_bShowBeatBars;
}
void NoteField::CacheNoteSkin( const RString &sNoteSkin_ )
{
RString sNoteSkinLower = sNoteSkin_;
@@ -800,7 +811,7 @@ void NoteField::DrawPrimitives()
segs[tst] = &(pTiming->GetTimingSegments(tst));
// Draw beat bars
if( ( GAMESTATE->IsEditing() || SHOW_BEAT_BARS ) && pTiming != nullptr )
if( ( GAMESTATE->IsEditing() || m_bShowBeatBars ) && pTiming != nullptr )
{
const std::vector<TimingSegment *> &tSigs = *segs[SEGMENT_TIME_SIG];
int iMeasureIndex = 0;
@@ -1267,6 +1278,18 @@ public:
return 1;
}
static int GetBeatBars(T* p, lua_State* L)
{
LuaHelpers::Push(L, p->GetBeatBars());
return 1;
};
static int SetBeatBars(T* p, lua_State* L)
{
p->SetBeatBars(BArg(1));
return 0;
}
LunaNoteField()
{
ADD_METHOD(set_step_callback);
@@ -1278,6 +1301,8 @@ public:
ADD_METHOD(did_tap_note);
ADD_METHOD(did_hold_note);
ADD_METHOD(get_column_actors);
ADD_METHOD(GetBeatBars);
ADD_METHOD(SetBeatBars);
}
};