private void WriteWhatIFound(ArchiveEditorFunctions archive) { progressBar1.Minimum = 0; progressBar1.Maximum = archive.AssetCount; progressBar1.Step = 1; foreach (Asset asset in archive.GetAllAssets()) { progressBar1.PerformStep(); if (senderAssetType != AssetType.Null && asset.AHDR.assetType != senderAssetType) { continue; } if (asset is ObjectAsset objectAsset) { foreach (LinkBFBB assetEvent in objectAsset.LinksBFBB) { if (recieveEventType != EventBFBB.Unknown && assetEvent.EventReceiveID != recieveEventType) { continue; } if (targetEventType != EventBFBB.Unknown && assetEvent.EventSendID != targetEventType) { continue; } Asset targetAsset = null; if (archive.ContainsAsset(assetEvent.TargetAssetID)) { targetAsset = archive.GetFromAssetID(assetEvent.TargetAssetID); } if (recieverAssetType != AssetType.Null) { if (targetAsset != null && targetAsset.AHDR.assetType != recieverAssetType) { continue; } if (targetAsset == null) { continue; } } string eventName = $"{objectAsset.AHDR.ADBG.assetName} ({assetEvent.EventReceiveID.ToString()}) => {assetEvent.EventSendID.ToString()} => "; if (targetAsset == null) { eventName += $"0x{assetEvent.TargetAssetID.ToString("X8")}"; } else { eventName += $"{targetAsset.AHDR.ADBG.assetName}"; } eventName += $" [{assetEvent.Arguments_Float[0]}, {assetEvent.Arguments_Float[1]}, {assetEvent.Arguments_Float[2]}, {assetEvent.Arguments_Float[3]}"; if (assetEvent.ArgumentAssetID != 0) { if (archive.ContainsAsset(assetEvent.ArgumentAssetID)) { eventName += $", {archive.GetFromAssetID(assetEvent.ArgumentAssetID).AHDR.ADBG.assetName}"; } else { eventName += $", 0x{assetEvent.ArgumentAssetID.ToString("X8")}"; } } if (assetEvent.SourceCheckAssetID != 0) { if (archive.ContainsAsset(assetEvent.SourceCheckAssetID)) { eventName += $", {archive.GetFromAssetID(assetEvent.SourceCheckAssetID).AHDR.ADBG.assetName}"; } else { eventName += $", 0x{assetEvent.SourceCheckAssetID.ToString("X8")}"; } } eventName += "]"; richTextBox1.AppendText(eventName + "\n"); senders.Add(objectAsset.AHDR.assetType); if (targetAsset != null) { recievers.Add(targetAsset.AHDR.assetType); } recievedEvents.Add(assetEvent.EventReceiveID); sentEvents.Add(assetEvent.EventSendID); total++; } } } }
public bool HasAsset(uint assetID) { return(archive.ContainsAsset(assetID)); }