private static void ChaFileSaveFileHook(ChaFile file, BlockHeader header, ref long[] array3) { Dictionary <string, PluginData> extendedData = GetAllExtendedData(file); if (extendedData == null) { currentlySavingData = null; return; } currentlySavingData = MessagePackSerializer.Serialize(extendedData); //get offset long offset = array3.Sum(); long length = currentlySavingData.LongLength; //insert our custom data length at the end Array.Resize(ref array3, array3.Length + 1); array3[array3.Length - 1] = length; //add info about our data to the block header BlockHeader.Info info = new BlockHeader.Info { name = Marker, version = DataVersion.ToString(), pos = offset, size = length }; header.lstInfo.Add(info); }
public static void ChaFileSaveFileHook(ChaFile file, BlockHeader header, ref long[] array3) { var extendedData = GetAllExtendedData(file); if (extendedData == null || extendedData.Count == 0) { currentlySavingData = null; return; } try { currentlySavingData = MessagePackSerialize(extendedData); if (currentlySavingData.LongLength == 0) { currentlySavingData = null; return; } } catch (Exception e) { _logger.Log(LogLevel.Warning, $"Failed to save extended data in card. {e.Message}"); currentlySavingData = null; return; } //get offset var offset = array3.Sum(); var length = currentlySavingData.LongLength; //insert our custom data length at the end Array.Resize(ref array3, array3.Length + 1); array3[array3.Length - 1] = length; //add info about our data to the block header var info = new BlockHeader.Info { name = Marker, version = Version.ToString(), pos = offset, size = length }; header.lstInfo.Add(info); }