Part one of refactor of LS.ckint/LS.tryint/LS.isint
This commit is contained in:
@@ -55,19 +55,31 @@ static void parse_value(std::string_view vstr, AnimValue *v) {
|
||||
|
||||
static AnimValue parse_anim_value(LuaCoreStack &LS, LuaSlot val, LuaSlot tmp) {
|
||||
AnimValue result;
|
||||
if (LS.isboolean(val)) {
|
||||
result.set_boolean(LS.ckboolean(val));
|
||||
} else if (LS.isnumber(val)) {
|
||||
result.set_number(LS.cknumber(val));
|
||||
} else if (LS.isstring(val)) {
|
||||
result.set_string(LS.ckstring(val));
|
||||
} else if (LS.isxyz(val)) {
|
||||
result.set_dxyz(LS.ckxyz(val));
|
||||
} else if (LS.rawequal(val, LuaToken("auto"))) {
|
||||
result.set_auto();
|
||||
} else {
|
||||
result.set_uninitialized();
|
||||
auto tboolean = LS.tryboolean(val);
|
||||
if (tboolean) {
|
||||
result.set_boolean(*tboolean);
|
||||
return result;
|
||||
}
|
||||
auto tnumber = LS.trynumber(val);
|
||||
if (tnumber) {
|
||||
result.set_number(*tnumber);
|
||||
return result;
|
||||
}
|
||||
auto tstring = LS.trystringview(val);
|
||||
if (tstring) {
|
||||
result.set_string(*tstring);
|
||||
return result;
|
||||
}
|
||||
auto txyz = LS.tryxyz(val);
|
||||
if (txyz) {
|
||||
result.set_dxyz(*txyz);
|
||||
return result;
|
||||
}
|
||||
if (LS.rawequal(val, LuaToken("auto"))) {
|
||||
result.set_auto();
|
||||
return result;
|
||||
}
|
||||
result.set_uninitialized();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user