mirror of https://github.com/odrling/Aegisub
Folding: Dont error on missing _foldinfo
This commit is contained in:
parent
e65e55833c
commit
7c92e6bbd6
|
@ -102,13 +102,19 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void get_userdata_field(lua_State *L, const char *name, const char *line_class, T *target)
|
bool get_userdata_field(lua_State *L, const char *name, const char *line_class, T *target, bool required)
|
||||||
{
|
{
|
||||||
lua_getfield(L, -1, name);
|
lua_getfield(L, -1, name);
|
||||||
if (!lua_isuserdata(L, -1))
|
if (!lua_isuserdata(L, -1)) {
|
||||||
|
if (!required) {
|
||||||
|
lua_pop(L, 1);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
throw bad_field("userdata", name, line_class);
|
throw bad_field("userdata", name, line_class);
|
||||||
|
}
|
||||||
*target = *static_cast<T *>(lua_touserdata(L, -1));
|
*target = *static_cast<T *>(lua_touserdata(L, -1));
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
using namespace Automation4;
|
using namespace Automation4;
|
||||||
|
@ -316,7 +322,9 @@ namespace Automation4 {
|
||||||
dia->Margin[2] = get_int_field(L, "margin_t", "dialogue");
|
dia->Margin[2] = get_int_field(L, "margin_t", "dialogue");
|
||||||
dia->Effect = get_string_field(L, "effect", "dialogue");
|
dia->Effect = get_string_field(L, "effect", "dialogue");
|
||||||
dia->Text = get_string_field(L, "text", "dialogue");
|
dia->Text = get_string_field(L, "text", "dialogue");
|
||||||
get_userdata_field(L, "_foldinfo", "dialogue", &dia->Fold);
|
if (!get_userdata_field(L, "_foldinfo", "dialogue", &dia->Fold, false)) {
|
||||||
|
dia->Fold = FoldInfo();
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<uint32_t> new_ids;
|
std::vector<uint32_t> new_ids;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue