@@ -327,7 +327,10 @@ json SerializeType(CSchemaType* type)
327327 j[" category" ] = " declared_class" ;
328328 auto * classType = static_cast <CSchemaType_DeclaredClass*>(type);
329329 if (classType->m_pClassInfo && classType->m_pClassInfo ->m_pszName )
330+ {
330331 j[" name" ] = classType->m_pClassInfo ->m_pszName ;
332+ j[" module" ] = classType->m_pClassInfo ->m_pszProjectName ;
333+ }
331334 else
332335 j[" name" ] = type->m_sTypeName .String ();
333336 break ;
@@ -337,7 +340,10 @@ json SerializeType(CSchemaType* type)
337340 j[" category" ] = " declared_enum" ;
338341 auto * enumType = static_cast <CSchemaType_DeclaredEnum*>(type);
339342 if (enumType->m_pEnumInfo && enumType->m_pEnumInfo ->m_pszName )
343+ {
340344 j[" name" ] = enumType->m_pEnumInfo ->m_pszName ;
345+ j[" module" ] = enumType->m_pEnumInfo ->m_pszProjectName ;
346+ }
341347 else
342348 j[" name" ] = type->m_sTypeName .String ();
343349 break ;
@@ -463,12 +469,14 @@ void CollectClassesJson(CSchemaSystemTypeScope* typeScope, json& classesArray)
463469 {
464470 const auto * baseClass = classInfo->m_pBaseClasses [baseIndex].m_pClass ;
465471 if (baseClass)
466- parents.push_back (baseClass->m_pszName );
472+ {
473+ json parent;
474+ parent[" name" ] = baseClass->m_pszName ;
475+ parent[" module" ] = baseClass->m_pszProjectName ;
476+ parents.push_back (parent);
477+ }
467478 }
468479
469- if (!parents.empty ())
470- classObj[" parent" ] = parents[0 ];
471-
472480 classObj[" parents" ] = parents;
473481
474482 // Fields
@@ -479,6 +487,7 @@ void CollectClassesJson(CSchemaSystemTypeScope* typeScope, json& classesArray)
479487
480488 json fieldObj;
481489 fieldObj[" name" ] = field.m_pszName ;
490+ fieldObj[" offset" ] = field.m_nSingleInheritanceOffset ;
482491 fieldObj[" type" ] = SerializeType (field.m_pType );
483492 fieldObj[" metadata" ] = SerializeMetadataArray (field.m_pStaticMetadata , field.m_nStaticMetadataCount , classInfo->m_pszName );
484493 fields.push_back (fieldObj);
0 commit comments