u32 getflagsfield(lua_State *L, int table, const char *fieldname, FlagDesc *flagdesc) { std::string flagstring; flagstring = getstringfield_default(L, table, fieldname, ""); return readFlagString(flagstring, flagdesc); }
u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const { std::string val = get(name); return std::isdigit(val[0]) ? stoi(val) : readFlagString(val, flagdesc, flagmask); }
bool read_flags(lua_State *L, int index, FlagDesc *flagdesc, u32 *flags, u32 *flagmask) { if (lua_isstring(L, index)) { std::string flagstr = lua_tostring(L, index); *flags = readFlagString(flagstr, flagdesc, flagmask); } else if (lua_istable(L, index)) { *flags = read_flags_table(L, index, flagdesc, flagmask); } else { return false; } return true; }