39 static void VisitMenuMembersRec(
const char* a_path, RE::GFxValue& a_obj,
int depth = 0,
int max_depth = 4)
41 if (depth > max_depth)
46 struct MemberVisitor : RE::GFxValue::ObjectVisitor
52 void Visit(
const char* a_name,
const RE::GFxValue& a_val)
override
54 std::string full_path = std::string(path) +
"." + a_name;
55 switch (a_val.GetType())
57 case RE::GFxValue::ValueType::kNumber:
58 SKSE::log::info(
"{} = {}", full_path, a_val.GetNumber());
60 case RE::GFxValue::ValueType::kBoolean:
61 SKSE::log::info(
"{} = {}", full_path, a_val.GetBool());
63 case RE::GFxValue::ValueType::kString:
64 SKSE::log::info(
"{} = {}", full_path, a_val.GetString());
66 case RE::GFxValue::ValueType::kObject:
67 case RE::GFxValue::ValueType::kDisplayObject:
69 SKSE::log::info(
"{} = [object]", full_path);
70 auto val_copy =
const_cast<RE::GFxValue&
>(a_val);
75 SKSE::log::info(
"{} = [unknown]", full_path);
81 MemberVisitor visitor;
82 visitor.path = a_path;
83 visitor.depth = depth;
84 visitor.max_depth = max_depth;
85 a_obj.VisitMembers(&visitor);