public override int GetScriptVTableOffset(VirtualClassInfo classInfo) { if (classInfo == BaseType) { return(0); } if (Interfaces != null) { var offset = BaseType is ClassInfo baseApiTypeInfo?baseApiTypeInfo.GetScriptVTableSize(out _) : 0; foreach (var interfaceInfo in Interfaces) { if (interfaceInfo.Access != AccessLevel.Public) { continue; } if (interfaceInfo == classInfo) { return(offset); } offset += interfaceInfo.GetScriptVTableSize(out _); } } throw new Exception($"Cannot get Script VTable offset for {classInfo} that is not part of {this}"); }
public abstract int GetScriptVTableOffset(VirtualClassInfo classInfo);
public override int GetScriptVTableOffset(VirtualClassInfo classInfo) { return(0); }