AppModel: Generate composite type mappings

This commit is contained in:
Katy Coe
2020-07-13 19:52:04 +02:00
parent fdf198084f
commit 6e796a200f
4 changed files with 90 additions and 41 deletions

View File

@@ -29,7 +29,7 @@ namespace Il2CppInspector.Outputs
var internalModel = new AppModel(model.ILModel);
internalModel.UnityVersion = model.UnityVersion;
internalModel.UnityHeader = model.UnityHeader;
internalModel.TypeCollection = CppTypeCollection.FromUnityHeaders(model.UnityHeader, model.WordSize);
internalModel.CppTypeCollection = CppTypeCollection.FromUnityHeaders(model.UnityHeader, model.WordSize);
model = internalModel;
declGenerator = new CppDeclarationGenerator(model);
@@ -226,7 +226,8 @@ typedef __int64 int64_t;
}
// TODO: Temporary compatibility function, remove when integrated with ApplicationModel
private void writeDecls(List<(TypeInfo ilType, CppType valueType, CppType referenceType, CppType fieldsType, CppType vtableType, CppType staticsType)> types)
private void writeDecls(List<(TypeInfo ilType, CppComplexType valueType, CppComplexType referenceType,
CppComplexType fieldsType, CppComplexType vtableType, CppComplexType staticsType)> types)
=> writeDecls(string.Join("\n",
types.SelectMany(t => new List<CppType> {t.vtableType, t.staticsType, t.fieldsType, t.valueType, t.referenceType})
.Where(t => t != null)