Remove macro from public Luna<TimingData>

This commit is contained in:
sukibaby
2024-08-06 15:33:34 -07:00
committed by teejusb
parent dfa7589345
commit 091b762f79
+185 -32
View File
@@ -1332,40 +1332,193 @@ void TimingSegmentSetToLuaTable(TimingData* td, TimingSegmentType tst, lua_State
class LunaTimingData: public Luna<TimingData>
{
public:
static int HasStops( T* p, lua_State *L ) { lua_pushboolean(L, p->HasStops()); return 1; }
static int HasDelays( T* p, lua_State *L ) { lua_pushboolean(L, p->HasDelays()); return 1; }
static int HasBPMChanges( T* p, lua_State *L ) { lua_pushboolean(L, p->HasBpmChanges()); return 1; }
static int HasWarps( T* p, lua_State *L ) { lua_pushboolean(L, p->HasWarps()); return 1; }
static int HasFakes( T* p, lua_State *L ) { lua_pushboolean(L, p->HasFakes()); return 1; }
static int HasSpeedChanges( T* p, lua_State *L ) { lua_pushboolean(L, p->HasSpeedChanges()); return 1; }
static int HasScrollChanges( T* p, lua_State *L ) { lua_pushboolean(L, p->HasScrollChanges()); return 1; }
#define GET_FUNCTION(get_name, segment_name) \
static int get_name(T* p, lua_State* L) \
{ \
if(lua_toboolean(L, 1)) \
{ \
TimingSegmentSetToLuaTable(p, segment_name, L); \
} \
else \
{ \
LuaHelpers::CreateTableFromArray(p->ToVectorString(segment_name), L); \
} \
return 1; \
static int HasStops(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasStops());
return 1;
}
GET_FUNCTION(GetWarps, SEGMENT_WARP);
GET_FUNCTION(GetFakes, SEGMENT_FAKE);
GET_FUNCTION(GetScrolls, SEGMENT_SCROLL);
GET_FUNCTION(GetSpeeds, SEGMENT_SPEED);
GET_FUNCTION(GetTimeSignatures, SEGMENT_TIME_SIG);
GET_FUNCTION(GetCombos, SEGMENT_COMBO);
GET_FUNCTION(GetTickcounts, SEGMENT_TICKCOUNT);
GET_FUNCTION(GetStops, SEGMENT_STOP);
GET_FUNCTION(GetDelays, SEGMENT_DELAY);
GET_FUNCTION(GetLabels, SEGMENT_LABEL);
GET_FUNCTION(GetBPMsAndTimes, SEGMENT_BPM);
#undef GET_FUNCTION
static int GetBPMs( T* p, lua_State *L )
static int HasDelays(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasDelays());
return 1;
}
static int HasBPMChanges(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasBpmChanges());
return 1;
}
static int HasWarps(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasWarps());
return 1;
}
static int HasFakes(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasFakes());
return 1;
}
static int HasSpeedChanges(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasSpeedChanges());
return 1;
}
static int HasScrollChanges(T* p, lua_State* L)
{
lua_pushboolean(L, p->HasScrollChanges());
return 1;
}
static int GetWarps(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_WARP, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_WARP), L);
}
return 1;
}
static int GetFakes(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_FAKE, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_FAKE), L);
}
return 1;
}
static int GetScrolls(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_SCROLL, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_SCROLL), L);
}
return 1;
}
static int GetSpeeds(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_SPEED, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_SPEED), L);
}
return 1;
}
static int GetTimeSignatures(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_TIME_SIG, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_TIME_SIG), L);
}
return 1;
}
static int GetCombos(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_COMBO, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_COMBO), L);
}
return 1;
}
static int GetTickcounts(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_TICKCOUNT, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_TICKCOUNT), L);
}
return 1;
}
static int GetStops(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_STOP, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_STOP), L);
}
return 1;
}
static int GetDelays(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_DELAY, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_DELAY), L);
}
return 1;
}
static int GetLabels(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_LABEL, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_LABEL), L);
}
return 1;
}
static int GetBPMsAndTimes(T* p, lua_State* L)
{
if (lua_toboolean(L, 1))
{
TimingSegmentSetToLuaTable(p, SEGMENT_BPM, L);
}
else
{
LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_BPM), L);
}
return 1;
}
static int GetBPMs(T* p, lua_State* L)
{
std::vector<float> vBPMs;
const std::vector<TimingSegment*> &bpms = p->GetTimingSegments(SEGMENT_BPM);