bool same(CVarRef v1, CResRef v2) { bool null1 = v1.isNull(); bool null2 = v2.isNull(); if (null1 && null2) return true; if (null1 || null2) return false; if (!v1.isResource()) return false; auto const rd = v1.getResourceData(); return rd == v2.get(); }
String f_gettype(CVarRef v) { if (v.getType() == KindOfResource && v.getResourceData()->isInvalid()) { return s_unknown_type; } return getDataTypeString(v.getType()); }
bool f_is_resource(CVarRef v) { return (v.getType() == KindOfResource && !v.getResourceData()->isInvalid()); }