@@ -33,6 +33,8 @@ class LuaFunctionError
33
33
constexpr bool IsWarning () const noexcept { return m_bWarning; }
34
34
};
35
35
36
+ using LuaVarArgs = std::optional<CLuaArguments>;
37
+
36
38
struct CLuaFunctionParserBase
37
39
{
38
40
// iIndex is passed around by reference
@@ -74,6 +76,8 @@ struct CLuaFunctionParserBase
74
76
}
75
77
else if constexpr (std::is_same_v<T, CLuaArgument>)
76
78
return " value" ;
79
+ else if constexpr (std::is_same_v<T, CLuaArguments>)
80
+ return " values" ;
77
81
else if constexpr (is_2specialization<T, std::vector>::value)
78
82
return " table" ;
79
83
else if constexpr (is_5specialization<T, std::unordered_map>::value)
@@ -219,6 +223,9 @@ struct CLuaFunctionParserBase
219
223
else if constexpr (std::is_same_v<T, CLuaArgument>)
220
224
return iArgument != LUA_TNONE;
221
225
226
+ else if constexpr (std::is_same_v<T, CLuaArguments>)
227
+ return iArgument != LUA_TNONE;
228
+
222
229
// All color classes are read as a single tocolor number
223
230
// Do not be tempted to change this to is_base_of<SColor, T>
224
231
// SColorARGB etc are only **constructors** for SColor!
@@ -651,6 +658,12 @@ struct CLuaFunctionParserBase
651
658
argument.Read (L, index++);
652
659
return argument;
653
660
}
661
+ else if constexpr (std::is_same_v<T, CLuaArguments>)
662
+ {
663
+ CLuaArguments argument;
664
+ argument.ReadArguments (L, index);
665
+ return argument;
666
+ }
654
667
else if constexpr (std::is_same_v<T, std::monostate>)
655
668
{
656
669
return T{};
0 commit comments